@typed-sql/conformance 2.0.0-rc.1 → 2.1.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/README.md +30 -20
  3. package/dist/packages/conformance/src/assertions.d.ts +7 -1
  4. package/dist/packages/conformance/src/assertions.d.ts.map +1 -1
  5. package/dist/packages/conformance/src/assertions.js +89 -1
  6. package/dist/packages/conformance/src/assertions.js.map +1 -1
  7. package/dist/packages/conformance/src/failure-injection.d.ts +24 -0
  8. package/dist/packages/conformance/src/failure-injection.d.ts.map +1 -0
  9. package/dist/packages/conformance/src/failure-injection.js +52 -0
  10. package/dist/packages/conformance/src/failure-injection.js.map +1 -0
  11. package/dist/packages/conformance/src/feature-ledger-markdown.d.ts +4 -0
  12. package/dist/packages/conformance/src/feature-ledger-markdown.d.ts.map +1 -0
  13. package/dist/packages/conformance/src/feature-ledger-markdown.js +58 -0
  14. package/dist/packages/conformance/src/feature-ledger-markdown.js.map +1 -0
  15. package/dist/packages/conformance/src/feature-ledger.d.ts +62 -0
  16. package/dist/packages/conformance/src/feature-ledger.d.ts.map +1 -0
  17. package/dist/packages/conformance/src/feature-ledger.js +347 -0
  18. package/dist/packages/conformance/src/feature-ledger.js.map +1 -0
  19. package/dist/packages/conformance/src/index.d.ts +6 -2
  20. package/dist/packages/conformance/src/index.d.ts.map +1 -1
  21. package/dist/packages/conformance/src/index.js +3 -1
  22. package/dist/packages/conformance/src/index.js.map +1 -1
  23. package/dist/packages/conformance/src/types.d.ts +60 -1
  24. package/dist/packages/conformance/src/types.d.ts.map +1 -1
  25. package/dist/packages/conformance/src/types.js +1 -0
  26. package/dist/packages/conformance/src/types.js.map +1 -1
  27. package/dist/packages/conformance/src/v2/contracts.d.ts +7 -0
  28. package/dist/packages/conformance/src/v2/contracts.d.ts.map +1 -0
  29. package/dist/packages/conformance/src/v2/contracts.js +97 -0
  30. package/dist/packages/conformance/src/v2/contracts.js.map +1 -0
  31. package/dist/packages/conformance/src/v2/fixtures.d.ts +4 -0
  32. package/dist/packages/conformance/src/v2/fixtures.d.ts.map +1 -0
  33. package/dist/packages/conformance/src/v2/fixtures.js +58 -0
  34. package/dist/packages/conformance/src/v2/fixtures.js.map +1 -0
  35. package/dist/packages/conformance/src/v2/index.d.ts +9 -0
  36. package/dist/packages/conformance/src/v2/index.d.ts.map +1 -0
  37. package/dist/packages/conformance/src/v2/index.js +8 -0
  38. package/dist/packages/conformance/src/v2/index.js.map +1 -0
  39. package/dist/packages/conformance/src/v2/legacy.d.ts +6 -0
  40. package/dist/packages/conformance/src/v2/legacy.d.ts.map +1 -0
  41. package/dist/packages/conformance/src/v2/legacy.js +75 -0
  42. package/dist/packages/conformance/src/v2/legacy.js.map +1 -0
  43. package/dist/packages/conformance/src/v2/reporters.d.ts +4 -0
  44. package/dist/packages/conformance/src/v2/reporters.d.ts.map +1 -0
  45. package/dist/packages/conformance/src/v2/reporters.js +17 -0
  46. package/dist/packages/conformance/src/v2/reporters.js.map +1 -0
  47. package/dist/packages/conformance/src/v2/reproduction.d.ts +4 -0
  48. package/dist/packages/conformance/src/v2/reproduction.d.ts.map +1 -0
  49. package/dist/packages/conformance/src/v2/reproduction.js +35 -0
  50. package/dist/packages/conformance/src/v2/reproduction.js.map +1 -0
  51. package/dist/packages/conformance/src/v2/runner.d.ts +9 -0
  52. package/dist/packages/conformance/src/v2/runner.d.ts.map +1 -0
  53. package/dist/packages/conformance/src/v2/runner.js +369 -0
  54. package/dist/packages/conformance/src/v2/runner.js.map +1 -0
  55. package/dist/packages/conformance/src/v2/types.d.ts +204 -0
  56. package/dist/packages/conformance/src/v2/types.d.ts.map +1 -0
  57. package/dist/packages/conformance/src/v2/types.js +3 -0
  58. package/dist/packages/conformance/src/v2/types.js.map +1 -0
  59. package/package.json +5 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,74 @@
1
1
  # @typed-sql/conformance
2
2
 
3
+ ## 2.1.0-rc.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Publish the coherent 2.1.0-rc.1 release-candidate train.
8
+
9
+ ## 2.1.0-rc.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 1c64475: Add the canonical, version-aware grammar feature ledger API and fail closed for PostgreSQL-style `UPDATE FROM` and `INSERT DEFAULT VALUES` when analyzed by the MySQL grammar.
14
+ - 1c64475: Add the published `@typed-sql/conformance/v2` feature-addressable static and live differential harness, target selection, exact-claim enforcement, reporters, fixture discovery, reduction, reproduction bundles, and a non-inflating v1 migration adapter.
15
+ - e433feb: Allow non-empty arrays of typed SQL fragments to be interpolated directly as homogeneous,
16
+ comma-separated structure. Add fail-closed compiler analysis for direct map callbacks and fragment
17
+ literals, cardinality-independent artifacts, bounded prepared-cardinality caches, shared grammar
18
+ conformance, and runtime limits while preserving ordinary arrays as single bound values.
19
+ - 5d5d849: Add deterministic conformance failure injection and expose the bounded config and language-server cache defaults used by reliability suites.
20
+ - 1c64475: Add deterministic versioned dialect capability states backed by normalized server versions,
21
+ settings, extensions, and compile options. Query manifests now invalidate on capability changes and
22
+ record evidence for capabilities each query uses, while the CLI exposes a human-readable capability
23
+ report. The boolean capability map remains available as an additive migration bridge.
24
+
25
+ ### Patch Changes
26
+
27
+ - 0efc90c: Add neutral column charset and collation evidence, generated versioned MySQL built-in catalogs,
28
+ catalog-backed type and function availability, MySQL collation coercibility, and signed/unsigned
29
+ numeric expression resolution.
30
+ Conformance v2 now compares grammar analysis against the neutral resolved-column contract while
31
+ allowing grammar-owned result evidence.
32
+ - Updated dependencies [58bd4d1]
33
+ - Updated dependencies [58aa9ef]
34
+ - Updated dependencies [65b662f]
35
+ - Updated dependencies [e433feb]
36
+ - Updated dependencies [0efc90c]
37
+ - Updated dependencies [ff0e3bb]
38
+ - Updated dependencies [6f5b977]
39
+ - Updated dependencies [1c64475]
40
+ - Updated dependencies [1c64475]
41
+ - Updated dependencies [1c64475]
42
+ - Updated dependencies [4a12de5]
43
+ - Updated dependencies [1c64475]
44
+ - @typed-sql/core@2.1.0-rc.0
45
+ - @typed-sql/compiler@2.1.0-rc.0
46
+
47
+ ## 2.0.0
48
+
49
+ ### Major Changes
50
+
51
+ - 58297bf: Publish the versioned public grammar conformance kit with typed fixture builders, required inference
52
+ probes, explicit capability suites, fail-closed semantics, structural variants, driver-free runtime
53
+ adapter and codec assertions, and normalized performance evidence.
54
+
55
+ ### Patch Changes
56
+
57
+ - Updated dependencies [7ea5d2f]
58
+ - Updated dependencies [29afc3d]
59
+ - Updated dependencies [3f063f6]
60
+ - Updated dependencies [6a7ae58]
61
+ - Updated dependencies [b06fd0a]
62
+ - Updated dependencies [9c72dab]
63
+ - Updated dependencies [3050209]
64
+ - Updated dependencies [1b054b6]
65
+ - Updated dependencies [b4f1b6e]
66
+ - Updated dependencies [87189c3]
67
+ - Updated dependencies [e654fae]
68
+ - Updated dependencies [b2ec119]
69
+ - @typed-sql/core@2.0.0
70
+ - @typed-sql/compiler@2.0.0
71
+
3
72
  ## 2.0.0-rc.1
4
73
 
5
74
  ### Patch Changes
package/README.md CHANGED
@@ -1,33 +1,43 @@
1
1
  # @typed-sql/conformance
2
2
 
3
- Executable compatibility tests for first- and third-party typed-sql grammar packages.
3
+ Versioned, feature-addressable compatibility and differential tests for first- and third-party typed-sql grammars.
4
4
 
5
5
  Release track: **stable**.
6
6
 
7
- The kit verifies the public dialect contract, required inference families, explicit capability
8
- claims, fail-closed diagnostics, semantic evidence, structural variants, codecs, and reproducible
9
- analysis performance. It imports only grammar-neutral public packages and does not install Poku or
10
- a database driver.
7
+ The v2 kit joins parser, resolver, compiler, rendering, prepare, execution, and plan evidence in one
8
+ machine-readable report. Probe IDs are permanent, target selection is version/capability aware, and
9
+ skipped or quarantined layers never count toward an exact completeness claim. The package installs no
10
+ database driver; applications and E2E projects supply live adapters explicitly.
11
11
 
12
12
  ```ts
13
13
  import {
14
- assertGrammarConformance,
15
- defineGrammarConformanceFixture,
16
- GRAMMAR_CONFORMANCE_VERSION,
17
- } from "@typed-sql/conformance";
18
- import { describe, it } from "poku";
19
- import { acme, acmeFixture } from "./grammar.js";
20
-
21
- await describe("acme grammar", async () => {
22
- await it("passes the typed-sql contract", () => {
23
- assertGrammarConformance(defineGrammarConformanceFixture({
24
- version: GRAMMAR_CONFORMANCE_VERSION,
25
- dialect: acme(),
26
- ...acmeFixture,
27
- }));
28
- });
14
+ CONFORMANCE_VERSION,
15
+ defineConformanceSuite,
16
+ runStaticConformanceProbe,
17
+ } from "@typed-sql/conformance/v2";
18
+
19
+ const suite = defineConformanceSuite({
20
+ version: CONFORMANCE_VERSION,
21
+ name: "acme",
22
+ probes: [selectProbe],
23
+ });
24
+
25
+ const result = runStaticConformanceProbe(suite.probes[0], target, {
26
+ dialect: acme(),
27
+ snapshot,
28
+ renderer,
29
+ parse,
29
30
  });
30
31
  ```
31
32
 
33
+ The package-root v1 fixture helpers remain available for typed-sql 2.x consumers. Use
34
+ `runAdaptedGrammarConformanceV1()` from the v2 subpath while migrating; adapted probes expose missing
35
+ layers as skips and therefore cannot inflate exact coverage. The v1 API is removed in typed-sql 3.0.
36
+
37
+ Repository maintainers can run the static kit with `pnpm conformance:v2` and all live targets with
38
+ `pnpm conformance:live`. A failure reproduction can be rerun with the emitted `--grammar`, `--probe`,
39
+ `--database-version`, and optional `--fixture-group` filters. Live reports and reproductions contain
40
+ normalized evidence only; adapter error details and bound values are redacted.
41
+
32
42
  See the [custom grammar guide](https://lojhan.github.io/typed-sql/extending/custom-grammars.html)
33
43
  for the complete fixture and compatibility policy.
@@ -1,8 +1,14 @@
1
1
  import { type SchemaSnapshot } from "@typed-sql/core";
2
- import { type CodecConformanceFixture, type GrammarConformanceFixture, type GrammarConformanceReport, type RuntimeAdapterConformanceFixture } from "./types.js";
2
+ import { type CodecConformanceFixture, type FragmentListConformanceFixture, type FragmentListConformanceReport, type GrammarConformanceFixture, type GrammarConformanceReport, type RuntimeAdapterConformanceFixture, type VersionedCapabilityConformanceFixture } from "./types.js";
3
+ /** @deprecated Use `defineConformanceSuite` from `@typed-sql/conformance/v2`. Removed in typed-sql 3.0. */
3
4
  export declare function defineGrammarConformanceFixture<Snapshot extends SchemaSnapshot, Policy>(fixture: GrammarConformanceFixture<Snapshot, Policy>): GrammarConformanceFixture<Snapshot, Policy>;
4
5
  export declare function defineCodecConformanceFixture<Input, Output>(fixture: CodecConformanceFixture<Input, Output>): CodecConformanceFixture<Input, Output>;
6
+ /** @deprecated Use the layer runners from `@typed-sql/conformance/v2`. Removed in typed-sql 3.0. */
5
7
  export declare function assertGrammarConformance<Snapshot extends SchemaSnapshot, Policy>(fixture: GrammarConformanceFixture<Snapshot, Policy>): GrammarConformanceReport;
8
+ /** Verifies deterministic, frozen version and condition boundaries without knowing vendor rules. */
9
+ export declare function assertVersionedCapabilityConformance<Snapshot extends SchemaSnapshot, Policy>(fixture: VersionedCapabilityConformanceFixture<Snapshot, Policy>): void;
6
10
  export declare function assertCodecConformance<Input, Output>(fixture: CodecConformanceFixture<Input, Output>): void;
7
11
  export declare function assertRuntimeAdapterConformance<Row, Parameters extends readonly unknown[]>(fixture: RuntimeAdapterConformanceFixture<Row, Parameters>): Promise<void>;
12
+ /** Verifies the shared compiler artifact, grammar analysis, diagnostics, and 1/2/5-row rendering contract. */
13
+ export declare function assertFragmentListConformance<Snapshot extends SchemaSnapshot, Policy>(fixture: FragmentListConformanceFixture<Snapshot, Policy>): FragmentListConformanceReport;
8
14
  //# sourceMappingURL=assertions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assertions.d.ts","sourceRoot":"","sources":["../../../../src/assertions.ts"],"names":[],"mappings":"AAEA,OAAO,EAWL,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,uBAAuB,EAG5B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAK7B,KAAK,gCAAgC,EACtC,MAAM,YAAY,CAAC;AAEpB,wBAAgB,+BAA+B,CAAC,QAAQ,SAAS,cAAc,EAAE,MAAM,EACrF,OAAO,EAAE,yBAAyB,CAAC,QAAQ,EAAE,MAAM,CAAC,GACnD,yBAAyB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAE7C;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,EACzD,OAAO,EAAE,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,GAC9C,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAExC;AAkID,wBAAgB,wBAAwB,CAAC,QAAQ,SAAS,cAAc,EAAE,MAAM,EAC9E,OAAO,EAAE,yBAAyB,CAAC,QAAQ,EAAE,MAAM,CAAC,GACnD,wBAAwB,CAiG1B;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAK3G;AAED,wBAAsB,+BAA+B,CAAC,GAAG,EAAE,UAAU,SAAS,SAAS,OAAO,EAAE,EAC9F,OAAO,EAAE,gCAAgC,CAAC,GAAG,EAAE,UAAU,CAAC,GACzD,OAAO,CAAC,IAAI,CAAC,CAoBf"}
1
+ {"version":3,"file":"assertions.d.ts","sourceRoot":"","sources":["../../../../src/assertions.ts"],"names":[],"mappings":"AAEA,OAAO,EAaL,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,EAGlC,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAK7B,KAAK,gCAAgC,EACrC,KAAK,qCAAqC,EAC3C,MAAM,YAAY,CAAC;AAEpB,2GAA2G;AAC3G,wBAAgB,+BAA+B,CAAC,QAAQ,SAAS,cAAc,EAAE,MAAM,EACrF,OAAO,EAAE,yBAAyB,CAAC,QAAQ,EAAE,MAAM,CAAC,GACnD,yBAAyB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAE7C;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,EACzD,OAAO,EAAE,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,GAC9C,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAExC;AAkID,oGAAoG;AACpG,wBAAgB,wBAAwB,CAAC,QAAQ,SAAS,cAAc,EAAE,MAAM,EAC9E,OAAO,EAAE,yBAAyB,CAAC,QAAQ,EAAE,MAAM,CAAC,GACnD,wBAAwB,CAmG1B;AAED,oGAAoG;AACpG,wBAAgB,oCAAoC,CAAC,QAAQ,SAAS,cAAc,EAAE,MAAM,EAC1F,OAAO,EAAE,qCAAqC,CAAC,QAAQ,EAAE,MAAM,CAAC,GAC/D,IAAI,CA4BN;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAK3G;AAED,wBAAsB,+BAA+B,CAAC,GAAG,EAAE,UAAU,SAAS,SAAS,OAAO,EAAE,EAC9F,OAAO,EAAE,gCAAgC,CAAC,GAAG,EAAE,UAAU,CAAC,GACzD,OAAO,CAAC,IAAI,CAAC,CAoBf;AAgBD,8GAA8G;AAC9G,wBAAgB,6BAA6B,CAAC,QAAQ,SAAS,cAAc,EAAE,MAAM,EACnF,OAAO,EAAE,8BAA8B,CAAC,QAAQ,EAAE,MAAM,CAAC,GACxD,6BAA6B,CA4E/B"}
@@ -1,7 +1,8 @@
1
1
  import { strict as assert } from "node:assert";
2
2
  import { compileSource } from "@typed-sql/compiler";
3
- import { assertDialectPlugin, createDatabase, DIALECT_CONTRACT_VERSION, defineConfig, parameterTypeLiteral, QUERY_SEMANTICS_VERSION, renderQuery, rowTypeLiteral, } from "@typed-sql/core";
3
+ import { assertDialectPlugin, createDatabase, DIALECT_CONTRACT_VERSION, defineConfig, parameterTypeLiteral, QUERY_SEMANTICS_VERSION, renderQuery, resolveDialectCapabilityStates, rowTypeLiteral, } from "@typed-sql/core";
4
4
  import { GRAMMAR_CONFORMANCE_VERSION, REQUIRED_GRAMMAR_PROBES, } from "./types.js";
5
+ /** @deprecated Use `defineConformanceSuite` from `@typed-sql/conformance/v2`. Removed in typed-sql 3.0. */
5
6
  export function defineGrammarConformanceFixture(fixture) {
6
7
  return Object.freeze(fixture);
7
8
  }
@@ -99,6 +100,7 @@ function assertUnsupported(fixture, probe, label) {
99
100
  assert.strictEqual(compiled.queries.length, 0, `${label} was optimistically compiled`);
100
101
  assert.ok(compiled.diagnostics.some(({ code }) => code === probe.diagnosticCode), `${label} compiler diagnostic`);
101
102
  }
103
+ /** @deprecated Use the layer runners from `@typed-sql/conformance/v2`. Removed in typed-sql 3.0. */
102
104
  export function assertGrammarConformance(fixture) {
103
105
  assert.strictEqual(fixture.version, GRAMMAR_CONFORMANCE_VERSION, "Unsupported grammar conformance fixture");
104
106
  assertDialectPlugin(fixture.dialect);
@@ -124,6 +126,7 @@ export function assertGrammarConformance(fixture) {
124
126
  assertAnalysis(fixture.dialect.analyze(probe.sql, fixture.snapshot), probe, `${fixture.name}.${probeName}`);
125
127
  }
126
128
  const capabilityNames = Object.keys(fixture.dialect.capabilities).sort();
129
+ const capabilityStates = resolveDialectCapabilityStates(fixture.dialect, fixture.snapshot);
127
130
  assert.deepStrictEqual(fixture.capabilities.map(({ capability }) => capability).sort(), capabilityNames, `${fixture.name} must provide exactly one probe for every declared capability`);
128
131
  assert.strictEqual(new Set(fixture.capabilities.map(({ capability }) => capability)).size, capabilityNames.length);
129
132
  for (const capability of fixture.capabilities) {
@@ -166,9 +169,32 @@ export function assertGrammarConformance(fixture) {
166
169
  grammarVersion: fixture.dialect.grammarVersion,
167
170
  requiredProbes: REQUIRED_GRAMMAR_PROBES,
168
171
  capabilities: Object.freeze({ ...fixture.dialect.capabilities }),
172
+ capabilityStates,
169
173
  structuralVariants: compiled.variantFingerprints.length,
170
174
  });
171
175
  }
176
+ /** Verifies deterministic, frozen version and condition boundaries without knowing vendor rules. */
177
+ export function assertVersionedCapabilityConformance(fixture) {
178
+ assert.ok(fixture.probes.length > 0, "Versioned capability conformance requires at least one probe");
179
+ assert.strictEqual(new Set(fixture.probes.map(({ name }) => name)).size, fixture.probes.length, "Probe names must be unique");
180
+ for (const probe of fixture.probes) {
181
+ const first = resolveDialectCapabilityStates(fixture.dialect, probe.snapshot, probe.policy);
182
+ const second = resolveDialectCapabilityStates(fixture.dialect, probe.snapshot, probe.policy);
183
+ assert.deepStrictEqual(second, first, `${probe.name} capability resolution must be deterministic`);
184
+ assertDeepFrozen(first);
185
+ for (const expected of probe.expected) {
186
+ const state = first[expected.capability];
187
+ assert.ok(state !== undefined, `${probe.name}.${expected.capability} was not declared`);
188
+ assert.strictEqual(state.level, expected.level, `${probe.name}.${expected.capability} level`);
189
+ if (expected.diagnostic !== undefined) {
190
+ assert.strictEqual(state.diagnostic, expected.diagnostic, `${probe.name}.${expected.capability} diagnostic`);
191
+ }
192
+ if (expected.evidenceKinds !== undefined) {
193
+ assert.deepStrictEqual([...new Set(state.evidence.map(({ kind }) => kind))].sort(), [...expected.evidenceKinds].sort(), `${probe.name}.${expected.capability} evidence kinds`);
194
+ }
195
+ }
196
+ }
197
+ }
172
198
  export function assertCodecConformance(fixture) {
173
199
  assert.ok(fixture.cases.length > 0, `${fixture.name} codec suite has no cases`);
174
200
  for (const testCase of fixture.cases) {
@@ -191,4 +217,66 @@ export async function assertRuntimeAdapterConformance(fixture) {
191
217
  assert.deepStrictEqual(await database.transaction((transaction) => transaction.execute(fixture.query)), fixture.rows, `${fixture.name} transaction rows`);
192
218
  assert.deepStrictEqual(calls, [rendered, rendered], `${fixture.name} adapter dispatch`);
193
219
  }
220
+ function fragmentParameter(parameter) {
221
+ return {
222
+ index: parameter.index,
223
+ tsType: parameter.tsType,
224
+ nullable: parameter.nullable,
225
+ ...(parameter.databaseType === undefined ? {} : { databaseType: parameter.databaseType }),
226
+ };
227
+ }
228
+ /** Verifies the shared compiler artifact, grammar analysis, diagnostics, and 1/2/5-row rendering contract. */
229
+ export function assertFragmentListConformance(fixture) {
230
+ assertDialectPlugin(fixture.dialect);
231
+ assert.strictEqual(fixture.snapshot.dialect, fixture.dialect.id, `${fixture.name} snapshot dialect`);
232
+ assert.deepStrictEqual(fixture.renderCases.map(({ cardinality }) => cardinality).sort((left, right) => left - right), [1, 2, 5], `${fixture.name} must cover 1, 2, and 5 rendered items`);
233
+ assert.strictEqual(new Set(fixture.renderCases.map(({ name }) => name)).size, fixture.renderCases.length, `${fixture.name} render case names must be unique`);
234
+ const compilation = compileSource({
235
+ source: fixture.compilerSource,
236
+ dialect: fixture.dialect,
237
+ schema: fixture.snapshot,
238
+ ...(fixture.policy === undefined ? {} : { typePolicy: fixture.policy }),
239
+ });
240
+ assert.deepStrictEqual(compilation.diagnostics, [], `${fixture.name} compiler diagnostics`);
241
+ assert.strictEqual(compilation.queries.length, 1, `${fixture.name} compiled query count`);
242
+ const compiled = compilation.queries[0];
243
+ assert.strictEqual(compiled.fragmentList, true, `${fixture.name} fragment-list marker`);
244
+ assert.strictEqual(compiled.parameterType, "readonly unknown[]", `${fixture.name} dynamic parameter type`);
245
+ assert.strictEqual(compiled.rowType, fixture.expectedRowType, `${fixture.name} row type`);
246
+ assert.strictEqual(compiled.variants.length, 1, `${fixture.name} representative variant count`);
247
+ assert.strictEqual(compiled.variants[0]?.sql, fixture.expectedRepresentativeSql, `${fixture.name} representative SQL`);
248
+ const artifact = compiled.repeatedFragments?.[0];
249
+ assert.ok(artifact !== undefined, `${fixture.name} repeated-fragment artifact`);
250
+ assert.strictEqual(compiled.repeatedFragments?.length, 1, `${fixture.name} repeated-fragment artifact count`);
251
+ assert.strictEqual(artifact.kind, "repeated-fragment");
252
+ assert.strictEqual(artifact.minimumItems, 1);
253
+ assert.strictEqual(artifact.separator.text, ", ");
254
+ assert.match(artifact.fingerprint, /^sha256:[a-f\d]{64}$/u);
255
+ assert.ok(Object.isFrozen(artifact) && Object.isFrozen(artifact.parameterPattern));
256
+ assert.deepStrictEqual(artifact.parameterPattern.map(fragmentParameter), fixture.expectedElementParameters.map(fragmentParameter), `${fixture.name} element parameter pattern`);
257
+ const representative = fixture.dialect.analyze(fixture.expectedRepresentativeSql, fixture.snapshot, fixture.policy);
258
+ assert.deepStrictEqual(representative.diagnostics, [], `${fixture.name} representative grammar diagnostics`);
259
+ assert.strictEqual(representative.resultKind ?? "rows", fixture.expectedResultKind, `${fixture.name} result kind`);
260
+ for (const renderCase of fixture.renderCases) {
261
+ const rendered = renderQuery(renderCase.query, fixture.renderer);
262
+ assert.strictEqual(rendered.text, renderCase.expectedText, `${fixture.name}.${renderCase.name} SQL`);
263
+ assert.deepStrictEqual(rendered.values, renderCase.expectedValues, `${fixture.name}.${renderCase.name} values`);
264
+ }
265
+ for (const diagnosticCase of fixture.diagnostics ?? []) {
266
+ const rejected = compileSource({
267
+ source: diagnosticCase.source,
268
+ dialect: fixture.dialect,
269
+ schema: fixture.snapshot,
270
+ ...(fixture.policy === undefined ? {} : { typePolicy: fixture.policy }),
271
+ });
272
+ assert.strictEqual(rejected.queries.length, 0, `${fixture.name}.${diagnosticCase.name} compiled unexpectedly`);
273
+ assert.ok(rejected.diagnostics.some(({ code, severity }) => code === diagnosticCase.diagnosticCode && severity === "error"), `${fixture.name}.${diagnosticCase.name} did not report ${diagnosticCase.diagnosticCode}`);
274
+ }
275
+ return Object.freeze({
276
+ grammar: fixture.dialect.id,
277
+ artifactFingerprint: artifact.fingerprint,
278
+ renderCardinalities: Object.freeze([1, 2, 5]),
279
+ diagnosticCases: fixture.diagnostics?.length ?? 0,
280
+ });
281
+ }
194
282
  //# sourceMappingURL=assertions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../../../src/assertions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../../../src/assertions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EAExB,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,EAGvB,WAAW,EACX,8BAA8B,EAC9B,cAAc,GAGf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAIL,2BAA2B,EAO3B,uBAAuB,GAGxB,MAAM,YAAY,CAAC;AAEpB,2GAA2G;AAC3G,MAAM,UAAU,+BAA+B,CAC7C,OAAoD;IAEpD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,OAA+C;IAE/C,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,WAAW,CAAC,KAAkB,EAAE,MAAc,EAAE,KAAa;IACpE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,GAAG,KAAK,8BAA8B,CAAC,CAAC;IACzG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,4BAA4B,CAAC,CAAC;IAC7G,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,MAAM,EAAE,GAAG,KAAK,gCAAgC,CAAC,CAAC;IACzE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,KAAK,sBAAsB,CAAC,CAAC;IAC/F,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,GAAG,KAAK,wBAAwB,CAAC,CAAC;AACvG,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,IAAI,GAAG,IAAI,GAAG,EAAU;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO;IAC3E,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,yCAAyC,CAAC,CAAC;IAC7E,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,iBAAiB,CACxB,MAA8C,EAC9C,QAAsC;IAEtC,OAAO,CACL,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;QAC7B,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QACjC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;QAC7B,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QACjC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAClC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,SAAyB,EACzB,QAAoC,EACpC,SAAiB,EACjB,KAAa;IAEb,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,uBAAuB,EAAE,GAAG,KAAK,sCAAsC,CAAC,CAAC;IAC/G,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC,CAAC;IACxF,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,EAAE,GAAG,KAAK,aAAa,CAAC,CAAC;IAC3F,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,IAAI,MAAM,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC;IAC5F,MAAM,CAAC,WAAW,CAChB,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAClC,QAAQ,CAAC,kBAAkB,IAAI,MAAM,EACrC,GAAG,KAAK,sBAAsB,CAC/B,CAAC;IACF,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,IAAI,CAAC,EAAE,GAAG,KAAK,sBAAsB,CAAC,CAAC;IACpH,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,EAAE,GAAG,KAAK,sBAAsB,CAAC,CAAC;IAC/G,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,wBAAwB,CAAC,CAAC;IACtH,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;QACrD,MAAM,CAAC,EAAE,CACP,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAC9E,GAAG,KAAK,eAAe,UAAU,CAAC,IAAI,eAAe,UAAU,CAAC,IAAI,EAAE,CACvE,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI;QACjC,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC3C,CAAC,aAAa,EAAE,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC;QAC/C,CAAC,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC7C,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;QACvC,CAAC,qBAAqB,EAAE,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC;KACtD,EAAE,CAAC;QACX,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,QAAQ,kBAAkB,CAAC,CAAC;QACvE,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE;YAC5C,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,IAAI,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;IACzE,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QACnE,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,eAAe,KAAK,GAAG,CAAC,CAAC;IAC5E,CAAC;IACD,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,KAAa;IAC/C,MAAM,CAAC,EAAE,CAAC,CAAC,oCAAoC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,kBAAkB,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,cAAc,CAAC,QAAyB,EAAE,KAA2B,EAAE,KAAa;IAC3F,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,uBAAuB,IAAI,EAAE,EAAE,GAAG,KAAK,cAAc,CAAC,CAAC;IACrG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,IAAI,MAAM,EAAE,KAAK,CAAC,kBAAkB,EAAE,GAAG,KAAK,cAAc,CAAC,CAAC;IACpG,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACtF,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,eAAe,EAAE,GAAG,KAAK,WAAW,CAAC,CAAC;IACxE,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,qBAAqB,EAAE,GAAG,KAAK,iBAAiB,CAAC,CAAC;IAC1F,WAAW,CAAC,OAAO,EAAE,GAAG,KAAK,WAAW,CAAC,CAAC;IAC1C,WAAW,CAAC,aAAa,EAAE,GAAG,KAAK,iBAAiB,CAAC,CAAC;IACtD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACzD,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,WAAW,KAAK,GAAG,CAAC,CAAC;IAC3E,CAAC;IACD,eAAe,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAoD,EACpD,KAA8B,EAC9B,KAAa;IAEb,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtE,MAAM,CAAC,EAAE,CACP,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,cAAc,IAAI,QAAQ,KAAK,OAAO,CAAC,EACxG,GAAG,KAAK,mBAAmB,KAAK,CAAC,cAAc,EAAE,CAClD,CAAC;IACF,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,6BAA6B,CAAC,CAAC;IACzG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,8BAA8B,CAAC,CAAC;IAC3G,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,2BAA2B,CAAC,CAAC;IACrG,MAAM,CAAC,WAAW,CAChB,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAC3C,SAAS,EACT,GAAG,KAAK,uCAAuC,CAChD,CAAC;IACF,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,+BAA+B,CAAC,CAAC;IAC/G,MAAM,MAAM,GAAG;QACb,uBAAuB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG;QACnE,oBAAoB;QACpB,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC;QAC9B,IAAI;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/F,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,KAAK,8BAA8B,CAAC,CAAC;IACvF,MAAM,CAAC,EAAE,CACP,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,cAAc,CAAC,EACtE,GAAG,KAAK,sBAAsB,CAC/B,CAAC;AACJ,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,wBAAwB,CACtC,OAAoD;IAEpD,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,2BAA2B,EAAE,yCAAyC,CAAC,CAAC;IAC5G,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,wBAAwB,CAAC,CAAC;IAC9E,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CACvB,YAAY,CAAC;QACX,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;QAC/B,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB;KAC9C,CAAC,CACH,CAAC;IACF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;IAC5G,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3E,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAClG,MAAM,CAAC,WAAW,CAChB,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,EACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CACrD,CAAC;IACF,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CACjB,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,CAClG,CAAC;IACF,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IAE/G,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,uBAAuB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAChG,KAAK,MAAM,SAAS,IAAI,uBAAuB,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;IACzE,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3F,MAAM,CAAC,eAAe,CACpB,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAC/D,eAAe,EACf,GAAG,OAAO,CAAC,IAAI,+DAA+D,CAC/E,CAAC;IACF,MAAM,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACnH,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QAC9C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QAC9F,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACzB,cAAc,CACZ,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,EAClE,UAAU,CAAC,QAAQ,EACnB,GAAG,OAAO,CAAC,IAAI,eAAe,UAAU,CAAC,UAAU,EAAE,CACtD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,eAAe,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5G,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,cAAc,CAAC,CAAC;IAE/E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACtF,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;QAC7E,IAAI,MAAM,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;YAC/C,MAAM,CAAC,WAAW,CAChB,oBAAoB,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,EAChE,MAAM,CAAC,qBAAqB,CAC7B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,CAAC;QAC/B,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM;QACjC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,QAAQ;KACzB,CAAC,CAAC;IACH,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,yBAAyB,CAAC,CAAC;IAC7F,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,yBAAyB,CAAC,CAAC;IAC3F,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;IACxC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACjG,MAAM,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACxG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IACzE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;IACrF,eAAe,CACb,QAAQ,CAAC,SAAS,EAClB,OAAO,CAAC,UAAU,CAAC,iBAAiB,EACpC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAChC,GAAG,OAAO,CAAC,IAAI,aAAa,CAC7B,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,2BAA2B;QACpC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc;QAC9C,cAAc,EAAE,uBAAuB;QACvC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAChE,gBAAgB;QAChB,kBAAkB,EAAE,QAAQ,CAAC,mBAAmB,CAAC,MAAM;KACxD,CAAC,CAAC;AACL,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,oCAAoC,CAClD,OAAgE;IAEhE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,8DAA8D,CAAC,CAAC;IACrG,MAAM,CAAC,WAAW,CAChB,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACpD,OAAO,CAAC,MAAM,CAAC,MAAM,EACrB,4BAA4B,CAC7B,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,8BAA8B,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5F,MAAM,MAAM,GAAG,8BAA8B,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7F,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,8CAA8C,CAAC,CAAC;QACnG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACzC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,mBAAmB,CAAC,CAAC;YACxF,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,QAAQ,CAAC,CAAC;YAC9F,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACtC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,aAAa,CAAC,CAAC;YAC/G,CAAC;YACD,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBACzC,MAAM,CAAC,eAAe,CACpB,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAC3D,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,EAClC,GAAG,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,iBAAiB,CACtD,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAgB,OAA+C;IACnG,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,2BAA2B,CAAC,CAAC;IAChF,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACrC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAChH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,OAA0D;IAE1D,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9D,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,eAAe,CAAC,CAAC;IACxF,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,kBAAkB,CAAC,CAAC;IAEnG,MAAM,KAAK,GAAqE,EAAE,CAAC;IACnF,MAAM,QAAQ,GAAG;QACf,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,MAA0B;YACpD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7B,OAAO,OAAO,CAAC,IAAI,CAAC;QACtB,CAAC;KACF,CAAC;IACF,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1F,MAAM,CAAC,eAAe,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,iBAAiB,CAAC,CAAC;IAC9G,MAAM,CAAC,eAAe,CACpB,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAC/E,OAAO,CAAC,IAAI,EACZ,GAAG,OAAO,CAAC,IAAI,mBAAmB,CACnC,CAAC;IACF,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,mBAAmB,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,iBAAiB,CAAC,SAK1B;IACC,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,GAAG,CAAC,SAAS,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC;KAC1F,CAAC;AACJ,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,6BAA6B,CAC3C,OAAyD;IAEzD,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,mBAAmB,CAAC,CAAC;IACrG,MAAM,CAAC,eAAe,CACpB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,EAC7F,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,GAAG,OAAO,CAAC,IAAI,wCAAwC,CACxD,CAAC;IACF,MAAM,CAAC,WAAW,CAChB,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACzD,OAAO,CAAC,WAAW,CAAC,MAAM,EAC1B,GAAG,OAAO,CAAC,IAAI,mCAAmC,CACnD,CAAC;IAEF,MAAM,WAAW,GAAG,aAAa,CAAC;QAChC,MAAM,EAAE,OAAO,CAAC,cAAc;QAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,QAAQ;QACxB,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;KACxE,CAAC,CAAC;IACH,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,uBAAuB,CAAC,CAAC;IAC5F,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,uBAAuB,CAAC,CAAC;IAC1F,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;IACzC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,uBAAuB,CAAC,CAAC;IACxF,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,IAAI,yBAAyB,CAAC,CAAC;IAC3G,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,WAAW,CAAC,CAAC;IAC1F,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,+BAA+B,CAAC,CAAC;IAChG,MAAM,CAAC,WAAW,CAChB,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EACzB,OAAO,CAAC,yBAAyB,EACjC,GAAG,OAAO,CAAC,IAAI,qBAAqB,CACrC,CAAC;IACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,CAAC,QAAQ,KAAK,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,6BAA6B,CAAC,CAAC;IAChF,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,mCAAmC,CAAC,CAAC;IAC9G,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACvD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAC7C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAC5D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACnF,MAAM,CAAC,eAAe,CACpB,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAChD,OAAO,CAAC,yBAAyB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EACxD,GAAG,OAAO,CAAC,IAAI,4BAA4B,CAC5C,CAAC;IAEF,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpH,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,qCAAqC,CAAC,CAAC;IAC7G,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,IAAI,MAAM,EAAE,OAAO,CAAC,kBAAkB,EAAE,GAAG,OAAO,CAAC,IAAI,cAAc,CAAC,CAAC;IAEnH,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,KAA2C,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC;QACrG,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,SAAS,CAAC,CAAC;IAClH,CAAC;IAED,KAAK,MAAM,cAAc,IAAI,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,aAAa,CAAC;YAC7B,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,QAAQ;YACxB,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;SACxE,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,wBAAwB,CAAC,CAAC;QAC/G,MAAM,CAAC,EAAE,CACP,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc,IAAI,QAAQ,KAAK,OAAO,CAAC,EACjH,GAAG,OAAO,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,mBAAmB,cAAc,CAAC,cAAc,EAAE,CACzF,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,mBAAmB,EAAE,QAAQ,CAAC,WAAW;QACzC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAU,CAAC;QACtD,eAAe,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;KAClD,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,24 @@
1
+ export declare const INJECTED_FAILURE_CODE: "TSQL_CONFORMANCE_INJECTED_FAILURE";
2
+ export interface FailureInjection {
3
+ readonly point: string;
4
+ readonly occurrence?: number;
5
+ readonly message?: string;
6
+ }
7
+ export interface FailureInjectionSnapshot {
8
+ readonly hits: Readonly<Record<string, number>>;
9
+ readonly remaining: readonly FailureInjection[];
10
+ }
11
+ export declare class ConformanceInjectedFailure extends Error {
12
+ readonly code: "TSQL_CONFORMANCE_INJECTED_FAILURE";
13
+ readonly point: string;
14
+ readonly occurrence: number;
15
+ constructor(point: string, occurrence: number, message?: string);
16
+ }
17
+ export interface FailureInjector {
18
+ readonly hit: (point: string) => void;
19
+ readonly run: <Value>(point: string, operation: () => Value) => Value;
20
+ readonly runAsync: <Value>(point: string, operation: () => Promise<Value>) => Promise<Value>;
21
+ readonly snapshot: () => FailureInjectionSnapshot;
22
+ }
23
+ export declare function createFailureInjector(injections: readonly FailureInjection[]): FailureInjector;
24
+ //# sourceMappingURL=failure-injection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-injection.d.ts","sourceRoot":"","sources":["../../../../src/failure-injection.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,EAAG,mCAA4C,CAAC;AAElF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACjD;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,IAAI,sCAAyB;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,YAAY,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAK9D;CACF;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,KAAK,KAAK,CAAC;IACtE,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7F,QAAQ,CAAC,QAAQ,EAAE,MAAM,wBAAwB,CAAC;CACnD;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,SAAS,gBAAgB,EAAE,GAAG,eAAe,CAqC9F"}
@@ -0,0 +1,52 @@
1
+ export const INJECTED_FAILURE_CODE = "TSQL_CONFORMANCE_INJECTED_FAILURE";
2
+ export class ConformanceInjectedFailure extends Error {
3
+ code = INJECTED_FAILURE_CODE;
4
+ point;
5
+ occurrence;
6
+ constructor(point, occurrence, message) {
7
+ super(message ?? `Injected conformance failure at ${point} occurrence ${occurrence}`);
8
+ this.name = "ConformanceInjectedFailure";
9
+ this.point = point;
10
+ this.occurrence = occurrence;
11
+ }
12
+ }
13
+ export function createFailureInjector(injections) {
14
+ const scheduled = injections.map((injection) => {
15
+ if (typeof injection.point !== "string" || injection.point.length === 0)
16
+ throw new TypeError("Failure injection point must be a non-empty string");
17
+ const occurrence = injection.occurrence ?? 1;
18
+ if (!Number.isSafeInteger(occurrence) || occurrence < 1)
19
+ throw new TypeError("Failure injection occurrence must be a positive safe integer");
20
+ return Object.freeze({ ...injection, occurrence });
21
+ });
22
+ const hits = new Map();
23
+ const consumed = new Set();
24
+ const hit = (point) => {
25
+ const occurrence = (hits.get(point) ?? 0) + 1;
26
+ hits.set(point, occurrence);
27
+ for (const [index, injection] of scheduled.entries()) {
28
+ if (consumed.has(index) || injection.point !== point || injection.occurrence !== occurrence)
29
+ continue;
30
+ consumed.add(index);
31
+ throw new ConformanceInjectedFailure(point, occurrence, injection.message);
32
+ }
33
+ };
34
+ return Object.freeze({
35
+ hit,
36
+ run(point, operation) {
37
+ hit(point);
38
+ return operation();
39
+ },
40
+ async runAsync(point, operation) {
41
+ hit(point);
42
+ return operation();
43
+ },
44
+ snapshot() {
45
+ return Object.freeze({
46
+ hits: Object.freeze(Object.fromEntries([...hits].sort(([left], [right]) => left.localeCompare(right)))),
47
+ remaining: Object.freeze(scheduled.filter((_injection, index) => !consumed.has(index))),
48
+ });
49
+ },
50
+ });
51
+ }
52
+ //# sourceMappingURL=failure-injection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-injection.js","sourceRoot":"","sources":["../../../../src/failure-injection.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,mCAA4C,CAAC;AAalF,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC1C,IAAI,GAAG,qBAAqB,CAAC;IAC7B,KAAK,CAAS;IACd,UAAU,CAAS;IAE5B,YAAY,KAAa,EAAE,UAAkB,EAAE,OAAgB;QAC7D,KAAK,CAAC,OAAO,IAAI,mCAAmC,KAAK,eAAe,UAAU,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AASD,MAAM,UAAU,qBAAqB,CAAC,UAAuC;IAC3E,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAC7C,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YACrE,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC;YACrD,MAAM,IAAI,SAAS,CAAC,8DAA8D,CAAC,CAAC;QACtF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,GAAG,GAAG,CAAC,KAAa,EAAQ,EAAE;QAClC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC5B,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YACrD,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,UAAU,KAAK,UAAU;gBAAE,SAAS;YACtG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,IAAI,0BAA0B,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG;QACH,GAAG,CAAQ,KAAa,EAAE,SAAsB;YAC9C,GAAG,CAAC,KAAK,CAAC,CAAC;YACX,OAAO,SAAS,EAAE,CAAC;QACrB,CAAC;QACD,KAAK,CAAC,QAAQ,CAAQ,KAAa,EAAE,SAA+B;YAClE,GAAG,CAAC,KAAK,CAAC,CAAC;YACX,OAAO,SAAS,EAAE,CAAC;QACrB,CAAC;QACD,QAAQ;YACN,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvG,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;aACxF,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { GrammarFeatureLedger } from "./feature-ledger.js";
2
+ /** Renders the canonical public support matrix from a validated feature ledger. */
3
+ export declare function renderFeatureLedgerDocumentation(ledger: GrammarFeatureLedger): string;
4
+ //# sourceMappingURL=feature-ledger-markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-ledger-markdown.d.ts","sourceRoot":"","sources":["../../../../src/feature-ledger-markdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAwBhE,mFAAmF;AACnF,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAwCrF"}
@@ -0,0 +1,58 @@
1
+ function escapeCell(value) {
2
+ return value.replaceAll("|", "\\|").replaceAll("\n", " ");
3
+ }
4
+ function ranges(ledger, dialect, kind) {
5
+ const selected = ledger.dialects[dialect]?.[kind] ?? [];
6
+ if (selected.length === 0)
7
+ return "None";
8
+ return selected.map(({ minimum, maximum }) => (minimum === maximum ? minimum : `${minimum}–${maximum}`)).join(", ");
9
+ }
10
+ function supportCell(ledger, featureId, dialect) {
11
+ const support = ledger.entries.find(({ id }) => id === featureId)?.dialects[dialect];
12
+ if (support === undefined)
13
+ return "unclassified";
14
+ const version = [
15
+ support.introduced === undefined ? undefined : `from ${support.introduced}`,
16
+ support.removed === undefined ? undefined : `before ${support.removed}`,
17
+ ]
18
+ .filter((value) => value !== undefined)
19
+ .join(", ");
20
+ return version.length === 0 ? support.level : `${support.level} (${version})`;
21
+ }
22
+ /** Renders the canonical public support matrix from a validated feature ledger. */
23
+ export function renderFeatureLedgerDocumentation(ledger) {
24
+ const dialects = Object.keys(ledger.dialects);
25
+ const lines = [
26
+ "---",
27
+ "title: Grammar support",
28
+ "description: Version policy and exact, conservative, unsupported, or out-of-scope status for typed-sql grammar features.",
29
+ "---",
30
+ "",
31
+ "# Grammar support",
32
+ "",
33
+ "typed-sql classifies its application-query surface explicitly. `exact` means row types, ordered parameters, diagnostics, and relevant semantics are proven by executable tests. `conservative` means uncertain results remain `unknown`. `unsupported` and `out-of-scope` features fail closed instead of receiving optimistic inference.",
34
+ "",
35
+ "The ranges below describe supported language lines. Exact server patches exercised by release CI are recorded separately from these ranges; an unrecognized future version remains conservative until its behavior is classified.",
36
+ "",
37
+ "## Version policy",
38
+ "",
39
+ "| Grammar | Stable range or lines | Canary range or lines |",
40
+ "| --- | --- | --- |",
41
+ ...dialects.map((dialect) => `| ${escapeCell(ledger.dialects[dialect].title)} | ${ranges(ledger, dialect, "stable")} | ${ranges(ledger, dialect, "canary")} |`),
42
+ "",
43
+ "## Feature classifications",
44
+ "",
45
+ `| Feature | Category | ${dialects.map((dialect) => ledger.dialects[dialect].title).join(" | ")} |`,
46
+ `| --- | --- | ${dialects.map(() => "---").join(" | ")} |`,
47
+ ...ledger.entries.map((entry) => `| \`${entry.id}\` — ${escapeCell(entry.title)} | ${entry.category} | ${dialects
48
+ .map((dialect) => escapeCell(supportCell(ledger, entry.id, dialect)))
49
+ .join(" | ")} |`),
50
+ "",
51
+ "Administrative, replication, maintenance, and procedural command languages are outside the application-query contract. They receive syntax, unsupported, or dynamic-query diagnostics when encountered through static analysis.",
52
+ "",
53
+ "This page is generated from `grammar/features/ledger.json`. Update the ledger, its executable evidence, and this page together.",
54
+ "",
55
+ ];
56
+ return lines.join("\n");
57
+ }
58
+ //# sourceMappingURL=feature-ledger-markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-ledger-markdown.js","sourceRoot":"","sources":["../../../../src/feature-ledger-markdown.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ export declare const FEATURE_LEDGER_FORMAT_VERSION: 1;
2
+ export type GrammarFeatureCategory = "lexical" | "statement" | "clause" | "expression" | "operator" | "function-family" | "type-family" | "coercion" | "semantic" | "schema" | "runtime" | "tooling";
3
+ export type GrammarFeatureScope = "application-query" | "conservative-command" | "out-of-scope";
4
+ export type GrammarFeatureSupportLevel = "exact" | "conservative" | "unsupported" | "out-of-scope";
5
+ export type GrammarVersionScheme = "major" | "major-minor" | "numeric";
6
+ export interface GrammarVersionRange {
7
+ readonly minimum: string;
8
+ readonly maximum: string;
9
+ }
10
+ export interface GrammarDialectPolicy {
11
+ readonly title: string;
12
+ readonly versionScheme: GrammarVersionScheme;
13
+ readonly stable: readonly GrammarVersionRange[];
14
+ readonly canary: readonly GrammarVersionRange[];
15
+ readonly sources: readonly GrammarFeatureSource[];
16
+ }
17
+ export interface GrammarFeatureSource {
18
+ readonly title: string;
19
+ readonly url: string;
20
+ readonly vendorVersion?: string;
21
+ }
22
+ export interface GrammarFeatureSupport {
23
+ readonly level: GrammarFeatureSupportLevel;
24
+ readonly introduced?: string;
25
+ readonly removed?: string;
26
+ readonly conditions?: readonly string[];
27
+ readonly diagnostic?: string;
28
+ readonly tests: readonly string[];
29
+ readonly notes?: string;
30
+ }
31
+ export interface GrammarFeatureEntry {
32
+ /** Permanent, globally unique feature identity. */
33
+ readonly id: string;
34
+ readonly title: string;
35
+ readonly category: GrammarFeatureCategory;
36
+ readonly scope: GrammarFeatureScope;
37
+ /** Package or repository area accountable for keeping the classification current. */
38
+ readonly owner: string;
39
+ /** Existing dialect capability key during the boolean-capability migration. */
40
+ readonly capability?: string;
41
+ /** Stable implementation-surface identities covered by this entry. */
42
+ readonly coverage: readonly string[];
43
+ /** Public pages whose support statements are checked against this entry. */
44
+ readonly documentation: readonly string[];
45
+ readonly sources: readonly GrammarFeatureSource[];
46
+ readonly dialects: Readonly<Record<string, GrammarFeatureSupport>>;
47
+ }
48
+ export interface GrammarFeatureLedger {
49
+ readonly formatVersion: typeof FEATURE_LEDGER_FORMAT_VERSION;
50
+ readonly dialects: Readonly<Record<string, GrammarDialectPolicy>>;
51
+ readonly entries: readonly GrammarFeatureEntry[];
52
+ }
53
+ /** Compares canonical vendor versions according to that vendor's release-line semantics. */
54
+ export declare function compareGrammarVersions(left: string, right: string, scheme: GrammarVersionScheme): number;
55
+ export declare function grammarVersionInRange(version: string, range: GrammarVersionRange, scheme: GrammarVersionScheme): boolean;
56
+ /** Parses, validates, canonicalizes, and deeply freezes a feature ledger. */
57
+ export declare function parseGrammarFeatureLedger(value: unknown): GrammarFeatureLedger;
58
+ export declare function defineGrammarFeatureLedger(value: GrammarFeatureLedger): GrammarFeatureLedger;
59
+ export declare function featureSupport(ledger: GrammarFeatureLedger, featureId: string, dialect: string): GrammarFeatureSupport | undefined;
60
+ /** Resolves a feature classification for a concrete server version, failing closed outside its version window. */
61
+ export declare function featureSupportAtVersion(ledger: GrammarFeatureLedger, featureId: string, dialect: string, version: string): GrammarFeatureSupport | undefined;
62
+ //# sourceMappingURL=feature-ledger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-ledger.d.ts","sourceRoot":"","sources":["../../../../src/feature-ledger.ts"],"names":[],"mappings":"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"}