From 12590c0e18da84aaff282701cf31823b397c3253 Mon Sep 17 00:00:00 2001 From: Iwan Kelaiah Date: Sat, 8 Aug 2026 20:30:19 +1000 Subject: [PATCH] feat(v1.9.0): resolve by catalogue (metadata import + verified resolution) Implements the v1.9.0 milestone from ROADMAP.md in full (README item 5) and nothing from v1.10.0 onwards. - src/catalogue.ts: catalogue import (JSON + line format) for table/view/column metadata; normalized exact/synonym lookup; conflict detection. - Verified resolution replaces the v1.5.0 external label where catalogue evidence proves the match, in both the estate dependency graph (ir.ts) and query sources (lineage.ts); the catalogue-absent path stays byte-identical. - E diagnostics: catalogue_parse_error, catalogue_empty, catalogue_conflict (document), and region-scoped catalogue_conflict / catalogue_partial. Resolution metadata survives draw.io round-trip. - UI: Catalogue menu (paste/import/apply/clear + status). - Workspace schema -> v2 carrying the catalogue text; v1 snapshots migrate. - tests/catalogue.ts (13 fixtures, gated), 2 UI tests, cataloguePassRate added to docs/metrics-v1.9.0.json; package bumped to 1.9.0. - Docs: RELEASE_NOTE_v1.9.0.md, PR_NOTE_1.9.0.md, README, examples/dbo.v190_demo.sql. --- README.md | 121 +++++-- dist/src/app.js | 75 ++++- dist/src/app.js.map | 2 +- dist/src/catalogue.js | 212 ++++++++++++ dist/src/catalogue.js.map | 1 + dist/src/exporters.js | 8 + dist/src/exporters.js.map | 2 +- dist/src/ir.js | 65 +++- dist/src/ir.js.map | 2 +- dist/src/lineage.js | 22 +- dist/src/lineage.js.map | 2 +- dist/src/workspace.js | 10 +- dist/src/workspace.js.map | 2 +- dist/tests/catalogue.js | 264 +++++++++++++++ dist/tests/catalogue.js.map | 1 + dist/tests/metrics.js | 22 +- dist/tests/metrics.js.map | 2 +- dist/tests/tests.js | 12 + dist/tests/tests.js.map | 2 +- dist/tests/ui-tests.js | 29 ++ dist/tests/ui-tests.js.map | 2 +- docs/PR_NOTE_1.9.0.md | 112 +++++++ docs/RELEASE_NOTE_v1.9.0.md | 91 ++++++ ...etrics-v1.8.0.json => metrics-v1.9.0.json} | 6 +- examples/dbo.v190_demo.sql | 72 +++++ index.html | 21 ++ package-lock.json | 4 +- package.json | 2 +- scripts/metrics.mjs | 2 +- src/app.ts | 71 +++- src/catalogue.ts | 189 +++++++++++ src/exporters.ts | 4 + src/ir.ts | 68 +++- src/lineage.ts | 27 +- src/types.d.ts | 72 +++++ src/workspace.ts | 11 +- styles.css | 10 + tests/catalogue.ts | 304 ++++++++++++++++++ tests/fuzz.html | 5 +- tests/index.html | 6 +- tests/metrics.html | 8 +- tests/metrics.ts | 22 +- tests/tests.ts | 15 + tests/ui-tests.ts | 30 ++ 44 files changed, 1910 insertions(+), 100 deletions(-) create mode 100644 dist/src/catalogue.js create mode 100644 dist/src/catalogue.js.map create mode 100644 dist/tests/catalogue.js create mode 100644 dist/tests/catalogue.js.map create mode 100644 docs/PR_NOTE_1.9.0.md create mode 100644 docs/RELEASE_NOTE_v1.9.0.md rename docs/{metrics-v1.8.0.json => metrics-v1.9.0.json} (89%) create mode 100644 examples/dbo.v190_demo.sql create mode 100644 src/catalogue.ts create mode 100644 tests/catalogue.ts diff --git a/README.md b/README.md index 382f478..740f517 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,8 @@ For the first stable release, see [RELEASE_NOTE_v1.5.0.md](docs/RELEASE_NOTE_v1.5.0.md). For the v1.6.0 release, see [RELEASE_NOTE_v1.6.0.md](docs/RELEASE_NOTE_v1.6.0.md). For the v1.7.0 release, see [RELEASE_NOTE_v1.7.0.md](docs/RELEASE_NOTE_v1.7.0.md). For the v1.8.0 release, see -[RELEASE_NOTE_v1.8.0.md](docs/RELEASE_NOTE_v1.8.0.md). +[RELEASE_NOTE_v1.8.0.md](docs/RELEASE_NOTE_v1.8.0.md). For the v1.9.0 release, see +[RELEASE_NOTE_v1.9.0.md](docs/RELEASE_NOTE_v1.9.0.md). ## Start here @@ -67,7 +68,7 @@ For the first stable release, see ## 60-second quick start -1. Download the `v1.8.0` archive from +1. Download the `v1.9.0` archive from [GitHub Releases](https://github.com/ikelaiah/ProcFlow/releases) or clone this repository. 2. Extract the complete archive. Keep `index.html`, `styles.css`, `dist/`, and @@ -134,7 +135,7 @@ statements. analysis to another engineer. ProcFlow imports SQL text, not report-definition files. SSRS/RDL import is on -the roadmap; for v1.8.0, paste or export the dataset SQL itself. +the roadmap; for v1.9.0, paste or export the dataset SQL itself. ## What ProcFlow can show @@ -176,9 +177,11 @@ the roadmap; for v1.8.0, paste or export the dataset SQL itself. - object → table write Known imported objects are linked. Selecting one can open its internal logic. -Unmatched three-/four-part names keep their complete identity as -`external: [server].[database].[schema].[object]` nodes rather than collapsing -to a bare last-part match. +With a catalogue loaded, unmatched references the catalogue proves — an exact +full-name match, or an explicit synonym — resolve to their canonical identity +instead of a conservative label. Unmatched three-/four-part names keep their +complete identity as `external: [server].[database].[schema].[object]` nodes +rather than collapsing to a bare last-part match. ## Reading the analysis safely @@ -194,7 +197,9 @@ The analysis panel provides four release-safety signals: - **Coverage** is the percentage of body tokens consumed by the parser. - **Diagnostics** reports uncertain dialects, balance errors, missing block terminators, unconsumed input, invalid actions, opaque dynamic SQL, opaque - table expressions, and heuristic `APPLY` targets. Informational annotations + table expressions, heuristic `APPLY` targets, and catalogue problems + (malformed or conflicting catalogue data, and unproven partial matches + reported at the exact reference). Informational annotations (for example a correctly resolved recursive CTE) are displayed separately and never inflate the findings count. Document-scoped findings such as dialect ambiguity carry no fabricated source span. @@ -215,7 +220,7 @@ than silently disappearing from the diagram. ## Supported SQL -ProcFlow v1.8.0 recognises: +ProcFlow v1.9.0 recognises: - Microsoft T-SQL - IBM DB2 SQL PL @@ -226,7 +231,7 @@ Supported inputs include procedures, functions, triggers, views, plain SQL statements, report dataset queries, and multi-object scripts where those object types apply to the selected dialect. -Dialect-specific v1.8.0 coverage includes: +Dialect-specific v1.9.0 coverage includes: - **T-SQL:** mixed one-line and block `IF`/`WHILE` control flow (single statement and `BEGIN`/`END` bodies in one AST), labelled `GOTO` and labels @@ -258,6 +263,11 @@ When detection is uncertain and several dialects score equally, an explicit `dialect_ambiguous` diagnostic is reported along with the usual low-confidence warning. +Catalogue resolution (README item 5, delivered in v1.9.0) applies across +dialects: when a catalogue is loaded, object references the catalogue proves +are shown as verified identity instead of external labels. See +[Working with a catalogue](#working-with-a-catalogue). + ## Importing SQL **Import SQL files** accepts multiple `.sql`, `.ddl`, and `.txt` files. Files @@ -268,16 +278,43 @@ Multi-object scripts are split into selectable objects. If the split cannot be made confidently, ProcFlow keeps the input as one script and reports the uncertainty. +## Working with a catalogue + +The **Catalogue** menu imports table/view/column metadata so ProcFlow can +resolve object references to their exact identity instead of a conservative +`external:` label. + +- **Paste or import.** Type a catalogue into the textarea (or press **Import + file**) and press **Apply catalogue**. Two formats are accepted: + - **JSON** — `{"objects":[{"name":"dbo.Student","kind":"TABLE", + "synonyms":["student"]}], "columns":[{"table":"dbo.Student","name":"Id"}]}` + (a bare array of objects or names also works); + - **simple line format** — one object per line: `name KIND syn1, syn2` plus + `COL table.column` column lines; `#` lines are comments. +- **Verified resolution.** Only exact full-name matches and explicit synonyms + count as verified. In **Object dependencies** scope and the **Query + structure** view, a verified reference renders as its canonical object name + (no `external:` prefix) and carries the resolution as metadata on draw.io + exports. +- **Conservative when uncertain.** A reference that only partially matches + (for example a server prefix over a catalogued object) stays external and + gets a region-scoped `catalogue_partial` diagnostic naming the unproven + candidate. Duplicate or colliding catalogue entries produce a + `catalogue_conflict` diagnostic and never invent a verification. +- **Clear** removes the catalogue; applying a different catalogue re-runs the + current analysis. The catalogue is an analysis input, so a saved workspace + captures it and Restore reproduces an identical analysis. + ## Workspace The **Workspace** menu keeps your work usable across sessions, entirely on your terms: -- **Save to this browser** persists the current workspace (files plus analysis - options) to this browser's `localStorage`. This is strictly opt-in — nothing - is written or restored on load. -- **Restore saved workspace** replays the saved files and options into an - identical analysis. +- **Save to this browser** persists the current workspace (files, analysis + options, and any applied catalogue text) to this browser's `localStorage`. + This is strictly opt-in — nothing is written or restored on load. +- **Restore saved workspace** replays the saved files, options, and catalogue + into an identical analysis. - **Export workspace file** / **Import workspace file** transfer a workspace as portable JSON. - **Forget saved workspace** removes the local copy explicitly. @@ -319,7 +356,7 @@ endorsed by draw.io. ### Quick answers -| Question | ProcFlow v1.8.0 behavior | +| Question | ProcFlow v1.9.0 behavior | |---|---| | Is SQL uploaded? | No. Analysis and rendering happen in the browser tab. | | Does it connect to a database? | No. There is no driver, connection string, or query execution. | @@ -341,6 +378,7 @@ The runtime application consists of: index.html styles.css dist/src/tokenizer.js +dist/src/catalogue.js dist/src/dialects.js dist/src/lineage.js dist/src/ir.js @@ -359,9 +397,10 @@ The opt-in persistence module (`dist/src/workspace.js`) is the only runtime that touches browser storage, and it does so only through explicit **Workspace** menu actions (Save / Restore / Forget) — never on load. Its import/export uses the browser download API, which also requires an explicit -action. +action. The catalogue module (`dist/src/catalogue.js`) parses pasted or +imported metadata in memory only; it never reads or writes storage. -The SHA-256 of `vendor/mermaid/mermaid.min.js` in v1.8.0 is: +The SHA-256 of `vendor/mermaid/mermaid.min.js` in v1.9.0 is: ```text 61B335A46DF05A7CE1C98378F60E5F3E77A7FB608A1056997E8A649304A936D6 @@ -372,7 +411,7 @@ so the release checksum remains reproducible across operating systems. ### Guidance for security review -1. Review and pin the `v1.8.0` tag or its exact commit. +1. Review and pin the `v1.9.0` tag or its exact commit. 2. Verify the vendored Mermaid checksum. 3. Review the runtime files listed above. 4. Open the reviewed files locally or serve them from an approved internal @@ -408,9 +447,16 @@ and contains no automatic data-submission path. splits. - Query lineage is object-level rather than column-level. - Some vendor-specific table expressions might not be detected. -- Temporary-table data flow is shown within one object; cross-object temp - flow, synonym, linked-server, and cross-database resolution is lightweight. -- SSRS/RDL files are not imported in v1.8.0. +- Temporary-table data flow is shown within one object; cross-object temp flow + remains unresolved. +- Catalogue resolution is deliberately conservative: only exact full-name and + explicit-synonym matches are verified. Suffix-only matches, unqualified names + without a catalogue synonym, and unknown linked-server layouts stay external + (with a `catalogue_partial` diagnostic where a plausible but unproven + candidate exists) until the catalogue proves them. +- Columns are parsed and validated by the catalogue import but not yet used; + column lineage is scheduled for v1.10.0+. +- SSRS/RDL files are not imported in v1.9.0. - draw.io layout is deterministic for the documented graph classes at documented size limits; very large or non-planar graphs are laid out without overlapping boxes and reported honestly rather than claimed crossing-free. @@ -478,23 +524,26 @@ Then open: - `http://127.0.0.1:8000/tests/ui.html` — browser interaction and local-runtime tests -The v1.8.0 baseline is: +The v1.9.0 baseline is: -- 207 golden and boundary assertions +- 208 golden and boundary assertions - 400 deterministic mutation cases -- 20 browser interaction tests +- 22 browser interaction tests - 20 export-parity checks (10 fixtures × TD + LR), 11 layout-budget fixtures, and 100 % export-traceability on the export fixtures - 13 workspace-persistence and dependency-filtering fixtures (save→reload identity, schema migration, corrupt recovery, explicit clear, non-mutating filters) +- 13 catalogue fixtures (JSON and line import, synonym / linked-server / + cross-database verification, conservative conflict and partial diagnostics, + export metadata, workspace round-trip) Fixture-corpus accuracy metrics (attribution, unresolved-token, tail-unconsumed, fallback, opaque-dynamic, semantic-edge coverage, provenance, region-diagnostic-to-span, export-parity, export-traceability, layout-budget, -and workspace pass-rate ratios) are published from the checked-in golden -corpus in [docs/metrics-v1.8.0.json](docs/metrics-v1.8.0.json). Generation is -deterministic and fixture-only — no user inputs or runtime telemetry are +workspace, and catalogue pass-rate ratios) are published from the checked-in +golden corpus in [docs/metrics-v1.9.0.json](docs/metrics-v1.9.0.json). Generation +is deterministic and fixture-only — no user inputs or runtime telemetry are collected — and CI refuses to merge when the snapshot is stale. Regenerate with `npm run metrics:write`. @@ -530,6 +579,7 @@ docs/ ├── PR_NOTE_1.6.0.md ├── PR_NOTE_1.7.0.md ├── PR_NOTE_1.8.0.md +├── PR_NOTE_1.9.0.md ├── RELEASE_NOTE_1.1.0.md ├── RELEASE_NOTE_1.2.0.md ├── RELEASE_NOTE_1.3.0.md @@ -542,7 +592,8 @@ docs/ ├── RELEASE_NOTE_v1.6.0.md ├── RELEASE_NOTE_v1.7.0.md ├── RELEASE_NOTE_v1.8.0.md -└── metrics-v1.8.0.json # deterministic fixture-only accuracy metrics snapshot +├── RELEASE_NOTE_v1.9.0.md +└── metrics-v1.9.0.json # deterministic fixture-only accuracy metrics snapshot examples/ ├── dbo.v110_demo.sql # per-release outcome demos ├── dbo.v120_demo.sql @@ -551,13 +602,15 @@ examples/ ├── dbo.v150_demo.sql ├── dbo.v160_demo.sql ├── dbo.v170_demo.sql # v1.7.0: clear deterministic exports demo -└── dbo.v180_demo.sql # v1.8.0: usable local workspace demo +├── dbo.v180_demo.sql # v1.8.0: usable local workspace demo +└── dbo.v190_demo.sql # v1.9.0: resolve by catalogue demo scripts/ ├── file-smoke.mjs # dependency-free local-file release smoke test └── metrics.mjs # generate/verify the fixture-corpus metric snapshot src/ ├── types.d.ts # shared tokens, AST, graphs, diagnostics, and contracts ├── tokenizer.ts # lexical analysis, escaping, balance checks, source spans +├── catalogue.ts # catalogue import (JSON + line) and object resolution ├── dialects.ts # dialect detection and procedural parsing ├── lineage.ts # CTE and query dependency extraction ├── ir.ts # graphs, diagnostics, confidence, and estate analysis @@ -577,6 +630,7 @@ tests/ ├── boundary.ts ├── parity.ts ├── workspace.ts +├── catalogue.ts ├── tests.ts ├── fuzz.ts ├── ui-tests.ts @@ -615,13 +669,13 @@ Then verify: 3. Generated `dist/` files match their TypeScript sources. 4. The Mermaid SHA-256 matches the value in this README and the workflow. 5. `npm run metrics` reports the metric snapshot is current. -6. `RELEASE_NOTE_v1.8.0.md` matches the final tag contents. +6. `RELEASE_NOTE_v1.9.0.md` matches the final tag contents. 7. The complete archive opens locally with `index.html`, and the local-file smoke test reports the opt-in workspace assertion. -8. The tag is named `v1.8.0`. +8. The tag is named `v1.9.0`. -The release can then be created manually from the `v1.8.0` tag using -[RELEASE_NOTE_v1.8.0.md](docs/RELEASE_NOTE_v1.8.0.md). +The release can then be created manually from the `v1.9.0` tag using +[RELEASE_NOTE_v1.9.0.md](docs/RELEASE_NOTE_v1.9.0.md). ## Roadmap after v1.0.0 @@ -630,6 +684,7 @@ The release can then be created manually from the `v1.8.0` tag using 3. Model more multi-statement and temporary-table transformations. 4. Import SSRS/RDL definitions and link reports to datasets. 5. Accept database catalogue metadata for more accurate object resolution. + **Delivered in v1.9.0.** 6. Add column-level lineage where it can be resolved safely. 7. Add optional local workspace persistence and dependency filtering. **Delivered in v1.8.0.** diff --git a/dist/src/app.js b/dist/src/app.js index 8636550..3332049 100644 --- a/dist/src/app.js +++ b/dist/src/app.js @@ -6,6 +6,9 @@ var $ = function (id) { return document.getElementById(id); }; var sql = $('sql'), gutter = $('gutter'), out = $('mermaid-out'), stage = $('stage'), canvas = $('canvas'), msg = $('msg'); var scale = 1, panX = 0, panY = 0, lastCode = '', lastDialect = 'tsql', lastGraph = null, lastTitle = '', lastDirection = 'TD', lastResult = null, estate = null, workspaceFiles = null, activeObjectId = null, renderSeq = 0; + /* v1.9.0 — the active parsed catalogue plus its raw text and parse + diagnostics, so Apply/Clear re-run the analysis with (or without) it. */ + var currentCatalogue = null, currentCatalogueText = '', currentCatalogueDiagnostics = []; var SAMPLES = {}; SAMPLES.tsql = [ "CREATE PROCEDURE dbo.usp_SyncStudentPhotos", @@ -255,9 +258,39 @@ dialect: $('opt-dialect').value, mode: $('opt-view').value, dir: $('opt-dir').value, detail: $('opt-detail').value, group: $('opt-group').checked, number: $('opt-number').checked, - fanIn: $('opt-fanin').checked, sources: $('opt-sources').checked + fanIn: $('opt-fanin').checked, sources: $('opt-sources').checked, + catalogue: currentCatalogue || undefined, + catalogueDiagnostics: currentCatalogueDiagnostics.slice() }; } + /* v1.9.0 — catalogue status panel. */ + function updateCatalogueStatus() { + var el = $('catalogue-status'); + if (!currentCatalogue) { + el.textContent = 'No catalogue loaded.'; + return; + } + var summary = catalogueSummary(currentCatalogue); + var nDiag = currentCatalogueDiagnostics.length; + el.textContent = 'Loaded: ' + summary + (nDiag ? '; ' + nDiag + + (nDiag === 1 ? ' diagnostic' : ' diagnostics') : ''); + } + /* Apply the current Catalogue panel text: parse it (JSON or line format), + store the parsed catalogue plus parse diagnostics, and re-run. */ + function applyCatalogue() { + currentCatalogueText = $('catalogue-text').value; + if (!currentCatalogueText.trim()) { + currentCatalogue = null; + currentCatalogueDiagnostics = []; + } + else { + var parsed = parseCatalogue(currentCatalogueText); + currentCatalogue = parsed.catalogue; + currentCatalogueDiagnostics = parsed.diagnostics.slice(); + } + updateCatalogueStatus(); + run(); + } /* v1.8.0 dependency filtering — presentation only. currentFilter() reads the filter panel and run() derives a filtered view at render time; the underlying estate graph is never mutated. */ @@ -302,6 +335,20 @@ workspaceFiles = (snap.files && snap.files.length) ? snap.files.slice() : null; estate = null; activeObjectId = snap.activeObjectId; + /* v1.9.0 — restore the catalogue (an analysis input) so an identical + analysis is reproduced. */ + currentCatalogueText = snap.catalogue == null ? '' : snap.catalogue; + $('catalogue-text').value = currentCatalogueText; + if (currentCatalogueText.trim()) { + var parsed = parseCatalogue(currentCatalogueText); + currentCatalogue = parsed.catalogue; + currentCatalogueDiagnostics = parsed.diagnostics.slice(); + } + else { + currentCatalogue = null; + currentCatalogueDiagnostics = []; + } + updateCatalogueStatus(); if (workspaceFiles && workspaceFiles.length) sql.value = workspaceFiles[0].text; drawGutter(); @@ -773,7 +820,7 @@ $('btn-ws-save').onclick = function () { var files = workspaceFiles || [{ name: 'Pasted SQL', text: sql.value }]; var snap = buildWorkspaceSnapshot({ files: files, options: snapshotOptions(), - activeObjectId: activeObjectId }); + activeObjectId: activeObjectId, catalogue: currentCatalogueText }); var ok = writeWorkspace(snap); updateWsStatus(); flash($('btn-ws-save'), ok ? 'Saved' : 'Save failed'); @@ -820,6 +867,30 @@ }).catch(function (err) { showMsg('Could not read that workspace file: ' + err.message); }); this.value = ''; }; + /* v1.9.0 — catalogue import (paste or file), Apply, and Clear. Apply parses + JSON or the simple line format, stores the parsed catalogue, and re-runs + so verified external/source objects resolve immediately. */ + $('btn-catalogue-import').onclick = function () { $('catalogue-file-input').click(); }; + $('catalogue-file-input').onchange = function () { + var file = (this.files && this.files[0]); + if (!file) + return; + file.text().then(function (text) { + $('catalogue-text').value = text; + applyCatalogue(); + }).catch(function (err) { showMsg('Could not read that catalogue file: ' + err.message); }); + this.value = ''; + }; + $('btn-catalogue-apply').onclick = applyCatalogue; + $('btn-catalogue-clear').onclick = function () { + $('catalogue-text').value = ''; + currentCatalogue = null; + currentCatalogueDiagnostics = []; + currentCatalogueText = ''; + updateCatalogueStatus(); + run(); + }; + updateCatalogueStatus(); if (typeof mermaid !== 'undefined') { mermaid.initialize({ startOnLoad: false, theme: 'base', securityLevel: 'strict', diff --git a/dist/src/app.js.map b/dist/src/app.js.map index d7beaa8..73a3259 100644 --- a/dist/src/app.js.map +++ b/dist/src/app.js.map @@ -1 +1 @@ -{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/catalogue.js b/dist/src/catalogue.js new file mode 100644 index 0000000..3c35fb6 --- /dev/null +++ b/dist/src/catalogue.js @@ -0,0 +1,212 @@ +"use strict"; +/* ===== v1.9.0 Resolve by catalogue (README post-v1.0.0 item 5) ===== + Accepts table/view/column catalogue metadata (pasted or imported) so + unmatched object references resolve to their exact identity instead of a + conservative v1.5.0 'external' label. + + Only full-name and explicit-synonym matches count as 'verified'. Partial + (suffix-only) and conflicting evidence stays conservative and is reported + with a region-scoped diagnostic: it is never inferred into a verification. + Column metadata is accepted and validated now; column lineage uses it in a + later release. */ +var CATALOGUE_KINDS = S(['TABLE', 'VIEW', 'PROC', 'PROCEDURE', 'FUNCTION', + 'TRIGGER', 'SYNONYM', 'TYPE', 'SEQUENCE']); +function normalizeCatalogueName(name) { + return String(name == null ? '' : name) + .replace(/[\[\]"]/g, '').replace(/`/g, '') + .trim().toUpperCase().replace(/\s+/g, ' '); +} +function normalizeCatalogueKind(kind) { + var k = String(kind == null ? '' : kind).trim().toUpperCase(); + if (k === 'PROCEDURE') + return 'PROC'; + if (['TABLE', 'VIEW', 'PROC', 'FUNCTION', 'TRIGGER', 'SYNONYM', 'TYPE', 'SEQUENCE'] + .indexOf(k) >= 0) + return k; + return 'OTHER'; +} +/* Build normalized lookup indexes and record conflicting catalogue entries. + A conflict is a duplicate normalized object name, or a synonym that collides + with another object's name or synonym — evidence that is too ambiguous to + verify against, so resolution of that name stays conservative. */ +function buildCatalogueIndex(objects, columns) { + var byName = {}, bySynonym = {}, conflicts = {}; + (objects || []).forEach(function (o) { + var n = normalizeCatalogueName(o.name); + if (!n) + return; + var priorName = byName[n], priorSyn = bySynonym[n]; + if (priorName || priorSyn) { + conflicts[n] = 1; + return; + } + byName[n] = o; + (o.synonyms || []).forEach(function (raw) { + var sn = normalizeCatalogueName(raw); + if (!sn) + return; + if ((bySynonym[sn] && bySynonym[sn] !== o) || byName[sn]) { + conflicts[sn] = 1; + return; + } + bySynonym[sn] = o; + }); + }); + return { objects: objects || [], columns: columns || [], + byName: byName, bySynonym: bySynonym, conflicts: conflicts }; +} +/* Resolve a referenced object name against the catalogue. Exact full-name and + explicit-synonym matches are 'verified'; a conflicting name is 'conflict' + (conservative); otherwise 'external' (unproven, v1.5.0 label retained). */ +function resolveCatalogue(cat, name) { + if (!cat || !(cat.objects && cat.objects.length)) + return { resolution: 'external' }; + var n = normalizeCatalogueName(name); + if (!n) + return { resolution: 'external' }; + if (cat.conflicts[n] === 1) + return { resolution: 'conflict' }; + var exact = cat.byName[n]; + if (exact) + return { resolution: 'verified', resolvedName: exact.name }; + var syn = cat.bySynonym[n]; + if (syn) + return { resolution: 'verified', resolvedName: syn.name }; + return { resolution: 'external' }; +} +/* Conservative near-match candidates: catalogue objects the reference could + partially reach (the referenced name carries extra leading server/schema + parts over a catalogue object, sharing the same trailing identity). These + are NOT verified — they are reported so a reviewer knows a plausible but + unproven candidate existed instead of silently staying external. */ +function suffixCatalogueMatches(cat, name) { + if (!cat || !name) + return []; + var n = normalizeCatalogueName(name), out = [], seen = {}; + (cat.objects || []).forEach(function (o) { + var on = normalizeCatalogueName(o.name); + if (!on || on === n) + return; + if (on.length >= n.length) + return; + if (n.charAt(n.length - on.length - 1) === '.' && + n.slice(n.length - on.length) === on) { + var key = '#' + o.name.toUpperCase() + ':' + o.kind; + if (!seen[key]) { + seen[key] = 1; + out.push(o.name); + } + } + }); + return out.slice(0, 8); +} +/* Parse a catalogue from text. Accepts either: + - JSON: {objects:[{name,kind,synonyms[]}], columns:[{table,name}]} + or a bare array of {name,...} / string names; + - a simple line format (one object per line): + # comment + [KIND] [synonym1, synonym2 …] + COL . + Returns a CatalogueParseResult with any parse/conflict diagnostics. */ +function parseCatalogue(text, format) { + var src = String(text == null ? '' : text); + var trimmed = src.trim(); + var fmt = format || + ((trimmed.charAt(0) === '{' || trimmed.charAt(0) === '[') ? 'json' : 'text'); + var diagnostics = []; + var objects = [], columns = []; + if (fmt === 'json') { + var raw; + try { + raw = JSON.parse(trimmed); + } + catch (e) { + diagnostics.push({ severity: 'error', code: 'catalogue_parse_error', + message: 'Catalogue JSON could not be parsed: ' + (e instanceof Error ? e.message : String(e)), + span: null, scope: 'document' }); + return { catalogue: buildCatalogueIndex(objects, columns), diagnostics: diagnostics, + format: 'json', objectCount: 0, columnCount: 0 }; + } + if (!raw || typeof raw !== 'object') + raw = []; + var list = Array.isArray(raw) ? raw : (Array.isArray(raw.objects) ? raw.objects : []); + var colList = Array.isArray(raw) ? [] : (Array.isArray(raw.columns) ? raw.columns : []); + var objSeen = {}; + (list || []).forEach(function (entry) { + if (typeof entry === 'string') { + objects.push({ name: entry, kind: 'OTHER', synonyms: [] }); + return; + } + if (!entry || typeof entry !== 'object' || !entry.name) + return; + var norm = normalizeCatalogueName(entry.name); + if (objSeen[norm]) + return; + objSeen[norm] = 1; + var syns = []; + if (Array.isArray(entry.synonyms)) + entry.synonyms.forEach(function (s) { syns.push(String(s)); }); + else if (typeof entry.synonyms === 'string' && entry.synonyms) + syns.push(entry.synonyms); + objects.push({ name: String(entry.name), kind: normalizeCatalogueKind(entry.kind), synonyms: syns }); + }); + (colList || []).forEach(function (c) { + if (c && c.table && c.name) + columns.push({ table: String(c.table), name: String(c.name), + kind: normalizeCatalogueKind(c.kind) }); + }); + } + else { + src.split(/\r?\n/).forEach(function (line) { + var l = line.trim(); + if (!l || l.charAt(0) === '#' || l.indexOf('//') === 0) + return; + var upper = l.toUpperCase(); + if (upper.indexOf('COL ') === 0 || upper.indexOf('COLUMN ') === 0) { + var cparts = l.split(/\s+/).slice(1).join('').split('.'); + var colName = cparts.pop() || ''; + columns.push({ table: cparts.join('.'), name: colName, kind: 'OTHER' }); + return; + } + var toks = l.split(/[\s,]+/).filter(function (t) { return t.length > 0; }); + if (!toks.length) + return; + var name = toks[0], kind = 'OTHER', syns = []; + var ci = 1; + if (toks[ci] && CATALOGUE_KINDS[toks[ci].toUpperCase()] === 1) { + kind = normalizeCatalogueKind(toks[ci]); + ci++; + } + for (; ci < toks.length; ci++) + syns.push(toks[ci]); + objects.push({ name: name, kind: kind, synonyms: syns }); + }); + } + var cat = buildCatalogueIndex(objects, columns); + Object.keys(cat.conflicts).forEach(function (norm) { + diagnostics.push({ severity: 'warning', code: 'catalogue_conflict', + message: 'Conflicting catalogue entries for "' + + (cat.byName[norm] ? cat.byName[norm].name : norm) + '": metadata is ambiguous, so references to it stay unresolved. ' + + 'Remove the duplicate or ambiguous synonym to verify against it.', + span: null, scope: 'document' }); + }); + if (!objects.length && !columns.length && fmt === 'text') + diagnostics.push({ severity: 'warning', code: 'catalogue_empty', + message: 'No catalogue objects were parsed. Check the format (one object per line, or JSON).', + span: null, scope: 'document' }); + return { catalogue: cat, diagnostics: diagnostics, format: fmt, + objectCount: objects.length, columnCount: columns.length }; +} +/* Short human-readable summary used by the catalogue status panel. */ +function catalogueSummary(cat) { + if (!cat) + return 'No catalogue loaded.'; + var n = cat.objects.length, c = cat.columns.length, conf = Object.keys(cat.conflicts || {}).length; + var bits = [n + ' object' + (n === 1 ? '' : 's')]; + if (c) + bits.push(c + ' column' + (c === 1 ? '' : 's')); + if (conf) + bits.push(conf + ' conflict' + (conf === 1 ? '' : 's')); + return bits.join(', '); +} +//# sourceMappingURL=catalogue.js.map \ No newline at end of file diff --git a/dist/src/catalogue.js.map b/dist/src/catalogue.js.map new file mode 100644 index 0000000..885e6a3 --- /dev/null +++ b/dist/src/catalogue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"catalogue.js","sourceRoot":"","sources":["../../src/catalogue.ts"],"names":[],"mappings":";AAAA;;;;;;;;;oBASoB;AACpB,IAAI,eAAe,GAAc,CAAC,CAAC,CAAC,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,WAAW,EAAC,UAAU;IAC5C,SAAS,EAAC,SAAS,EAAC,MAAM,EAAC,UAAU,CAAC,CAAC,CAAC;AAE5E,SAAS,sBAAsB,CAAC,IAAa;IAC3C,OAAO,MAAM,CAAC,IAAI,IAAE,IAAI,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,IAAI,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAC,EAAE,CAAC;SACvC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAa;IAC3C,IAAI,CAAC,GAAC,MAAM,CAAC,IAAI,IAAE,IAAI,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACtD,IAAG,CAAC,KAAG,WAAW;QAAE,OAAO,MAAM,CAAC;IAClC,IAAG,CAAC,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,UAAU,EAAC,SAAS,EAAC,SAAS,EAAC,MAAM,EAAC,UAAU,CAAC;SACrE,OAAO,CAAC,CAAC,CAAC,IAAE,CAAC;QAAE,OAAO,CAAkB,CAAC;IAC/C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;oEAGoE;AACpE,SAAS,mBAAmB,CAAC,OAA0B,EAAE,OAA0B;IACjF,IAAI,MAAM,GAAkC,EAAE,EAC1C,SAAS,GAAkC,EAAE,EAC7C,SAAS,GAAY,EAAE,CAAC;IAC5B,CAAC,OAAO,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;QAC9B,IAAI,CAAC,GAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrC,IAAG,CAAC,CAAC;YAAE,OAAO;QACd,IAAI,SAAS,GAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAG,SAAS,IAAE,QAAQ,EAAC,CAAC;YACtB,SAAS,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QACD,MAAM,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC,QAAQ,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,GAAG;YACnC,IAAI,EAAE,GAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;YACnC,IAAG,CAAC,EAAE;gBAAE,OAAO;YACf,IAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAE,SAAS,CAAC,EAAE,CAAC,KAAG,CAAC,CAAC,IAAE,MAAM,CAAC,EAAE,CAAC,EAAC,CAAC;gBACjD,SAAS,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YACD,SAAS,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,EAAC,OAAO,EAAC,OAAO,IAAE,EAAE,EAAE,OAAO,EAAC,OAAO,IAAE,EAAE;QACxC,MAAM,EAAC,MAAM,EAAE,SAAS,EAAC,SAAS,EAAE,SAAS,EAAC,SAAS,EAAC,CAAC;AACnE,CAAC;AAED;;6EAE6E;AAC7E,SAAS,gBAAgB,CAAC,GAAiC,EACvD,IAAY;IACd,IAAG,CAAC,GAAG,IAAE,CAAC,CAAC,GAAG,CAAC,OAAO,IAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAC,UAAU,EAAC,UAAU,EAAC,CAAC;IAC5E,IAAI,CAAC,GAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACnC,IAAG,CAAC,CAAC;QAAE,OAAO,EAAC,UAAU,EAAC,UAAU,EAAC,CAAC;IACtC,IAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAG,CAAC;QAAE,OAAO,EAAC,UAAU,EAAC,UAAU,EAAC,CAAC;IACxD,IAAI,KAAK,GAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,IAAG,KAAK;QAAE,OAAO,EAAC,UAAU,EAAC,UAAU,EAAE,YAAY,EAAC,KAAK,CAAC,IAAI,EAAC,CAAC;IAClE,IAAI,GAAG,GAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACzB,IAAG,GAAG;QAAE,OAAO,EAAC,UAAU,EAAC,UAAU,EAAE,YAAY,EAAC,GAAG,CAAC,IAAI,EAAC,CAAC;IAC9D,OAAO,EAAC,UAAU,EAAC,UAAU,EAAC,CAAC;AACjC,CAAC;AAED;;;;sEAIsE;AACtE,SAAS,sBAAsB,CAAC,GAAiC,EAC7D,IAAY;IACd,IAAG,CAAC,GAAG,IAAE,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAC1B,IAAI,CAAC,GAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,GAAG,GAAW,EAAE,EAAE,IAAI,GAAY,EAAE,CAAC;IACzE,CAAC,GAAG,CAAC,OAAO,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;QAClC,IAAI,EAAE,GAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtC,IAAG,CAAC,EAAE,IAAE,EAAE,KAAG,CAAC;YAAE,OAAO;QACvB,IAAG,EAAE,CAAC,MAAM,IAAE,CAAC,CAAC,MAAM;YAAE,OAAO;QAC/B,IAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAC,EAAE,CAAC,MAAM,GAAC,CAAC,CAAC,KAAG,GAAG;YACpC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAC,EAAE,CAAC,MAAM,CAAC,KAAG,EAAE,EAAC,CAAC;YACnC,IAAI,GAAG,GAAC,GAAG,GAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,GAAC,GAAG,GAAC,CAAC,CAAC,IAAI,CAAC;YAC5C,IAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC;gBAAC,IAAI,CAAC,GAAG,CAAC,GAAC,CAAC,CAAC;gBAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;;yEAOyE;AACzE,SAAS,cAAc,CAAC,IAAY,EAAE,MAAwB;IAC5D,IAAI,GAAG,GAAC,MAAM,CAAC,IAAI,IAAE,IAAI,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC;IACnC,IAAI,OAAO,GAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,GAAG,GAAoB,MAAM;QAC/B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAG,GAAG,IAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACzE,IAAI,WAAW,GAAe,EAAE,CAAC;IACjC,IAAI,OAAO,GAAoB,EAAE,EAAE,OAAO,GAAoB,EAAE,CAAC;IAEjE,IAAG,GAAG,KAAG,MAAM,EAAC,CAAC;QACf,IAAI,GAAQ,CAAC;QACb,IAAI,CAAC;YACH,GAAG,GAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QAAA,OAAM,CAAC,EAAC,CAAC;YACR,WAAW,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,OAAO,EAAC,IAAI,EAAC,uBAAuB;gBAC7D,OAAO,EAAC,sCAAsC,GAAC,CAAC,CAAC,YAAY,KAAK,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,CAAA,CAAC,CAAA,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvF,IAAI,EAAC,IAAI,EAAE,KAAK,EAAC,UAAU,EAAC,CAAC,CAAC;YAChC,OAAO,EAAC,SAAS,EAAC,mBAAmB,CAAC,OAAO,EAAC,OAAO,CAAC,EAAE,WAAW,EAAC,WAAW;gBACvE,MAAM,EAAC,MAAM,EAAE,WAAW,EAAC,CAAC,EAAE,WAAW,EAAC,CAAC,EAAC,CAAC;QACvD,CAAC;QACD,IAAG,CAAC,GAAG,IAAE,OAAO,GAAG,KAAG,QAAQ;YAAE,GAAG,GAAC,EAAE,CAAC;QACvC,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA,CAAC,CAAA,GAAG,CAAC,OAAO,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC;QAClF,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA,CAAC,CAAA,GAAG,CAAC,OAAO,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC;QACpF,IAAI,OAAO,GAAY,EAAE,CAAC;QAC1B,CAAC,IAAI,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,KAAU;YACpC,IAAG,OAAO,KAAK,KAAG,QAAQ,EAAC,CAAC;gBAAC,OAAO,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAC,EAAE,EAAC,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC3F,IAAG,CAAC,KAAK,IAAE,OAAO,KAAK,KAAG,QAAQ,IAAE,CAAC,KAAK,CAAC,IAAI;gBAAE,OAAO;YACxD,IAAI,IAAI,GAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAG,OAAO,CAAC,IAAI,CAAC;gBAAE,OAAO;YACzB,OAAO,CAAC,IAAI,CAAC,GAAC,CAAC,CAAC;YAChB,IAAI,IAAI,GAAW,EAAE,CAAC;YACtB,IAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAS,CAAM,IAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/F,IAAG,OAAO,KAAK,CAAC,QAAQ,KAAG,QAAQ,IAAE,KAAK,CAAC,QAAQ;gBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpF,OAAO,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAC,IAAI,EAAC,CAAC,CAAC;QAClG,CAAC,CAAC,CAAC;QACH,CAAC,OAAO,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,CAAM;YACnC,IAAG,CAAC,IAAE,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAC,KAAK,EAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC7E,IAAI,EAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI;YACtC,IAAI,CAAC,GAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,IAAG,CAAC,CAAC,IAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAG,GAAG,IAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAG,CAAC;gBAAE,OAAO;YACtD,IAAI,KAAK,GAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1B,IAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAG,CAAC,IAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAG,CAAC,EAAC,CAAC;gBAC1D,IAAI,MAAM,GAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvD,IAAI,OAAO,GAAC,MAAM,CAAC,GAAG,EAAE,IAAE,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,EAAC,KAAK,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAC,OAAO,EAAE,IAAI,EAAC,OAAO,EAAC,CAAC,CAAC;gBACnE,OAAO;YACT,CAAC;YACD,IAAI,IAAI,GAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAS,CAAC,IAAG,OAAO,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,IAAG,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACxB,IAAI,IAAI,GAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,GAAgB,OAAO,EAAE,IAAI,GAAW,EAAE,CAAC;YACjE,IAAI,EAAE,GAAC,CAAC,CAAC;YACT,IAAG,IAAI,CAAC,EAAE,CAAC,IAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAG,CAAC,EAAC,CAAC;gBAAC,IAAI,GAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,EAAE,CAAC;YAAC,CAAC;YACzG,OAAK,EAAE,GAAC,IAAI,CAAC,MAAM,EAAC,EAAE,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,IAAI,EAAE,IAAI,EAAC,IAAI,EAAE,QAAQ,EAAC,IAAI,EAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,GAAG,GAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI;QAC9C,WAAW,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,oBAAoB;YAC5D,OAAO,EAAC,qCAAqC;gBAC3C,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAA,CAAC,CAAA,IAAI,CAAC,GAAC,iEAAiE;gBAC/G,iEAAiE;YACnE,IAAI,EAAC,IAAI,EAAE,KAAK,EAAC,UAAU,EAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,IAAG,CAAC,OAAO,CAAC,MAAM,IAAE,CAAC,OAAO,CAAC,MAAM,IAAE,GAAG,KAAG,MAAM;QAC/C,WAAW,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,iBAAiB;YACzD,OAAO,EAAC,oFAAoF;YAC5F,IAAI,EAAC,IAAI,EAAE,KAAK,EAAC,UAAU,EAAC,CAAC,CAAC;IAElC,OAAO,EAAC,SAAS,EAAC,GAAG,EAAE,WAAW,EAAC,WAAW,EAAE,MAAM,EAAC,GAAG;QAClD,WAAW,EAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAC,OAAO,CAAC,MAAM,EAAC,CAAC;AAClE,CAAC;AAED,sEAAsE;AACtE,SAAS,gBAAgB,CAAC,GAAiC;IACzD,IAAG,CAAC,GAAG;QAAE,OAAO,sBAAsB,CAAC;IACvC,IAAI,CAAC,GAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,GAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAE,EAAE,CAAC,CAAC,MAAM,CAAC;IAC3F,IAAI,IAAI,GAAC,CAAC,CAAC,GAAC,SAAS,GAAC,CAAC,CAAC,KAAG,CAAC,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,GAAG,CAAC,CAAC,CAAC;IACtC,IAAG,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAC,SAAS,GAAC,CAAC,CAAC,KAAG,CAAC,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,GAAG,CAAC,CAAC,CAAC;IAC5C,IAAG,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAC,WAAW,GAAC,CAAC,IAAI,KAAG,CAAC,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,GAAG,CAAC,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"} \ No newline at end of file diff --git a/dist/src/exporters.js b/dist/src/exporters.js index 1fc2edf..1a77c97 100644 --- a/dist/src/exporters.js +++ b/dist/src/exporters.js @@ -51,6 +51,10 @@ function provenanceComment(graph) { } if (n.objectId) bits.push('object=' + n.objectId); + if (n.resolution) + bits.push('resolution=' + n.resolution); + if (n.resolvedName) + bits.push('resolved=' + n.resolvedName); if (n.reason) bits.push('reason=' + n.reason); lines.push('%% ' + bits.join(' ')); @@ -500,6 +504,10 @@ function toDrawio(graph, opts) { meta.push('span=' + n.source.start + '-' + n.source.end); if (n.objectId) meta.push('object=' + n.objectId); + if (n.resolution) + meta.push('resolution=' + n.resolution); + if (n.resolvedName) + meta.push('resolved=' + n.resolvedName); if (n.reason) meta.push('reason=' + n.reason); var metaAttr = meta.length ? ' data-procflow="' + xmlAttr(meta.join(' ')) + '"' : ''; diff --git a/dist/src/exporters.js.map b/dist/src/exporters.js.map index cc70ecc..67d9535 100644 --- a/dist/src/exporters.js.map +++ b/dist/src/exporters.js.map @@ -1 +1 @@ -{"version":3,"file":"exporters.js","sourceRoot":"","sources":["../../src/exporters.ts"],"names":[],"mappings":";AAWA,IAAI,oBAAoB,GAA+B;IACrD,KAAK,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IAC1G,IAAI,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACzG,MAAM,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IAC3G,EAAE,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACvG,MAAM,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IAC3G,IAAI,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACzG,IAAI,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACzG,IAAI,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACzG,IAAI,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACzG,GAAG,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACxG,KAAK,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IAC1G,GAAG,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACxG,GAAG,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACxG,IAAI,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACzG,MAAM,EAAC,EAAC,OAAO,EAAC,gEAAgE,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IAChI,OAAO,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IAC5G,GAAG,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACxG,GAAG,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACxG,KAAK,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;CAC3G,CAAC;AACF,IAAI,oBAAoB,GAAyB;IAC/C,OAAO,EAAC,OAAO,EAAE,SAAS,EAAC,QAAQ,EAAE,IAAI,EAAC,OAAO,EAAE,UAAU,EAAC,OAAO,EAAE,IAAI,EAAC,OAAO;CACpF,CAAC;AACF,IAAI,oBAAoB,GAAyB;IAC/C,OAAO,EAAC,SAAS,EAAE,SAAS,EAAC,SAAS,EAAE,IAAI,EAAC,SAAS,EAAE,UAAU,EAAC,SAAS,EAAE,IAAI,EAAC,SAAS;CAC7F,CAAC;AACF,IAAI,oBAAoB,GAAyB;IAC/C,OAAO,EAAC,CAAC,EAAE,SAAS,EAAC,CAAC,EAAE,IAAI,EAAC,CAAC,EAAE,UAAU,EAAC,CAAC,EAAE,IAAI,EAAC,CAAC;CACrD,CAAC;AAEF;kFACkF;AAClF,SAAS,cAAc,CAAC,CAAY;IAClC,IAAG,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC,KAAK,CAAC;IAC3C,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAY;IACrC,IAAI,KAAK,GAAW,CAAC,yBAAyB,CAAC,CAAC;IAChD,CAAC,KAAK,CAAC,KAAK,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;QAClC,IAAI,IAAI,GAAW,CAAC,CAAC,CAAC,EAAE,GAAC,GAAG,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACpC,IAAG,CAAC,CAAC,UAAU;YAAE,IAAI,CAAC,IAAI,CAAC,aAAa,GAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACvD,IAAG,CAAC,CAAC,OAAO,IAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAC,CAAC;YAC9B,oEAAoE;YACpE,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,KAAK,GAAC,GAAG,GAAC,CAAC,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACtF,CAAC;aAAM,IAAG,CAAC,CAAC,MAAM,EAAC,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAC,GAAG,GAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC;QACD,IAAG,CAAC,CAAC,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,GAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,SAAS,CAAC,KAAY,EAAE,GAAsB;IACrD,IAAI,CAAC,GAAW,CAAC,YAAY,GAAC,CAAC,GAAG,IAAE,IAAI,CAAC,CAAC,CAAC;IAC3C,IAAI,IAAI,GAAmC,EAAC,IAAI,EAAC,CAAC,IAAI,EAAC,IAAI,CAAC,EAAE,OAAO,EAAC,CAAC,IAAI,EAAC,IAAI,CAAC,EAAE,GAAG,EAAC,CAAC,KAAK,EAAC,KAAK,CAAC;QAC1F,KAAK,EAAC,CAAC,KAAK,EAAC,KAAK,CAAC,EAAE,MAAM,EAAC,CAAC,IAAI,EAAC,IAAI,CAAC,EAAE,EAAE,EAAC,CAAC,KAAK,EAAC,KAAK,CAAC,EAAE,IAAI,EAAC,CAAC,KAAK,EAAC,KAAK,CAAC,EAAC,CAAC;IACzF,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,IAAG,CAAC,CAAC,KAAK,KAAG,IAAI;QAAE,CAAC,CAAC,GAAG,GAAC,CAAC,CAAC,GAAG,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;QAC5B,IAAI,KAAK,GAAC,CAAC,CAAC,KAAK,CAAC;QAClB,IAAG,KAAK,KAAG,MAAM,IAAE,CAAC,CAAC,GAAG,KAAG,IAAI;YAAE,KAAK,GAAC,IAAI,CAAC;QAC5C,IAAG,KAAK,KAAG,MAAM,IAAE,CAAC,CAAC,GAAG,KAAG,MAAM;YAAE,KAAK,GAAC,MAAM,CAAC;QAChD,IAAI,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,IAAE,IAAI,CAAC,IAAI,CAAC;QAC7B,IAAI,KAAK,GAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC,CAAC,IAAI,CAAC,IAAI,GAAC,CAAC,CAAC,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;QAC5B,IAAI,IAAI,GAAC,CAAC,CAAC,IAAI,IAAE,SAAS,CAAC;QAC3B,IAAI,MAAM,GAAC,CAAC,CAAC,KAAK,KAAG,QAAQ,IAAE,oBAAoB,CAAC,IAAI,CAAC,KAAG,QAAQ,CAAC;QACrE,IAAI,KAAK,GAAC,MAAM,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,KAAK,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,GAAC,CAAC,CAAC,IAAI,GAAC,GAAG,GAAC,KAAK,GAAC,CAAC,CAAC,CAAC,KAAK,CAAA,CAAC,CAAA,GAAG,GAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,EAAE,CAAC,GAAC,GAAG,GAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IACH,+EAA+E;IAC/E,IAAI,OAAO,GAAW,EAAE,CAAC;IACzB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,IAAG,CAAC,CAAC,IAAI,KAAG,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAG,OAAO,CAAC,MAAM;QACf,CAAC,CAAC,IAAI,CAAC,cAAc,GAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAC,UAAU,GAAC,oBAAoB,CAAC,IAAI;YACrE,gBAAgB,GAAC,oBAAoB,CAAC,IAAI,GAAC,KAAK,CAAC,CAAC;IAC3D,qDAAqD;IACrD,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,sEAAsE;IACtE,IAAI,OAAO,GAA2B,EAAE,CAAC;IACzC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;QACrC,IAAI,GAAG,GAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QAChC,IAAG,CAAC,GAAG;YAAE,OAAO;QAChB,IAAI,IAAI,GAAC,IAAI,GAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAG,yCAAyC;QAC/F,CAAC,CAAC,IAAI,CAAC,aAAa,GAAC,IAAI,GAAC,GAAG,GAAC,GAAG,CAAC,OAAO,GAAC,oBAAoB,CAAC,CAAC;QAChE,CAAC,CAAC,IAAI,CAAC,UAAU,GAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAC,GAAG,GAAC,IAAI,GAAC,GAAG,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,0CAA0C;AAC1C,SAAS,OAAO,CAAC,CAAU;IACzB,OAAO,MAAM,CAAC,CAAC,KAAG,SAAS,IAAE,CAAC,KAAG,IAAI,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC;SACxC,OAAO,CAAC,IAAI,EAAC,OAAO,CAAC;SACrB,OAAO,CAAC,IAAI,EAAC,QAAQ,CAAC;SACtB,OAAO,CAAC,IAAI,EAAC,MAAM,CAAC;SACpB,OAAO,CAAC,IAAI,EAAC,MAAM,CAAC;SACpB,OAAO,CAAC,UAAU,EAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;yBAQyB;AACzB,IAAI,eAAe,GAAC,GAAG,EAAE,eAAe,GAAC,GAAG,CAAC;AAC7C,IAAI,kBAAkB,GAAC,GAAG,EAAE,kBAAkB,GAAC,GAAG,CAAC;AACnD,IAAI,eAAe,GAAC,GAAG,EAAE,eAAe,GAAC,GAAG,EAAE,aAAa,GAAC,EAAE,CAAC;AAC/D,IAAI,uBAAuB,GAAC,EAAE,EAAE,qBAAqB,GAAC,EAAE,CAAC;AAEzD,SAAS,OAAO,CAAC,CAAY;IAC3B,IAAI,CAAC,GAAC,GAAG,EAAC,CAAC,GAAC,EAAE,CAAC;IACf,IAAG,CAAC,CAAC,KAAK,KAAG,SAAS,EAAC,CAAC;QAAC,CAAC,GAAC,GAAG,CAAC;QAAC,CAAC,GAAC,EAAE,CAAC;IAAC,CAAC;SAClC,IAAG,CAAC,CAAC,KAAK,KAAG,KAAK,EAAC,CAAC;QAAC,CAAC,GAAC,GAAG,CAAC;QAAC,CAAC,GAAC,EAAE,CAAC;IAAC,CAAC;SACnC,IAAG,CAAC,CAAC,KAAK,KAAG,OAAO,EAAC,CAAC;QAAC,CAAC,GAAC,GAAG,CAAC;QAAC,CAAC,GAAC,EAAE,CAAC;IAAC,CAAC;SACrC,IAAG,CAAC,CAAC,KAAK,KAAG,QAAQ,EAAC,CAAC;QAAC,CAAC,GAAC,GAAG,CAAC;QAAC,CAAC,GAAC,EAAE,CAAC;IAAC,CAAC;SACtC,IAAG,CAAC,CAAC,KAAK,KAAG,IAAI,IAAE,CAAC,CAAC,GAAG,KAAG,KAAK,EAAC,CAAC;QAAC,CAAC,GAAC,GAAG,CAAC;QAAC,CAAC,GAAC,EAAE,CAAC;IAAC,CAAC;IACtD,OAAO,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;AACnB,CAAC;AAED;;6BAE6B;AAC7B,SAAS,cAAc,CAAC,CAAY;IAClC,OAAO,CAAC,CAAC,IAAI,KAAG,MAAM,IAAE,CAAC,CAAC,KAAK,KAAG,QAAQ,CAAC;AAC7C,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAY,EAAE,KAA6B,EACpE,KAA6B;IAC/B,IAAI,KAAK,GAAC,CAAC,KAAK,CAAC,KAAK,IAAE,EAAE,CAAC,CAAC,MAAM,CAAC,UAAS,CAAC;QAC3C,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAG,SAAS,IAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAG,SAAS,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,IAAI,SAAS,GAAC,CAAC,CAAC;IAChB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,KAAK,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;QAC9B,KAAI,IAAI,CAAC,GAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,KAAK,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;YAChC,IAAI,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAG,CAAC,CAAC,IAAI,KAAG,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,IAAI,KAAG,CAAC,CAAC,EAAE,IAAE,CAAC,CAAC,EAAE,KAAG,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,EAAE,KAAG,CAAC,CAAC,EAAE;gBAAE,SAAS;YACxE,IAAI,WAAW,GAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzE,IAAI,WAAW,GAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzE,IAAG,CAAC,WAAW,IAAE,CAAC,WAAW;gBAAE,SAAS;YACxC,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpF,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAChF,IAAG,GAAG,KAAG,GAAG;gBAAE,SAAS,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAyC;IAClE,IAAI,GAAG,GAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC;IACpC,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,GAAG,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;QAC5B,IAAI,CAAC,GAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,KAAI,IAAI,CAAC,GAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,GAAG,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;YAC9B,IAAI,CAAC,GAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACxB,IAAG,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,GAAG,IAAE,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,GAAG;gBAChC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,GAAG,IAAE,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,GAAG;gBAAE,CAAC,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,cAAc,CAAC,KAAY,EAAE,GAAsB;IAC1D,IAAI,KAAK,GAAC,KAAK,CAAC,KAAK,IAAE,EAAE,EAAE,KAAK,GAAC,KAAK,CAAC,KAAK,IAAE,EAAE,CAAC;IACjD,IAAI,IAAI,GAA4B,EAAE,EAAE,OAAO,GAAyB,EAAE,CAAC;IAC3E,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAI,UAAU,GAAC,UAAS,EAAU,IAAY,OAAO,OAAO,CAAC,EAAE,CAAC,KAAG,SAAS,CAAA,CAAC,CAAA,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9F,6DAA6D;IAC7D,IAAI,GAAG,GAA2B,EAAE,CAAC;IACrC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;QACtB,IAAG,CAAC,cAAc,CAAC,CAAC,CAAC;YAAE,OAAO;QAC9B,IAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,OAAO;QACtC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,6DAA6D;IAC7D,IAAI,IAAI,GAAyB,EAAE,EAAE,UAAU,GAAa,EAAE,CAAC;IAC/D,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;QACtB,IAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,OAAO;QACtB,IAAI,IAAI,GAAW,EAAE,EAAE,KAAK,GAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC;QACb,OAAM,KAAK,CAAC,MAAM,EAAC,CAAC;YAClB,IAAI,EAAE,GAAC,KAAK,CAAC,GAAG,EAAY,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACd,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,OAAO,UAAU,CAAC,CAAC,CAAC,GAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvE,OAAO,CAAC,UAAS,CAAC,IAAG,IAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,OAAO,UAAU,CAAC,CAAC,CAAC,GAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,IAAI,KAAK,GAAyB,EAAE,EAAE,SAAS,GAAoC,EAAE,CAAC;IACtF,IAAI,IAAI,GAAC,CAAC,CAAC;IACX,UAAU,CAAC,OAAO,CAAC,UAAS,IAAI;QAC9B,IAAI,MAAM,GAAgC,EAAE,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,MAAM,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,GAAG,GAA2B,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,GAAG,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;YACtB,IAAG,CAAC,cAAc,CAAC,CAAC,CAAC;gBAAE,OAAO;YAC9B,IAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,OAAO;YAC1C,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,0DAA0D;QAC1D,IAAI,KAAK,GAAyB,EAAE,EAAE,SAAS,GAAoC,EAAE,CAAC;QACtF,SAAS,GAAG,CAAC,EAAU,EAAE,KAAa;YACpC,IAAG,KAAK,GAAC,IAAI,CAAC,MAAM,GAAC,CAAC,GAAC,CAAC,IAAE,KAAK,CAAC,EAAE,CAAC,KAAG,CAAC;gBAAE,OAAO;YAChD,KAAK,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC;YACZ,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,OAAO,UAAU,CAAC,CAAC,CAAC,GAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvE,OAAO,CAAC,UAAS,EAAE;gBAClB,IAAG,KAAK,CAAC,EAAE,CAAC,KAAG,CAAC;oBAAE,SAAS,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC;qBAC7C,IAAG,KAAK,CAAC,EAAE,CAAC,KAAG,CAAC;oBAAE,GAAG,CAAC,EAAE,EAAC,KAAK,GAAC,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;YACL,KAAK,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC;QACd,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,IAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,GAAG,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAExD,0EAA0E;QAC1E,IAAI,OAAO,GAAgC,EAAE,CAAC;QAC9C,SAAS,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,OAAO,CAAC,CAAC,CAAC,IAAI,GAAC,GAAG,GAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,IAAI,KAAK,GAAyB,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,KAAK,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,OAAO,GAA2B,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,OAAO,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE;YACtB,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,EAAE;gBACzB,IAAG,OAAO,CAAC,EAAE,GAAC,GAAG,GAAC,EAAE,CAAC;oBAAE,OAAO;gBAC9B,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,KAAK,GAAW,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,IAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,OAAO,UAAU,CAAC,CAAC,CAAC,GAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,IAAI,GAAW,EAAE,EAAE,EAAE,GAAC,CAAC,CAAC;QAC5B,OAAM,EAAE,GAAC,KAAK,CAAC,MAAM,EAAC,CAAC;YACrB,IAAI,EAAE,GAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACd,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,OAAO,UAAU,CAAC,CAAC,CAAC,GAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3E,OAAO,CAAC,UAAS,EAAE,IAAG,IAAG,EAAE,KAAK,CAAC,EAAE,CAAC,KAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,IAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpE,IAAI,IAAI,GAA2B,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,IAAI,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE;YACtB,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,IAAI,SAAS,GAAyB,EAAE,EAAE,QAAQ,GAAC,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE;YACtB,IAAI,IAAI,GAAC,CAAC,CAAC;YACX,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;gBACzB,IAAG,SAAS,CAAC,CAAC,CAAC,KAAG,SAAS;oBAAE,IAAI,GAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC;YACnB,IAAG,IAAI,GAAC,QAAQ;gBAAE,QAAQ,GAAC,IAAI,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,KAAK,CAAC,EAAE,CAAC,GAAC,IAAI,GAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,SAAS,GAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,IAAE,QAAQ,GAAC,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,yDAAyD;IACzD,IAAI,UAAU,GAAC,IAAI,CAAC;IACpB,IAAI,MAAM,GAAa,EAAE,CAAC;IAC1B,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,UAAU,EAAC,CAAC,EAAE;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;QACtB,IAAI,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClB,IAAG,CAAC,KAAG,SAAS,EAAC,CAAC;YAAC,CAAC,GAAC,IAAI,CAAC;YAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;QACvE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,OAAO,UAAU,CAAC,CAAC,CAAC,GAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7F;uFACmF;IACnF,IAAI,SAAS,GAAyB,EAAE,CAAC;IACzC,SAAS,OAAO;QACd,MAAM,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,CAAC,CAAC,OAAO,CAAC,UAAS,EAAE,EAAC,CAAC,IAAG,SAAS,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,EAAE,CAAC;IACV,SAAS,UAAU,CAAC,CAAS,EAAE,QAAgB;QAC7C,IAAI,CAAC,GAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,GAAC,SAAS,CAAC;QAChC,IAAI,MAAM,GAAC,CAAC,CAAC,GAAG,CAAC,UAAS,EAAE;YAC1B,IAAI,KAAK,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC;YAChB,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;gBACtB,IAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAG,QAAQ,IAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAG,QAAQ;oBAAE,OAAO;gBAC5D,IAAG,CAAC,CAAC,EAAE,KAAG,EAAE,IAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAG,QAAQ,EAAC,CAAC;oBAAC,KAAK,IAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAAC,CAAC,EAAE,CAAC;gBAAC,CAAC;qBAC/D,IAAG,CAAC,CAAC,IAAI,KAAG,EAAE,IAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAG,QAAQ,EAAC,CAAC;oBAAC,KAAK,IAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAC,CAAC,EAAE,CAAC;gBAAC,CAAC;YACzE,CAAC,CAAC,CAAC;YACH,OAAO,EAAC,EAAE,EAAC,EAAE,EAAE,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,KAAK,GAAC,CAAC,CAAA,CAAC,CAAA,GAAG,EAAE,CAAC,EAAC,IAAI,CAAC,EAAE,CAAC,EAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC;YACtB,IAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC;YACxB,IAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC;YACzB,IAAG,CAAC,CAAC,CAAC,KAAG,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,CAAC,CAAC,GAAC,MAAM,CAAC,GAAG,CAAC,UAAS,CAAC,IAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,KAAI,IAAI,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,CAAC,EAAC,EAAE,EAAE,EAAC,CAAC;QACtB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,MAAM,CAAC,MAAM,EAAC,CAAC,EAAE;YAAE,UAAU,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC;QACnD,KAAI,IAAI,CAAC,GAAC,MAAM,CAAC,MAAM,GAAC,CAAC,EAAC,CAAC,IAAE,CAAC,EAAC,CAAC,EAAE;YAAE,UAAU,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,yBAAyB;IACzB,IAAI,KAAK,GAAyB,EAAE,CAAC;IACrC,MAAM,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,CAAC,CAAC,OAAO,CAAC,UAAS,EAAE,EAAC,CAAC,IAAG,KAAK,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1E;8CAC0C;IAC1C,IAAI,OAAO,GAAC,GAAG,KAAG,IAAI,CAAC;IACvB,IAAI,OAAO,GAAC,OAAO,CAAA,CAAC,CAAA,eAAe,CAAA,CAAC,CAAA,kBAAkB,CAAC;IACvD,IAAI,OAAO,GAAC,OAAO,CAAA,CAAC,CAAA,eAAe,CAAA,CAAC,CAAA,kBAAkB,CAAC;IACvD,IAAI,SAAS,GAAiC,EAAE,CAAC;IACjD,MAAM,CAAC,OAAO,CAAC,UAAS,CAAC,EAAC,CAAC;QACzB,IAAI,IAAI,GAAC,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,GAAC,OAAO,CAAC;QAC9B,CAAC,CAAC,OAAO,CAAC,UAAS,EAAE,EAAC,CAAC;YACrB,IAAI,GAAG,GAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,IAAI,KAAK,GAAC,CAAC,GAAC,OAAO,GAAC,IAAI,GAAC,CAAC,CAAC;YAC3B,SAAS,CAAC,EAAE,CAAC,GAAC,OAAO;gBACnB,CAAC,CAAC,EAAC,CAAC,EAAC,eAAe,GAAC,KAAK,GAAC,GAAG,CAAC,CAAC,GAAC,CAAC,EAAE,CAAC,EAAC,aAAa,GAAC,CAAC,GAAC,OAAO,EAAE,CAAC,EAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAC,GAAG,CAAC,CAAC,EAAC;gBAChF,CAAC,CAAC,EAAC,CAAC,EAAC,aAAa,GAAC,CAAC,GAAC,OAAO,EAAE,CAAC,EAAC,eAAe,GAAC,KAAK,GAAC,GAAG,CAAC,CAAC,GAAC,CAAC,EAAE,CAAC,EAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAC,GAAG,CAAC,CAAC,EAAC,CAAC;QACrF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,GAAC,CAAC,EAAE,aAAa,GAAC,CAAC,CAAC;IACjC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;QACtB,IAAG,CAAC,cAAc,CAAC,CAAC,CAAC;YAAE,OAAO;QAC9B,IAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAG,SAAS,IAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAG,SAAS;YAAE,OAAO;QAC9D,aAAa,EAAE,CAAC;QAChB,IAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,SAAS,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAC,KAAK,EAAE,KAAK,EAAC,KAAK,EAAE,MAAM,EAAC,MAAM,EAAE,SAAS,EAAC,SAAS;QAC5D,SAAS,EAAC,SAAS;QACnB,SAAS,EAAC,mBAAmB,CAAC,KAAK,EAAC,KAAK,EAAC,KAAK,CAAC;QAChD,QAAQ,EAAC,iBAAiB,CAAC,SAAS,CAAC;QACrC,aAAa,EAAC,aAAa,EAAE,cAAc,EAAC,SAAS;QACrD,SAAS,EAAC,CAAC,KAAK,CAAC,KAAK,IAAE,EAAE,CAAC,CAAC,MAAM,CAAC,UAAS,CAAC;YAC3C,OAAO,CAAC,CAAC,IAAI,KAAG,MAAM,IAAE,CAAC,CAAC,KAAK,KAAG,QAAQ,CAAC;QAC7C,CAAC,CAAC,CAAC,MAAM;QACT,QAAQ,EAAC,CAAC,mBAAmB,CAAC,KAAK,EAAC,KAAK,EAAC,KAAK,CAAC,GAAC,CAAC;YAChD,CAAC,CAAC,CAAC,0EAA0E,CAAC;YAC9E,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAY,EAAE,GAAsB;IACxD,OAAO,cAAc,CAAC,KAAK,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC;AAC7C,CAAC;AAED;;8EAE8E;AAC9E,SAAS,aAAa,CAAC,KAAY,EAAE,SAAyC,EAC1E,GAAsB;IACxB,IAAI,GAAG,GAAmC,EAAE,CAAC;IAC7C,IAAI,OAAO,GAAC,GAAG,KAAG,IAAI,CAAC;IACvB,IAAI,OAAO,GAAC,CAAC,CAAC;IACd,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAS,EAAE;QACxC,IAAI,CAAC,GAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACpB,IAAG,OAAO;YAAE,OAAO,GAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,GAAC,eAAe,CAAC,CAAC,CAAC;;YACrE,OAAO,GAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,GAAC,eAAe,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IACH,IAAI,IAAI,GAAC,CAAC,CAAC;IACX,CAAC,KAAK,CAAC,KAAK,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC,EAAC,GAAG;QACtC,IAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAG,MAAM,IAAE,CAAC,CAAC,KAAK,KAAG,QAAQ,CAAC;YAAE,OAAO;QAClD,IAAI,CAAC,GAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAG,CAAC,CAAC,IAAE,CAAC,CAAC;YAAE,OAAO;QAClB,IAAG,OAAO,EAAC,CAAC;YACV,IAAI,KAAK,GAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAC,OAAO,GAAC,uBAAuB,GAAC,IAAI,GAAC,qBAAqB,CAAC,CAAC;YACjG,GAAG,CAAC,GAAG,GAAC,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC,GAAC;gBACf,EAAC,CAAC,EAAC,KAAK,EAAE,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,EAAC;gBAClC,EAAC,CAAC,EAAC,KAAK,EAAE,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,EAAC;aACnC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,GAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAC,OAAO,GAAC,uBAAuB,GAAC,IAAI,GAAC,qBAAqB,CAAC,CAAC;YACjG,GAAG,CAAC,GAAG,GAAC,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC,GAAC;gBACf,EAAC,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,EAAC,KAAK,EAAC;gBAClC,EAAC,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,EAAC,KAAK,EAAC;aACnC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,SAAS,CAAC,CAAY;IAC7B,IAAI,GAAG,GAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,CAAC,GAAG,CAAC,IAAI,EAAC,GAAG,CAAC,MAAM,EAAC,GAAG,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,CAAC,SAAS,EAAC,SAAS,EAAC,SAAS,CAAC,CAAC;IACzE,IAAI,CAAC,GAAC,2DAA2D;QAC/D,iDAAiD,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,eAAe,GAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,aAAa,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,mBAAmB,CAAC;IACzC,IAAG,CAAC,CAAC,KAAK,KAAG,OAAO;QAAE,CAAC,IAAE,qCAAqC,CAAC;SAC1D,IAAG,CAAC,CAAC,KAAK,KAAG,SAAS;QAAE,CAAC,IAAE,qCAAqC,CAAC;SACjE,IAAG,CAAC,CAAC,KAAK,KAAG,KAAK;QAAE,CAAC,IAAE,4CAA4C,CAAC;SACpE,IAAG,CAAC,CAAC,KAAK,KAAG,IAAI,IAAE,CAAC,CAAC,GAAG,KAAG,IAAI,IAAE,CAAC,CAAC,GAAG,KAAG,KAAK;QAAE,CAAC,IAAE,mDAAmD,CAAC;SACvG,IAAG,CAAC,CAAC,KAAK,KAAG,MAAM,IAAE,CAAC,CAAC,GAAG,KAAG,MAAM;QAAE,CAAC,IAAE,gBAAgB,CAAC;SACzD,IAAG,CAAC,CAAC,KAAK,KAAG,QAAQ;QAAE,CAAC,IAAE,gCAAgC,CAAC;;QAC3D,CAAC,IAAE,sBAAsB,CAAC;IAC/B,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,QAAQ,CAAC,KAAY,EAAE,IAAoB;IAClD,IAAI,GAAC,IAAI,IAAE,EAAE,CAAC;IACd,IAAI,GAAG,GAAC,IAAI,CAAC,GAAG,IAAE,IAAI,CAAC;IACvB,IAAI,QAAQ,GAAC,cAAc,CAAC,KAAK,EAAC,GAAG,CAAC,CAAC;IACvC,IAAI,GAAG,GAAC,QAAQ,CAAC,SAAS,CAAC;IAC3B,IAAI,SAAS,GAAC,aAAa,CAAC,KAAK,EAAC,GAAG,EAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,KAAK,GAAC,IAAI,CAAC,KAAK,IAAE,UAAU,CAAC;IACjC,IAAI,CAAC,GAAC,CAAC,wCAAwC;QAC7C,mDAAmD;QACnD,sCAAsC,GAAC,OAAO,CAAC,KAAK,CAAC,GAAC,IAAI;QAC1D,mMAAmM;QACnM,cAAc;QACd,0BAA0B;QAC1B,qCAAqC,CAAC,CAAC;IACzC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;QAC5B,IAAI,CAAC,GAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC;QACtC;;;iFAGyE;QACzE,IAAI,IAAI,GAAW,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACxB,IAAG,CAAC,CAAC,UAAU;YAAE,IAAI,CAAC,IAAI,CAAC,aAAa,GAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACvD,IAAG,CAAC,CAAC,OAAO,IAAE,CAAC,CAAC,OAAO,CAAC,MAAM;YAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,KAAK,GAAC,GAAG,GAAC,CAAC,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aACjF,IAAG,CAAC,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,GAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAC,GAAG,GAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrE,IAAG,CAAC,CAAC,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,QAAQ,GAAC,IAAI,CAAC,MAAM,CAAA,CAAC,CAAA,kBAAkB,GAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,EAAE,CAAC;QAC3E,CAAC,CAAC,IAAI,CAAC,yBAAyB,GAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,WAAW;YACxD,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,WAAW,GAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAC,yBAAyB,GAAC,QAAQ,GAAC,GAAG,CAAC,CAAC;QAC5E,CAAC,CAAC,IAAI,CAAC,2BAA2B,GAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,OAAO,GAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,WAAW,GAAC,CAAC,CAAC,CAAC,GAAC,YAAY,GAAC,CAAC,CAAC,CAAC,GAAC,mBAAmB,CAAC,CAAC;QACxD,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC,EAAC,CAAC;QAC9B,IAAI,IAAI,GAAC,CAAC,CAAC,IAAI,IAAE,SAAS,CAAC;QAC3B,IAAI,QAAQ,GAAC,oBAAoB,CAAC,IAAI,CAAC,IAAE,SAAS,CAAC;QACnD,IAAI,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAG,QAAQ,IAAE,CAAC,CAAC,KAAK,KAAG,QAAQ,CAAC;QACrE,IAAI,KAAK,GAAC,0EAA0E;YAClF,8CAA8C,GAAC,QAAQ,GAAC,qBAAqB;YAC7E,cAAc,GAAC,oBAAoB,CAAC,IAAI,CAAC,GAAC,GAAG,CAAC;QAChD,IAAG,IAAI;YAAE,KAAK,IAAE,WAAW,CAAC;QAC5B,IAAI,QAAQ,GAAC,CAAC,CAAC,IAAI,CAAA,CAAC,CAAA,uBAAuB,GAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,EAAE,CAAC;QACnE,CAAC,CAAC,IAAI,CAAC,0BAA0B,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAC,WAAW,GAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAE,EAAE,CAAC;YACtE,WAAW,GAAC,OAAO,CAAC,KAAK,CAAC,GAAC,mCAAmC,GAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9E,eAAe,GAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,GAAG,GAAC,QAAQ,GAAC,GAAG,CAAC,CAAC;QAClD,IAAI,GAAG,GAAC,SAAS,CAAC,GAAG,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAG,GAAG,IAAE,GAAG,CAAC,MAAM,EAAC,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC1C,GAAG,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,CAAC,CAAC,IAAI,CAAC,4BAA4B,GAAC,CAAC,CAAC,CAAC,GAAC,OAAO,GAAC,CAAC,CAAC,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxF,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC/B,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,CAAC,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAC/D,CAAC;QACD,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,IAAI,CAAC,eAAe,EAAC,qBAAqB,EAAC,cAAc,EAAC,WAAW,CAAC,CAAC;IACzE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CAAC,OAAe,EAAE,GAAW,EAAE,OAAgB;IACrE,IAAI,GAAG,GAAC,MAAM,CAAC,GAAG,IAAE,EAAE,CAAC,CAAC;IACxB,IAAI,GAAG,GAAC,KAAK,CAAC;IACd,IAAG,GAAG,CAAC,MAAM,GAAC,GAAG;QAAE,GAAG,GAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAC,GAAG,CAAC,GAAC,+BAA+B,CAAC;IACxE,OAAO;QACT,gGAAgG;QAChG,EAAE;QACF,wFAAwF;QACxF,sGAAsG;QACtG,gEAAgE;QAChE,EAAE;QACF,QAAQ;QACR,6FAA6F;QAC7F,0DAA0D;QAC1D,oGAAoG;QACpG,qGAAqG;QACrG,+FAA+F;QAC/F,0FAA0F;QAC1F,gFAAgF;QAChF,0DAA0D;QAC1D,EAAE;QACF,uCAAuC;QACvC,YAAY;QACZ,OAAO;QACP,KAAK;QACL,EAAE;QACF,UAAU,GAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAE,OAAO,CAAC,GAAC,sBAAsB;QACnE,QAAQ;QACR,GAAG;QACH,KAAK;KACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"} \ No newline at end of file +{"version":3,"file":"exporters.js","sourceRoot":"","sources":["../../src/exporters.ts"],"names":[],"mappings":";AAWA,IAAI,oBAAoB,GAA+B;IACrD,KAAK,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IAC1G,IAAI,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACzG,MAAM,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IAC3G,EAAE,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACvG,MAAM,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IAC3G,IAAI,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACzG,IAAI,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACzG,IAAI,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACzG,IAAI,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACzG,GAAG,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACxG,KAAK,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IAC1G,GAAG,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACxG,GAAG,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACxG,IAAI,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACzG,MAAM,EAAC,EAAC,OAAO,EAAC,gEAAgE,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IAChI,OAAO,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IAC5G,GAAG,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACxG,GAAG,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IACxG,KAAK,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;CAC3G,CAAC;AACF,IAAI,oBAAoB,GAAyB;IAC/C,OAAO,EAAC,OAAO,EAAE,SAAS,EAAC,QAAQ,EAAE,IAAI,EAAC,OAAO,EAAE,UAAU,EAAC,OAAO,EAAE,IAAI,EAAC,OAAO;CACpF,CAAC;AACF,IAAI,oBAAoB,GAAyB;IAC/C,OAAO,EAAC,SAAS,EAAE,SAAS,EAAC,SAAS,EAAE,IAAI,EAAC,SAAS,EAAE,UAAU,EAAC,SAAS,EAAE,IAAI,EAAC,SAAS;CAC7F,CAAC;AACF,IAAI,oBAAoB,GAAyB;IAC/C,OAAO,EAAC,CAAC,EAAE,SAAS,EAAC,CAAC,EAAE,IAAI,EAAC,CAAC,EAAE,UAAU,EAAC,CAAC,EAAE,IAAI,EAAC,CAAC;CACrD,CAAC;AAEF;kFACkF;AAClF,SAAS,cAAc,CAAC,CAAY;IAClC,IAAG,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC,KAAK,CAAC;IAC3C,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAY;IACrC,IAAI,KAAK,GAAW,CAAC,yBAAyB,CAAC,CAAC;IAChD,CAAC,KAAK,CAAC,KAAK,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;QAClC,IAAI,IAAI,GAAW,CAAC,CAAC,CAAC,EAAE,GAAC,GAAG,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACpC,IAAG,CAAC,CAAC,UAAU;YAAE,IAAI,CAAC,IAAI,CAAC,aAAa,GAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACvD,IAAG,CAAC,CAAC,OAAO,IAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAC,CAAC;YAC9B,oEAAoE;YACpE,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,KAAK,GAAC,GAAG,GAAC,CAAC,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACtF,CAAC;aAAM,IAAG,CAAC,CAAC,MAAM,EAAC,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAC,GAAG,GAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC;QACD,IAAG,CAAC,CAAC,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,CAAC,UAAU;YAAE,IAAI,CAAC,IAAI,CAAC,aAAa,GAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACvD,IAAG,CAAC,CAAC,YAAY;YAAE,IAAI,CAAC,IAAI,CAAC,WAAW,GAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACzD,IAAG,CAAC,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,GAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,SAAS,CAAC,KAAY,EAAE,GAAsB;IACrD,IAAI,CAAC,GAAW,CAAC,YAAY,GAAC,CAAC,GAAG,IAAE,IAAI,CAAC,CAAC,CAAC;IAC3C,IAAI,IAAI,GAAmC,EAAC,IAAI,EAAC,CAAC,IAAI,EAAC,IAAI,CAAC,EAAE,OAAO,EAAC,CAAC,IAAI,EAAC,IAAI,CAAC,EAAE,GAAG,EAAC,CAAC,KAAK,EAAC,KAAK,CAAC;QAC1F,KAAK,EAAC,CAAC,KAAK,EAAC,KAAK,CAAC,EAAE,MAAM,EAAC,CAAC,IAAI,EAAC,IAAI,CAAC,EAAE,EAAE,EAAC,CAAC,KAAK,EAAC,KAAK,CAAC,EAAE,IAAI,EAAC,CAAC,KAAK,EAAC,KAAK,CAAC,EAAC,CAAC;IACzF,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,IAAG,CAAC,CAAC,KAAK,KAAG,IAAI;QAAE,CAAC,CAAC,GAAG,GAAC,CAAC,CAAC,GAAG,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;QAC5B,IAAI,KAAK,GAAC,CAAC,CAAC,KAAK,CAAC;QAClB,IAAG,KAAK,KAAG,MAAM,IAAE,CAAC,CAAC,GAAG,KAAG,IAAI;YAAE,KAAK,GAAC,IAAI,CAAC;QAC5C,IAAG,KAAK,KAAG,MAAM,IAAE,CAAC,CAAC,GAAG,KAAG,MAAM;YAAE,KAAK,GAAC,MAAM,CAAC;QAChD,IAAI,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,IAAE,IAAI,CAAC,IAAI,CAAC;QAC7B,IAAI,KAAK,GAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC,CAAC,IAAI,CAAC,IAAI,GAAC,CAAC,CAAC,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;QAC5B,IAAI,IAAI,GAAC,CAAC,CAAC,IAAI,IAAE,SAAS,CAAC;QAC3B,IAAI,MAAM,GAAC,CAAC,CAAC,KAAK,KAAG,QAAQ,IAAE,oBAAoB,CAAC,IAAI,CAAC,KAAG,QAAQ,CAAC;QACrE,IAAI,KAAK,GAAC,MAAM,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,KAAK,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,GAAC,CAAC,CAAC,IAAI,GAAC,GAAG,GAAC,KAAK,GAAC,CAAC,CAAC,CAAC,KAAK,CAAA,CAAC,CAAA,GAAG,GAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,EAAE,CAAC,GAAC,GAAG,GAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IACH,+EAA+E;IAC/E,IAAI,OAAO,GAAW,EAAE,CAAC;IACzB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,IAAG,CAAC,CAAC,IAAI,KAAG,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAG,OAAO,CAAC,MAAM;QACf,CAAC,CAAC,IAAI,CAAC,cAAc,GAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAC,UAAU,GAAC,oBAAoB,CAAC,IAAI;YACrE,gBAAgB,GAAC,oBAAoB,CAAC,IAAI,GAAC,KAAK,CAAC,CAAC;IAC3D,qDAAqD;IACrD,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,sEAAsE;IACtE,IAAI,OAAO,GAA2B,EAAE,CAAC;IACzC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;QACrC,IAAI,GAAG,GAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QAChC,IAAG,CAAC,GAAG;YAAE,OAAO;QAChB,IAAI,IAAI,GAAC,IAAI,GAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAG,yCAAyC;QAC/F,CAAC,CAAC,IAAI,CAAC,aAAa,GAAC,IAAI,GAAC,GAAG,GAAC,GAAG,CAAC,OAAO,GAAC,oBAAoB,CAAC,CAAC;QAChE,CAAC,CAAC,IAAI,CAAC,UAAU,GAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAC,GAAG,GAAC,IAAI,GAAC,GAAG,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,0CAA0C;AAC1C,SAAS,OAAO,CAAC,CAAU;IACzB,OAAO,MAAM,CAAC,CAAC,KAAG,SAAS,IAAE,CAAC,KAAG,IAAI,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC;SACxC,OAAO,CAAC,IAAI,EAAC,OAAO,CAAC;SACrB,OAAO,CAAC,IAAI,EAAC,QAAQ,CAAC;SACtB,OAAO,CAAC,IAAI,EAAC,MAAM,CAAC;SACpB,OAAO,CAAC,IAAI,EAAC,MAAM,CAAC;SACpB,OAAO,CAAC,UAAU,EAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;yBAQyB;AACzB,IAAI,eAAe,GAAC,GAAG,EAAE,eAAe,GAAC,GAAG,CAAC;AAC7C,IAAI,kBAAkB,GAAC,GAAG,EAAE,kBAAkB,GAAC,GAAG,CAAC;AACnD,IAAI,eAAe,GAAC,GAAG,EAAE,eAAe,GAAC,GAAG,EAAE,aAAa,GAAC,EAAE,CAAC;AAC/D,IAAI,uBAAuB,GAAC,EAAE,EAAE,qBAAqB,GAAC,EAAE,CAAC;AAEzD,SAAS,OAAO,CAAC,CAAY;IAC3B,IAAI,CAAC,GAAC,GAAG,EAAC,CAAC,GAAC,EAAE,CAAC;IACf,IAAG,CAAC,CAAC,KAAK,KAAG,SAAS,EAAC,CAAC;QAAC,CAAC,GAAC,GAAG,CAAC;QAAC,CAAC,GAAC,EAAE,CAAC;IAAC,CAAC;SAClC,IAAG,CAAC,CAAC,KAAK,KAAG,KAAK,EAAC,CAAC;QAAC,CAAC,GAAC,GAAG,CAAC;QAAC,CAAC,GAAC,EAAE,CAAC;IAAC,CAAC;SACnC,IAAG,CAAC,CAAC,KAAK,KAAG,OAAO,EAAC,CAAC;QAAC,CAAC,GAAC,GAAG,CAAC;QAAC,CAAC,GAAC,EAAE,CAAC;IAAC,CAAC;SACrC,IAAG,CAAC,CAAC,KAAK,KAAG,QAAQ,EAAC,CAAC;QAAC,CAAC,GAAC,GAAG,CAAC;QAAC,CAAC,GAAC,EAAE,CAAC;IAAC,CAAC;SACtC,IAAG,CAAC,CAAC,KAAK,KAAG,IAAI,IAAE,CAAC,CAAC,GAAG,KAAG,KAAK,EAAC,CAAC;QAAC,CAAC,GAAC,GAAG,CAAC;QAAC,CAAC,GAAC,EAAE,CAAC;IAAC,CAAC;IACtD,OAAO,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;AACnB,CAAC;AAED;;6BAE6B;AAC7B,SAAS,cAAc,CAAC,CAAY;IAClC,OAAO,CAAC,CAAC,IAAI,KAAG,MAAM,IAAE,CAAC,CAAC,KAAK,KAAG,QAAQ,CAAC;AAC7C,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAY,EAAE,KAA6B,EACpE,KAA6B;IAC/B,IAAI,KAAK,GAAC,CAAC,KAAK,CAAC,KAAK,IAAE,EAAE,CAAC,CAAC,MAAM,CAAC,UAAS,CAAC;QAC3C,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAG,SAAS,IAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAG,SAAS,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,IAAI,SAAS,GAAC,CAAC,CAAC;IAChB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,KAAK,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;QAC9B,KAAI,IAAI,CAAC,GAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,KAAK,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;YAChC,IAAI,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAG,CAAC,CAAC,IAAI,KAAG,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,IAAI,KAAG,CAAC,CAAC,EAAE,IAAE,CAAC,CAAC,EAAE,KAAG,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,EAAE,KAAG,CAAC,CAAC,EAAE;gBAAE,SAAS;YACxE,IAAI,WAAW,GAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzE,IAAI,WAAW,GAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzE,IAAG,CAAC,WAAW,IAAE,CAAC,WAAW;gBAAE,SAAS;YACxC,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpF,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAChF,IAAG,GAAG,KAAG,GAAG;gBAAE,SAAS,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAyC;IAClE,IAAI,GAAG,GAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC;IACpC,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,GAAG,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;QAC5B,IAAI,CAAC,GAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,KAAI,IAAI,CAAC,GAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,GAAG,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;YAC9B,IAAI,CAAC,GAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACxB,IAAG,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,GAAG,IAAE,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,GAAG;gBAChC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,GAAG,IAAE,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,GAAG;gBAAE,CAAC,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,cAAc,CAAC,KAAY,EAAE,GAAsB;IAC1D,IAAI,KAAK,GAAC,KAAK,CAAC,KAAK,IAAE,EAAE,EAAE,KAAK,GAAC,KAAK,CAAC,KAAK,IAAE,EAAE,CAAC;IACjD,IAAI,IAAI,GAA4B,EAAE,EAAE,OAAO,GAAyB,EAAE,CAAC;IAC3E,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAI,UAAU,GAAC,UAAS,EAAU,IAAY,OAAO,OAAO,CAAC,EAAE,CAAC,KAAG,SAAS,CAAA,CAAC,CAAA,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9F,6DAA6D;IAC7D,IAAI,GAAG,GAA2B,EAAE,CAAC;IACrC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;QACtB,IAAG,CAAC,cAAc,CAAC,CAAC,CAAC;YAAE,OAAO;QAC9B,IAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,OAAO;QACtC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,6DAA6D;IAC7D,IAAI,IAAI,GAAyB,EAAE,EAAE,UAAU,GAAa,EAAE,CAAC;IAC/D,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;QACtB,IAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,OAAO;QACtB,IAAI,IAAI,GAAW,EAAE,EAAE,KAAK,GAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC;QACb,OAAM,KAAK,CAAC,MAAM,EAAC,CAAC;YAClB,IAAI,EAAE,GAAC,KAAK,CAAC,GAAG,EAAY,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACd,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,OAAO,UAAU,CAAC,CAAC,CAAC,GAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvE,OAAO,CAAC,UAAS,CAAC,IAAG,IAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC;gBAAC,IAAI,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,OAAO,UAAU,CAAC,CAAC,CAAC,GAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,IAAI,KAAK,GAAyB,EAAE,EAAE,SAAS,GAAoC,EAAE,CAAC;IACtF,IAAI,IAAI,GAAC,CAAC,CAAC;IACX,UAAU,CAAC,OAAO,CAAC,UAAS,IAAI;QAC9B,IAAI,MAAM,GAAgC,EAAE,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,MAAM,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,GAAG,GAA2B,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,GAAG,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;YACtB,IAAG,CAAC,cAAc,CAAC,CAAC,CAAC;gBAAE,OAAO;YAC9B,IAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,OAAO;YAC1C,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,0DAA0D;QAC1D,IAAI,KAAK,GAAyB,EAAE,EAAE,SAAS,GAAoC,EAAE,CAAC;QACtF,SAAS,GAAG,CAAC,EAAU,EAAE,KAAa;YACpC,IAAG,KAAK,GAAC,IAAI,CAAC,MAAM,GAAC,CAAC,GAAC,CAAC,IAAE,KAAK,CAAC,EAAE,CAAC,KAAG,CAAC;gBAAE,OAAO;YAChD,KAAK,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC;YACZ,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,OAAO,UAAU,CAAC,CAAC,CAAC,GAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvE,OAAO,CAAC,UAAS,EAAE;gBAClB,IAAG,KAAK,CAAC,EAAE,CAAC,KAAG,CAAC;oBAAE,SAAS,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC;qBAC7C,IAAG,KAAK,CAAC,EAAE,CAAC,KAAG,CAAC;oBAAE,GAAG,CAAC,EAAE,EAAC,KAAK,GAAC,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;YACL,KAAK,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC;QACd,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,IAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,GAAG,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAExD,0EAA0E;QAC1E,IAAI,OAAO,GAAgC,EAAE,CAAC;QAC9C,SAAS,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,OAAO,CAAC,CAAC,CAAC,IAAI,GAAC,GAAG,GAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,IAAI,KAAK,GAAyB,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,KAAK,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,OAAO,GAA2B,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,OAAO,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE;YACtB,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,EAAE;gBACzB,IAAG,OAAO,CAAC,EAAE,GAAC,GAAG,GAAC,EAAE,CAAC;oBAAE,OAAO;gBAC9B,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,KAAK,GAAW,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,IAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,OAAO,UAAU,CAAC,CAAC,CAAC,GAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,IAAI,GAAW,EAAE,EAAE,EAAE,GAAC,CAAC,CAAC;QAC5B,OAAM,EAAE,GAAC,KAAK,CAAC,MAAM,EAAC,CAAC;YACrB,IAAI,EAAE,GAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACd,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,OAAO,UAAU,CAAC,CAAC,CAAC,GAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3E,OAAO,CAAC,UAAS,EAAE,IAAG,IAAG,EAAE,KAAK,CAAC,EAAE,CAAC,KAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,IAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpE,IAAI,IAAI,GAA2B,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,IAAI,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE;YACtB,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,IAAI,SAAS,GAAyB,EAAE,EAAE,QAAQ,GAAC,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE;YACtB,IAAI,IAAI,GAAC,CAAC,CAAC;YACX,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;gBACzB,IAAG,SAAS,CAAC,CAAC,CAAC,KAAG,SAAS;oBAAE,IAAI,GAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC;YACnB,IAAG,IAAI,GAAC,QAAQ;gBAAE,QAAQ,GAAC,IAAI,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,UAAS,EAAE,IAAG,KAAK,CAAC,EAAE,CAAC,GAAC,IAAI,GAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,SAAS,GAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,IAAE,QAAQ,GAAC,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,yDAAyD;IACzD,IAAI,UAAU,GAAC,IAAI,CAAC;IACpB,IAAI,MAAM,GAAa,EAAE,CAAC;IAC1B,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,UAAU,EAAC,CAAC,EAAE;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;QACtB,IAAI,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClB,IAAG,CAAC,KAAG,SAAS,EAAC,CAAC;YAAC,CAAC,GAAC,IAAI,CAAC;YAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;QACvE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC,IAAG,OAAO,UAAU,CAAC,CAAC,CAAC,GAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7F;uFACmF;IACnF,IAAI,SAAS,GAAyB,EAAE,CAAC;IACzC,SAAS,OAAO;QACd,MAAM,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,CAAC,CAAC,OAAO,CAAC,UAAS,EAAE,EAAC,CAAC,IAAG,SAAS,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,EAAE,CAAC;IACV,SAAS,UAAU,CAAC,CAAS,EAAE,QAAgB;QAC7C,IAAI,CAAC,GAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,GAAC,SAAS,CAAC;QAChC,IAAI,MAAM,GAAC,CAAC,CAAC,GAAG,CAAC,UAAS,EAAE;YAC1B,IAAI,KAAK,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC;YAChB,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;gBACtB,IAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAG,QAAQ,IAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAG,QAAQ;oBAAE,OAAO;gBAC5D,IAAG,CAAC,CAAC,EAAE,KAAG,EAAE,IAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAG,QAAQ,EAAC,CAAC;oBAAC,KAAK,IAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAAC,CAAC,EAAE,CAAC;gBAAC,CAAC;qBAC/D,IAAG,CAAC,CAAC,IAAI,KAAG,EAAE,IAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAG,QAAQ,EAAC,CAAC;oBAAC,KAAK,IAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAC,CAAC,EAAE,CAAC;gBAAC,CAAC;YACzE,CAAC,CAAC,CAAC;YACH,OAAO,EAAC,EAAE,EAAC,EAAE,EAAE,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,KAAK,GAAC,CAAC,CAAA,CAAC,CAAA,GAAG,EAAE,CAAC,EAAC,IAAI,CAAC,EAAE,CAAC,EAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC;YACtB,IAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC;YACxB,IAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC;YACzB,IAAG,CAAC,CAAC,CAAC,KAAG,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,CAAC,CAAC,GAAC,MAAM,CAAC,GAAG,CAAC,UAAS,CAAC,IAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,KAAI,IAAI,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,CAAC,EAAC,EAAE,EAAE,EAAC,CAAC;QACtB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,MAAM,CAAC,MAAM,EAAC,CAAC,EAAE;YAAE,UAAU,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC;QACnD,KAAI,IAAI,CAAC,GAAC,MAAM,CAAC,MAAM,GAAC,CAAC,EAAC,CAAC,IAAE,CAAC,EAAC,CAAC,EAAE;YAAE,UAAU,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,yBAAyB;IACzB,IAAI,KAAK,GAAyB,EAAE,CAAC;IACrC,MAAM,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,CAAC,CAAC,OAAO,CAAC,UAAS,EAAE,EAAC,CAAC,IAAG,KAAK,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1E;8CAC0C;IAC1C,IAAI,OAAO,GAAC,GAAG,KAAG,IAAI,CAAC;IACvB,IAAI,OAAO,GAAC,OAAO,CAAA,CAAC,CAAA,eAAe,CAAA,CAAC,CAAA,kBAAkB,CAAC;IACvD,IAAI,OAAO,GAAC,OAAO,CAAA,CAAC,CAAA,eAAe,CAAA,CAAC,CAAA,kBAAkB,CAAC;IACvD,IAAI,SAAS,GAAiC,EAAE,CAAC;IACjD,MAAM,CAAC,OAAO,CAAC,UAAS,CAAC,EAAC,CAAC;QACzB,IAAI,IAAI,GAAC,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,GAAC,OAAO,CAAC;QAC9B,CAAC,CAAC,OAAO,CAAC,UAAS,EAAE,EAAC,CAAC;YACrB,IAAI,GAAG,GAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,IAAI,KAAK,GAAC,CAAC,GAAC,OAAO,GAAC,IAAI,GAAC,CAAC,CAAC;YAC3B,SAAS,CAAC,EAAE,CAAC,GAAC,OAAO;gBACnB,CAAC,CAAC,EAAC,CAAC,EAAC,eAAe,GAAC,KAAK,GAAC,GAAG,CAAC,CAAC,GAAC,CAAC,EAAE,CAAC,EAAC,aAAa,GAAC,CAAC,GAAC,OAAO,EAAE,CAAC,EAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAC,GAAG,CAAC,CAAC,EAAC;gBAChF,CAAC,CAAC,EAAC,CAAC,EAAC,aAAa,GAAC,CAAC,GAAC,OAAO,EAAE,CAAC,EAAC,eAAe,GAAC,KAAK,GAAC,GAAG,CAAC,CAAC,GAAC,CAAC,EAAE,CAAC,EAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAC,GAAG,CAAC,CAAC,EAAC,CAAC;QACrF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,GAAC,CAAC,EAAE,aAAa,GAAC,CAAC,CAAC;IACjC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;QACtB,IAAG,CAAC,cAAc,CAAC,CAAC,CAAC;YAAE,OAAO;QAC9B,IAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAG,SAAS,IAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAG,SAAS;YAAE,OAAO;QAC9D,aAAa,EAAE,CAAC;QAChB,IAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,SAAS,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAC,KAAK,EAAE,KAAK,EAAC,KAAK,EAAE,MAAM,EAAC,MAAM,EAAE,SAAS,EAAC,SAAS;QAC5D,SAAS,EAAC,SAAS;QACnB,SAAS,EAAC,mBAAmB,CAAC,KAAK,EAAC,KAAK,EAAC,KAAK,CAAC;QAChD,QAAQ,EAAC,iBAAiB,CAAC,SAAS,CAAC;QACrC,aAAa,EAAC,aAAa,EAAE,cAAc,EAAC,SAAS;QACrD,SAAS,EAAC,CAAC,KAAK,CAAC,KAAK,IAAE,EAAE,CAAC,CAAC,MAAM,CAAC,UAAS,CAAC;YAC3C,OAAO,CAAC,CAAC,IAAI,KAAG,MAAM,IAAE,CAAC,CAAC,KAAK,KAAG,QAAQ,CAAC;QAC7C,CAAC,CAAC,CAAC,MAAM;QACT,QAAQ,EAAC,CAAC,mBAAmB,CAAC,KAAK,EAAC,KAAK,EAAC,KAAK,CAAC,GAAC,CAAC;YAChD,CAAC,CAAC,CAAC,0EAA0E,CAAC;YAC9E,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAY,EAAE,GAAsB;IACxD,OAAO,cAAc,CAAC,KAAK,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC;AAC7C,CAAC;AAED;;8EAE8E;AAC9E,SAAS,aAAa,CAAC,KAAY,EAAE,SAAyC,EAC1E,GAAsB;IACxB,IAAI,GAAG,GAAmC,EAAE,CAAC;IAC7C,IAAI,OAAO,GAAC,GAAG,KAAG,IAAI,CAAC;IACvB,IAAI,OAAO,GAAC,CAAC,CAAC;IACd,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAS,EAAE;QACxC,IAAI,CAAC,GAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACpB,IAAG,OAAO;YAAE,OAAO,GAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,GAAC,eAAe,CAAC,CAAC,CAAC;;YACrE,OAAO,GAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,GAAC,eAAe,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IACH,IAAI,IAAI,GAAC,CAAC,CAAC;IACX,CAAC,KAAK,CAAC,KAAK,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC,EAAC,GAAG;QACtC,IAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAG,MAAM,IAAE,CAAC,CAAC,KAAK,KAAG,QAAQ,CAAC;YAAE,OAAO;QAClD,IAAI,CAAC,GAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAG,CAAC,CAAC,IAAE,CAAC,CAAC;YAAE,OAAO;QAClB,IAAG,OAAO,EAAC,CAAC;YACV,IAAI,KAAK,GAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAC,OAAO,GAAC,uBAAuB,GAAC,IAAI,GAAC,qBAAqB,CAAC,CAAC;YACjG,GAAG,CAAC,GAAG,GAAC,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC,GAAC;gBACf,EAAC,CAAC,EAAC,KAAK,EAAE,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,EAAC;gBAClC,EAAC,CAAC,EAAC,KAAK,EAAE,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,EAAC;aACnC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,GAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAC,OAAO,GAAC,uBAAuB,GAAC,IAAI,GAAC,qBAAqB,CAAC,CAAC;YACjG,GAAG,CAAC,GAAG,GAAC,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC,GAAC;gBACf,EAAC,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,EAAC,KAAK,EAAC;gBAClC,EAAC,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,EAAC,KAAK,EAAC;aACnC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,SAAS,CAAC,CAAY;IAC7B,IAAI,GAAG,GAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,CAAC,GAAG,CAAC,IAAI,EAAC,GAAG,CAAC,MAAM,EAAC,GAAG,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,CAAC,SAAS,EAAC,SAAS,EAAC,SAAS,CAAC,CAAC;IACzE,IAAI,CAAC,GAAC,2DAA2D;QAC/D,iDAAiD,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,eAAe,GAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,aAAa,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,mBAAmB,CAAC;IACzC,IAAG,CAAC,CAAC,KAAK,KAAG,OAAO;QAAE,CAAC,IAAE,qCAAqC,CAAC;SAC1D,IAAG,CAAC,CAAC,KAAK,KAAG,SAAS;QAAE,CAAC,IAAE,qCAAqC,CAAC;SACjE,IAAG,CAAC,CAAC,KAAK,KAAG,KAAK;QAAE,CAAC,IAAE,4CAA4C,CAAC;SACpE,IAAG,CAAC,CAAC,KAAK,KAAG,IAAI,IAAE,CAAC,CAAC,GAAG,KAAG,IAAI,IAAE,CAAC,CAAC,GAAG,KAAG,KAAK;QAAE,CAAC,IAAE,mDAAmD,CAAC;SACvG,IAAG,CAAC,CAAC,KAAK,KAAG,MAAM,IAAE,CAAC,CAAC,GAAG,KAAG,MAAM;QAAE,CAAC,IAAE,gBAAgB,CAAC;SACzD,IAAG,CAAC,CAAC,KAAK,KAAG,QAAQ;QAAE,CAAC,IAAE,gCAAgC,CAAC;;QAC3D,CAAC,IAAE,sBAAsB,CAAC;IAC/B,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,QAAQ,CAAC,KAAY,EAAE,IAAoB;IAClD,IAAI,GAAC,IAAI,IAAE,EAAE,CAAC;IACd,IAAI,GAAG,GAAC,IAAI,CAAC,GAAG,IAAE,IAAI,CAAC;IACvB,IAAI,QAAQ,GAAC,cAAc,CAAC,KAAK,EAAC,GAAG,CAAC,CAAC;IACvC,IAAI,GAAG,GAAC,QAAQ,CAAC,SAAS,CAAC;IAC3B,IAAI,SAAS,GAAC,aAAa,CAAC,KAAK,EAAC,GAAG,EAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,KAAK,GAAC,IAAI,CAAC,KAAK,IAAE,UAAU,CAAC;IACjC,IAAI,CAAC,GAAC,CAAC,wCAAwC;QAC7C,mDAAmD;QACnD,sCAAsC,GAAC,OAAO,CAAC,KAAK,CAAC,GAAC,IAAI;QAC1D,mMAAmM;QACnM,cAAc;QACd,0BAA0B;QAC1B,qCAAqC,CAAC,CAAC;IACzC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;QAC5B,IAAI,CAAC,GAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC;QACtC;;;iFAGyE;QACzE,IAAI,IAAI,GAAW,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACxB,IAAG,CAAC,CAAC,UAAU;YAAE,IAAI,CAAC,IAAI,CAAC,aAAa,GAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACvD,IAAG,CAAC,CAAC,OAAO,IAAE,CAAC,CAAC,OAAO,CAAC,MAAM;YAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,KAAK,GAAC,GAAG,GAAC,CAAC,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aACjF,IAAG,CAAC,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,GAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAC,GAAG,GAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrE,IAAG,CAAC,CAAC,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,CAAC,UAAU;YAAE,IAAI,CAAC,IAAI,CAAC,aAAa,GAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACvD,IAAG,CAAC,CAAC,YAAY;YAAE,IAAI,CAAC,IAAI,CAAC,WAAW,GAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACzD,IAAG,CAAC,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,QAAQ,GAAC,IAAI,CAAC,MAAM,CAAA,CAAC,CAAA,kBAAkB,GAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,EAAE,CAAC;QAC3E,CAAC,CAAC,IAAI,CAAC,yBAAyB,GAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,WAAW;YACxD,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,WAAW,GAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAC,yBAAyB,GAAC,QAAQ,GAAC,GAAG,CAAC,CAAC;QAC5E,CAAC,CAAC,IAAI,CAAC,2BAA2B,GAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,OAAO,GAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,WAAW,GAAC,CAAC,CAAC,CAAC,GAAC,YAAY,GAAC,CAAC,CAAC,CAAC,GAAC,mBAAmB,CAAC,CAAC;QACxD,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC,EAAC,CAAC;QAC9B,IAAI,IAAI,GAAC,CAAC,CAAC,IAAI,IAAE,SAAS,CAAC;QAC3B,IAAI,QAAQ,GAAC,oBAAoB,CAAC,IAAI,CAAC,IAAE,SAAS,CAAC;QACnD,IAAI,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAG,QAAQ,IAAE,CAAC,CAAC,KAAK,KAAG,QAAQ,CAAC;QACrE,IAAI,KAAK,GAAC,0EAA0E;YAClF,8CAA8C,GAAC,QAAQ,GAAC,qBAAqB;YAC7E,cAAc,GAAC,oBAAoB,CAAC,IAAI,CAAC,GAAC,GAAG,CAAC;QAChD,IAAG,IAAI;YAAE,KAAK,IAAE,WAAW,CAAC;QAC5B,IAAI,QAAQ,GAAC,CAAC,CAAC,IAAI,CAAA,CAAC,CAAA,uBAAuB,GAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,EAAE,CAAC;QACnE,CAAC,CAAC,IAAI,CAAC,0BAA0B,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAC,WAAW,GAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAE,EAAE,CAAC;YACtE,WAAW,GAAC,OAAO,CAAC,KAAK,CAAC,GAAC,mCAAmC,GAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9E,eAAe,GAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,GAAG,GAAC,QAAQ,GAAC,GAAG,CAAC,CAAC;QAClD,IAAI,GAAG,GAAC,SAAS,CAAC,GAAG,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAG,GAAG,IAAE,GAAG,CAAC,MAAM,EAAC,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC1C,GAAG,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,CAAC,CAAC,IAAI,CAAC,4BAA4B,GAAC,CAAC,CAAC,CAAC,GAAC,OAAO,GAAC,CAAC,CAAC,CAAC,GAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxF,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC/B,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,CAAC,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAC/D,CAAC;QACD,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,IAAI,CAAC,eAAe,EAAC,qBAAqB,EAAC,cAAc,EAAC,WAAW,CAAC,CAAC;IACzE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CAAC,OAAe,EAAE,GAAW,EAAE,OAAgB;IACrE,IAAI,GAAG,GAAC,MAAM,CAAC,GAAG,IAAE,EAAE,CAAC,CAAC;IACxB,IAAI,GAAG,GAAC,KAAK,CAAC;IACd,IAAG,GAAG,CAAC,MAAM,GAAC,GAAG;QAAE,GAAG,GAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAC,GAAG,CAAC,GAAC,+BAA+B,CAAC;IACxE,OAAO;QACT,gGAAgG;QAChG,EAAE;QACF,wFAAwF;QACxF,sGAAsG;QACtG,gEAAgE;QAChE,EAAE;QACF,QAAQ;QACR,6FAA6F;QAC7F,0DAA0D;QAC1D,oGAAoG;QACpG,qGAAqG;QACrG,+FAA+F;QAC/F,0FAA0F;QAC1F,gFAAgF;QAChF,0DAA0D;QAC1D,EAAE;QACF,uCAAuC;QACvC,YAAY;QACZ,OAAO;QACP,KAAK;QACL,EAAE;QACF,UAAU,GAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAE,OAAO,CAAC,GAAC,sBAAsB;QACnE,QAAQ;QACR,GAAG;QACH,KAAK;KACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"} \ No newline at end of file diff --git a/dist/src/ir.js b/dist/src/ir.js index 41d83f1..902c4ae 100644 --- a/dist/src/ir.js +++ b/dist/src/ir.js @@ -1720,19 +1720,24 @@ function splitSqlObjects(sql, fileName) { sql: sql.slice(start, end) }; }); } -function dependencyGraph(objects) { +function dependencyGraph(objects, opts) { var nodes = [], edges = [], ids = {}, ext = {}, seq = 0; - function add(text, cls, source, objectId, provenance, lines, reason) { + function add(text, cls, source, objectId, provenance, lines, reason, resolution, resolvedName) { var id = 'd' + (++seq); var structured = lines && lines.length ? lines.map(function (l) { return String(l).trim(); }).filter(function (l) { return l.length > 0; }) : undefined; - nodes.push({ id: id, shape: cls === 'src' ? 'io' : 'rect', text: structured ? + var node = { id: id, shape: cls === 'src' ? 'io' : 'rect', text: structured ? structured.join('\n') : text, cls: cls, source: source || null, objectId: objectId || null, lines: structured, reason: reason || undefined, - provenance: provenance || (source ? 'source' : (objectId ? 'external' : 'synthetic')) }); + provenance: provenance || (source ? 'source' : (objectId ? 'external' : 'synthetic')) }; + if (resolution) + node.resolution = resolution; + if (resolvedName) + node.resolvedName = resolvedName; + nodes.push(node); return id; } objects.forEach(function (o) { @@ -1754,7 +1759,19 @@ function dependencyGraph(objects) { } else { var remote = name.split('.').length >= 3; - ext[key] = add(remote ? 'external: ' + name : name, type === 'call' ? 'call' : 'src', null, name, 'external'); + var cat = opts && opts.catalogue; + var res = cat ? resolveCatalogue(cat, name) : { resolution: 'external' }; + if (res.resolution === 'verified' && res.resolvedName) { + /* The catalogue proves the identity: render the canonical name + (resolved through a synonym or cross-database match) instead of a + bare external label. Still an external object to the estate. */ + ext[key] = add(res.resolvedName, type === 'call' ? 'call' : 'src', null, name, 'external', undefined, undefined, 'verified', res.resolvedName); + } + else { + ext[key] = add(remote ? 'external: ' + name : name, type === 'call' ? 'call' : 'src', null, name, 'external', undefined, res.resolution === 'conflict' + ? 'conflicting catalogue evidence; identity unresolved' + : undefined, res.resolution === 'conflict' ? 'conflict' : undefined, undefined); + } } } return ext[key]; @@ -1794,9 +1811,11 @@ function analyseEstate(files, opts) { ir.result = result; return ir; }); - var graph = dependencyGraph(objects); + var graph = dependencyGraph(objects, opts); + var catDiags = (opts && opts.catalogueDiagnostics) || []; return { objects: objects, graph: graph, stats: graph.stats, - diagnostics: objects.reduce(function (a, o) { return a.concat(o.diagnostics); }, []) }; + diagnostics: objects.reduce(function (a, o) { return a.concat(o.diagnostics); }, []) + .concat(catDiags) }; } function unresolvedControlTargets(ast) { var allLabels = {}; @@ -2020,6 +2039,35 @@ function analyse(sql, opts) { span: r.span, scope: 'region' }); }); }, 0); + /* v1.9.0 — catalogue resolution. Document-scoped catalogue parse diagnostics + surface alongside the object analysis, and every reference that the + catalogue proves (or fails to prove) is called out so a reviewer knows the + identity is verified rather than estimated. */ + if (opts.catalogueDiagnostics) + opts.catalogueDiagnostics.forEach(function (d) { diagnostics.push(d); }); + if (opts.catalogue) { + walkAst(ast, function (st) { + if (st.type !== 'stmt' || !st.toks || !st.toks.length) + return; + var cinfo = refsIn(st.toks); + (cinfo.structuredRefs || []).forEach(function (r) { + var rr = resolveCatalogue(opts.catalogue, r.name); + if (rr.resolution === 'conflict') { + diagnostics.push({ severity: 'warning', code: 'catalogue_conflict', + message: 'Reference "' + r.name + '" matches conflicting catalogue entries; its identity is unresolved.', + span: r.span, scope: 'region' }); + } + else if (rr.resolution === 'external') { + var near = suffixCatalogueMatches(opts.catalogue, r.name); + if (near.length) + diagnostics.push({ severity: 'warning', code: 'catalogue_partial', + message: 'Reference "' + r.name + '" is not proven by the catalogue (candidate' + + (near.length > 1 ? 's' : '') + ' "' + near.join('", "') + '" not exact); staying external.', + span: r.span, scope: 'region' }); + } + }); + }, 0); + } if (dialect === 'plpgsql') addPgTransactionDiagnostics(ast, header, diagnostics, false); diagnostics.forEach(function (d) { @@ -2027,7 +2075,8 @@ function analyse(sql, opts) { d.scope = 'region'; }); var gopts = { detail: opts.detail, group: opts.group, dialect: dialect, sources: opts.sources, - fanIn: opts.fanIn, number: opts.number, diagnostics: diagnostics }; + fanIn: opts.fanIn, number: opts.number, diagnostics: diagnostics, + catalogue: opts.catalogue }; var graph = buildGraph(ast, header, gopts); var mode = opts.mode || 'auto'; var flat = graph.stats.branch + graph.stats.loop + graph.stats.cat === 0; diff --git a/dist/src/ir.js.map b/dist/src/ir.js.map index 46d8ae7..23053a2 100644 --- a/dist/src/ir.js.map +++ b/dist/src/ir.js.map @@ -1 +1 @@ -{"version":3,"file":"ir.js","sourceRoot":"","sources":["../../src/ir.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ir.js","sourceRoot":"","sources":["../../src/ir.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/lineage.js b/dist/src/lineage.js index 9470cb9..6a5bae0 100644 --- a/dist/src/lineage.js +++ b/dist/src/lineage.js @@ -261,7 +261,19 @@ function buildQueryGraph(stmtToks, header, opts) { function srcNode(name) { var k = name.toUpperCase(); if (!srcIds[k]) { - srcIds[k] = add('io', name, 'src', null, null, 'external source object'); + var res = opts.catalogue ? resolveCatalogue(opts.catalogue, name) : { resolution: 'external' }; + var verified = res.resolution === 'verified'; + var id = 'q' + (++seq); + var label = verified && res.resolvedName ? res.resolvedName : name; + /* Verified sources become 'external' nodes with exact identity; conflict + stays conservative with a marker; everything unproven stays a synthetic + leaf exactly as before the catalogue existed. */ + srcIds[k] = id; + nodes.push({ id: id, shape: 'io', text: label, cls: 'src', source: null, + provenance: verified ? 'external' : 'synthetic', + resolution: (verified || res.resolution === 'conflict') ? res.resolution : undefined, + resolvedName: verified && res.resolvedName ? res.resolvedName : undefined, + reason: verified ? undefined : 'external source object' }); stats.tables++; } return srcIds[k]; @@ -372,7 +384,7 @@ function buildObjectQueryGraph(ast, header, opts) { statements.forEach(function (toks) { var split = splitCTEs(toks); var finalToks = toks.slice(split.finalStart); - var childOpts = { sources: opts.sources }; + var childOpts = { sources: opts.sources, catalogue: opts.catalogue }; childOpts.finalLabel = summarise(finalToks, 64); var child = buildQueryGraph(toks, { name: '' }, childOpts); var remap = {}; @@ -383,7 +395,8 @@ function buildObjectQueryGraph(ast, header, opts) { sourceIds[sourceKey] = 'oq' + (++seq); nodes.push({ id: sourceIds[sourceKey], shape: n.shape, text: n.text, cls: n.cls, source: n.source || null, provenance: n.provenance || 'synthetic', - lines: n.lines, reason: n.reason }); + lines: n.lines, reason: n.reason, + resolution: n.resolution, resolvedName: n.resolvedName }); } remap[n.id] = sourceIds[sourceKey]; } @@ -391,7 +404,8 @@ function buildObjectQueryGraph(ast, header, opts) { remap[n.id] = 'oq' + (++seq); nodes.push({ id: remap[n.id], shape: n.shape, text: n.text, cls: n.cls, source: n.source || null, provenance: n.provenance || 'synthetic', - lines: n.lines, reason: n.reason }); + lines: n.lines, reason: n.reason, + resolution: n.resolution, resolvedName: n.resolvedName }); } }); child.edges.forEach(function (e) { diff --git a/dist/src/lineage.js.map b/dist/src/lineage.js.map index a71518a..b14bff6 100644 --- a/dist/src/lineage.js.map +++ b/dist/src/lineage.js.map @@ -1 +1 @@ -{"version":3,"file":"lineage.js","sourceRoot":"","sources":["../../src/lineage.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"lineage.js","sourceRoot":"","sources":["../../src/lineage.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/workspace.js b/dist/src/workspace.js index 0a7b45c..092475c 100644 --- a/dist/src/workspace.js +++ b/dist/src/workspace.js @@ -14,7 +14,10 @@ filtered copy at render time and never mutates the underlying estate graph. Disabling a filter changes the view only — never the analysis result. */ -var WORKSPACE_SCHEMA_VERSION = 1; +/* v1.8.0 schema was version 1. v1.9.0 adds the optional catalogue text (an + analysis input) as a top-level snapshot field, so a saved workspace still + reproduces an identical analysis when a catalogue was in use. */ +var WORKSPACE_SCHEMA_VERSION = 2; var WORKSPACE_STORAGE_KEY = 'procflow.workspace'; /* schema base key; versioned payload */ var DIALECT_SELECT_ORDER = ['auto', 'tsql', 'db2', 'plpgsql', 'sqlite']; function defaultWorkspaceOptions() { @@ -46,15 +49,17 @@ function buildWorkspaceSnapshot(state) { fanIn: !!state.options.fanIn, sources: !!state.options.sources }; - return { + var snap = { version: WORKSPACE_SCHEMA_VERSION, savedAt: new Date().toISOString(), files: (state.files || []).map(function (f) { return { name: String(f.name || ''), text: String(f.text == null ? '' : f.text) }; }), options: opt, + catalogue: state.catalogue == null ? null : String(state.catalogue), activeObjectId: state.activeObjectId || null }; + return snap; } function serializeWorkspace(snapshot) { return JSON.stringify(snapshot); @@ -85,6 +90,7 @@ function migrateWorkspace(raw) { fanIn: src.fanIn === undefined ? d.fanIn : !!src.fanIn, sources: src.sources === undefined ? d.sources : !!src.sources }; + migrated.catalogue = raw && raw.catalogue != null ? String(raw.catalogue) : null; migrated.activeObjectId = raw && raw.activeObjectId ? String(raw.activeObjectId) : null; return migrated; } diff --git a/dist/src/workspace.js.map b/dist/src/workspace.js.map index 4dc770d..a65a271 100644 --- a/dist/src/workspace.js.map +++ b/dist/src/workspace.js.map @@ -1 +1 @@ -{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/workspace.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/workspace.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/tests/catalogue.js b/dist/tests/catalogue.js new file mode 100644 index 0000000..09193a2 --- /dev/null +++ b/dist/tests/catalogue.js @@ -0,0 +1,264 @@ +"use strict"; +/* proc>flow v1.9.0 — resolve by catalogue (README post-v1.0.0 item 5). + Fixtures for catalogue metadata import (JSON + simple line format), exact + synonym / linked-server / cross-database resolution replacing the v1.5.0 + external label where the catalogue proves the match, and E diagnostics for + partial or conflicting catalogue data. + + Passing a catalogue never changes an analysis that did not pass one: every + fixture here asserts the catalogue-verified behaviour with a catalogue + present, plus one regression guard that the absent-catalogue output is the + unchanged conservative path. + + After this suite runs, PROCFLOW_CATALOGUE_PASS and PROCFLOW_CATALOGUE_RESULT + gate the golden suite (tests/tests.ts) and feed the fixture-corpus metrics. */ +(function () { + var results = []; + function record(name, pass, detail) { + results.push({ name: name, pass: pass, detail: pass ? '' : detail }); + } + function has(list, value) { + return (list || []).some(function (v) { return v.toUpperCase() === value.toUpperCase(); }); + } + var CATALOGUE_TXT = [ + '# demo catalogue', + 'salesdb.dbo.orders TABLE', + 'linksrv.warehouse.dbo.orders TABLE', + 'remotesrv.salesdb.dbo.pull_orders PROC', + 'dbo.student TABLE student', + 'COL salesdb.dbo.orders.OrderId' + ].join('\n'); + /* ---- parsing: JSON and the simple line format ---- */ + try { + var jp = parseCatalogue(JSON.stringify({ objects: [ + { name: 'dbo.student', kind: 'TABLE', synonyms: ['student'] }, + { name: 'salesdb.dbo.orders', kind: 'TABLE' } + ], columns: [{ table: 'dbo.student', name: 'StudentId' }] })); + record('v1.9.0 JSON catalogue parses objects, columns, synonyms, and kind', jp.format === 'json' && !jp.diagnostics.some(function (d) { return d.severity === 'error'; }) && + jp.objectCount === 2 && jp.columnCount === 1 && + jp.catalogue.byName['DBO.STUDENT'] != null && + resolveCatalogue(jp.catalogue, 'student').resolution === 'verified' && + resolveCatalogue(jp.catalogue, 'student').resolvedName === 'dbo.student' && + resolveCatalogue(jp.catalogue, 'salesdb.dbo.orders').resolution === 'verified' && + resolveCatalogue(jp.catalogue, 'dbo.nope').resolution === 'external', { format: jp.format, diagnostics: jp.diagnostics, resolved: resolveCatalogue(jp.catalogue, 'student') }); + } + catch (err) { + record('v1.9.0 JSON catalogue parses objects, columns, synonyms, and kind', false, String(err && err.stack || err)); + } + try { + var tp = parseCatalogue(CATALOGUE_TXT); + record('v1.9.0 line catalogue parses objects, kinds, synonyms, and columns', tp.format === 'text' && tp.objectCount === 4 && tp.columnCount === 1 && + !tp.diagnostics.some(function (d) { return d.severity === 'error'; }) && + tp.catalogue.byName['SALESDB.DBO.ORDERS'] != null && + tp.catalogue.byName['REMOTESRV.SALESDB.DBO.PULL_ORDERS'] != null && + tp.catalogue.bySynonym['STUDENT'] != null && + resolveCatalogue(tp.catalogue, 'STUDENT').resolvedName === 'dbo.student' && + resolveCatalogue(tp.catalogue, 'remotesrv.salesdb.dbo.pull_orders') + .resolution === 'verified', { format: tp.format, objects: tp.objectCount, columns: tp.columnCount, + diagnostics: tp.diagnostics }); + } + catch (err) { + record('v1.9.0 line catalogue parses objects, kinds, synonyms, and columns', false, String(err && err.stack || err)); + } + try { + var badJson = parseCatalogue('{oops'); + record('v1.9.0 malformed catalogue JSON reports catalogue_parse_error', badJson.format === 'json' && badJson.objectCount === 0 && + badJson.diagnostics.some(function (d) { + return d.code === 'catalogue_parse_error' && d.scope === 'document' && d.span === null; + }), badJson.diagnostics); + } + catch (err) { + record('v1.9.0 malformed catalogue JSON reports catalogue_parse_error', false, String(err && err.stack || err)); + } + try { + var emptyC = parseCatalogue(' \n\n '); + record('v1.9.0 empty catalogue input reports catalogue_empty', emptyC.objectCount === 0 && emptyC.diagnostics.some(function (d) { + return d.code === 'catalogue_empty'; + }), emptyC.diagnostics); + } + catch (err) { + record('v1.9.0 empty catalogue input reports catalogue_empty', false, String(err && err.stack || err)); + } + /* ---- conflicting catalogue data is conservative ---- */ + try { + var dup = parseCatalogue('dbo.orders TABLE\ndbo.orders VIEW'); + var dupResolve = resolveCatalogue(dup.catalogue, 'dbo.orders'); + var dupRegion = false; + var dupAnalysis = analyse('SELECT id FROM dbo.orders;', { dialect: 'tsql', mode: 'query', sources: true, + catalogue: dup.catalogue, catalogueDiagnostics: dup.diagnostics }); + dupRegion = dupAnalysis.diagnostics.some(function (d) { + return d.code === 'catalogue_conflict' && d.scope === 'region' && + !!d.span && d.span.end > d.span.start; + }); + record('v1.9.0 duplicate catalogue entries are conservative with a conflict diagnostic', dup.diagnostics.some(function (d) { return d.code === 'catalogue_conflict'; }) && + dupResolve.resolution === 'conflict' && dupRegion && + dupAnalysis.graph.nodes.some(function (n) { + return n.text.indexOf('dbo.orders') >= 0 && n.resolution === 'conflict'; + }), { parse: dup.diagnostics, resolve: dupResolve, + diags: dupAnalysis.diagnostics.map(function (d) { return d.code; }) }); + } + catch (err) { + record('v1.9.0 duplicate catalogue entries are conservative with a conflict diagnostic', false, String(err && err.stack || err)); + } + try { + var coll = parseCatalogue('dbo.a TABLE alias\nalias TABLE'); + record('v1.9.0 a synonym colliding with an object name is a conflict', coll.diagnostics.some(function (d) { return d.code === 'catalogue_conflict'; }) && + resolveCatalogue(coll.catalogue, 'alias').resolution === 'conflict', { diagnostics: coll.diagnostics }); + } + catch (err) { + record('v1.9.0 a synonym colliding with an object name is a conflict', false, String(err && err.stack || err)); + } + /* ---- estate (object-dependency) resolution ---- */ + try { + var pc = parseCatalogue(CATALOGUE_TXT); + var estSql = [ + 'CREATE PROC dbo.nightly AS', + 'BEGIN', + ' EXEC remotesrv.salesdb.dbo.pull_orders;', + ' SELECT id INTO #t FROM salesdb.dbo.orders;', + ' SELECT id FROM dbo.student;', + ' SELECT id FROM readme.dbo.ghost;', + 'END' + ].join('\n'); + var est = analyseEstate([{ name: 'est.sql', text: estSql }], { dialect: 'tsql', mode: 'auto', group: false, sources: true, + catalogue: pc.catalogue, catalogueDiagnostics: pc.diagnostics }); + var verified = est.graph.nodes.filter(function (n) { return n.resolution === 'verified'; }); + var verifiedTexts = verified.map(function (n) { return n.text; }); + var unverified = est.graph.nodes.filter(function (n) { + return n.text.indexOf('external: ') === 0; + }); + record('v1.9.0 estate external nodes verified by the catalogue', has(verifiedTexts, 'remotesrv.salesdb.dbo.pull_orders') && + has(verifiedTexts, 'salesdb.dbo.orders') && + has(verifiedTexts, 'dbo.student') && + verified.every(function (n) { + return n.provenance === 'external' && + n.resolvedName === n.text && typeof n.objectId === 'string'; + }) && + est.graph.nodes.some(function (n) { + return n.text.indexOf('readme.dbo.ghost') >= 0 && n.resolution === undefined; + }), { verified: verified.map(function (n) { + return { text: n.text, prov: n.provenance, res: n.resolution, obj: n.objectId }; + }), + external: unverified.map(function (n) { return n.text; }) }); + } + catch (err) { + record('v1.9.0 estate external nodes verified by the catalogue', false, String(err && err.stack || err)); + } + /* ---- query-structure source resolution ---- */ + try { + var qc = parseCatalogue('linksrv.warehouse.dbo.orders TABLE'); + var qr = analyse('SELECT ord.id FROM linksrv.warehouse.dbo.orders ord WHERE ord.id > 0;', { dialect: 'tsql', mode: 'query', sources: true, + catalogue: qc.catalogue, catalogueDiagnostics: qc.diagnostics }); + var qNode = qr.graph.nodes.find(function (n) { return n.cls === 'src'; }); + record('v1.9.0 query sources verified by the catalogue', !!qNode && qNode.text === 'linksrv.warehouse.dbo.orders' && + qNode.resolution === 'verified' && qNode.provenance === 'external' && + qNode.resolvedName === 'linksrv.warehouse.dbo.orders', qNode); + } + catch (err) { + record('v1.9.0 query sources verified by the catalogue', false, String(err && err.stack || err)); + } + try { + /* Cross-database: the reference carries a server prefix over a catalogue + object sharing the trailing identity. That is not proof — the node stays + external and a region-scoped catalogue_partial diagnostic is attached. */ + var partialC = parseCatalogue('salesdb.dbo.orders TABLE'); + var partialR = analyse('SELECT id FROM remotesrv.salesdb.dbo.orders;', { dialect: 'tsql', mode: 'query', sources: true, + catalogue: partialC.catalogue, catalogueDiagnostics: partialC.diagnostics }); + var partialNode = partialR.graph.nodes.find(function (n) { return n.cls === 'src'; }); + var partialDiag = partialR.diagnostics.filter(function (d) { + return d.code === 'catalogue_partial'; + })[0]; + record('v1.9.0 unproven cross-database matches stay external and region-scoped', !!partialNode && partialNode.text === 'remotesrv.salesdb.dbo.orders' && + partialNode.resolution === undefined && + partialNode.provenance === 'synthetic' && + !!partialDiag && partialDiag.scope === 'region' && + !!partialDiag.span && partialDiag.span.end > partialDiag.span.start && + partialDiag.message.indexOf('salesdb.dbo.orders') >= 0, { node: partialNode, diag: partialDiag }); + } + catch (err) { + record('v1.9.0 unproven cross-database matches stay external and region-scoped', false, String(err && err.stack || err)); + } + try { + var nonC = analyse('SELECT id FROM linksrv.warehouse.dbo.orders;', { dialect: 'tsql', mode: 'query', sources: true }); + var nonNode = nonC.graph.nodes.find(function (n) { return n.cls === 'src'; }); + record('v1.9.0 absent catalogue leaves the conservative path unchanged', !!nonNode && nonNode.text === 'linksrv.warehouse.dbo.orders' && + nonNode.resolution === undefined && nonNode.provenance === 'synthetic' && + nonNode.reason === 'external source object' && + !nonC.diagnostics.some(function (d) { + return d.code.indexOf('catalogue_') === 0; + }), nonNode); + } + catch (err) { + record('v1.9.0 absent catalogue leaves the conservative path unchanged', false, String(err && err.stack || err)); + } + /* ---- synonym resolution through the estate ---- */ + try { + var synC = parseCatalogue('dbo.student TABLE student'); + var synSql = 'CREATE PROC dbo.by_syn AS BEGIN SELECT id FROM student; END'; + var synEst = analyseEstate([{ name: 'syn.sql', text: synSql }], { dialect: 'tsql', mode: 'auto', catalogue: synC.catalogue, + catalogueDiagnostics: synC.diagnostics }); + var synLeaf = synEst.graph.nodes.filter(function (n) { + return n.objectId === 'student' || n.text.toUpperCase().indexOf('STUDENT') >= 0; + }); + record('v1.9.0 an unqualified synonym resolves to its canonical object', synEst.graph.nodes.some(function (n) { + return n.text === 'dbo.student' && n.resolution === 'verified' && + n.resolvedName === 'dbo.student' && n.objectId === 'student'; + }) && synLeaf.every(function (n) { return n.resolution === 'verified'; }), synEst.graph.nodes.map(function (n) { + return { text: n.text, res: n.resolution, obj: n.objectId }; + })); + } + catch (err) { + record('v1.9.0 an unqualified synonym resolves to its canonical object', false, String(err && err.stack || err)); + } + /* ---- export metadata survives the draw.io round-trip ---- */ + try { + var ec = parseCatalogue('salesdb.dbo.orders TABLE'); + var eRef = analyse('SELECT id FROM salesdb.dbo.orders;', { dialect: 'tsql', mode: 'query', sources: true, + catalogue: ec.catalogue, catalogueDiagnostics: ec.diagnostics }); + var eXml = toDrawio(eRef.graph, { title: 'catalogue', dir: 'TD' }); + var eDoc = new DOMParser().parseFromString(eXml, 'application/xml'); + var eVerified = eRef.graph.nodes.filter(function (n) { return n.resolution === 'verified'; }); + record('v1.9.0 catalogue resolution and provenance survive draw.io export', !eDoc.querySelector('parsererror') && + eVerified.length > 0 && + eXml.indexOf('resolution=verified') >= 0 && + eXml.indexOf('provenance=external') >= 0, { parsererror: eDoc.querySelector('parsererror') && + eDoc.querySelector('parsererror').textContent, + verified: eVerified.map(function (n) { + return { res: n.resolution, text: n.text }; + }) }); + } + catch (err) { + record('v1.9.0 catalogue resolution and provenance survive draw.io export', false, String(err && err.stack || err)); + } + /* ---- workspace persistence carries the catalogue text ---- */ + try { + var wsSnap = buildWorkspaceSnapshot({ + files: [{ name: 'est.sql', text: 'CREATE PROC dbo.one AS BEGIN SELECT 1; END' }], + options: { dialect: 'tsql', scope: 'dependencies' }, activeObjectId: null, + catalogue: CATALOGUE_TXT + }); + var wsParsed = parseWorkspace(serializeWorkspace(wsSnap)); + var wsCatalogueRoundTrip = !wsParsed.error && wsParsed.snapshot !== null && + wsParsed.snapshot.catalogue === CATALOGUE_TXT && + wsParsed.snapshot.version === WORKSPACE_SCHEMA_VERSION && + !wsParsed.migrated; + /* A v1 schema snapshot (no catalogue) migrates forward with a null/absent + catalogue rather than corrupting the analysis. */ + var wsLegacy = parseWorkspace(JSON.stringify({ version: 1, + savedAt: '2026-01-01T00:00:00.000Z', + files: [{ name: 'old.sql', text: 'SELECT 1;' }], + options: { dialect: 'tsql', scope: 'internal' } })); + var wsLegacyOk = !!wsLegacy.snapshot && wsLegacy.snapshot.version === + WORKSPACE_SCHEMA_VERSION && wsLegacy.snapshot.catalogue === null; + record('v1.9.0 workspace snapshot round-trips the catalogue text', wsCatalogueRoundTrip && wsLegacyOk, { roundTrip: wsCatalogueRoundTrip, legacy: wsLegacyOk, + restored: wsParsed.snapshot && wsParsed.snapshot.catalogue, + legacyCat: wsLegacy.snapshot && wsLegacy.snapshot.catalogue }); + } + catch (err) { + record('v1.9.0 workspace snapshot round-trips the catalogue text', false, String(err && err.stack || err)); + } + var passed = results.filter(function (r) { return r.pass; }).length; + window.PROCFLOW_CATALOGUE_RESULT = { passed: passed, total: results.length }; + window.PROCFLOW_CATALOGUE_PASS = passed === results.length; +})(); +//# sourceMappingURL=catalogue.js.map \ No newline at end of file diff --git a/dist/tests/catalogue.js.map b/dist/tests/catalogue.js.map new file mode 100644 index 0000000..8ba7367 --- /dev/null +++ b/dist/tests/catalogue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"catalogue.js","sourceRoot":"","sources":["../../tests/catalogue.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;iFAYiF;AACjF,CAAC;IACC,IAAI,OAAO,GAAwD,EAAE,CAAC;IACtE,SAAS,MAAM,CAAC,IAAY,EAAE,IAAa,EAAE,MAAgB;QAC3D,OAAO,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,MAAM,EAAC,CAAC,CAAC;IAC5D,CAAC;IACD,SAAS,GAAG,CAAC,IAAc,EAAE,KAAa;QACxC,OAAO,CAAC,IAAI,IAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,IAAG,OAAO,CAAC,CAAC,WAAW,EAAE,KAAG,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,aAAa,GAAC;QAChB,kBAAkB;QAClB,0BAA0B;QAC1B,oCAAoC;QACpC,wCAAwC;QACxC,2BAA2B;QAC3B,gCAAgC;KACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,wDAAwD;IACxD,IAAG,CAAC;QACF,IAAI,EAAE,GAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,OAAO,EAAC;gBAC5C,EAAC,IAAI,EAAC,aAAa,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAC,CAAC,SAAS,CAAC,EAAC;gBACtD,EAAC,IAAI,EAAC,oBAAoB,EAAC,IAAI,EAAC,OAAO,EAAC;aACzC,EAAC,OAAO,EAAC,CAAC,EAAC,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,WAAW,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,mEAAmE,EACxE,EAAE,CAAC,MAAM,KAAG,MAAM,IAAE,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,QAAQ,KAAG,OAAO,CAAC,CAAA,CAAC,CAAC;YACjF,EAAE,CAAC,WAAW,KAAG,CAAC,IAAE,EAAE,CAAC,WAAW,KAAG,CAAC;YACtC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,IAAE,IAAI;YACxC,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAC,SAAS,CAAC,CAAC,UAAU,KAAG,UAAU;YAChE,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAC,SAAS,CAAC,CAAC,YAAY,KAAG,aAAa;YACrE,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAC,oBAAoB,CAAC,CAAC,UAAU,KAAG,UAAU;YAC3E,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAC,UAAU,CAAC,CAAC,UAAU,KAAG,UAAU,EACnE,EAAC,MAAM,EAAC,EAAE,CAAC,MAAM,EAAC,WAAW,EAAC,EAAE,CAAC,WAAW,EAAC,QAAQ,EACnD,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAC,SAAS,CAAC,EAAC,CAAC,CAAC;IACjD,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,mEAAmE,EACxE,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,IAAG,CAAC;QACF,IAAI,EAAE,GAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACrC,MAAM,CAAC,oEAAoE,EACzE,EAAE,CAAC,MAAM,KAAG,MAAM,IAAE,EAAE,CAAC,WAAW,KAAG,CAAC,IAAE,EAAE,CAAC,WAAW,KAAG,CAAC;YACxD,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,QAAQ,KAAG,OAAO,CAAC,CAAA,CAAC,CAAC;YAC/D,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAE,IAAI;YAC/C,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAmC,CAAC,IAAE,IAAI;YAC9D,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAE,IAAI;YACvC,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAC,SAAS,CAAC,CAAC,YAAY,KAAG,aAAa;YACrE,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAC,mCAAmC,CAAC;iBAC/D,UAAU,KAAG,UAAU,EAC5B,EAAC,MAAM,EAAC,EAAE,CAAC,MAAM,EAAC,OAAO,EAAC,EAAE,CAAC,WAAW,EAAC,OAAO,EAAC,EAAE,CAAC,WAAW;YAC9D,WAAW,EAAC,EAAE,CAAC,WAAW,EAAC,CAAC,CAAC;IAClC,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,oEAAoE,EACzE,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,IAAG,CAAC;QACF,IAAI,OAAO,GAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,CAAC,+DAA+D,EACpE,OAAO,CAAC,MAAM,KAAG,MAAM,IAAE,OAAO,CAAC,WAAW,KAAG,CAAC;YAC9C,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,UAAS,CAAC;gBACjC,OAAO,CAAC,CAAC,IAAI,KAAG,uBAAuB,IAAE,CAAC,CAAC,KAAK,KAAG,UAAU,IAAE,CAAC,CAAC,IAAI,KAAG,IAAI,CAAC;YAC/E,CAAC,CAAC,EACJ,OAAO,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,+DAA+D,EACpE,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,IAAG,CAAC;QACF,IAAI,MAAM,GAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,CAAC,sDAAsD,EAC3D,MAAM,CAAC,WAAW,KAAG,CAAC,IAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAS,CAAC;YACxD,OAAO,CAAC,CAAC,IAAI,KAAG,iBAAiB,CAAC;QAAA,CAAC,CAAC,EACtC,MAAM,CAAC,WAAW,CAAC,CAAC;IACxB,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,sDAAsD,EAC3D,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,0DAA0D;IAC1D,IAAG,CAAC;QACF,IAAI,GAAG,GAAC,cAAc,CAAC,mCAAmC,CAAC,CAAC;QAC5D,IAAI,UAAU,GAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,SAAS,GAAC,KAAK,CAAC;QACpB,IAAI,WAAW,GAAC,OAAO,CAAC,4BAA4B,EAClD,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI;YACxC,SAAS,EAAC,GAAG,CAAC,SAAS,EAAC,oBAAoB,EAAC,GAAG,CAAC,WAAW,EAAC,CAAC,CAAC;QAClE,SAAS,GAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,UAAS,CAAC;YAC/C,OAAO,CAAC,CAAC,IAAI,KAAG,oBAAoB,IAAE,CAAC,CAAC,KAAK,KAAG,QAAQ;gBACtD,CAAC,CAAC,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,IAAI,CAAC,GAAG,GAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,gFAAgF,EACrF,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,IAAI,KAAG,oBAAoB,CAAC,CAAA,CAAC,CAAC;YACtE,UAAU,CAAC,UAAU,KAAG,UAAU,IAAE,SAAS;YAC7C,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAS,CAAC;gBACrC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAE,CAAC,IAAE,CAAC,CAAC,UAAU,KAAG,UAAU,CAAC;YACpE,CAAC,CAAC,EACJ,EAAC,KAAK,EAAC,GAAG,CAAC,WAAW,EAAC,OAAO,EAAC,UAAU;YACxC,KAAK,EAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC;IACtE,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,gFAAgF,EACrF,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,IAAG,CAAC;QACF,IAAI,IAAI,GAAC,cAAc,CAAC,gCAAgC,CAAC,CAAC;QAC1D,MAAM,CAAC,8DAA8D,EACnE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,IAAI,KAAG,oBAAoB,CAAC,CAAA,CAAC,CAAC;YACvE,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAC,OAAO,CAAC,CAAC,UAAU,KAAG,UAAU,EAClE,EAAC,WAAW,EAAC,IAAI,CAAC,WAAW,EAAC,CAAC,CAAC;IACpC,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,8DAA8D,EACnE,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,qDAAqD;IACrD,IAAG,CAAC;QACF,IAAI,EAAE,GAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACrC,IAAI,MAAM,GAAC;YACT,4BAA4B;YAC5B,OAAO;YACP,2CAA2C;YAC3C,8CAA8C;YAC9C,+BAA+B;YAC/B,oCAAoC;YACpC,KAAK;SACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,IAAI,GAAG,GAAC,aAAa,CAAC,CAAC,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,EAAC,CAAC,EAClD,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI;YACnD,SAAS,EAAC,EAAE,CAAC,SAAS,EAAC,oBAAoB,EAAC,EAAE,CAAC,WAAW,EAAC,CAAC,CAAC;QAChE,IAAI,QAAQ,GAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,UAAU,KAAG,UAAU,CAAC,CAAA,CAAC,CAAC,CAAC;QACpF,IAAI,aAAa,GAAC,QAAQ,CAAC,GAAG,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC;QAC5D,IAAI,UAAU,GAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAS,CAAC;YAC9C,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAG,CAAC,CAAC;QAAA,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,wDAAwD,EAC7D,GAAG,CAAC,aAAa,EAAC,mCAAmC,CAAC;YACpD,GAAG,CAAC,aAAa,EAAC,oBAAoB,CAAC;YACvC,GAAG,CAAC,aAAa,EAAC,aAAa,CAAC;YAChC,QAAQ,CAAC,KAAK,CAAC,UAAS,CAAC;gBACvB,OAAO,CAAC,CAAC,UAAU,KAAG,UAAU;oBAC9B,CAAC,CAAC,YAAY,KAAG,CAAC,CAAC,IAAI,IAAE,OAAO,CAAC,CAAC,QAAQ,KAAG,QAAQ,CAAC;YAC1D,CAAC,CAAC;YACF,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAS,CAAC;gBAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAE,CAAC,IAAE,CAAC,CAAC,UAAU,KAAG,SAAS,CAAC;YACzE,CAAC,CAAC,EACJ,EAAC,QAAQ,EAAC,QAAQ,CAAC,GAAG,CAAC,UAAS,CAAC;gBAC9B,OAAO,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,IAAI,EAAC,CAAC,CAAC,UAAU,EAAC,GAAG,EAAC,CAAC,CAAC,UAAU,EAAC,GAAG,EAAC,CAAC,CAAC,QAAQ,EAAC,CAAC;YAAA,CAAC,CAAC;YAC3E,QAAQ,EAAC,UAAU,CAAC,GAAG,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC;IAC5D,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,wDAAwD,EAC7D,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,iDAAiD;IACjD,IAAG,CAAC;QACF,IAAI,EAAE,GAAC,cAAc,CAAC,oCAAoC,CAAC,CAAC;QAC5D,IAAI,EAAE,GAAC,OAAO,CAAC,uEAAuE,EACpF,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI;YACxC,SAAS,EAAC,EAAE,CAAC,SAAS,EAAC,oBAAoB,EAAC,EAAE,CAAC,WAAW,EAAC,CAAC,CAAC;QAChE,IAAI,KAAK,GAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,GAAG,KAAG,KAAK,CAAC,CAAA,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,gDAAgD,EACrD,CAAC,CAAC,KAAK,IAAE,KAAK,CAAC,IAAI,KAAG,8BAA8B;YAClD,KAAK,CAAC,UAAU,KAAG,UAAU,IAAE,KAAK,CAAC,UAAU,KAAG,UAAU;YAC5D,KAAK,CAAC,YAAY,KAAG,8BAA8B,EACrD,KAAK,CAAC,CAAC;IACX,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,gDAAgD,EACrD,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,IAAG,CAAC;QACF;;oFAE4E;QAC5E,IAAI,QAAQ,GAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;QACxD,IAAI,QAAQ,GAAC,OAAO,CAAC,8CAA8C,EACjE,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI;YACxC,SAAS,EAAC,QAAQ,CAAC,SAAS,EAAC,oBAAoB,EAAC,QAAQ,CAAC,WAAW,EAAC,CAAC,CAAC;QAC5E,IAAI,WAAW,GAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,GAAG,KAAG,KAAK,CAAC,CAAA,CAAC,CAAC,CAAC;QAC9E,IAAI,WAAW,GAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,UAAS,CAAC;YACpD,OAAO,CAAC,CAAC,IAAI,KAAG,mBAAmB,CAAC;QAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,wEAAwE,EAC7E,CAAC,CAAC,WAAW,IAAE,WAAW,CAAC,IAAI,KAAG,8BAA8B;YAC9D,WAAW,CAAC,UAAU,KAAG,SAAS;YAClC,WAAW,CAAC,UAAU,KAAG,WAAW;YACpC,CAAC,CAAC,WAAW,IAAE,WAAW,CAAC,KAAK,KAAG,QAAQ;YAC3C,CAAC,CAAC,WAAW,CAAC,IAAI,IAAE,WAAW,CAAC,IAAI,CAAC,GAAG,GAAC,WAAW,CAAC,IAAI,CAAC,KAAK;YAC/D,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAE,CAAC,EACtD,EAAC,IAAI,EAAC,WAAW,EAAC,IAAI,EAAC,WAAW,EAAC,CAAC,CAAC;IACzC,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,wEAAwE,EAC7E,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,IAAG,CAAC;QACF,IAAI,IAAI,GAAC,OAAO,CAAC,8CAA8C,EAC7D,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,CAAC,CAAC;QAC9C,IAAI,OAAO,GAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,GAAG,KAAG,KAAK,CAAC,CAAA,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,gEAAgE,EACrE,CAAC,CAAC,OAAO,IAAE,OAAO,CAAC,IAAI,KAAG,8BAA8B;YACtD,OAAO,CAAC,UAAU,KAAG,SAAS,IAAE,OAAO,CAAC,UAAU,KAAG,WAAW;YAChE,OAAO,CAAC,MAAM,KAAG,wBAAwB;YACzC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAS,CAAC;gBAC/B,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAG,CAAC,CAAC;YAC1C,CAAC,CAAC,EACJ,OAAO,CAAC,CAAC;IACb,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,gEAAgE,EACrE,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,qDAAqD;IACrD,IAAG,CAAC;QACF,IAAI,IAAI,GAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC;QACrD,IAAI,MAAM,GAAC,6DAA6D,CAAC;QACzE,IAAI,MAAM,GAAC,aAAa,CAAC,CAAC,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,EAAC,CAAC,EACrD,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,CAAC,SAAS;YACnD,oBAAoB,EAAC,IAAI,CAAC,WAAW,EAAC,CAAC,CAAC;QAC3C,IAAI,OAAO,GAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAS,CAAC;YAC9C,OAAO,CAAC,CAAC,QAAQ,KAAG,SAAS,IAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAE,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,gEAAgE,EACrE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAS,CAAC;YAChC,OAAO,CAAC,CAAC,IAAI,KAAG,aAAa,IAAE,CAAC,CAAC,UAAU,KAAG,UAAU;gBACtD,CAAC,CAAC,YAAY,KAAG,aAAa,IAAE,CAAC,CAAC,QAAQ,KAAG,SAAS,CAAC;QAC3D,CAAC,CAAC,IAAE,OAAO,CAAC,KAAK,CAAC,UAAS,CAAC,IAAG,OAAO,CAAC,CAAC,UAAU,KAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EACnE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAS,CAAC;YAC/B,OAAO,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,GAAG,EAAC,CAAC,CAAC,UAAU,EAAC,GAAG,EAAC,CAAC,CAAC,QAAQ,EAAC,CAAC;QAAA,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,gEAAgE,EACrE,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,+DAA+D;IAC/D,IAAG,CAAC;QACF,IAAI,EAAE,GAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;QAClD,IAAI,IAAI,GAAC,OAAO,CAAC,oCAAoC,EACnD,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI;YACxC,SAAS,EAAC,EAAE,CAAC,SAAS,EAAC,oBAAoB,EAAC,EAAE,CAAC,WAAW,EAAC,CAAC,CAAC;QAChE,IAAI,IAAI,GAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAC,EAAC,KAAK,EAAC,WAAW,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,CAAC;QAC3D,IAAI,IAAI,GAAC,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,IAAI,EAAC,iBAAiB,CAAC,CAAC;QACjE,IAAI,SAAS,GAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,UAAU,KAAG,UAAU,CAAC,CAAA,CAAC,CAAC,CAAC;QACtF,MAAM,CAAC,mEAAmE,EACxE,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;YAChC,SAAS,CAAC,MAAM,GAAC,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAE,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAE,CAAC,EACxC,EAAC,WAAW,EAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,WAAW;YAC9C,QAAQ,EAAC,SAAS,CAAC,GAAG,CAAC,UAAS,CAAC;gBAC/B,OAAO,EAAC,GAAG,EAAC,CAAC,CAAC,UAAU,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,CAAC;YAAA,CAAC,CAAC,EAAC,CAAC,CAAC;IAClD,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,mEAAmE,EACxE,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,gEAAgE;IAChE,IAAG,CAAC;QACF,IAAI,MAAM,GAAC,sBAAsB,CAAC;YAChC,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,4CAA4C,EAAC,CAAC;YAC1E,OAAO,EAAC,EAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAC,cAAc,EAAC,EAAE,cAAc,EAAC,IAAI;YAClE,SAAS,EAAC,aAAa;SAAC,CAAC,CAAC;QAC5B,IAAI,QAAQ,GAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,IAAI,oBAAoB,GAAC,CAAC,QAAQ,CAAC,KAAK,IAAE,QAAQ,CAAC,QAAQ,KAAG,IAAI;YAChE,QAAQ,CAAC,QAAQ,CAAC,SAAS,KAAG,aAAa;YAC3C,QAAQ,CAAC,QAAQ,CAAC,OAAO,KAAG,wBAAwB;YACpD,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACrB;4DACoD;QACpD,IAAI,QAAQ,GAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,OAAO,EAAC,CAAC;YACnD,OAAO,EAAC,0BAA0B;YAClC,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,WAAW,EAAC,CAAC;YACzC,OAAO,EAAC,EAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAC,UAAU,EAAC,EAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,UAAU,GAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO;YAC3D,wBAAwB,IAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,KAAG,IAAI,CAAC;QAC/D,MAAM,CAAC,0DAA0D,EAC/D,oBAAoB,IAAE,UAAU,EAChC,EAAC,SAAS,EAAC,oBAAoB,EAAC,MAAM,EAAC,UAAU;YAChD,QAAQ,EAAC,QAAQ,CAAC,QAAQ,IAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS;YACvD,SAAS,EAAC,QAAQ,CAAC,QAAQ,IAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAC,CAAC,CAAC;IAChE,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,0DAA0D,EAC/D,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,MAAM,GAAC,OAAO,CAAC,MAAM,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,CAAC,yBAAyB,GAAC,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,CAAC,MAAM,EAAC,CAAC;IACtE,MAAM,CAAC,uBAAuB,GAAC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;AACzD,CAAC,CAAC,EAAE,CAAC"} \ No newline at end of file diff --git a/dist/tests/metrics.js b/dist/tests/metrics.js index f2afc31..32f2fe4 100644 --- a/dist/tests/metrics.js +++ b/dist/tests/metrics.js @@ -1,12 +1,13 @@ "use strict"; -/* v1.8.0 — fixture-corpus metric publishing. +/* v1.9.0 — fixture-corpus metric publishing. Aggregates the "Metrics that matter" over the checked-in golden corpus, including the v1.7.0 export-parity, export-traceability, and layout-budget - pass rates reported by tests/parity.ts, plus the v1.8.0 workspace - persistence/dependency-filtering pass rate from tests/workspace.ts. + pass rates reported by tests/parity.ts, the v1.8.0 workspace + persistence/dependency-filtering pass rate from tests/workspace.ts, and the + v1.9.0 catalogue pass rate from tests/catalogue.ts. Purely deterministic and fixture-only: no user inputs and no runtime telemetry are ever collected. scripts/metrics.mjs drives this page to - produce or verify docs/metrics-v1.8.0.json. */ + produce or verify docs/metrics-v1.9.0.json. */ (function () { var corpus = PROCFLOW_FIXTURES || []; var totalTokens = 0, attributedAll = 0, unresolvedTokens = 0, opaqueTokens = 0, tailUnconsumed = 0; @@ -85,11 +86,13 @@ `npm run metrics:write`; CI then refuses to merge a stale snapshot. */ golden: corpus.length, fuzz: 400, - ui: 20, + ui: 22, parity: window.PROCFLOW_PARITY_RESULT ? window.PROCFLOW_PARITY_RESULT.total / 2 : 0, layout: window.PROCFLOW_LAYOUT_RESULT ? window.PROCFLOW_LAYOUT_RESULT.total : 0, workspace: window.PROCFLOW_WORKSPACE_RESULT - ? window.PROCFLOW_WORKSPACE_RESULT.total : 0 + ? window.PROCFLOW_WORKSPACE_RESULT.total : 0, + catalogue: window.PROCFLOW_CATALOGUE_RESULT + ? window.PROCFLOW_CATALOGUE_RESULT.total : 0 }, attributionRate: rate(attributedAll, totalTokens), unresolvedTokenRate: rate(unresolvedTokens, totalTokens), @@ -118,6 +121,13 @@ workspacePassRate: window.PROCFLOW_WORKSPACE_RESULT ? rate(window.PROCFLOW_WORKSPACE_RESULT.passed, window.PROCFLOW_WORKSPACE_RESULT.total) : 0, + /* v1.9.0 resolve by catalogue: import parsing (JSON and line formats), + exact synonym/linked-server/cross-database verification, conservative + conflict handling, region-scoped partial diagnostics, export metadata, + and workspace round-trip all pass on the checked-in fixture corpus. */ + cataloguePassRate: window.PROCFLOW_CATALOGUE_RESULT + ? rate(window.PROCFLOW_CATALOGUE_RESULT.passed, window.PROCFLOW_CATALOGUE_RESULT.total) + : 0, aggregate: { totalTokens: totalTokens, accountedTokens: attributedAll, diff --git a/dist/tests/metrics.js.map b/dist/tests/metrics.js.map index 265f07a..429684e 100644 --- a/dist/tests/metrics.js.map +++ b/dist/tests/metrics.js.map @@ -1 +1 @@ -{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../tests/metrics.ts"],"names":[],"mappings":";AAAA;;;;;;;iDAOiD;AACjD,CAAC;IACC,IAAI,MAAM,GAAC,iBAAiB,IAAE,EAAE,CAAC;IAEjC,IAAI,WAAW,GAAC,CAAC,EAAE,aAAa,GAAC,CAAC,EAAE,gBAAgB,GAAC,CAAC,EAAE,YAAY,GAAC,CAAC,EAClE,cAAc,GAAC,CAAC,CAAC;IACrB,IAAI,YAAY,GAAC,CAAC,EAAE,eAAe,GAAC,CAAC,CAAC;IACtC,IAAI,KAAK,GAAC,CAAC,EAAE,SAAS,GAAC,CAAC,EAAE,KAAK,GAAC,CAAC,EAAE,eAAe,GAAC,CAAC,CAAC;IACrD,IAAI,gBAAgB,GAAC,CAAC,EAAE,cAAc,GAAC,CAAC,CAAC;IACzC,IAAI,uBAAuB,GAAC,OAAO,CAAC;IAEpC;iEAC6D;IAC7D,SAAS,IAAI,CAAC,IAAS;QACrB,CAAC,IAAI,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,EAAE;YAC5B,IAAG,EAAE,CAAC,IAAI,IAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC;gBAC1B,gBAAgB,EAAE,CAAC;gBACnB,IAAG,EAAE,CAAC,IAAI,KAAG,SAAS;oBAAE,cAAc,EAAE,CAAC;YAC3C,CAAC;YACD,IAAG,EAAE,CAAC,IAAI,KAAG,OAAO;gBAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;iBAC/B,IAAG,EAAE,CAAC,IAAI,KAAG,IAAI,EAAC,CAAC;gBACtB,IAAG,EAAE,CAAC,IAAI;oBAAE,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5B,IAAG,EAAE,CAAC,IAAI;oBAAE,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9B,CAAC;iBAAM,IAAG,EAAE,CAAC,IAAI,KAAG,MAAM,EAAC,CAAC;gBAC1B,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,IAAG,EAAE,CAAC,IAAI;oBAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;iBAAM,IAAG,CAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,IAAE,CAAC,IAAE,EAAE,CAAC,IAAI;gBACpE,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;iBACb,IAAG,EAAE,CAAC,IAAI,KAAG,KAAK,EAAC,CAAC;gBACvB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACd,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC;iBAAM,IAAG,EAAE,CAAC,IAAI,KAAG,SAAS,IAAE,EAAE,CAAC,IAAI;gBAAE,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,UAAS,CAAC;QACvB,IAAI,CAAC,GAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAC,EAAC,OAAO,EAAC,CAAC,CAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,GAAC,CAAC,CAAC,WAAW,IAAE,EAAC,KAAK,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,UAAU,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,CAAC;QAC1E,WAAW,IAAE,CAAC,CAAC,KAAK,CAAC;QACrB;;;yCAGiC;QACjC,aAAa,IAAE,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,OAAO,GAAC,CAAC,CAAC,UAAU,GAAC,CAAC,CAAC,MAAM,CAAC;QAC1D,gBAAgB,IAAE,CAAC,CAAC,UAAU,CAAC;QAC/B,YAAY,IAAE,CAAC,CAAC,MAAM,CAAC;QACvB,cAAc,IAAE,CAAC,CAAC,CAAC,WAAW,GAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACjD,IAAG,CAAC,CAAC,wBAAwB;YAAE,uBAAuB,GAAC,CAAC,CAAC,wBAAwB,CAAC;QAClF,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,UAAS,CAAC;YAC9B,IAAG,CAAC,CAAC,KAAK,KAAG,QAAQ,EAAC,CAAC;gBACrB,YAAY,EAAE,CAAC;gBACf,IAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,IAAI,CAAC,KAAK,IAAE,CAAC,IAAE,CAAC,CAAC,IAAI,CAAC,GAAG,GAAC,CAAC,CAAC,IAAI,CAAC,KAAK;oBAAE,eAAe,EAAE,CAAC;YAC3E,CAAC;QACH,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,KAAK,EAAE,CAAC,CAAC,IAAG,CAAC,CAAC,CAAC,CAAC,IAAI;YAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,KAAK,EAAE,CAAC,CAAC,IAAG,CAAC,CAAC,CAAC,CAAC,UAAU;YAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,SAAS,IAAI,CAAC,CAAS,EAAE,CAAS;QAChC,OAAO,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAC,OAAO,CAAC,GAAC,OAAO,CAAA,CAAC,CAAA,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,OAAO,GAA0B;QACnC,SAAS,EAAC,gEAAgE;QAC1E,cAAc,EAAC,uBAAuB;QACtC,MAAM,EAAC;YACL;;qFAEyE;YACzE,MAAM,EAAC,MAAM,CAAC,MAAM;YACpB,IAAI,EAAC,GAAG;YACR,EAAE,EAAC,EAAE;YACL,MAAM,EAAC,MAAM,CAAC,sBAAsB,CAAA,CAAC,CAAA,MAAM,CAAC,sBAAsB,CAAC,KAAK,GAAC,CAAC,CAAA,CAAC,CAAA,CAAC;YAC5E,MAAM,EAAC,MAAM,CAAC,sBAAsB,CAAA,CAAC,CAAA,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAA,CAAC,CAAA,CAAC;YAC1E,SAAS,EAAC,MAAM,CAAC,yBAAyB;gBACxC,CAAC,CAAA,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAAA,CAAC,CAAA,CAAC;SAC5C;QACD,eAAe,EAAC,IAAI,CAAC,aAAa,EAAC,WAAW,CAAC;QAC/C,mBAAmB,EAAC,IAAI,CAAC,gBAAgB,EAAC,WAAW,CAAC;QACtD,kBAAkB,EAAC,IAAI,CAAC,cAAc,EAAC,WAAW,CAAC;QACnD,iBAAiB,EAAC,IAAI,CAAC,YAAY,EAAC,WAAW,CAAC;QAChD,YAAY,EAAC,IAAI,CAAC,cAAc,EAAC,gBAAgB,CAAC;QAClD,oBAAoB,EAAC,IAAI,CAAC,SAAS,EAAC,KAAK,CAAC;QAC1C,cAAc,EAAC,IAAI,CAAC,eAAe,EAAC,KAAK,CAAC;QAC1C,2BAA2B,EAAC,IAAI,CAAC,eAAe,EAAC,YAAY,CAAC;QAC9D;;;iEAGyD;QACzD,oBAAoB,EAAC,MAAM,CAAC,sBAAsB;YAChD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC;YAChF,CAAC,CAAC,CAAC;QACL,sBAAsB,EAAC,MAAM,CAAC,sBAAsB;YAClD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,EAChD,MAAM,CAAC,sBAAsB,CAAC,iBAAiB,CAAC;YACvD,CAAC,CAAC,CAAC;QACL,oBAAoB,EAAC,MAAM,CAAC,sBAAsB;YAChD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC;YAChF,CAAC,CAAC,CAAC;QACL;;kEAE0D;QAC1D,iBAAiB,EAAC,MAAM,CAAC,yBAAyB;YAChD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAC,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAAC;YACtF,CAAC,CAAC,CAAC;QACL,SAAS,EAAC;YACR,WAAW,EAAC,WAAW;YACvB,eAAe,EAAC,aAAa;YAC7B,gBAAgB,EAAC,gBAAgB;YACjC,iBAAiB,EAAC,cAAc;SACjC;KACF,CAAC;IAEF,IAAI,GAAG,GAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC;IACvC,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAC,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,WAAW;QAC5C,2BAA2B,GAAC,MAAM,CAAC,MAAM,GAAC,kBAAkB,CAAC;IAC/D,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,WAAW,GAAC,GAAG,CAAC;IAC1D,QAAQ,CAAC,KAAK,GAAC,mBAAmB,CAAC;IACnC,MAAM,CAAC,uBAAuB,GAAC,GAAG,CAAC;IACnC,MAAM,CAAC,sBAAsB,GAAC,IAAI,CAAC;AACrC,CAAC,CAAC,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../tests/metrics.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/tests/tests.js b/dist/tests/tests.js index 708e997..81a856f 100644 --- a/dist/tests/tests.js +++ b/dist/tests/tests.js @@ -793,6 +793,18 @@ catch (err) { record('v1.8.0 workspace persistence, migration, clear, and filter fixtures', false, String(err && err.stack || err)); } + /* v1.9.0: resolve by catalogue — import parsing, exact synonym / linked-server + / cross-database verification, conservative conflict handling, region-scoped + partial diagnostics, export metadata, and the workspace round-trip run ahead + in tests/catalogue.ts; gate the whole golden page on them. */ + try { + record('v1.9.0 catalogue import, resolution, diagnostics, and export fixtures', window.PROCFLOW_CATALOGUE_PASS === true && + !!window.PROCFLOW_CATALOGUE_RESULT && + window.PROCFLOW_CATALOGUE_RESULT.passed === window.PROCFLOW_CATALOGUE_RESULT.total, window.PROCFLOW_CATALOGUE_RESULT); + } + catch (err) { + record('v1.9.0 catalogue import, resolution, diagnostics, and export fixtures', false, String(err && err.stack || err)); + } var passed = results.filter(function (r) { return r.pass; }).length; document.body.className = passed === results.length ? 'pass' : 'fail'; document.getElementById('summary').textContent = passed + '/' + results.length + ' tests passed'; diff --git a/dist/tests/tests.js.map b/dist/tests/tests.js.map index 3343591..ee4bd45 100644 --- a/dist/tests/tests.js.map +++ b/dist/tests/tests.js.map @@ -1 +1 @@ -{"version":3,"file":"tests.js","sourceRoot":"","sources":["../../tests/tests.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"tests.js","sourceRoot":"","sources":["../../tests/tests.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/tests/ui-tests.js b/dist/tests/ui-tests.js index 0daf171..8f441ed 100644 --- a/dist/tests/ui-tests.js +++ b/dist/tests/ui-tests.js @@ -198,6 +198,35 @@ pass: w.hasSavedWorkspace() === false && /No workspace is saved/i.test(get('ws-status').textContent || ''), detail: { saved: w.hasSavedWorkspace(), status: get('ws-status').textContent } }); + /* v1.9.0 resolve by catalogue — paste catalogue metadata, Apply, and + verify the dependency view shows the verified object (no external + label) while an unproven three-part name stays external. */ + get('opt-scope').value = 'internal'; + get('opt-dialect').value = 'tsql'; + get('sql').value = [ + 'CREATE PROC dbo.cat_ui AS', + 'BEGIN', + ' SELECT id FROM salesdb.dbo.orders;', + ' SELECT id FROM readme.dbo.ghost;', + 'END' + ].join('\n'); + get('sql').dispatchEvent(new Event('input')); + get('catalogue-text').value = 'salesdb.dbo.orders TABLE'; + get('btn-catalogue-apply').click(); + get('opt-scope').value = 'dependencies'; + get('opt-scope').dispatchEvent(new Event('change')); + var catalogued = get('mermaid-out').textContent; + results.push({ name: 'catalogue verification in the dependency view', + pass: catalogued.indexOf('salesdb.dbo.orders') >= 0 && + catalogued.indexOf('external: salesdb.dbo.orders') < 0 && + catalogued.indexOf('external: readme.dbo.ghost') >= 0 && + /Loaded: 1 object/i.test(get('catalogue-status').textContent || ''), + detail: { code: catalogued.slice(0, 160), + status: get('catalogue-status').textContent } }); + get('btn-catalogue-clear').click(); + results.push({ name: 'clearing the catalogue resets its status', + pass: /No catalogue loaded/i.test(get('catalogue-status').textContent || ''), + detail: { status: get('catalogue-status').textContent } }); finish(results); }, 1200); }); diff --git a/dist/tests/ui-tests.js.map b/dist/tests/ui-tests.js.map index 3dc5048..07ae00d 100644 --- a/dist/tests/ui-tests.js.map +++ b/dist/tests/ui-tests.js.map @@ -1 +1 @@ -{"version":3,"file":"ui-tests.js","sourceRoot":"","sources":["../../tests/ui-tests.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ui-tests.js","sourceRoot":"","sources":["../../tests/ui-tests.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/PR_NOTE_1.9.0.md b/docs/PR_NOTE_1.9.0.md new file mode 100644 index 0000000..ea8392f --- /dev/null +++ b/docs/PR_NOTE_1.9.0.md @@ -0,0 +1,112 @@ +# PR: v1.9.0 — Resolve by catalogue + +## Summary + +Implements the **v1.9.0 — Resolve by catalogue** milestone from `ROADMAP.md` +in full and nothing from v1.10.0 onwards: README post-v1.0.0 item 5 — +**catalogue metadata import** (paste/import table/view/column catalogues) with +**exact synonym, linked-server, and cross-database resolution** replacing +v1.5.0's conservative external label where catalogue evidence exists, plus +**E diagnostics for partial or conflicting catalogue data**. The golden suite +grows from 207 to 208; fuzz (400) stays green; the UI suite grows from 20 to +22; catalogue fixtures (13) cover import parsing (JSON + line format), exact +and synonym verification in the estate and query graphs, conservative conflict +and cross-database partial handling, draw.io metadata, and the workspace +round-trip. Column lineage (v1.10.0+) and RDL (v1.12.0) remain deferred. + +## What's included + +### Catalogue model and import (`src/catalogue.ts`) + +A new runtime module (loaded after `tokenizer.js`, before the analysis stages): + +- `parseCatalogue(text, format?)` auto-detects **JSON** (`{objects:[{name, + kind, synonyms[]}], columns:[{table, name}]}` or a bare array) and a + forgiving **one-object-per-line** format (`# comment`, `name KIND syn1, syn2`, + `COL table.column`) and returns `{catalogue, diagnostics, format, + objectCount, columnCount}`. +- `buildCatalogueIndex` normalizes names (case-insensitive, bracket/quote + stripping) into `byName`/`bySynonym` lookup maps and records **conflicts** + (duplicate object names, or a synonym colliding with an object name) so + ambiguous evidence is never invented into a verification. +- `resolveCatalogue(cat, name)` returns `verified` (exact full-name or + explicit-synonym match with the resolved canonical name), `conflict` + (conservative), or `external` (unproven). +- `suffixCatalogueMatches(cat, name)` lists near-miss candidates (the reference + carries extra leading server/database parts over a catalogued object) used + for conservative reporting. +- Diagnostics: `catalogue_parse_error`, `catalogue_empty`, + `catalogue_conflict` (document-scoped), plus the region-scoped + `catalogue_partial`/`catalogue_conflict` raised against a reference. + +### Resolution wired into both views + +- `src/ir.ts` `dependencyGraph(objects, opts)` now accepts the catalogue: + unmatched leaves that the catalogue proves render as their canonical name + with `provenance: external`, `resolution: verified`, and the original + `objectId` preserved; conflicts stay conservative with a marker and reason; + unmatched names keep the exact v1.5.0 behaviour (byte-identical without a + catalogue). +- `src/lineage.ts` `buildQueryGraph`/`buildObjectQueryGraph` resolve query + source nodes the same way whenever `opts.catalogue` is present; the + catalogue-absent path is unchanged (regression-guarded by a fixture). +- `src/ir.ts` `analyse()` merges document-scoped catalogue parse diagnostics + and attaches region-scoped `catalogue_conflict` / `catalogue_partial` + diagnostics to each reference (span-attached, conservative). +- `src/exporters.ts` carries `resolution=` and `resolved=` provenance metadata + on draw.io vertices so verification survives the round-trip. + +### UI (`index.html`, `src/app.ts`) + +A **Catalogue** command menu with a paste textarea, **Import file**, +**Apply catalogue**, and **Clear**, plus a status line that reports the parsed +object/column/conflict counts. Applying re-runs the current analysis so +verified resolution appears immediately; the catalogue is an analysis input and +clearing it re-runs without it. + +### Workspace persistence (schema v2) + +`src/workspace.ts` bumps `WORKSPACE_SCHEMA_VERSION` to 2 and carries the raw +catalogue text as an optional top-level snapshot field; v1 snapshots migrate +forward with `catalogue: null`, so **save → reload reproduces an identical +analysis** even when a catalogue was applied. `app.ts` saves/restores the +catalogue text and re-parses it on restore. + +## Fixtures and tests + +- `tests/catalogue.ts` (+ `tests/index.html`, `tests/metrics.html`, and + `catalogue.js` wiring) — 13 fixture-corpus records covering JSON and line + parsing, malformed/empty input diagnostics, duplicate-name and synonym + collision conflicts, estate verification (exact + synonym + linked server), + query-source verification, conservative cross-database partials with + region-scoped diagnostics, the catalogue-absent regression guard, draw.io + metadata survival, and the workspace catalogue round-trip + v1 migration. + Gates the golden page via `PROCFLOW_CATALOGUE_PASS`. +- `tests/ui-tests.ts` — 2 new browser tests: catalogue verification in the + dependency view and clearing the catalogue resetting its status. +- `tests/metrics.ts` → `docs/metrics-v1.9.0.json` — adds `cataloguePassRate` + and the `catalogue` corpus count (13/13); the v1.8.0 snapshot is renamed to + v1.9.0. +- `examples/dbo.v190_demo.sql` — a multi-object demo with a matching catalogue + you can paste to see verification, a catalogued synonym, and an unmatched + external name. + +## Verification + +- `npm run typecheck` — passes +- `npm run build` — passes +- `npm run test:file` — passes (with `CHROME_PATH` set) +- Golden suite — 208/208 (was 207) +- Fuzz suite — 400 deterministic mutation cases +- UI suite — 22/22 (was 20) +- `npm run metrics` — snapshot is current; `docs/metrics-v1.9.0.json` committed + (v1.8.0 snapshot renamed) +- Local-only check clean; `dist/` committed in sync + +## Not changed / deferred (per roadmap) + +- Everything from v1.10.0 onwards — column lineage (scopes, bindings, + projections) and RDL/report import — is out of scope for this release. +- Existing v1.1.0–v1.8.0 semantics are untouched; all prior fixtures remain + green (verified by the unchanged catalogue-absent byte-identical paths and + the full golden suite). diff --git a/docs/RELEASE_NOTE_v1.9.0.md b/docs/RELEASE_NOTE_v1.9.0.md new file mode 100644 index 0000000..3a97751 --- /dev/null +++ b/docs/RELEASE_NOTE_v1.9.0.md @@ -0,0 +1,91 @@ +# proc>flow v1.9.0 — Resolve by catalogue + +**Release date:** 2026-08-08 + +ProcFlow v1.9.0 accepts database catalogue metadata so the diagram can resolve +object references to their **exact identity** instead of guessing. Where the +catalogue proves a match, an unqualified synonym, a linked-server name, or a +cross-database reference becomes a **verified** object; where the evidence is +partial or conflicting, ProcFlow stays conservative and tells the reviewer +which reference could not be proven and why. + +Everything is local: the catalogue is pasted or imported into the current tab, +stays in the browser, and is never uploaded. Column metadata is accepted and +validated now; column lineage uses it in a later release. + +## Highlights + +- **Catalogue metadata import.** The new **Catalogue** menu accepts a pasted or + imported catalogue in either a JSON schema or a forgiving one-object-per-line + text format (`# comment`, `name KIND synonym1, synonym2 …`, and `COL + table.column` lines). Object kind, synonyms, and columns all parse. +- **Verified resolution replaces external labels.** In **Object dependencies** + scope and the **Query structure** view, a reference that the catalogue proves + (an exact full-name match, or an explicit synonym) renders as its canonical + object identity instead of a conservative `external: …` label. The resolution + survives as metadata on draw.io exports. +- **Conservative when uncertain.** Only exact and synonym matches count as + "verified". A reference that only partially matches (for example a server + prefix over a catalogued object) stays external and attaches a region-scoped + `catalogue_partial` diagnostic naming the unproven candidate. Duplicate or + colliding catalogue entries yield a `catalogue_conflict` diagnostic and never + invent a verification. +- **E diagnostics for catalogue data.** Parse errors, empty input, conflicts, + and partial matches are reported with the correct document/region scope. +- **Workspace integration.** The saved workspace now carries the catalogue + text (schema v2, migrating v1 snapshots), so **save → reload** still + reproduces an identical analysis even when a catalogue was in use. + +## Correctness baseline + +- TypeScript type-checking and a clean generated build; +- 208 golden, graph, dependency, exporter, provenance, boundary, diagnostic, + confidence, export-parity, layout, workspace, and catalogue tests; +- 400 deterministic mutation cases; +- 22 browser interaction and local-runtime tests (up from 20); +- catalogue fixtures 13/13, workspace persistence/filtering fixtures 13/13, + export parity 20/20, layout budgets 11/11, export traceability 69/69; and +- the fixture-corpus metric snapshot in `docs/metrics-v1.9.0.json`: 100 % + attribution, 100 % semantic-edge coverage, 100 % provenance, 100 % region-span + ratio, 100 % export-parity, 100 % export-traceability, 100 % layout budgets, + 100 % workspace pass rate, and 100 % catalogue pass rate. + +GitHub Actions continues to check that generated JavaScript is current, the +vendored Mermaid runtime remains pinned, runtime application files contain no +external URLs or network-submission APIs, browser storage is confined to the +opt-in persistence module, the local-file smoke test passes, and the metric +snapshot is current. + +## Compatibility and upgrade notes + +- **Saved workspaces migrate forward.** The workspace schema is now v2 with an + optional `catalogue` field; v1 snapshots restore with no catalogue and keep + every prior option default. Existing saved workspaces are not lost. +- Exported `.drawio` files from v1.7.0/v1.8.0 remain valid; catalogue + resolution is an additional metadata field on vertices, not a format change. +- The local-only browser security model is unchanged. + +## Security and privacy (v1.9.0) + +- The catalogue is pasted or imported into the current tab only and is never + uploaded, executed, or sent to any API. +- A saved workspace may include catalogue text; as before, persistence is + opt-in (`Save to this browser`), local-only, versioned, exportable, and + removed by **Forget saved workspace**. +- No new network, storage, or telemetry paths were added. + +## Known limitations + +- Parsing is heuristic rather than compiler-grade. +- Dynamic SQL remains opaque. +- Verification is deliberately conservative: suffix-only matches and + unqualified names without a catalogue synonym stay external until the + catalogue proves them. +- Columns are parsed and validated but not yet used; column lineage remains + scheduled for v1.10.0+. +- RDL/report import remains scheduled for v1.12.0. + +Verify critical dependencies and resolution conclusions against the original +SQL, the target database, and the actual catalogue of the audited environment. + +See [README.md](../README.md) for usage and development guidance. diff --git a/docs/metrics-v1.8.0.json b/docs/metrics-v1.9.0.json similarity index 89% rename from docs/metrics-v1.8.0.json rename to docs/metrics-v1.9.0.json index 92fd7fb..d3a3852 100644 --- a/docs/metrics-v1.8.0.json +++ b/docs/metrics-v1.9.0.json @@ -4,10 +4,11 @@ "corpus": { "golden": 107, "fuzz": 400, - "ui": 20, + "ui": 22, "parity": 10, "layout": 11, - "workspace": 13 + "workspace": 13, + "catalogue": 13 }, "attributionRate": 1, "unresolvedTokenRate": 0.04432, @@ -21,6 +22,7 @@ "exportTraceabilityRate": 1, "layoutBudgetPassRate": 1, "workspacePassRate": 1, + "cataloguePassRate": 1, "aggregate": { "totalTokens": 2685, "accountedTokens": 2685, diff --git a/examples/dbo.v190_demo.sql b/examples/dbo.v190_demo.sql new file mode 100644 index 0000000..e36d4fb --- /dev/null +++ b/examples/dbo.v190_demo.sql @@ -0,0 +1,72 @@ +/* + v1.9.0 demo — resolve by catalogue. + + This multi-object script exercises the v1.9.0 territory (README + post-v1.0.0 item 5) in one script so you can try catalogue resolution in + one pane: + + 1. Open the Catalogue menu and paste this catalogue (JSON or line format): + + dbo.Student TABLE student + salesdb.dbo.Orders TABLE + linksrv.warehouse.dbo.OrderLines TABLE + dbo.v190_audit PROC + + 2. Press Apply catalogue, then switch Scope to "Object dependencies". + + Now the unqualified "student" synonym resolves to dbo.Student, and the + cross-database and linked-server names resolve to their exact catalogue + identity — no "external: " label, because the catalogue proves the + match. "earn.dbo.Totals" is not in the catalogue, so it keeps the + conservative external label (and a lower-confidence reading of the + estate). + + 3. In Internal logic / Query structure view, a SELECT from a catalogued + source also shows the exact identity instead of an unproven name. + + Any reference the catalogue only partially explains (for example a full + "earn.src.warehouse.dbo.Totals" when only "warehouse.dbo.Totals" is + catalogued) stays conservative and reports a region-scoped + catalogue_partial diagnostic instead of guessing. + + This demo is an illustration, not an input to the fixture-corpus metrics + (docs/metrics-v1.9.0.json). No user input or runtime telemetry is + collected. +*/ +CREATE VIEW dbo.v190_report AS +SELECT o.Id, l.Qty +FROM salesdb.dbo.Orders o +JOIN linksrv.warehouse.dbo.OrderLines l ON l.OrderId = o.Id; + +GO + +CREATE PROCEDURE dbo.v190_process @Year INT +AS +BEGIN + SET NOCOUNT ON; + + -- "student" is a catalogue synonym for dbo.Student. + SELECT Id INTO #stage FROM student WHERE SchoolYear = @Year; + + -- Reads the cross-database and linked-server tables catalogued above. + INSERT INTO dbo.v190_report + SELECT o.Id, l.Qty + FROM salesdb.dbo.Orders o + JOIN linksrv.warehouse.dbo.OrderLines l ON l.OrderId = o.Id; + + -- Missing from the catalogue: stays an external node, honestly labelled. + SELECT SUM(Amount) FROM earn.dbo.Totals WHERE Year = @Year; + + -- Known object call. + EXEC dbo.v190_audit @Year; + + RETURN 0; +END; + +GO + +CREATE PROCEDURE dbo.v190_audit @Year INT +AS +BEGIN + SELECT COUNT(*) AS Total FROM dbo.Student WHERE SchoolYear = @Year; +END; diff --git a/index.html b/index.html index 9371768..91fbc21 100644 --- a/index.html +++ b/index.html @@ -129,6 +129,26 @@

proc>flow

+
+ Catalogue +
+

Paste or import table/view/column metadata so + unresolved object references resolve to their exact identity + instead of an external label.

+ +
+ + + + +
+

No catalogue loaded.

+
+
Export
@@ -188,6 +208,7 @@

proc>flow

+ diff --git a/package-lock.json b/package-lock.json index 555b27f..c24b937 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "procflow", - "version": "1.8.0", + "version": "1.9.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "procflow", - "version": "1.8.0", + "version": "1.9.0", "devDependencies": { "typescript": "5.9.3" } diff --git a/package.json b/package.json index 71a1d75..9409117 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "procflow", - "version": "1.8.0", + "version": "1.9.0", "private": true, "description": "Local-first SQL control-flow and dependency visualiser", "scripts": { diff --git a/scripts/metrics.mjs b/scripts/metrics.mjs index ba9de75..7b41257 100644 --- a/scripts/metrics.mjs +++ b/scripts/metrics.mjs @@ -11,7 +11,7 @@ import { fileURLToPath, pathToFileURL } from "node:url"; const repositoryRoot = dirname(dirname(fileURLToPath(import.meta.url))); const metricsPage = join(repositoryRoot, "tests", "metrics.html"); -const snapshotFile = join(repositoryRoot, "docs", "metrics-v1.8.0.json"); +const snapshotFile = join(repositoryRoot, "docs", "metrics-v1.9.0.json"); const writeMode = process.argv.includes("--write"); const explicitBrowser = (process.env.CHROME_PATH || "").trim(); diff --git a/src/app.ts b/src/app.ts index b90a85e..e83c15c 100644 --- a/src/app.ts +++ b/src/app.ts @@ -9,6 +9,11 @@ lastDirection: DiagramDirection='TD', lastResult: AnalysisResult | null=null, estate: EstateResult | null=null, workspaceFiles: WorkspaceFile[] | null=null, activeObjectId: string | null=null, renderSeq=0; + /* v1.9.0 — the active parsed catalogue plus its raw text and parse + diagnostics, so Apply/Clear re-run the analysis with (or without) it. */ + var currentCatalogue: Catalogue | null=null, + currentCatalogueText: string='', + currentCatalogueDiagnostics: Diagnostic[]=[]; var SAMPLES = {} as Record; SAMPLES.tsql = [ @@ -250,10 +255,40 @@ dialect:$('opt-dialect').value, mode:$('opt-view').value, dir:$('opt-dir').value, detail:$('opt-detail').value, group:$('opt-group').checked, number:$('opt-number').checked, - fanIn:$('opt-fanin').checked, sources:$('opt-sources').checked + fanIn:$('opt-fanin').checked, sources:$('opt-sources').checked, + catalogue:currentCatalogue||undefined, + catalogueDiagnostics:currentCatalogueDiagnostics.slice() }; } + /* v1.9.0 — catalogue status panel. */ + function updateCatalogueStatus(): void { + var el=$('catalogue-status'); + if(!currentCatalogue){ + el.textContent='No catalogue loaded.'; + return; + } + var summary=catalogueSummary(currentCatalogue); + var nDiag=currentCatalogueDiagnostics.length; + el.textContent='Loaded: '+summary+(nDiag?'; '+nDiag+ + (nDiag===1?' diagnostic':' diagnostics'):''); + } + + /* Apply the current Catalogue panel text: parse it (JSON or line format), + store the parsed catalogue plus parse diagnostics, and re-run. */ + function applyCatalogue(): void { + currentCatalogueText=$('catalogue-text').value; + if(!currentCatalogueText.trim()){ + currentCatalogue=null; currentCatalogueDiagnostics=[]; + } else { + var parsed=parseCatalogue(currentCatalogueText); + currentCatalogue=parsed.catalogue; + currentCatalogueDiagnostics=parsed.diagnostics.slice(); + } + updateCatalogueStatus(); + run(); + } + /* v1.8.0 dependency filtering — presentation only. currentFilter() reads the filter panel and run() derives a filtered view at render time; the underlying estate graph is never mutated. */ @@ -298,6 +333,16 @@ $('opt-sources').checked=!!o.sources; workspaceFiles=(snap.files&&snap.files.length)?snap.files.slice():null; estate=null; activeObjectId=snap.activeObjectId; + /* v1.9.0 — restore the catalogue (an analysis input) so an identical + analysis is reproduced. */ + currentCatalogueText=snap.catalogue==null?'':snap.catalogue; + $('catalogue-text').value=currentCatalogueText; + if(currentCatalogueText.trim()){ + var parsed=parseCatalogue(currentCatalogueText); + currentCatalogue=parsed.catalogue; + currentCatalogueDiagnostics=parsed.diagnostics.slice(); + } else { currentCatalogue=null; currentCatalogueDiagnostics=[]; } + updateCatalogueStatus(); if(workspaceFiles&&workspaceFiles.length) sql.value=workspaceFiles[0].text; drawGutter(); run(); @@ -715,7 +760,7 @@ $('btn-ws-save').onclick=function(){ var files=workspaceFiles||[{name:'Pasted SQL',text:sql.value}]; var snap=buildWorkspaceSnapshot({files:files,options:snapshotOptions(), - activeObjectId:activeObjectId}); + activeObjectId:activeObjectId, catalogue:currentCatalogueText}); var ok=writeWorkspace(snap); updateWsStatus(); flash($('btn-ws-save'),ok?'Saved':'Save failed'); @@ -756,6 +801,28 @@ this.value=''; }; + /* v1.9.0 — catalogue import (paste or file), Apply, and Clear. Apply parses + JSON or the simple line format, stores the parsed catalogue, and re-runs + so verified external/source objects resolve immediately. */ + $('btn-catalogue-import').onclick=function(){ $('catalogue-file-input').click(); }; + $('catalogue-file-input').onchange=function(){ + var file=(this.files&&this.files[0]); + if(!file) return; + file.text().then(function(text){ + $('catalogue-text').value=text; + applyCatalogue(); + }).catch(function(err){ showMsg('Could not read that catalogue file: '+err.message); }); + this.value=''; + }; + $('btn-catalogue-apply').onclick=applyCatalogue; + $('btn-catalogue-clear').onclick=function(){ + $('catalogue-text').value=''; + currentCatalogue=null; currentCatalogueDiagnostics=[]; currentCatalogueText=''; + updateCatalogueStatus(); + run(); + }; + updateCatalogueStatus(); + if(typeof mermaid!=='undefined'){ mermaid.initialize({ startOnLoad:false, theme:'base', securityLevel:'strict', diff --git a/src/catalogue.ts b/src/catalogue.ts new file mode 100644 index 0000000..8f8502a --- /dev/null +++ b/src/catalogue.ts @@ -0,0 +1,189 @@ +/* ===== v1.9.0 Resolve by catalogue (README post-v1.0.0 item 5) ===== + Accepts table/view/column catalogue metadata (pasted or imported) so + unmatched object references resolve to their exact identity instead of a + conservative v1.5.0 'external' label. + + Only full-name and explicit-synonym matches count as 'verified'. Partial + (suffix-only) and conflicting evidence stays conservative and is reported + with a region-scoped diagnostic: it is never inferred into a verification. + Column metadata is accepted and validated now; column lineage uses it in a + later release. */ +var CATALOGUE_KINDS: StringSet = S(['TABLE','VIEW','PROC','PROCEDURE','FUNCTION', + 'TRIGGER','SYNONYM','TYPE','SEQUENCE']); + +function normalizeCatalogueName(name: unknown): string { + return String(name==null?'':name) + .replace(/[\[\]"]/g,'').replace(/`/g,'') + .trim().toUpperCase().replace(/\s+/g,' '); +} + +function normalizeCatalogueKind(kind: unknown): CatalogueKind { + var k=String(kind==null?'':kind).trim().toUpperCase(); + if(k==='PROCEDURE') return 'PROC'; + if(['TABLE','VIEW','PROC','FUNCTION','TRIGGER','SYNONYM','TYPE','SEQUENCE'] + .indexOf(k)>=0) return k as CatalogueKind; + return 'OTHER'; +} + +/* Build normalized lookup indexes and record conflicting catalogue entries. + A conflict is a duplicate normalized object name, or a synonym that collides + with another object's name or synonym — evidence that is too ambiguous to + verify against, so resolution of that name stays conservative. */ +function buildCatalogueIndex(objects: CatalogueObject[], columns: CatalogueColumn[]): Catalogue { + var byName: Record={}, + bySynonym: Record={}, + conflicts: StringSet={}; + (objects||[]).forEach(function(o){ + var n=normalizeCatalogueName(o.name); + if(!n) return; + var priorName=byName[n], priorSyn=bySynonym[n]; + if(priorName||priorSyn){ + conflicts[n]=1; + return; + } + byName[n]=o; + (o.synonyms||[]).forEach(function(raw){ + var sn=normalizeCatalogueName(raw); + if(!sn) return; + if((bySynonym[sn]&&bySynonym[sn]!==o)||byName[sn]){ + conflicts[sn]=1; + return; + } + bySynonym[sn]=o; + }); + }); + return {objects:objects||[], columns:columns||[], + byName:byName, bySynonym:bySynonym, conflicts:conflicts}; +} + +/* Resolve a referenced object name against the catalogue. Exact full-name and + explicit-synonym matches are 'verified'; a conflicting name is 'conflict' + (conservative); otherwise 'external' (unproven, v1.5.0 label retained). */ +function resolveCatalogue(cat: Catalogue | null | undefined, + name: string): {resolution: CatalogueResolution; resolvedName?: string} { + if(!cat||!(cat.objects&&cat.objects.length)) return {resolution:'external'}; + var n=normalizeCatalogueName(name); + if(!n) return {resolution:'external'}; + if(cat.conflicts[n]===1) return {resolution:'conflict'}; + var exact=cat.byName[n]; + if(exact) return {resolution:'verified', resolvedName:exact.name}; + var syn=cat.bySynonym[n]; + if(syn) return {resolution:'verified', resolvedName:syn.name}; + return {resolution:'external'}; +} + +/* Conservative near-match candidates: catalogue objects the reference could + partially reach (the referenced name carries extra leading server/schema + parts over a catalogue object, sharing the same trailing identity). These + are NOT verified — they are reported so a reviewer knows a plausible but + unproven candidate existed instead of silently staying external. */ +function suffixCatalogueMatches(cat: Catalogue | null | undefined, + name: string): string[] { + if(!cat||!name) return []; + var n=normalizeCatalogueName(name), out: string[]=[], seen: StringSet={}; + (cat.objects||[]).forEach(function(o){ + var on=normalizeCatalogueName(o.name); + if(!on||on===n) return; + if(on.length>=n.length) return; + if(n.charAt(n.length-on.length-1)==='.'&& + n.slice(n.length-on.length)===on){ + var key='#'+o.name.toUpperCase()+':'+o.kind; + if(!seen[key]){ seen[key]=1; out.push(o.name); } + } + }); + return out.slice(0,8); +} + +/* Parse a catalogue from text. Accepts either: + - JSON: {objects:[{name,kind,synonyms[]}], columns:[{table,name}]} + or a bare array of {name,...} / string names; + - a simple line format (one object per line): + # comment + [KIND] [synonym1, synonym2 …] + COL . + Returns a CatalogueParseResult with any parse/conflict diagnostics. */ +function parseCatalogue(text: string, format?: 'json' | 'text'): CatalogueParseResult { + var src=String(text==null?'':text); + var trimmed=src.trim(); + var fmt: 'json' | 'text' = format|| + ((trimmed.charAt(0)==='{'||trimmed.charAt(0)==='[') ? 'json' : 'text'); + var diagnostics: Diagnostic[]=[]; + var objects: CatalogueObject[]=[], columns: CatalogueColumn[]=[]; + + if(fmt==='json'){ + var raw: any; + try { + raw=JSON.parse(trimmed); + }catch(e){ + diagnostics.push({severity:'error',code:'catalogue_parse_error', + message:'Catalogue JSON could not be parsed: '+(e instanceof Error?e.message:String(e)), + span:null, scope:'document'}); + return {catalogue:buildCatalogueIndex(objects,columns), diagnostics:diagnostics, + format:'json', objectCount:0, columnCount:0}; + } + if(!raw||typeof raw!=='object') raw=[]; + var list = Array.isArray(raw) ? raw : (Array.isArray(raw.objects)?raw.objects:[]); + var colList = Array.isArray(raw) ? [] : (Array.isArray(raw.columns)?raw.columns:[]); + var objSeen: StringSet={}; + (list||[]).forEach(function(entry: any){ + if(typeof entry==='string'){ objects.push({name:entry,kind:'OTHER',synonyms:[]}); return; } + if(!entry||typeof entry!=='object'||!entry.name) return; + var norm=normalizeCatalogueName(entry.name); + if(objSeen[norm]) return; + objSeen[norm]=1; + var syns: string[]=[]; + if(Array.isArray(entry.synonyms)) entry.synonyms.forEach(function(s: any){ syns.push(String(s)); }); + else if(typeof entry.synonyms==='string'&&entry.synonyms) syns.push(entry.synonyms); + objects.push({name:String(entry.name), kind:normalizeCatalogueKind(entry.kind), synonyms:syns}); + }); + (colList||[]).forEach(function(c: any){ + if(c&&c.table&&c.name) columns.push({table:String(c.table), name:String(c.name), + kind:normalizeCatalogueKind(c.kind)}); + }); + } else { + src.split(/\r?\n/).forEach(function(line){ + var l=line.trim(); + if(!l||l.charAt(0)==='#'||l.indexOf('//')===0) return; + var upper=l.toUpperCase(); + if(upper.indexOf('COL ')===0||upper.indexOf('COLUMN ')===0){ + var cparts=l.split(/\s+/).slice(1).join('').split('.'); + var colName=cparts.pop()||''; + columns.push({table:cparts.join('.'), name:colName, kind:'OTHER'}); + return; + } + var toks=l.split(/[\s,]+/).filter(function(t){ return t.length>0; }); + if(!toks.length) return; + var name=toks[0], kind: CatalogueKind='OTHER', syns: string[]=[]; + var ci=1; + if(toks[ci]&&CATALOGUE_KINDS[toks[ci].toUpperCase()]===1){ kind=normalizeCatalogueKind(toks[ci]); ci++; } + for(;ci1?'s':'')+' "'+near.join('", "')+'" not exact); staying external.', + span:r.span, scope:'region'}); + } + }); + },0); + } if(dialect==='plpgsql') addPgTransactionDiagnostics(ast,header,diagnostics,false); diagnostics.forEach(function(d){ if(!d.scope) d.scope='region'; }); var gopts={detail:opts.detail, group:opts.group, dialect:dialect, sources:opts.sources, - fanIn:opts.fanIn, number:opts.number, diagnostics:diagnostics}; + fanIn:opts.fanIn, number:opts.number, diagnostics:diagnostics, + catalogue:opts.catalogue}; var graph=buildGraph(ast, header, gopts); var mode=opts.mode||'auto'; var flat = graph.stats.branch+graph.stats.loop+graph.stats.cat===0; diff --git a/src/lineage.ts b/src/lineage.ts index c7d4453..8eeac65 100644 --- a/src/lineage.ts +++ b/src/lineage.ts @@ -195,8 +195,23 @@ function buildQueryGraph(stmtToks: Token[], header: SqlHeader, opts?: AnalyseOpt function srcNode(name: string): string { var k=name.toUpperCase(); - if(!srcIds[k]){ srcIds[k]=add('io', name, 'src', null, null, - 'external source object'); stats.tables++; } + if(!srcIds[k]){ + var res: {resolution: CatalogueResolution; resolvedName?: string}= + opts.catalogue?resolveCatalogue(opts.catalogue, name):{resolution:'external'}; + var verified=res.resolution==='verified'; + var id='q'+(++seq); + var label=verified&&res.resolvedName?res.resolvedName:name; + /* Verified sources become 'external' nodes with exact identity; conflict + stays conservative with a marker; everything unproven stays a synthetic + leaf exactly as before the catalogue existed. */ + srcIds[k]=id; + nodes.push({id:id, shape:'io', text:label, cls:'src', source:null, + provenance:verified?'external':'synthetic', + resolution:(verified||res.resolution==='conflict')?res.resolution:undefined, + resolvedName:verified&&res.resolvedName?res.resolvedName:undefined, + reason:verified?undefined:'external source object'}); + stats.tables++; + } return srcIds[k]; } function wire(refs: string[], toId: string): void { @@ -291,7 +306,7 @@ function buildObjectQueryGraph(ast: AstNode[], header: SqlHeader, opts?: Analyse statements.forEach(function(toks){ var split=splitCTEs(toks); var finalToks=toks.slice(split.finalStart); - var childOpts: AnalyseOptions={sources:opts.sources}; + var childOpts: AnalyseOptions={sources:opts.sources, catalogue:opts.catalogue}; childOpts.finalLabel=summarise(finalToks,64); var child=buildQueryGraph(toks,{name:''},childOpts); var remap: Record={}; @@ -303,14 +318,16 @@ function buildObjectQueryGraph(ast: AstNode[], header: SqlHeader, opts?: Analyse sourceIds[sourceKey]='oq'+(++seq); nodes.push({id:sourceIds[sourceKey],shape:n.shape,text:n.text,cls:n.cls, source:n.source||null, provenance:n.provenance||'synthetic', - lines:n.lines, reason:n.reason}); + lines:n.lines, reason:n.reason, + resolution:n.resolution, resolvedName:n.resolvedName}); } remap[n.id]=sourceIds[sourceKey]; } else { remap[n.id]='oq'+(++seq); nodes.push({id:remap[n.id],shape:n.shape,text:n.text,cls:n.cls, source:n.source||null, provenance:n.provenance||'synthetic', - lines:n.lines, reason:n.reason}); + lines:n.lines, reason:n.reason, + resolution:n.resolution, resolvedName:n.resolvedName}); } }); child.edges.forEach(function(e){ diff --git a/src/types.d.ts b/src/types.d.ts index e3df53a..f2f7da3 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -282,6 +282,13 @@ interface GraphNode { provenance?: NodeProvenance; reason?: string; sources?: SourceSpan[]; + /* v1.9.0 — catalogue resolution on external/source nodes. `resolution` is + 'verified' when the catalogue proves the object identity, 'conflict' when + catalogue evidence is ambiguous, and 'external' (default) when it is not + present. `resolvedName` is the canonical catalogue name a synonym or + cross-database reference resolves to. */ + resolution?: CatalogueResolution; + resolvedName?: string; /* Structured label lines (v1.7.0): multi-line labels are carried as an explicit array instead of an embedded \u0001 sentinel. When present, `text` is lines.join('\n') and exporters render from `lines`. */ @@ -347,6 +354,14 @@ interface AnalyseOptions { fanIn?: boolean; number?: boolean; finalLabel?: string; + /* v1.9.0 — resolve by catalogue. When a parsed catalogue is present, unmatched + object references that the catalogue proves are 'verified' instead of the + conservative v1.5.0 'external' label; partial or conflicting catalogue + evidence stays conservative and attaches a region-scoped diagnostic. */ + catalogue?: Catalogue; + /* Document-scoped catalogue parse diagnostics surfaced alongside the + analysis (set by the caller after parseCatalogue). */ + catalogueDiagnostics?: Diagnostic[]; } interface DrawioOptions { @@ -499,6 +514,10 @@ interface WorkspaceSnapshot { fanIn: boolean; sources: boolean; }; + /* v1.9.0 — the raw catalogue text (JSON or the simple line format). It is an + analysis input, so it is captured with the snapshot so Restore reproduces + an identical analysis. Null/absent means no catalogue. */ + catalogue?: string | null; activeObjectId: string | null; } @@ -514,6 +533,52 @@ interface WorkspaceFilter { focus?: string; } +/* v1.9.0 — resolve by catalogue (README post-v1.0.0 item 5). + A catalogue carries table/view/column metadata so unmatched object + references can be resolved to their exact identity instead of a conservative + 'external' label. Only full-name and explicit-synonym matches count as + 'verified'; partial (suffix-only) or conflicting evidence stays conservative + and is reported with a region-scoped diagnostic. Column metadata is accepted + and validated now, and used for lineage in a later release. */ +type CatalogueKind = + | 'TABLE' | 'VIEW' | 'PROC' | 'FUNCTION' | 'TRIGGER' | 'SYNONYM' + | 'TYPE' | 'SEQUENCE' | 'OTHER'; + +type CatalogueResolution = 'verified' | 'external' | 'conflict'; + +interface CatalogueObject { + name: string; /* canonical object name (possibly multi-part) */ + kind: CatalogueKind; + synonyms: string[]; /* alternative names that resolve to this object */ +} + +interface CatalogueColumn { + table: string; /* owning object name (matches a CatalogueObject.name) */ + name: string; + kind?: CatalogueKind; +} + +interface Catalogue { + objects: CatalogueObject[]; + columns: CatalogueColumn[]; + /* Normalized lookup indexes, filled by buildCatalogueIndex so resolution is + O(1). byName maps normalized full names to objects; bySynonym maps + normalized synonym names to their owning object. */ + byName: Record; + bySynonym: Record; + /* Normalized names with conflicting catalogue entries (duplicate objects or + a synonym colliding with an object name). */ + conflicts: StringSet; +} + +interface CatalogueParseResult { + catalogue: Catalogue; + diagnostics: Diagnostic[]; + format: 'json' | 'text'; + objectCount: number; + columnCount: number; +} + interface FixtureExpectation { mode?: 'flow' | 'query'; branch?: number; @@ -602,6 +667,12 @@ interface Window { passed: number; total: number; }; + /* v1.9.0 catalogue suite results, published for the golden and metrics pages. */ + PROCFLOW_CATALOGUE_PASS?: boolean; + PROCFLOW_CATALOGUE_RESULT?: { + passed: number; + total: number; + }; /* v1.8.0 opt-in workspace persistence globals (src/workspace.ts), exposed for the browser UI tests. */ clearWorkspace(): void; @@ -612,6 +683,7 @@ interface Window { files: WorkspaceFile[]; options: Record; activeObjectId: string | null; + catalogue?: string | null; }): WorkspaceSnapshot; } diff --git a/src/workspace.ts b/src/workspace.ts index 4019b98..53737b4 100644 --- a/src/workspace.ts +++ b/src/workspace.ts @@ -13,7 +13,10 @@ filtered copy at render time and never mutates the underlying estate graph. Disabling a filter changes the view only — never the analysis result. */ -var WORKSPACE_SCHEMA_VERSION = 1; +/* v1.8.0 schema was version 1. v1.9.0 adds the optional catalogue text (an + analysis input) as a top-level snapshot field, so a saved workspace still + reproduces an identical analysis when a catalogue was in use. */ +var WORKSPACE_SCHEMA_VERSION = 2; var WORKSPACE_STORAGE_KEY = 'procflow.workspace'; /* schema base key; versioned payload */ var DIALECT_SELECT_ORDER = ['auto','tsql','db2','plpgsql','sqlite']; @@ -40,6 +43,7 @@ function buildWorkspaceSnapshot(state: { files: WorkspaceFile[]; options: Record; activeObjectId: string | null; + catalogue?: string | null; }): WorkspaceSnapshot { var opt: WorkspaceSnapshot['options'] = { dialect:String(state.options.dialect==null?'auto':state.options.dialect), @@ -52,15 +56,17 @@ function buildWorkspaceSnapshot(state: { fanIn:!!state.options.fanIn, sources:!!state.options.sources }; - return { + var snap: WorkspaceSnapshot = { version:WORKSPACE_SCHEMA_VERSION, savedAt:new Date().toISOString(), files:(state.files||[]).map(function(f){ return {name:String(f.name||''), text:String(f.text==null?'':f.text)}; }), options:opt, + catalogue:state.catalogue==null?null:String(state.catalogue), activeObjectId:state.activeObjectId||null }; + return snap; } function serializeWorkspace(snapshot: WorkspaceSnapshot): string { @@ -93,6 +99,7 @@ function migrateWorkspace(raw: any): WorkspaceSnapshot { fanIn:src.fanIn===undefined?d.fanIn:!!src.fanIn, sources:src.sources===undefined?d.sources:!!src.sources }; + migrated.catalogue=raw&&raw.catalogue!=null?String(raw.catalogue):null; migrated.activeObjectId=raw&&raw.activeObjectId?String(raw.activeObjectId):null; return migrated; } diff --git a/styles.css b/styles.css index 5536d4d..c759b74 100644 --- a/styles.css +++ b/styles.css @@ -204,6 +204,16 @@ input[type=checkbox]{accent-color:var(--marigold);width:14px;height:14px} color:var(--ink-soft,#9fb2bf);font-size:10.5px;line-height:1.45 } .ws-note.has{border-left:2px solid var(--marigold)} +/* v1.9.0 — catalogue import panel */ +.catalogue-panel{min-width:300px} +.catalogue-panel .opt{white-space:normal;display:block} +#catalogue-text{ + width:100%;margin-top:4px;padding:6px 7px;border:1px solid var(--rule); + border-radius:3px;background:#11222d;color:var(--ink);font-family:var(--mono); + font-size:11px;resize:vertical;line-height:1.4 +} +.catalogue-actions{display:grid;gap:3px;margin:6px 0} +.catalogue-actions .primary-action{background:#20333f} .export-actions{display:grid;gap:3px} .menu-action{ width:100%;padding:8px 9px;border:0;border-radius:3px;background:transparent; diff --git a/tests/catalogue.ts b/tests/catalogue.ts new file mode 100644 index 0000000..e20ea91 --- /dev/null +++ b/tests/catalogue.ts @@ -0,0 +1,304 @@ +/* proc>flow v1.9.0 — resolve by catalogue (README post-v1.0.0 item 5). + Fixtures for catalogue metadata import (JSON + simple line format), exact + synonym / linked-server / cross-database resolution replacing the v1.5.0 + external label where the catalogue proves the match, and E diagnostics for + partial or conflicting catalogue data. + + Passing a catalogue never changes an analysis that did not pass one: every + fixture here asserts the catalogue-verified behaviour with a catalogue + present, plus one regression guard that the absent-catalogue output is the + unchanged conservative path. + + After this suite runs, PROCFLOW_CATALOGUE_PASS and PROCFLOW_CATALOGUE_RESULT + gate the golden suite (tests/tests.ts) and feed the fixture-corpus metrics. */ +(function(){ + var results: Array<{name: string; pass: boolean; detail: unknown}>=[]; + function record(name: string, pass: boolean, detail?: unknown): void { + results.push({name:name,pass:pass,detail:pass?'':detail}); + } + function has(list: string[], value: string): boolean { + return (list||[]).some(function(v){ return v.toUpperCase()===value.toUpperCase(); }); + } + + var CATALOGUE_TXT=[ + '# demo catalogue', + 'salesdb.dbo.orders TABLE', + 'linksrv.warehouse.dbo.orders TABLE', + 'remotesrv.salesdb.dbo.pull_orders PROC', + 'dbo.student TABLE student', + 'COL salesdb.dbo.orders.OrderId' + ].join('\n'); + + /* ---- parsing: JSON and the simple line format ---- */ + try{ + var jp=parseCatalogue(JSON.stringify({objects:[ + {name:'dbo.student',kind:'TABLE',synonyms:['student']}, + {name:'salesdb.dbo.orders',kind:'TABLE'} + ],columns:[{table:'dbo.student',name:'StudentId'}]})); + record('v1.9.0 JSON catalogue parses objects, columns, synonyms, and kind', + jp.format==='json'&&!jp.diagnostics.some(function(d){return d.severity==='error';})&& + jp.objectCount===2&&jp.columnCount===1&& + jp.catalogue.byName['DBO.STUDENT']!=null&& + resolveCatalogue(jp.catalogue,'student').resolution==='verified'&& + resolveCatalogue(jp.catalogue,'student').resolvedName==='dbo.student'&& + resolveCatalogue(jp.catalogue,'salesdb.dbo.orders').resolution==='verified'&& + resolveCatalogue(jp.catalogue,'dbo.nope').resolution==='external', + {format:jp.format,diagnostics:jp.diagnostics,resolved: + resolveCatalogue(jp.catalogue,'student')}); + }catch(err){ + record('v1.9.0 JSON catalogue parses objects, columns, synonyms, and kind', + false,String(err&&err.stack||err)); + } + + try{ + var tp=parseCatalogue(CATALOGUE_TXT); + record('v1.9.0 line catalogue parses objects, kinds, synonyms, and columns', + tp.format==='text'&&tp.objectCount===4&&tp.columnCount===1&& + !tp.diagnostics.some(function(d){return d.severity==='error';})&& + tp.catalogue.byName['SALESDB.DBO.ORDERS']!=null&& + tp.catalogue.byName['REMOTESRV.SALESDB.DBO.PULL_ORDERS']!=null&& + tp.catalogue.bySynonym['STUDENT']!=null&& + resolveCatalogue(tp.catalogue,'STUDENT').resolvedName==='dbo.student'&& + resolveCatalogue(tp.catalogue,'remotesrv.salesdb.dbo.pull_orders') + .resolution==='verified', + {format:tp.format,objects:tp.objectCount,columns:tp.columnCount, + diagnostics:tp.diagnostics}); + }catch(err){ + record('v1.9.0 line catalogue parses objects, kinds, synonyms, and columns', + false,String(err&&err.stack||err)); + } + + try{ + var badJson=parseCatalogue('{oops'); + record('v1.9.0 malformed catalogue JSON reports catalogue_parse_error', + badJson.format==='json'&&badJson.objectCount===0&& + badJson.diagnostics.some(function(d){ + return d.code==='catalogue_parse_error'&&d.scope==='document'&&d.span===null; + }), + badJson.diagnostics); + }catch(err){ + record('v1.9.0 malformed catalogue JSON reports catalogue_parse_error', + false,String(err&&err.stack||err)); + } + + try{ + var emptyC=parseCatalogue(' \n\n '); + record('v1.9.0 empty catalogue input reports catalogue_empty', + emptyC.objectCount===0&&emptyC.diagnostics.some(function(d){ + return d.code==='catalogue_empty';}), + emptyC.diagnostics); + }catch(err){ + record('v1.9.0 empty catalogue input reports catalogue_empty', + false,String(err&&err.stack||err)); + } + + /* ---- conflicting catalogue data is conservative ---- */ + try{ + var dup=parseCatalogue('dbo.orders TABLE\ndbo.orders VIEW'); + var dupResolve=resolveCatalogue(dup.catalogue,'dbo.orders'); + var dupRegion=false; + var dupAnalysis=analyse('SELECT id FROM dbo.orders;', + {dialect:'tsql',mode:'query',sources:true, + catalogue:dup.catalogue,catalogueDiagnostics:dup.diagnostics}); + dupRegion=dupAnalysis.diagnostics.some(function(d){ + return d.code==='catalogue_conflict'&&d.scope==='region'&& + !!d.span&&d.span.end>d.span.start; + }); + record('v1.9.0 duplicate catalogue entries are conservative with a conflict diagnostic', + dup.diagnostics.some(function(d){return d.code==='catalogue_conflict';})&& + dupResolve.resolution==='conflict'&&dupRegion&& + dupAnalysis.graph.nodes.some(function(n){ + return n.text.indexOf('dbo.orders')>=0&&n.resolution==='conflict'; + }), + {parse:dup.diagnostics,resolve:dupResolve, + diags:dupAnalysis.diagnostics.map(function(d){return d.code;})}); + }catch(err){ + record('v1.9.0 duplicate catalogue entries are conservative with a conflict diagnostic', + false,String(err&&err.stack||err)); + } + + try{ + var coll=parseCatalogue('dbo.a TABLE alias\nalias TABLE'); + record('v1.9.0 a synonym colliding with an object name is a conflict', + coll.diagnostics.some(function(d){return d.code==='catalogue_conflict';})&& + resolveCatalogue(coll.catalogue,'alias').resolution==='conflict', + {diagnostics:coll.diagnostics}); + }catch(err){ + record('v1.9.0 a synonym colliding with an object name is a conflict', + false,String(err&&err.stack||err)); + } + + /* ---- estate (object-dependency) resolution ---- */ + try{ + var pc=parseCatalogue(CATALOGUE_TXT); + var estSql=[ + 'CREATE PROC dbo.nightly AS', + 'BEGIN', + ' EXEC remotesrv.salesdb.dbo.pull_orders;', + ' SELECT id INTO #t FROM salesdb.dbo.orders;', + ' SELECT id FROM dbo.student;', + ' SELECT id FROM readme.dbo.ghost;', + 'END' + ].join('\n'); + var est=analyseEstate([{name:'est.sql',text:estSql}], + {dialect:'tsql',mode:'auto',group:false,sources:true, + catalogue:pc.catalogue,catalogueDiagnostics:pc.diagnostics}); + var verified=est.graph.nodes.filter(function(n){return n.resolution==='verified';}); + var verifiedTexts=verified.map(function(n){return n.text;}); + var unverified=est.graph.nodes.filter(function(n){ + return n.text.indexOf('external: ')===0;}); + record('v1.9.0 estate external nodes verified by the catalogue', + has(verifiedTexts,'remotesrv.salesdb.dbo.pull_orders')&& + has(verifiedTexts,'salesdb.dbo.orders')&& + has(verifiedTexts,'dbo.student')&& + verified.every(function(n){ + return n.provenance==='external'&& + n.resolvedName===n.text&&typeof n.objectId==='string'; + })&& + est.graph.nodes.some(function(n){ + return n.text.indexOf('readme.dbo.ghost')>=0&&n.resolution===undefined; + }), + {verified:verified.map(function(n){ + return {text:n.text,prov:n.provenance,res:n.resolution,obj:n.objectId};}), + external:unverified.map(function(n){return n.text;})}); + }catch(err){ + record('v1.9.0 estate external nodes verified by the catalogue', + false,String(err&&err.stack||err)); + } + + /* ---- query-structure source resolution ---- */ + try{ + var qc=parseCatalogue('linksrv.warehouse.dbo.orders TABLE'); + var qr=analyse('SELECT ord.id FROM linksrv.warehouse.dbo.orders ord WHERE ord.id > 0;', + {dialect:'tsql',mode:'query',sources:true, + catalogue:qc.catalogue,catalogueDiagnostics:qc.diagnostics}); + var qNode=qr.graph.nodes.find(function(n){return n.cls==='src';}); + record('v1.9.0 query sources verified by the catalogue', + !!qNode&&qNode.text==='linksrv.warehouse.dbo.orders'&& + qNode.resolution==='verified'&&qNode.provenance==='external'&& + qNode.resolvedName==='linksrv.warehouse.dbo.orders', + qNode); + }catch(err){ + record('v1.9.0 query sources verified by the catalogue', + false,String(err&&err.stack||err)); + } + + try{ + /* Cross-database: the reference carries a server prefix over a catalogue + object sharing the trailing identity. That is not proof — the node stays + external and a region-scoped catalogue_partial diagnostic is attached. */ + var partialC=parseCatalogue('salesdb.dbo.orders TABLE'); + var partialR=analyse('SELECT id FROM remotesrv.salesdb.dbo.orders;', + {dialect:'tsql',mode:'query',sources:true, + catalogue:partialC.catalogue,catalogueDiagnostics:partialC.diagnostics}); + var partialNode=partialR.graph.nodes.find(function(n){return n.cls==='src';}); + var partialDiag=partialR.diagnostics.filter(function(d){ + return d.code==='catalogue_partial';})[0]; + record('v1.9.0 unproven cross-database matches stay external and region-scoped', + !!partialNode&&partialNode.text==='remotesrv.salesdb.dbo.orders'&& + partialNode.resolution===undefined&& + partialNode.provenance==='synthetic'&& + !!partialDiag&&partialDiag.scope==='region'&& + !!partialDiag.span&&partialDiag.span.end>partialDiag.span.start&& + partialDiag.message.indexOf('salesdb.dbo.orders')>=0, + {node:partialNode,diag:partialDiag}); + }catch(err){ + record('v1.9.0 unproven cross-database matches stay external and region-scoped', + false,String(err&&err.stack||err)); + } + + try{ + var nonC=analyse('SELECT id FROM linksrv.warehouse.dbo.orders;', + {dialect:'tsql',mode:'query',sources:true}); + var nonNode=nonC.graph.nodes.find(function(n){return n.cls==='src';}); + record('v1.9.0 absent catalogue leaves the conservative path unchanged', + !!nonNode&&nonNode.text==='linksrv.warehouse.dbo.orders'&& + nonNode.resolution===undefined&&nonNode.provenance==='synthetic'&& + nonNode.reason==='external source object'&& + !nonC.diagnostics.some(function(d){ + return d.code.indexOf('catalogue_')===0; + }), + nonNode); + }catch(err){ + record('v1.9.0 absent catalogue leaves the conservative path unchanged', + false,String(err&&err.stack||err)); + } + + /* ---- synonym resolution through the estate ---- */ + try{ + var synC=parseCatalogue('dbo.student TABLE student'); + var synSql='CREATE PROC dbo.by_syn AS BEGIN SELECT id FROM student; END'; + var synEst=analyseEstate([{name:'syn.sql',text:synSql}], + {dialect:'tsql',mode:'auto',catalogue:synC.catalogue, + catalogueDiagnostics:synC.diagnostics}); + var synLeaf=synEst.graph.nodes.filter(function(n){ + return n.objectId==='student'||n.text.toUpperCase().indexOf('STUDENT')>=0; + }); + record('v1.9.0 an unqualified synonym resolves to its canonical object', + synEst.graph.nodes.some(function(n){ + return n.text==='dbo.student'&&n.resolution==='verified'&& + n.resolvedName==='dbo.student'&&n.objectId==='student'; + })&&synLeaf.every(function(n){ return n.resolution==='verified'; }), + synEst.graph.nodes.map(function(n){ + return {text:n.text,res:n.resolution,obj:n.objectId};})); + }catch(err){ + record('v1.9.0 an unqualified synonym resolves to its canonical object', + false,String(err&&err.stack||err)); + } + + /* ---- export metadata survives the draw.io round-trip ---- */ + try{ + var ec=parseCatalogue('salesdb.dbo.orders TABLE'); + var eRef=analyse('SELECT id FROM salesdb.dbo.orders;', + {dialect:'tsql',mode:'query',sources:true, + catalogue:ec.catalogue,catalogueDiagnostics:ec.diagnostics}); + var eXml=toDrawio(eRef.graph,{title:'catalogue',dir:'TD'}); + var eDoc=new DOMParser().parseFromString(eXml,'application/xml'); + var eVerified=eRef.graph.nodes.filter(function(n){return n.resolution==='verified';}); + record('v1.9.0 catalogue resolution and provenance survive draw.io export', + !eDoc.querySelector('parsererror')&& + eVerified.length>0&& + eXml.indexOf('resolution=verified')>=0&& + eXml.indexOf('provenance=external')>=0, + {parsererror:eDoc.querySelector('parsererror')&& + eDoc.querySelector('parsererror').textContent, + verified:eVerified.map(function(n){ + return {res:n.resolution,text:n.text};})}); + }catch(err){ + record('v1.9.0 catalogue resolution and provenance survive draw.io export', + false,String(err&&err.stack||err)); + } + + /* ---- workspace persistence carries the catalogue text ---- */ + try{ + var wsSnap=buildWorkspaceSnapshot({ + files:[{name:'est.sql',text:'CREATE PROC dbo.one AS BEGIN SELECT 1; END'}], + options:{dialect:'tsql',scope:'dependencies'}, activeObjectId:null, + catalogue:CATALOGUE_TXT}); + var wsParsed=parseWorkspace(serializeWorkspace(wsSnap)); + var wsCatalogueRoundTrip=!wsParsed.error&&wsParsed.snapshot!==null&& + wsParsed.snapshot.catalogue===CATALOGUE_TXT&& + wsParsed.snapshot.version===WORKSPACE_SCHEMA_VERSION && + !wsParsed.migrated; + /* A v1 schema snapshot (no catalogue) migrates forward with a null/absent + catalogue rather than corrupting the analysis. */ + var wsLegacy=parseWorkspace(JSON.stringify({version:1, + savedAt:'2026-01-01T00:00:00.000Z', + files:[{name:'old.sql',text:'SELECT 1;'}], + options:{dialect:'tsql',scope:'internal'}})); + var wsLegacyOk=!!wsLegacy.snapshot&&wsLegacy.snapshot.version=== + WORKSPACE_SCHEMA_VERSION&&wsLegacy.snapshot.catalogue===null; + record('v1.9.0 workspace snapshot round-trips the catalogue text', + wsCatalogueRoundTrip&&wsLegacyOk, + {roundTrip:wsCatalogueRoundTrip,legacy:wsLegacyOk, + restored:wsParsed.snapshot&&wsParsed.snapshot.catalogue, + legacyCat:wsLegacy.snapshot&&wsLegacy.snapshot.catalogue}); + }catch(err){ + record('v1.9.0 workspace snapshot round-trips the catalogue text', + false,String(err&&err.stack||err)); + } + + var passed=results.filter(function(r){return r.pass;}).length; + window.PROCFLOW_CATALOGUE_RESULT={passed:passed,total:results.length}; + window.PROCFLOW_CATALOGUE_PASS=passed===results.length; +})(); diff --git a/tests/fuzz.html b/tests/fuzz.html index 187c3b1..f6ced0c 100644 --- a/tests/fuzz.html +++ b/tests/fuzz.html @@ -13,8 +13,9 @@

proc>flow mutation and fuzz tests

Running…


-
-
+  
+  
+  
 
 
 
diff --git a/tests/index.html b/tests/index.html
index 8de799f..23e8cbe 100644
--- a/tests/index.html
+++ b/tests/index.html
@@ -15,8 +15,9 @@ 

proc>flow golden tests

v1.7.0 exports starting…


 

-
-
+  
+  
+  
 
 
 
@@ -30,6 +31,7 @@ 

proc>flow golden tests

+ diff --git a/tests/metrics.html b/tests/metrics.html index 5886fe0..7c796e8 100644 --- a/tests/metrics.html +++ b/tests/metrics.html @@ -10,13 +10,14 @@ -

proc>flow fixture-corpus metrics (v1.8.0)

+

proc>flow fixture-corpus metrics (v1.9.0)

Running…

Deterministic, fixture-only aggregates of the "Metrics that matter". No user inputs or runtime telemetry are collected.


-
-
+  
+  
+  
 
 
 
@@ -30,6 +31,7 @@ 

proc>flow fixture-corpus metrics (v1.8.0)

+ diff --git a/tests/metrics.ts b/tests/metrics.ts index 367c674..4e3944e 100644 --- a/tests/metrics.ts +++ b/tests/metrics.ts @@ -1,11 +1,12 @@ -/* v1.8.0 — fixture-corpus metric publishing. +/* v1.9.0 — fixture-corpus metric publishing. Aggregates the "Metrics that matter" over the checked-in golden corpus, including the v1.7.0 export-parity, export-traceability, and layout-budget - pass rates reported by tests/parity.ts, plus the v1.8.0 workspace - persistence/dependency-filtering pass rate from tests/workspace.ts. + pass rates reported by tests/parity.ts, the v1.8.0 workspace + persistence/dependency-filtering pass rate from tests/workspace.ts, and the + v1.9.0 catalogue pass rate from tests/catalogue.ts. Purely deterministic and fixture-only: no user inputs and no runtime telemetry are ever collected. scripts/metrics.mjs drives this page to - produce or verify docs/metrics-v1.8.0.json. */ + produce or verify docs/metrics-v1.9.0.json. */ (function(){ var corpus=PROCFLOW_FIXTURES||[]; @@ -76,11 +77,13 @@ `npm run metrics:write`; CI then refuses to merge a stale snapshot. */ golden:corpus.length, fuzz:400, - ui:20, + ui:22, parity:window.PROCFLOW_PARITY_RESULT?window.PROCFLOW_PARITY_RESULT.total/2:0, layout:window.PROCFLOW_LAYOUT_RESULT?window.PROCFLOW_LAYOUT_RESULT.total:0, workspace:window.PROCFLOW_WORKSPACE_RESULT - ?window.PROCFLOW_WORKSPACE_RESULT.total:0 + ?window.PROCFLOW_WORKSPACE_RESULT.total:0, + catalogue:window.PROCFLOW_CATALOGUE_RESULT + ?window.PROCFLOW_CATALOGUE_RESULT.total:0 }, attributionRate:rate(attributedAll,totalTokens), unresolvedTokenRate:rate(unresolvedTokens,totalTokens), @@ -110,6 +113,13 @@ workspacePassRate:window.PROCFLOW_WORKSPACE_RESULT ? rate(window.PROCFLOW_WORKSPACE_RESULT.passed,window.PROCFLOW_WORKSPACE_RESULT.total) : 0, + /* v1.9.0 resolve by catalogue: import parsing (JSON and line formats), + exact synonym/linked-server/cross-database verification, conservative + conflict handling, region-scoped partial diagnostics, export metadata, + and workspace round-trip all pass on the checked-in fixture corpus. */ + cataloguePassRate:window.PROCFLOW_CATALOGUE_RESULT + ? rate(window.PROCFLOW_CATALOGUE_RESULT.passed,window.PROCFLOW_CATALOGUE_RESULT.total) + : 0, aggregate:{ totalTokens:totalTokens, accountedTokens:attributedAll, diff --git a/tests/tests.ts b/tests/tests.ts index bb86008..b2f4b54 100644 --- a/tests/tests.ts +++ b/tests/tests.ts @@ -901,6 +901,21 @@ false,String(err&&err.stack||err)); } + /* v1.9.0: resolve by catalogue — import parsing, exact synonym / linked-server + / cross-database verification, conservative conflict handling, region-scoped + partial diagnostics, export metadata, and the workspace round-trip run ahead + in tests/catalogue.ts; gate the whole golden page on them. */ + try{ + record('v1.9.0 catalogue import, resolution, diagnostics, and export fixtures', + window.PROCFLOW_CATALOGUE_PASS===true&& + !!window.PROCFLOW_CATALOGUE_RESULT&& + window.PROCFLOW_CATALOGUE_RESULT.passed===window.PROCFLOW_CATALOGUE_RESULT.total, + window.PROCFLOW_CATALOGUE_RESULT); + }catch(err){ + record('v1.9.0 catalogue import, resolution, diagnostics, and export fixtures', + false,String(err&&err.stack||err)); + } + var passed=results.filter(function(r){return r.pass;}).length; document.body.className=passed===results.length?'pass':'fail'; document.getElementById('summary').textContent=passed+'/'+results.length+' tests passed'; diff --git a/tests/ui-tests.ts b/tests/ui-tests.ts index 2929f83..8ba167b 100644 --- a/tests/ui-tests.ts +++ b/tests/ui-tests.ts @@ -204,6 +204,36 @@ pass:w.hasSavedWorkspace()===false&& /No workspace is saved/i.test(get('ws-status').textContent||''), detail:{saved:w.hasSavedWorkspace(),status:get('ws-status').textContent}}); + + /* v1.9.0 resolve by catalogue — paste catalogue metadata, Apply, and + verify the dependency view shows the verified object (no external + label) while an unproven three-part name stays external. */ + get('opt-scope').value='internal'; + get('opt-dialect').value='tsql'; + get('sql').value=[ + 'CREATE PROC dbo.cat_ui AS', + 'BEGIN', + ' SELECT id FROM salesdb.dbo.orders;', + ' SELECT id FROM readme.dbo.ghost;', + 'END' + ].join('\n'); + get('sql').dispatchEvent(new Event('input')); + get('catalogue-text').value='salesdb.dbo.orders TABLE'; + get('btn-catalogue-apply').click(); + get('opt-scope').value='dependencies'; + get('opt-scope').dispatchEvent(new Event('change')); + var catalogued= get('mermaid-out').textContent; + results.push({name:'catalogue verification in the dependency view', + pass:catalogued.indexOf('salesdb.dbo.orders')>=0&& + catalogued.indexOf('external: salesdb.dbo.orders')<0&& + catalogued.indexOf('external: readme.dbo.ghost')>=0&& + /Loaded: 1 object/i.test(get('catalogue-status').textContent||''), + detail:{code:catalogued.slice(0,160), + status:get('catalogue-status').textContent}}); + get('btn-catalogue-clear').click(); + results.push({name:'clearing the catalogue resets its status', + pass:/No catalogue loaded/i.test(get('catalogue-status').textContent||''), + detail:{status:get('catalogue-status').textContent}}); finish(results); },1200); });