From 39511a15ecb564e220fe805309635b77aa8890cb Mon Sep 17 00:00:00 2001
From: Iwan Kelaiah
Date: Mon, 10 Aug 2026 08:53:36 +1000
Subject: [PATCH] feat(v1.11.0): column lineage pipelines
(temp/transform/view/catalogue column flow)
Cross-statement column flow through temp tables, INSERT/UPDATE/CREATE TABLE
transformations, same-script views, CTEs, and catalogue-resolved object
boundaries. src/columnflow.ts walks statements in order, tracks column-level
reaching definitions (branch/loop merges stay ambiguous), flattens each
produced column to its ultimate source, resolves view/catalogue boundaries,
and exports a column graph on a documented layout class (colstep/colobj
canonical styles + provenance). E column-resolution signals feed construct
coverage; ambiguous reaching definitions stay opaque with region-scoped
column_flow_opaque diagnostics; T-SQL 'col = expr' alias targets no longer
misbind. tests/column-flow.ts (15 fixtures + 2 layout budgets + export
parity), wired into golden gate, metrics corpus (columnFlow 15 / columnLayout
2), demo, docs; metrics-v1.11.0.json snapshot; dist rebuilt in sync.
---
README.md | 107 ++-
ROADMAP.md | 2 +
dist/src/columnflow.js | 831 ++++++++++++++++++
dist/src/columnflow.js.map | 1 +
dist/src/columns.js | 78 +-
dist/src/columns.js.map | 2 +-
dist/src/exporters.js | 8 +-
dist/src/exporters.js.map | 2 +-
dist/src/ir.js | 61 +-
dist/src/ir.js.map | 2 +-
dist/tests/column-flow.js | 469 ++++++++++
dist/tests/column-flow.js.map | 1 +
dist/tests/metrics.js | 16 +-
dist/tests/metrics.js.map | 2 +-
dist/tests/parity.js | 5 +
dist/tests/parity.js.map | 2 +-
dist/tests/tests.js | 15 +
dist/tests/tests.js.map | 2 +-
docs/PR_NOTE_1.11.0.md | 119 +++
docs/RELEASE_NOTE_v1.11.0.md | 99 +++
...rics-v1.10.0.json => metrics-v1.11.0.json} | 6 +-
examples/dbo.v1110_demo.sql | 115 +++
index.html | 1 +
package.json | 2 +-
scripts/metrics.mjs | 2 +-
src/columnflow.ts | 728 +++++++++++++++
src/columns.ts | 60 +-
src/exporters.ts | 8 +-
src/ir.ts | 57 +-
src/types.d.ts | 108 +++
tests/column-flow.ts | 494 +++++++++++
tests/fuzz.html | 1 +
tests/index.html | 4 +
tests/metrics.html | 4 +-
tests/metrics.ts | 17 +-
tests/parity.ts | 5 +
tests/tests.ts | 18 +
37 files changed, 3361 insertions(+), 93 deletions(-)
create mode 100644 dist/src/columnflow.js
create mode 100644 dist/src/columnflow.js.map
create mode 100644 dist/tests/column-flow.js
create mode 100644 dist/tests/column-flow.js.map
create mode 100644 docs/PR_NOTE_1.11.0.md
create mode 100644 docs/RELEASE_NOTE_v1.11.0.md
rename docs/{metrics-v1.10.0.json => metrics-v1.11.0.json} (86%)
create mode 100644 examples/dbo.v1110_demo.sql
create mode 100644 src/columnflow.ts
create mode 100644 tests/column-flow.ts
diff --git a/README.md b/README.md
index 9e148dc..8e66667 100644
--- a/README.md
+++ b/README.md
@@ -53,7 +53,8 @@ For the first stable 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). For the v1.9.0 release, see
[RELEASE_NOTE_v1.9.0.md](docs/RELEASE_NOTE_v1.9.0.md). For the v1.10.0 release, see
-[RELEASE_NOTE_v1.10.0.md](docs/RELEASE_NOTE_v1.10.0.md).
+[RELEASE_NOTE_v1.10.0.md](docs/RELEASE_NOTE_v1.10.0.md). For the v1.11.0 release, see
+[RELEASE_NOTE_v1.11.0.md](docs/RELEASE_NOTE_v1.11.0.md).
## Start here
@@ -69,7 +70,7 @@ For the first stable release, see
## 60-second quick start
-1. Download the `v1.10.0` archive from
+1. Download the `v1.11.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
@@ -136,7 +137,7 @@ statements.
analysis to another engineer.
ProcFlow imports SQL text, not report-definition files. SSRS/RDL import is on
-the roadmap; for v1.10.0, paste or export the dataset SQL itself.
+the roadmap; for v1.11.0, paste or export the dataset SQL itself.
## What ProcFlow can show
@@ -199,14 +200,16 @@ The analysis panel provides four release-safety signals:
- **Diagnostics** reports uncertain dialects, balance errors, missing block
terminators, unconsumed input, invalid actions, opaque dynamic SQL, opaque
table expressions, heuristic `APPLY` targets, ambiguous and opaque column
- references (v1.10.0), and catalogue problems
+ references (v1.10.0), opaque column-flow reaching definitions across
+ statements (v1.11.0), 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.
- **Constructs** reports how many branches, loops, handlers, CTEs, source
- references, and temp-flow links were detected, resolved, or left opaque.
+ references, temp-flow links, and column-flow objects and edges were detected,
+ resolved, or left opaque.
Use this rule of thumb:
@@ -222,7 +225,7 @@ than silently disappearing from the diagram.
## Supported SQL
-ProcFlow v1.10.0 recognises:
+ProcFlow v1.11.0 recognises:
- Microsoft T-SQL
- IBM DB2 SQL PL
@@ -233,7 +236,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.10.0 coverage includes:
+Dialect-specific v1.11.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
@@ -245,7 +248,10 @@ Dialect-specific v1.10.0 coverage includes:
savepoints (including savepoint-only recovery declared in `TRY` and rolled
back in `CATCH`), `SET XACT_ABORT` (annotated when set inside a `CATCH`),
invalid transaction-action termination, and temporary-table
- producer→consumer data-flow edges with conservative branch merges.
+ producer→consumer data-flow edges with conservative branch merges, and column
+ flow across statements through temp tables (`SELECT … INTO`, `INSERT …
+ SELECT`, `CREATE TABLE`, `UPDATE … SET`), views, CTEs, and catalogue-resolved
+ boundaries (v1.11.0).
- **DB2 SQL PL:** mixed `THEN` and `BEGIN`/`END` `IF` forms, `BEGIN ATOMIC`
rollback scope, labelled loop control and `LEAVE`/`ITERATE` target validation,
`FOR … CURSOR FOR` queries in the query graph, scoped handlers, and
@@ -266,9 +272,19 @@ projections, CTE and derived-table scopes, and catalogue-backed wildcard
expansion produce exact input→output column bindings with source spans. An
unqualified reference that matches several sources is reported as ambiguous and
never invents a binding, and unsupported expressions (for example a scalar
-subquery) become opaque with a region-scoped diagnostic. Multi-statement
-temporary-table column flow and inter-object column flow remain on the roadmap
-(v1.11.0).
+subquery) become opaque with a region-scoped diagnostic.
+
+Since v1.11.0, column lineage flows across statements as a pipeline (README
+roadmap item 6 delivered): `SELECT col INTO #t`, `INSERT … SELECT`, `CREATE
+TABLE`, and `UPDATE … SET` transformations define an object's columns, later
+consumers bind back through them, and each produced column is traced end-to-end
+to its original source object — through temp tables, views defined earlier in
+the same script, catalogue-resolved object boundaries, and CTE scopes. When a
+reaching definition is ambiguous (a conditional write or a branch merge) the
+consumer stays explicitly opaque with a region-scoped `column_flow_opaque`
+diagnostic, and no binding is invented. The column-flow graph exports to Mermaid
+and draw.io with provenance metadata and is laid out on its own documented
+`column` graph class. Interactive column views remain scheduled for v1.13.0.
Detection is automatic and can be overridden from the **Dialect** selector.
When detection is uncertain and several dialects score equally, an explicit
@@ -368,7 +384,7 @@ endorsed by draw.io.
### Quick answers
-| Question | ProcFlow v1.10.0 behavior |
+| Question | ProcFlow v1.11.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. |
@@ -379,7 +395,7 @@ endorsed by draw.io.
| Is SQL retained after closing the tab? | No by default. ProcFlow does not use cookies, `sessionStorage`, or IndexedDB, and does not write to `localStorage` on load. A workspace is kept across sessions only when you explicitly choose **Save to this browser** in the Workspace menu. |
| Is a saved workspace stored on this computer? | Only if you choose **Save to this browser**. It is written to this browser's `localStorage`, is local-only, versioned, exportable to a JSON file, and removed by **Forget saved workspace** or by clearing browser site data. |
| Does ProcFlow write to the clipboard automatically? | No. Clipboard writes follow an explicit copy action. |
-| Are exports local? | Yes. SVG and draw.io files are generated in memory and downloaded by the browser. |
+| Are exports local? | Yes. SVG and draw.io files are generated in memory and downloaded by the browser. (Column-flow graphs export with full provenance metadata; interactive column views arrive with v1.13.0.) |
| Does it call an AI service? | No. It can copy a narration prompt but never submits it. |
### Runtime files
@@ -413,7 +429,7 @@ import/export uses the browser download API, which also requires an explicit
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.10.0 is:
+The SHA-256 of `vendor/mermaid/mermaid.min.js` in v1.11.0 is:
```text
61B335A46DF05A7CE1C98378F60E5F3E77A7FB608A1056997E8A649304A936D6
@@ -424,7 +440,7 @@ so the release checksum remains reproducible across operating systems.
### Guidance for security review
-1. Review and pin the `v1.10.0` tag or its exact commit.
+1. Review and pin the `v1.11.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
@@ -458,9 +474,12 @@ and contains no automatic data-submission path.
authoritative and omitted semicolons are split by control keywords and
statement grammar. Exceptionally malformed batches can still produce imperfect
splits.
-- Query lineage is object-level; since v1.10.0 a single query statement also
- reports column-level scopes and bindings, while multi-statement
- temporary-table and inter-object column flow remain on the roadmap (v1.11.0).
+- Query lineage is object-level; a single query statement also reports
+ column-level scopes and bindings (v1.10.0), and since v1.11.0 column flow
+ crosses statements through temp tables, transformations, views, CTEs, and
+ catalogue-resolved object boundaries. Column resolution remains conservative:
+ an ambiguous reaching definition stays opaque and is never resolved by
+ invention.
- Some vendor-specific table expressions might not be detected.
- Temporary-table data flow is shown within one object; cross-object temp flow
remains unresolved.
@@ -471,8 +490,9 @@ and contains no automatic data-submission path.
candidate exists) until the catalogue proves them.
- Columns are parsed and validated by the catalogue import and, since v1.10.0,
drive wildcard expansion and column bindings inside a single statement.
- Column flow across statements, objects, and CTE/view boundaries is scheduled
- for v1.11.0.
+ Since v1.11.0, column flow also crosses statements through temp tables,
+ transformations, views, CTEs, and catalogue-resolved object boundaries;
+ interactive column views in the app are scheduled for v1.13.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
@@ -541,9 +561,9 @@ Then open:
- `http://127.0.0.1:8000/tests/ui.html` — browser interaction and local-runtime
tests
-The v1.10.0 baseline is:
+The v1.11.0 baseline is:
-- 209 golden and boundary assertions
+- 210 golden and boundary assertions
- 400 deterministic mutation cases
- 22 browser interaction tests
- 20 export-parity checks (10 fixtures × TD + LR), 11 layout-budget fixtures,
@@ -554,16 +574,21 @@ The v1.10.0 baseline is:
- 13 catalogue fixtures (JSON and line import, synonym / linked-server /
cross-database verification, conservative conflict and partial diagnostics,
export metadata, workspace round-trip)
-- 18 column-lineage fixtures (qualified references, aliases, projections,
- CTE and derived-table scopes, catalogue-backed wildcard expansion, ambiguous
- and opaque column references with exact spans)
+- 18 single-statement column-lineage fixtures (qualified references, aliases,
+ projections, CTE and derived-table scopes, catalogue-backed wildcard
+ expansion, ambiguous and opaque column references with exact spans)
+- 15 column-flow pipeline fixtures (end-to-end `SELECT … INTO #t` traces
+ through transformations to outputs, opaque ambiguous reaching definitions,
+ same-script view and catalogue-boundary resolution, clean invariants, and
+ export parity) plus 2 column layout-budget fixtures on the documented
+ `column` graph class
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,
-workspace, catalogue, and column pass-rate ratios) are published from the
-checked-in golden corpus in
-[docs/metrics-v1.10.0.json](docs/metrics-v1.10.0.json). Generation
+workspace, catalogue, column, and column-flow pass-rate ratios) are published
+from the checked-in golden corpus in
+[docs/metrics-v1.11.0.json](docs/metrics-v1.11.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`.
@@ -616,7 +641,8 @@ docs/
├── RELEASE_NOTE_v1.8.0.md
├── RELEASE_NOTE_v1.9.0.md
├── RELEASE_NOTE_v1.10.0.md
-└── metrics-v1.10.0.json # deterministic fixture-only accuracy metrics snapshot
+├── RELEASE_NOTE_v1.11.0.md
+└── metrics-v1.11.0.json # deterministic fixture-only accuracy metrics snapshot
examples/
├── dbo.v110_demo.sql # per-release outcome demos
├── dbo.v120_demo.sql
@@ -627,7 +653,8 @@ examples/
├── dbo.v170_demo.sql # v1.7.0: clear deterministic exports demo
├── dbo.v180_demo.sql # v1.8.0: usable local workspace demo
├── dbo.v190_demo.sql # v1.9.0: resolve by catalogue demo
-└── dbo.v1100_demo.sql # v1.10.0: column lineage foundations demo
+├── dbo.v1100_demo.sql # v1.10.0: column lineage foundations demo
+└── dbo.v1110_demo.sql # v1.11.0: column lineage pipelines demo
scripts/
├── file-smoke.mjs # dependency-free local-file release smoke test
└── metrics.mjs # generate/verify the fixture-corpus metric snapshot
@@ -639,6 +666,7 @@ src/
├── lineage.ts # CTE and query dependency extraction
├── ir.ts # graphs, diagnostics, confidence, and estate analysis
├── columns.ts # v1.10.0: single-statement column scopes and bindings
+├── columnflow.ts # v1.11.0: cross-statement column-flow pipelines + export graph
├── exporters.ts # Mermaid, draw.io, and narration output
├── workspace.ts # opt-in persistence + presentation-only dependency filtering
└── app.ts # browser UI and workspace interaction
@@ -657,6 +685,7 @@ tests/
├── workspace.ts
├── catalogue.ts
├── columns.ts # v1.10.0: column lineage foundations fixtures
+├── column-flow.ts # v1.11.0: column-flow pipelines, export, and layout fixtures
├── tests.ts
├── fuzz.ts
├── ui-tests.ts
@@ -695,13 +724,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.10.0.md` matches the final tag contents.
+6. `RELEASE_NOTE_v1.11.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.10.0`.
+8. The tag is named `v1.11.0`.
-The release can then be created manually from the `v1.10.0` tag using
-[RELEASE_NOTE_v1.10.0.md](docs/RELEASE_NOTE_v1.10.0.md).
+The release can then be created manually from the `v1.11.0` tag using
+[RELEASE_NOTE_v1.11.0.md](docs/RELEASE_NOTE_v1.11.0.md).
## Roadmap after v1.0.0
@@ -712,10 +741,12 @@ The release can then be created manually from the `v1.10.0` tag using
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.
- **Foundations delivered in v1.10.0** (column scopes, bindings, projections,
- CTE/derived-table scopes, and catalogue-backed wildcard expansion within one
- statement); full column-flow pipelines through temp tables and object
- boundaries are scheduled for v1.11.0.
+ **Delivered in v1.11.0** — foundations landed in v1.10.0 (column scopes,
+ bindings, projections, CTE/derived-table scopes, and catalogue-backed
+ wildcard expansion within one statement); v1.11.0 adds the full column-flow
+ pipelines through temp tables, transformations, views, CTEs, and
+ catalogue-resolved object boundaries, plus column export metadata/styles and
+ the documented column layout class.
7. Add optional local workspace persistence and dependency filtering.
**Delivered in v1.8.0.**
8. Separate graph, transaction, and estate-analysis internals while preserving
diff --git a/ROADMAP.md b/ROADMAP.md
index 7a61c13..b899d9d 100644
--- a/ROADMAP.md
+++ b/ROADMAP.md
@@ -361,6 +361,8 @@ v1.11.0, item 4 → v1.12.0.**
### v1.11.0 — Column lineage pipelines
+**Delivered in v1.11.0.**
+
- **Ships:** README item 6 in full — column-flow edges through CTEs, views,
temporary tables, transformations, and catalogue-resolved object boundaries;
F column metadata and column-flow export styles; E column-resolution signals;
diff --git a/dist/src/columnflow.js b/dist/src/columnflow.js
new file mode 100644
index 0000000..19ca3d2
--- /dev/null
+++ b/dist/src/columnflow.js
@@ -0,0 +1,831 @@
+"use strict";
+/* proc>flow: column lineage pipelines (v1.11.0)
+ Column-flow edges through CTEs, views, temporary tables, transformations,
+ and catalogue-resolved object boundaries; the exported column-flow graph with
+ its own documented layout class; column-resolution signals surfaced as
+ construct coverage and region-scoped diagnostics.
+
+ The engine walks an object's statements in source order and tracks the
+ column-level reaching definition of each column-carrying object (temp table,
+ local view, or catalogue-resolved external object). A producer statement
+ (SELECT … INTO, INSERT … SELECT, CREATE TABLE, CREATE VIEW) defines an
+ object's columns and traces each produced column end-to-end to its original
+ source object; a consumer statement binds its outputs back through an
+ object's known columns. The reaching-definition semantics mirror the
+ v1.5.0 flow graph: sequential writes replace the reaching definition, and a
+ conditional write (branch merge / loop body / handler) marks the object
+ ambiguous (`multi`), so its consumers stay opaque without ever inventing an
+ edge (`column_flow_opaque` diagnostics, region-scoped).
+
+ Interactive column views are deferred to v1.13.0; this module produces the
+ model (ColumnFlow), its export graph (buildColumnGraph), and the E signals
+ wired into construct coverage by src/ir.ts. */
+function cfCloneObjects(src) {
+ var out = {};
+ Object.keys(src || {}).forEach(function (k) {
+ var o = src[k];
+ out[k] = { name: o.name, multi: o.multi, span: o.span || null,
+ columns: (o.columns || []).map(function (c) {
+ return { name: c.name, span: c.span || null, resolution: c.resolution,
+ source: c.source || null, sourceColumn: c.sourceColumn || null,
+ sourceSpan: c.sourceSpan || null, reason: c.reason };
+ }) };
+ });
+ return out;
+}
+function cfNorm(name) {
+ return String(name || '').toUpperCase();
+}
+/* Resolve the reaching-definition object an object name refers to. */
+function cfLookupObject(ctx, name) {
+ var n = cfNorm(name);
+ if (ctx.objects[n])
+ return ctx.objects[n];
+ /* the name may be a synonym/catalogue canonical for a seeded object */
+ return null;
+}
+function cfObjectByRawName(ctx, name) {
+ var direct = cfLookupObject(ctx, name);
+ if (direct)
+ return direct;
+ if (!ctx.seen.catalogue)
+ return null;
+ var res = resolveCatalogue(ctx.seen.catalogue, name);
+ if (res.resolution !== 'verified' || !res.resolvedName)
+ return null;
+ return ctx.objects[cfNorm(res.resolvedName)] || null;
+}
+function cfFindColumn(cols, col) {
+ var cu = cfNorm(col);
+ for (var i = 0; i < cols.length; i++)
+ if (cfNorm(cols[i].name) === cu)
+ return cols[i];
+ return null;
+}
+/* Catalogue column evidence, seeded lazily so external object boundaries can
+ be resolved by the catalogue without inventing columns. */
+function cfSeedCatalogueObject(ctx, name) {
+ var cat = ctx.seen.catalogue;
+ if (!cat || !cat.columns)
+ return null;
+ var cols = catalogueColumnsFor(cat, name);
+ if (!cols.length)
+ return null;
+ var canonical = name;
+ var res = resolveCatalogue(cat, name);
+ if (res.resolution === 'verified' && res.resolvedName)
+ canonical = res.resolvedName;
+ var out = { name: canonical, multi: false, span: null,
+ columns: cols.map(function (c) {
+ return { name: c, span: null, resolution: 'exact',
+ source: canonical, sourceColumn: c, sourceSpan: null };
+ }) };
+ ctx.objects[cfNorm(canonical)] = out;
+ return out;
+}
+/* Flatten a column reference through a tracked object to its ultimate origin.
+ An ambiguous reaching definition or an unknown produced column yields an
+ opaque result with a region-scoped diagnostic. */
+function cfTraceAgainstObject(O, col, span, ctx) {
+ if (!O || O.multi) {
+ ctx.seen.diagnostics.push({ severity: 'warning', code: 'column_flow_opaque',
+ message: 'Column reference "' + col + '" reads ' + (O ? ('"' + O.name + '"') : 'an object') +
+ ' whose reaching definition is ambiguous (conditional write or branch merge); the binding is left opaque.',
+ span: span || null, scope: 'region' });
+ return { resolution: 'opaque', source: null, sourceColumn: null, sourceSpan: null };
+ }
+ var def = cfFindColumn(O.columns, col);
+ if (!def) {
+ ctx.seen.diagnostics.push({ severity: 'warning', code: 'column_flow_opaque',
+ message: 'Column "' + col + '" is not produced by any known definition of "' + O.name +
+ '"; its binding across statements is opaque.',
+ span: span || null, scope: 'region' });
+ return { resolution: 'opaque', source: null, sourceColumn: null, sourceSpan: null };
+ }
+ if (def.resolution !== 'exact' || !def.source || !def.sourceColumn) {
+ return { resolution: def.resolution, source: null, sourceColumn: null, sourceSpan: null };
+ }
+ return { resolution: 'exact', source: def.source, sourceColumn: def.sourceColumn,
+ sourceSpan: def.sourceSpan || def.span || null };
+}
+/* Map a statement ColumnSource reference to an ultimate origin. */
+function cfTraceSource(cs, col, span, ctx) {
+ if (!cs)
+ return { resolution: 'opaque', source: null, sourceColumn: null, sourceSpan: null };
+ var O = cfObjectByRawName(ctx, cs.name);
+ if (O)
+ return cfTraceAgainstObject(O, col, span, ctx);
+ /* untracked cte/table: exact provenance at reference level */
+ return { resolution: 'exact', source: cs.name, sourceColumn: col, sourceSpan: span };
+}
+function cfOutputOrigin(o, lin, ctx) {
+ if (o.resolution !== 'exact' || !o.bindings.length) {
+ return { name: o.name, span: o.span || null, resolution: o.resolution,
+ source: null, sourceColumn: null, sourceSpan: null, reason: o.reason };
+ }
+ var cs = cfSourceByKey(lin, o.bindings[0].source);
+ var origin = cfTraceSource(cs, o.bindings[0].column, o.bindings[0].span, ctx);
+ return { name: o.name, span: o.span || null, resolution: origin.resolution,
+ source: origin.source, sourceColumn: origin.sourceColumn,
+ sourceSpan: origin.sourceSpan };
+}
+function cfSourceByKey(lin, key) {
+ var k = cfNorm(key);
+ for (var i = 0; i < lin.sources.length; i++)
+ if (cfNorm(lin.sources[i].key) === k)
+ return lin.sources[i];
+ return null;
+}
+/* Define an object from produced column outputs. */
+function cfDefineObject(ctx, stepId, name, columns, span) {
+ var key = cfNorm(name);
+ ctx.objects[key] = { name: name, multi: false, span: span, columns: columns };
+ ctx.seen.defs[key] = stepId;
+ ctx.writeLog.push(key);
+}
+/* Record a consume edge from an object's reaching definition producer, if one
+ exists, and drive the end-to-end pipeline edges. */
+function cfRecordConsume(ctx, stepId, O, names, span) {
+ var key = cfNorm(O.name);
+ var defStep = ctx.seen.defs[key];
+ var anyOpaque = names.some(function (n) { return n.resolution === 'opaque'; });
+ if (defStep && defStep !== stepId) {
+ ctx.seen.edges.push({ fromStep: defStep, toStep: stepId, object: O.name,
+ columns: names.map(function (n) {
+ return { name: n.col, resolution: n.resolution,
+ span: n.span || null };
+ }),
+ resolution: anyOpaque ? 'opaque' : 'exact' });
+ }
+}
+/* Record a step's consumption from a tracked/catalogue object and resolve the
+ common consume resolution. Returns whether every name resolved exactly. */
+function cfConsumeObject(ctx, stepId, O, names, span, step) {
+ if (!names.length)
+ return;
+ var resolved = names.map(function (n) {
+ var tr = cfTraceAgainstObject(O, n.col, n.span, ctx);
+ return { col: n.col, span: n.span || null, resolution: tr.resolution };
+ });
+ var anyOpaque = resolved.some(function (r) { return r.resolution !== 'exact'; });
+ step.consumes.push({ object: O.name, names: resolved.map(function (r) { return r.col; }),
+ resolution: anyOpaque ? 'opaque' : 'exact', span: span });
+ cfRecordConsume(ctx, stepId, O, resolved, span);
+ if (anyOpaque)
+ ctx.seen.opaqueCount++;
+}
+/* Group a statement's bindings to one object, dropping bindings to columns the
+ object's known definition does not produce _only when_ other bindings do
+ produce known columns (a T-SQL `col = expr` alias target is such a false
+ candidate). When no binding matches, all are kept so the genuinely unknown
+ reference stays opaque with a region diagnostic and never invents an edge. */
+function cfConsumeGroup(ctx, stepId, O, triples, span, step) {
+ var hasCols = (O.columns || []).length > 0;
+ var unknown = [];
+ triples.forEach(function (t) {
+ if (hasCols && !cfFindColumn(O.columns, t.col))
+ unknown.push(t);
+ });
+ var kept = hasCols && unknown.length && unknown.length < triples.length
+ ? triples.filter(function (t) { return !!cfFindColumn(O.columns, t.col); })
+ : triples;
+ cfConsumeObject(ctx, stepId, O, kept, span, step);
+}
+/* ---------- statement handlers ---------- */
+function cfSelect(st, step, ctx) {
+ var toks = st.toks || [], span = spanOfTokens(toks);
+ var facts = statementFacts(toks, false);
+ var lin = analyseColumns(toks, { catalogue: ctx.seen.catalogue, dialect: ctx.seen.dialect });
+ if (!lin) {
+ step.resolution = 'opaque';
+ step.opaque = true;
+ ctx.seen.opaqueCount++;
+ return;
+ }
+ /* consumes: outputs that read tracked or catalogue-proven objects */
+ var consumed = {};
+ lin.outputs.forEach(function (o) {
+ o.bindings.forEach(function (b) {
+ var cs = cfSourceByKey(lin, b.source);
+ if (!cs)
+ return;
+ var O = cfObjectByRawName(ctx, cs.name) || cfSeedCatalogueObject(ctx, cs.name);
+ if (!O)
+ return;
+ var key = cfNorm(O.name);
+ consumed[key] = consumed[key] || [];
+ consumed[key].push({ col: b.column, span: b.span || null });
+ });
+ });
+ Object.keys(consumed).forEach(function (key) {
+ var O = ctx.objects[key];
+ if (O)
+ cfConsumeGroup(ctx, step.id, O, consumed[key], span, step);
+ });
+ /* produces: SELECT ... INTO target */
+ facts.writes.forEach(function (writeName) {
+ if (!writeName || writeName.charAt(0) === '@')
+ return;
+ var cols = lin.outputs.map(function (o) { return cfOutputOrigin(o, lin, ctx); });
+ var res = 'exact';
+ cols.forEach(function (c) { if (c.resolution !== 'exact')
+ res = 'opaque'; });
+ if (res === 'opaque')
+ step.resolution = 'opaque';
+ step.produces.push({ object: writeName, columns: cols, multi: false });
+ cfDefineObject(ctx, step.id, writeName, cols, span);
+ });
+}
+function cfInsert(st, step, ctx) {
+ var toks = st.toks || [], span = spanOfTokens(toks);
+ var facts = statementFacts(toks, false);
+ var target = facts.writes[0];
+ if (!target) {
+ step.resolution = 'opaque';
+ step.opaque = true;
+ ctx.seen.opaqueCount++;
+ return;
+ }
+ var selIx = -1, d = 0;
+ for (var i = 1; i < toks.length; i++) {
+ if (toks[i].v === '(')
+ d++;
+ else if (toks[i].v === ')')
+ d--;
+ else if (d === 0 && toks[i].u === 'SELECT') {
+ selIx = i;
+ break;
+ }
+ }
+ if (selIx < 0) {
+ /* INSERT ... VALUES: schema unknown unless the object is already defined. */
+ var O = cfLookupObject(ctx, target);
+ if (O && !O.multi) {
+ step.produces.push({ object: O.name, columns: O.columns.slice(), multi: false });
+ }
+ else {
+ ctx.seen.diagnostics.push({ severity: 'warning', code: 'column_flow_opaque',
+ message: 'INSERT into "' + target + '" has no resolvable column source in this version; its columns are opaque.',
+ span: span, scope: 'region' });
+ var op = [];
+ var colsList = cfInsertColumnList(toks, facts);
+ if (colsList && colsList.length) {
+ op = colsList.map(function (c) {
+ return { name: c, span: null, resolution: 'opaque',
+ source: null, sourceColumn: null, sourceSpan: null };
+ });
+ }
+ step.produces.push({ object: target, columns: op, multi: true });
+ cfDefineObject(ctx, step.id, target, op, span);
+ step.resolution = 'opaque';
+ ctx.seen.opaqueCount++;
+ }
+ return;
+ }
+ var lin = analyseColumns(toks.slice(selIx), { catalogue: ctx.seen.catalogue, dialect: ctx.seen.dialect });
+ var outputs = lin ? lin.outputs : [];
+ var cols = outputs.map(function (o) { return cfOutputOrigin(o, lin, ctx); });
+ var list = cfInsertColumnList(toks, facts);
+ if (list && list.length) {
+ var renamed = [];
+ for (var k = 0; k < list.length; k++) {
+ var src = cols[k];
+ renamed.push(src ? { name: list[k], span: spanOfTokens(toks), resolution: src.resolution,
+ source: src.source, sourceColumn: src.sourceColumn, sourceSpan: src.sourceSpan }
+ : { name: list[k], span: spanOfTokens(toks), resolution: 'opaque',
+ source: null, sourceColumn: null, sourceSpan: null });
+ }
+ cols = renamed;
+ }
+ else {
+ /* no explicit column list: an INSERT into an already-defined schema maps
+ the select outputs to the table's columns positionally */
+ var exists = cfLookupObject(ctx, target);
+ if (exists && !exists.multi && exists.columns.length && exists.columns.length === cols.length) {
+ cols = cols.map(function (c, i) {
+ return { name: exists.columns[i].name, span: spanOfTokens(toks),
+ resolution: c.resolution, source: c.source,
+ sourceColumn: c.sourceColumn, sourceSpan: c.sourceSpan,
+ reason: c.reason };
+ });
+ }
+ }
+ if (!lin) {
+ step.resolution = 'opaque';
+ step.opaque = true;
+ ctx.seen.opaqueCount++;
+ }
+ step.produces.push({ object: target, columns: cols, multi: false });
+ cfDefineObject(ctx, step.id, target, cols, span);
+}
+function cfInsertColumnList(toks, facts) {
+ var i = toks[0].u === 'INSERT' ? 1 : 1;
+ while (toks[i] && ['INTO', 'OR', 'IGNORE', 'REPLACE'].indexOf(toks[i].u) >= 0)
+ i++;
+ /* skip the write target (possibly qualified) to reach an explicit column list */
+ while (toks[i] && toks[i].type === 'word') {
+ if (toks[i + 1] && toks[i + 1].v === '.' && toks[i + 2] && toks[i + 2].type === 'word') {
+ i += 2;
+ continue;
+ }
+ i++;
+ break;
+ }
+ if (toks[i] && toks[i].v === '(') {
+ var out = [];
+ i++;
+ while (i < toks.length) {
+ var t = toks[i];
+ if (t.v === ')')
+ break;
+ if (t.type === 'word' && cfNorm(t.v) !== ',')
+ out.push(t.v);
+ i++;
+ }
+ return out;
+ }
+ return null;
+}
+function cfUpdate(st, step, ctx) {
+ var toks = st.toks || [], span = spanOfTokens(toks);
+ var facts = statementFacts(toks, false);
+ var target = facts.writes[0];
+ if (!target) {
+ return;
+ }
+ var O = cfLookupObject(ctx, target);
+ if (!O || O.multi) {
+ step.resolution = 'opaque';
+ step.opaque = true;
+ ctx.seen.opaqueCount++;
+ return;
+ }
+ var sets = cfParseUpdateSets(toks);
+ var src = { key: O.name, name: O.name, alias: null, kind: 'table',
+ columns: O.columns.map(function (c) { return c.name; }),
+ columnsKnown: O.columns.length > 0, span: span };
+ var reads = [];
+ sets.forEach(function (s) {
+ if (!s || !s.col)
+ return;
+ var scan = colScanRefs(s.expr || [], [src], []);
+ var bound = scan.bound.filter(function (b) { return b.source; });
+ if (bound.length === 1 && bound[0].name) {
+ reads.push({ col: bound[0].name, span: bound[0].span || null });
+ var origin = cfTraceAgainstObject(O, bound[0].name, bound[0].span || null, ctx);
+ O.columns.forEach(function (c) {
+ if (cfNorm(c.name) === cfNorm(s.col)) {
+ c.resolution = origin.resolution;
+ c.source = origin.source;
+ c.sourceColumn = origin.sourceColumn;
+ c.sourceSpan = origin.sourceSpan || c.sourceSpan;
+ }
+ });
+ }
+ });
+ /* read-modify-write: the update consumes its own object first */
+ if (reads.length)
+ cfConsumeGroup(ctx, step.id, O, reads, span, step);
+ step.produces.push({ object: O.name, columns: O.columns.slice(), multi: false });
+ cfDefineObject(ctx, step.id, O.name, O.columns.slice(), span);
+}
+function cfParseUpdateSets(toks) {
+ var d = 0, si = -1;
+ for (var i = 0; i < toks.length; i++) {
+ if (toks[i].v === '(')
+ d++;
+ else if (toks[i].v === ')')
+ d--;
+ else if (d === 0 && toks[i].u === 'SET') {
+ si = i;
+ break;
+ }
+ }
+ if (si < 0)
+ return [];
+ var out = [], cur = [], col = null, dd = 0;
+ var j = si + 1;
+ while (j < toks.length) {
+ var t = toks[j];
+ if (t.v === '(')
+ dd++;
+ else if (t.v === ')')
+ dd--;
+ if (dd === 0 && (t.u === 'FROM' || t.u === 'WHERE' || t.u === 'RETURNING'))
+ break;
+ if (t.v === ',' && dd === 0) {
+ out.push({ col: col, expr: cur });
+ cur = [];
+ col = null;
+ j++;
+ continue;
+ }
+ if (t.v === '=' && dd === 0) {
+ col = cur.length && cur[cur.length - 1].type === 'word' ? cur[cur.length - 1].v : null;
+ cur = [];
+ /* drop alias/keyword (e.g. SET x = …, SET @v = …) */
+ if (cur.length && cur[cur.length - 1].v === '=')
+ cur.pop();
+ j++;
+ continue;
+ }
+ cur.push(t);
+ j++;
+ }
+ out.push({ col: col, expr: cur });
+ return out;
+}
+function cfCreate(st, step, ctx) {
+ var toks = st.toks || [], span = spanOfTokens(toks);
+ var i = 1;
+ if (toks[i] && toks[i].u === 'OR' && toks[i + 1] &&
+ ['ALTER', 'REPLACE'].indexOf(toks[i + 1].u) >= 0)
+ i += 2;
+ while (toks[i] && ['TEMP', 'TEMPORARY', 'MATERIALIZED', 'UNIQUE', 'CLUSTERED', 'LOCAL', 'GLOBAL'].
+ indexOf(toks[i].u) >= 0)
+ i++;
+ var kind = toks[i] ? toks[i].u : '';
+ if (kind === 'TABLE') {
+ var name = qname(toks, i + 1);
+ if (!name) {
+ return;
+ }
+ var cols = cfTableColumnNames(toks, i + 2);
+ var defs = cols.map(function (c) {
+ return { name: c, span: span, resolution: 'exact',
+ source: null, sourceColumn: null, sourceSpan: null };
+ });
+ step.produces.push({ object: name, columns: defs, multi: false });
+ cfDefineObject(ctx, step.id, name, defs, span);
+ return;
+ }
+ if (kind === 'VIEW') {
+ var vname = qname(toks, i + 1);
+ var asIx = -1, d = 0;
+ for (var k = i + 1; k < toks.length; k++) {
+ if (toks[k].v === '(')
+ d++;
+ else if (toks[k].v === ')')
+ d--;
+ else if (d === 0 && toks[k].u === 'AS' && toks[k + 1] && toks[k + 1].u === 'SELECT') {
+ asIx = k;
+ break;
+ }
+ }
+ if (vname && asIx >= 0) {
+ var lin = analyseColumns(toks.slice(asIx + 1), { catalogue: ctx.seen.catalogue, dialect: ctx.seen.dialect });
+ var defs2 = lin ? lin.outputs.map(function (o) { return cfOutputOrigin(o, lin, ctx); }) : [];
+ step.produces.push({ object: vname, columns: defs2, multi: false });
+ if (lin)
+ cfDefineObject(ctx, step.id, vname, defs2, span);
+ }
+ return;
+ }
+}
+function cfTableColumnNames(toks, start) {
+ var i = start;
+ while (toks[i] && toks[i].v !== '(')
+ i++;
+ if (!toks[i])
+ return [];
+ var out = [], dd = 0, pending = true;
+ i++;
+ while (i < toks.length) {
+ var t = toks[i];
+ if (t.v === '(')
+ dd++;
+ else if (t.v === ')') {
+ if (dd === 0)
+ break;
+ dd--;
+ }
+ if (pending && t.type === 'word' && t.v !== ',') {
+ out.push(t.v);
+ pending = false;
+ }
+ if (t.v === ',' && dd === 0)
+ pending = true;
+ i++;
+ if (t.v === ')')
+ break;
+ }
+ return out;
+}
+function cfMerge(st, step, ctx) {
+ /* MERGE INTO target USING source — column structure of the target is
+ unchanged; the source is consumed but its column mapping is opaque here. */
+ var facts = statementFacts(st.toks || [], false);
+ var target = facts.writes[0];
+ var O = target ? cfLookupObject(ctx, target) : null;
+ if (O && !O.multi) {
+ step.produces.push({ object: O.name, columns: O.columns.slice(), multi: false });
+ }
+ else if (target) {
+ step.resolution = 'opaque';
+ step.opaque = true;
+ ctx.seen.opaqueCount++;
+ }
+}
+function cfStmt(st, ctx) {
+ var toks = st.toks || [];
+ var span = spanOfTokens(toks);
+ ctx.seen.seq++;
+ var step = { id: 's' + ctx.seen.seq, text: '', span: span,
+ produces: [], consumes: [], resolution: 'exact' };
+ ctx.seen.steps.push(step);
+ if (!toks.length) {
+ step.opaque = true;
+ step.resolution = 'opaque';
+ return;
+ }
+ step.text = String(summarise(toks, 52) || '…');
+ if (st.type === 'dynamic' || st.type === 'unknown') {
+ step.opaque = true;
+ step.resolution = 'opaque';
+ ctx.seen.opaqueCount++;
+ return;
+ }
+ var head = toks[0].u;
+ if (head === 'WITH' || head === 'SELECT') {
+ cfSelect(st, step, ctx);
+ return;
+ }
+ if (head === 'INSERT' || head === 'REPLACE') {
+ cfInsert(st, step, ctx);
+ return;
+ }
+ if (head === 'UPDATE') {
+ cfUpdate(st, step, ctx);
+ return;
+ }
+ if (head === 'CREATE') {
+ cfCreate(st, step, ctx);
+ return;
+ }
+ if (head === 'MERGE') {
+ cfMerge(st, step, ctx);
+ return;
+ }
+}
+/* ---------- branch/loop/handler merge semantics (mirror v1.5.0 flow) ---------- */
+function cfMergeConstruct(ctx, forks) {
+ var written = [];
+ forks.forEach(function (f) {
+ f.writeLog.forEach(function (k) {
+ if (written.indexOf(k) < 0)
+ written.push(k);
+ });
+ });
+ written.forEach(function (k) {
+ var rep = null;
+ forks.forEach(function (f) { if (f.objects[k] && !rep)
+ rep = f.objects[k]; });
+ var cols = (rep ? rep.columns : []).map(function (c) {
+ return { name: c.name, span: null, resolution: 'opaque',
+ source: null, sourceColumn: null, sourceSpan: null };
+ });
+ ctx.objects[k] = { name: (rep && rep.name) || k, multi: true, span: (rep && rep.span) || null,
+ columns: cols };
+ });
+ written.forEach(function (k) { ctx.writeLog.push(k); });
+}
+function cfIf(st, ctx) {
+ var tFork = { objects: cfCloneObjects(ctx.objects), writeLog: [], seen: ctx.seen };
+ var eFork = { objects: cfCloneObjects(ctx.objects), writeLog: [], seen: ctx.seen };
+ if (st.then)
+ cfRun([st.then], tFork);
+ if (st.else)
+ cfRun([st.else], eFork);
+ cfMergeConstruct(ctx, [tFork, eFork]);
+}
+function cfCase(st, ctx) {
+ var forks = [];
+ st.branches.forEach(function (b) {
+ var fork = { objects: cfCloneObjects(ctx.objects), writeLog: [], seen: ctx.seen };
+ cfRun(b.body, fork);
+ forks.push(fork);
+ });
+ if (st.else && st.else.length) {
+ var ef = { objects: cfCloneObjects(ctx.objects), writeLog: [], seen: ctx.seen };
+ cfRun(st.else, ef);
+ forks.push(ef);
+ }
+ if (forks.length)
+ cfMergeConstruct(ctx, forks);
+}
+function cfLoop(st, ctx) {
+ if (!st.body)
+ return;
+ var fork = { objects: cfCloneObjects(ctx.objects), writeLog: [], seen: ctx.seen };
+ cfRun([st.body], fork);
+ fork.writeLog.forEach(function (k) {
+ var rep = fork.objects[k];
+ ctx.objects[k] = { name: (rep && rep.name) || k, multi: true, span: (rep && rep.span) || null,
+ columns: [] };
+ });
+ fork.writeLog.forEach(function (k) { ctx.writeLog.push(k); });
+}
+function cfTry(st, ctx) {
+ var forks = [];
+ var bf = { objects: cfCloneObjects(ctx.objects), writeLog: [], seen: ctx.seen };
+ cfRun(st.body, bf);
+ forks.push(bf);
+ st.handlers.forEach(function (h) {
+ var hf = { objects: cfCloneObjects(ctx.objects), writeLog: [], seen: ctx.seen };
+ cfRun(h.body || [], hf);
+ forks.push(hf);
+ });
+ cfMergeConstruct(ctx, forks);
+}
+function cfHandler(st, ctx) {
+ if (!st.body)
+ return;
+ var fork = { objects: cfCloneObjects(ctx.objects), writeLog: [], seen: ctx.seen };
+ cfRun([st.body], fork);
+ fork.writeLog.forEach(function (k) {
+ ctx.objects[k] = { name: k, multi: true, span: null, columns: [] };
+ });
+}
+function cfRun(list, ctx) {
+ (list || []).forEach(function (st) {
+ if (st.type === 'block') {
+ cfRun(st.body, ctx);
+ return;
+ }
+ if (st.type === 'stmt') {
+ cfStmt(st, ctx);
+ return;
+ }
+ if (st.type === 'dynamic' || st.type === 'unknown') {
+ cfStmt(st, ctx);
+ return;
+ }
+ if (st.type === 'if') {
+ cfIf(st, ctx);
+ return;
+ }
+ if (st.type === 'case') {
+ cfCase(st, ctx);
+ return;
+ }
+ if (['while', 'for', 'loop', 'repeat'].indexOf(st.type) >= 0) {
+ cfLoop(st, ctx);
+ return;
+ }
+ if (st.type === 'try') {
+ cfTry(st, ctx);
+ return;
+ }
+ if (st.type === 'handler') {
+ cfHandler(st, ctx);
+ return;
+ }
+ });
+}
+/* After the walk, if the whole object is a view, seed its output columns so
+ estate can resolve same-script consumers by definition. */
+function cfSeedViewResult(ctx, spanOfObject) {
+ var vn = ctx.seen.viewName;
+ if (!vn)
+ return;
+ if (ctx.objects[cfNorm(vn)])
+ return;
+ var leaf = null;
+ for (var i = ctx.seen.steps.length - 1; i >= 0; i--) {
+ var s = ctx.seen.steps[i];
+ if (s.opaque)
+ continue;
+ if (s.produces.length)
+ break;
+ leaf = s;
+ break;
+ }
+ if (!leaf)
+ return;
+ var source = ctx.seen.viewExtra;
+ if (!source || !source.length)
+ return;
+ var lin = analyseColumns(source, { catalogue: ctx.seen.catalogue, dialect: ctx.seen.dialect });
+ if (!lin)
+ return;
+ var cols = lin.outputs.map(function (o) { return cfOutputOrigin(o, lin, ctx); });
+ ctx.objects[cfNorm(vn)] = { name: vn, multi: false, span: spanOfObject, columns: cols };
+ ctx.seen.defs[cfNorm(vn)] = leaf.id;
+}
+/* ---------- public API ---------- */
+function analyseColumnFlow(ast, opts) {
+ opts = opts || {};
+ var seen = { steps: [], edges: [], diagnostics: [],
+ catalogue: opts.catalogue || null, dialect: opts.dialect, seq: 0, opaqueCount: 0,
+ defs: {}, viewName: (opts.viewKind === 'VIEW' ? (opts.viewName || null) : null), viewExtra: opts.viewBodyTokens || null };
+ var objects = {};
+ if (opts.define) {
+ Object.keys(opts.define).forEach(function (k) {
+ var o = opts.define[k];
+ if (!o)
+ return;
+ objects[cfNorm(o.name)] = { name: o.name, multi: o.multi, span: o.span || null,
+ columns: (o.columns || []).map(function (c) {
+ return { name: c.name, span: c.span || null, resolution: c.resolution,
+ source: c.source || null, sourceColumn: c.sourceColumn || null,
+ sourceSpan: c.sourceSpan || null, reason: c.reason };
+ }) };
+ });
+ }
+ var ctx = { objects: objects, writeLog: [], seen: seen };
+ try {
+ cfRun(ast, ctx);
+ if (seen.viewName)
+ cfSeedViewResult(ctx, spanOfObjectTokens(ast));
+ }
+ catch (err) {
+ /* column flow is best-effort metadata; never break the analysis */
+ seen.diagnostics.push({ severity: 'warning', code: 'column_flow_opaque',
+ message: 'Column-flow analysis failed for part of this object and was left opaque.',
+ span: null, scope: 'document' });
+ }
+ if (!seen.steps.length)
+ return null;
+ var objectKeys = Object.keys(ctx.objects);
+ var objectsResolved = 0, objectsOpaque = 0;
+ objectKeys.forEach(function (k) {
+ var o = ctx.objects[k];
+ var clean = !o.multi && o.columns.every(function (c) { return c.resolution === 'exact'; });
+ if (clean)
+ objectsResolved++;
+ else
+ objectsOpaque++;
+ });
+ var edgesResolved = 0, edgesOpaque = 0;
+ seen.edges.forEach(function (e) { if (e.resolution === 'exact')
+ edgesResolved++;
+ else
+ edgesOpaque++; });
+ return {
+ steps: seen.steps, edges: seen.edges, objects: ctx.objects,
+ opaqueCount: seen.opaqueCount, diagnostics: seen.diagnostics,
+ stats: { objects: objectKeys.length, objectsResolved: objectsResolved,
+ objectsOpaque: objectsOpaque, edges: seen.edges.length,
+ edgesResolved: edgesResolved, edgesOpaque: edgesOpaque }
+ };
+}
+function spanOfObjectTokens(ast) {
+ var lo = Infinity, hi = -1;
+ walkAst(ast, function (st) {
+ if (!('toks' in st) || !st.toks)
+ return;
+ var s = spanOfTokens(st.toks);
+ if (s) {
+ lo = Math.min(lo, s.start);
+ hi = Math.max(hi, s.end);
+ }
+ }, 0);
+ return isFinite(lo) ? { start: lo, end: hi } : null;
+}
+/* ---------- export graph (own documented layout class) ---------- */
+function buildColumnGraph(cf) {
+ var nodes = [], edges = [];
+ var objIds = {};
+ var objSeq = 0;
+ cf.steps.forEach(function (s) {
+ nodes.push({ id: s.id, shape: 'rect', text: s.text, cls: s.opaque ? 'opaque' : 'colstep',
+ source: s.span || null, provenance: s.span ? 'source' : 'synthetic',
+ reason: s.opaque ? 'statement outside column analysis' : undefined });
+ });
+ Object.keys(cf.objects).forEach(function (k) {
+ var o = cf.objects[k];
+ if (o.name.charAt(0) === '#')
+ objIds[k] = 'cobj' + (++objSeq);
+ else
+ objIds[k] = 'cobj' + (++objSeq);
+ nodes.push({ id: objIds[k], shape: 'io', text: o.name, cls: 'colobj', source: o.span || null,
+ provenance: o.span ? 'source' : 'synthetic',
+ reason: o.multi ? 'ambiguous reaching definition (no unique producer)' : undefined });
+ });
+ for (var i = 1; i < cf.steps.length; i++) {
+ edges.push({ from: cf.steps[i - 1].id, to: cf.steps[i].id, label: '',
+ style: 'solid', kind: 'control' });
+ }
+ cf.steps.forEach(function (s) {
+ s.produces.forEach(function (p) {
+ var oid = objIds[cfNorm(p.object)];
+ if (!oid)
+ return;
+ var label = p.columns.slice(0, 6).map(function (c) { return c.name; }).join(', ');
+ edges.push({ from: s.id, to: oid, label: label, style: 'solid', kind: 'data' });
+ });
+ s.consumes.forEach(function (c) {
+ var oid = objIds[cfNorm(c.object)];
+ if (!oid)
+ return;
+ var label = (c.names || []).slice(0, 6).join(', ');
+ edges.push({ from: oid, to: s.id, label: label, style: 'solid', kind: 'data' });
+ });
+ });
+ return { nodes: nodes, edges: edges, stats: {
+ steps: cf.steps.length, objects: Object.keys(cf.objects).length,
+ columnEdges: edges.filter(function (e) { return e.kind === 'data'; }).length,
+ opaque: cf.opaqueCount
+ } };
+}
+//# sourceMappingURL=columnflow.js.map
\ No newline at end of file
diff --git a/dist/src/columnflow.js.map b/dist/src/columnflow.js.map
new file mode 100644
index 0000000..806d468
--- /dev/null
+++ b/dist/src/columnflow.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"columnflow.js","sourceRoot":"","sources":["../../src/columnflow.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/src/columns.js b/dist/src/columns.js
index cfba2f1..881d46b 100644
--- a/dist/src/columns.js
+++ b/dist/src/columns.js
@@ -567,28 +567,38 @@ function colParseItems(projToks) {
if (!toks.length)
return;
var alias = null, expr = toks.slice();
- var asIx = -1, d2 = 0;
- for (var i = 0; i < toks.length; i++) {
- if (toks[i].v === '(')
- d2++;
- else if (toks[i].v === ')')
- d2--;
- if (d2 === 0 && toks[i].u === 'AS') {
- asIx = i;
- break;
- }
- }
- if (asIx >= 0 && toks[asIx + 1]) {
- alias = toks[asIx + 1].v;
- expr = toks.slice(0, asIx);
+ /* T-SQL `SELECT col = expr` alias assignment (v1.11.0 transformations): a
+ leading bare identifier immediately followed by `=` at depth 0 names the
+ output column, so the assignment target is never mistaken for a reference
+ to a source column. */
+ if (toks.length >= 2 && toks[0].type === 'word' && toks[0].v !== '*' && toks[1].v === '=') {
+ alias = toks[0].v;
+ expr = toks.slice(2);
}
- else if (toks.length >= 2) {
- var last = toks[toks.length - 1];
- var prev = toks[toks.length - 2];
- if (last.type === 'word' && prev.v !== '.' && COL_REF_SKIP[last.u] === undefined &&
- COL_CLAUSE_START[last.u] === undefined && last.v !== ';') {
- alias = last.v;
- expr = toks.slice(0, toks.length - 1);
+ else {
+ var asIx = -1, d2 = 0;
+ for (var i = 0; i < toks.length; i++) {
+ if (toks[i].v === '(')
+ d2++;
+ else if (toks[i].v === ')')
+ d2--;
+ if (d2 === 0 && toks[i].u === 'AS') {
+ asIx = i;
+ break;
+ }
+ }
+ if (asIx >= 0 && toks[asIx + 1]) {
+ alias = toks[asIx + 1].v;
+ expr = toks.slice(0, asIx);
+ }
+ else if (toks.length >= 2) {
+ var last = toks[toks.length - 1];
+ var prev = toks[toks.length - 2];
+ if (last.type === 'word' && prev.v !== '.' && COL_REF_SKIP[last.u] === undefined &&
+ COL_CLAUSE_START[last.u] === undefined && last.v !== ';') {
+ alias = last.v;
+ expr = toks.slice(0, toks.length - 1);
+ }
}
}
out.push({ expr: expr, alias: alias, span: spanOfTokens(toks) });
@@ -831,10 +841,36 @@ function colAnalyseToks(toks, ctx) {
tokensOpaque: opaqueCount, opaqueCount: opaqueCount,
diagnostics: diagnostics };
}
+/* Trim a raw statement token list before analysis: trailing semicolons are
+ delimiters, and a depth-0 batch separator (GO) terminates the statement.
+ Statement tokens from the AST already exclude these; raw body tokens (for
+ example a view body handed to column seeding) do not. */
+function colTrimStatement(toks) {
+ var end = toks.length;
+ while (end > 0 && toks[end - 1].v === ';')
+ end--;
+ var d = 0;
+ for (var i = 0; i < end; i++) {
+ if (toks[i].v === '(')
+ d++;
+ else if (toks[i].v === ')')
+ d--;
+ else if (d <= 0 && toks[i].type === 'word' && toks[i].u === 'GO') {
+ end = i;
+ break;
+ }
+ }
+ while (end > 0 && toks[end - 1].v === ';')
+ end--;
+ return toks.slice(0, end);
+}
/* Public entry point: analyse one query statement's column lineage. Returns
null when the tokens do not represent a SELECT query. */
function analyseColumns(toks, opts) {
opts = opts || {};
+ var trim = colTrimStatement(toks || []);
+ if (trim.length !== (toks || []).length)
+ toks = trim;
var ctx = { cteColumns: {}, catalogue: opts.catalogue || null,
dialect: opts.dialect, depth: 0 };
return colAnalyseToks(toks || [], ctx);
diff --git a/dist/src/columns.js.map b/dist/src/columns.js.map
index 633db20..3b063f9 100644
--- a/dist/src/columns.js.map
+++ b/dist/src/columns.js.map
@@ -1 +1 @@
-{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../src/columns.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../src/columns.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/src/exporters.js b/dist/src/exporters.js
index 1a77c97..b0274b8 100644
--- a/dist/src/exporters.js
+++ b/dist/src/exporters.js
@@ -18,7 +18,13 @@ var CANONICAL_NODE_STYLE = {
flowctl: { mermaid: 'fill:#2a2438,stroke:#a98fd6,color:#ece4ff', fill: '#f3e8ff', stroke: '#9333ea', font: '#3b0764' },
cte: { mermaid: 'fill:#1c2f3f,stroke:#7ea6e0,color:#dcebff', fill: '#dbeafe', stroke: '#3b82f6', font: '#172554' },
src: { mermaid: 'fill:#1b242c,stroke:#4c6274,color:#a9bccb', fill: '#f1f5f9', stroke: '#64748b', font: '#0f172a' },
- final: { mermaid: 'fill:#3a2c15,stroke:#e8a33d,color:#ffeccc', fill: '#fef3c7', stroke: '#d97706', font: '#451a03' }
+ final: { mermaid: 'fill:#3a2c15,stroke:#e8a33d,color:#ffeccc', fill: '#fef3c7', stroke: '#d97706', font: '#451a03' },
+ /* v1.11.0 column-flow export styles: `colstep` is a column-pipeline step and
+ `colobj` is a column-carrying object (temp table, local view, catalogue
+ boundary). Both exporters derive these from the same canonical registry,
+ so Mermaid and draw.io can never disagree about the column graph class. */
+ colstep: { mermaid: 'fill:#12302c,stroke:#3fd0b0,color:#dcfff5', fill: '#d5f5ef', stroke: '#0d9488', font: '#082f2a' },
+ colobj: { mermaid: 'fill:#2c1c3f,stroke:#b18ce8,color:#f0e6ff', fill: '#f1e6ff', stroke: '#8b5cf6', font: '#2e1065' }
};
var CANONICAL_EDGE_STYLE = {
control: 'solid', exception: 'dotted', data: 'solid', dependency: 'solid', call: 'solid'
diff --git a/dist/src/exporters.js.map b/dist/src/exporters.js.map
index 67d9535..ffbe351 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":"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"}
\ 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;IAC1G;;;iFAG6E;IAC7E,OAAO,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;IAC5G,MAAM,EAAC,EAAC,OAAO,EAAC,2CAA2C,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC;CAC5G,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 88892bf..707eb36 100644
--- a/dist/src/ir.js
+++ b/dist/src/ir.js
@@ -1803,12 +1803,26 @@ function analyseEstate(files, opts) {
(files || []).forEach(function (file) {
units = units.concat(splitSqlObjects(file.text, file.name));
});
+ /* v1.11.0 — same-script column flow: definitions (view/table column lists)
+ from objects analysed earlier in the same script cross object boundaries,
+ so consumers resolve by definition instead of staying opaque. */
+ var scriptDefs = {};
var objects = units.map(function (unit, index) {
unit.id = 'object-' + (index + 1);
- var result = analyse(unit.sql, opts);
+ var oopts = Object.assign({}, opts, { define: scriptDefs });
+ var result = analyse(unit.sql, oopts);
unit.name = result.header.name || unit.name || ('Script ' + (index + 1));
var ir = buildObjectIR(result, unit);
ir.result = result;
+ if (result.columnFlow) {
+ Object.keys(result.columnFlow.objects).forEach(function (k) {
+ var o = result.columnFlow.objects[k];
+ if (!o || o.name.charAt(0) === '#')
+ return; /* temps are object-local */
+ if (!scriptDefs[String(k).toUpperCase()])
+ scriptDefs[String(k).toUpperCase()] = o;
+ });
+ }
return ir;
});
var graph = dependencyGraph(objects, opts);
@@ -2218,6 +2232,48 @@ function analyse(sql, opts) {
columnLineages.push(cl);
cl.diagnostics.forEach(function (d) { diagnostics.push(d); });
}, 0);
+ /* v1.11.0 — column lineage pipelines. Cross-statement column flow through
+ temp tables, transformations, views, CTEs, and catalogue-resolved object
+ boundaries. Ambiguous reaching definitions and unresolvable transformations
+ stay opaque with region-scoped `column_flow_opaque` diagnostics; the export
+ graph is a plain Graph on its own documented column layout class. */
+ var columnFlow = null;
+ var columnFlowGraph = null;
+ try {
+ columnFlow = analyseColumnFlow(ast, {
+ catalogue: opts.catalogue, dialect: dialect, sql: sql,
+ define: opts.define,
+ viewName: header.name, viewKind: header.kind,
+ viewBodyTokens: (header.kind === 'VIEW') ? bodyToks : null
+ });
+ }
+ catch (err) {
+ columnFlow = null;
+ }
+ if (columnFlow) {
+ columnFlow.diagnostics.forEach(function (d) { diagnostics.push(d); });
+ /* column-resolution constructs feed the same construct-coverage surface */
+ var cfo = columnFlow.stats.objects, cfoR = columnFlow.stats.objectsResolved, cfoO = columnFlow.stats.objectsOpaque;
+ var cfe = columnFlow.stats.edges, cfeR = columnFlow.stats.edgesResolved, cfeO = columnFlow.stats.edgesOpaque;
+ var cTotal = cfo + cfe;
+ if (cTotal > 0) {
+ var cc = constructCoverage.byKind['column_flow'] = constructCoverage.byKind['column_flow'] ||
+ { detected: 0, resolved: 0, opaque: 0 };
+ cc.detected += cTotal;
+ cc.resolved += cfoR + cfeR;
+ cc.opaque += cfoO + cfeO;
+ constructCoverage.constructs += cTotal;
+ constructCoverage.resolved += cfoR + cfeR;
+ constructCoverage.opaque += cfoO + cfeO;
+ }
+ if (columnFlow.steps.length || columnFlow.edges.length)
+ try {
+ columnFlowGraph = buildColumnGraph(columnFlow);
+ }
+ catch (err) {
+ columnFlowGraph = null;
+ }
+ }
return { dialect: dialect, detected: det, confidence: confidence,
confidenceFormulaVersion: confidenceFormulaVersion,
confidenceSignals: confidenceSignals,
@@ -2227,6 +2283,7 @@ function analyse(sql, opts) {
graph: selected, stats: selected.stats,
mermaid: toMermaid(selected, opts.dir || 'TD'),
attribution: attribution, constructCoverage: constructCoverage,
- columns: columnLineages };
+ columns: columnLineages, columnFlow: columnFlow || undefined,
+ columnFlowGraph: columnFlowGraph || undefined };
}
//# sourceMappingURL=ir.js.map
\ No newline at end of file
diff --git a/dist/src/ir.js.map b/dist/src/ir.js.map
index 1e813c2..d5a4daa 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/tests/column-flow.js b/dist/tests/column-flow.js
new file mode 100644
index 0000000..8832ad1
--- /dev/null
+++ b/dist/tests/column-flow.js
@@ -0,0 +1,469 @@
+"use strict";
+/* proc>flow v1.11.0 — column lineage pipelines.
+ Fixtures assert, end to end, that `SELECT col INTO #t` flows through
+ transformations (UPDATE / INSERT … SELECT / CREATE TABLE) to later outputs
+ with the column origin traced to its source object; that ambiguous reaching
+ definitions (conditional writes and branch merges) stay opaque with a
+ region-scoped `column_flow_opaque` diagnostic and never invent a binding;
+ that view/CTE boundaries resolve within one script and catalogue-proven
+ object boundaries resolve by catalogue evidence; and that the exported
+ column-flow graph round-trips through Mermaid and draw.io with provenance
+ intact and meets its bounded column layout budgets.
+
+ After this suite runs, PROCFLOW_COLUMNFLOW_PASS and
+ PROCFLOW_COLUMNFLOW_RESULT gate the golden suite (tests/tests.ts) and feed
+ the fixture-corpus metrics (tests/metrics.ts). */
+(function () {
+ var results = [];
+ function record(name, pass, detail) {
+ results.push({ name: name, pass: pass, detail: pass ? '' : detail });
+ }
+ function hasDiag(list, code) {
+ return (list || []).some(function (d) { return d.code === code; });
+ }
+ var PROCFLOW_COLUMNFLOW_FIXTURES = [
+ /* ---- end-to-end through a temporary-table pipeline ---- */
+ {
+ name: 'end-to-end: SELECT col INTO #t through UPDATE to outputs',
+ dialect: 'tsql',
+ sql: 'CREATE PROC dbo.stage AS BEGIN\n' +
+ ' SELECT id, name INTO #stage FROM dbo.student;\n' +
+ ' UPDATE #stage SET id = id + 1;\n' +
+ ' SELECT id + 1 AS y FROM #stage;\n' +
+ 'END',
+ expect: {
+ objectColumns: [
+ { object: '#stage', columns: [
+ { name: 'id', resolution: 'exact', source: 'dbo.student', sourceColumn: 'id' },
+ { name: 'name', resolution: 'exact', source: 'dbo.student', sourceColumn: 'name' }
+ ] }
+ ],
+ edges: [
+ { from: 's1', to: 's2', object: '#stage', resolution: 'exact', columns: ['id'] },
+ { from: 's2', to: 's3', object: '#stage', resolution: 'exact', columns: ['id'] }
+ ],
+ noDiags: true,
+ layout: { nodeLimit: 8, crossingBudget: 0 }
+ }
+ },
+ {
+ name: 'end-to-end: two-hop temp chain flattens to the source',
+ dialect: 'tsql',
+ sql: 'CREATE PROC dbo.chain AS BEGIN\n' +
+ ' SELECT a, b INTO #t1 FROM dbo.src1;\n' +
+ ' SELECT a AS x INTO #t2 FROM #t1;\n' +
+ ' SELECT x FROM #t2;\n' +
+ 'END',
+ expect: {
+ objectColumns: [
+ { object: '#t2', columns: [
+ { name: 'x', resolution: 'exact', source: 'dbo.src1', sourceColumn: 'a' }
+ ] }
+ ],
+ edges: [
+ { from: 's1', to: 's2', object: '#t1', resolution: 'exact', columns: ['a'] },
+ { from: 's2', to: 's3', object: '#t2', resolution: 'exact', columns: ['x'] }
+ ],
+ noDiags: true
+ }
+ },
+ {
+ name: 'end-to-end: CREATE TABLE schema then INSERT … SELECT defines columns',
+ dialect: 'tsql',
+ sql: 'CREATE PROC dbo.schemad AS BEGIN\n' +
+ ' CREATE TABLE #t (a int, b varchar(20));\n' +
+ ' INSERT INTO #t SELECT x, y FROM dbo.src2;\n' +
+ ' SELECT a FROM #t;\n' +
+ 'END',
+ expect: {
+ objectColumns: [
+ { object: '#t', columns: [
+ { name: 'a', resolution: 'exact', source: 'dbo.src2', sourceColumn: 'x' },
+ { name: 'b', resolution: 'exact', source: 'dbo.src2', sourceColumn: 'y' }
+ ] }
+ ],
+ edges: [
+ { from: 's2', to: 's3', object: '#t', resolution: 'exact', columns: ['a'] }
+ ],
+ noDiags: true
+ }
+ },
+ {
+ name: 'end-to-end: INSERT … SELECT into a temp with an explicit column list',
+ dialect: 'tsql',
+ sql: 'CREATE PROC dbo.explicit AS BEGIN\n' +
+ ' SELECT v INTO #tmp FROM dbo.src3;\n' +
+ ' INSERT INTO #tmp (k) SELECT wide FROM dbo.src4;\n' +
+ ' SELECT k FROM #tmp;\n' +
+ 'END',
+ expect: {
+ objectColumns: [
+ { object: '#tmp', columns: [
+ { name: 'k', resolution: 'exact', source: 'dbo.src4', sourceColumn: 'wide' }
+ ] }
+ ],
+ noDiags: true
+ }
+ },
+ {
+ name: 'end-to-end: WITH CTE feeds a temp (CTE boundary origin)',
+ dialect: 'tsql',
+ sql: 'CREATE PROC dbo.cteflow AS BEGIN\n' +
+ ' WITH c AS (SELECT id, name FROM dbo.student)\n' +
+ ' SELECT id INTO #t FROM c;\n' +
+ ' SELECT id FROM #t;\n' +
+ 'END',
+ expect: {
+ objectColumns: [
+ { object: '#t', columns: [
+ { name: 'id', resolution: 'exact', source: 'c', sourceColumn: 'id' }
+ ] }
+ ],
+ edges: [
+ { from: 's1', to: 's2', object: '#t', resolution: 'exact', columns: ['id'] }
+ ],
+ noDiags: true
+ }
+ },
+ /* ---- ambiguous reaching definitions stay opaque ---- */
+ {
+ name: 'ambiguous: IF/ELSE both produce #t → consumer stays opaque',
+ dialect: 'tsql',
+ sql: 'CREATE PROC dbo.branch AS BEGIN\n' +
+ ' IF @x = 1 SELECT id INTO #t FROM dbo.a;\n' +
+ ' ELSE SELECT id, name INTO #t FROM dbo.b;\n' +
+ ' SELECT id FROM #t;\n' +
+ 'END',
+ expect: {
+ objectCount: 1,
+ edges: [{ from: 's2', to: 's3', object: '#t', resolution: 'opaque', columns: ['id'] }],
+ diags: ['column_flow_opaque'],
+ layout: { nodeLimit: 8, crossingBudget: 0 }
+ }
+ },
+ {
+ name: 'ambiguous: temp written only inside a conditional reads opaque',
+ dialect: 'tsql',
+ sql: 'CREATE PROC dbo.onebranch AS BEGIN\n' +
+ ' IF @x = 1 SELECT id INTO #t FROM dbo.a;\n' +
+ ' SELECT id FROM #t;\n' +
+ 'END',
+ expect: {
+ diags: ['column_flow_opaque'],
+ noEdgesExact: true
+ }
+ },
+ {
+ name: 'ambiguous: temp written inside a loop reads opaque',
+ dialect: 'tsql',
+ sql: 'CREATE PROC dbo.loopwrite AS BEGIN\n' +
+ ' WHILE @i < 10\n' +
+ ' SELECT id INTO #t FROM dbo.a;\n' +
+ ' SELECT id FROM #t;\n' +
+ 'END',
+ expect: {
+ diags: ['column_flow_opaque'],
+ noEdgesExact: true
+ }
+ },
+ {
+ name: 'reaching definition: a later sequential producer is not multi',
+ dialect: 'tsql',
+ sql: 'CREATE PROC dbo.sequential AS BEGIN\n' +
+ ' IF @x = 1 SELECT id INTO #t FROM dbo.a;\n' +
+ ' SELECT id, name INTO #t FROM dbo.b;\n' +
+ ' SELECT id FROM #t;\n' +
+ 'END',
+ expect: {
+ objectColumns: [
+ { object: '#t', columns: [
+ { name: 'id', resolution: 'exact', source: 'dbo.b', sourceColumn: 'id' }
+ ] }
+ ],
+ noDiags: true
+ }
+ },
+ /* ---- object boundaries ---- */
+ {
+ name: 'view boundary: same-script view columns resolve by definition',
+ dialect: 'tsql',
+ estate: true,
+ files: [{ name: 'x.sql', text: 'CREATE VIEW dbo.v_students AS SELECT id, name FROM dbo.student;\n' +
+ 'GO\n' +
+ 'CREATE PROC dbo.use_v AS BEGIN\n SELECT id FROM dbo.v_students;\nEND' }],
+ expect: {
+ objectColumns: [
+ { object: 'dbo.v_students', columns: [
+ { name: 'id', resolution: 'exact', source: 'dbo.student', sourceColumn: 'id' },
+ { name: 'name', resolution: 'exact', source: 'dbo.student', sourceColumn: 'name' }
+ ] }
+ ],
+ noDiags: true
+ }
+ },
+ {
+ name: 'catalogue boundary: catalogue-proven external columns resolve exactly',
+ dialect: 'tsql',
+ catalogue: 'dbo.student TABLE\nCOL dbo.student.id\nCOL dbo.student.name\nCOL dbo.student.grade',
+ sql: 'CREATE PROC dbo.cat AS BEGIN\n SELECT grade FROM dbo.student;\nEND',
+ expect: {
+ objectColumns: [
+ { object: 'dbo.student', columns: [
+ { name: 'grade', resolution: 'exact', source: 'dbo.student', sourceColumn: 'grade' }
+ ] }
+ ],
+ noDiags: true
+ }
+ },
+ /* ---- clean invariants ---- */
+ {
+ name: 'clean: a plain table read emits no column-flow diagnostics',
+ dialect: 'tsql',
+ sql: 'CREATE PROC dbo.plain AS BEGIN\n SELECT id FROM dbo.student;\nEND',
+ expect: {
+ edgeCount: 0,
+ noDiags: true,
+ graphNodes: 1
+ }
+ },
+ {
+ name: 'clean: dynamic SQL stays opaque without inventing an object',
+ dialect: 'tsql',
+ sql: 'CREATE PROC dbo.dyn AS BEGIN\n EXEC(\'SELECT 1\');\n SELECT 1;\nEND',
+ expect: {
+ stepCount: 2,
+ edgeCount: 0,
+ noDiags: true
+ }
+ }
+ ];
+ function runCF(f) {
+ var cat = null;
+ if (f.catalogue)
+ cat = parseCatalogue(f.catalogue).catalogue;
+ if (f.estate && f.files) {
+ var est = analyseEstate(f.files, { dialect: f.dialect, mode: 'flow', group: false,
+ sources: true, catalogue: cat });
+ var proc = est.objects.filter(function (o) { return o.kind === 'PROCEDURE'; })[0]
+ || est.objects[est.objects.length - 1];
+ return { cf: proc && proc.result && proc.result.columnFlow || null, diags: est.diagnostics || [] };
+ }
+ var r = analyse(f.sql || '', { dialect: f.dialect, mode: 'flow', group: false,
+ sources: true, catalogue: cat });
+ return { cf: r.columnFlow || null, diags: r.diagnostics || [] };
+ }
+ var layoutPassed = 0, layoutTotal = 0;
+ PROCFLOW_COLUMNFLOW_FIXTURES.forEach(function (f) {
+ try {
+ var got = runCF(f);
+ var cf = got.cf;
+ var ok = !!cf;
+ var detail = {};
+ if (!cf) {
+ record(f.name + ' · column flow', false, 'column flow was not produced');
+ return;
+ }
+ var e = f.expect;
+ if (e.stepCount !== undefined) {
+ detail.stepCount = cf.steps.length;
+ ok = ok && cf.steps.length === e.stepCount;
+ }
+ if (e.objectCount !== undefined) {
+ detail.objectCount = Object.keys(cf.objects).length;
+ ok = ok && Object.keys(cf.objects).length === e.objectCount;
+ }
+ (e.objectColumns || []).forEach(function (exp) {
+ var O = cf.objects[String(exp.object).toUpperCase()];
+ var missing = !O;
+ var colOk = true, colDetail = {};
+ exp.columns.forEach(function (c) {
+ var def = null;
+ (O && O.columns || []).forEach(function (x) { if (x.name === c.name)
+ def = x; });
+ var dOk = !!def &&
+ (c.resolution === undefined || def.resolution === c.resolution) &&
+ (c.source === undefined || def.source === c.source) &&
+ (c.sourceColumn === undefined || def.sourceColumn === c.sourceColumn);
+ colOk = colOk && dOk;
+ colDetail[c.name] = def && { res: def.resolution, src: def.source, sc: def.sourceColumn };
+ });
+ ok = ok && !missing && colOk;
+ detail['object:' + exp.object] = { found: !missing, cols: colDetail };
+ });
+ if (e.edgeCount !== undefined)
+ ok = ok && cf.edges.length === e.edgeCount;
+ var hasExactEdge = false;
+ (e.edges || []).forEach(function (exp) {
+ var hit = cf.edges.some(function (ed) {
+ return ed.fromStep === exp.from && ed.toStep === exp.to && ed.object === exp.object &&
+ (exp.resolution === undefined || ed.resolution === exp.resolution) &&
+ (exp.columns === undefined || exp.columns.every(function (cn) {
+ return ed.columns.some(function (c) { return c.name === cn; });
+ }));
+ });
+ if (exp.resolution === 'exact' && hit)
+ hasExactEdge = true;
+ ok = ok && hit;
+ });
+ if (e.noEdgesExact) {
+ var anyExact = cf.edges.some(function (ed) { return ed.resolution === 'exact'; });
+ ok = ok && !anyExact;
+ }
+ if (e.diags) {
+ (e.diags || []).forEach(function (code) { ok = ok && hasDiag(got.diags, code); });
+ }
+ if (e.noDiags) {
+ var cfdiags = got.diags.filter(function (d) { return d.code === 'column_flow_opaque'; });
+ ok = ok && cfdiags.length === 0;
+ detail.cfDiags = cfdiags;
+ }
+ var spanOk = (got.diags || []).every(function (d) {
+ if (d.code !== 'column_flow_opaque')
+ return true;
+ return d.scope === 'region' && !!d.span && d.span.start >= 0 && d.span.end > d.span.start &&
+ d.span.end <= (f.sql || f.files && f.files[0].text || '').length;
+ });
+ ok = ok && spanOk;
+ /* ---- exported column graph ---- */
+ var graph = buildColumnGraph(cf);
+ if (e.graphNodes !== undefined)
+ ok = ok && graph.nodes.length === e.graphNodes;
+ if (e.graphEdges !== undefined)
+ ok = ok && graph.edges.length === e.graphEdges;
+ if (e.dataEdges !== undefined) {
+ ok = ok && graph.edges.filter(function (x) { return x.kind === 'data'; }).length === e.dataEdges;
+ }
+ /* column graph exports with provenance metadata and data-edge routing */
+ var expected = exportManifest(graph);
+ var expectedNode = {};
+ expected.nodes.forEach(function (n) { expectedNode[n.id] = n; });
+ var mm = mermaidManifest(toMermaid(graph, 'TD'));
+ var dm = drawioManifest(toDrawio(graph, { title: f.name, dir: 'TD' }));
+ var nodeOk = mm.nodes.length === expected.nodes.length &&
+ mm.nodes.every(function (n) {
+ var exp = expectedNode[n.id];
+ return !!exp && exp.text === n.text && exp.cls === n.cls;
+ });
+ var drawNodeOk = dm.nodes.length === expected.nodes.length &&
+ dm.nodes.every(function (n) {
+ var exp = expectedNode[n.id];
+ return !!exp && exp.text === n.text && clsAreEqual(n.cls, exp.cls);
+ });
+ var edgeSig = function (x) { return x.from + '|' + x.to + '|' + x.label + '|' + x.meaning; };
+ var mmSigns = {};
+ mm.edges.forEach(function (x) { mmSigns[edgeSig(x)] = 1; });
+ var expEdges = expected.edges.map(edgeSig);
+ var expSigns = {};
+ expEdges.forEach(function (s) { expSigns[s] = 1; });
+ var edgeOk = mm.edges.length === expected.edges.length &&
+ expEdges.every(function (s) { return !!mmSigns[s]; }) &&
+ mm.edges.every(function (x) { return !!expSigns[edgeSig(x)]; });
+ var dmSigns = {};
+ dm.edges.forEach(function (x) { dmSigns[edgeSig(x)] = 1; });
+ var drawEdgeOk = dm.edges.length === expected.edges.length &&
+ expEdges.every(function (s) { return !!dmSigns[s]; }) &&
+ dm.edges.every(function (x) { return !!expSigns[edgeSig(x)]; });
+ var dmNode = {};
+ dm.nodes.forEach(function (n) { dmNode[n.id] = n; });
+ var metaOk = true;
+ graph.nodes.forEach(function (n) {
+ var back = dmNode[n.id];
+ if (!back)
+ return;
+ if (n.provenance)
+ metaOk = metaOk && back.meta.indexOf('provenance=' + n.provenance) >= 0;
+ if (n.source)
+ metaOk = metaOk && back.meta.indexOf('span=' + n.source.start + '-' + n.source.end) >= 0;
+ if (n.reason)
+ metaOk = metaOk && back.meta.indexOf('reason=' + n.reason) >= 0;
+ });
+ var dataEdges = graph.edges.filter(function (x) { return x.kind === 'data' && x.style !== 'dotted'; });
+ var routedOk = dataEdges.every(function (x) {
+ return dm.edges.some(function (de) {
+ return de.from === x.from && de.to === x.to && de.waypoints.length >= 2;
+ });
+ });
+ var exportOk = nodeOk && drawNodeOk && edgeOk && drawEdgeOk && metaOk && routedOk && !dm.parsererror;
+ ok = ok && exportOk;
+ detail.export = { nodeOk: nodeOk, drawNodeOk: drawNodeOk, edgeOk: edgeOk,
+ drawEdgeOk: drawEdgeOk, metaOk: metaOk, routedOk: routedOk, parsererror: dm.parsererror };
+ record(f.name + ' · column flow', ok, JSON.stringify(detail));
+ /* ---- layout: named column class meets its documented budget ---- */
+ if (e.layout) {
+ layoutTotal++;
+ var L = layoutAnalysis(graph, 'TD');
+ var L2 = layoutAnalysis(graph, 'TD');
+ var deterministic = JSON.stringify(L.positions) === JSON.stringify(L2.positions);
+ var finite = Object.keys(L.positions).every(function (id) {
+ var p = L.positions[id];
+ return isFinite(p.x) && isFinite(p.y) && p.w > 0 && p.h > 0 && p.x >= 0 && p.y >= 0;
+ });
+ var monotonic = L.monotonicEdges + L.backEdges.length === L.backboneEdges;
+ var layOk = deterministic && finite && L.overlaps === 0 && monotonic &&
+ graph.nodes.length <= e.layout.nodeLimit && L.crossings <= e.layout.crossingBudget;
+ if (layOk)
+ layoutPassed++;
+ else {
+ results.push({ name: f.name + ' · column layout', pass: false,
+ detail: JSON.stringify({ deterministic: deterministic, finite: finite,
+ overlaps: L.overlaps, monotonic: monotonic, crossings: L.crossings,
+ nodes: graph.nodes.length, budget: e.layout }) });
+ }
+ }
+ }
+ catch (err) {
+ record(f.name + ' · column flow', false, String(err && err.stack || err));
+ }
+ });
+ /* ---- integration: analyse() attaches the column-flow model and graph ---- */
+ try {
+ var ir = analyse('CREATE PROC dbo.pipeline AS BEGIN\n' +
+ ' SELECT id INTO #t FROM dbo.student;\n' +
+ ' SELECT id FROM #t;\nEND', { dialect: 'tsql', mode: 'flow', group: false, sources: true });
+ var integrated = !!ir.columnFlow && !!ir.columnFlowGraph &&
+ ir.columnFlow.steps.length === 2 && ir.columnFlowGraph.nodes.length >= 3 &&
+ ir.constructCoverage.byKind['column_flow'] &&
+ ir.constructCoverage.byKind['column_flow'].detected > 0;
+ record('v1.11.0 analyse() attaches columnFlow, graph, and coverage', integrated);
+ }
+ catch (err) {
+ record('v1.11.0 analyse() attaches columnFlow, graph, and coverage', false, String(err && err.stack || err));
+ }
+ /* ---- E: a clean pipeline keeps informational annotation count flat ---- */
+ try {
+ var clean = analyse('CREATE PROC dbo.clean AS BEGIN\n' +
+ ' WITH r(n) AS (SELECT 1 UNION ALL SELECT n + 1 FROM r WHERE n < 10)\n' +
+ ' SELECT n INTO #n FROM r;\n' +
+ ' SELECT n FROM #n;\n' +
+ 'END', { dialect: 'tsql', mode: 'flow', group: false, sources: true });
+ var cleanOk = !clean.diagnostics.some(function (d) {
+ return d.code === 'column_flow_opaque';
+ }) && (clean.columns || []).length >= 1 && !!clean.columnFlow;
+ record('v1.11.0 clean temp pipeline carries no column-flow diagnostics', cleanOk, JSON.stringify({
+ diags: clean.diagnostics.map(function (d) { return d.code; }),
+ flows: clean.columnFlow && clean.columnFlow.stats
+ }));
+ }
+ catch (err) {
+ record('v1.11.0 clean temp pipeline carries no column-flow diagnostics', false, String(err && err.stack || err));
+ }
+ var passed = results.filter(function (r) { return r.pass; }).length;
+ window.PROCFLOW_COLUMNFLOW_RESULT = { passed: passed, total: results.length,
+ layoutPassed: layoutPassed, layoutTotal: layoutTotal };
+ window.PROCFLOW_COLUMNFLOW_PASS = passed === results.length;
+ window.PROCFLOW_COLUMNFLOW_DETAIL = results;
+ var out = document.getElementById('columnflow-results');
+ if (out)
+ out.textContent = JSON.stringify({
+ flows: passed + '/' + results.length,
+ layout: layoutPassed + '/' + layoutTotal,
+ failures: results.filter(function (r) { return !r.pass; }).map(function (r) {
+ return { name: r.name, detail: r.detail };
+ })
+ }, null, 2);
+ var sum = document.getElementById('columnflow-summary');
+ if (sum)
+ sum.textContent = 'v1.11.0 columns · flow ' + (passed + '/' + results.length) +
+ ' · layout ' + (layoutPassed + '/' + layoutTotal);
+})();
+//# sourceMappingURL=column-flow.js.map
\ No newline at end of file
diff --git a/dist/tests/column-flow.js.map b/dist/tests/column-flow.js.map
new file mode 100644
index 0000000..ea7b5a7
--- /dev/null
+++ b/dist/tests/column-flow.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"column-flow.js","sourceRoot":"","sources":["../../tests/column-flow.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/tests/metrics.js b/dist/tests/metrics.js
index a189696..49a8b8d 100644
--- a/dist/tests/metrics.js
+++ b/dist/tests/metrics.js
@@ -95,7 +95,11 @@
catalogue: window.PROCFLOW_CATALOGUE_RESULT
? window.PROCFLOW_CATALOGUE_RESULT.total : 0,
columns: window.PROCFLOW_COLUMN_RESULT
- ? window.PROCFLOW_COLUMN_RESULT.total : 0
+ ? window.PROCFLOW_COLUMN_RESULT.total : 0,
+ columnFlow: window.PROCFLOW_COLUMNFLOW_RESULT
+ ? window.PROCFLOW_COLUMNFLOW_RESULT.total : 0,
+ columnLayout: window.PROCFLOW_COLUMNFLOW_RESULT
+ ? window.PROCFLOW_COLUMNFLOW_RESULT.layoutTotal : 0
},
attributionRate: rate(attributedAll, totalTokens),
unresolvedTokenRate: rate(unresolvedTokens, totalTokens),
@@ -138,6 +142,16 @@
columnPassRate: window.PROCFLOW_COLUMN_RESULT
? rate(window.PROCFLOW_COLUMN_RESULT.passed, window.PROCFLOW_COLUMN_RESULT.total)
: 0,
+ /* v1.11.0 column lineage pipelines: end-to-end column-flow fixtures trace
+ `SELECT col INTO #t` through transformations to outputs, ambiguous
+ reaching definitions stay opaque, and the exported column graph
+ round-trips with provenance and meets its bounded layout budgets. */
+ columnFlowPassRate: window.PROCFLOW_COLUMNFLOW_RESULT
+ ? rate(window.PROCFLOW_COLUMNFLOW_RESULT.passed, window.PROCFLOW_COLUMNFLOW_RESULT.total)
+ : 0,
+ columnLayoutPassRate: window.PROCFLOW_COLUMNFLOW_RESULT
+ ? rate(window.PROCFLOW_COLUMNFLOW_RESULT.layoutPassed, window.PROCFLOW_COLUMNFLOW_RESULT.layoutTotal)
+ : 1,
aggregate: {
totalTokens: totalTokens,
accountedTokens: attributedAll,
diff --git a/dist/tests/metrics.js.map b/dist/tests/metrics.js.map
index b2bc4a2..456cede 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":"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"}
\ No newline at end of file
+{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../tests/metrics.ts"],"names":[],"mappings":";AAAA;;;;;;;;;kDASkD;AAClD,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;YAC3C,SAAS,EAAC,MAAM,CAAC,yBAAyB;gBACxC,CAAC,CAAA,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAAA,CAAC,CAAA,CAAC;YAC3C,OAAO,EAAC,MAAM,CAAC,sBAAsB;gBACnC,CAAC,CAAA,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAA,CAAC,CAAA,CAAC;YACxC,UAAU,EAAC,MAAM,CAAC,0BAA0B;gBAC1C,CAAC,CAAA,MAAM,CAAC,0BAA0B,CAAC,KAAK,CAAA,CAAC,CAAA,CAAC;YAC5C,YAAY,EAAC,MAAM,CAAC,0BAA0B;gBAC5C,CAAC,CAAA,MAAM,CAAC,0BAA0B,CAAC,WAAW,CAAA,CAAC,CAAA,CAAC;SACnD;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;;;iFAGyE;QACzE,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;;;wCAGgC;QAChC,cAAc,EAAC,MAAM,CAAC,sBAAsB;YAC1C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC;YAChF,CAAC,CAAC,CAAC;QACL;;;+EAGuE;QACvE,kBAAkB,EAAC,MAAM,CAAC,0BAA0B;YAClD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,MAAM,EAAC,MAAM,CAAC,0BAA0B,CAAC,KAAK,CAAC;YACxF,CAAC,CAAC,CAAC;QACL,oBAAoB,EAAC,MAAM,CAAC,0BAA0B;YACpD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,YAAY,EAC9C,MAAM,CAAC,0BAA0B,CAAC,WAAW,CAAC;YACrD,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
diff --git a/dist/tests/parity.js b/dist/tests/parity.js
index b4cb57f..9aa28e3 100644
--- a/dist/tests/parity.js
+++ b/dist/tests/parity.js
@@ -293,6 +293,11 @@ var PROCFLOW_LAYOUT_CLASSES = [
{ cls: 'query', nodeLimit: 18, crossingBudget: 1, large: false },
{ cls: 'data', nodeLimit: 20, crossingBudget: 0, large: false },
{ cls: 'dependencies', nodeLimit: 14, crossingBudget: 1, large: false },
+ /* v1.11.0 column-flow export graph class. The column graph is a step spine in
+ statement order with column-carrying object nodes routed as data lanes; at
+ the documented sizes it stays overlap-free, monotonically ranked, and
+ crossing-free. Enforced by tests/column-flow.ts with per-fixture budgets. */
+ { cls: 'column', nodeLimit: 28, crossingBudget: 0, large: false },
{ cls: 'nonplanar', nodeLimit: 80, crossingBudget: 30, large: true }
];
/* ---------- export-parity runner ---------- */
diff --git a/dist/tests/parity.js.map b/dist/tests/parity.js.map
index 2b1e147..564c489 100644
--- a/dist/tests/parity.js.map
+++ b/dist/tests/parity.js.map
@@ -1 +1 @@
-{"version":3,"file":"parity.js","sourceRoot":"","sources":["../../tests/parity.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"parity.js","sourceRoot":"","sources":["../../tests/parity.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 e27d10a..8ba1fdf 100644
--- a/dist/tests/tests.js
+++ b/dist/tests/tests.js
@@ -818,6 +818,21 @@
catch (err) {
record('v1.10.0 column scopes, bindings, wildcards, and diagnostics fixtures', false, String(err && err.stack || err));
}
+ /* v1.11.0: column lineage pipelines — end-to-end column-flow edges through
+ temp tables, transformations, views, CTEs, and catalogue-resolved object
+ boundaries; ambiguous reaching definitions stay opaque; the exported
+ column-flow graph round-trips with provenance and meets its bounded column
+ layout budgets. Runs ahead in tests/column-flow.ts; gate the whole golden
+ page on them. */
+ try {
+ record('v1.11.0 column-flow pipelines, exports, and column layout fixtures', window.PROCFLOW_COLUMNFLOW_PASS === true &&
+ !!window.PROCFLOW_COLUMNFLOW_RESULT &&
+ window.PROCFLOW_COLUMNFLOW_RESULT.passed === window.PROCFLOW_COLUMNFLOW_RESULT.total &&
+ window.PROCFLOW_COLUMNFLOW_RESULT.layoutPassed === window.PROCFLOW_COLUMNFLOW_RESULT.layoutTotal, window.PROCFLOW_COLUMNFLOW_RESULT);
+ }
+ catch (err) {
+ record('v1.11.0 column-flow pipelines, exports, and column layout 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 555c766..1fe9e2f 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/docs/PR_NOTE_1.11.0.md b/docs/PR_NOTE_1.11.0.md
new file mode 100644
index 0000000..6f367d5
--- /dev/null
+++ b/docs/PR_NOTE_1.11.0.md
@@ -0,0 +1,119 @@
+# PR: v1.11.0 — Column lineage pipelines
+
+## Summary
+
+Implements the **v1.11.0 — Column lineage pipelines** milestone from
+`ROADMAP.md` in full and nothing from v1.12.0 onwards: **column-flow edges
+through CTEs, views, temporary tables, transformations, and
+catalogue-resolved object boundaries** (README roadmap item 6 delivered);
+**F column metadata and column-flow export styles**; **E
+column-resolution signals**; and the layout engine's **documented column
+graph class**. The golden suite grows from 209 to 210; fuzz (400) and UI (22)
+stay green; 15 column-flow fixtures assert end-to-end traces and opaque
+ambiguity, plus 2 column layout-budget fixtures. RDL / report import (v1.12.0)
+remains deferred.
+
+## What's included
+
+### Column-flow module (`src/columnflow.ts`)
+
+A new runtime module (loaded after `columns.js`, before `exporters.js`) that
+walks an object's statements in source order and tracks the column-level
+reaching definition of each column-carrying object:
+
+- **Reaching definitions across statements.** `SELECT … INTO` (v1.10.0
+ fixtures already bound the projection), `INSERT … SELECT` (including explicit
+ column lists and positional mapping onto a `CREATE TABLE` schema), `CREATE
+ TABLE` DDL column lists, and `UPDATE … SET` transformations each define or
+ refine an object's columns. Sequential writes replace the reaching
+ definition (most-recent-writer wins, mirroring the v1.5.0 flow graph);
+ conditional writes inside a branch/loop/handler mark the object `multi` at
+ merge time.
+- **End-to-end traces.** Every produced column carries its ultimate origin
+ object and column (flattened through temp chains, e.g. `SELECT … INTO #b
+ FROM #a` reports the original source, not `#a`), as `{source, sourceColumn,
+ sourceSpan, resolution}`.
+- **Consumers stay conservative.** A consumer binds back through an object's
+ known columns; an ambiguous reaching definition (`multi`) or a column the
+ object's definition does not produce stays explicitly opaque with a
+ region-scoped, span-attached `column_flow_opaque` diagnostic — no binding is
+ ever invented. A T-SQL `SELECT col = expr` alias target is no longer mistaken
+ for a source-column reference.
+- **Object boundaries.** Views defined earlier in the same script (seeded
+ through `analyseEstate` → `opts.define`) and catalogue-proven external
+ objects resolve column identity by definition; CTE scopes act as provable
+ origins. `analyseColumns` trims trailing semicolons and a depth-0 `GO` batch
+ separator at its entry point so raw view bodies analyse cleanly.
+- **Export graph** (`buildColumnGraph`): a plain `Graph` on its own documented
+ `column` layout class — a step spine in statement order plus column-carrying
+ object nodes routed as data lanes — that `toMermaid`/`toDrawio` render with
+ the new `colstep`/`colobj` canonical styles and full provenance metadata.
+
+### Analysis integration (`src/ir.ts`)
+
+`analyse()` computes `result.columnFlow` (the `ColumnFlow` model) and
+`result.columnFlowGraph`, merges the region-scoped `column_flow_opaque`
+diagnostics into the findings panel, and feeds a `column_flow` construct into
+the existing construct-coverage surface (E signals with no new UI).
+`analyseEstate()` threads same-script object definitions into later objects so
+view boundaries resolve by definition. Confidence, coverage, exports, and all
+pre-existing fixtures are untouched: clean pipelines produce no new
+diagnostics.
+
+### Types, styles, layout
+
+- `src/types.d.ts` — `ColumnFlowOutput`, `ColumnFlowObject`, `ColumnFlowStep`,
+ `ColumnFlowConsume`, `ColumnFlowEdge`, `ColumnFlow`, `AnalysisResult.columnFlow`
+ / `columnFlowGraph`, `AnalyseOptions.define`, `PROCFLOW_COLUMNFLOW_*` globals.
+- `src/exporters.ts` — canonical `colstep` and `colobj` node styles shared by
+ both exporters (the distinct data-flow edge style already derives from the
+ `data` edge kind).
+- `tests/parity.ts` — the `column` layout class is documented in
+ `PROCFLOW_LAYOUT_CLASSES` (node limit 28, crossing budget 0); enforcement
+ lives in the new suite.
+
+## Fixtures and tests
+
+- `tests/column-flow.ts` (+ `tests/index.html`, `tests/metrics.html`,
+ `column-flow.js`, and `src/columnflow.js` wiring) — 15 fixture-corpus
+ records plus 2 integration records, and 2 column layout-budget records:
+ end-to-end temp pipelines (`SELECT … INTO`, `UPDATE`, `INSERT … SELECT`
+ with a `CREATE TABLE` schema and an explicit column list, CTE-fed temps),
+ two-hop temp chains that flatten to the source, ambiguous IF/ELSE, branch
+ and loop writes that read opaque, sequential-producer non-multi replacement,
+ same-script view boundaries, catalogue-proven boundaries, clean plain/dynamic
+ invariants, and per-fixture Mermaid/draw.io export parity with provenance
+ round-trip and data-edge routing. Gates the golden page via
+ `PROCFLOW_COLUMNFLOW_PASS` + `PROCFLOW_COLUMNFLOW_RESULT`.
+- `tests/tests.ts` — gates the golden page on the v1.11.0 column-flow suite.
+- `tests/metrics.ts` → `docs/metrics-v1.11.0.json` — adds
+ `columnFlowPassRate`, `columnLayoutPassRate`, and the `columnFlow` (15) /
+ `columnLayout` (2) corpus counts; the v1.10.0 snapshot is renamed to
+ v1.11.0 (old snapshot removed). All pre-existing corpus aggregates are
+ byte-identical to v1.10.0.
+- `examples/dbo.v1110_demo.sql` — a view + three procedures demonstrating
+ end-to-end temp pipelines, ambiguous branch reaching definitions, and
+ same-script view boundary resolution (with a catalogue to paste).
+
+## Verification
+
+- `npm run typecheck` — passes
+- `npm run build` — passes
+- `npm run test:file` — passes (with `CHROME_PATH` set)
+- Golden suite — 210/210 (was 209)
+- Fuzz suite — 400 deterministic mutation cases
+- UI suite — 22/22 (construct coverage now also shows the `column_flow` row)
+- `npm run metrics` — snapshot is current; `docs/metrics-v1.11.0.json`
+ committed (v1.10.0 snapshot renamed), 100 % column-flow pass rate
+- Local-only check clean; `dist/` committed in sync (adds `dist/src/columnflow.js`
+ and `dist/tests/column-flow.js`)
+
+## Not changed / deferred (per roadmap)
+
+- Everything from v1.12.0 onwards — RDL/report import, report → dataset →
+ object → column views, and report export — is out of scope. Interactive
+ column views remain scheduled for v1.13.0.
+- Existing v1.1.0–v1.10.0 semantics are untouched; the corpus aggregates in
+ `docs/metrics-v1.11.0.json` are byte-identical to v1.10.0 for every
+ pre-existing metric, confirming no parser regression, and the full golden
+ suite stays green.
diff --git a/docs/RELEASE_NOTE_v1.11.0.md b/docs/RELEASE_NOTE_v1.11.0.md
new file mode 100644
index 0000000..9449c07
--- /dev/null
+++ b/docs/RELEASE_NOTE_v1.11.0.md
@@ -0,0 +1,99 @@
+# proc>flow v1.11.0 — Column lineage pipelines
+
+**Release date:** 2026-08-10
+
+ProcFlow v1.11.0 turns single-statement column tracing into **column-flow
+pipelines**: columns now flow across statements — through temporary tables,
+transformations, views, CTEs, and catalogue-resolved object boundaries — and
+every produced column is traced end-to-end to its original source object. This
+delivers README roadmap item 6 (column-level lineage) in full. When a reaching
+definition cannot be proven, ProcFlow stays conservative: an ambiguous
+conditional write or branch merge keeps its consumer explicitly opaque with a
+region-scoped diagnostic, and no binding is ever invented.
+
+## Highlights
+
+- **End-to-end temp-table pipelines.** `SELECT col INTO #t`, `INSERT … SELECT`
+ (including explicit column lists and positional mapping onto a `CREATE TABLE`
+ schema), and `UPDATE … SET` transformations define an object's columns; a
+ later `SELECT` binds back through them, and each output is traced all the way
+ to its origin — `SELECT … INTO #b FROM #a` reports the original source, not
+ `#a`.
+- **Object boundaries resolve by definition.** A view defined earlier in the
+ same script seeds its columns into later objects, and catalogue-proven
+ external objects resolve their column identity by catalogue evidence, instead
+ of staying external.
+- **Ambiguous reaching definitions stay opaque.** A temp written by an
+ `IF`/`ELSE`, inside a loop, or in a handler marks the object ambiguous
+ (`multi`); its consumers resolve to opaque with a span-attached
+ `column_flow_opaque` diagnostic and no producer→consumer edge is drawn. A
+ later sequential producer becomes the unique reaching definition again.
+- **Column export metadata and styles.** The column-flow graph exports to
+ Mermaid and draw.io with the new `colstep`/`colobj` canonical styles and full
+ provenance metadata; data-flow edges keep their distinct routing lane.
+- **Column layout class.** The column graph has its own documented `column`
+ layout class — a monotonic step spine with object nodes routed as data lanes
+ — meeting its overlap-free, monotonic, and crossing-free fixture budgets.
+- **Column-resolution signals (E).** Column-flow objects and edges feed the
+ existing **Constructs** panel as a `column_flow` row (detected / resolved /
+ opaque), with diagnostics surfaced in **Diagnostics**; no new UI surface, and
+ clean pipelines produce no noise. Interactive column views remain scheduled
+ for v1.13.0.
+
+## Correctness baseline
+
+- TypeScript type-checking and a clean generated build;
+- 210 golden, graph, dependency, exporter, provenance, boundary, diagnostic,
+ confidence, export-parity, layout, workspace, catalogue, and column tests
+ (up from 209);
+- 400 deterministic mutation cases;
+- 22 browser interaction and local-runtime tests;
+- catalogue fixtures 13/13, column-lineage fixtures 18/18, column-flow
+ pipeline fixtures 15/15 + column layout budgets 2/2, 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.11.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, 100 % catalogue pass rate, 100 % column pass rate,
+ and 100 % column-flow pass rate. Every pre-existing corpus aggregate is
+ byte-identical to v1.10.0.
+
+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
+
+- The v1.11.0 analysis is a strict superset: object-level graphs, exports,
+ confidence, coverage, and diagnostics are unchanged for clean queries.
+ Column flow adds cross-statement bindings and findings, never renames or
+ rewires existing nodes and edges.
+- Exported `.drawio` files from earlier releases remain valid. The column-flow
+ graph is exported as its own `column` layout class with provenance metadata.
+- Saved workspaces are unchanged (schema v2 from v1.9.0).
+- The local-only browser security model is unchanged.
+
+## Security and privacy (v1.11.0)
+
+- Column-flow analysis runs entirely in the browser tab on the
+ pasted/imported SQL. Nothing is uploaded, executed, or sent to any API.
+- No new network, storage, or telemetry paths were added; the only runtime that
+ touches browser storage remains the opt-in workspace module.
+
+## Known limitations
+
+- Parsing is heuristic rather than compiler-grade.
+- Dynamic SQL remains opaque.
+- Column flow resolves objects defined earlier in the same script and
+ catalogue-proven external objects; cross-file/workspace object definitions
+ outside the catalogue stay unresolved. Interactive column views in the app
+ remain scheduled for v1.13.0.
+- RDL/report import remains scheduled for v1.12.0.
+
+Verify critical column bindings and dependency conclusions against the original
+SQL and the target database.
+
+See [README.md](../README.md) for usage and development guidance.
diff --git a/docs/metrics-v1.10.0.json b/docs/metrics-v1.11.0.json
similarity index 86%
rename from docs/metrics-v1.10.0.json
rename to docs/metrics-v1.11.0.json
index b1bc5c0..a83fb3a 100644
--- a/docs/metrics-v1.10.0.json
+++ b/docs/metrics-v1.11.0.json
@@ -9,7 +9,9 @@
"layout": 11,
"workspace": 13,
"catalogue": 13,
- "columns": 18
+ "columns": 18,
+ "columnFlow": 15,
+ "columnLayout": 2
},
"attributionRate": 1,
"unresolvedTokenRate": 0.04432,
@@ -25,6 +27,8 @@
"workspacePassRate": 1,
"cataloguePassRate": 1,
"columnPassRate": 1,
+ "columnFlowPassRate": 1,
+ "columnLayoutPassRate": 1,
"aggregate": {
"totalTokens": 2685,
"accountedTokens": 2685,
diff --git a/examples/dbo.v1110_demo.sql b/examples/dbo.v1110_demo.sql
new file mode 100644
index 0000000..871d656
--- /dev/null
+++ b/examples/dbo.v1110_demo.sql
@@ -0,0 +1,115 @@
+/*
+ v1.11.0 demo — column lineage pipelines.
+
+ This script exercises the v1.11.0 territory (ROADMAP v1.11.0) in one
+ script: column-flow edges through temporary tables, transformations,
+ views, CTEs, and catalogue-resolved object boundaries. Every produced
+ column is traced end-to-end to its original source object, and an
+ ambiguous reaching definition (a conditional write or branch merge) stays
+ opaque with a region-scoped column_flow_opaque diagnostic — no binding is
+ ever invented.
+
+ What to observe in the "Constructs" panel: a `column_flow` row reports how
+ many column-carrying objects and column-flow edges were detected,
+ resolved, and left opaque. The column-flow graph exports to Mermaid and
+ draw.io with provenance metadata and is laid out on its own documented
+ `column` graph class.
+
+ 1. dbo.v1110_pipeline — SELECT … INTO #stage from dbo.Student, an UPDATE
+ transformation, then a final SELECT. #stage.id and #stage.name trace
+ all the way back to dbo.Student.id / dbo.Student.name.
+ 2. dbo.v1110_branch — an IF/ELSE where both branches write #t, so the
+ later SELECT FROM #t reads an ambiguous reaching definition and
+ stays opaque. No producer→consumer edge is drawn.
+ 3. dbo.v1110_uses_view — consumes dbo.v1110_student_view, whose columns
+ were defined earlier in this same script, resolving the object
+ boundary by definition instead of staying external.
+
+ The view object that this pipeline consumes is defined below first:
+
+ CREATE VIEW dbo.v1110_student_view AS
+ SELECT StudentId, StudentName FROM dbo.Student;
+
+ To resolve secondary dbo.* objects by catalogue evidence instead, paste
+ this catalogue in the Catalogue menu and Apply, then re-run:
+
+ dbo.Student TABLE student
+ dbo.Course TABLE
+ COL dbo.Student.StudentId
+ COL dbo.Student.StudentName
+ COL dbo.Course.CourseId
+
+ Interactive column views in the app remain scheduled for v1.13.0.
+
+ This demo is an illustration, not an input to the fixture-corpus metrics
+ (docs/metrics-v1.11.0.json). No user input or runtime telemetry is
+ collected.
+*/
+CREATE VIEW dbo.v1110_student_view AS
+SELECT StudentId, StudentName
+FROM dbo.Student;
+
+GO
+
+-- end-to-end: SELECT … INTO #t through an UPDATE transformation to outputs.
+-- #stage.id and #stage.name trace to dbo.Student columns exactly.
+CREATE PROCEDURE dbo.v1110_pipeline
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ SELECT StudentId, StudentName
+ INTO #stage
+ FROM dbo.Student;
+
+ UPDATE #stage
+ SET StudentId = StudentId + 1000;
+
+ SELECT StudentId, StudentName
+ FROM #stage;
+
+ RETURN 0;
+END;
+
+GO
+
+-- ambiguous reaching definition: both branches write #t, so the consumer
+-- after them stays opaque with a column_flow_opaque diagnostic.
+CREATE PROCEDURE dbo.v1110_branch @UseArchive BIT
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ IF @UseArchive = 1
+ SELECT StudentId INTO #t FROM dbo.StudentArchive;
+ ELSE
+ SELECT StudentId, StudentName INTO #t FROM dbo.Student;
+
+ SELECT StudentId FROM #t;
+
+ RETURN 0;
+END;
+
+GO
+
+-- object boundary: the view's columns were defined in this same script, so
+-- the proc resolves dbo.v1110_student_view by definition and traces its
+-- StudentId back to dbo.Student.
+CREATE PROCEDURE dbo.v1110_uses_view
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ SELECT StudentId
+ FROM dbo.v1110_student_view;
+
+ RETURN 0;
+END;
+
+GO
+
+CREATE PROCEDURE dbo.v1110_audit
+AS
+BEGIN
+ SELECT COUNT(*) AS Total FROM dbo.Student;
+END;
diff --git a/index.html b/index.html
index 3f20930..7c0f58f 100644
--- a/index.html
+++ b/index.html
@@ -213,6 +213,7 @@ proc>flow
+
diff --git a/package.json b/package.json
index 8a34898..5a711b1 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "procflow",
- "version": "1.10.0",
+ "version": "1.11.0",
"private": true,
"description": "Local-first SQL control-flow and dependency visualiser",
"scripts": {
diff --git a/scripts/metrics.mjs b/scripts/metrics.mjs
index 8df1fa6..46ba0d0 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.10.0.json");
+const snapshotFile = join(repositoryRoot, "docs", "metrics-v1.11.0.json");
const writeMode = process.argv.includes("--write");
const explicitBrowser = (process.env.CHROME_PATH || "").trim();
diff --git a/src/columnflow.ts b/src/columnflow.ts
new file mode 100644
index 0000000..725fe73
--- /dev/null
+++ b/src/columnflow.ts
@@ -0,0 +1,728 @@
+/* proc>flow: column lineage pipelines (v1.11.0)
+ Column-flow edges through CTEs, views, temporary tables, transformations,
+ and catalogue-resolved object boundaries; the exported column-flow graph with
+ its own documented layout class; column-resolution signals surfaced as
+ construct coverage and region-scoped diagnostics.
+
+ The engine walks an object's statements in source order and tracks the
+ column-level reaching definition of each column-carrying object (temp table,
+ local view, or catalogue-resolved external object). A producer statement
+ (SELECT … INTO, INSERT … SELECT, CREATE TABLE, CREATE VIEW) defines an
+ object's columns and traces each produced column end-to-end to its original
+ source object; a consumer statement binds its outputs back through an
+ object's known columns. The reaching-definition semantics mirror the
+ v1.5.0 flow graph: sequential writes replace the reaching definition, and a
+ conditional write (branch merge / loop body / handler) marks the object
+ ambiguous (`multi`), so its consumers stay opaque without ever inventing an
+ edge (`column_flow_opaque` diagnostics, region-scoped).
+
+ Interactive column views are deferred to v1.13.0; this module produces the
+ model (ColumnFlow), its export graph (buildColumnGraph), and the E signals
+ wired into construct coverage by src/ir.ts. */
+
+interface CFShared {
+ steps: ColumnFlowStep[];
+ edges: ColumnFlowEdge[];
+ diagnostics: Diagnostic[];
+ catalogue: Catalogue | null;
+ dialect?: Dialect;
+ seq: number;
+ opaqueCount: number;
+ defs: Record; /* object key -> defining step id */
+ viewName: string | null; /* headered object is a view (seed its outputs) */
+ viewExtra: Token[] | null; /* the view body tokens, when headered */
+}
+
+interface CFCtxNode {
+ objects: Record;
+ writeLog: string[];
+ seen: CFShared;
+}
+
+function cfCloneObjects(src: Record):
+ Record {
+ var out: Record={};
+ Object.keys(src||{}).forEach(function(k){
+ var o=src[k];
+ out[k]={name:o.name, multi:o.multi, span:o.span||null,
+ columns:(o.columns||[]).map(function(c){
+ return {name:c.name, span:c.span||null, resolution:c.resolution,
+ source:c.source||null, sourceColumn:c.sourceColumn||null,
+ sourceSpan:c.sourceSpan||null, reason:c.reason};
+ })};
+ });
+ return out;
+}
+
+function cfNorm(name: string): string {
+ return String(name||'').toUpperCase();
+}
+
+/* Resolve the reaching-definition object an object name refers to. */
+function cfLookupObject(ctx: CFCtxNode, name: string): ColumnFlowObject | null {
+ var n=cfNorm(name);
+ if(ctx.objects[n]) return ctx.objects[n];
+ /* the name may be a synonym/catalogue canonical for a seeded object */
+ return null;
+}
+
+function cfObjectByRawName(ctx: CFCtxNode, name: string): ColumnFlowObject | null {
+ var direct=cfLookupObject(ctx,name);
+ if(direct) return direct;
+ if(!ctx.seen.catalogue) return null;
+ var res=resolveCatalogue(ctx.seen.catalogue,name);
+ if(res.resolution!=='verified'||!res.resolvedName) return null;
+ return ctx.objects[cfNorm(res.resolvedName)]||null;
+}
+
+function cfFindColumn(cols: ColumnFlowOutput[], col: string): ColumnFlowOutput | null {
+ var cu=cfNorm(col);
+ for(var i=0;i,
+ span: SourceSpan | null): void {
+ var key=cfNorm(O.name);
+ var defStep=ctx.seen.defs[key];
+ var anyOpaque=names.some(function(n){return n.resolution==='opaque';});
+ if(defStep&&defStep!==stepId){
+ ctx.seen.edges.push({fromStep:defStep, toStep:stepId, object:O.name,
+ columns:names.map(function(n){return {name:n.col, resolution:n.resolution,
+ span:n.span||null};}),
+ resolution:anyOpaque?'opaque':'exact'});
+ }
+}
+
+/* Record a step's consumption from a tracked/catalogue object and resolve the
+ common consume resolution. Returns whether every name resolved exactly. */
+function cfConsumeObject(ctx: CFCtxNode, stepId: string, O: ColumnFlowObject,
+ names: Array<{col: string; span: SourceSpan | null}>, span: SourceSpan | null,
+ step: ColumnFlowStep): void {
+ if(!names.length) return;
+ var resolved=names.map(function(n){
+ var tr=cfTraceAgainstObject(O,n.col,n.span,ctx);
+ return {col:n.col, span:n.span||null, resolution:tr.resolution};
+ });
+ var anyOpaque=resolved.some(function(r){return r.resolution!=='exact';});
+ step.consumes.push({object:O.name, names:resolved.map(function(r){return r.col;}),
+ resolution:anyOpaque?'opaque':'exact', span:span});
+ cfRecordConsume(ctx,stepId,O,resolved,span);
+ if(anyOpaque) ctx.seen.opaqueCount++;
+}
+
+/* Group a statement's bindings to one object, dropping bindings to columns the
+ object's known definition does not produce _only when_ other bindings do
+ produce known columns (a T-SQL `col = expr` alias target is such a false
+ candidate). When no binding matches, all are kept so the genuinely unknown
+ reference stays opaque with a region diagnostic and never invents an edge. */
+function cfConsumeGroup(ctx: CFCtxNode, stepId: string, O: ColumnFlowObject,
+ triples: Array<{col: string; span: SourceSpan | null}>, span: SourceSpan | null,
+ step: ColumnFlowStep): void {
+ var hasCols=(O.columns||[]).length>0;
+ var unknown: Array<{col: string; span: SourceSpan | null}>=[];
+ triples.forEach(function(t){
+ if(hasCols&&!cfFindColumn(O.columns,t.col)) unknown.push(t);
+ });
+ var kept=hasCols&&unknown.length&&unknown.length>={};
+ lin.outputs.forEach(function(o){
+ o.bindings.forEach(function(b){
+ var cs=cfSourceByKey(lin,b.source);
+ if(!cs) return;
+ var O=cfObjectByRawName(ctx,cs.name)||cfSeedCatalogueObject(ctx,cs.name);
+ if(!O) return;
+ var key=cfNorm(O.name);
+ consumed[key]=consumed[key]||[];
+ consumed[key].push({col:b.column, span:b.span||null});
+ });
+ });
+ Object.keys(consumed).forEach(function(key){
+ var O=ctx.objects[key];
+ if(O) cfConsumeGroup(ctx,step.id,O,consumed[key],span,step);
+ });
+
+ /* produces: SELECT ... INTO target */
+ facts.writes.forEach(function(writeName){
+ if(!writeName||writeName.charAt(0)==='@') return;
+ var cols=lin.outputs.map(function(o){return cfOutputOrigin(o,lin,ctx);});
+ var res='exact' as ColumnResolution;
+ cols.forEach(function(c){ if(c.resolution!=='exact') res='opaque'; });
+ if(res==='opaque') step.resolution='opaque';
+ step.produces.push({object:writeName, columns:cols, multi:false});
+ cfDefineObject(ctx,step.id,writeName,cols,span);
+ });
+}
+
+function cfInsert(st: StatementNode, step: ColumnFlowStep, ctx: CFCtxNode): void {
+ var toks=st.toks||[], span=spanOfTokens(toks);
+ var facts=statementFacts(toks,false);
+ var target=facts.writes[0];
+ if(!target){ step.resolution='opaque'; step.opaque=true; ctx.seen.opaqueCount++; return; }
+ var selIx=-1, d=0;
+ for(var i=1;i=0) i++;
+ /* skip the write target (possibly qualified) to reach an explicit column list */
+ while(toks[i]&&toks[i].type==='word'){
+ if(toks[i+1]&&toks[i+1].v==='.'&&toks[i+2]&&toks[i+2].type==='word'){ i+=2; continue; }
+ i++; break;
+ }
+ if(toks[i]&&toks[i].v==='('){
+ var out: string[]=[];
+ i++;
+ while(i0, span:span};
+ var reads: Array<{col: string; span: SourceSpan | null}>=[];
+ sets.forEach(function(s){
+ if(!s||!s.col) return;
+ var scan=colScanRefs(s.expr||[], [src], []);
+ var bound=scan.bound.filter(function(b){return b.source;});
+ if(bound.length===1&&bound[0].name){
+ reads.push({col:bound[0].name, span:bound[0].span||null});
+ var origin=cfTraceAgainstObject(O,bound[0].name,bound[0].span||null,ctx);
+ O.columns.forEach(function(c){
+ if(cfNorm(c.name)===cfNorm(s.col!)){
+ c.resolution=origin.resolution;
+ c.source=origin.source; c.sourceColumn=origin.sourceColumn;
+ c.sourceSpan=origin.sourceSpan||c.sourceSpan;
+ }
+ });
+ }
+ });
+ /* read-modify-write: the update consumes its own object first */
+ if(reads.length) cfConsumeGroup(ctx,step.id,O,reads,span,step);
+ step.produces.push({object:O.name, columns:O.columns.slice(), multi:false});
+ cfDefineObject(ctx,step.id,O.name,O.columns.slice(),span);
+}
+
+function cfParseUpdateSets(toks: Token[]):
+ Array<{col: string | null; expr: Token[]} | null> {
+ var d=0, si=-1;
+ for(var i=0;i=[], cur: Token[]=[],
+ col: string | null=null, dd=0;
+ var j=si+1;
+ while(j=0) i+=2;
+ while(toks[i]&&['TEMP','TEMPORARY','MATERIALIZED','UNIQUE','CLUSTERED','LOCAL','GLOBAL'].
+ indexOf(toks[i].u)>=0) i++;
+ var kind=toks[i]?toks[i].u:'';
+ if(kind==='TABLE'){
+ var name=qname(toks,i+1);
+ if(!name){ return; }
+ var cols=cfTableColumnNames(toks,i+2);
+ var defs: ColumnFlowOutput[]=cols.map(function(c){
+ return {name:c, span:span, resolution:'exact' as ColumnResolution,
+ source:null, sourceColumn:null, sourceSpan:null};});
+ step.produces.push({object:name, columns:defs, multi:false});
+ cfDefineObject(ctx,step.id,name,defs,span);
+ return;
+ }
+ if(kind==='VIEW'){
+ var vname=qname(toks,i+1);
+ var asIx=-1, d=0;
+ for(var k=i+1;k=0){
+ var lin=analyseColumns(toks.slice(asIx+1),
+ {catalogue:ctx.seen.catalogue, dialect:ctx.seen.dialect});
+ var defs2=lin?lin.outputs.map(function(o){return cfOutputOrigin(o,lin!,ctx);}):[];
+ step.produces.push({object:vname, columns:defs2, multi:false});
+ if(lin) cfDefineObject(ctx,step.id,vname,defs2,span);
+ }
+ return;
+ }
+}
+
+function cfTableColumnNames(toks: Token[], start: number): string[] {
+ var i=start;
+ while(toks[i]&&toks[i].v!=='(') i++;
+ if(!toks[i]) return [];
+ var out: string[]=[], dd=0, pending=true;
+ i++;
+ while(i=0){ cfLoop(st,ctx); return; }
+ if(st.type==='try'){ cfTry(st,ctx); return; }
+ if(st.type==='handler'){ cfHandler(st,ctx); return; }
+ });
+}
+
+/* After the walk, if the whole object is a view, seed its output columns so
+ estate can resolve same-script consumers by definition. */
+function cfSeedViewResult(ctx: CFCtxNode, spanOfObject: SourceSpan | null): void {
+ var vn=ctx.seen.viewName;
+ if(!vn) return;
+ if(ctx.objects[cfNorm(vn)]) return;
+ var leaf: ColumnFlowStep | null=null;
+ for(var i=ctx.seen.steps.length-1;i>=0;i--){
+ var s=ctx.seen.steps[i];
+ if(s.opaque) continue;
+ if(s.produces.length) break;
+ leaf=s; break;
+ }
+ if(!leaf) return;
+ var source=ctx.seen.viewExtra;
+ if(!source||!source.length) return;
+ var lin=analyseColumns(source,{catalogue:ctx.seen.catalogue, dialect:ctx.seen.dialect});
+ if(!lin) return;
+ var cols=lin.outputs.map(function(o){return cfOutputOrigin(o,lin,ctx);});
+ ctx.objects[cfNorm(vn)]={name:vn, multi:false, span:spanOfObject, columns:cols};
+ ctx.seen.defs[cfNorm(vn)]=leaf.id;
+}
+
+/* ---------- public API ---------- */
+
+function analyseColumnFlow(ast: AstNode[],
+ opts?: {catalogue?: Catalogue | null; dialect?: Dialect; sql?: string;
+ define?: Record; viewName?: string | null;
+ viewKind?: string | null; viewBodyTokens?: Token[] | null}): ColumnFlow | null {
+ opts=opts||{};
+ var seen: CFShared={steps:[], edges:[], diagnostics:[],
+ catalogue:opts.catalogue||null, dialect:opts.dialect, seq:0, opaqueCount:0,
+ defs:{}, viewName:(opts.viewKind==='VIEW'?(opts.viewName||null):null), viewExtra:opts.viewBodyTokens||null};
+ var objects: Record={};
+ if(opts.define){
+ Object.keys(opts.define).forEach(function(k){
+ var o=opts.define![k];
+ if(!o) return;
+ objects[cfNorm(o.name)]={name:o.name, multi:o.multi, span:o.span||null,
+ columns:(o.columns||[]).map(function(c){
+ return {name:c.name, span:c.span||null, resolution:c.resolution,
+ source:c.source||null, sourceColumn:c.sourceColumn||null,
+ sourceSpan:c.sourceSpan||null, reason:c.reason};})};
+ });
+ }
+ var ctx: CFCtxNode={objects:objects, writeLog:[], seen:seen};
+ try{
+ cfRun(ast,ctx);
+ if(seen.viewName) cfSeedViewResult(ctx,spanOfObjectTokens(ast));
+ }catch(err){
+ /* column flow is best-effort metadata; never break the analysis */
+ seen.diagnostics.push({severity:'warning', code:'column_flow_opaque',
+ message:'Column-flow analysis failed for part of this object and was left opaque.',
+ span:null, scope:'document'});
+ }
+ if(!seen.steps.length) return null;
+ var objectKeys=Object.keys(ctx.objects);
+ var objectsResolved=0, objectsOpaque=0;
+ objectKeys.forEach(function(k){
+ var o=ctx.objects[k];
+ var clean=!o.multi&&o.columns.every(function(c){return c.resolution==='exact';});
+ if(clean) objectsResolved++; else objectsOpaque++;
+ });
+ var edgesResolved=0, edgesOpaque=0;
+ seen.edges.forEach(function(e){ if(e.resolution==='exact') edgesResolved++; else edgesOpaque++; });
+ return {
+ steps:seen.steps, edges:seen.edges, objects:ctx.objects,
+ opaqueCount:seen.opaqueCount, diagnostics:seen.diagnostics,
+ stats:{objects:objectKeys.length, objectsResolved:objectsResolved,
+ objectsOpaque:objectsOpaque, edges:seen.edges.length,
+ edgesResolved:edgesResolved, edgesOpaque:edgesOpaque}
+ };
+}
+
+function spanOfObjectTokens(ast: AstNode[]): SourceSpan | null {
+ var lo=Infinity, hi=-1;
+ walkAst(ast,function(st){
+ if(!('toks' in st)||!st.toks) return;
+ var s=spanOfTokens(st.toks);
+ if(s){ lo=Math.min(lo,s.start); hi=Math.max(hi,s.end); }
+ },0);
+ return isFinite(lo)?{start:lo,end:hi}:null;
+}
+
+/* ---------- export graph (own documented layout class) ---------- */
+
+function buildColumnGraph(cf: ColumnFlow): Graph {
+ var nodes: GraphNode[]=[], edges: GraphEdge[]=[];
+ var objIds: Record={};
+ var objSeq=0;
+ cf.steps.forEach(function(s){
+ nodes.push({id:s.id, shape:'rect', text:s.text, cls:s.opaque?'opaque':'colstep',
+ source:s.span||null, provenance:s.span?'source':'synthetic',
+ reason:s.opaque?'statement outside column analysis':undefined});
+ });
+ Object.keys(cf.objects).forEach(function(k){
+ var o=cf.objects[k];
+ if(o.name.charAt(0)==='#') objIds[k]='cobj'+(++objSeq);
+ else objIds[k]='cobj'+(++objSeq);
+ nodes.push({id:objIds[k], shape:'io', text:o.name, cls:'colobj', source:o.span||null,
+ provenance:o.span?'source':'synthetic',
+ reason:o.multi?'ambiguous reaching definition (no unique producer)':undefined});
+ });
+ for(var i=1;i=0&&toks[asIx+1]){
- alias=toks[asIx+1].v;
- expr=toks.slice(0,asIx);
- } else if(toks.length>=2){
- var last=toks[toks.length-1];
- var prev=toks[toks.length-2];
- if(last.type==='word'&&prev.v!=='.'&&COL_REF_SKIP[last.u]===undefined&&
- COL_CLAUSE_START[last.u]===undefined&&last.v!==';'){
- alias=last.v;
- expr=toks.slice(0,toks.length-1);
+ /* T-SQL `SELECT col = expr` alias assignment (v1.11.0 transformations): a
+ leading bare identifier immediately followed by `=` at depth 0 names the
+ output column, so the assignment target is never mistaken for a reference
+ to a source column. */
+ if(toks.length>=2&&toks[0].type==='word'&&toks[0].v!=='*'&&toks[1].v==='='){
+ alias=toks[0].v;
+ expr=toks.slice(2);
+ } else {
+ var asIx=-1, d2=0;
+ for(var i=0;i=0&&toks[asIx+1]){
+ alias=toks[asIx+1].v;
+ expr=toks.slice(0,asIx);
+ } else if(toks.length>=2){
+ var last=toks[toks.length-1];
+ var prev=toks[toks.length-2];
+ if(last.type==='word'&&prev.v!=='.'&&COL_REF_SKIP[last.u]===undefined&&
+ COL_CLAUSE_START[last.u]===undefined&&last.v!==';'){
+ alias=last.v;
+ expr=toks.slice(0,toks.length-1);
+ }
}
}
out.push({expr:expr, alias:alias, span:spanOfTokens(toks)});
@@ -693,11 +702,30 @@ function colAnalyseToks(toks: Token[], ctx: ColCtx): ColumnLineage | null {
diagnostics:diagnostics};
}
+/* Trim a raw statement token list before analysis: trailing semicolons are
+ delimiters, and a depth-0 batch separator (GO) terminates the statement.
+ Statement tokens from the AST already exclude these; raw body tokens (for
+ example a view body handed to column seeding) do not. */
+function colTrimStatement(toks: Token[]): Token[] {
+ var end=toks.length;
+ while(end>0&&toks[end-1].v===';') end--;
+ var d=0;
+ for(var i=0;i0&&toks[end-1].v===';') end--;
+ return toks.slice(0,end);
+}
+
/* Public entry point: analyse one query statement's column lineage. Returns
null when the tokens do not represent a SELECT query. */
function analyseColumns(toks: Token[], opts?: {catalogue?: Catalogue | null;
dialect?: Dialect}): ColumnLineage | null {
opts=opts||{};
+ var trim=colTrimStatement(toks||[]);
+ if(trim.length!==(toks||[]).length) toks=trim;
var ctx: ColCtx={cteColumns:{}, catalogue:opts.catalogue||null,
dialect:opts.dialect, depth:0};
return colAnalyseToks(toks||[],ctx);
diff --git a/src/exporters.ts b/src/exporters.ts
index 3a6e103..64087f3 100644
--- a/src/exporters.ts
+++ b/src/exporters.ts
@@ -28,7 +28,13 @@ var CANONICAL_NODE_STYLE: Record={
flowctl:{mermaid:'fill:#2a2438,stroke:#a98fd6,color:#ece4ff',fill:'#f3e8ff',stroke:'#9333ea',font:'#3b0764'},
cte:{mermaid:'fill:#1c2f3f,stroke:#7ea6e0,color:#dcebff',fill:'#dbeafe',stroke:'#3b82f6',font:'#172554'},
src:{mermaid:'fill:#1b242c,stroke:#4c6274,color:#a9bccb',fill:'#f1f5f9',stroke:'#64748b',font:'#0f172a'},
- final:{mermaid:'fill:#3a2c15,stroke:#e8a33d,color:#ffeccc',fill:'#fef3c7',stroke:'#d97706',font:'#451a03'}
+ final:{mermaid:'fill:#3a2c15,stroke:#e8a33d,color:#ffeccc',fill:'#fef3c7',stroke:'#d97706',font:'#451a03'},
+ /* v1.11.0 column-flow export styles: `colstep` is a column-pipeline step and
+ `colobj` is a column-carrying object (temp table, local view, catalogue
+ boundary). Both exporters derive these from the same canonical registry,
+ so Mermaid and draw.io can never disagree about the column graph class. */
+ colstep:{mermaid:'fill:#12302c,stroke:#3fd0b0,color:#dcfff5',fill:'#d5f5ef',stroke:'#0d9488',font:'#082f2a'},
+ colobj:{mermaid:'fill:#2c1c3f,stroke:#b18ce8,color:#f0e6ff',fill:'#f1e6ff',stroke:'#8b5cf6',font:'#2e1065'}
};
var CANONICAL_EDGE_STYLE: Record={
control:'solid', exception:'dotted', data:'solid', dependency:'solid', call:'solid'
diff --git a/src/ir.ts b/src/ir.ts
index 95c3b1c..33a8541 100644
--- a/src/ir.ts
+++ b/src/ir.ts
@@ -1574,12 +1574,25 @@ function analyseEstate(files: WorkspaceFile[], opts?: AnalyseOptions): EstateRes
(files||[]).forEach(function(file){
units=units.concat(splitSqlObjects(file.text,file.name));
});
+ /* v1.11.0 — same-script column flow: definitions (view/table column lists)
+ from objects analysed earlier in the same script cross object boundaries,
+ so consumers resolve by definition instead of staying opaque. */
+ var scriptDefs: Record={};
var objects=units.map(function(unit,index){
unit.id='object-'+(index+1);
- var result=analyse(unit.sql,opts);
+ var oopts: AnalyseOptions = Object.assign({},opts,{define:scriptDefs});
+ var result=analyse(unit.sql,oopts);
unit.name=result.header.name||unit.name||('Script '+(index+1));
var ir=buildObjectIR(result,unit);
ir.result=result;
+ if(result.columnFlow){
+ Object.keys(result.columnFlow.objects).forEach(function(k){
+ var o=result.columnFlow!.objects[k];
+ if(!o||o.name.charAt(0)==='#') return; /* temps are object-local */
+ if(!scriptDefs[String(k).toUpperCase()])
+ scriptDefs[String(k).toUpperCase()]=o;
+ });
+ }
return ir;
});
var graph=dependencyGraph(objects,opts);
@@ -1942,6 +1955,45 @@ function analyse(sql: string, opts?: AnalyseOptions): AnalysisResult {
cl.diagnostics.forEach(function(d){ diagnostics.push(d); });
},0);
+ /* v1.11.0 — column lineage pipelines. Cross-statement column flow through
+ temp tables, transformations, views, CTEs, and catalogue-resolved object
+ boundaries. Ambiguous reaching definitions and unresolvable transformations
+ stay opaque with region-scoped `column_flow_opaque` diagnostics; the export
+ graph is a plain Graph on its own documented column layout class. */
+ var columnFlow: ColumnFlow | null=null;
+ var columnFlowGraph: Graph | null=null;
+ try{
+ columnFlow=analyseColumnFlow(ast,{
+ catalogue:opts.catalogue, dialect:dialect, sql:sql,
+ define:opts.define,
+ viewName:header.name, viewKind:header.kind,
+ viewBodyTokens:(header.kind==='VIEW')?bodyToks:null
+ });
+ }catch(err){
+ columnFlow=null;
+ }
+ if(columnFlow){
+ columnFlow.diagnostics.forEach(function(d){ diagnostics.push(d); });
+ /* column-resolution constructs feed the same construct-coverage surface */
+ var cfo=columnFlow.stats.objects, cfoR=columnFlow.stats.objectsResolved,
+ cfoO=columnFlow.stats.objectsOpaque;
+ var cfe=columnFlow.stats.edges, cfeR=columnFlow.stats.edgesResolved,
+ cfeO=columnFlow.stats.edgesOpaque;
+ var cTotal=cfo+cfe;
+ if(cTotal>0){
+ var cc=constructCoverage.byKind['column_flow']=constructCoverage.byKind['column_flow']||
+ {detected:0,resolved:0,opaque:0};
+ cc.detected+=cTotal;
+ cc.resolved+=cfoR+cfeR;
+ cc.opaque+=cfoO+cfeO;
+ constructCoverage.constructs+=cTotal;
+ constructCoverage.resolved+=cfoR+cfeR;
+ constructCoverage.opaque+=cfoO+cfeO;
+ }
+ if(columnFlow.steps.length||columnFlow.edges.length)
+ try{ columnFlowGraph=buildColumnGraph(columnFlow); }catch(err){ columnFlowGraph=null; }
+ }
+
return {dialect:dialect, detected:det, confidence:confidence,
confidenceFormulaVersion:confidenceFormulaVersion,
confidenceSignals:confidenceSignals,
@@ -1951,5 +2003,6 @@ function analyse(sql: string, opts?: AnalyseOptions): AnalysisResult {
graph:selected, stats:selected.stats,
mermaid:toMermaid(selected, opts.dir||'TD'),
attribution:attribution, constructCoverage:constructCoverage,
- columns:columnLineages};
+ columns:columnLineages, columnFlow:columnFlow||undefined,
+ columnFlowGraph:columnFlowGraph||undefined};
}
diff --git a/src/types.d.ts b/src/types.d.ts
index 8db5445..3f3c66e 100644
--- a/src/types.d.ts
+++ b/src/types.d.ts
@@ -362,6 +362,11 @@ interface AnalyseOptions {
/* Document-scoped catalogue parse diagnostics surfaced alongside the
analysis (set by the caller after parseCatalogue). */
catalogueDiagnostics?: Diagnostic[];
+ /* v1.11.0 — same-script column definitions. Object definitions (view/table
+ column lists) collected from objects analysed earlier in the same script
+ so column flow can cross object boundaries within the workspace. Read-only
+ references resolved by the catalogue are seeded automatically. */
+ define?: Record;
}
interface DrawioOptions {
@@ -454,6 +459,11 @@ interface AnalysisResult {
/* v1.10.0 — column lineage foundations: one entry per query-bearing
statement that was column-analysed (single-statement scope). */
columns?: ColumnLineage[];
+ /* v1.11.0 — column lineage pipelines: cross-statement column flow through
+ temp tables, transformations, views, CTEs, and catalogue-resolved object
+ boundaries, plus the exported column-flow graph (its own layout class). */
+ columnFlow?: ColumnFlow;
+ columnFlowGraph?: Graph;
}
interface WorkspaceFile {
@@ -654,6 +664,93 @@ interface ColumnLineage {
diagnostics: Diagnostic[];
}
+/* v1.11.0 — column lineage pipelines.
+ Column-flow edges through CTEs, views, temporary tables, transformations, and
+ catalogue-resolved object boundaries; column metadata and column-flow export
+ styles; column-resolution signals (E). Interactive column views are deferred
+ to v1.13.0; this release ships the model, exports, layout class, and
+ fixtures. No edge or binding is ever invented: an ambiguous reaching
+ definition or an unresolvable transformation stays opaque. */
+
+/* One produced column on a column-carrying object, traced end-to-end to its
+ origin. `source`/`sourceColumn` name the ultimate resolvable origin object
+ and column: when the origin is itself a column of a tracked object (temp
+ table, local view) the trace is flattened to the original source, so
+ `SELECT a FROM #stage INTO #out` reports the same origin as `#stage` did.
+ Ambiguous reaching definitions and opaque transformations carry no source. */
+interface ColumnFlowOutput {
+ name: string; /* column name on the object */
+ span: SourceSpan | null; /* span of the name in the defining statement */
+ resolution: ColumnResolution;/* 'exact' | 'ambiguous' | 'opaque' */
+ source: string | null; /* ultimate origin object, or null when opaque */
+ sourceColumn: string | null; /* ultimate origin column, or null */
+ sourceSpan: SourceSpan | null;
+ reason?: string;
+}
+
+/* Reaching-definition state of one column-carrying object (temp table, local
+ view, or catalogue-resolved external object). `multi` records that more than
+ one producer statement reaches readers without a provable unique definition
+ (conditional write or branch merge); its columns are then opaque. */
+interface ColumnFlowObject {
+ name: string;
+ multi: boolean;
+ span: SourceSpan | null;
+ columns: ColumnFlowOutput[];
+}
+
+/* Columns one statement consumes from a column-carrying object. `resolution`
+ is 'exact' when every consumed column resolves to a provable definition,
+ 'opaque' when the object's reaching definition is ambiguous or unknown. */
+interface ColumnFlowConsume {
+ object: string;
+ names: string[];
+ resolution: ColumnResolution;
+ span: SourceSpan | null;
+}
+
+/* One statement's column-flow involvement, keyed by its flow-node id so the
+ column graph stays traceable to the source diagram. */
+interface ColumnFlowStep {
+ id: string; /* 's1', 's2', … mirroring the flow node id */
+ text: string; /* summarised statement label */
+ span: SourceSpan | null;
+ produces: Array<{object: string; columns: ColumnFlowOutput[]; multi: boolean}>;
+ consumes: ColumnFlowConsume[];
+ resolution: ColumnResolution;
+ opaque?: boolean; /* statement is outside column analysis (dynamic) */
+}
+
+/* A producer→consumer column-flow edge through a shared object. `columns`
+ lists the object columns carried between the two steps. */
+interface ColumnFlowEdge {
+ fromStep: string;
+ toStep: string;
+ object: string;
+ columns: Array<{name: string; resolution: ColumnResolution;
+ span: SourceSpan | null}>;
+ resolution: ColumnResolution; /* opaque when the reaching definition is not unique */
+}
+
+/* Cross-statement column-flow analysis of one object. `objects` is the final
+ reaching-definition state; `steps` is the ordered statement walk; `edges`
+ are the end-to-end producer→consumer pairs through shared objects. */
+interface ColumnFlow {
+ steps: ColumnFlowStep[];
+ edges: ColumnFlowEdge[];
+ objects: Record;
+ opaqueCount: number;
+ diagnostics: Diagnostic[];
+ stats: {
+ objects: number;
+ objectsResolved: number;
+ objectsOpaque: number;
+ edges: number;
+ edgesResolved: number;
+ edgesOpaque: number;
+ };
+}
+
interface FixtureExpectation {
mode?: 'flow' | 'query';
branch?: number;
@@ -757,6 +854,17 @@ interface Window {
};
/* v1.10.0 per-fixture column suite records, published for debugging. */
PROCFLOW_COLUMN_DETAIL?: Array<{name: string; pass: boolean; detail: unknown}>;
+ /* v1.11.0 column-flow pipeline suite results, published for the golden and
+ metrics pages (end-to-end traces, opaque ambiguity, export parity, and the
+ column layout class budget). */
+ PROCFLOW_COLUMNFLOW_PASS?: boolean;
+ PROCFLOW_COLUMNFLOW_RESULT?: {
+ passed: number;
+ total: number;
+ layoutPassed: number;
+ layoutTotal: number;
+ };
+ PROCFLOW_COLUMNFLOW_DETAIL?: Array<{name: string; pass: boolean; detail: unknown}>;
/* v1.8.0 opt-in workspace persistence globals (src/workspace.ts), exposed for
the browser UI tests. */
clearWorkspace(): void;
diff --git a/tests/column-flow.ts b/tests/column-flow.ts
new file mode 100644
index 0000000..b071e9a
--- /dev/null
+++ b/tests/column-flow.ts
@@ -0,0 +1,494 @@
+/* proc>flow v1.11.0 — column lineage pipelines.
+ Fixtures assert, end to end, that `SELECT col INTO #t` flows through
+ transformations (UPDATE / INSERT … SELECT / CREATE TABLE) to later outputs
+ with the column origin traced to its source object; that ambiguous reaching
+ definitions (conditional writes and branch merges) stay opaque with a
+ region-scoped `column_flow_opaque` diagnostic and never invent a binding;
+ that view/CTE boundaries resolve within one script and catalogue-proven
+ object boundaries resolve by catalogue evidence; and that the exported
+ column-flow graph round-trips through Mermaid and draw.io with provenance
+ intact and meets its bounded column layout budgets.
+
+ After this suite runs, PROCFLOW_COLUMNFLOW_PASS and
+ PROCFLOW_COLUMNFLOW_RESULT gate the golden suite (tests/tests.ts) and feed
+ the fixture-corpus metrics (tests/metrics.ts). */
+(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 hasDiag(list: Diagnostic[], code: string): boolean {
+ return (list||[]).some(function(d){return d.code===code;});
+ }
+
+ interface CFFixtureExpect {
+ objectColumns?: Array<{
+ object: string;
+ columns: Array<{
+ name: string;
+ resolution?: ColumnResolution;
+ source?: string | null;
+ sourceColumn?: string | null;
+ }>;
+ }>;
+ objectCount?: number;
+ edges?: Array<{from: string; to: string; object: string;
+ resolution?: ColumnResolution; columns?: string[]}>;
+ edgeCount?: number;
+ stepCount?: number;
+ diags?: string[];
+ noDiags?: boolean;
+ noEdgesExact?: boolean;
+ graphNodes?: number;
+ graphEdges?: number;
+ dataEdges?: number;
+ layout?: {nodeLimit: number; crossingBudget: number; label?: string};
+ }
+ interface CFFixture {
+ name: string;
+ dialect: Dialect;
+ sql?: string;
+ files?: Array<{name: string; text: string}>;
+ estate?: boolean;
+ catalogue?: string;
+ expect: CFFixtureExpect;
+ }
+
+ var PROCFLOW_COLUMNFLOW_FIXTURES: CFFixture[] = [
+ /* ---- end-to-end through a temporary-table pipeline ---- */
+ {
+ name:'end-to-end: SELECT col INTO #t through UPDATE to outputs',
+ dialect:'tsql',
+ sql:'CREATE PROC dbo.stage AS BEGIN\n'+
+ ' SELECT id, name INTO #stage FROM dbo.student;\n'+
+ ' UPDATE #stage SET id = id + 1;\n'+
+ ' SELECT id + 1 AS y FROM #stage;\n'+
+ 'END',
+ expect:{
+ objectColumns:[
+ {object:'#stage', columns:[
+ {name:'id', resolution:'exact', source:'dbo.student', sourceColumn:'id'},
+ {name:'name', resolution:'exact', source:'dbo.student', sourceColumn:'name'}
+ ]}
+ ],
+ edges:[
+ {from:'s1', to:'s2', object:'#stage', resolution:'exact', columns:['id']},
+ {from:'s2', to:'s3', object:'#stage', resolution:'exact', columns:['id']}
+ ],
+ noDiags:true,
+ layout:{nodeLimit:8, crossingBudget:0}
+ }
+ },
+ {
+ name:'end-to-end: two-hop temp chain flattens to the source',
+ dialect:'tsql',
+ sql:'CREATE PROC dbo.chain AS BEGIN\n'+
+ ' SELECT a, b INTO #t1 FROM dbo.src1;\n'+
+ ' SELECT a AS x INTO #t2 FROM #t1;\n'+
+ ' SELECT x FROM #t2;\n'+
+ 'END',
+ expect:{
+ objectColumns:[
+ {object:'#t2', columns:[
+ {name:'x', resolution:'exact', source:'dbo.src1', sourceColumn:'a'}
+ ]}
+ ],
+ edges:[
+ {from:'s1', to:'s2', object:'#t1', resolution:'exact', columns:['a']},
+ {from:'s2', to:'s3', object:'#t2', resolution:'exact', columns:['x']}
+ ],
+ noDiags:true
+ }
+ },
+ {
+ name:'end-to-end: CREATE TABLE schema then INSERT … SELECT defines columns',
+ dialect:'tsql',
+ sql:'CREATE PROC dbo.schemad AS BEGIN\n'+
+ ' CREATE TABLE #t (a int, b varchar(20));\n'+
+ ' INSERT INTO #t SELECT x, y FROM dbo.src2;\n'+
+ ' SELECT a FROM #t;\n'+
+ 'END',
+ expect:{
+ objectColumns:[
+ {object:'#t', columns:[
+ {name:'a', resolution:'exact', source:'dbo.src2', sourceColumn:'x'},
+ {name:'b', resolution:'exact', source:'dbo.src2', sourceColumn:'y'}
+ ]}
+ ],
+ edges:[
+ {from:'s2', to:'s3', object:'#t', resolution:'exact', columns:['a']}
+ ],
+ noDiags:true
+ }
+ },
+ {
+ name:'end-to-end: INSERT … SELECT into a temp with an explicit column list',
+ dialect:'tsql',
+ sql:'CREATE PROC dbo.explicit AS BEGIN\n'+
+ ' SELECT v INTO #tmp FROM dbo.src3;\n'+
+ ' INSERT INTO #tmp (k) SELECT wide FROM dbo.src4;\n'+
+ ' SELECT k FROM #tmp;\n'+
+ 'END',
+ expect:{
+ objectColumns:[
+ {object:'#tmp', columns:[
+ {name:'k', resolution:'exact', source:'dbo.src4', sourceColumn:'wide'}
+ ]}
+ ],
+ noDiags:true
+ }
+ },
+ {
+ name:'end-to-end: WITH CTE feeds a temp (CTE boundary origin)',
+ dialect:'tsql',
+ sql:'CREATE PROC dbo.cteflow AS BEGIN\n'+
+ ' WITH c AS (SELECT id, name FROM dbo.student)\n'+
+ ' SELECT id INTO #t FROM c;\n'+
+ ' SELECT id FROM #t;\n'+
+ 'END',
+ expect:{
+ objectColumns:[
+ {object:'#t', columns:[
+ {name:'id', resolution:'exact', source:'c', sourceColumn:'id'}
+ ]}
+ ],
+ edges:[
+ {from:'s1', to:'s2', object:'#t', resolution:'exact', columns:['id']}
+ ],
+ noDiags:true
+ }
+ },
+ /* ---- ambiguous reaching definitions stay opaque ---- */
+ {
+ name:'ambiguous: IF/ELSE both produce #t → consumer stays opaque',
+ dialect:'tsql',
+ sql:'CREATE PROC dbo.branch AS BEGIN\n'+
+ ' IF @x = 1 SELECT id INTO #t FROM dbo.a;\n'+
+ ' ELSE SELECT id, name INTO #t FROM dbo.b;\n'+
+ ' SELECT id FROM #t;\n'+
+ 'END',
+ expect:{
+ objectCount:1,
+ edges:[{from:'s2', to:'s3', object:'#t', resolution:'opaque', columns:['id']}],
+ diags:['column_flow_opaque'],
+ layout:{nodeLimit:8, crossingBudget:0}
+ }
+ },
+ {
+ name:'ambiguous: temp written only inside a conditional reads opaque',
+ dialect:'tsql',
+ sql:'CREATE PROC dbo.onebranch AS BEGIN\n'+
+ ' IF @x = 1 SELECT id INTO #t FROM dbo.a;\n'+
+ ' SELECT id FROM #t;\n'+
+ 'END',
+ expect:{
+ diags:['column_flow_opaque'],
+ noEdgesExact:true
+ }
+ },
+ {
+ name:'ambiguous: temp written inside a loop reads opaque',
+ dialect:'tsql',
+ sql:'CREATE PROC dbo.loopwrite AS BEGIN\n'+
+ ' WHILE @i < 10\n'+
+ ' SELECT id INTO #t FROM dbo.a;\n'+
+ ' SELECT id FROM #t;\n'+
+ 'END',
+ expect:{
+ diags:['column_flow_opaque'],
+ noEdgesExact:true
+ }
+ },
+ {
+ name:'reaching definition: a later sequential producer is not multi',
+ dialect:'tsql',
+ sql:'CREATE PROC dbo.sequential AS BEGIN\n'+
+ ' IF @x = 1 SELECT id INTO #t FROM dbo.a;\n'+
+ ' SELECT id, name INTO #t FROM dbo.b;\n'+
+ ' SELECT id FROM #t;\n'+
+ 'END',
+ expect:{
+ objectColumns:[
+ {object:'#t', columns:[
+ {name:'id', resolution:'exact', source:'dbo.b', sourceColumn:'id'}
+ ]}
+ ],
+ noDiags:true
+ }
+ },
+ /* ---- object boundaries ---- */
+ {
+ name:'view boundary: same-script view columns resolve by definition',
+ dialect:'tsql',
+ estate:true,
+ files:[{name:'x.sql', text:
+ 'CREATE VIEW dbo.v_students AS SELECT id, name FROM dbo.student;\n'+
+ 'GO\n'+
+ 'CREATE PROC dbo.use_v AS BEGIN\n SELECT id FROM dbo.v_students;\nEND'}],
+ expect:{
+ objectColumns:[
+ {object:'dbo.v_students', columns:[
+ {name:'id', resolution:'exact', source:'dbo.student', sourceColumn:'id'},
+ {name:'name', resolution:'exact', source:'dbo.student', sourceColumn:'name'}
+ ]}
+ ],
+ noDiags:true
+ }
+ },
+ {
+ name:'catalogue boundary: catalogue-proven external columns resolve exactly',
+ dialect:'tsql',
+ catalogue:'dbo.student TABLE\nCOL dbo.student.id\nCOL dbo.student.name\nCOL dbo.student.grade',
+ sql:'CREATE PROC dbo.cat AS BEGIN\n SELECT grade FROM dbo.student;\nEND',
+ expect:{
+ objectColumns:[
+ {object:'dbo.student', columns:[
+ {name:'grade', resolution:'exact', source:'dbo.student', sourceColumn:'grade'}
+ ]}
+ ],
+ noDiags:true
+ }
+ },
+ /* ---- clean invariants ---- */
+ {
+ name:'clean: a plain table read emits no column-flow diagnostics',
+ dialect:'tsql',
+ sql:'CREATE PROC dbo.plain AS BEGIN\n SELECT id FROM dbo.student;\nEND',
+ expect:{
+ edgeCount:0,
+ noDiags:true,
+ graphNodes:1
+ }
+ },
+ {
+ name:'clean: dynamic SQL stays opaque without inventing an object',
+ dialect:'tsql',
+ sql:'CREATE PROC dbo.dyn AS BEGIN\n EXEC(\'SELECT 1\');\n SELECT 1;\nEND',
+ expect:{
+ stepCount:2,
+ edgeCount:0,
+ noDiags:true
+ }
+ }
+ ];
+
+ function runCF(f: CFFixture): {cf: ColumnFlow | null; diags: Diagnostic[]} {
+ var cat=null;
+ if(f.catalogue) cat=parseCatalogue(f.catalogue).catalogue;
+ if(f.estate&&f.files){
+ var est=analyseEstate(f.files,{dialect:f.dialect, mode:'flow', group:false,
+ sources:true, catalogue:cat});
+ var proc=est.objects.filter(function(o){return o.kind==='PROCEDURE';})[0]
+ || est.objects[est.objects.length-1];
+ return {cf:proc&&proc.result&&proc.result.columnFlow||null, diags:est.diagnostics||[]};
+ }
+ var r=analyse(f.sql||'',{dialect:f.dialect, mode:'flow', group:false,
+ sources:true, catalogue:cat});
+ return {cf:r.columnFlow||null, diags:r.diagnostics||[]};
+ }
+
+ var layoutPassed=0, layoutTotal=0;
+ PROCFLOW_COLUMNFLOW_FIXTURES.forEach(function(f){
+ try{
+ var got=runCF(f);
+ var cf=got.cf;
+ var ok=!!cf;
+ var detail: any={};
+ if(!cf){ record(f.name+' · column flow',false,'column flow was not produced'); return; }
+ var e=f.expect;
+
+ if(e.stepCount!==undefined){
+ detail.stepCount=cf.steps.length;
+ ok=ok&&cf.steps.length===e.stepCount;
+ }
+ if(e.objectCount!==undefined){
+ detail.objectCount=Object.keys(cf.objects).length;
+ ok=ok&&Object.keys(cf.objects).length===e.objectCount;
+ }
+ (e.objectColumns||[]).forEach(function(exp){
+ var O=cf.objects[String(exp.object).toUpperCase()];
+ var missing=!O;
+ var colOk=true, colDetail: any={};
+ exp.columns.forEach(function(c){
+ var def: ColumnFlowOutput | null=null;
+ (O&&O.columns||[]).forEach(function(x){ if(x.name===c.name) def=x; });
+ var dOk=!!def&&
+ (c.resolution===undefined||def.resolution===c.resolution)&&
+ (c.source===undefined||def.source===c.source)&&
+ (c.sourceColumn===undefined||def.sourceColumn===c.sourceColumn);
+ colOk=colOk&&dOk;
+ colDetail[c.name]=def&&{res:def.resolution,src:def.source,sc:def.sourceColumn};
+ });
+ ok=ok&&!missing&&colOk;
+ detail['object:'+exp.object]={found:!missing, cols:colDetail};
+ });
+ if(e.edgeCount!==undefined) ok=ok&&cf.edges.length===e.edgeCount;
+ var hasExactEdge=false;
+ (e.edges||[]).forEach(function(exp){
+ var hit=cf.edges.some(function(ed){
+ return ed.fromStep===exp.from&&ed.toStep===exp.to&&ed.object===exp.object&&
+ (exp.resolution===undefined||ed.resolution===exp.resolution)&&
+ (exp.columns===undefined||exp.columns.every(function(cn){
+ return ed.columns.some(function(c){ return c.name===cn; }); }));
+ });
+ if(exp.resolution==='exact'&&hit) hasExactEdge=true;
+ ok=ok&&hit;
+ });
+ if(e.noEdgesExact){
+ var anyExact=cf.edges.some(function(ed){ return ed.resolution==='exact'; });
+ ok=ok&&!anyExact;
+ }
+ if(e.diags){
+ (e.diags||[]).forEach(function(code){ ok=ok&&hasDiag(got.diags,code); });
+ }
+ if(e.noDiags){
+ var cfdiags=got.diags.filter(function(d){ return d.code==='column_flow_opaque'; });
+ ok=ok&&cfdiags.length===0;
+ detail.cfDiags=cfdiags;
+ }
+ var spanOk=(got.diags||[]).every(function(d){
+ if(d.code!=='column_flow_opaque') return true;
+ return d.scope==='region'&&!!d.span&&d.span.start>=0&&d.span.end>d.span.start&&
+ d.span.end<=(f.sql||f.files&&f.files[0].text||'').length;
+ });
+ ok=ok&&spanOk;
+
+ /* ---- exported column graph ---- */
+ var graph=buildColumnGraph(cf);
+ if(e.graphNodes!==undefined) ok=ok&&graph.nodes.length===e.graphNodes;
+ if(e.graphEdges!==undefined) ok=ok&&graph.edges.length===e.graphEdges;
+ if(e.dataEdges!==undefined){
+ ok=ok&&graph.edges.filter(function(x){return x.kind==='data';}).length===e.dataEdges;
+ }
+ /* column graph exports with provenance metadata and data-edge routing */
+ var expected=exportManifest(graph);
+ var expectedNode: Record={};
+ expected.nodes.forEach(function(n){ expectedNode[n.id]=n; });
+ var mm=mermaidManifest(toMermaid(graph,'TD'));
+ var dm=drawioManifest(toDrawio(graph,{title:f.name, dir:'TD'}));
+ var nodeOk=mm.nodes.length===expected.nodes.length&&
+ mm.nodes.every(function(n){
+ var exp=expectedNode[n.id];
+ return !!exp&&exp.text===n.text&&exp.cls===n.cls;
+ });
+ var drawNodeOk=dm.nodes.length===expected.nodes.length&&
+ dm.nodes.every(function(n){
+ var exp=expectedNode[n.id];
+ return !!exp&&exp.text===n.text&&clsAreEqual(n.cls,exp.cls);
+ });
+ var edgeSig=function(x: any){ return x.from+'|'+x.to+'|'+x.label+'|'+x.meaning; };
+ var mmSigns: Record={};
+ mm.edges.forEach(function(x){ mmSigns[edgeSig(x)]=1; });
+ var expEdges=expected.edges.map(edgeSig);
+ var expSigns: Record={};
+ expEdges.forEach(function(s){ expSigns[s]=1; });
+ var edgeOk=mm.edges.length===expected.edges.length&&
+ expEdges.every(function(s){ return !!mmSigns[s]; })&&
+ mm.edges.every(function(x){ return !!expSigns[edgeSig(x)]; });
+ var dmSigns: Record={};
+ dm.edges.forEach(function(x){ dmSigns[edgeSig(x)]=1; });
+ var drawEdgeOk=dm.edges.length===expected.edges.length&&
+ expEdges.every(function(s){ return !!dmSigns[s]; })&&
+ dm.edges.every(function(x){ return !!expSigns[edgeSig(x)]; });
+ var dmNode: Record={};
+ dm.nodes.forEach(function(n){ dmNode[n.id]=n; });
+ var metaOk=true;
+ graph.nodes.forEach(function(n){
+ var back=dmNode[n.id];
+ if(!back) return;
+ if(n.provenance) metaOk=metaOk&&back.meta.indexOf('provenance='+n.provenance)>=0;
+ if(n.source) metaOk=metaOk&&back.meta.indexOf('span='+n.source.start+'-'+n.source.end)>=0;
+ if(n.reason) metaOk=metaOk&&back.meta.indexOf('reason='+n.reason)>=0;
+ });
+ var dataEdges=graph.edges.filter(function(x){ return x.kind==='data'&&x.style!=='dotted'; });
+ var routedOk=dataEdges.every(function(x){
+ return dm.edges.some(function(de){
+ return de.from===x.from&&de.to===x.to&&de.waypoints.length>=2;
+ });
+ });
+ var exportOk=nodeOk&&drawNodeOk&&edgeOk&&drawEdgeOk&&metaOk&&routedOk&&!dm.parsererror;
+ ok=ok&&exportOk;
+ detail.export={nodeOk:nodeOk,drawNodeOk:drawNodeOk,edgeOk:edgeOk,
+ drawEdgeOk:drawEdgeOk,metaOk:metaOk,routedOk:routedOk,parsererror:dm.parsererror};
+
+ record(f.name+' · column flow',ok,JSON.stringify(detail));
+
+ /* ---- layout: named column class meets its documented budget ---- */
+ if(e.layout){
+ layoutTotal++;
+ var L=layoutAnalysis(graph,'TD');
+ var L2=layoutAnalysis(graph,'TD');
+ var deterministic=JSON.stringify(L.positions)===JSON.stringify(L2.positions);
+ var finite=Object.keys(L.positions).every(function(id){
+ var p=L.positions[id];
+ return isFinite(p.x)&&isFinite(p.y)&&p.w>0&&p.h>0&&p.x>=0&&p.y>=0;
+ });
+ var monotonic=L.monotonicEdges+L.backEdges.length===L.backboneEdges;
+ var layOk=deterministic&&finite&&L.overlaps===0&&monotonic&&
+ graph.nodes.length<=e.layout.nodeLimit&&L.crossings<=e.layout.crossingBudget;
+ if(layOk) layoutPassed++;
+ else {
+ results.push({name:f.name+' · column layout',pass:false,
+ detail:JSON.stringify({deterministic:deterministic,finite:finite,
+ overlaps:L.overlaps,monotonic:monotonic,crossings:L.crossings,
+ nodes:graph.nodes.length,budget:e.layout})});
+ }
+ }
+ }catch(err){
+ record(f.name+' · column flow',false,String(err&&err.stack||err));
+ }
+ });
+
+ /* ---- integration: analyse() attaches the column-flow model and graph ---- */
+ try{
+ var ir=analyse('CREATE PROC dbo.pipeline AS BEGIN\n'+
+ ' SELECT id INTO #t FROM dbo.student;\n'+
+ ' SELECT id FROM #t;\nEND',
+ {dialect:'tsql',mode:'flow',group:false,sources:true});
+ var integrated=!!ir.columnFlow&&!!ir.columnFlowGraph&&
+ ir.columnFlow.steps.length===2&&ir.columnFlowGraph.nodes.length>=3&&
+ ir.constructCoverage.byKind['column_flow']&&
+ ir.constructCoverage.byKind['column_flow'].detected>0;
+ record('v1.11.0 analyse() attaches columnFlow, graph, and coverage', integrated);
+ }catch(err){
+ record('v1.11.0 analyse() attaches columnFlow, graph, and coverage',
+ false,String(err&&err.stack||err));
+ }
+
+ /* ---- E: a clean pipeline keeps informational annotation count flat ---- */
+ try{
+ var clean=analyse('CREATE PROC dbo.clean AS BEGIN\n'+
+ ' WITH r(n) AS (SELECT 1 UNION ALL SELECT n + 1 FROM r WHERE n < 10)\n'+
+ ' SELECT n INTO #n FROM r;\n'+
+ ' SELECT n FROM #n;\n'+
+ 'END',{dialect:'tsql',mode:'flow',group:false,sources:true});
+ var cleanOk=!clean.diagnostics.some(function(d){
+ return d.code==='column_flow_opaque';
+ })&&(clean.columns||[]).length>=1&&!!clean.columnFlow;
+ record('v1.11.0 clean temp pipeline carries no column-flow diagnostics',
+ cleanOk,JSON.stringify({
+ diags:clean.diagnostics.map(function(d){return d.code;}),
+ flows:clean.columnFlow&&clean.columnFlow.stats}));
+ }catch(err){
+ record('v1.11.0 clean temp pipeline carries no column-flow diagnostics',
+ false,String(err&&err.stack||err));
+ }
+
+ var passed=results.filter(function(r){return r.pass;}).length;
+ window.PROCFLOW_COLUMNFLOW_RESULT={passed:passed,total:results.length,
+ layoutPassed:layoutPassed,layoutTotal:layoutTotal};
+ window.PROCFLOW_COLUMNFLOW_PASS=passed===results.length;
+ window.PROCFLOW_COLUMNFLOW_DETAIL=results;
+
+ var out=document.getElementById('columnflow-results');
+ if(out) out.textContent=JSON.stringify({
+ flows:passed+'/'+results.length,
+ layout:layoutPassed+'/'+layoutTotal,
+ failures:results.filter(function(r){return !r.pass;}).map(function(r){
+ return {name:r.name, detail:r.detail};
+ })
+ },null,2);
+ var sum=document.getElementById('columnflow-summary');
+ if(sum) sum.textContent='v1.11.0 columns · flow '+(passed+'/'+results.length)+
+ ' · layout '+(layoutPassed+'/'+layoutTotal);
+})();
diff --git a/tests/fuzz.html b/tests/fuzz.html
index 1296477..9353cce 100644
--- a/tests/fuzz.html
+++ b/tests/fuzz.html
@@ -19,6 +19,7 @@ proc>flow mutation and fuzz tests
+
diff --git a/tests/index.html b/tests/index.html
index 05cf87a..615d0ae 100644
--- a/tests/index.html
+++ b/tests/index.html
@@ -14,6 +14,8 @@ proc>flow golden tests
Running…
v1.7.0 exports starting…
+v1.11.0 column flow starting…
+
@@ -21,6 +23,7 @@ proc>flow golden tests
+
@@ -34,6 +37,7 @@ proc>flow golden tests
+
-proc>flow fixture-corpus metrics (v1.10.0)
+proc>flow fixture-corpus metrics (v1.11.0)
Running…
Deterministic, fixture-only aggregates of the "Metrics that matter".
No user inputs or runtime telemetry are collected.
@@ -21,6 +21,7 @@ proc>flow fixture-corpus metrics (v1.10.0)
+
@@ -34,6 +35,7 @@ proc>flow fixture-corpus metrics (v1.10.0)
+