@prisma/orm-family-sql 8.0.0-rc.12-dev.5 → 8.0.0-rc.12-dev.6

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.
@@ -1,4 +1,4 @@
1
- import { B as frozenCodecRef, V as isAggregateFn, z as aggregateFnNames } from "./types-ZNKYVjLr-DzjvSHKB.mjs";
1
+ import { B as frozenCodecRef, V as isAggregateFn, z as aggregateFnNames } from "./types-BAhLyUFj-3TARSz8c.mjs";
2
2
  import { structuredError } from "@prisma/orm-framework/utils/structured-error";
3
3
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
4
4
  import { aggregateDescriptorKey, isAggregateDescriptor, isAnyInputAggregateDescriptor, isNoInputAggregateDescriptor, settleAggregateOverloads } from "@prisma/orm-framework/components/components";
@@ -123,4 +123,4 @@ function describeCandidate(value) {
123
123
  //#endregion
124
124
  export { isSqlAggregateDescriptor as n, buildSqlAggregateDescriptorRegistry as t };
125
125
 
126
- //# sourceMappingURL=aggregate-descriptor-registry-DzThdoju.mjs.map
126
+ //# sourceMappingURL=aggregate-descriptor-registry-BaMSvS82.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate-descriptor-registry-DzThdoju.mjs","names":[],"sources":["../../../../2-sql/4-lanes/relational-core/dist/exports/aggregate-descriptor-registry.mjs"],"sourcesContent":["import { B as isAggregateFn, G as frozenCodecRef, z as aggregateFnNames } from \"../types-ZNKYVjLr.mjs\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { aggregateDescriptorKey, isAggregateDescriptor, isAnyInputAggregateDescriptor, isNoInputAggregateDescriptor, settleAggregateOverloads } from \"@internal/framework-components/components\";\n//#region src/aggregate-descriptor.ts\n/** Structural validation of a contributed SQL aggregate descriptor: the declarative shape plus a callable lowering hook where one is declared. */\nfunction isSqlAggregateDescriptor(value) {\n\tif (!isAggregateDescriptor(value)) return false;\n\treturn !(\"lower\" in value) || value.lower === void 0 || typeof value.lower === \"function\";\n}\n//#endregion\n//#region src/aggregate-descriptor-registry.ts\nfunction namedOutputRef(output, input) {\n\treturn frozenCodecRef({\n\t\tcodecId: output.codecId,\n\t\t...ifDefined(\"typeParams\", output.typeParams?.(input))\n\t});\n}\n/** The descriptor's own answer for a result set carrying no row, carried into resolution unchanged. */\nfunction resultNullability(descriptor) {\n\treturn descriptor.nullable ? { nullable: true } : {\n\t\tnullable: false,\n\t\temptyResultJson: descriptor.emptyResultJson\n\t};\n}\n/**\n* Validate every contributed aggregate descriptor and settle its matches against the composed codec set.\n*\n* Validation covers the descriptor's own shape, the lowering rule — an operation outside the closed SQL aggregate alphabet must carry a `lower` hook, there being no plain `AggregateExpr` form for it — a second claim on one `(operation, input)` pair, and two trait descriptors that both claim a registered codec for one operation — the last of which only a composed stack can detect, which is why it is settled here rather than at contribution.\n*/\nfunction buildSqlAggregateDescriptorRegistry(descriptors, codecDescriptors) {\n\tconst validated = [];\n\tconst claimedKeys = /* @__PURE__ */ new Set();\n\tfor (const candidate of descriptors) {\n\t\tif (!isSqlAggregateDescriptor(candidate)) throw structuredError(\"RUNTIME.AGGREGATE_DESCRIPTOR_INVALID\", `Contributed value ${describeCandidate(candidate)} is not a valid SQL aggregate descriptor.`, {\n\t\t\twhy: \"Aggregate resolution reads a declared operation, input match, result codec, and nullability — plus, for a non-nullable result, the empty-result value; a lowering hook, where present, must be callable.\",\n\t\t\tfix: \"Declare `operation`, `input` (`none` / `any` / `codec` / `trait`), `output` (`self` / `codec`), and `nullable` on the descriptor, adding `emptyResultJson` where `nullable` is false.\",\n\t\t\tmeta: { descriptor: describeCandidate(candidate) }\n\t\t});\n\t\tconst key = aggregateDescriptorKey(candidate);\n\t\tif (!isAggregateFn(candidate.operation) && candidate.lower === void 0) throw structuredError(\"RUNTIME.AGGREGATE_LOWERING_MISSING\", `Aggregate descriptor '${key}' declares operation '${candidate.operation}', which is outside the SQL aggregate alphabet (${[...aggregateFnNames].join(\", \")}) and carries no lowering hook.`, {\n\t\t\twhy: \"An operation in the alphabet lowers to a plain aggregate call; renderers know no other operation, so any other name must build its expression through a `lower` hook from existing nodes.\",\n\t\t\tfix: \"Declare a `lower` hook on the descriptor, or use an operation name from the SQL aggregate alphabet.\",\n\t\t\tmeta: {\n\t\t\t\toperation: candidate.operation,\n\t\t\t\tkey\n\t\t\t}\n\t\t});\n\t\tif (claimedKeys.has(key)) throw structuredError(\"RUNTIME.DUPLICATE_AGGREGATE_DESCRIPTOR\", `Duplicate aggregate descriptor for '${key}'.`, {\n\t\t\twhy: \"Each operation/input pair resolves to exactly one result codec, so exactly one component may claim it.\",\n\t\t\tfix: \"Remove the duplicate target, adapter, or extension contribution.\",\n\t\t\tmeta: { key }\n\t\t});\n\t\tclaimedKeys.add(key);\n\t\tvalidated.push(candidate);\n\t}\n\tconst settled = settleAggregateOverloads(validated, codecDescriptors.values());\n\tconst ambiguity = settled.ambiguities[0];\n\tif (ambiguity !== void 0) throw structuredError(\"RUNTIME.AMBIGUOUS_AGGREGATE_DESCRIPTOR\", `Ambiguous aggregate descriptors for '${ambiguity.operation}' over codec '${ambiguity.codecId}': traits ${ambiguity.traits.join(\", \")} all claim it.`, {\n\t\twhy: \"A codec advertising several claimed traits leaves the result codec undetermined.\",\n\t\tfix: `Contribute an exact descriptor for '${ambiguity.operation}' over '${ambiguity.codecId}', or narrow the overlapping trait contributions.`,\n\t\tmeta: {\n\t\t\toperation: ambiguity.operation,\n\t\t\tcodecId: ambiguity.codecId,\n\t\t\ttraits: ambiguity.traits\n\t\t}\n\t});\n\tfor (const descriptor of validated) {\n\t\tconst outputCodecId = descriptor.output.kind === \"codec\" ? descriptor.output.codecId : descriptor.input.kind === \"codec\" ? descriptor.input.codecId : void 0;\n\t\tif (outputCodecId !== void 0 && codecDescriptors.descriptorFor(outputCodecId) === void 0) {\n\t\t\tconst key = aggregateDescriptorKey(descriptor);\n\t\t\tthrow structuredError(\"RUNTIME.AGGREGATE_OUTPUT_CODEC_MISSING\", `Aggregate descriptor '${key}' names result codec '${outputCodecId}', which the composed stack does not register.`, {\n\t\t\t\twhy: \"A resolved aggregate decodes its result through the declared codec; a codec the stack does not compose cannot decode anything.\",\n\t\t\t\tfix: \"Register the codec on the composed stack, or declare a result codec the stack composes.\",\n\t\t\t\tmeta: {\n\t\t\t\t\toperation: descriptor.operation,\n\t\t\t\t\tkey,\n\t\t\t\t\toutputCodecId\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tconst tables = /* @__PURE__ */ new Map();\n\tfor (const [operation, entry] of settled.operations) tables.set(operation, {\n\t\twithoutInput: resolveWithoutInput(operation, entry.noInput) ?? resolveWithoutInput(operation, entry.anyInput),\n\t\tbyCodecId: entry.byCodecId,\n\t\tanyInput: entry.anyInput\n\t});\n\treturn {\n\t\tresolve(operation, input) {\n\t\t\tconst table = tables.get(operation);\n\t\t\tif (table === void 0) return void 0;\n\t\t\tif (input === void 0) return table.withoutInput;\n\t\t\tconst descriptor = table.byCodecId.get(input.codecId) ?? table.anyInput;\n\t\t\tif (descriptor === void 0) return void 0;\n\t\t\treturn {\n\t\t\t\toperation,\n\t\t\t\toutput: descriptor.output.kind === \"self\" ? frozenCodecRef(input) : namedOutputRef(descriptor.output, input),\n\t\t\t\t...resultNullability(descriptor),\n\t\t\t\tlower: descriptor.lower\n\t\t\t};\n\t\t},\n\t\t*values() {\n\t\t\tyield* validated;\n\t\t}\n\t};\n}\n/**\n* Resolve the overload that answers a call carrying no input. Both kinds that qualify name their result codec outright, there being no input codec to reuse.\n*/\nfunction resolveWithoutInput(operation, descriptor) {\n\tif (descriptor === void 0) return void 0;\n\tif (!isNoInputAggregateDescriptor(descriptor) && !isAnyInputAggregateDescriptor(descriptor)) return;\n\treturn {\n\t\toperation,\n\t\toutput: namedOutputRef(descriptor.output, void 0),\n\t\t...resultNullability(descriptor),\n\t\tlower: descriptor.lower\n\t};\n}\nfunction describeCandidate(value) {\n\tif (typeof value === \"object\" && value !== null && \"operation\" in value) return `'${String(value.operation)}'`;\n\treturn `of type ${typeof value}`;\n}\n//#endregion\nexport { buildSqlAggregateDescriptorRegistry, isSqlAggregateDescriptor };\n\n//# sourceMappingURL=aggregate-descriptor-registry.mjs.map"],"mappings":";;;;;;AAMA,SAAS,yBAAyB,OAAO;CACxC,IAAI,CAAC,sBAAsB,KAAK,GAAG,OAAO;CAC1C,OAAO,EAAE,WAAW,UAAU,MAAM,UAAU,KAAK,KAAK,OAAO,MAAM,UAAU;AAChF;AAGA,SAAS,eAAe,QAAQ,OAAO;CACtC,OAAO,eAAe;EACrB,SAAS,OAAO;EAChB,GAAG,UAAU,cAAc,OAAO,aAAa,KAAK,CAAC;CACtD,CAAC;AACF;;AAEA,SAAS,kBAAkB,YAAY;CACtC,OAAO,WAAW,WAAW,EAAE,UAAU,KAAK,IAAI;EACjD,UAAU;EACV,iBAAiB,WAAW;CAC7B;AACD;;;;;;AAMA,SAAS,oCAAoC,aAAa,kBAAkB;CAC3E,MAAM,YAAY,CAAC;CACnB,MAAM,8BAA8B,IAAI,IAAI;CAC5C,KAAK,MAAM,aAAa,aAAa;EACpC,IAAI,CAAC,yBAAyB,SAAS,GAAG,MAAM,gBAAgB,wCAAwC,qBAAqB,kBAAkB,SAAS,EAAE,4CAA4C;GACrM,KAAK;GACL,KAAK;GACL,MAAM,EAAE,YAAY,kBAAkB,SAAS,EAAE;EAClD,CAAC;EACD,MAAM,MAAM,uBAAuB,SAAS;EAC5C,IAAI,CAAC,cAAc,UAAU,SAAS,KAAK,UAAU,UAAU,KAAK,GAAG,MAAM,gBAAgB,sCAAsC,yBAAyB,IAAI,wBAAwB,UAAU,UAAU,kDAAkD,CAAC,GAAG,gBAAgB,CAAC,CAAC,KAAK,IAAI,EAAE,kCAAkC;GAChU,KAAK;GACL,KAAK;GACL,MAAM;IACL,WAAW,UAAU;IACrB;GACD;EACD,CAAC;EACD,IAAI,YAAY,IAAI,GAAG,GAAG,MAAM,gBAAgB,0CAA0C,uCAAuC,IAAI,KAAK;GACzI,KAAK;GACL,KAAK;GACL,MAAM,EAAE,IAAI;EACb,CAAC;EACD,YAAY,IAAI,GAAG;EACnB,UAAU,KAAK,SAAS;CACzB;CACA,MAAM,UAAU,yBAAyB,WAAW,iBAAiB,OAAO,CAAC;CAC7E,MAAM,YAAY,QAAQ,YAAY;CACtC,IAAI,cAAc,KAAK,GAAG,MAAM,gBAAgB,0CAA0C,wCAAwC,UAAU,UAAU,gBAAgB,UAAU,QAAQ,YAAY,UAAU,OAAO,KAAK,IAAI,EAAE,iBAAiB;EAChP,KAAK;EACL,KAAK,uCAAuC,UAAU,UAAU,UAAU,UAAU,QAAQ;EAC5F,MAAM;GACL,WAAW,UAAU;GACrB,SAAS,UAAU;GACnB,QAAQ,UAAU;EACnB;CACD,CAAC;CACD,KAAK,MAAM,cAAc,WAAW;EACnC,MAAM,gBAAgB,WAAW,OAAO,SAAS,UAAU,WAAW,OAAO,UAAU,WAAW,MAAM,SAAS,UAAU,WAAW,MAAM,UAAU,KAAK;EAC3J,IAAI,kBAAkB,KAAK,KAAK,iBAAiB,cAAc,aAAa,MAAM,KAAK,GAAG;GACzF,MAAM,MAAM,uBAAuB,UAAU;GAC7C,MAAM,gBAAgB,0CAA0C,yBAAyB,IAAI,wBAAwB,cAAc,iDAAiD;IACnL,KAAK;IACL,KAAK;IACL,MAAM;KACL,WAAW,WAAW;KACtB;KACA;IACD;GACD,CAAC;EACF;CACD;CACA,MAAM,yBAAyB,IAAI,IAAI;CACvC,KAAK,MAAM,CAAC,WAAW,UAAU,QAAQ,YAAY,OAAO,IAAI,WAAW;EAC1E,cAAc,oBAAoB,WAAW,MAAM,OAAO,KAAK,oBAAoB,WAAW,MAAM,QAAQ;EAC5G,WAAW,MAAM;EACjB,UAAU,MAAM;CACjB,CAAC;CACD,OAAO;EACN,QAAQ,WAAW,OAAO;GACzB,MAAM,QAAQ,OAAO,IAAI,SAAS;GAClC,IAAI,UAAU,KAAK,GAAG,OAAO,KAAK;GAClC,IAAI,UAAU,KAAK,GAAG,OAAO,MAAM;GACnC,MAAM,aAAa,MAAM,UAAU,IAAI,MAAM,OAAO,KAAK,MAAM;GAC/D,IAAI,eAAe,KAAK,GAAG,OAAO,KAAK;GACvC,OAAO;IACN;IACA,QAAQ,WAAW,OAAO,SAAS,SAAS,eAAe,KAAK,IAAI,eAAe,WAAW,QAAQ,KAAK;IAC3G,GAAG,kBAAkB,UAAU;IAC/B,OAAO,WAAW;GACnB;EACD;EACA,CAAC,SAAS;GACT,OAAO;EACR;CACD;AACD;;;;AAIA,SAAS,oBAAoB,WAAW,YAAY;CACnD,IAAI,eAAe,KAAK,GAAG,OAAO,KAAK;CACvC,IAAI,CAAC,6BAA6B,UAAU,KAAK,CAAC,8BAA8B,UAAU,GAAG;CAC7F,OAAO;EACN;EACA,QAAQ,eAAe,WAAW,QAAQ,KAAK,CAAC;EAChD,GAAG,kBAAkB,UAAU;EAC/B,OAAO,WAAW;CACnB;AACD;AACA,SAAS,kBAAkB,OAAO;CACjC,IAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,eAAe,OAAO,OAAO,IAAI,OAAO,MAAM,SAAS,EAAE;CAC5G,OAAO,WAAW,OAAO;AAC1B"}
1
+ {"version":3,"file":"aggregate-descriptor-registry-BaMSvS82.mjs","names":[],"sources":["../../../../2-sql/4-lanes/relational-core/dist/exports/aggregate-descriptor-registry.mjs"],"sourcesContent":["import { B as isAggregateFn, G as frozenCodecRef, z as aggregateFnNames } from \"../types-BAhLyUFj.mjs\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { aggregateDescriptorKey, isAggregateDescriptor, isAnyInputAggregateDescriptor, isNoInputAggregateDescriptor, settleAggregateOverloads } from \"@internal/framework-components/components\";\n//#region src/aggregate-descriptor.ts\n/** Structural validation of a contributed SQL aggregate descriptor: the declarative shape plus a callable lowering hook where one is declared. */\nfunction isSqlAggregateDescriptor(value) {\n\tif (!isAggregateDescriptor(value)) return false;\n\treturn !(\"lower\" in value) || value.lower === void 0 || typeof value.lower === \"function\";\n}\n//#endregion\n//#region src/aggregate-descriptor-registry.ts\nfunction namedOutputRef(output, input) {\n\treturn frozenCodecRef({\n\t\tcodecId: output.codecId,\n\t\t...ifDefined(\"typeParams\", output.typeParams?.(input))\n\t});\n}\n/** The descriptor's own answer for a result set carrying no row, carried into resolution unchanged. */\nfunction resultNullability(descriptor) {\n\treturn descriptor.nullable ? { nullable: true } : {\n\t\tnullable: false,\n\t\temptyResultJson: descriptor.emptyResultJson\n\t};\n}\n/**\n* Validate every contributed aggregate descriptor and settle its matches against the composed codec set.\n*\n* Validation covers the descriptor's own shape, the lowering rule — an operation outside the closed SQL aggregate alphabet must carry a `lower` hook, there being no plain `AggregateExpr` form for it — a second claim on one `(operation, input)` pair, and two trait descriptors that both claim a registered codec for one operation — the last of which only a composed stack can detect, which is why it is settled here rather than at contribution.\n*/\nfunction buildSqlAggregateDescriptorRegistry(descriptors, codecDescriptors) {\n\tconst validated = [];\n\tconst claimedKeys = /* @__PURE__ */ new Set();\n\tfor (const candidate of descriptors) {\n\t\tif (!isSqlAggregateDescriptor(candidate)) throw structuredError(\"RUNTIME.AGGREGATE_DESCRIPTOR_INVALID\", `Contributed value ${describeCandidate(candidate)} is not a valid SQL aggregate descriptor.`, {\n\t\t\twhy: \"Aggregate resolution reads a declared operation, input match, result codec, and nullability — plus, for a non-nullable result, the empty-result value; a lowering hook, where present, must be callable.\",\n\t\t\tfix: \"Declare `operation`, `input` (`none` / `any` / `codec` / `trait`), `output` (`self` / `codec`), and `nullable` on the descriptor, adding `emptyResultJson` where `nullable` is false.\",\n\t\t\tmeta: { descriptor: describeCandidate(candidate) }\n\t\t});\n\t\tconst key = aggregateDescriptorKey(candidate);\n\t\tif (!isAggregateFn(candidate.operation) && candidate.lower === void 0) throw structuredError(\"RUNTIME.AGGREGATE_LOWERING_MISSING\", `Aggregate descriptor '${key}' declares operation '${candidate.operation}', which is outside the SQL aggregate alphabet (${[...aggregateFnNames].join(\", \")}) and carries no lowering hook.`, {\n\t\t\twhy: \"An operation in the alphabet lowers to a plain aggregate call; renderers know no other operation, so any other name must build its expression through a `lower` hook from existing nodes.\",\n\t\t\tfix: \"Declare a `lower` hook on the descriptor, or use an operation name from the SQL aggregate alphabet.\",\n\t\t\tmeta: {\n\t\t\t\toperation: candidate.operation,\n\t\t\t\tkey\n\t\t\t}\n\t\t});\n\t\tif (claimedKeys.has(key)) throw structuredError(\"RUNTIME.DUPLICATE_AGGREGATE_DESCRIPTOR\", `Duplicate aggregate descriptor for '${key}'.`, {\n\t\t\twhy: \"Each operation/input pair resolves to exactly one result codec, so exactly one component may claim it.\",\n\t\t\tfix: \"Remove the duplicate target, adapter, or extension contribution.\",\n\t\t\tmeta: { key }\n\t\t});\n\t\tclaimedKeys.add(key);\n\t\tvalidated.push(candidate);\n\t}\n\tconst settled = settleAggregateOverloads(validated, codecDescriptors.values());\n\tconst ambiguity = settled.ambiguities[0];\n\tif (ambiguity !== void 0) throw structuredError(\"RUNTIME.AMBIGUOUS_AGGREGATE_DESCRIPTOR\", `Ambiguous aggregate descriptors for '${ambiguity.operation}' over codec '${ambiguity.codecId}': traits ${ambiguity.traits.join(\", \")} all claim it.`, {\n\t\twhy: \"A codec advertising several claimed traits leaves the result codec undetermined.\",\n\t\tfix: `Contribute an exact descriptor for '${ambiguity.operation}' over '${ambiguity.codecId}', or narrow the overlapping trait contributions.`,\n\t\tmeta: {\n\t\t\toperation: ambiguity.operation,\n\t\t\tcodecId: ambiguity.codecId,\n\t\t\ttraits: ambiguity.traits\n\t\t}\n\t});\n\tfor (const descriptor of validated) {\n\t\tconst outputCodecId = descriptor.output.kind === \"codec\" ? descriptor.output.codecId : descriptor.input.kind === \"codec\" ? descriptor.input.codecId : void 0;\n\t\tif (outputCodecId !== void 0 && codecDescriptors.descriptorFor(outputCodecId) === void 0) {\n\t\t\tconst key = aggregateDescriptorKey(descriptor);\n\t\t\tthrow structuredError(\"RUNTIME.AGGREGATE_OUTPUT_CODEC_MISSING\", `Aggregate descriptor '${key}' names result codec '${outputCodecId}', which the composed stack does not register.`, {\n\t\t\t\twhy: \"A resolved aggregate decodes its result through the declared codec; a codec the stack does not compose cannot decode anything.\",\n\t\t\t\tfix: \"Register the codec on the composed stack, or declare a result codec the stack composes.\",\n\t\t\t\tmeta: {\n\t\t\t\t\toperation: descriptor.operation,\n\t\t\t\t\tkey,\n\t\t\t\t\toutputCodecId\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tconst tables = /* @__PURE__ */ new Map();\n\tfor (const [operation, entry] of settled.operations) tables.set(operation, {\n\t\twithoutInput: resolveWithoutInput(operation, entry.noInput) ?? resolveWithoutInput(operation, entry.anyInput),\n\t\tbyCodecId: entry.byCodecId,\n\t\tanyInput: entry.anyInput\n\t});\n\treturn {\n\t\tresolve(operation, input) {\n\t\t\tconst table = tables.get(operation);\n\t\t\tif (table === void 0) return void 0;\n\t\t\tif (input === void 0) return table.withoutInput;\n\t\t\tconst descriptor = table.byCodecId.get(input.codecId) ?? table.anyInput;\n\t\t\tif (descriptor === void 0) return void 0;\n\t\t\treturn {\n\t\t\t\toperation,\n\t\t\t\toutput: descriptor.output.kind === \"self\" ? frozenCodecRef(input) : namedOutputRef(descriptor.output, input),\n\t\t\t\t...resultNullability(descriptor),\n\t\t\t\tlower: descriptor.lower\n\t\t\t};\n\t\t},\n\t\t*values() {\n\t\t\tyield* validated;\n\t\t}\n\t};\n}\n/**\n* Resolve the overload that answers a call carrying no input. Both kinds that qualify name their result codec outright, there being no input codec to reuse.\n*/\nfunction resolveWithoutInput(operation, descriptor) {\n\tif (descriptor === void 0) return void 0;\n\tif (!isNoInputAggregateDescriptor(descriptor) && !isAnyInputAggregateDescriptor(descriptor)) return;\n\treturn {\n\t\toperation,\n\t\toutput: namedOutputRef(descriptor.output, void 0),\n\t\t...resultNullability(descriptor),\n\t\tlower: descriptor.lower\n\t};\n}\nfunction describeCandidate(value) {\n\tif (typeof value === \"object\" && value !== null && \"operation\" in value) return `'${String(value.operation)}'`;\n\treturn `of type ${typeof value}`;\n}\n//#endregion\nexport { buildSqlAggregateDescriptorRegistry, isSqlAggregateDescriptor };\n\n//# sourceMappingURL=aggregate-descriptor-registry.mjs.map"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { B as frozenCodecRef } from "./types-ZNKYVjLr-DzjvSHKB.mjs";
1
+ import { B as frozenCodecRef } from "./types-BAhLyUFj-3TARSz8c.mjs";
2
2
  import { structuredError } from "@prisma/orm-framework/utils/structured-error";
3
3
  import { type } from "arktype";
4
4
  import { CodecDescriptorTemplateImpl, CodecImpl, column } from "@prisma/orm-framework/components/codec";
@@ -387,4 +387,4 @@ const sqlVarcharColumn = (params = {}) => column(sqlVarcharDescriptor.factory(pa
387
387
  //#endregion
388
388
  export { sqlCharDescriptor as A, sqlIntDecode as B, isNumeralText as C, signedRange as D, printJsonBody as E, sqlFloatDecodeJson as F, sqlTextDescriptor as G, sqlIntEncode as H, sqlFloatDescriptor as I, sqlVarcharDecode as J, sqlTextEncode as K, sqlFloatEncode as L, sqlCharRenderOutputType as M, sqlFloatColumn as N, sqlCharColumn as O, sqlFloatDecode as P, sqlFloatEncodeJson as R, isNonFiniteText as S, parseJsonBody as T, sqlTextColumn as U, sqlIntDescriptor as V, sqlTextDecode as W, sqlVarcharEncode as X, sqlVarcharDescriptor as Y, sqlVarcharRenderOutputType as Z, SqlVarcharCodec as _, SQL_FLOAT_CODEC_ID as a, createNumberClassifier as b, SQL_VARCHAR_CODEC_ID as c, SqlFloatCodec as d, SqlFloatDescriptor as f, SqlTextDescriptor as g, SqlTextCodec as h, SQL_CHAR_CODEC_ID as i, sqlCharEncode as j, sqlCharDecode as k, SqlCharCodec as l, SqlIntDescriptor as m, JsonDocumentProjection as n, SQL_INT_CODEC_ID as o, SqlIntCodec as p, sqlVarcharColumn as q, NativeJsonValueProjection as r, SQL_TEXT_CODEC_ID as s, CodecJsonValueProjection as t, SqlCharDescriptor as u, SqlVarcharDescriptor as v, numeralText as w, escapePslString as x, canonicalNumeralText as y, sqlIntColumn as z };
389
389
 
390
- //# sourceMappingURL=ast-CEGv-zzk.mjs.map
390
+ //# sourceMappingURL=ast--wLzFkbt.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast-CEGv-zzk.mjs","names":[],"sources":["../../../../2-sql/4-lanes/relational-core/dist/exports/ast.mjs"],"sourcesContent":["import { A as PreparedParamRef, B as isAggregateFn, C as LiteralExpr, D as OrExpr, E as OperationExpr, F as SubqueryExpr, G as frozenCodecRef, H as isWhereExpr, I as TableSource, L as UpdateAst, M as RawExpr, N as RawQueryAst, O as OrderByItem, P as SelectAst, R as WindowFuncExpr, S as ListExpression, T as NullCheckExpr, U as queryAstKinds, V as isQueryAst, W as whereExprKinds, _ as InsertAst, a as CastExpr, b as JsonArrayAggExpr, c as DeleteAst, d as DoUpdateSetConflictAction, f as EqColJoinOn, g as IdentifierRef, h as FunctionSource, i as CaseExpr, j as ProjectionItem, k as ParamRef, l as DerivedTableSource, m as FunctionCallExpr, n as AndExpr, o as ColumnRef, p as ExistsExpr, r as BinaryExpr, s as DefaultValueExpr, t as AggregateExpr, u as DoNothingConflictAction, v as InsertOnConflict, w as NotExpr, x as JsonObjectExpr, y as JoinAst, z as aggregateFnNames } from \"../types-ZNKYVjLr.mjs\";\nimport { a as ForeignKeyConstraint, c as PrimaryKeyConstraint, i as DdlNode, l as UniqueConstraint, n as DdlColumn, o as FunctionColumnDefault, r as DdlColumnDefault, s as LiteralColumnDefault, t as CheckExpressionConstraint, u as isDdlNode } from \"../ddl-types-DOgOmDOh.mjs\";\nimport { n as compact, t as collectOrderedParamRefs } from \"../util-DQQgv2j1.mjs\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { CodecDescriptorTemplateImpl, CodecImpl, column } from \"@internal/framework-components/codec\";\nimport { type } from \"arktype\";\n//#region src/ast/data-type-support.ts\nconst INTEGER_TEXT = /^-?\\d+$/;\nconst DECIMAL_TEXT = /^-?\\d+\\.\\d+$/;\nconst NON_FINITE_WORDS = /* @__PURE__ */ new Set([\n\t\"NaN\",\n\t\"Infinity\",\n\t\"-Infinity\"\n]);\nconst DECIMAL_NUMERAL = /^(-?)0*(\\d+)(\\.\\d+)?$/;\n/** Whether `text` is a whole number or a decimal as a contract source writes one. */\nfunction isNumeralText(text) {\n\treturn INTEGER_TEXT.test(text) || DECIMAL_TEXT.test(text);\n}\n/** Whether `text` is one of the three words a floating-point value is written as. */\nfunction isNonFiniteText(text) {\n\treturn NON_FINITE_WORDS.has(text);\n}\n/**\n* A written numeral as the contract stores it. Leading zeros and the sign of zero never change a\n* number, so they go; trailing zeros stay, because a type without a scale keeps them.\n*/\nfunction canonicalNumeralText(text) {\n\tconst numeral = DECIMAL_NUMERAL.exec(text);\n\tif (numeral === null) return text;\n\tconst [, sign = \"\", whole = \"\", fraction = \"\"] = numeral;\n\tconst digits = `${whole}${fraction}`;\n\treturn /^[0.]+$/.test(digits) ? digits : `${sign}${digits}`;\n}\n/**\n* A number as a contract source writes it: no exponent, because no schema language has that syntax,\n* so the decimal point moves to where the exponent puts it. A non-finite number is its own word.\n*/\nfunction numeralText(value) {\n\tconst [coefficient = \"\", exponent] = String(value).split(\"e\");\n\tif (exponent === void 0) return coefficient;\n\tconst sign = coefficient.startsWith(\"-\") ? \"-\" : \"\";\n\tconst [whole = \"\", fraction = \"\"] = coefficient.slice(sign.length).split(\".\");\n\tconst digits = `${whole}${fraction}`;\n\tconst point = whole.length + Number(exponent);\n\tif (point <= 0) return `${sign}0.${\"0\".repeat(-point)}${digits}`;\n\tif (point >= digits.length) return `${sign}${digits}${\"0\".repeat(point - digits.length)}`;\n\treturn `${sign}${digits.slice(0, point)}.${digits.slice(point)}`;\n}\n/** A string as a contract source writes it, with the escapes its string reader resolves. */\nfunction escapePslString(value) {\n\treturn value.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\");\n}\n/** The range of a signed integer of `bits` bits. */\nfunction signedRange(bits) {\n\tconst half = 2n ** (BigInt(bits) - 1n);\n\treturn {\n\t\tmin: -half,\n\t\tmax: half - 1n\n\t};\n}\n/**\n* The classifier one target's plain-number authoring entry carries: it reads the digits and says\n* which of the target's types the value is, in that type's canonical form. `undefined` means no\n* type of this target holds the number.\n*/\nfunction createNumberClassifier(spec) {\n\tconst as = (classification, value) => classification === void 0 ? void 0 : {\n\t\ttype: classification.type,\n\t\tvalue\n\t};\n\treturn (text) => {\n\t\tif (NON_FINITE_WORDS.has(text)) return as(spec.words, spec.words?.form === \"number\" ? Number(text) : text);\n\t\tif (DECIMAL_TEXT.test(text)) {\n\t\t\tconst canonical = canonicalNumeralText(text);\n\t\t\treturn as(spec.fraction, spec.fraction?.form === \"number\" ? Number(canonical) : canonical);\n\t\t}\n\t\tif (!INTEGER_TEXT.test(text)) return void 0;\n\t\tconst digits = BigInt(text);\n\t\tconst classification = spec.integers.find(({ min, max }) => digits >= min && digits <= max) ?? spec.largerWhole;\n\t\treturn as(classification, classification?.form === \"number\" ? Number(digits) : digits.toString());\n\t};\n}\n/**\n* Read a JSON body into the document it holds.\n*\n* `JSON.parse` reads a numeral too large for a double as `Infinity`, and `JSON.stringify` writes\n* that back as `null`, so a document holding one would not be the document stored; it is refused\n* here instead, naming where the number is.\n*/\nfunction parseJsonBody(text) {\n\tlet value;\n\ttry {\n\t\tvalue = JSON.parse(text);\n\t} catch (error) {\n\t\tthrow structuredError(\"CONTRACT.INVALID_JSON_LITERAL\", error instanceof Error ? error.message : String(error), {\n\t\t\twhy: \"The body is not a JSON document.\",\n\t\t\tfix: \"Write a JSON document.\"\n\t\t});\n\t}\n\tconst overflowed = nonFiniteNumberIn(value, \"\");\n\tif (overflowed !== void 0) throw structuredError(\"CONTRACT.INVALID_JSON_LITERAL\", `${overflowed.path} is ${overflowed.value}, which JSON cannot write back: the number in the text is outside the range a JSON number holds.`, {\n\t\twhy: \"JSON.parse reads a numeral too large for a double as Infinity, which JSON.stringify writes back as null.\",\n\t\tfix: \"Write a number JSON can hold, or write it as text.\"\n\t});\n\treturn value;\n}\n/** Write a document as the body of a JSON literal. */\nfunction printJsonBody(value) {\n\treturn JSON.stringify(value);\n}\nfunction nonFiniteNumberIn(value, path) {\n\tif (typeof value === \"number\") return Number.isFinite(value) ? void 0 : {\n\t\tpath: path === \"\" ? \"The value\" : path,\n\t\tvalue\n\t};\n\tif (Array.isArray(value)) {\n\t\tfor (const [index, element] of value.entries()) {\n\t\t\tconst found = nonFiniteNumberIn(element, `${path}[${index}]`);\n\t\t\tif (found !== void 0) return found;\n\t\t}\n\t\treturn;\n\t}\n\tif (typeof value === \"object\" && value !== null) for (const [key, member] of Object.entries(value)) {\n\t\tconst found = nonFiniteNumberIn(member, path === \"\" ? key : `${path}.${key}`);\n\t\tif (found !== void 0) return found;\n\t}\n}\n//#endregion\n//#region src/ast/json-value-projection.ts\nvar JsonValueProjection = class {\n\tvalue;\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n\tfold(folder) {\n\t\treturn this.value.fold(folder);\n\t}\n\tcollectColumnRefs() {\n\t\treturn this.value.collectColumnRefs();\n\t}\n\tcollectParamRefs() {\n\t\treturn this.value.collectParamRefs();\n\t}\n\tfreeze() {\n\t\tObject.freeze(this);\n\t}\n};\nvar CodecJsonValueProjection = class CodecJsonValueProjection extends JsonValueProjection {\n\tkind = \"codec\";\n\tcodec;\n\tconstructor(value, codec) {\n\t\tsuper(value);\n\t\tthis.codec = frozenCodecRef(codec);\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.codec(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new CodecJsonValueProjection(this.value.rewrite(rewriter), this.codec);\n\t}\n};\nvar NativeJsonValueProjection = class NativeJsonValueProjection extends JsonValueProjection {\n\tkind = \"native\";\n\tconstructor(value) {\n\t\tsuper(value);\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.native(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new NativeJsonValueProjection(this.value.rewrite(rewriter));\n\t}\n};\nvar JsonDocumentProjection = class JsonDocumentProjection extends JsonValueProjection {\n\tkind = \"document\";\n\tconstructor(value) {\n\t\tsuper(value);\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.document(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new JsonDocumentProjection(this.value.rewrite(rewriter));\n\t}\n};\n//#endregion\n//#region src/ast/sql-codec-helpers.ts\nconst SQL_CHAR_CODEC_ID = \"sql/char@1\";\nconst SQL_VARCHAR_CODEC_ID = \"sql/varchar@1\";\nconst SQL_INT_CODEC_ID = \"sql/int@1\";\nconst SQL_FLOAT_CODEC_ID = \"sql/float@1\";\nconst SQL_TEXT_CODEC_ID = \"sql/text@1\";\nconst sqlCharEncode = (value) => value;\nconst sqlCharDecode = (wire) => wire.trimEnd();\nconst sqlCharRenderOutputType = (typeParams) => {\n\tconst length = typeParams.length;\n\tif (length === void 0) return void 0;\n\tif (typeof length !== \"number\" || !Number.isFinite(length) || !Number.isInteger(length)) throw structuredError(\"RUNTIME.TYPE_PARAMS_INVALID\", `renderOutputType: expected integer \"length\" in typeParams for Char, got ${String(length)}`, { meta: {\n\t\tcodec: SQL_CHAR_CODEC_ID,\n\t\tparam: \"length\",\n\t\treceived: String(length)\n\t} });\n\treturn `Char<${length}>`;\n};\nconst sqlVarcharEncode = (value) => value;\nconst sqlVarcharDecode = (wire) => wire;\nconst sqlVarcharRenderOutputType = (typeParams) => {\n\tconst length = typeParams.length;\n\tif (length === void 0) return void 0;\n\tif (typeof length !== \"number\" || !Number.isFinite(length) || !Number.isInteger(length)) throw structuredError(\"RUNTIME.TYPE_PARAMS_INVALID\", `renderOutputType: expected integer \"length\" in typeParams for Varchar, got ${String(length)}`, { meta: {\n\t\tcodec: SQL_VARCHAR_CODEC_ID,\n\t\tparam: \"length\",\n\t\treceived: String(length)\n\t} });\n\treturn `Varchar<${length}>`;\n};\nconst sqlIntEncode = (value) => value;\nconst sqlIntDecode = (wire) => wire;\nconst sqlFloatEncode = (value) => value;\nconst sqlFloatDecode = (wire) => wire;\n/**\n* JSON has no spelling for a non-finite number, and a database that holds one\n* emits it as a string — PostgreSQL writes `\"NaN\"` and `\"Infinity\"`. This\n* codec's application type is `number`, so both directions reject rather than\n* carry a value that type cannot hold.\n*/\nconst sqlFloatEncodeJson = (value) => {\n\tif (!Number.isFinite(value)) throw structuredError(\"RUNTIME.ENCODE_FAILED\", `${SQL_FLOAT_CODEC_ID} application value must be a finite number, got ${value}`, { meta: { codec: SQL_FLOAT_CODEC_ID } });\n\treturn value;\n};\nconst sqlFloatDecodeJson = (json) => {\n\tif (typeof json !== \"number\" || !Number.isFinite(json)) throw structuredError(\"RUNTIME.DECODE_FAILED\", `Expected a finite number for ${SQL_FLOAT_CODEC_ID}, got ${JSON.stringify(json)}`, { meta: { codec: SQL_FLOAT_CODEC_ID } });\n\treturn json;\n};\nconst sqlTextEncode = (value) => value;\nconst sqlTextDecode = (wire) => wire;\n//#endregion\n//#region src/ast/sql-codecs.ts\nconst lengthParamsSchema = type({ \"length?\": \"number.integer > 0\" });\nvar SqlTextCodec = class extends CodecImpl {\n\tasync encode(value, _ctx) {\n\t\treturn sqlTextEncode(value);\n\t}\n\tasync decode(wire, _ctx) {\n\t\treturn sqlTextDecode(wire);\n\t}\n\tencodeJson(value) {\n\t\treturn value;\n\t}\n\tdecodeJson(json) {\n\t\treturn json;\n\t}\n};\nvar SqlTextDescriptor = class extends CodecDescriptorTemplateImpl {\n\tcodecId = SQL_TEXT_CODEC_ID;\n\ttraits = [\n\t\t\"equality\",\n\t\t\"order\",\n\t\t\"textual\"\n\t];\n\ttargetTypes = [\"text\"];\n\tparamsSchema = void 0;\n\tfactory() {\n\t\treturn () => new SqlTextCodec(this);\n\t}\n};\nconst sqlTextDescriptor = new SqlTextDescriptor();\nconst sqlTextColumn = () => column(sqlTextDescriptor.factory(), sqlTextDescriptor.codecId, void 0, \"text\");\nvar SqlIntCodec = class extends CodecImpl {\n\tasync encode(value, _ctx) {\n\t\treturn sqlIntEncode(value);\n\t}\n\tasync decode(wire, _ctx) {\n\t\treturn sqlIntDecode(wire);\n\t}\n\tencodeJson(value) {\n\t\treturn value;\n\t}\n\tdecodeJson(json) {\n\t\treturn json;\n\t}\n};\nvar SqlIntDescriptor = class extends CodecDescriptorTemplateImpl {\n\tcodecId = SQL_INT_CODEC_ID;\n\ttraits = [\n\t\t\"equality\",\n\t\t\"order\",\n\t\t\"numeric\"\n\t];\n\ttargetTypes = [\"int\"];\n\tparamsSchema = void 0;\n\tfactory() {\n\t\treturn () => new SqlIntCodec(this);\n\t}\n};\nconst sqlIntDescriptor = new SqlIntDescriptor();\nconst sqlIntColumn = () => column(sqlIntDescriptor.factory(), sqlIntDescriptor.codecId, void 0, \"int\");\nvar SqlFloatCodec = class extends CodecImpl {\n\tasync encode(value, _ctx) {\n\t\treturn sqlFloatEncode(value);\n\t}\n\tasync decode(wire, _ctx) {\n\t\treturn sqlFloatDecode(wire);\n\t}\n\tencodeJson(value) {\n\t\treturn sqlFloatEncodeJson(value);\n\t}\n\tdecodeJson(json) {\n\t\treturn sqlFloatDecodeJson(json);\n\t}\n};\nvar SqlFloatDescriptor = class extends CodecDescriptorTemplateImpl {\n\tcodecId = SQL_FLOAT_CODEC_ID;\n\ttraits = [\n\t\t\"equality\",\n\t\t\"order\",\n\t\t\"numeric\"\n\t];\n\ttargetTypes = [\"float\"];\n\tparamsSchema = void 0;\n\tfactory() {\n\t\treturn () => new SqlFloatCodec(this);\n\t}\n};\nconst sqlFloatDescriptor = new SqlFloatDescriptor();\nconst sqlFloatColumn = () => column(sqlFloatDescriptor.factory(), sqlFloatDescriptor.codecId, void 0, \"float\");\nvar SqlCharCodec = class extends CodecImpl {\n\tasync encode(value, _ctx) {\n\t\treturn sqlCharEncode(value);\n\t}\n\tasync decode(wire, _ctx) {\n\t\treturn sqlCharDecode(wire);\n\t}\n\tencodeJson(value) {\n\t\treturn value;\n\t}\n\tdecodeJson(json) {\n\t\treturn json;\n\t}\n};\nvar SqlCharDescriptor = class extends CodecDescriptorTemplateImpl {\n\tcodecId = SQL_CHAR_CODEC_ID;\n\ttraits = [\n\t\t\"equality\",\n\t\t\"order\",\n\t\t\"textual\"\n\t];\n\ttargetTypes = [\"char\"];\n\tparamsSchema = lengthParamsSchema;\n\trenderOutputType(params) {\n\t\treturn sqlCharRenderOutputType(params);\n\t}\n\tfactory(_params) {\n\t\treturn () => new SqlCharCodec(this);\n\t}\n};\nconst sqlCharDescriptor = new SqlCharDescriptor();\nconst sqlCharColumn = (params = {}) => column(sqlCharDescriptor.factory(params), sqlCharDescriptor.codecId, params, \"char\");\nvar SqlVarcharCodec = class extends CodecImpl {\n\tasync encode(value, _ctx) {\n\t\treturn sqlVarcharEncode(value);\n\t}\n\tasync decode(wire, _ctx) {\n\t\treturn sqlVarcharDecode(wire);\n\t}\n\tencodeJson(value) {\n\t\treturn value;\n\t}\n\tdecodeJson(json) {\n\t\treturn json;\n\t}\n};\nvar SqlVarcharDescriptor = class extends CodecDescriptorTemplateImpl {\n\tcodecId = SQL_VARCHAR_CODEC_ID;\n\ttraits = [\n\t\t\"equality\",\n\t\t\"order\",\n\t\t\"textual\"\n\t];\n\ttargetTypes = [\"varchar\"];\n\tparamsSchema = lengthParamsSchema;\n\trenderOutputType(params) {\n\t\treturn sqlVarcharRenderOutputType(params);\n\t}\n\tfactory(_params) {\n\t\treturn () => new SqlVarcharCodec(this);\n\t}\n};\nconst sqlVarcharDescriptor = new SqlVarcharDescriptor();\nconst sqlVarcharColumn = (params = {}) => column(sqlVarcharDescriptor.factory(params), sqlVarcharDescriptor.codecId, params, \"varchar\");\n//#endregion\nexport { AggregateExpr, AndExpr, BinaryExpr, CaseExpr, CastExpr, CheckExpressionConstraint, CodecJsonValueProjection, ColumnRef, DdlColumn, DdlColumnDefault, DdlNode, DefaultValueExpr, DeleteAst, DerivedTableSource, DoNothingConflictAction, DoUpdateSetConflictAction, EqColJoinOn, ExistsExpr, ForeignKeyConstraint, FunctionCallExpr, FunctionColumnDefault, FunctionSource, IdentifierRef, InsertAst, InsertOnConflict, JoinAst, JsonArrayAggExpr, JsonDocumentProjection, JsonObjectExpr, ListExpression, LiteralColumnDefault, LiteralExpr, NativeJsonValueProjection, NotExpr, NullCheckExpr, OperationExpr, OrExpr, OrderByItem, ParamRef, PreparedParamRef, PrimaryKeyConstraint, ProjectionItem, RawExpr, RawQueryAst, SQL_CHAR_CODEC_ID, SQL_FLOAT_CODEC_ID, SQL_INT_CODEC_ID, SQL_TEXT_CODEC_ID, SQL_VARCHAR_CODEC_ID, SelectAst, SqlCharCodec, SqlCharDescriptor, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, SqlTextCodec, SqlTextDescriptor, SqlVarcharCodec, SqlVarcharDescriptor, SubqueryExpr, TableSource, UniqueConstraint, UpdateAst, WindowFuncExpr, aggregateFnNames, canonicalNumeralText, collectOrderedParamRefs, compact, createNumberClassifier, escapePslString, frozenCodecRef, isAggregateFn, isDdlNode, isNonFiniteText, isNumeralText, isQueryAst, isWhereExpr, numeralText, parseJsonBody, printJsonBody, queryAstKinds, signedRange, sqlCharColumn, sqlCharDecode, sqlCharDescriptor, sqlCharEncode, sqlCharRenderOutputType, sqlFloatColumn, sqlFloatDecode, sqlFloatDecodeJson, sqlFloatDescriptor, sqlFloatEncode, sqlFloatEncodeJson, sqlIntColumn, sqlIntDecode, sqlIntDescriptor, sqlIntEncode, sqlTextColumn, sqlTextDecode, sqlTextDescriptor, sqlTextEncode, sqlVarcharColumn, sqlVarcharDecode, sqlVarcharDescriptor, sqlVarcharEncode, sqlVarcharRenderOutputType, whereExprKinds };\n\n//# sourceMappingURL=ast.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"ast--wLzFkbt.mjs","names":[],"sources":["../../../../2-sql/4-lanes/relational-core/dist/exports/ast.mjs"],"sourcesContent":["import { A as PreparedParamRef, B as isAggregateFn, C as LiteralExpr, D as OrExpr, E as OperationExpr, F as SubqueryExpr, G as frozenCodecRef, H as isWhereExpr, I as TableSource, L as UpdateAst, M as RawExpr, N as RawQueryAst, O as OrderByItem, P as SelectAst, R as WindowFuncExpr, S as ListExpression, T as NullCheckExpr, U as queryAstKinds, V as isQueryAst, W as whereExprKinds, _ as InsertAst, a as CastExpr, b as JsonArrayAggExpr, c as DeleteAst, d as DoUpdateSetConflictAction, f as EqColJoinOn, g as IdentifierRef, h as FunctionSource, i as CaseExpr, j as ProjectionItem, k as ParamRef, l as DerivedTableSource, m as FunctionCallExpr, n as AndExpr, o as ColumnRef, p as ExistsExpr, r as BinaryExpr, s as DefaultValueExpr, t as AggregateExpr, u as DoNothingConflictAction, v as InsertOnConflict, w as NotExpr, x as JsonObjectExpr, y as JoinAst, z as aggregateFnNames } from \"../types-BAhLyUFj.mjs\";\nimport { a as ForeignKeyConstraint, c as PrimaryKeyConstraint, i as DdlNode, l as UniqueConstraint, n as DdlColumn, o as FunctionColumnDefault, r as DdlColumnDefault, s as LiteralColumnDefault, t as CheckExpressionConstraint, u as isDdlNode } from \"../ddl-types-DOgOmDOh.mjs\";\nimport { n as compact, t as collectOrderedParamRefs } from \"../util-DQQgv2j1.mjs\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { CodecDescriptorTemplateImpl, CodecImpl, column } from \"@internal/framework-components/codec\";\nimport { type } from \"arktype\";\n//#region src/ast/data-type-support.ts\nconst INTEGER_TEXT = /^-?\\d+$/;\nconst DECIMAL_TEXT = /^-?\\d+\\.\\d+$/;\nconst NON_FINITE_WORDS = /* @__PURE__ */ new Set([\n\t\"NaN\",\n\t\"Infinity\",\n\t\"-Infinity\"\n]);\nconst DECIMAL_NUMERAL = /^(-?)0*(\\d+)(\\.\\d+)?$/;\n/** Whether `text` is a whole number or a decimal as a contract source writes one. */\nfunction isNumeralText(text) {\n\treturn INTEGER_TEXT.test(text) || DECIMAL_TEXT.test(text);\n}\n/** Whether `text` is one of the three words a floating-point value is written as. */\nfunction isNonFiniteText(text) {\n\treturn NON_FINITE_WORDS.has(text);\n}\n/**\n* A written numeral as the contract stores it. Leading zeros and the sign of zero never change a\n* number, so they go; trailing zeros stay, because a type without a scale keeps them.\n*/\nfunction canonicalNumeralText(text) {\n\tconst numeral = DECIMAL_NUMERAL.exec(text);\n\tif (numeral === null) return text;\n\tconst [, sign = \"\", whole = \"\", fraction = \"\"] = numeral;\n\tconst digits = `${whole}${fraction}`;\n\treturn /^[0.]+$/.test(digits) ? digits : `${sign}${digits}`;\n}\n/**\n* A number as a contract source writes it: no exponent, because no schema language has that syntax,\n* so the decimal point moves to where the exponent puts it. A non-finite number is its own word.\n*/\nfunction numeralText(value) {\n\tconst [coefficient = \"\", exponent] = String(value).split(\"e\");\n\tif (exponent === void 0) return coefficient;\n\tconst sign = coefficient.startsWith(\"-\") ? \"-\" : \"\";\n\tconst [whole = \"\", fraction = \"\"] = coefficient.slice(sign.length).split(\".\");\n\tconst digits = `${whole}${fraction}`;\n\tconst point = whole.length + Number(exponent);\n\tif (point <= 0) return `${sign}0.${\"0\".repeat(-point)}${digits}`;\n\tif (point >= digits.length) return `${sign}${digits}${\"0\".repeat(point - digits.length)}`;\n\treturn `${sign}${digits.slice(0, point)}.${digits.slice(point)}`;\n}\n/** A string as a contract source writes it, with the escapes its string reader resolves. */\nfunction escapePslString(value) {\n\treturn value.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\");\n}\n/** The range of a signed integer of `bits` bits. */\nfunction signedRange(bits) {\n\tconst half = 2n ** (BigInt(bits) - 1n);\n\treturn {\n\t\tmin: -half,\n\t\tmax: half - 1n\n\t};\n}\n/**\n* The classifier one target's plain-number authoring entry carries: it reads the digits and says\n* which of the target's types the value is, in that type's canonical form. `undefined` means no\n* type of this target holds the number.\n*/\nfunction createNumberClassifier(spec) {\n\tconst as = (classification, value) => classification === void 0 ? void 0 : {\n\t\ttype: classification.type,\n\t\tvalue\n\t};\n\treturn (text) => {\n\t\tif (NON_FINITE_WORDS.has(text)) return as(spec.words, spec.words?.form === \"number\" ? Number(text) : text);\n\t\tif (DECIMAL_TEXT.test(text)) {\n\t\t\tconst canonical = canonicalNumeralText(text);\n\t\t\treturn as(spec.fraction, spec.fraction?.form === \"number\" ? Number(canonical) : canonical);\n\t\t}\n\t\tif (!INTEGER_TEXT.test(text)) return void 0;\n\t\tconst digits = BigInt(text);\n\t\tconst classification = spec.integers.find(({ min, max }) => digits >= min && digits <= max) ?? spec.largerWhole;\n\t\treturn as(classification, classification?.form === \"number\" ? Number(digits) : digits.toString());\n\t};\n}\n/**\n* Read a JSON body into the document it holds.\n*\n* `JSON.parse` reads a numeral too large for a double as `Infinity`, and `JSON.stringify` writes\n* that back as `null`, so a document holding one would not be the document stored; it is refused\n* here instead, naming where the number is.\n*/\nfunction parseJsonBody(text) {\n\tlet value;\n\ttry {\n\t\tvalue = JSON.parse(text);\n\t} catch (error) {\n\t\tthrow structuredError(\"CONTRACT.INVALID_JSON_LITERAL\", error instanceof Error ? error.message : String(error), {\n\t\t\twhy: \"The body is not a JSON document.\",\n\t\t\tfix: \"Write a JSON document.\"\n\t\t});\n\t}\n\tconst overflowed = nonFiniteNumberIn(value, \"\");\n\tif (overflowed !== void 0) throw structuredError(\"CONTRACT.INVALID_JSON_LITERAL\", `${overflowed.path} is ${overflowed.value}, which JSON cannot write back: the number in the text is outside the range a JSON number holds.`, {\n\t\twhy: \"JSON.parse reads a numeral too large for a double as Infinity, which JSON.stringify writes back as null.\",\n\t\tfix: \"Write a number JSON can hold, or write it as text.\"\n\t});\n\treturn value;\n}\n/** Write a document as the body of a JSON literal. */\nfunction printJsonBody(value) {\n\treturn JSON.stringify(value);\n}\nfunction nonFiniteNumberIn(value, path) {\n\tif (typeof value === \"number\") return Number.isFinite(value) ? void 0 : {\n\t\tpath: path === \"\" ? \"The value\" : path,\n\t\tvalue\n\t};\n\tif (Array.isArray(value)) {\n\t\tfor (const [index, element] of value.entries()) {\n\t\t\tconst found = nonFiniteNumberIn(element, `${path}[${index}]`);\n\t\t\tif (found !== void 0) return found;\n\t\t}\n\t\treturn;\n\t}\n\tif (typeof value === \"object\" && value !== null) for (const [key, member] of Object.entries(value)) {\n\t\tconst found = nonFiniteNumberIn(member, path === \"\" ? key : `${path}.${key}`);\n\t\tif (found !== void 0) return found;\n\t}\n}\n//#endregion\n//#region src/ast/json-value-projection.ts\nvar JsonValueProjection = class {\n\tvalue;\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n\tfold(folder) {\n\t\treturn this.value.fold(folder);\n\t}\n\tcollectColumnRefs() {\n\t\treturn this.value.collectColumnRefs();\n\t}\n\tcollectParamRefs() {\n\t\treturn this.value.collectParamRefs();\n\t}\n\tfreeze() {\n\t\tObject.freeze(this);\n\t}\n};\nvar CodecJsonValueProjection = class CodecJsonValueProjection extends JsonValueProjection {\n\tkind = \"codec\";\n\tcodec;\n\tconstructor(value, codec) {\n\t\tsuper(value);\n\t\tthis.codec = frozenCodecRef(codec);\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.codec(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new CodecJsonValueProjection(this.value.rewrite(rewriter), this.codec);\n\t}\n};\nvar NativeJsonValueProjection = class NativeJsonValueProjection extends JsonValueProjection {\n\tkind = \"native\";\n\tconstructor(value) {\n\t\tsuper(value);\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.native(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new NativeJsonValueProjection(this.value.rewrite(rewriter));\n\t}\n};\nvar JsonDocumentProjection = class JsonDocumentProjection extends JsonValueProjection {\n\tkind = \"document\";\n\tconstructor(value) {\n\t\tsuper(value);\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.document(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new JsonDocumentProjection(this.value.rewrite(rewriter));\n\t}\n};\n//#endregion\n//#region src/ast/sql-codec-helpers.ts\nconst SQL_CHAR_CODEC_ID = \"sql/char@1\";\nconst SQL_VARCHAR_CODEC_ID = \"sql/varchar@1\";\nconst SQL_INT_CODEC_ID = \"sql/int@1\";\nconst SQL_FLOAT_CODEC_ID = \"sql/float@1\";\nconst SQL_TEXT_CODEC_ID = \"sql/text@1\";\nconst sqlCharEncode = (value) => value;\nconst sqlCharDecode = (wire) => wire.trimEnd();\nconst sqlCharRenderOutputType = (typeParams) => {\n\tconst length = typeParams.length;\n\tif (length === void 0) return void 0;\n\tif (typeof length !== \"number\" || !Number.isFinite(length) || !Number.isInteger(length)) throw structuredError(\"RUNTIME.TYPE_PARAMS_INVALID\", `renderOutputType: expected integer \"length\" in typeParams for Char, got ${String(length)}`, { meta: {\n\t\tcodec: SQL_CHAR_CODEC_ID,\n\t\tparam: \"length\",\n\t\treceived: String(length)\n\t} });\n\treturn `Char<${length}>`;\n};\nconst sqlVarcharEncode = (value) => value;\nconst sqlVarcharDecode = (wire) => wire;\nconst sqlVarcharRenderOutputType = (typeParams) => {\n\tconst length = typeParams.length;\n\tif (length === void 0) return void 0;\n\tif (typeof length !== \"number\" || !Number.isFinite(length) || !Number.isInteger(length)) throw structuredError(\"RUNTIME.TYPE_PARAMS_INVALID\", `renderOutputType: expected integer \"length\" in typeParams for Varchar, got ${String(length)}`, { meta: {\n\t\tcodec: SQL_VARCHAR_CODEC_ID,\n\t\tparam: \"length\",\n\t\treceived: String(length)\n\t} });\n\treturn `Varchar<${length}>`;\n};\nconst sqlIntEncode = (value) => value;\nconst sqlIntDecode = (wire) => wire;\nconst sqlFloatEncode = (value) => value;\nconst sqlFloatDecode = (wire) => wire;\n/**\n* JSON has no spelling for a non-finite number, and a database that holds one\n* emits it as a string — PostgreSQL writes `\"NaN\"` and `\"Infinity\"`. This\n* codec's application type is `number`, so both directions reject rather than\n* carry a value that type cannot hold.\n*/\nconst sqlFloatEncodeJson = (value) => {\n\tif (!Number.isFinite(value)) throw structuredError(\"RUNTIME.ENCODE_FAILED\", `${SQL_FLOAT_CODEC_ID} application value must be a finite number, got ${value}`, { meta: { codec: SQL_FLOAT_CODEC_ID } });\n\treturn value;\n};\nconst sqlFloatDecodeJson = (json) => {\n\tif (typeof json !== \"number\" || !Number.isFinite(json)) throw structuredError(\"RUNTIME.DECODE_FAILED\", `Expected a finite number for ${SQL_FLOAT_CODEC_ID}, got ${JSON.stringify(json)}`, { meta: { codec: SQL_FLOAT_CODEC_ID } });\n\treturn json;\n};\nconst sqlTextEncode = (value) => value;\nconst sqlTextDecode = (wire) => wire;\n//#endregion\n//#region src/ast/sql-codecs.ts\nconst lengthParamsSchema = type({ \"length?\": \"number.integer > 0\" });\nvar SqlTextCodec = class extends CodecImpl {\n\tasync encode(value, _ctx) {\n\t\treturn sqlTextEncode(value);\n\t}\n\tasync decode(wire, _ctx) {\n\t\treturn sqlTextDecode(wire);\n\t}\n\tencodeJson(value) {\n\t\treturn value;\n\t}\n\tdecodeJson(json) {\n\t\treturn json;\n\t}\n};\nvar SqlTextDescriptor = class extends CodecDescriptorTemplateImpl {\n\tcodecId = SQL_TEXT_CODEC_ID;\n\ttraits = [\n\t\t\"equality\",\n\t\t\"order\",\n\t\t\"textual\"\n\t];\n\ttargetTypes = [\"text\"];\n\tparamsSchema = void 0;\n\tfactory() {\n\t\treturn () => new SqlTextCodec(this);\n\t}\n};\nconst sqlTextDescriptor = new SqlTextDescriptor();\nconst sqlTextColumn = () => column(sqlTextDescriptor.factory(), sqlTextDescriptor.codecId, void 0, \"text\");\nvar SqlIntCodec = class extends CodecImpl {\n\tasync encode(value, _ctx) {\n\t\treturn sqlIntEncode(value);\n\t}\n\tasync decode(wire, _ctx) {\n\t\treturn sqlIntDecode(wire);\n\t}\n\tencodeJson(value) {\n\t\treturn value;\n\t}\n\tdecodeJson(json) {\n\t\treturn json;\n\t}\n};\nvar SqlIntDescriptor = class extends CodecDescriptorTemplateImpl {\n\tcodecId = SQL_INT_CODEC_ID;\n\ttraits = [\n\t\t\"equality\",\n\t\t\"order\",\n\t\t\"numeric\"\n\t];\n\ttargetTypes = [\"int\"];\n\tparamsSchema = void 0;\n\tfactory() {\n\t\treturn () => new SqlIntCodec(this);\n\t}\n};\nconst sqlIntDescriptor = new SqlIntDescriptor();\nconst sqlIntColumn = () => column(sqlIntDescriptor.factory(), sqlIntDescriptor.codecId, void 0, \"int\");\nvar SqlFloatCodec = class extends CodecImpl {\n\tasync encode(value, _ctx) {\n\t\treturn sqlFloatEncode(value);\n\t}\n\tasync decode(wire, _ctx) {\n\t\treturn sqlFloatDecode(wire);\n\t}\n\tencodeJson(value) {\n\t\treturn sqlFloatEncodeJson(value);\n\t}\n\tdecodeJson(json) {\n\t\treturn sqlFloatDecodeJson(json);\n\t}\n};\nvar SqlFloatDescriptor = class extends CodecDescriptorTemplateImpl {\n\tcodecId = SQL_FLOAT_CODEC_ID;\n\ttraits = [\n\t\t\"equality\",\n\t\t\"order\",\n\t\t\"numeric\"\n\t];\n\ttargetTypes = [\"float\"];\n\tparamsSchema = void 0;\n\tfactory() {\n\t\treturn () => new SqlFloatCodec(this);\n\t}\n};\nconst sqlFloatDescriptor = new SqlFloatDescriptor();\nconst sqlFloatColumn = () => column(sqlFloatDescriptor.factory(), sqlFloatDescriptor.codecId, void 0, \"float\");\nvar SqlCharCodec = class extends CodecImpl {\n\tasync encode(value, _ctx) {\n\t\treturn sqlCharEncode(value);\n\t}\n\tasync decode(wire, _ctx) {\n\t\treturn sqlCharDecode(wire);\n\t}\n\tencodeJson(value) {\n\t\treturn value;\n\t}\n\tdecodeJson(json) {\n\t\treturn json;\n\t}\n};\nvar SqlCharDescriptor = class extends CodecDescriptorTemplateImpl {\n\tcodecId = SQL_CHAR_CODEC_ID;\n\ttraits = [\n\t\t\"equality\",\n\t\t\"order\",\n\t\t\"textual\"\n\t];\n\ttargetTypes = [\"char\"];\n\tparamsSchema = lengthParamsSchema;\n\trenderOutputType(params) {\n\t\treturn sqlCharRenderOutputType(params);\n\t}\n\tfactory(_params) {\n\t\treturn () => new SqlCharCodec(this);\n\t}\n};\nconst sqlCharDescriptor = new SqlCharDescriptor();\nconst sqlCharColumn = (params = {}) => column(sqlCharDescriptor.factory(params), sqlCharDescriptor.codecId, params, \"char\");\nvar SqlVarcharCodec = class extends CodecImpl {\n\tasync encode(value, _ctx) {\n\t\treturn sqlVarcharEncode(value);\n\t}\n\tasync decode(wire, _ctx) {\n\t\treturn sqlVarcharDecode(wire);\n\t}\n\tencodeJson(value) {\n\t\treturn value;\n\t}\n\tdecodeJson(json) {\n\t\treturn json;\n\t}\n};\nvar SqlVarcharDescriptor = class extends CodecDescriptorTemplateImpl {\n\tcodecId = SQL_VARCHAR_CODEC_ID;\n\ttraits = [\n\t\t\"equality\",\n\t\t\"order\",\n\t\t\"textual\"\n\t];\n\ttargetTypes = [\"varchar\"];\n\tparamsSchema = lengthParamsSchema;\n\trenderOutputType(params) {\n\t\treturn sqlVarcharRenderOutputType(params);\n\t}\n\tfactory(_params) {\n\t\treturn () => new SqlVarcharCodec(this);\n\t}\n};\nconst sqlVarcharDescriptor = new SqlVarcharDescriptor();\nconst sqlVarcharColumn = (params = {}) => column(sqlVarcharDescriptor.factory(params), sqlVarcharDescriptor.codecId, params, \"varchar\");\n//#endregion\nexport { AggregateExpr, AndExpr, BinaryExpr, CaseExpr, CastExpr, CheckExpressionConstraint, CodecJsonValueProjection, ColumnRef, DdlColumn, DdlColumnDefault, DdlNode, DefaultValueExpr, DeleteAst, DerivedTableSource, DoNothingConflictAction, DoUpdateSetConflictAction, EqColJoinOn, ExistsExpr, ForeignKeyConstraint, FunctionCallExpr, FunctionColumnDefault, FunctionSource, IdentifierRef, InsertAst, InsertOnConflict, JoinAst, JsonArrayAggExpr, JsonDocumentProjection, JsonObjectExpr, ListExpression, LiteralColumnDefault, LiteralExpr, NativeJsonValueProjection, NotExpr, NullCheckExpr, OperationExpr, OrExpr, OrderByItem, ParamRef, PreparedParamRef, PrimaryKeyConstraint, ProjectionItem, RawExpr, RawQueryAst, SQL_CHAR_CODEC_ID, SQL_FLOAT_CODEC_ID, SQL_INT_CODEC_ID, SQL_TEXT_CODEC_ID, SQL_VARCHAR_CODEC_ID, SelectAst, SqlCharCodec, SqlCharDescriptor, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, SqlTextCodec, SqlTextDescriptor, SqlVarcharCodec, SqlVarcharDescriptor, SubqueryExpr, TableSource, UniqueConstraint, UpdateAst, WindowFuncExpr, aggregateFnNames, canonicalNumeralText, collectOrderedParamRefs, compact, createNumberClassifier, escapePslString, frozenCodecRef, isAggregateFn, isDdlNode, isNonFiniteText, isNumeralText, isQueryAst, isWhereExpr, numeralText, parseJsonBody, printJsonBody, queryAstKinds, signedRange, sqlCharColumn, sqlCharDecode, sqlCharDescriptor, sqlCharEncode, sqlCharRenderOutputType, sqlFloatColumn, sqlFloatDecode, sqlFloatDecodeJson, sqlFloatDescriptor, sqlFloatEncode, sqlFloatEncodeJson, sqlIntColumn, sqlIntDecode, sqlIntDescriptor, sqlIntEncode, sqlTextColumn, sqlTextDecode, sqlTextDescriptor, sqlTextEncode, sqlVarcharColumn, sqlVarcharDecode, sqlVarcharDescriptor, sqlVarcharEncode, sqlVarcharRenderOutputType, whereExprKinds };\n\n//# sourceMappingURL=ast.mjs.map"],"mappings":";;;;;AAOA,MAAM,eAAe;AACrB,MAAM,eAAe;AACrB,MAAM,mCAAmC,IAAI,IAAI;CAChD;CACA;CACA;AACD,CAAC;AACD,MAAM,kBAAkB;;AAExB,SAAS,cAAc,MAAM;CAC5B,OAAO,aAAa,KAAK,IAAI,KAAK,aAAa,KAAK,IAAI;AACzD;;AAEA,SAAS,gBAAgB,MAAM;CAC9B,OAAO,iBAAiB,IAAI,IAAI;AACjC;;;;;AAKA,SAAS,qBAAqB,MAAM;CACnC,MAAM,UAAU,gBAAgB,KAAK,IAAI;CACzC,IAAI,YAAY,MAAM,OAAO;CAC7B,MAAM,GAAG,OAAO,IAAI,QAAQ,IAAI,WAAW,MAAM;CACjD,MAAM,SAAS,GAAG,QAAQ;CAC1B,OAAO,UAAU,KAAK,MAAM,IAAI,SAAS,GAAG,OAAO;AACpD;;;;;AAKA,SAAS,YAAY,OAAO;CAC3B,MAAM,CAAC,cAAc,IAAI,YAAY,OAAO,KAAK,CAAC,CAAC,MAAM,GAAG;CAC5D,IAAI,aAAa,KAAK,GAAG,OAAO;CAChC,MAAM,OAAO,YAAY,WAAW,GAAG,IAAI,MAAM;CACjD,MAAM,CAAC,QAAQ,IAAI,WAAW,MAAM,YAAY,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,GAAG;CAC5E,MAAM,SAAS,GAAG,QAAQ;CAC1B,MAAM,QAAQ,MAAM,SAAS,OAAO,QAAQ;CAC5C,IAAI,SAAS,GAAG,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI;CACxD,IAAI,SAAS,OAAO,QAAQ,OAAO,GAAG,OAAO,SAAS,IAAI,OAAO,QAAQ,OAAO,MAAM;CACtF,OAAO,GAAG,OAAO,OAAO,MAAM,GAAG,KAAK,EAAE,GAAG,OAAO,MAAM,KAAK;AAC9D;;AAEA,SAAS,gBAAgB,OAAO;CAC/B,OAAO,MAAM,QAAQ,OAAO,MAAM,CAAC,CAAC,QAAQ,MAAM,MAAM,CAAC,CAAC,QAAQ,OAAO,KAAK,CAAC,CAAC,QAAQ,OAAO,KAAK;AACrG;;AAEA,SAAS,YAAY,MAAM;CAC1B,MAAM,OAAO,OAAO,OAAO,IAAI,IAAI;CACnC,OAAO;EACN,KAAK,CAAC;EACN,KAAK,OAAO;CACb;AACD;;;;;;AAMA,SAAS,uBAAuB,MAAM;CACrC,MAAM,MAAM,gBAAgB,UAAU,mBAAmB,KAAK,IAAI,KAAK,IAAI;EAC1E,MAAM,eAAe;EACrB;CACD;CACA,QAAQ,SAAS;EAChB,IAAI,iBAAiB,IAAI,IAAI,GAAG,OAAO,GAAG,KAAK,OAAO,KAAK,OAAO,SAAS,WAAW,OAAO,IAAI,IAAI,IAAI;EACzG,IAAI,aAAa,KAAK,IAAI,GAAG;GAC5B,MAAM,YAAY,qBAAqB,IAAI;GAC3C,OAAO,GAAG,KAAK,UAAU,KAAK,UAAU,SAAS,WAAW,OAAO,SAAS,IAAI,SAAS;EAC1F;EACA,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,OAAO,KAAK;EAC1C,MAAM,SAAS,OAAO,IAAI;EAC1B,MAAM,iBAAiB,KAAK,SAAS,MAAM,EAAE,KAAK,UAAU,UAAU,OAAO,UAAU,GAAG,KAAK,KAAK;EACpG,OAAO,GAAG,gBAAgB,gBAAgB,SAAS,WAAW,OAAO,MAAM,IAAI,OAAO,SAAS,CAAC;CACjG;AACD;;;;;;;;AAQA,SAAS,cAAc,MAAM;CAC5B,IAAI;CACJ,IAAI;EACH,QAAQ,KAAK,MAAM,IAAI;CACxB,SAAS,OAAO;EACf,MAAM,gBAAgB,iCAAiC,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG;GAC9G,KAAK;GACL,KAAK;EACN,CAAC;CACF;CACA,MAAM,aAAa,kBAAkB,OAAO,EAAE;CAC9C,IAAI,eAAe,KAAK,GAAG,MAAM,gBAAgB,iCAAiC,GAAG,WAAW,KAAK,MAAM,WAAW,MAAM,mGAAmG;EAC9N,KAAK;EACL,KAAK;CACN,CAAC;CACD,OAAO;AACR;;AAEA,SAAS,cAAc,OAAO;CAC7B,OAAO,KAAK,UAAU,KAAK;AAC5B;AACA,SAAS,kBAAkB,OAAO,MAAM;CACvC,IAAI,OAAO,UAAU,UAAU,OAAO,OAAO,SAAS,KAAK,IAAI,KAAK,IAAI;EACvE,MAAM,SAAS,KAAK,cAAc;EAClC;CACD;CACA,IAAI,MAAM,QAAQ,KAAK,GAAG;EACzB,KAAK,MAAM,CAAC,OAAO,YAAY,MAAM,QAAQ,GAAG;GAC/C,MAAM,QAAQ,kBAAkB,SAAS,GAAG,KAAK,GAAG,MAAM,EAAE;GAC5D,IAAI,UAAU,KAAK,GAAG,OAAO;EAC9B;EACA;CACD;CACA,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM,KAAK,MAAM,CAAC,KAAK,WAAW,OAAO,QAAQ,KAAK,GAAG;EACnG,MAAM,QAAQ,kBAAkB,QAAQ,SAAS,KAAK,MAAM,GAAG,KAAK,GAAG,KAAK;EAC5E,IAAI,UAAU,KAAK,GAAG,OAAO;CAC9B;AACD;AAGA,IAAI,sBAAsB,MAAM;CAC/B;CACA,YAAY,OAAO;EAClB,KAAK,QAAQ;CACd;CACA,KAAK,QAAQ;EACZ,OAAO,KAAK,MAAM,KAAK,MAAM;CAC9B;CACA,oBAAoB;EACnB,OAAO,KAAK,MAAM,kBAAkB;CACrC;CACA,mBAAmB;EAClB,OAAO,KAAK,MAAM,iBAAiB;CACpC;CACA,SAAS;EACR,OAAO,OAAO,IAAI;CACnB;AACD;AACA,IAAI,2BAA2B,MAAM,iCAAiC,oBAAoB;CACzF,OAAO;CACP;CACA,YAAY,OAAO,OAAO;EACzB,MAAM,KAAK;EACX,KAAK,QAAQ,eAAe,KAAK;EACjC,KAAK,OAAO;CACb;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,MAAM,IAAI;CAC1B;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,yBAAyB,KAAK,MAAM,QAAQ,QAAQ,GAAG,KAAK,KAAK;CAC7E;AACD;AACA,IAAI,4BAA4B,MAAM,kCAAkC,oBAAoB;CAC3F,OAAO;CACP,YAAY,OAAO;EAClB,MAAM,KAAK;EACX,KAAK,OAAO;CACb;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,OAAO,IAAI;CAC3B;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,0BAA0B,KAAK,MAAM,QAAQ,QAAQ,CAAC;CAClE;AACD;AACA,IAAI,yBAAyB,MAAM,+BAA+B,oBAAoB;CACrF,OAAO;CACP,YAAY,OAAO;EAClB,MAAM,KAAK;EACX,KAAK,OAAO;CACb;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,SAAS,IAAI;CAC7B;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,uBAAuB,KAAK,MAAM,QAAQ,QAAQ,CAAC;CAC/D;AACD;AAGA,MAAM,oBAAoB;AAC1B,MAAM,uBAAuB;AAC7B,MAAM,mBAAmB;AACzB,MAAM,qBAAqB;AAC3B,MAAM,oBAAoB;AAC1B,MAAM,iBAAiB,UAAU;AACjC,MAAM,iBAAiB,SAAS,KAAK,QAAQ;AAC7C,MAAM,2BAA2B,eAAe;CAC/C,MAAM,SAAS,WAAW;CAC1B,IAAI,WAAW,KAAK,GAAG,OAAO,KAAK;CACnC,IAAI,OAAO,WAAW,YAAY,CAAC,OAAO,SAAS,MAAM,KAAK,CAAC,OAAO,UAAU,MAAM,GAAG,MAAM,gBAAgB,+BAA+B,2EAA2E,OAAO,MAAM,KAAK,EAAE,MAAM;EAClP,OAAO;EACP,OAAO;EACP,UAAU,OAAO,MAAM;CACxB,EAAE,CAAC;CACH,OAAO,QAAQ,OAAO;AACvB;AACA,MAAM,oBAAoB,UAAU;AACpC,MAAM,oBAAoB,SAAS;AACnC,MAAM,8BAA8B,eAAe;CAClD,MAAM,SAAS,WAAW;CAC1B,IAAI,WAAW,KAAK,GAAG,OAAO,KAAK;CACnC,IAAI,OAAO,WAAW,YAAY,CAAC,OAAO,SAAS,MAAM,KAAK,CAAC,OAAO,UAAU,MAAM,GAAG,MAAM,gBAAgB,+BAA+B,8EAA8E,OAAO,MAAM,KAAK,EAAE,MAAM;EACrP,OAAO;EACP,OAAO;EACP,UAAU,OAAO,MAAM;CACxB,EAAE,CAAC;CACH,OAAO,WAAW,OAAO;AAC1B;AACA,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,SAAS;AAC/B,MAAM,kBAAkB,UAAU;AAClC,MAAM,kBAAkB,SAAS;;;;;;;AAOjC,MAAM,sBAAsB,UAAU;CACrC,IAAI,CAAC,OAAO,SAAS,KAAK,GAAG,MAAM,gBAAgB,yBAAyB,GAAG,mBAAmB,kDAAkD,SAAS,EAAE,MAAM,EAAE,OAAO,mBAAmB,EAAE,CAAC;CACpM,OAAO;AACR;AACA,MAAM,sBAAsB,SAAS;CACpC,IAAI,OAAO,SAAS,YAAY,CAAC,OAAO,SAAS,IAAI,GAAG,MAAM,gBAAgB,yBAAyB,gCAAgC,mBAAmB,QAAQ,KAAK,UAAU,IAAI,KAAK,EAAE,MAAM,EAAE,OAAO,mBAAmB,EAAE,CAAC;CACjO,OAAO;AACR;AACA,MAAM,iBAAiB,UAAU;AACjC,MAAM,iBAAiB,SAAS;AAGhC,MAAM,qBAAqB,KAAK,EAAE,WAAW,qBAAqB,CAAC;AACnE,IAAI,eAAe,cAAc,UAAU;CAC1C,MAAM,OAAO,OAAO,MAAM;EACzB,OAAO,cAAc,KAAK;CAC3B;CACA,MAAM,OAAO,MAAM,MAAM;EACxB,OAAO,cAAc,IAAI;CAC1B;CACA,WAAW,OAAO;EACjB,OAAO;CACR;CACA,WAAW,MAAM;EAChB,OAAO;CACR;AACD;AACA,IAAI,oBAAoB,cAAc,4BAA4B;CACjE,UAAU;CACV,SAAS;EACR;EACA;EACA;CACD;CACA,cAAc,CAAC,MAAM;CACrB,eAAe,KAAK;CACpB,UAAU;EACT,aAAa,IAAI,aAAa,IAAI;CACnC;AACD;AACA,MAAM,oBAAoB,IAAI,kBAAkB;AAChD,MAAM,sBAAsB,OAAO,kBAAkB,QAAQ,GAAG,kBAAkB,SAAS,KAAK,GAAG,MAAM;AACzG,IAAI,cAAc,cAAc,UAAU;CACzC,MAAM,OAAO,OAAO,MAAM;EACzB,OAAO,aAAa,KAAK;CAC1B;CACA,MAAM,OAAO,MAAM,MAAM;EACxB,OAAO,aAAa,IAAI;CACzB;CACA,WAAW,OAAO;EACjB,OAAO;CACR;CACA,WAAW,MAAM;EAChB,OAAO;CACR;AACD;AACA,IAAI,mBAAmB,cAAc,4BAA4B;CAChE,UAAU;CACV,SAAS;EACR;EACA;EACA;CACD;CACA,cAAc,CAAC,KAAK;CACpB,eAAe,KAAK;CACpB,UAAU;EACT,aAAa,IAAI,YAAY,IAAI;CAClC;AACD;AACA,MAAM,mBAAmB,IAAI,iBAAiB;AAC9C,MAAM,qBAAqB,OAAO,iBAAiB,QAAQ,GAAG,iBAAiB,SAAS,KAAK,GAAG,KAAK;AACrG,IAAI,gBAAgB,cAAc,UAAU;CAC3C,MAAM,OAAO,OAAO,MAAM;EACzB,OAAO,eAAe,KAAK;CAC5B;CACA,MAAM,OAAO,MAAM,MAAM;EACxB,OAAO,eAAe,IAAI;CAC3B;CACA,WAAW,OAAO;EACjB,OAAO,mBAAmB,KAAK;CAChC;CACA,WAAW,MAAM;EAChB,OAAO,mBAAmB,IAAI;CAC/B;AACD;AACA,IAAI,qBAAqB,cAAc,4BAA4B;CAClE,UAAU;CACV,SAAS;EACR;EACA;EACA;CACD;CACA,cAAc,CAAC,OAAO;CACtB,eAAe,KAAK;CACpB,UAAU;EACT,aAAa,IAAI,cAAc,IAAI;CACpC;AACD;AACA,MAAM,qBAAqB,IAAI,mBAAmB;AAClD,MAAM,uBAAuB,OAAO,mBAAmB,QAAQ,GAAG,mBAAmB,SAAS,KAAK,GAAG,OAAO;AAC7G,IAAI,eAAe,cAAc,UAAU;CAC1C,MAAM,OAAO,OAAO,MAAM;EACzB,OAAO,cAAc,KAAK;CAC3B;CACA,MAAM,OAAO,MAAM,MAAM;EACxB,OAAO,cAAc,IAAI;CAC1B;CACA,WAAW,OAAO;EACjB,OAAO;CACR;CACA,WAAW,MAAM;EAChB,OAAO;CACR;AACD;AACA,IAAI,oBAAoB,cAAc,4BAA4B;CACjE,UAAU;CACV,SAAS;EACR;EACA;EACA;CACD;CACA,cAAc,CAAC,MAAM;CACrB,eAAe;CACf,iBAAiB,QAAQ;EACxB,OAAO,wBAAwB,MAAM;CACtC;CACA,QAAQ,SAAS;EAChB,aAAa,IAAI,aAAa,IAAI;CACnC;AACD;AACA,MAAM,oBAAoB,IAAI,kBAAkB;AAChD,MAAM,iBAAiB,SAAS,CAAC,MAAM,OAAO,kBAAkB,QAAQ,MAAM,GAAG,kBAAkB,SAAS,QAAQ,MAAM;AAC1H,IAAI,kBAAkB,cAAc,UAAU;CAC7C,MAAM,OAAO,OAAO,MAAM;EACzB,OAAO,iBAAiB,KAAK;CAC9B;CACA,MAAM,OAAO,MAAM,MAAM;EACxB,OAAO,iBAAiB,IAAI;CAC7B;CACA,WAAW,OAAO;EACjB,OAAO;CACR;CACA,WAAW,MAAM;EAChB,OAAO;CACR;AACD;AACA,IAAI,uBAAuB,cAAc,4BAA4B;CACpE,UAAU;CACV,SAAS;EACR;EACA;EACA;CACD;CACA,cAAc,CAAC,SAAS;CACxB,eAAe;CACf,iBAAiB,QAAQ;EACxB,OAAO,2BAA2B,MAAM;CACzC;CACA,QAAQ,SAAS;EAChB,aAAa,IAAI,gBAAgB,IAAI;CACtC;AACD;AACA,MAAM,uBAAuB,IAAI,qBAAqB;AACtD,MAAM,oBAAoB,SAAS,CAAC,MAAM,OAAO,qBAAqB,QAAQ,MAAM,GAAG,qBAAqB,SAAS,QAAQ,SAAS"}
@@ -1,6 +1,6 @@
1
- import { C as LiteralExpr, D as OrExpr, F as SubqueryExpr, I as TableSource, L as UpdateAst, O as OrderByItem, P as SelectAst, S as ListExpression, T as NullCheckExpr, V as isAggregateFn, _ as InsertAst, c as DeleteAst, g as IdentifierRef, j as ProjectionItem, k as ParamRef, l as DerivedTableSource, n as AndExpr, o as ColumnRef, p as ExistsExpr, r as BinaryExpr, t as AggregateExpr, y as JoinAst } from "./types-ZNKYVjLr-DzjvSHKB.mjs";
1
+ import { C as LiteralExpr, D as OrExpr, F as SubqueryExpr, I as TableSource, L as UpdateAst, O as OrderByItem, P as SelectAst, S as ListExpression, T as NullCheckExpr, V as isAggregateFn, _ as InsertAst, c as DeleteAst, g as IdentifierRef, j as ProjectionItem, k as ParamRef, l as DerivedTableSource, n as AndExpr, o as ColumnRef, p as ExistsExpr, r as BinaryExpr, t as AggregateExpr, y as JoinAst } from "./types-BAhLyUFj-3TARSz8c.mjs";
2
2
  import { t as collectOrderedParamRefs } from "./util-DQQgv2j1-D6INZaRG.mjs";
3
- import { i as isExpression, n as codecOf, o as toExpr, r as createRawSql } from "./expression-DqrE3myO.mjs";
3
+ import { i as isExpression, n as codecOf, o as toExpr, r as createRawSql } from "./expression-CrGD_4do.mjs";
4
4
  import { n as codecRefForStorageColumn } from "./codec-descriptor-registry-ECZ4ohtG.mjs";
5
5
  import { assertAnnotationsApplicable } from "@prisma/orm-framework/components/runtime";
6
6
  //#region ../../../2-sql/4-lanes/sql-builder/dist/runtime/index.mjs
@@ -1,4 +1,4 @@
1
- import { E as OperationExpr, M as RawExpr, N as RawQueryAst, k as ParamRef } from "./types-ZNKYVjLr-DzjvSHKB.mjs";
1
+ import { E as OperationExpr, M as RawExpr, N as RawQueryAst, k as ParamRef } from "./types-BAhLyUFj-3TARSz8c.mjs";
2
2
  import { t as planFromAst } from "./plan-Dh0LbYIv-Crx5-ThG.mjs";
3
3
  import { runtimeError } from "@prisma/orm-framework/components/runtime";
4
4
  import { invariant } from "@prisma/orm-framework/utils/assertions";
@@ -145,4 +145,4 @@ var RawSqlStatementBuilderImpl = class extends RawSqlBuilderImpl {
145
145
  //#endregion
146
146
  export { param as a, isExpression as i, codecOf as n, toExpr as o, createRawSql as r, buildOperation as t };
147
147
 
148
- //# sourceMappingURL=expression-DqrE3myO.mjs.map
148
+ //# sourceMappingURL=expression-CrGD_4do.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"expression-DqrE3myO.mjs","names":[],"sources":["../../../../2-sql/4-lanes/relational-core/dist/exports/expression.mjs"],"sourcesContent":["import { E as OperationExpr, M as RawExpr, N as RawQueryAst, k as ParamRef } from \"../types-ZNKYVjLr.mjs\";\nimport { t as planFromAst } from \"../plan-Dh0LbYIv.mjs\";\nimport { runtimeError } from \"@internal/framework-components/runtime\";\nimport { invariant } from \"@internal/utils/assertions\";\n//#region src/expression.ts\n/**\n* Resolve a raw value or an Expression into an AST expression node.\n*\n* When `value` is an object with a callable `buildAst`, the AST it wraps is returned. Otherwise the value is embedded as a ParamRef tagged with the caller-supplied {@link CodecRef} (when known). The runtime resolves the ref via `contractCodecs.forCodecRef(codec)`; content-keyed memoisation collapses repeated lookups for the same logical column onto one shared codec.\n*\n* Operation implementations that compare a column-bound expression to a user value derive the column's {@link CodecRef} from the column-bound side (via {@link codecOf}) and forward it here so encode-side dispatch resolves to the per-instance codec for parameterized codec ids (`vector(1024)` vs. `vector(1536)`).\n*/\nfunction toExpr(value, codec) {\n\tif (isExpression(value)) return value.buildAst();\n\tif (codec === void 0) throw runtimeError(\"RUNTIME.PARAM_REF_CODEC_REQUIRED\", `Cannot construct a ParamRef for a ${value === null ? \"null\" : typeof value} value without an explicit codec. Provide a CodecRef at the call site or use a column-bound builder path.`);\n\treturn ParamRef.of(value, { codec });\n}\n/**\n* Construct a `ParamRef` for a value whose codec identity is known at call time. Use this when interpolating a value into a raw SQL expression and the codec cannot be inferred from context — e.g. `param(myDate, { codecId: 'pg/timestamptz-temporal@1' })`.\n*/\nfunction param(value, opts) {\n\treturn ParamRef.of(value, { codec: { codecId: opts.codecId } });\n}\n/**\n* Derive the {@link CodecRef} carried by an expression-like value.\n*\n* Resolution order:\n* 1. `wrapper.returnType.codec` — scope-level codec when the scope was built from contract storage.\n* 2. `{ codecId: wrapper.returnType.codecId }` — minimal ref derived from the expression's declared codec id (covers synthetic expressions like `count()` whose returnType has a known codec id but no explicit column binding).\n*\n* Returns `undefined` for raw scalar values (non-expression-like).\n*/\nfunction codecOf(value) {\n\tif (!isExpression(value)) return void 0;\n\treturn value.returnType?.codec ?? (value.returnType?.codecId ? { codecId: value.returnType.codecId } : void 0);\n}\nfunction isExpression(value) {\n\treturn typeof value === \"object\" && value !== null && \"buildAst\" in value && typeof value.buildAst === \"function\";\n}\n/**\n* Construct an OperationExpr AST node and wrap it as a typed Expression. Operation implementations use this to turn their user-facing arguments into the AST node the compilation pipeline eventually lowers to SQL.\n*/\nfunction buildOperation(spec) {\n\tconst [self, ...rest] = spec.args;\n\tconst op = new OperationExpr({\n\t\tmethod: spec.method,\n\t\tself,\n\t\targs: rest.length > 0 ? rest : void 0,\n\t\treturns: spec.returns,\n\t\tlowering: spec.lowering\n\t});\n\treturn {\n\t\treturnType: spec.returns,\n\t\tbuildAst: () => op\n\t};\n}\nfunction resolveInterpolation(adapter, value) {\n\tif (isExpression(value)) return value.buildAst();\n\tif (value instanceof ParamRef) return value;\n\tif (typeof value === \"number\" || typeof value === \"bigint\" || typeof value === \"string\" || typeof value === \"boolean\" || value instanceof Uint8Array) return ParamRef.of(value, { codec: { codecId: adapter.inferCodec(value) } });\n\tthrow runtimeError(\"RUNTIME.RAW_SQL_UNSUPPORTED_INTERPOLATION\", \"unsupported JS value type for raw-SQL interpolation: wrap this value in `param(...)` with an explicit codec\");\n}\nfunction isRawRowQuery(value) {\n\treturn typeof value === \"object\" && value !== null && \"buildAst\" in value && typeof value.buildAst === \"function\" && \"build\" in value && typeof value.build === \"function\";\n}\nfunction templateParts(adapter, strings, values) {\n\tconst parts = [strings[0] ?? \"\"];\n\tvalues.forEach((value, i) => {\n\t\tif (isRawRowQuery(value)) parts.push(...value.buildAst().parts);\n\t\telse parts.push(resolveInterpolation(adapter, value));\n\t\tparts.push(strings[i + 1] ?? \"\");\n\t});\n\treturn parts;\n}\n/**\n* Normalizes each authored entry to a {@link RawQueryColumn}. The record is\n* assembled with `Object.fromEntries`, which defines each key as an own\n* property: a spec built at runtime with a `__proto__` key reaches the AST,\n* which refuses it by name, rather than silently setting the record's\n* prototype and leaving the column to vanish.\n*/\nfunction resolveRowSpec(spec) {\n\treturn Object.fromEntries(Object.entries(spec).map(([name, entry]) => [name, typeof entry === \"string\" ? {\n\t\tcodecId: entry,\n\t\tnullable: false\n\t} : {\n\t\tcodecId: entry.codecId,\n\t\tnullable: entry.nullable ?? false\n\t}]));\n}\nfunction createRawSql(adapter, planContext) {\n\tif (planContext === void 0) return (strings, ...values) => new RawSqlBuilderImpl(templateParts(adapter, strings, values));\n\tconst context = planContext;\n\treturn (strings, ...values) => new RawSqlStatementBuilderImpl(templateParts(adapter, strings, values), context);\n}\nvar RawSqlBuilderImpl = class {\n\tparts;\n\tconstructor(parts) {\n\t\tthis.parts = parts;\n\t}\n\treturns(spec) {\n\t\tconst codecId = typeof spec === \"string\" ? spec : spec.codecId;\n\t\tconst nullable = typeof spec === \"string\" ? false : spec.nullable ?? false;\n\t\tconst paramSpec = {\n\t\t\tcodecId,\n\t\t\tnullable\n\t\t};\n\t\tconst node = new RawExpr({\n\t\t\tparts: this.parts,\n\t\t\treturns: paramSpec\n\t\t});\n\t\treturn {\n\t\t\treturnType: {\n\t\t\t\tcodecId,\n\t\t\t\tnullable\n\t\t\t},\n\t\t\tbuildAst: () => node\n\t\t};\n\t}\n};\nvar RawSqlStatementBuilderImpl = class extends RawSqlBuilderImpl {\n\tplanContext;\n\tconstructor(parts, planContext) {\n\t\tsuper(parts);\n\t\tthis.planContext = planContext;\n\t}\n\treturnsRow(spec) {\n\t\tconst node = RawQueryAst.rows(this.parts, resolveRowSpec(spec));\n\t\tconst result = node.result;\n\t\tinvariant(result.kind === \"rows\", \"RawQueryAst.rows built a non-rows result\");\n\t\treturn {\n\t\t\treturns: result.columns,\n\t\t\tbuildAst: () => node,\n\t\t\tbuild: () => this.planFor(node)\n\t\t};\n\t}\n\taffectedCount() {\n\t\tconst node = RawQueryAst.affectedCount(this.parts);\n\t\treturn { build: () => this.planFor(node) };\n\t}\n\tplanFor(node) {\n\t\treturn planFromAst(node, this.planContext.contract, this.planContext.laneId);\n\t}\n};\n//#endregion\nexport { buildOperation, codecOf, createRawSql, isExpression, param, toExpr };\n\n//# sourceMappingURL=expression.mjs.map"],"mappings":";;;;;;;;;;;;AAYA,SAAS,OAAO,OAAO,OAAO;CAC7B,IAAI,aAAa,KAAK,GAAG,OAAO,MAAM,SAAS;CAC/C,IAAI,UAAU,KAAK,GAAG,MAAM,aAAa,oCAAoC,qCAAqC,UAAU,OAAO,SAAS,OAAO,MAAM,0GAA0G;CACnQ,OAAO,SAAS,GAAG,OAAO,EAAE,MAAM,CAAC;AACpC;;;;AAIA,SAAS,MAAM,OAAO,MAAM;CAC3B,OAAO,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC;AAC/D;;;;;;;;;;AAUA,SAAS,QAAQ,OAAO;CACvB,IAAI,CAAC,aAAa,KAAK,GAAG,OAAO,KAAK;CACtC,OAAO,MAAM,YAAY,UAAU,MAAM,YAAY,UAAU,EAAE,SAAS,MAAM,WAAW,QAAQ,IAAI,KAAK;AAC7G;AACA,SAAS,aAAa,OAAO;CAC5B,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,cAAc,SAAS,OAAO,MAAM,aAAa;AACxG;;;;AAIA,SAAS,eAAe,MAAM;CAC7B,MAAM,CAAC,MAAM,GAAG,QAAQ,KAAK;CAC7B,MAAM,KAAK,IAAI,cAAc;EAC5B,QAAQ,KAAK;EACb;EACA,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK;EACpC,SAAS,KAAK;EACd,UAAU,KAAK;CAChB,CAAC;CACD,OAAO;EACN,YAAY,KAAK;EACjB,gBAAgB;CACjB;AACD;AACA,SAAS,qBAAqB,SAAS,OAAO;CAC7C,IAAI,aAAa,KAAK,GAAG,OAAO,MAAM,SAAS;CAC/C,IAAI,iBAAiB,UAAU,OAAO;CACtC,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,YAAY,OAAO,UAAU,YAAY,OAAO,UAAU,aAAa,iBAAiB,YAAY,OAAO,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,SAAS,QAAQ,WAAW,KAAK,EAAE,EAAE,CAAC;CACjO,MAAM,aAAa,6CAA6C,6GAA6G;AAC9K;AACA,SAAS,cAAc,OAAO;CAC7B,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,cAAc,SAAS,OAAO,MAAM,aAAa,cAAc,WAAW,SAAS,OAAO,MAAM,UAAU;AACjK;AACA,SAAS,cAAc,SAAS,SAAS,QAAQ;CAChD,MAAM,QAAQ,CAAC,QAAQ,MAAM,EAAE;CAC/B,OAAO,SAAS,OAAO,MAAM;EAC5B,IAAI,cAAc,KAAK,GAAG,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,CAAC,KAAK;OACzD,MAAM,KAAK,qBAAqB,SAAS,KAAK,CAAC;EACpD,MAAM,KAAK,QAAQ,IAAI,MAAM,EAAE;CAChC,CAAC;CACD,OAAO;AACR;;;;;;;;AAQA,SAAS,eAAe,MAAM;CAC7B,OAAO,OAAO,YAAY,OAAO,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,WAAW,CAAC,MAAM,OAAO,UAAU,WAAW;EACxG,SAAS;EACT,UAAU;CACX,IAAI;EACH,SAAS,MAAM;EACf,UAAU,MAAM,YAAY;CAC7B,CAAC,CAAC,CAAC;AACJ;AACA,SAAS,aAAa,SAAS,aAAa;CAC3C,IAAI,gBAAgB,KAAK,GAAG,QAAQ,SAAS,GAAG,WAAW,IAAI,kBAAkB,cAAc,SAAS,SAAS,MAAM,CAAC;CACxH,MAAM,UAAU;CAChB,QAAQ,SAAS,GAAG,WAAW,IAAI,2BAA2B,cAAc,SAAS,SAAS,MAAM,GAAG,OAAO;AAC/G;AACA,IAAI,oBAAoB,MAAM;CAC7B;CACA,YAAY,OAAO;EAClB,KAAK,QAAQ;CACd;CACA,QAAQ,MAAM;EACb,MAAM,UAAU,OAAO,SAAS,WAAW,OAAO,KAAK;EACvD,MAAM,WAAW,OAAO,SAAS,WAAW,QAAQ,KAAK,YAAY;EACrE,MAAM,YAAY;GACjB;GACA;EACD;EACA,MAAM,OAAO,IAAI,QAAQ;GACxB,OAAO,KAAK;GACZ,SAAS;EACV,CAAC;EACD,OAAO;GACN,YAAY;IACX;IACA;GACD;GACA,gBAAgB;EACjB;CACD;AACD;AACA,IAAI,6BAA6B,cAAc,kBAAkB;CAChE;CACA,YAAY,OAAO,aAAa;EAC/B,MAAM,KAAK;EACX,KAAK,cAAc;CACpB;CACA,WAAW,MAAM;EAChB,MAAM,OAAO,YAAY,KAAK,KAAK,OAAO,eAAe,IAAI,CAAC;EAC9D,MAAM,SAAS,KAAK;EACpB,UAAU,OAAO,SAAS,QAAQ,0CAA0C;EAC5E,OAAO;GACN,SAAS,OAAO;GAChB,gBAAgB;GAChB,aAAa,KAAK,QAAQ,IAAI;EAC/B;CACD;CACA,gBAAgB;EACf,MAAM,OAAO,YAAY,cAAc,KAAK,KAAK;EACjD,OAAO,EAAE,aAAa,KAAK,QAAQ,IAAI,EAAE;CAC1C;CACA,QAAQ,MAAM;EACb,OAAO,YAAY,MAAM,KAAK,YAAY,UAAU,KAAK,YAAY,MAAM;CAC5E;AACD"}
1
+ {"version":3,"file":"expression-CrGD_4do.mjs","names":[],"sources":["../../../../2-sql/4-lanes/relational-core/dist/exports/expression.mjs"],"sourcesContent":["import { E as OperationExpr, M as RawExpr, N as RawQueryAst, k as ParamRef } from \"../types-BAhLyUFj.mjs\";\nimport { t as planFromAst } from \"../plan-Dh0LbYIv.mjs\";\nimport { runtimeError } from \"@internal/framework-components/runtime\";\nimport { invariant } from \"@internal/utils/assertions\";\n//#region src/expression.ts\n/**\n* Resolve a raw value or an Expression into an AST expression node.\n*\n* When `value` is an object with a callable `buildAst`, the AST it wraps is returned. Otherwise the value is embedded as a ParamRef tagged with the caller-supplied {@link CodecRef} (when known). The runtime resolves the ref via `contractCodecs.forCodecRef(codec)`; content-keyed memoisation collapses repeated lookups for the same logical column onto one shared codec.\n*\n* Operation implementations that compare a column-bound expression to a user value derive the column's {@link CodecRef} from the column-bound side (via {@link codecOf}) and forward it here so encode-side dispatch resolves to the per-instance codec for parameterized codec ids (`vector(1024)` vs. `vector(1536)`).\n*/\nfunction toExpr(value, codec) {\n\tif (isExpression(value)) return value.buildAst();\n\tif (codec === void 0) throw runtimeError(\"RUNTIME.PARAM_REF_CODEC_REQUIRED\", `Cannot construct a ParamRef for a ${value === null ? \"null\" : typeof value} value without an explicit codec. Provide a CodecRef at the call site or use a column-bound builder path.`);\n\treturn ParamRef.of(value, { codec });\n}\n/**\n* Construct a `ParamRef` for a value whose codec identity is known at call time. Use this when interpolating a value into a raw SQL expression and the codec cannot be inferred from context — e.g. `param(myDate, { codecId: 'pg/timestamptz-temporal@1' })`.\n*/\nfunction param(value, opts) {\n\treturn ParamRef.of(value, { codec: { codecId: opts.codecId } });\n}\n/**\n* Derive the {@link CodecRef} carried by an expression-like value.\n*\n* Resolution order:\n* 1. `wrapper.returnType.codec` — scope-level codec when the scope was built from contract storage.\n* 2. `{ codecId: wrapper.returnType.codecId }` — minimal ref derived from the expression's declared codec id (covers synthetic expressions like `count()` whose returnType has a known codec id but no explicit column binding).\n*\n* Returns `undefined` for raw scalar values (non-expression-like).\n*/\nfunction codecOf(value) {\n\tif (!isExpression(value)) return void 0;\n\treturn value.returnType?.codec ?? (value.returnType?.codecId ? { codecId: value.returnType.codecId } : void 0);\n}\nfunction isExpression(value) {\n\treturn typeof value === \"object\" && value !== null && \"buildAst\" in value && typeof value.buildAst === \"function\";\n}\n/**\n* Construct an OperationExpr AST node and wrap it as a typed Expression. Operation implementations use this to turn their user-facing arguments into the AST node the compilation pipeline eventually lowers to SQL.\n*/\nfunction buildOperation(spec) {\n\tconst [self, ...rest] = spec.args;\n\tconst op = new OperationExpr({\n\t\tmethod: spec.method,\n\t\tself,\n\t\targs: rest.length > 0 ? rest : void 0,\n\t\treturns: spec.returns,\n\t\tlowering: spec.lowering\n\t});\n\treturn {\n\t\treturnType: spec.returns,\n\t\tbuildAst: () => op\n\t};\n}\nfunction resolveInterpolation(adapter, value) {\n\tif (isExpression(value)) return value.buildAst();\n\tif (value instanceof ParamRef) return value;\n\tif (typeof value === \"number\" || typeof value === \"bigint\" || typeof value === \"string\" || typeof value === \"boolean\" || value instanceof Uint8Array) return ParamRef.of(value, { codec: { codecId: adapter.inferCodec(value) } });\n\tthrow runtimeError(\"RUNTIME.RAW_SQL_UNSUPPORTED_INTERPOLATION\", \"unsupported JS value type for raw-SQL interpolation: wrap this value in `param(...)` with an explicit codec\");\n}\nfunction isRawRowQuery(value) {\n\treturn typeof value === \"object\" && value !== null && \"buildAst\" in value && typeof value.buildAst === \"function\" && \"build\" in value && typeof value.build === \"function\";\n}\nfunction templateParts(adapter, strings, values) {\n\tconst parts = [strings[0] ?? \"\"];\n\tvalues.forEach((value, i) => {\n\t\tif (isRawRowQuery(value)) parts.push(...value.buildAst().parts);\n\t\telse parts.push(resolveInterpolation(adapter, value));\n\t\tparts.push(strings[i + 1] ?? \"\");\n\t});\n\treturn parts;\n}\n/**\n* Normalizes each authored entry to a {@link RawQueryColumn}. The record is\n* assembled with `Object.fromEntries`, which defines each key as an own\n* property: a spec built at runtime with a `__proto__` key reaches the AST,\n* which refuses it by name, rather than silently setting the record's\n* prototype and leaving the column to vanish.\n*/\nfunction resolveRowSpec(spec) {\n\treturn Object.fromEntries(Object.entries(spec).map(([name, entry]) => [name, typeof entry === \"string\" ? {\n\t\tcodecId: entry,\n\t\tnullable: false\n\t} : {\n\t\tcodecId: entry.codecId,\n\t\tnullable: entry.nullable ?? false\n\t}]));\n}\nfunction createRawSql(adapter, planContext) {\n\tif (planContext === void 0) return (strings, ...values) => new RawSqlBuilderImpl(templateParts(adapter, strings, values));\n\tconst context = planContext;\n\treturn (strings, ...values) => new RawSqlStatementBuilderImpl(templateParts(adapter, strings, values), context);\n}\nvar RawSqlBuilderImpl = class {\n\tparts;\n\tconstructor(parts) {\n\t\tthis.parts = parts;\n\t}\n\treturns(spec) {\n\t\tconst codecId = typeof spec === \"string\" ? spec : spec.codecId;\n\t\tconst nullable = typeof spec === \"string\" ? false : spec.nullable ?? false;\n\t\tconst paramSpec = {\n\t\t\tcodecId,\n\t\t\tnullable\n\t\t};\n\t\tconst node = new RawExpr({\n\t\t\tparts: this.parts,\n\t\t\treturns: paramSpec\n\t\t});\n\t\treturn {\n\t\t\treturnType: {\n\t\t\t\tcodecId,\n\t\t\t\tnullable\n\t\t\t},\n\t\t\tbuildAst: () => node\n\t\t};\n\t}\n};\nvar RawSqlStatementBuilderImpl = class extends RawSqlBuilderImpl {\n\tplanContext;\n\tconstructor(parts, planContext) {\n\t\tsuper(parts);\n\t\tthis.planContext = planContext;\n\t}\n\treturnsRow(spec) {\n\t\tconst node = RawQueryAst.rows(this.parts, resolveRowSpec(spec));\n\t\tconst result = node.result;\n\t\tinvariant(result.kind === \"rows\", \"RawQueryAst.rows built a non-rows result\");\n\t\treturn {\n\t\t\treturns: result.columns,\n\t\t\tbuildAst: () => node,\n\t\t\tbuild: () => this.planFor(node)\n\t\t};\n\t}\n\taffectedCount() {\n\t\tconst node = RawQueryAst.affectedCount(this.parts);\n\t\treturn { build: () => this.planFor(node) };\n\t}\n\tplanFor(node) {\n\t\treturn planFromAst(node, this.planContext.contract, this.planContext.laneId);\n\t}\n};\n//#endregion\nexport { buildOperation, codecOf, createRawSql, isExpression, param, toExpr };\n\n//# sourceMappingURL=expression.mjs.map"],"mappings":"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"}
package/dist/family.mjs CHANGED
@@ -8,6 +8,6 @@ import { _ as plannerSuccess, a as buildNativeTypeExpander, b as sqlDefaultLiter
8
8
  import { t as arraysEqual } from "./diff-B16bL_IR.mjs";
9
9
  import { t as SqlSchemaVerifierBase } from "./ir-I-xciGUH.mjs";
10
10
  import { t as SqlMigration } from "./migration-CK4oePIo.mjs";
11
- import { a as mapDefault, c as toEnumName, i as inferRelations, l as toFieldName, n as deriveBackRelationFieldName, o as pluralize, r as deriveRelationFieldName, s as toEnumMemberName, t as buildChildRelationField, u as toModelName } from "./psl-infer-BiExeEgG.mjs";
11
+ import { a as mapDefault, c as toEnumName, i as inferRelations, l as toFieldName, n as deriveBackRelationFieldName, o as pluralize, r as deriveRelationFieldName, s as toEnumMemberName, t as buildChildRelationField, u as toModelName } from "./psl-infer-C06FXwvC.mjs";
12
12
  import { i as timestampNowRuntimeGenerator, n as resolveDomainModel, t as UNBOUND_DOMAIN_NAMESPACE_ID } from "./runtime-DfvE_FqD.mjs";
13
13
  export { INIT_ADDITIVE_POLICY, SqlMigration as Migration, PSL_INVALID_DEFAULT_SQL, SqlContractSerializer, SqlContractSerializerBase, SqlSchemaVerifierBase, TABLE_NAME_CASE_CHANGED_CODE, TIMESTAMP_NOW_GENERATOR_ID, UNBOUND_DOMAIN_NAMESPACE_ID, arraysEqual, assembleAuthoringContributions, buildChildRelationField, buildNativeTypeExpander, checkSqlDefaultBody, classifyDiffSubjectGranularity, classifySqlDiffIssue, computeSqlDiffVerdict, computeStorageTypeVerdict, contractNamespaceToSchemaIR, contractToSchemaIR, controlPolicyForCall, createMigrationPlan, deriveBackRelationFieldName, deriveRelationFieldName, detectDestructiveChanges, detectTableNameCaseChanges, extractCodecControlHooks, inferRelations, mapDefault, parseContractMarkerRow, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventOperations, plannerFailure, plannerSuccess, pluralize, resolveDomainModel, resolveStorageTable, runnerFailure, runnerSuccess, sqlDefaultLiteralTagEntry, temporalAuthoringPresets, temporalCodecPreset, temporalCodecPresetWithPrecision, temporalStringAuthoringPresets, timestampNowControlDescriptor, timestampNowRuntimeGenerator, toEnumMemberName, toEnumName, toFieldName, toModelName, verifySqlSchemaByDiff };
@@ -1,2 +1,2 @@
1
- import { a as mapDefault, c as toEnumName, i as inferRelations, l as toFieldName, n as deriveBackRelationFieldName, o as pluralize, r as deriveRelationFieldName, s as toEnumMemberName, t as buildChildRelationField, u as toModelName } from "./psl-infer-BiExeEgG.mjs";
1
+ import { a as mapDefault, c as toEnumName, i as inferRelations, l as toFieldName, n as deriveBackRelationFieldName, o as pluralize, r as deriveRelationFieldName, s as toEnumMemberName, t as buildChildRelationField, u as toModelName } from "./psl-infer-C06FXwvC.mjs";
2
2
  export { buildChildRelationField, deriveBackRelationFieldName, deriveRelationFieldName, inferRelations, mapDefault, pluralize, toEnumMemberName, toEnumName, toFieldName, toModelName };
@@ -1,9 +1,9 @@
1
1
  import { t as resolveStorageTable } from "./resolve-storage-table-DZsfnzeW.mjs";
2
2
  import { i as isUniqueConstraintViolation } from "./dist-x6jvtkKM.mjs";
3
- import { C as LiteralExpr, D as OrExpr, F as SubqueryExpr, I as TableSource, L as UpdateAst, O as OrderByItem, P as SelectAst, R as WindowFuncExpr, S as ListExpression, T as NullCheckExpr, U as isWhereExpr, V as isAggregateFn, _ as InsertAst, b as JsonArrayAggExpr, c as DeleteAst, f as EqColJoinOn, j as ProjectionItem, k as ParamRef, l as DerivedTableSource, n as AndExpr, o as ColumnRef, p as ExistsExpr, r as BinaryExpr, s as DefaultValueExpr, t as AggregateExpr, v as InsertOnConflict, w as NotExpr, x as JsonObjectExpr, y as JoinAst } from "./types-ZNKYVjLr-DzjvSHKB.mjs";
3
+ import { C as LiteralExpr, D as OrExpr, F as SubqueryExpr, I as TableSource, L as UpdateAst, O as OrderByItem, P as SelectAst, R as WindowFuncExpr, S as ListExpression, T as NullCheckExpr, U as isWhereExpr, V as isAggregateFn, _ as InsertAst, b as JsonArrayAggExpr, c as DeleteAst, f as EqColJoinOn, j as ProjectionItem, k as ParamRef, l as DerivedTableSource, n as AndExpr, o as ColumnRef, p as ExistsExpr, r as BinaryExpr, s as DefaultValueExpr, t as AggregateExpr, v as InsertOnConflict, w as NotExpr, x as JsonObjectExpr, y as JoinAst } from "./types-BAhLyUFj-3TARSz8c.mjs";
4
4
  import { t as collectOrderedParamRefs } from "./util-DQQgv2j1-D6INZaRG.mjs";
5
- import { n as JsonDocumentProjection, r as NativeJsonValueProjection, t as CodecJsonValueProjection } from "./ast-CEGv-zzk.mjs";
6
- import { i as isExpression, o as toExpr } from "./expression-DqrE3myO.mjs";
5
+ import { n as JsonDocumentProjection, r as NativeJsonValueProjection, t as CodecJsonValueProjection } from "./ast--wLzFkbt.mjs";
6
+ import { i as isExpression, o as toExpr } from "./expression-CrGD_4do.mjs";
7
7
  import { n as codecRefForStorageColumn } from "./codec-descriptor-registry-ECZ4ohtG.mjs";
8
8
  import { structuredError } from "@prisma/orm-framework/utils/structured-error";
9
9
  import { InternalError } from "@prisma/orm-framework/utils/internal-error";
@@ -1,6 +1,6 @@
1
1
  import { n as isBackedByColumnKeys, t as backingIndexColumnKeys } from "./foreign-key-materialization-B3HQzQIA.mjs";
2
2
  import { t as defaultTableName } from "./default-table-name-BfFY8qYR-lHNcVmY5.mjs";
3
- import { w as numeralText, x as escapePslString } from "./ast-CEGv-zzk.mjs";
3
+ import { w as numeralText, x as escapePslString } from "./ast--wLzFkbt.mjs";
4
4
  import { isDataTypeLoweringEntry } from "@prisma/orm-framework/components/authoring";
5
5
  import { InternalError } from "@prisma/orm-framework/utils/internal-error";
6
6
  import { dataTypeId } from "@prisma/orm-framework/components/codec";
@@ -471,4 +471,4 @@ function addRelationField(map, tableName, field) {
471
471
  //#endregion
472
472
  export { mapDefault as a, toEnumName as c, inferRelations as i, toFieldName as l, deriveBackRelationFieldName as n, pluralize as o, deriveRelationFieldName as r, toEnumMemberName as s, buildChildRelationField as t, toModelName as u };
473
473
 
474
- //# sourceMappingURL=psl-infer-BiExeEgG.mjs.map
474
+ //# sourceMappingURL=psl-infer-C06FXwvC.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"psl-infer-BiExeEgG.mjs","names":[],"sources":["../../../../2-sql/9-family/dist/psl-infer.mjs"],"sourcesContent":["import { isDataTypeLoweringEntry } from \"@internal/framework-components/authoring\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { dataTypeId } from \"@internal/framework-components/codec\";\nimport { escapePslString, numeralText } from \"@internal/sql-relational-core/ast\";\nimport { defaultTableName } from \"@internal/sql-contract-psl/default-table-name\";\nimport pluralizeLib from \"pluralize\";\nimport { backingIndexColumnKeys, isBackedByColumnKeys } from \"@internal/sql-contract/foreign-key-materialization\";\n//#region src/core/psl-contract-infer/default-mapping.ts\nconst DEFAULT_FUNCTION_ATTRIBUTES = {\n\t\"autoincrement()\": \"@default(autoincrement())\",\n\t\"now()\": \"@default(now())\"\n};\n/**\n* The attribute a stored default prints as: a named function, a literal the column takes, or any\n* other expression as a raw SQL tagged literal. `undefined` when a literal has no written form.\n*/\nfunction mapDefault(columnDefault, options) {\n\tswitch (columnDefault.kind) {\n\t\tcase \"literal\": {\n\t\t\tconst text = writeDefaultLiteral(columnDefault.value, options);\n\t\t\treturn text === void 0 ? void 0 : { attribute: `@default(${text})` };\n\t\t}\n\t\tcase \"function\": return { attribute: options?.functionAttributes?.[columnDefault.expression] ?? DEFAULT_FUNCTION_ATTRIBUTES[columnDefault.expression] ?? `@default(${sqlLiteralText(columnDefault.expression)})` };\n\t}\n}\n/**\n* A raw SQL default as a `sql` tagged literal. The backtick fence resolves only `` \\` `` and `\\\\`,\n* so a body holding a backtick is written inside the double-quote fence with PSL string escaping.\n*/\nfunction sqlLiteralText(expression) {\n\tif (expression.includes(\"`\")) return `sql\"${escapePslString(expression)}\"`;\n\treturn `sql\\`${expression.replace(/\\\\/g, \"\\\\\\\\\")}\\``;\n}\nfunction writingSurface(entries) {\n\tconst entryOf = /* @__PURE__ */ new Map();\n\tlet classify;\n\tlet plainStringType;\n\tlet plainBooleanType;\n\tconst tagTypes = [];\n\tfor (const [key, entry] of Object.entries(entries)) {\n\t\tif (isDataTypeLoweringEntry(entry)) continue;\n\t\tconst written = entry.written;\n\t\tif (written.kind === \"tag\") {\n\t\t\tentryOf.set(key, entry);\n\t\t\ttagTypes.push(dataTypeId(key));\n\t\t\tcontinue;\n\t\t}\n\t\tif (written.syntax === \"number\") {\n\t\t\tclassify = written.classify;\n\t\t\tfor (const type of written.types) entryOf.set(type, entry);\n\t\t\tcontinue;\n\t\t}\n\t\tentryOf.set(key, entry);\n\t\tif (written.syntax === \"string\") plainStringType = dataTypeId(key);\n\t\telse plainBooleanType = dataTypeId(key);\n\t}\n\treturn {\n\t\tentryOf,\n\t\tclassify,\n\t\tplainStringType,\n\t\tplainBooleanType,\n\t\ttagTypes\n\t};\n}\n/**\n* Every type the stored form could be a value of, in the order a written value would be read: a\n* number or numeral text through the classifier first, then the plain syntax that matches the\n* shape, then each tag, whose canonical form is a whole document.\n*/\nfunction classifications(value, surface) {\n\tconst found = [];\n\tif (typeof value === \"number\") {\n\t\tconst classified = surface.classify?.(numeralText(value));\n\t\treturn classified === void 0 ? [] : [classified];\n\t}\n\tif (typeof value === \"boolean\") return surface.plainBooleanType === void 0 ? [] : [{\n\t\ttype: surface.plainBooleanType,\n\t\tvalue\n\t}];\n\tif (typeof value === \"string\") {\n\t\tconst classified = surface.classify?.(value);\n\t\tif (classified !== void 0) found.push(classified);\n\t\tif (surface.plainStringType !== void 0) found.push({\n\t\t\ttype: surface.plainStringType,\n\t\t\tvalue\n\t\t});\n\t}\n\tfor (const type of surface.tagTypes) found.push({\n\t\ttype,\n\t\tvalue\n\t});\n\treturn found;\n}\n/** The stored form the column takes this value as, or `undefined` when its type takes no such value. */\nfunction admitted(candidate, columnDataType, dataTypes) {\n\tif (candidate.type === columnDataType) return candidate.value;\n\tconst cast = dataTypes.get(columnDataType)?.casts[candidate.type];\n\tif (cast === void 0) return void 0;\n\ttry {\n\t\treturn cast(candidate.value);\n\t} catch {\n\t\treturn;\n\t}\n}\n/** The body of the literal: what the entry prints, before the syntax that fences it. */\nfunction printedBody(entry, value) {\n\ttry {\n\t\treturn entry.print(value);\n\t} catch {\n\t\treturn;\n\t}\n}\n/** What the entry reads the printed body back as, which for a number is the classifier's answer. */\nfunction readBack(entry, type, body) {\n\tconst written = entry.written;\n\ttry {\n\t\treturn written.kind === \"plain\" && written.syntax === \"number\" ? written.classify(body) : {\n\t\t\ttype,\n\t\t\tvalue: written.parse(body)\n\t\t};\n\t} catch {\n\t\treturn;\n\t}\n}\n/**\n* The literal as PSL source. A tag body sits inside a backtick fence, which resolves `` \\` `` and\n* `\\\\` and nothing else, so a `\\n` in the body survives as the two characters the entry wrote.\n*/\nfunction literalText(entry, body) {\n\tconst written = entry.written;\n\tif (written.kind === \"tag\") {\n\t\tconst fenced = body.replace(/\\\\/g, \"\\\\\\\\\").replace(/`/g, \"\\\\`\");\n\t\treturn `${written.tag}\\`${fenced}\\``;\n\t}\n\treturn written.syntax === \"string\" ? `\"${escapePslString(body)}\"` : body;\n}\n/**\n* The value written as the literal of one of its types, proven by reading the text straight back:\n* the same entry, the same cast, and the stored form again.\n*/\nfunction writeScalar(value, columnDataType, dataTypes, surface) {\n\tfor (const candidate of classifications(value, surface)) {\n\t\tconst entry = surface.entryOf.get(candidate.type);\n\t\tif (entry === void 0) continue;\n\t\tconst stored = admitted(candidate, columnDataType, dataTypes);\n\t\tif (stored === void 0 || !sameForm(stored, value)) continue;\n\t\tconst body = printedBody(entry, candidate.value);\n\t\tif (body === void 0) continue;\n\t\tconst reread = readBack(entry, candidate.type, body);\n\t\tif (reread === void 0) continue;\n\t\tconst restored = admitted(reread, columnDataType, dataTypes);\n\t\tif (restored === void 0 || !sameForm(restored, value)) continue;\n\t\treturn literalText(entry, body);\n\t}\n}\n/** One written element of a list, printed as a value of any type, with no column type to admit it. */\nfunction writeElement(value, of, surface) {\n\tfor (const candidate of classifications(value, surface)) {\n\t\tif (!of.includes(candidate.type)) continue;\n\t\tconst entry = surface.entryOf.get(candidate.type);\n\t\tif (entry === void 0) continue;\n\t\tconst body = printedBody(entry, candidate.value);\n\t\tif (body === void 0) continue;\n\t\tconst reread = readBack(entry, candidate.type, body);\n\t\tif (reread === void 0 || !of.includes(reread.type)) continue;\n\t\treturn {\n\t\t\ttext: literalText(entry, body),\n\t\t\tvalue: reread.value\n\t\t};\n\t}\n}\n/**\n* A written list on a scalar column, which the column type's list cast turns into its one value.\n* Each element is classified on its own and must be of a type the cast takes.\n*/\nfunction writeListCast(value, columnDataType, dataTypes, surface) {\n\tconst listCast = dataTypes.get(columnDataType)?.listCast;\n\tif (listCast === void 0) return void 0;\n\tconst parts = [];\n\tconst elements = [];\n\tfor (const element of value) {\n\t\tconst written = writeElement(element, listCast.of, surface);\n\t\tif (written === void 0) return void 0;\n\t\tparts.push(written.text);\n\t\telements.push(written.value);\n\t}\n\ttry {\n\t\tif (!sameForm(listCast.cast(elements), value)) return void 0;\n\t} catch {\n\t\treturn;\n\t}\n\treturn `[${parts.join(\", \")}]`;\n}\nfunction writeDefaultLiteral(value, options) {\n\tif (value instanceof Date) return void 0;\n\tconst { dataTypeEntries, dataTypes, columnDataType } = options ?? {};\n\tif (dataTypeEntries === void 0 || dataTypes === void 0 || columnDataType === void 0) return;\n\tconst surface = writingSurface(dataTypeEntries);\n\tif (options?.list === true) {\n\t\tif (!Array.isArray(value)) return void 0;\n\t\tconst parts = [];\n\t\tfor (const element of value) {\n\t\t\tconst written = writeScalar(element, columnDataType, dataTypes, surface);\n\t\t\tif (written === void 0) return void 0;\n\t\t\tparts.push(written);\n\t\t}\n\t\treturn `[${parts.join(\", \")}]`;\n\t}\n\tconst written = writeScalar(value, columnDataType, dataTypes, surface);\n\tif (written !== void 0) return written;\n\treturn Array.isArray(value) ? writeListCast(value, columnDataType, dataTypes, surface) : void 0;\n}\n/** Whether two canonical forms are the same JSON value, member by member and element by element. */\nfunction sameForm(left, right) {\n\tif (left === right) return true;\n\tif (Array.isArray(left) !== Array.isArray(right)) return false;\n\tif (typeof left !== \"object\" || typeof right !== \"object\" || left === null || right === null) return false;\n\tconst members = Object.entries(left);\n\tconst others = new Map(Object.entries(right));\n\treturn members.length === others.size && members.every(([key, member]) => {\n\t\tconst other = others.get(key);\n\t\treturn other !== void 0 && sameForm(member, other);\n\t});\n}\n//#endregion\n//#region src/core/psl-contract-infer/name-transforms.ts\nconst PSL_RESERVED_WORDS = /* @__PURE__ */ new Set([\n\t\"model\",\n\t\"enum\",\n\t\"types\",\n\t\"type\",\n\t\"generator\",\n\t\"datasource\"\n]);\nconst IDENTIFIER_PART_PATTERN = /[A-Za-z0-9]+/g;\nfunction hasSeparators(input) {\n\treturn /[^A-Za-z0-9]/.test(input);\n}\nfunction extractIdentifierParts(input) {\n\treturn input.match(IDENTIFIER_PART_PATTERN) ?? [];\n}\nfunction createSyntheticIdentifier(input) {\n\tlet hash = 2166136261;\n\tfor (const char of input) {\n\t\thash ^= char.codePointAt(0) ?? 0;\n\t\thash = Math.imul(hash, 16777619);\n\t}\n\treturn `x${(hash >>> 0).toString(16)}`;\n}\nfunction sanitizeIdentifierCharacters(input) {\n\tconst sanitized = input.replace(/[^\\w]/g, \"\");\n\treturn sanitized.length > 0 ? sanitized : createSyntheticIdentifier(input);\n}\nfunction capitalize(word) {\n\treturn word.charAt(0).toUpperCase() + word.slice(1);\n}\nfunction snakeToPascalCase(input) {\n\tconst parts = extractIdentifierParts(input);\n\tif (parts.length === 0) return capitalize(sanitizeIdentifierCharacters(input));\n\treturn parts.map(capitalize).join(\"\");\n}\nfunction snakeToCamelCase(input) {\n\tconst parts = extractIdentifierParts(input);\n\tif (parts.length === 0) return sanitizeIdentifierCharacters(input);\n\tconst [firstPart = input, ...rest] = parts;\n\treturn firstPart.charAt(0).toLowerCase() + firstPart.slice(1) + rest.map(capitalize).join(\"\");\n}\nfunction needsEscaping(name) {\n\treturn PSL_RESERVED_WORDS.has(name.toLowerCase()) || /^\\d/.test(name);\n}\nfunction escapeName(name) {\n\treturn `_${name}`;\n}\nfunction escapeIfNeeded(name) {\n\treturn needsEscaping(name) ? escapeName(name) : name;\n}\nfunction toModelName(tableName) {\n\tlet name;\n\tif (hasSeparators(tableName)) name = snakeToPascalCase(tableName);\n\telse name = tableName.charAt(0).toUpperCase() + tableName.slice(1);\n\tif (needsEscaping(name)) return {\n\t\tname: escapeName(name),\n\t\tmap: tableName\n\t};\n\tif (defaultTableName(name) !== tableName) return {\n\t\tname,\n\t\tmap: tableName\n\t};\n\treturn { name };\n}\nfunction toFieldName(columnName) {\n\tlet name;\n\tif (hasSeparators(columnName)) name = snakeToCamelCase(columnName);\n\telse name = columnName.charAt(0).toLowerCase() + columnName.slice(1);\n\tif (needsEscaping(name)) return {\n\t\tname: escapeName(name),\n\t\tmap: columnName\n\t};\n\tif (name !== columnName) return {\n\t\tname,\n\t\tmap: columnName\n\t};\n\treturn { name };\n}\nfunction toEnumName(pgTypeName) {\n\tlet name;\n\tif (hasSeparators(pgTypeName)) name = snakeToPascalCase(pgTypeName);\n\telse name = pgTypeName.charAt(0).toUpperCase() + pgTypeName.slice(1);\n\tif (needsEscaping(name)) return {\n\t\tname: escapeName(name),\n\t\tmap: pgTypeName\n\t};\n\tif (name !== pgTypeName) return {\n\t\tname,\n\t\tmap: pgTypeName\n\t};\n\treturn { name };\n}\nconst VALID_IDENTIFIER_PATTERN = /^[A-Za-z_]\\w*$/;\n/**\n* PSL member name for a native-enum value. The value itself always prints\n* explicitly (`member = \"value\"`), so the returned name never needs a map:\n* a value that already is a valid, non-reserved identifier is kept verbatim\n* (case included); anything else is camelCased/escaped like a field name.\n*/\nfunction toEnumMemberName(value) {\n\tif (VALID_IDENTIFIER_PATTERN.test(value) && !needsEscaping(value)) return value;\n\treturn escapeIfNeeded(snakeToCamelCase(value));\n}\nfunction pluralize(word) {\n\treturn pluralizeLib.plural(word);\n}\nfunction deriveRelationFieldName(fkColumns, referencedTableName) {\n\tif (fkColumns.length === 1) {\n\t\tconst [col = referencedTableName] = fkColumns;\n\t\tconst stripped = col.replace(/_id$/i, \"\").replace(/Id$/, \"\");\n\t\tif (stripped.length > 0 && stripped !== col) return escapeIfNeeded(snakeToCamelCase(stripped));\n\t\treturn escapeIfNeeded(snakeToCamelCase(referencedTableName));\n\t}\n\treturn escapeIfNeeded(snakeToCamelCase(referencedTableName));\n}\nfunction deriveBackRelationFieldName(childModelName, isOneToOne) {\n\tconst base = childModelName.charAt(0).toLowerCase() + childModelName.slice(1);\n\treturn isOneToOne ? base : pluralize(base);\n}\n//#endregion\n//#region src/core/psl-contract-infer/relation-inference.ts\nconst DEFAULT_ON_DELETE = \"noAction\";\nconst DEFAULT_ON_UPDATE = \"noAction\";\nconst REFERENTIAL_ACTION_PSL = {\n\tnoAction: \"NoAction\",\n\trestrict: \"Restrict\",\n\tcascade: \"Cascade\",\n\tsetNull: \"SetNull\",\n\tsetDefault: \"SetDefault\"\n};\nfunction inferRelations(tables, modelNameMap) {\n\tconst relationsByTable = /* @__PURE__ */ new Map();\n\tconst fkCountByPair = /* @__PURE__ */ new Map();\n\tfor (const table of Object.values(tables)) for (const fk of table.foreignKeys) {\n\t\tconst pairKey = `${table.name}→${fk.referencedTable}`;\n\t\tfkCountByPair.set(pairKey, (fkCountByPair.get(pairKey) ?? 0) + 1);\n\t}\n\tconst usedFieldNames = /* @__PURE__ */ new Map();\n\tfor (const table of Object.values(tables)) {\n\t\tconst names = /* @__PURE__ */ new Set();\n\t\tfor (const col of Object.values(table.columns)) names.add(col.name);\n\t\tusedFieldNames.set(table.name, names);\n\t}\n\tfor (const table of Object.values(tables)) for (const fk of table.foreignKeys) {\n\t\tconst childTableName = table.name;\n\t\tconst parentTableName = fk.referencedTable;\n\t\tconst childUsed = usedFieldNames.get(childTableName);\n\t\tif (childUsed === void 0) throw new InternalError(`Missing inferred field-name set for table \"${childTableName}\"`);\n\t\tconst childModelName = modelNameMap.get(childTableName) ?? childTableName;\n\t\tconst parentModelName = modelNameMap.get(parentTableName) ?? parentTableName;\n\t\tconst pairKey = `${childTableName}→${parentTableName}`;\n\t\tconst isSelfRelation = childTableName === parentTableName;\n\t\tconst needsRelationName = (fkCountByPair.get(pairKey) ?? 0) > 1 || isSelfRelation;\n\t\tconst isOneToOne = detectOneToOne(fk, table);\n\t\tconst childRelFieldName = resolveUniqueFieldName(deriveRelationFieldName(fk.columns, parentTableName), childUsed, parentModelName);\n\t\tconst relationName = needsRelationName ? deriveRelationName(fk, childRelFieldName, parentModelName, isSelfRelation) : void 0;\n\t\taddRelationField(relationsByTable, childTableName, buildChildRelationField(childRelFieldName, parentModelName, fk, fk.columns.some((columnName) => table.columns[columnName]?.nullable ?? false), relationName, table));\n\t\tchildUsed.add(childRelFieldName);\n\t\tconst parentUsed = usedFieldNames.get(parentTableName) ?? /* @__PURE__ */ new Set();\n\t\tusedFieldNames.set(parentTableName, parentUsed);\n\t\tconst backRelFieldName = resolveUniqueFieldName(deriveBackRelationFieldName(childModelName, isOneToOne), parentUsed, childModelName);\n\t\taddRelationField(relationsByTable, parentTableName, {\n\t\t\tfieldName: backRelFieldName,\n\t\t\ttypeName: childModelName,\n\t\t\toptional: isOneToOne,\n\t\t\tlist: !isOneToOne,\n\t\t\trelationName\n\t\t});\n\t\tparentUsed.add(backRelFieldName);\n\t}\n\treturn { relationsByTable };\n}\nfunction detectOneToOne(fk, table) {\n\tconst fkCols = [...fk.columns].sort();\n\tif (table.primaryKey) {\n\t\tconst pkCols = [...table.primaryKey.columns].sort();\n\t\tif (pkCols.length === fkCols.length && pkCols.every((c, i) => c === fkCols[i])) return true;\n\t}\n\tfor (const unique of table.uniques) {\n\t\tconst uniqueCols = [...unique.columns].sort();\n\t\tif (uniqueCols.length === fkCols.length && uniqueCols.every((c, i) => c === fkCols[i])) return true;\n\t}\n\tfor (const index of table.indexes) {\n\t\tif (!index.unique || index.partial || index.columns === void 0) continue;\n\t\tconst indexCols = [...index.columns].sort();\n\t\tif (indexCols.length === fkCols.length && indexCols.every((c, i) => c === fkCols[i])) return true;\n\t}\n\treturn false;\n}\nfunction deriveRelationName(fk, childRelationFieldName, parentModelName, isSelfRelation) {\n\tif (fk.name) return fk.name;\n\tif (isSelfRelation) return `${childRelationFieldName.charAt(0).toUpperCase() + childRelationFieldName.slice(1)}${pluralize(parentModelName)}`;\n\treturn fk.columns.join(\"_\");\n}\n/**\n* Builds the child-side {@link RelationField} for a single foreign key:\n* `typeName` is the parent model name, `fields`/`references` are the FK's raw\n* columns, and `onDelete`/`onUpdate` are normalized to their PSL spelling.\n* Exported so a caller resolving a foreign key against a model outside\n* `tables` (e.g. a cross-space reference into another contract) can reuse the\n* same normalization instead of duplicating it.\n*\n* `hostTable` is the table the FK is declared on (i.e. `table`, not the\n* referenced parent) — its own indexes/uniques/primary key are what a\n* backing index for this FK would be. When none of them exactly match the\n* FK's source columns (in order), `index: false` is stamped so the emitted\n* `@relation` opts out of the framework's default derived backing-index\n* expectation, matching what `db verify` will find live. Passing the table\n* is optional so existing single-FK callers (e.g. cross-space resolution\n* before a host table reference is threaded through) can omit it and keep\n* the framework default.\n*/\nfunction buildChildRelationField(fieldName, parentModelName, fk, optional, relationName, hostTable) {\n\tconst onDelete = fk.onDelete && fk.onDelete !== DEFAULT_ON_DELETE ? fk.onDelete : void 0;\n\tconst onUpdate = fk.onUpdate && fk.onUpdate !== DEFAULT_ON_UPDATE ? fk.onUpdate : void 0;\n\tconst index = hostTable && !isBackedByColumnKeys(fk.columns, backingIndexColumnKeys({\n\t\tindexes: hostTable.indexes.filter((i) => i.where === void 0),\n\t\tuniques: hostTable.uniques,\n\t\tprimaryKey: hostTable.primaryKey\n\t})) ? false : void 0;\n\treturn {\n\t\tfieldName,\n\t\ttypeName: parentModelName,\n\t\treferencedTableName: fk.referencedTable,\n\t\toptional,\n\t\tlist: false,\n\t\trelationName,\n\t\tfkName: fk.name,\n\t\tfields: fk.columns,\n\t\treferences: fk.referencedColumns,\n\t\tonDelete: onDelete ? REFERENTIAL_ACTION_PSL[onDelete] : void 0,\n\t\tonUpdate: onUpdate ? REFERENTIAL_ACTION_PSL[onUpdate] : void 0,\n\t\tindex\n\t};\n}\nfunction resolveUniqueFieldName(desired, usedNames, fallbackSuffix) {\n\tif (!usedNames.has(desired)) return desired;\n\tconst withSuffix = `${desired}${fallbackSuffix}`;\n\tif (!usedNames.has(withSuffix)) return withSuffix;\n\tlet counter = 2;\n\twhile (usedNames.has(`${desired}${counter}`)) counter++;\n\treturn `${desired}${counter}`;\n}\nfunction addRelationField(map, tableName, field) {\n\tconst existing = map.get(tableName);\n\tif (existing) existing.push(field);\n\telse map.set(tableName, [field]);\n}\n//#endregion\nexport { buildChildRelationField, deriveBackRelationFieldName, deriveRelationFieldName, inferRelations, mapDefault, pluralize, toEnumMemberName, toEnumName, toFieldName, toModelName };\n\n//# sourceMappingURL=psl-infer.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"psl-infer-C06FXwvC.mjs","names":[],"sources":["../../../../2-sql/9-family/dist/psl-infer.mjs"],"sourcesContent":["import { isDataTypeLoweringEntry } from \"@internal/framework-components/authoring\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { dataTypeId } from \"@internal/framework-components/codec\";\nimport { escapePslString, numeralText } from \"@internal/sql-relational-core/ast\";\nimport { defaultTableName } from \"@internal/sql-contract-psl/default-table-name\";\nimport pluralizeLib from \"pluralize\";\nimport { backingIndexColumnKeys, isBackedByColumnKeys } from \"@internal/sql-contract/foreign-key-materialization\";\n//#region src/core/psl-contract-infer/default-mapping.ts\nconst DEFAULT_FUNCTION_ATTRIBUTES = {\n\t\"autoincrement()\": \"@default(autoincrement())\",\n\t\"now()\": \"@default(now())\"\n};\n/**\n* The attribute a stored default prints as: a named function, a literal the column takes, or any\n* other expression as a raw SQL tagged literal. `undefined` when a literal has no written form.\n*/\nfunction mapDefault(columnDefault, options) {\n\tswitch (columnDefault.kind) {\n\t\tcase \"literal\": {\n\t\t\tconst text = writeDefaultLiteral(columnDefault.value, options);\n\t\t\treturn text === void 0 ? void 0 : { attribute: `@default(${text})` };\n\t\t}\n\t\tcase \"function\": return { attribute: options?.functionAttributes?.[columnDefault.expression] ?? DEFAULT_FUNCTION_ATTRIBUTES[columnDefault.expression] ?? `@default(${sqlLiteralText(columnDefault.expression)})` };\n\t}\n}\n/**\n* A raw SQL default as a `sql` tagged literal. The backtick fence resolves only `` \\` `` and `\\\\`,\n* so a body holding a backtick is written inside the double-quote fence with PSL string escaping.\n*/\nfunction sqlLiteralText(expression) {\n\tif (expression.includes(\"`\")) return `sql\"${escapePslString(expression)}\"`;\n\treturn `sql\\`${expression.replace(/\\\\/g, \"\\\\\\\\\")}\\``;\n}\nfunction writingSurface(entries) {\n\tconst entryOf = /* @__PURE__ */ new Map();\n\tlet classify;\n\tlet plainStringType;\n\tlet plainBooleanType;\n\tconst tagTypes = [];\n\tfor (const [key, entry] of Object.entries(entries)) {\n\t\tif (isDataTypeLoweringEntry(entry)) continue;\n\t\tconst written = entry.written;\n\t\tif (written.kind === \"tag\") {\n\t\t\tentryOf.set(key, entry);\n\t\t\ttagTypes.push(dataTypeId(key));\n\t\t\tcontinue;\n\t\t}\n\t\tif (written.syntax === \"number\") {\n\t\t\tclassify = written.classify;\n\t\t\tfor (const type of written.types) entryOf.set(type, entry);\n\t\t\tcontinue;\n\t\t}\n\t\tentryOf.set(key, entry);\n\t\tif (written.syntax === \"string\") plainStringType = dataTypeId(key);\n\t\telse plainBooleanType = dataTypeId(key);\n\t}\n\treturn {\n\t\tentryOf,\n\t\tclassify,\n\t\tplainStringType,\n\t\tplainBooleanType,\n\t\ttagTypes\n\t};\n}\n/**\n* Every type the stored form could be a value of, in the order a written value would be read: a\n* number or numeral text through the classifier first, then the plain syntax that matches the\n* shape, then each tag, whose canonical form is a whole document.\n*/\nfunction classifications(value, surface) {\n\tconst found = [];\n\tif (typeof value === \"number\") {\n\t\tconst classified = surface.classify?.(numeralText(value));\n\t\treturn classified === void 0 ? [] : [classified];\n\t}\n\tif (typeof value === \"boolean\") return surface.plainBooleanType === void 0 ? [] : [{\n\t\ttype: surface.plainBooleanType,\n\t\tvalue\n\t}];\n\tif (typeof value === \"string\") {\n\t\tconst classified = surface.classify?.(value);\n\t\tif (classified !== void 0) found.push(classified);\n\t\tif (surface.plainStringType !== void 0) found.push({\n\t\t\ttype: surface.plainStringType,\n\t\t\tvalue\n\t\t});\n\t}\n\tfor (const type of surface.tagTypes) found.push({\n\t\ttype,\n\t\tvalue\n\t});\n\treturn found;\n}\n/** The stored form the column takes this value as, or `undefined` when its type takes no such value. */\nfunction admitted(candidate, columnDataType, dataTypes) {\n\tif (candidate.type === columnDataType) return candidate.value;\n\tconst cast = dataTypes.get(columnDataType)?.casts[candidate.type];\n\tif (cast === void 0) return void 0;\n\ttry {\n\t\treturn cast(candidate.value);\n\t} catch {\n\t\treturn;\n\t}\n}\n/** The body of the literal: what the entry prints, before the syntax that fences it. */\nfunction printedBody(entry, value) {\n\ttry {\n\t\treturn entry.print(value);\n\t} catch {\n\t\treturn;\n\t}\n}\n/** What the entry reads the printed body back as, which for a number is the classifier's answer. */\nfunction readBack(entry, type, body) {\n\tconst written = entry.written;\n\ttry {\n\t\treturn written.kind === \"plain\" && written.syntax === \"number\" ? written.classify(body) : {\n\t\t\ttype,\n\t\t\tvalue: written.parse(body)\n\t\t};\n\t} catch {\n\t\treturn;\n\t}\n}\n/**\n* The literal as PSL source. A tag body sits inside a backtick fence, which resolves `` \\` `` and\n* `\\\\` and nothing else, so a `\\n` in the body survives as the two characters the entry wrote.\n*/\nfunction literalText(entry, body) {\n\tconst written = entry.written;\n\tif (written.kind === \"tag\") {\n\t\tconst fenced = body.replace(/\\\\/g, \"\\\\\\\\\").replace(/`/g, \"\\\\`\");\n\t\treturn `${written.tag}\\`${fenced}\\``;\n\t}\n\treturn written.syntax === \"string\" ? `\"${escapePslString(body)}\"` : body;\n}\n/**\n* The value written as the literal of one of its types, proven by reading the text straight back:\n* the same entry, the same cast, and the stored form again.\n*/\nfunction writeScalar(value, columnDataType, dataTypes, surface) {\n\tfor (const candidate of classifications(value, surface)) {\n\t\tconst entry = surface.entryOf.get(candidate.type);\n\t\tif (entry === void 0) continue;\n\t\tconst stored = admitted(candidate, columnDataType, dataTypes);\n\t\tif (stored === void 0 || !sameForm(stored, value)) continue;\n\t\tconst body = printedBody(entry, candidate.value);\n\t\tif (body === void 0) continue;\n\t\tconst reread = readBack(entry, candidate.type, body);\n\t\tif (reread === void 0) continue;\n\t\tconst restored = admitted(reread, columnDataType, dataTypes);\n\t\tif (restored === void 0 || !sameForm(restored, value)) continue;\n\t\treturn literalText(entry, body);\n\t}\n}\n/** One written element of a list, printed as a value of any type, with no column type to admit it. */\nfunction writeElement(value, of, surface) {\n\tfor (const candidate of classifications(value, surface)) {\n\t\tif (!of.includes(candidate.type)) continue;\n\t\tconst entry = surface.entryOf.get(candidate.type);\n\t\tif (entry === void 0) continue;\n\t\tconst body = printedBody(entry, candidate.value);\n\t\tif (body === void 0) continue;\n\t\tconst reread = readBack(entry, candidate.type, body);\n\t\tif (reread === void 0 || !of.includes(reread.type)) continue;\n\t\treturn {\n\t\t\ttext: literalText(entry, body),\n\t\t\tvalue: reread.value\n\t\t};\n\t}\n}\n/**\n* A written list on a scalar column, which the column type's list cast turns into its one value.\n* Each element is classified on its own and must be of a type the cast takes.\n*/\nfunction writeListCast(value, columnDataType, dataTypes, surface) {\n\tconst listCast = dataTypes.get(columnDataType)?.listCast;\n\tif (listCast === void 0) return void 0;\n\tconst parts = [];\n\tconst elements = [];\n\tfor (const element of value) {\n\t\tconst written = writeElement(element, listCast.of, surface);\n\t\tif (written === void 0) return void 0;\n\t\tparts.push(written.text);\n\t\telements.push(written.value);\n\t}\n\ttry {\n\t\tif (!sameForm(listCast.cast(elements), value)) return void 0;\n\t} catch {\n\t\treturn;\n\t}\n\treturn `[${parts.join(\", \")}]`;\n}\nfunction writeDefaultLiteral(value, options) {\n\tif (value instanceof Date) return void 0;\n\tconst { dataTypeEntries, dataTypes, columnDataType } = options ?? {};\n\tif (dataTypeEntries === void 0 || dataTypes === void 0 || columnDataType === void 0) return;\n\tconst surface = writingSurface(dataTypeEntries);\n\tif (options?.list === true) {\n\t\tif (!Array.isArray(value)) return void 0;\n\t\tconst parts = [];\n\t\tfor (const element of value) {\n\t\t\tconst written = writeScalar(element, columnDataType, dataTypes, surface);\n\t\t\tif (written === void 0) return void 0;\n\t\t\tparts.push(written);\n\t\t}\n\t\treturn `[${parts.join(\", \")}]`;\n\t}\n\tconst written = writeScalar(value, columnDataType, dataTypes, surface);\n\tif (written !== void 0) return written;\n\treturn Array.isArray(value) ? writeListCast(value, columnDataType, dataTypes, surface) : void 0;\n}\n/** Whether two canonical forms are the same JSON value, member by member and element by element. */\nfunction sameForm(left, right) {\n\tif (left === right) return true;\n\tif (Array.isArray(left) !== Array.isArray(right)) return false;\n\tif (typeof left !== \"object\" || typeof right !== \"object\" || left === null || right === null) return false;\n\tconst members = Object.entries(left);\n\tconst others = new Map(Object.entries(right));\n\treturn members.length === others.size && members.every(([key, member]) => {\n\t\tconst other = others.get(key);\n\t\treturn other !== void 0 && sameForm(member, other);\n\t});\n}\n//#endregion\n//#region src/core/psl-contract-infer/name-transforms.ts\nconst PSL_RESERVED_WORDS = /* @__PURE__ */ new Set([\n\t\"model\",\n\t\"enum\",\n\t\"types\",\n\t\"type\",\n\t\"generator\",\n\t\"datasource\"\n]);\nconst IDENTIFIER_PART_PATTERN = /[A-Za-z0-9]+/g;\nfunction hasSeparators(input) {\n\treturn /[^A-Za-z0-9]/.test(input);\n}\nfunction extractIdentifierParts(input) {\n\treturn input.match(IDENTIFIER_PART_PATTERN) ?? [];\n}\nfunction createSyntheticIdentifier(input) {\n\tlet hash = 2166136261;\n\tfor (const char of input) {\n\t\thash ^= char.codePointAt(0) ?? 0;\n\t\thash = Math.imul(hash, 16777619);\n\t}\n\treturn `x${(hash >>> 0).toString(16)}`;\n}\nfunction sanitizeIdentifierCharacters(input) {\n\tconst sanitized = input.replace(/[^\\w]/g, \"\");\n\treturn sanitized.length > 0 ? sanitized : createSyntheticIdentifier(input);\n}\nfunction capitalize(word) {\n\treturn word.charAt(0).toUpperCase() + word.slice(1);\n}\nfunction snakeToPascalCase(input) {\n\tconst parts = extractIdentifierParts(input);\n\tif (parts.length === 0) return capitalize(sanitizeIdentifierCharacters(input));\n\treturn parts.map(capitalize).join(\"\");\n}\nfunction snakeToCamelCase(input) {\n\tconst parts = extractIdentifierParts(input);\n\tif (parts.length === 0) return sanitizeIdentifierCharacters(input);\n\tconst [firstPart = input, ...rest] = parts;\n\treturn firstPart.charAt(0).toLowerCase() + firstPart.slice(1) + rest.map(capitalize).join(\"\");\n}\nfunction needsEscaping(name) {\n\treturn PSL_RESERVED_WORDS.has(name.toLowerCase()) || /^\\d/.test(name);\n}\nfunction escapeName(name) {\n\treturn `_${name}`;\n}\nfunction escapeIfNeeded(name) {\n\treturn needsEscaping(name) ? escapeName(name) : name;\n}\nfunction toModelName(tableName) {\n\tlet name;\n\tif (hasSeparators(tableName)) name = snakeToPascalCase(tableName);\n\telse name = tableName.charAt(0).toUpperCase() + tableName.slice(1);\n\tif (needsEscaping(name)) return {\n\t\tname: escapeName(name),\n\t\tmap: tableName\n\t};\n\tif (defaultTableName(name) !== tableName) return {\n\t\tname,\n\t\tmap: tableName\n\t};\n\treturn { name };\n}\nfunction toFieldName(columnName) {\n\tlet name;\n\tif (hasSeparators(columnName)) name = snakeToCamelCase(columnName);\n\telse name = columnName.charAt(0).toLowerCase() + columnName.slice(1);\n\tif (needsEscaping(name)) return {\n\t\tname: escapeName(name),\n\t\tmap: columnName\n\t};\n\tif (name !== columnName) return {\n\t\tname,\n\t\tmap: columnName\n\t};\n\treturn { name };\n}\nfunction toEnumName(pgTypeName) {\n\tlet name;\n\tif (hasSeparators(pgTypeName)) name = snakeToPascalCase(pgTypeName);\n\telse name = pgTypeName.charAt(0).toUpperCase() + pgTypeName.slice(1);\n\tif (needsEscaping(name)) return {\n\t\tname: escapeName(name),\n\t\tmap: pgTypeName\n\t};\n\tif (name !== pgTypeName) return {\n\t\tname,\n\t\tmap: pgTypeName\n\t};\n\treturn { name };\n}\nconst VALID_IDENTIFIER_PATTERN = /^[A-Za-z_]\\w*$/;\n/**\n* PSL member name for a native-enum value. The value itself always prints\n* explicitly (`member = \"value\"`), so the returned name never needs a map:\n* a value that already is a valid, non-reserved identifier is kept verbatim\n* (case included); anything else is camelCased/escaped like a field name.\n*/\nfunction toEnumMemberName(value) {\n\tif (VALID_IDENTIFIER_PATTERN.test(value) && !needsEscaping(value)) return value;\n\treturn escapeIfNeeded(snakeToCamelCase(value));\n}\nfunction pluralize(word) {\n\treturn pluralizeLib.plural(word);\n}\nfunction deriveRelationFieldName(fkColumns, referencedTableName) {\n\tif (fkColumns.length === 1) {\n\t\tconst [col = referencedTableName] = fkColumns;\n\t\tconst stripped = col.replace(/_id$/i, \"\").replace(/Id$/, \"\");\n\t\tif (stripped.length > 0 && stripped !== col) return escapeIfNeeded(snakeToCamelCase(stripped));\n\t\treturn escapeIfNeeded(snakeToCamelCase(referencedTableName));\n\t}\n\treturn escapeIfNeeded(snakeToCamelCase(referencedTableName));\n}\nfunction deriveBackRelationFieldName(childModelName, isOneToOne) {\n\tconst base = childModelName.charAt(0).toLowerCase() + childModelName.slice(1);\n\treturn isOneToOne ? base : pluralize(base);\n}\n//#endregion\n//#region src/core/psl-contract-infer/relation-inference.ts\nconst DEFAULT_ON_DELETE = \"noAction\";\nconst DEFAULT_ON_UPDATE = \"noAction\";\nconst REFERENTIAL_ACTION_PSL = {\n\tnoAction: \"NoAction\",\n\trestrict: \"Restrict\",\n\tcascade: \"Cascade\",\n\tsetNull: \"SetNull\",\n\tsetDefault: \"SetDefault\"\n};\nfunction inferRelations(tables, modelNameMap) {\n\tconst relationsByTable = /* @__PURE__ */ new Map();\n\tconst fkCountByPair = /* @__PURE__ */ new Map();\n\tfor (const table of Object.values(tables)) for (const fk of table.foreignKeys) {\n\t\tconst pairKey = `${table.name}→${fk.referencedTable}`;\n\t\tfkCountByPair.set(pairKey, (fkCountByPair.get(pairKey) ?? 0) + 1);\n\t}\n\tconst usedFieldNames = /* @__PURE__ */ new Map();\n\tfor (const table of Object.values(tables)) {\n\t\tconst names = /* @__PURE__ */ new Set();\n\t\tfor (const col of Object.values(table.columns)) names.add(col.name);\n\t\tusedFieldNames.set(table.name, names);\n\t}\n\tfor (const table of Object.values(tables)) for (const fk of table.foreignKeys) {\n\t\tconst childTableName = table.name;\n\t\tconst parentTableName = fk.referencedTable;\n\t\tconst childUsed = usedFieldNames.get(childTableName);\n\t\tif (childUsed === void 0) throw new InternalError(`Missing inferred field-name set for table \"${childTableName}\"`);\n\t\tconst childModelName = modelNameMap.get(childTableName) ?? childTableName;\n\t\tconst parentModelName = modelNameMap.get(parentTableName) ?? parentTableName;\n\t\tconst pairKey = `${childTableName}→${parentTableName}`;\n\t\tconst isSelfRelation = childTableName === parentTableName;\n\t\tconst needsRelationName = (fkCountByPair.get(pairKey) ?? 0) > 1 || isSelfRelation;\n\t\tconst isOneToOne = detectOneToOne(fk, table);\n\t\tconst childRelFieldName = resolveUniqueFieldName(deriveRelationFieldName(fk.columns, parentTableName), childUsed, parentModelName);\n\t\tconst relationName = needsRelationName ? deriveRelationName(fk, childRelFieldName, parentModelName, isSelfRelation) : void 0;\n\t\taddRelationField(relationsByTable, childTableName, buildChildRelationField(childRelFieldName, parentModelName, fk, fk.columns.some((columnName) => table.columns[columnName]?.nullable ?? false), relationName, table));\n\t\tchildUsed.add(childRelFieldName);\n\t\tconst parentUsed = usedFieldNames.get(parentTableName) ?? /* @__PURE__ */ new Set();\n\t\tusedFieldNames.set(parentTableName, parentUsed);\n\t\tconst backRelFieldName = resolveUniqueFieldName(deriveBackRelationFieldName(childModelName, isOneToOne), parentUsed, childModelName);\n\t\taddRelationField(relationsByTable, parentTableName, {\n\t\t\tfieldName: backRelFieldName,\n\t\t\ttypeName: childModelName,\n\t\t\toptional: isOneToOne,\n\t\t\tlist: !isOneToOne,\n\t\t\trelationName\n\t\t});\n\t\tparentUsed.add(backRelFieldName);\n\t}\n\treturn { relationsByTable };\n}\nfunction detectOneToOne(fk, table) {\n\tconst fkCols = [...fk.columns].sort();\n\tif (table.primaryKey) {\n\t\tconst pkCols = [...table.primaryKey.columns].sort();\n\t\tif (pkCols.length === fkCols.length && pkCols.every((c, i) => c === fkCols[i])) return true;\n\t}\n\tfor (const unique of table.uniques) {\n\t\tconst uniqueCols = [...unique.columns].sort();\n\t\tif (uniqueCols.length === fkCols.length && uniqueCols.every((c, i) => c === fkCols[i])) return true;\n\t}\n\tfor (const index of table.indexes) {\n\t\tif (!index.unique || index.partial || index.columns === void 0) continue;\n\t\tconst indexCols = [...index.columns].sort();\n\t\tif (indexCols.length === fkCols.length && indexCols.every((c, i) => c === fkCols[i])) return true;\n\t}\n\treturn false;\n}\nfunction deriveRelationName(fk, childRelationFieldName, parentModelName, isSelfRelation) {\n\tif (fk.name) return fk.name;\n\tif (isSelfRelation) return `${childRelationFieldName.charAt(0).toUpperCase() + childRelationFieldName.slice(1)}${pluralize(parentModelName)}`;\n\treturn fk.columns.join(\"_\");\n}\n/**\n* Builds the child-side {@link RelationField} for a single foreign key:\n* `typeName` is the parent model name, `fields`/`references` are the FK's raw\n* columns, and `onDelete`/`onUpdate` are normalized to their PSL spelling.\n* Exported so a caller resolving a foreign key against a model outside\n* `tables` (e.g. a cross-space reference into another contract) can reuse the\n* same normalization instead of duplicating it.\n*\n* `hostTable` is the table the FK is declared on (i.e. `table`, not the\n* referenced parent) — its own indexes/uniques/primary key are what a\n* backing index for this FK would be. When none of them exactly match the\n* FK's source columns (in order), `index: false` is stamped so the emitted\n* `@relation` opts out of the framework's default derived backing-index\n* expectation, matching what `db verify` will find live. Passing the table\n* is optional so existing single-FK callers (e.g. cross-space resolution\n* before a host table reference is threaded through) can omit it and keep\n* the framework default.\n*/\nfunction buildChildRelationField(fieldName, parentModelName, fk, optional, relationName, hostTable) {\n\tconst onDelete = fk.onDelete && fk.onDelete !== DEFAULT_ON_DELETE ? fk.onDelete : void 0;\n\tconst onUpdate = fk.onUpdate && fk.onUpdate !== DEFAULT_ON_UPDATE ? fk.onUpdate : void 0;\n\tconst index = hostTable && !isBackedByColumnKeys(fk.columns, backingIndexColumnKeys({\n\t\tindexes: hostTable.indexes.filter((i) => i.where === void 0),\n\t\tuniques: hostTable.uniques,\n\t\tprimaryKey: hostTable.primaryKey\n\t})) ? false : void 0;\n\treturn {\n\t\tfieldName,\n\t\ttypeName: parentModelName,\n\t\treferencedTableName: fk.referencedTable,\n\t\toptional,\n\t\tlist: false,\n\t\trelationName,\n\t\tfkName: fk.name,\n\t\tfields: fk.columns,\n\t\treferences: fk.referencedColumns,\n\t\tonDelete: onDelete ? REFERENTIAL_ACTION_PSL[onDelete] : void 0,\n\t\tonUpdate: onUpdate ? REFERENTIAL_ACTION_PSL[onUpdate] : void 0,\n\t\tindex\n\t};\n}\nfunction resolveUniqueFieldName(desired, usedNames, fallbackSuffix) {\n\tif (!usedNames.has(desired)) return desired;\n\tconst withSuffix = `${desired}${fallbackSuffix}`;\n\tif (!usedNames.has(withSuffix)) return withSuffix;\n\tlet counter = 2;\n\twhile (usedNames.has(`${desired}${counter}`)) counter++;\n\treturn `${desired}${counter}`;\n}\nfunction addRelationField(map, tableName, field) {\n\tconst existing = map.get(tableName);\n\tif (existing) existing.push(field);\n\telse map.set(tableName, [field]);\n}\n//#endregion\nexport { buildChildRelationField, deriveBackRelationFieldName, deriveRelationFieldName, inferRelations, mapDefault, pluralize, toEnumMemberName, toEnumName, toFieldName, toModelName };\n\n//# sourceMappingURL=psl-infer.mjs.map"],"mappings":";;;;;;;;AAQA,MAAM,8BAA8B;CACnC,mBAAmB;CACnB,SAAS;AACV;;;;;AAKA,SAAS,WAAW,eAAe,SAAS;CAC3C,QAAQ,cAAc,MAAtB;EACC,KAAK,WAAW;GACf,MAAM,OAAO,oBAAoB,cAAc,OAAO,OAAO;GAC7D,OAAO,SAAS,KAAK,IAAI,KAAK,IAAI,EAAE,WAAW,YAAY,KAAK,GAAG;EACpE;EACA,KAAK,YAAY,OAAO,EAAE,WAAW,SAAS,qBAAqB,cAAc,eAAe,4BAA4B,cAAc,eAAe,YAAY,eAAe,cAAc,UAAU,EAAE,GAAG;CAClN;AACD;;;;;AAKA,SAAS,eAAe,YAAY;CACnC,IAAI,WAAW,SAAS,GAAG,GAAG,OAAO,OAAO,gBAAgB,UAAU,EAAE;CACxE,OAAO,QAAQ,WAAW,QAAQ,OAAO,MAAM,EAAE;AAClD;AACA,SAAS,eAAe,SAAS;CAChC,MAAM,0BAA0B,IAAI,IAAI;CACxC,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM,WAAW,CAAC;CAClB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,GAAG;EACnD,IAAI,wBAAwB,KAAK,GAAG;EACpC,MAAM,UAAU,MAAM;EACtB,IAAI,QAAQ,SAAS,OAAO;GAC3B,QAAQ,IAAI,KAAK,KAAK;GACtB,SAAS,KAAK,WAAW,GAAG,CAAC;GAC7B;EACD;EACA,IAAI,QAAQ,WAAW,UAAU;GAChC,WAAW,QAAQ;GACnB,KAAK,MAAM,QAAQ,QAAQ,OAAO,QAAQ,IAAI,MAAM,KAAK;GACzD;EACD;EACA,QAAQ,IAAI,KAAK,KAAK;EACtB,IAAI,QAAQ,WAAW,UAAU,kBAAkB,WAAW,GAAG;OAC5D,mBAAmB,WAAW,GAAG;CACvC;CACA,OAAO;EACN;EACA;EACA;EACA;EACA;CACD;AACD;;;;;;AAMA,SAAS,gBAAgB,OAAO,SAAS;CACxC,MAAM,QAAQ,CAAC;CACf,IAAI,OAAO,UAAU,UAAU;EAC9B,MAAM,aAAa,QAAQ,WAAW,YAAY,KAAK,CAAC;EACxD,OAAO,eAAe,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU;CAChD;CACA,IAAI,OAAO,UAAU,WAAW,OAAO,QAAQ,qBAAqB,KAAK,IAAI,CAAC,IAAI,CAAC;EAClF,MAAM,QAAQ;EACd;CACD,CAAC;CACD,IAAI,OAAO,UAAU,UAAU;EAC9B,MAAM,aAAa,QAAQ,WAAW,KAAK;EAC3C,IAAI,eAAe,KAAK,GAAG,MAAM,KAAK,UAAU;EAChD,IAAI,QAAQ,oBAAoB,KAAK,GAAG,MAAM,KAAK;GAClD,MAAM,QAAQ;GACd;EACD,CAAC;CACF;CACA,KAAK,MAAM,QAAQ,QAAQ,UAAU,MAAM,KAAK;EAC/C;EACA;CACD,CAAC;CACD,OAAO;AACR;;AAEA,SAAS,SAAS,WAAW,gBAAgB,WAAW;CACvD,IAAI,UAAU,SAAS,gBAAgB,OAAO,UAAU;CACxD,MAAM,OAAO,UAAU,IAAI,cAAc,CAAC,EAAE,MAAM,UAAU;CAC5D,IAAI,SAAS,KAAK,GAAG,OAAO,KAAK;CACjC,IAAI;EACH,OAAO,KAAK,UAAU,KAAK;CAC5B,QAAQ;EACP;CACD;AACD;;AAEA,SAAS,YAAY,OAAO,OAAO;CAClC,IAAI;EACH,OAAO,MAAM,MAAM,KAAK;CACzB,QAAQ;EACP;CACD;AACD;;AAEA,SAAS,SAAS,OAAO,MAAM,MAAM;CACpC,MAAM,UAAU,MAAM;CACtB,IAAI;EACH,OAAO,QAAQ,SAAS,WAAW,QAAQ,WAAW,WAAW,QAAQ,SAAS,IAAI,IAAI;GACzF;GACA,OAAO,QAAQ,MAAM,IAAI;EAC1B;CACD,QAAQ;EACP;CACD;AACD;;;;;AAKA,SAAS,YAAY,OAAO,MAAM;CACjC,MAAM,UAAU,MAAM;CACtB,IAAI,QAAQ,SAAS,OAAO;EAC3B,MAAM,SAAS,KAAK,QAAQ,OAAO,MAAM,CAAC,CAAC,QAAQ,MAAM,KAAK;EAC9D,OAAO,GAAG,QAAQ,IAAI,IAAI,OAAO;CAClC;CACA,OAAO,QAAQ,WAAW,WAAW,IAAI,gBAAgB,IAAI,EAAE,KAAK;AACrE;;;;;AAKA,SAAS,YAAY,OAAO,gBAAgB,WAAW,SAAS;CAC/D,KAAK,MAAM,aAAa,gBAAgB,OAAO,OAAO,GAAG;EACxD,MAAM,QAAQ,QAAQ,QAAQ,IAAI,UAAU,IAAI;EAChD,IAAI,UAAU,KAAK,GAAG;EACtB,MAAM,SAAS,SAAS,WAAW,gBAAgB,SAAS;EAC5D,IAAI,WAAW,KAAK,KAAK,CAAC,SAAS,QAAQ,KAAK,GAAG;EACnD,MAAM,OAAO,YAAY,OAAO,UAAU,KAAK;EAC/C,IAAI,SAAS,KAAK,GAAG;EACrB,MAAM,SAAS,SAAS,OAAO,UAAU,MAAM,IAAI;EACnD,IAAI,WAAW,KAAK,GAAG;EACvB,MAAM,WAAW,SAAS,QAAQ,gBAAgB,SAAS;EAC3D,IAAI,aAAa,KAAK,KAAK,CAAC,SAAS,UAAU,KAAK,GAAG;EACvD,OAAO,YAAY,OAAO,IAAI;CAC/B;AACD;;AAEA,SAAS,aAAa,OAAO,IAAI,SAAS;CACzC,KAAK,MAAM,aAAa,gBAAgB,OAAO,OAAO,GAAG;EACxD,IAAI,CAAC,GAAG,SAAS,UAAU,IAAI,GAAG;EAClC,MAAM,QAAQ,QAAQ,QAAQ,IAAI,UAAU,IAAI;EAChD,IAAI,UAAU,KAAK,GAAG;EACtB,MAAM,OAAO,YAAY,OAAO,UAAU,KAAK;EAC/C,IAAI,SAAS,KAAK,GAAG;EACrB,MAAM,SAAS,SAAS,OAAO,UAAU,MAAM,IAAI;EACnD,IAAI,WAAW,KAAK,KAAK,CAAC,GAAG,SAAS,OAAO,IAAI,GAAG;EACpD,OAAO;GACN,MAAM,YAAY,OAAO,IAAI;GAC7B,OAAO,OAAO;EACf;CACD;AACD;;;;;AAKA,SAAS,cAAc,OAAO,gBAAgB,WAAW,SAAS;CACjE,MAAM,WAAW,UAAU,IAAI,cAAc,CAAC,EAAE;CAChD,IAAI,aAAa,KAAK,GAAG,OAAO,KAAK;CACrC,MAAM,QAAQ,CAAC;CACf,MAAM,WAAW,CAAC;CAClB,KAAK,MAAM,WAAW,OAAO;EAC5B,MAAM,UAAU,aAAa,SAAS,SAAS,IAAI,OAAO;EAC1D,IAAI,YAAY,KAAK,GAAG,OAAO,KAAK;EACpC,MAAM,KAAK,QAAQ,IAAI;EACvB,SAAS,KAAK,QAAQ,KAAK;CAC5B;CACA,IAAI;EACH,IAAI,CAAC,SAAS,SAAS,KAAK,QAAQ,GAAG,KAAK,GAAG,OAAO,KAAK;CAC5D,QAAQ;EACP;CACD;CACA,OAAO,IAAI,MAAM,KAAK,IAAI,EAAE;AAC7B;AACA,SAAS,oBAAoB,OAAO,SAAS;CAC5C,IAAI,iBAAiB,MAAM,OAAO,KAAK;CACvC,MAAM,EAAE,iBAAiB,WAAW,mBAAmB,WAAW,CAAC;CACnE,IAAI,oBAAoB,KAAK,KAAK,cAAc,KAAK,KAAK,mBAAmB,KAAK,GAAG;CACrF,MAAM,UAAU,eAAe,eAAe;CAC9C,IAAI,SAAS,SAAS,MAAM;EAC3B,IAAI,CAAC,MAAM,QAAQ,KAAK,GAAG,OAAO,KAAK;EACvC,MAAM,QAAQ,CAAC;EACf,KAAK,MAAM,WAAW,OAAO;GAC5B,MAAM,UAAU,YAAY,SAAS,gBAAgB,WAAW,OAAO;GACvE,IAAI,YAAY,KAAK,GAAG,OAAO,KAAK;GACpC,MAAM,KAAK,OAAO;EACnB;EACA,OAAO,IAAI,MAAM,KAAK,IAAI,EAAE;CAC7B;CACA,MAAM,UAAU,YAAY,OAAO,gBAAgB,WAAW,OAAO;CACrE,IAAI,YAAY,KAAK,GAAG,OAAO;CAC/B,OAAO,MAAM,QAAQ,KAAK,IAAI,cAAc,OAAO,gBAAgB,WAAW,OAAO,IAAI,KAAK;AAC/F;;AAEA,SAAS,SAAS,MAAM,OAAO;CAC9B,IAAI,SAAS,OAAO,OAAO;CAC3B,IAAI,MAAM,QAAQ,IAAI,MAAM,MAAM,QAAQ,KAAK,GAAG,OAAO;CACzD,IAAI,OAAO,SAAS,YAAY,OAAO,UAAU,YAAY,SAAS,QAAQ,UAAU,MAAM,OAAO;CACrG,MAAM,UAAU,OAAO,QAAQ,IAAI;CACnC,MAAM,SAAS,IAAI,IAAI,OAAO,QAAQ,KAAK,CAAC;CAC5C,OAAO,QAAQ,WAAW,OAAO,QAAQ,QAAQ,OAAO,CAAC,KAAK,YAAY;EACzE,MAAM,QAAQ,OAAO,IAAI,GAAG;EAC5B,OAAO,UAAU,KAAK,KAAK,SAAS,QAAQ,KAAK;CAClD,CAAC;AACF;AAGA,MAAM,qCAAqC,IAAI,IAAI;CAClD;CACA;CACA;CACA;CACA;CACA;AACD,CAAC;AACD,MAAM,0BAA0B;AAChC,SAAS,cAAc,OAAO;CAC7B,OAAO,eAAe,KAAK,KAAK;AACjC;AACA,SAAS,uBAAuB,OAAO;CACtC,OAAO,MAAM,MAAM,uBAAuB,KAAK,CAAC;AACjD;AACA,SAAS,0BAA0B,OAAO;CACzC,IAAI,OAAO;CACX,KAAK,MAAM,QAAQ,OAAO;EACzB,QAAQ,KAAK,YAAY,CAAC,KAAK;EAC/B,OAAO,KAAK,KAAK,MAAM,QAAQ;CAChC;CACA,OAAO,KAAK,SAAS,EAAA,CAAG,SAAS,EAAE;AACpC;AACA,SAAS,6BAA6B,OAAO;CAC5C,MAAM,YAAY,MAAM,QAAQ,UAAU,EAAE;CAC5C,OAAO,UAAU,SAAS,IAAI,YAAY,0BAA0B,KAAK;AAC1E;AACA,SAAS,WAAW,MAAM;CACzB,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,KAAK,MAAM,CAAC;AACnD;AACA,SAAS,kBAAkB,OAAO;CACjC,MAAM,QAAQ,uBAAuB,KAAK;CAC1C,IAAI,MAAM,WAAW,GAAG,OAAO,WAAW,6BAA6B,KAAK,CAAC;CAC7E,OAAO,MAAM,IAAI,UAAU,CAAC,CAAC,KAAK,EAAE;AACrC;AACA,SAAS,iBAAiB,OAAO;CAChC,MAAM,QAAQ,uBAAuB,KAAK;CAC1C,IAAI,MAAM,WAAW,GAAG,OAAO,6BAA6B,KAAK;CACjE,MAAM,CAAC,YAAY,OAAO,GAAG,QAAQ;CACrC,OAAO,UAAU,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,UAAU,MAAM,CAAC,IAAI,KAAK,IAAI,UAAU,CAAC,CAAC,KAAK,EAAE;AAC7F;AACA,SAAS,cAAc,MAAM;CAC5B,OAAO,mBAAmB,IAAI,KAAK,YAAY,CAAC,KAAK,MAAM,KAAK,IAAI;AACrE;AACA,SAAS,WAAW,MAAM;CACzB,OAAO,IAAI;AACZ;AACA,SAAS,eAAe,MAAM;CAC7B,OAAO,cAAc,IAAI,IAAI,WAAW,IAAI,IAAI;AACjD;AACA,SAAS,YAAY,WAAW;CAC/B,IAAI;CACJ,IAAI,cAAc,SAAS,GAAG,OAAO,kBAAkB,SAAS;MAC3D,OAAO,UAAU,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,UAAU,MAAM,CAAC;CACjE,IAAI,cAAc,IAAI,GAAG,OAAO;EAC/B,MAAM,WAAW,IAAI;EACrB,KAAK;CACN;CACA,IAAI,iBAAiB,IAAI,MAAM,WAAW,OAAO;EAChD;EACA,KAAK;CACN;CACA,OAAO,EAAE,KAAK;AACf;AACA,SAAS,YAAY,YAAY;CAChC,IAAI;CACJ,IAAI,cAAc,UAAU,GAAG,OAAO,iBAAiB,UAAU;MAC5D,OAAO,WAAW,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,WAAW,MAAM,CAAC;CACnE,IAAI,cAAc,IAAI,GAAG,OAAO;EAC/B,MAAM,WAAW,IAAI;EACrB,KAAK;CACN;CACA,IAAI,SAAS,YAAY,OAAO;EAC/B;EACA,KAAK;CACN;CACA,OAAO,EAAE,KAAK;AACf;AACA,SAAS,WAAW,YAAY;CAC/B,IAAI;CACJ,IAAI,cAAc,UAAU,GAAG,OAAO,kBAAkB,UAAU;MAC7D,OAAO,WAAW,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,WAAW,MAAM,CAAC;CACnE,IAAI,cAAc,IAAI,GAAG,OAAO;EAC/B,MAAM,WAAW,IAAI;EACrB,KAAK;CACN;CACA,IAAI,SAAS,YAAY,OAAO;EAC/B;EACA,KAAK;CACN;CACA,OAAO,EAAE,KAAK;AACf;AACA,MAAM,2BAA2B;;;;;;;AAOjC,SAAS,iBAAiB,OAAO;CAChC,IAAI,yBAAyB,KAAK,KAAK,KAAK,CAAC,cAAc,KAAK,GAAG,OAAO;CAC1E,OAAO,eAAe,iBAAiB,KAAK,CAAC;AAC9C;AACA,SAAS,UAAU,MAAM;CACxB,OAAO,aAAa,OAAO,IAAI;AAChC;AACA,SAAS,wBAAwB,WAAW,qBAAqB;CAChE,IAAI,UAAU,WAAW,GAAG;EAC3B,MAAM,CAAC,MAAM,uBAAuB;EACpC,MAAM,WAAW,IAAI,QAAQ,SAAS,EAAE,CAAC,CAAC,QAAQ,OAAO,EAAE;EAC3D,IAAI,SAAS,SAAS,KAAK,aAAa,KAAK,OAAO,eAAe,iBAAiB,QAAQ,CAAC;EAC7F,OAAO,eAAe,iBAAiB,mBAAmB,CAAC;CAC5D;CACA,OAAO,eAAe,iBAAiB,mBAAmB,CAAC;AAC5D;AACA,SAAS,4BAA4B,gBAAgB,YAAY;CAChE,MAAM,OAAO,eAAe,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,eAAe,MAAM,CAAC;CAC5E,OAAO,aAAa,OAAO,UAAU,IAAI;AAC1C;AAGA,MAAM,oBAAoB;AAC1B,MAAM,oBAAoB;AAC1B,MAAM,yBAAyB;CAC9B,UAAU;CACV,UAAU;CACV,SAAS;CACT,SAAS;CACT,YAAY;AACb;AACA,SAAS,eAAe,QAAQ,cAAc;CAC7C,MAAM,mCAAmC,IAAI,IAAI;CACjD,MAAM,gCAAgC,IAAI,IAAI;CAC9C,KAAK,MAAM,SAAS,OAAO,OAAO,MAAM,GAAG,KAAK,MAAM,MAAM,MAAM,aAAa;EAC9E,MAAM,UAAU,GAAG,MAAM,KAAK,GAAG,GAAG;EACpC,cAAc,IAAI,UAAU,cAAc,IAAI,OAAO,KAAK,KAAK,CAAC;CACjE;CACA,MAAM,iCAAiC,IAAI,IAAI;CAC/C,KAAK,MAAM,SAAS,OAAO,OAAO,MAAM,GAAG;EAC1C,MAAM,wBAAwB,IAAI,IAAI;EACtC,KAAK,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,GAAG,MAAM,IAAI,IAAI,IAAI;EAClE,eAAe,IAAI,MAAM,MAAM,KAAK;CACrC;CACA,KAAK,MAAM,SAAS,OAAO,OAAO,MAAM,GAAG,KAAK,MAAM,MAAM,MAAM,aAAa;EAC9E,MAAM,iBAAiB,MAAM;EAC7B,MAAM,kBAAkB,GAAG;EAC3B,MAAM,YAAY,eAAe,IAAI,cAAc;EACnD,IAAI,cAAc,KAAK,GAAG,MAAM,IAAI,cAAc,8CAA8C,eAAe,EAAE;EACjH,MAAM,iBAAiB,aAAa,IAAI,cAAc,KAAK;EAC3D,MAAM,kBAAkB,aAAa,IAAI,eAAe,KAAK;EAC7D,MAAM,UAAU,GAAG,eAAe,GAAG;EACrC,MAAM,iBAAiB,mBAAmB;EAC1C,MAAM,qBAAqB,cAAc,IAAI,OAAO,KAAK,KAAK,KAAK;EACnE,MAAM,aAAa,eAAe,IAAI,KAAK;EAC3C,MAAM,oBAAoB,uBAAuB,wBAAwB,GAAG,SAAS,eAAe,GAAG,WAAW,eAAe;EACjI,MAAM,eAAe,oBAAoB,mBAAmB,IAAI,mBAAmB,iBAAiB,cAAc,IAAI,KAAK;EAC3H,iBAAiB,kBAAkB,gBAAgB,wBAAwB,mBAAmB,iBAAiB,IAAI,GAAG,QAAQ,MAAM,eAAe,MAAM,QAAQ,WAAW,EAAE,YAAY,KAAK,GAAG,cAAc,KAAK,CAAC;EACtN,UAAU,IAAI,iBAAiB;EAC/B,MAAM,aAAa,eAAe,IAAI,eAAe,qBAAqB,IAAI,IAAI;EAClF,eAAe,IAAI,iBAAiB,UAAU;EAC9C,MAAM,mBAAmB,uBAAuB,4BAA4B,gBAAgB,UAAU,GAAG,YAAY,cAAc;EACnI,iBAAiB,kBAAkB,iBAAiB;GACnD,WAAW;GACX,UAAU;GACV,UAAU;GACV,MAAM,CAAC;GACP;EACD,CAAC;EACD,WAAW,IAAI,gBAAgB;CAChC;CACA,OAAO,EAAE,iBAAiB;AAC3B;AACA,SAAS,eAAe,IAAI,OAAO;CAClC,MAAM,SAAS,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,KAAK;CACpC,IAAI,MAAM,YAAY;EACrB,MAAM,SAAS,CAAC,GAAG,MAAM,WAAW,OAAO,CAAC,CAAC,KAAK;EAClD,IAAI,OAAO,WAAW,OAAO,UAAU,OAAO,OAAO,GAAG,MAAM,MAAM,OAAO,EAAE,GAAG,OAAO;CACxF;CACA,KAAK,MAAM,UAAU,MAAM,SAAS;EACnC,MAAM,aAAa,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC,KAAK;EAC5C,IAAI,WAAW,WAAW,OAAO,UAAU,WAAW,OAAO,GAAG,MAAM,MAAM,OAAO,EAAE,GAAG,OAAO;CAChG;CACA,KAAK,MAAM,SAAS,MAAM,SAAS;EAClC,IAAI,CAAC,MAAM,UAAU,MAAM,WAAW,MAAM,YAAY,KAAK,GAAG;EAChE,MAAM,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,KAAK;EAC1C,IAAI,UAAU,WAAW,OAAO,UAAU,UAAU,OAAO,GAAG,MAAM,MAAM,OAAO,EAAE,GAAG,OAAO;CAC9F;CACA,OAAO;AACR;AACA,SAAS,mBAAmB,IAAI,wBAAwB,iBAAiB,gBAAgB;CACxF,IAAI,GAAG,MAAM,OAAO,GAAG;CACvB,IAAI,gBAAgB,OAAO,GAAG,uBAAuB,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,uBAAuB,MAAM,CAAC,IAAI,UAAU,eAAe;CAC1I,OAAO,GAAG,QAAQ,KAAK,GAAG;AAC3B;;;;;;;;;;;;;;;;;;;AAmBA,SAAS,wBAAwB,WAAW,iBAAiB,IAAI,UAAU,cAAc,WAAW;CACnG,MAAM,WAAW,GAAG,YAAY,GAAG,aAAa,oBAAoB,GAAG,WAAW,KAAK;CACvF,MAAM,WAAW,GAAG,YAAY,GAAG,aAAa,oBAAoB,GAAG,WAAW,KAAK;CACvF,MAAM,QAAQ,aAAa,CAAC,qBAAqB,GAAG,SAAS,uBAAuB;EACnF,SAAS,UAAU,QAAQ,QAAQ,MAAM,EAAE,UAAU,KAAK,CAAC;EAC3D,SAAS,UAAU;EACnB,YAAY,UAAU;CACvB,CAAC,CAAC,IAAI,QAAQ,KAAK;CACnB,OAAO;EACN;EACA,UAAU;EACV,qBAAqB,GAAG;EACxB;EACA,MAAM;EACN;EACA,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,YAAY,GAAG;EACf,UAAU,WAAW,uBAAuB,YAAY,KAAK;EAC7D,UAAU,WAAW,uBAAuB,YAAY,KAAK;EAC7D;CACD;AACD;AACA,SAAS,uBAAuB,SAAS,WAAW,gBAAgB;CACnE,IAAI,CAAC,UAAU,IAAI,OAAO,GAAG,OAAO;CACpC,MAAM,aAAa,GAAG,UAAU;CAChC,IAAI,CAAC,UAAU,IAAI,UAAU,GAAG,OAAO;CACvC,IAAI,UAAU;CACd,OAAO,UAAU,IAAI,GAAG,UAAU,SAAS,GAAG;CAC9C,OAAO,GAAG,UAAU;AACrB;AACA,SAAS,iBAAiB,KAAK,WAAW,OAAO;CAChD,MAAM,WAAW,IAAI,IAAI,SAAS;CAClC,IAAI,UAAU,SAAS,KAAK,KAAK;MAC5B,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC;AAChC"}
@@ -1,8 +1,8 @@
1
- import { A as PreparedParamRef, B as frozenCodecRef, C as LiteralExpr, D as OrExpr, E as OperationExpr, F as SubqueryExpr, G as whereExprKinds, H as isQueryAst, I as TableSource, L as UpdateAst, M as RawExpr, N as RawQueryAst, O as OrderByItem, P as SelectAst, R as WindowFuncExpr, S as ListExpression, T as NullCheckExpr, U as isWhereExpr, V as isAggregateFn, W as queryAstKinds, _ as InsertAst, a as CastExpr, b as JsonArrayAggExpr, c as DeleteAst, d as DoUpdateSetConflictAction, f as EqColJoinOn, g as IdentifierRef, h as FunctionSource, i as CaseExpr, j as ProjectionItem, k as ParamRef, l as DerivedTableSource, m as FunctionCallExpr, n as AndExpr, o as ColumnRef, p as ExistsExpr, r as BinaryExpr, s as DefaultValueExpr, t as AggregateExpr, u as DoNothingConflictAction, v as InsertOnConflict, w as NotExpr, x as JsonObjectExpr, y as JoinAst, z as aggregateFnNames } from "./types-ZNKYVjLr-DzjvSHKB.mjs";
1
+ import { A as PreparedParamRef, B as frozenCodecRef, C as LiteralExpr, D as OrExpr, E as OperationExpr, F as SubqueryExpr, G as whereExprKinds, H as isQueryAst, I as TableSource, L as UpdateAst, M as RawExpr, N as RawQueryAst, O as OrderByItem, P as SelectAst, R as WindowFuncExpr, S as ListExpression, T as NullCheckExpr, U as isWhereExpr, V as isAggregateFn, W as queryAstKinds, _ as InsertAst, a as CastExpr, b as JsonArrayAggExpr, c as DeleteAst, d as DoUpdateSetConflictAction, f as EqColJoinOn, g as IdentifierRef, h as FunctionSource, i as CaseExpr, j as ProjectionItem, k as ParamRef, l as DerivedTableSource, m as FunctionCallExpr, n as AndExpr, o as ColumnRef, p as ExistsExpr, r as BinaryExpr, s as DefaultValueExpr, t as AggregateExpr, u as DoNothingConflictAction, v as InsertOnConflict, w as NotExpr, x as JsonObjectExpr, y as JoinAst, z as aggregateFnNames } from "./types-BAhLyUFj-3TARSz8c.mjs";
2
2
  import { a as ForeignKeyConstraint, c as PrimaryKeyConstraint, i as DdlNode, l as UniqueConstraint, n as DdlColumn, o as FunctionColumnDefault, r as DdlColumnDefault, s as LiteralColumnDefault, t as CheckExpressionConstraint, u as isDdlNode } from "./ddl-types-DOgOmDOh-Cs_MY05h.mjs";
3
3
  import { n as compact, t as collectOrderedParamRefs } from "./util-DQQgv2j1-D6INZaRG.mjs";
4
- import { A as sqlCharDescriptor, B as sqlIntDecode, C as isNumeralText, D as signedRange, E as printJsonBody, F as sqlFloatDecodeJson, G as sqlTextDescriptor, H as sqlIntEncode, I as sqlFloatDescriptor, J as sqlVarcharDecode, K as sqlTextEncode, L as sqlFloatEncode, M as sqlCharRenderOutputType, N as sqlFloatColumn, O as sqlCharColumn, P as sqlFloatDecode, R as sqlFloatEncodeJson, S as isNonFiniteText, T as parseJsonBody, U as sqlTextColumn, V as sqlIntDescriptor, W as sqlTextDecode, X as sqlVarcharEncode, Y as sqlVarcharDescriptor, Z as sqlVarcharRenderOutputType, _ as SqlVarcharCodec, a as SQL_FLOAT_CODEC_ID, b as createNumberClassifier, c as SQL_VARCHAR_CODEC_ID, d as SqlFloatCodec, f as SqlFloatDescriptor, g as SqlTextDescriptor, h as SqlTextCodec, i as SQL_CHAR_CODEC_ID, j as sqlCharEncode, k as sqlCharDecode, l as SqlCharCodec, m as SqlIntDescriptor, n as JsonDocumentProjection, o as SQL_INT_CODEC_ID, p as SqlIntCodec, q as sqlVarcharColumn, r as NativeJsonValueProjection, s as SQL_TEXT_CODEC_ID, t as CodecJsonValueProjection, u as SqlCharDescriptor, v as SqlVarcharDescriptor, w as numeralText, x as escapePslString, y as canonicalNumeralText, z as sqlIntColumn } from "./ast-CEGv-zzk.mjs";
4
+ import { A as sqlCharDescriptor, B as sqlIntDecode, C as isNumeralText, D as signedRange, E as printJsonBody, F as sqlFloatDecodeJson, G as sqlTextDescriptor, H as sqlIntEncode, I as sqlFloatDescriptor, J as sqlVarcharDecode, K as sqlTextEncode, L as sqlFloatEncode, M as sqlCharRenderOutputType, N as sqlFloatColumn, O as sqlCharColumn, P as sqlFloatDecode, R as sqlFloatEncodeJson, S as isNonFiniteText, T as parseJsonBody, U as sqlTextColumn, V as sqlIntDescriptor, W as sqlTextDecode, X as sqlVarcharEncode, Y as sqlVarcharDescriptor, Z as sqlVarcharRenderOutputType, _ as SqlVarcharCodec, a as SQL_FLOAT_CODEC_ID, b as createNumberClassifier, c as SQL_VARCHAR_CODEC_ID, d as SqlFloatCodec, f as SqlFloatDescriptor, g as SqlTextDescriptor, h as SqlTextCodec, i as SQL_CHAR_CODEC_ID, j as sqlCharEncode, k as sqlCharDecode, l as SqlCharCodec, m as SqlIntDescriptor, n as JsonDocumentProjection, o as SQL_INT_CODEC_ID, p as SqlIntCodec, q as sqlVarcharColumn, r as NativeJsonValueProjection, s as SQL_TEXT_CODEC_ID, t as CodecJsonValueProjection, u as SqlCharDescriptor, v as SqlVarcharDescriptor, w as numeralText, x as escapePslString, y as canonicalNumeralText, z as sqlIntColumn } from "./ast--wLzFkbt.mjs";
5
5
  import { t as planFromAst } from "./plan-Dh0LbYIv-Crx5-ThG.mjs";
6
- import { a as param, i as isExpression, n as codecOf, o as toExpr, r as createRawSql, t as buildOperation } from "./expression-DqrE3myO.mjs";
6
+ import { a as param, i as isExpression, n as codecOf, o as toExpr, r as createRawSql, t as buildOperation } from "./expression-CrGD_4do.mjs";
7
7
  import { t as createSqlParamRefMutator } from "./middleware-CMr4CHNz-DHIUdxlm.mjs";
8
8
  export { AggregateExpr, AndExpr, BinaryExpr, CaseExpr, CastExpr, CheckExpressionConstraint, CodecJsonValueProjection, ColumnRef, DdlColumn, DdlColumnDefault, DdlNode, DefaultValueExpr, DeleteAst, DerivedTableSource, DoNothingConflictAction, DoUpdateSetConflictAction, EqColJoinOn, ExistsExpr, ForeignKeyConstraint, FunctionCallExpr, FunctionColumnDefault, FunctionSource, IdentifierRef, InsertAst, InsertOnConflict, JoinAst, JsonArrayAggExpr, JsonDocumentProjection, JsonObjectExpr, ListExpression, LiteralColumnDefault, LiteralExpr, NativeJsonValueProjection, NotExpr, NullCheckExpr, OperationExpr, OrExpr, OrderByItem, ParamRef, PreparedParamRef, PrimaryKeyConstraint, ProjectionItem, RawExpr, RawQueryAst, SQL_CHAR_CODEC_ID, SQL_FLOAT_CODEC_ID, SQL_INT_CODEC_ID, SQL_TEXT_CODEC_ID, SQL_VARCHAR_CODEC_ID, SelectAst, SqlCharCodec, SqlCharDescriptor, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, SqlTextCodec, SqlTextDescriptor, SqlVarcharCodec, SqlVarcharDescriptor, SubqueryExpr, TableSource, UniqueConstraint, UpdateAst, WindowFuncExpr, aggregateFnNames, buildOperation, canonicalNumeralText, codecOf, collectOrderedParamRefs, compact, createNumberClassifier, createRawSql, createSqlParamRefMutator, escapePslString, frozenCodecRef, isAggregateFn, isDdlNode, isExpression, isNonFiniteText, isNumeralText, isQueryAst, isWhereExpr, numeralText, param, parseJsonBody, planFromAst, printJsonBody, queryAstKinds, signedRange, sqlCharColumn, sqlCharDecode, sqlCharDescriptor, sqlCharEncode, sqlCharRenderOutputType, sqlFloatColumn, sqlFloatDecode, sqlFloatDecodeJson, sqlFloatDescriptor, sqlFloatEncode, sqlFloatEncodeJson, sqlIntColumn, sqlIntDecode, sqlIntDescriptor, sqlIntEncode, sqlTextColumn, sqlTextDecode, sqlTextDescriptor, sqlTextEncode, sqlVarcharColumn, sqlVarcharDecode, sqlVarcharDescriptor, sqlVarcharEncode, sqlVarcharRenderOutputType, toExpr, whereExprKinds };
@@ -1,2 +1,2 @@
1
- import { n as isSqlAggregateDescriptor, t as buildSqlAggregateDescriptorRegistry } from "./aggregate-descriptor-registry-DzThdoju.mjs";
1
+ import { n as isSqlAggregateDescriptor, t as buildSqlAggregateDescriptorRegistry } from "./aggregate-descriptor-registry-BaMSvS82.mjs";
2
2
  export { buildSqlAggregateDescriptorRegistry, isSqlAggregateDescriptor };
@@ -1,5 +1,5 @@
1
- import { A as PreparedParamRef, B as frozenCodecRef, C as LiteralExpr, D as OrExpr, E as OperationExpr, F as SubqueryExpr, G as whereExprKinds, H as isQueryAst, I as TableSource, L as UpdateAst, M as RawExpr, N as RawQueryAst, O as OrderByItem, P as SelectAst, R as WindowFuncExpr, S as ListExpression, T as NullCheckExpr, U as isWhereExpr, V as isAggregateFn, W as queryAstKinds, _ as InsertAst, a as CastExpr, b as JsonArrayAggExpr, c as DeleteAst, d as DoUpdateSetConflictAction, f as EqColJoinOn, g as IdentifierRef, h as FunctionSource, i as CaseExpr, j as ProjectionItem, k as ParamRef, l as DerivedTableSource, m as FunctionCallExpr, n as AndExpr, o as ColumnRef, p as ExistsExpr, r as BinaryExpr, s as DefaultValueExpr, t as AggregateExpr, u as DoNothingConflictAction, v as InsertOnConflict, w as NotExpr, x as JsonObjectExpr, y as JoinAst, z as aggregateFnNames } from "./types-ZNKYVjLr-DzjvSHKB.mjs";
1
+ import { A as PreparedParamRef, B as frozenCodecRef, C as LiteralExpr, D as OrExpr, E as OperationExpr, F as SubqueryExpr, G as whereExprKinds, H as isQueryAst, I as TableSource, L as UpdateAst, M as RawExpr, N as RawQueryAst, O as OrderByItem, P as SelectAst, R as WindowFuncExpr, S as ListExpression, T as NullCheckExpr, U as isWhereExpr, V as isAggregateFn, W as queryAstKinds, _ as InsertAst, a as CastExpr, b as JsonArrayAggExpr, c as DeleteAst, d as DoUpdateSetConflictAction, f as EqColJoinOn, g as IdentifierRef, h as FunctionSource, i as CaseExpr, j as ProjectionItem, k as ParamRef, l as DerivedTableSource, m as FunctionCallExpr, n as AndExpr, o as ColumnRef, p as ExistsExpr, r as BinaryExpr, s as DefaultValueExpr, t as AggregateExpr, u as DoNothingConflictAction, v as InsertOnConflict, w as NotExpr, x as JsonObjectExpr, y as JoinAst, z as aggregateFnNames } from "./types-BAhLyUFj-3TARSz8c.mjs";
2
2
  import { a as ForeignKeyConstraint, c as PrimaryKeyConstraint, i as DdlNode, l as UniqueConstraint, n as DdlColumn, o as FunctionColumnDefault, r as DdlColumnDefault, s as LiteralColumnDefault, t as CheckExpressionConstraint, u as isDdlNode } from "./ddl-types-DOgOmDOh-Cs_MY05h.mjs";
3
3
  import { n as compact, t as collectOrderedParamRefs } from "./util-DQQgv2j1-D6INZaRG.mjs";
4
- import { A as sqlCharDescriptor, B as sqlIntDecode, C as isNumeralText, D as signedRange, E as printJsonBody, F as sqlFloatDecodeJson, G as sqlTextDescriptor, H as sqlIntEncode, I as sqlFloatDescriptor, J as sqlVarcharDecode, K as sqlTextEncode, L as sqlFloatEncode, M as sqlCharRenderOutputType, N as sqlFloatColumn, O as sqlCharColumn, P as sqlFloatDecode, R as sqlFloatEncodeJson, S as isNonFiniteText, T as parseJsonBody, U as sqlTextColumn, V as sqlIntDescriptor, W as sqlTextDecode, X as sqlVarcharEncode, Y as sqlVarcharDescriptor, Z as sqlVarcharRenderOutputType, _ as SqlVarcharCodec, a as SQL_FLOAT_CODEC_ID, b as createNumberClassifier, c as SQL_VARCHAR_CODEC_ID, d as SqlFloatCodec, f as SqlFloatDescriptor, g as SqlTextDescriptor, h as SqlTextCodec, i as SQL_CHAR_CODEC_ID, j as sqlCharEncode, k as sqlCharDecode, l as SqlCharCodec, m as SqlIntDescriptor, n as JsonDocumentProjection, o as SQL_INT_CODEC_ID, p as SqlIntCodec, q as sqlVarcharColumn, r as NativeJsonValueProjection, s as SQL_TEXT_CODEC_ID, t as CodecJsonValueProjection, u as SqlCharDescriptor, v as SqlVarcharDescriptor, w as numeralText, x as escapePslString, y as canonicalNumeralText, z as sqlIntColumn } from "./ast-CEGv-zzk.mjs";
4
+ import { A as sqlCharDescriptor, B as sqlIntDecode, C as isNumeralText, D as signedRange, E as printJsonBody, F as sqlFloatDecodeJson, G as sqlTextDescriptor, H as sqlIntEncode, I as sqlFloatDescriptor, J as sqlVarcharDecode, K as sqlTextEncode, L as sqlFloatEncode, M as sqlCharRenderOutputType, N as sqlFloatColumn, O as sqlCharColumn, P as sqlFloatDecode, R as sqlFloatEncodeJson, S as isNonFiniteText, T as parseJsonBody, U as sqlTextColumn, V as sqlIntDescriptor, W as sqlTextDecode, X as sqlVarcharEncode, Y as sqlVarcharDescriptor, Z as sqlVarcharRenderOutputType, _ as SqlVarcharCodec, a as SQL_FLOAT_CODEC_ID, b as createNumberClassifier, c as SQL_VARCHAR_CODEC_ID, d as SqlFloatCodec, f as SqlFloatDescriptor, g as SqlTextDescriptor, h as SqlTextCodec, i as SQL_CHAR_CODEC_ID, j as sqlCharEncode, k as sqlCharDecode, l as SqlCharCodec, m as SqlIntDescriptor, n as JsonDocumentProjection, o as SQL_INT_CODEC_ID, p as SqlIntCodec, q as sqlVarcharColumn, r as NativeJsonValueProjection, s as SQL_TEXT_CODEC_ID, t as CodecJsonValueProjection, u as SqlCharDescriptor, v as SqlVarcharDescriptor, w as numeralText, x as escapePslString, y as canonicalNumeralText, z as sqlIntColumn } from "./ast--wLzFkbt.mjs";
5
5
  export { AggregateExpr, AndExpr, BinaryExpr, CaseExpr, CastExpr, CheckExpressionConstraint, CodecJsonValueProjection, ColumnRef, DdlColumn, DdlColumnDefault, DdlNode, DefaultValueExpr, DeleteAst, DerivedTableSource, DoNothingConflictAction, DoUpdateSetConflictAction, EqColJoinOn, ExistsExpr, ForeignKeyConstraint, FunctionCallExpr, FunctionColumnDefault, FunctionSource, IdentifierRef, InsertAst, InsertOnConflict, JoinAst, JsonArrayAggExpr, JsonDocumentProjection, JsonObjectExpr, ListExpression, LiteralColumnDefault, LiteralExpr, NativeJsonValueProjection, NotExpr, NullCheckExpr, OperationExpr, OrExpr, OrderByItem, ParamRef, PreparedParamRef, PrimaryKeyConstraint, ProjectionItem, RawExpr, RawQueryAst, SQL_CHAR_CODEC_ID, SQL_FLOAT_CODEC_ID, SQL_INT_CODEC_ID, SQL_TEXT_CODEC_ID, SQL_VARCHAR_CODEC_ID, SelectAst, SqlCharCodec, SqlCharDescriptor, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, SqlTextCodec, SqlTextDescriptor, SqlVarcharCodec, SqlVarcharDescriptor, SubqueryExpr, TableSource, UniqueConstraint, UpdateAst, WindowFuncExpr, aggregateFnNames, canonicalNumeralText, collectOrderedParamRefs, compact, createNumberClassifier, escapePslString, frozenCodecRef, isAggregateFn, isDdlNode, isNonFiniteText, isNumeralText, isQueryAst, isWhereExpr, numeralText, parseJsonBody, printJsonBody, queryAstKinds, signedRange, sqlCharColumn, sqlCharDecode, sqlCharDescriptor, sqlCharEncode, sqlCharRenderOutputType, sqlFloatColumn, sqlFloatDecode, sqlFloatDecodeJson, sqlFloatDescriptor, sqlFloatEncode, sqlFloatEncodeJson, sqlIntColumn, sqlIntDecode, sqlIntDescriptor, sqlIntEncode, sqlTextColumn, sqlTextDecode, sqlTextDescriptor, sqlTextEncode, sqlVarcharColumn, sqlVarcharDecode, sqlVarcharDescriptor, sqlVarcharEncode, sqlVarcharRenderOutputType, whereExprKinds };
@@ -1,4 +1,4 @@
1
- import { C as LiteralExpr, D as OrExpr, E as OperationExpr, I as TableSource, L as UpdateAst, M as RawExpr, O as OrderByItem, P as SelectAst, T as NullCheckExpr, _ as InsertAst, g as IdentifierRef, j as ProjectionItem, k as ParamRef, n as AndExpr, o as ColumnRef, p as ExistsExpr, r as BinaryExpr, t as AggregateExpr, v as InsertOnConflict, y as JoinAst } from "./types-ZNKYVjLr-DzjvSHKB.mjs";
1
+ import { C as LiteralExpr, D as OrExpr, E as OperationExpr, I as TableSource, L as UpdateAst, M as RawExpr, O as OrderByItem, P as SelectAst, T as NullCheckExpr, _ as InsertAst, g as IdentifierRef, j as ProjectionItem, k as ParamRef, n as AndExpr, o as ColumnRef, p as ExistsExpr, r as BinaryExpr, t as AggregateExpr, v as InsertOnConflict, y as JoinAst } from "./types-BAhLyUFj-3TARSz8c.mjs";
2
2
  import { a as ForeignKeyConstraint, c as PrimaryKeyConstraint, l as UniqueConstraint, n as DdlColumn, o as FunctionColumnDefault, s as LiteralColumnDefault, t as CheckExpressionConstraint } from "./ddl-types-DOgOmDOh-Cs_MY05h.mjs";
3
3
  import { structuredError } from "@prisma/orm-framework/utils/structured-error";
4
4
  import { blindCast } from "@prisma/orm-framework/utils/casts";
@@ -1 +1 @@
1
- {"version":3,"file":"relational-core__contract-free.mjs","names":[],"sources":["../../../../2-sql/4-lanes/relational-core/dist/exports/contract-free.mjs"],"sourcesContent":["import { C as LiteralExpr, D as OrExpr, E as OperationExpr, I as TableSource, L as UpdateAst, M as RawExpr, O as OrderByItem, P as SelectAst, T as NullCheckExpr, _ as InsertAst, g as IdentifierRef, j as ProjectionItem, k as ParamRef, n as AndExpr, o as ColumnRef, p as ExistsExpr, r as BinaryExpr, t as AggregateExpr, v as InsertOnConflict, y as JoinAst } from \"../types-ZNKYVjLr.mjs\";\nimport { a as ForeignKeyConstraint, c as PrimaryKeyConstraint, l as UniqueConstraint, n as DdlColumn, o as FunctionColumnDefault, s as LiteralColumnDefault, t as CheckExpressionConstraint } from \"../ddl-types-DOgOmDOh.mjs\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { blindCast } from \"@internal/utils/casts\";\n//#region src/contract-free/column.ts\nfunction lit(value) {\n\treturn new LiteralColumnDefault(value);\n}\nfunction fn(expression) {\n\treturn new FunctionColumnDefault(expression);\n}\nfunction col(name, type, options) {\n\treturn new DdlColumn({\n\t\tname,\n\t\ttype,\n\t\t...options\n\t});\n}\nfunction primaryKey(columns, options) {\n\treturn new PrimaryKeyConstraint({\n\t\tcolumns,\n\t\t...options\n\t});\n}\nfunction foreignKey(columns, refTable, refColumns, options) {\n\treturn new ForeignKeyConstraint({\n\t\tcolumns,\n\t\trefTable,\n\t\trefColumns,\n\t\t...options\n\t});\n}\nfunction unique(columns, options) {\n\treturn new UniqueConstraint({\n\t\tcolumns,\n\t\t...options\n\t});\n}\nfunction checkExpression(name, expression) {\n\treturn new CheckExpressionConstraint({\n\t\tname,\n\t\texpression\n\t});\n}\n//#endregion\n//#region src/contract-free/table.ts\n/**\n* A composable WHERE / ON expression. Wraps an `AnyExpression` and exposes\n* fluent boolean combinators, mirroring the spirit of `sql-builder`'s\n* `Expression` interface without the contract-bound type machinery.\n*/\nvar CfExpr = class CfExpr {\n\tast;\n\tconstructor(ast) {\n\t\tthis.ast = ast;\n\t}\n\tand(other) {\n\t\treturn new CfExpr(AndExpr.of([this.ast, other.ast]));\n\t}\n\tor(other) {\n\t\treturn new CfExpr(OrExpr.of([this.ast, other.ast]));\n\t}\n\tnot() {\n\t\treturn new CfExpr(this.ast.not());\n\t}\n\tisNull() {\n\t\treturn new CfExpr(NullCheckExpr.isNull(this.ast));\n\t}\n\tisNotNull() {\n\t\treturn new CfExpr(NullCheckExpr.isNotNull(this.ast));\n\t}\n\teqLit(value) {\n\t\treturn new CfExpr(BinaryExpr.eq(this.ast, LiteralExpr.of(value)));\n\t}\n\tgtLit(value) {\n\t\treturn new CfExpr(BinaryExpr.gt(this.ast, LiteralExpr.of(value)));\n\t}\n\teqParam(value, codecId) {\n\t\treturn new CfExpr(BinaryExpr.eq(this.ast, ParamRef.of(value, { codec: { codecId } })));\n\t}\n\teqExpr(other) {\n\t\treturn new CfExpr(BinaryExpr.eq(this.ast, other.ast));\n\t}\n};\nconst cfExpr = {\n\tcountStar() {\n\t\treturn new CfExpr(AggregateExpr.count());\n\t},\n\tlit(value) {\n\t\treturn new CfExpr(LiteralExpr.of(value));\n\t},\n\tidentifierRef(name) {\n\t\treturn new CfExpr(IdentifierRef.of(name));\n\t},\n\tparam(value, codecId) {\n\t\treturn new CfExpr(ParamRef.of(value, { codec: { codecId } }));\n\t},\n\t/**\n\t* Catalog function call lowered via a `'function'`-strategy template\n\t* (e.g. `to_regclass({{self}})`). Owns the `OperationExpr` assembly so\n\t* target packages only supply vocabulary: template, codec'd operands,\n\t* and return spec.\n\t*/\n\tfn(options) {\n\t\treturn new CfExpr(new OperationExpr({\n\t\t\tmethod: options.method,\n\t\t\tself: options.self.ast,\n\t\t\targs: options.args?.map((arg) => arg.ast),\n\t\t\treturns: options.returns,\n\t\t\tlowering: {\n\t\t\t\ttargetFamily: \"sql\",\n\t\t\t\ttemplate: options.template\n\t\t\t}\n\t\t}));\n\t},\n\tcolumnRef(qualifier, name) {\n\t\treturn new CfExpr(ColumnRef.of(qualifier, name));\n\t},\n\tallOf(exprs) {\n\t\treturn new CfExpr(AndExpr.of(exprs.map((expr) => expr.ast)));\n\t},\n\t/**\n\t* Opaque DB-side SQL expression (e.g. `current_schema()`) carried as a\n\t* `RawExpr`. For zero-operand catalog functions where a `'function'`\n\t* lowering template has nothing to substitute.\n\t*/\n\traw(sql, returns) {\n\t\treturn new CfExpr(new RawExpr({\n\t\t\tparts: [sql],\n\t\t\treturns\n\t\t}));\n\t},\n\texists(query) {\n\t\treturn new CfExpr(ExistsExpr.exists(query.build()));\n\t},\n\tnotExists(query) {\n\t\treturn new CfExpr(ExistsExpr.notExists(query.build()));\n\t}\n};\n/** Aliased table source for catalog queries (no namespace coordinate). */\nfunction cfTable(name, alias) {\n\treturn TableSource.named(name, alias);\n}\nvar CfExprSelectQuery = class CfExprSelectQuery {\n\tsrc;\n\tprojectionItems;\n\twhereExpr;\n\tjoinItems;\n\tlimitValue;\n\tconstructor(src, projectionItems, whereExpr, joinItems = [], limitValue = void 0) {\n\t\tthis.src = src;\n\t\tthis.projectionItems = projectionItems;\n\t\tthis.whereExpr = whereExpr;\n\t\tthis.joinItems = joinItems;\n\t\tthis.limitValue = limitValue;\n\t}\n\tfrom(source) {\n\t\treturn new CfExprSelectQuery(source, this.projectionItems, this.whereExpr, this.joinItems, this.limitValue);\n\t}\n\tjoin(source, on) {\n\t\treturn new CfExprSelectQuery(this.src, this.projectionItems, this.whereExpr, [...this.joinItems, JoinAst.inner(source, on.ast)], this.limitValue);\n\t}\n\tleftJoin(source, on) {\n\t\treturn new CfExprSelectQuery(this.src, this.projectionItems, this.whereExpr, [...this.joinItems, JoinAst.left(source, on.ast)], this.limitValue);\n\t}\n\tproject(alias, expr) {\n\t\treturn new CfExprSelectQuery(this.src, [...this.projectionItems, ProjectionItem.of(alias, expr.ast)], this.whereExpr, this.joinItems, this.limitValue);\n\t}\n\twhere(expr) {\n\t\treturn new CfExprSelectQuery(this.src, this.projectionItems, expr, this.joinItems, this.limitValue);\n\t}\n\tlimit(value) {\n\t\treturn new CfExprSelectQuery(this.src, this.projectionItems, this.whereExpr, this.joinItems, value);\n\t}\n\tbuild() {\n\t\tif (this.joinItems.length > 0 && this.src === void 0) throw structuredError(\"ORM.ARGUMENT_INVALID\", \"CfExprSelectQuery: cannot add a JOIN without a FROM clause\");\n\t\tconst base = this.src !== void 0 ? SelectAst.from(this.src).withProjection(this.projectionItems) : SelectAst.noFrom().withProjection(this.projectionItems);\n\t\tconst withJoins = this.joinItems.length > 0 ? base.withJoins(this.joinItems) : base;\n\t\tconst withWhere = this.whereExpr !== void 0 ? withJoins.withWhere(this.whereExpr.ast) : withJoins;\n\t\treturn this.limitValue !== void 0 ? withWhere.withLimit(this.limitValue) : withWhere;\n\t}\n};\nfunction exprSelect() {\n\treturn new CfExprSelectQuery(void 0, [], void 0);\n}\nvar CfInsertQuery = class CfInsertQuery {\n\tsrc;\n\tschema;\n\trowValues;\n\treturningItems;\n\tconstructor(src, schema, rowValues, returningItems = void 0) {\n\t\tthis.src = src;\n\t\tthis.schema = schema;\n\t\tthis.rowValues = rowValues;\n\t\tthis.returningItems = returningItems;\n\t}\n\treturning(...columns) {\n\t\treturn new CfInsertQuery(this.src, this.schema, this.rowValues, columns.map((col) => col.toProjectionItem()));\n\t}\n\tbuild() {\n\t\tconst row = buildInsertRow(this.schema, this.rowValues);\n\t\tconst ast = InsertAst.into(this.src).withRows([row]);\n\t\treturn this.returningItems ? ast.withReturning(this.returningItems) : ast;\n\t}\n};\nvar CfUpsertBuilder = class {\n\tsrc;\n\tschema;\n\trowValues;\n\tconstructor(src, schema, rowValues) {\n\t\tthis.src = src;\n\t\tthis.schema = schema;\n\t\tthis.rowValues = rowValues;\n\t}\n\tonConflict(...columns) {\n\t\treturn new CfConflictClause(this.src, this.schema, this.rowValues, [...columns]);\n\t}\n};\nvar CfConflictClause = class {\n\tsrc;\n\tschema;\n\trowValues;\n\tconflictCols;\n\tconstructor(src, schema, rowValues, conflictCols) {\n\t\tthis.src = src;\n\t\tthis.schema = schema;\n\t\tthis.rowValues = rowValues;\n\t\tthis.conflictCols = conflictCols;\n\t}\n\tdoUpdate(setOrCallback) {\n\t\tconst set = typeof setOrCallback === \"function\" ? setOrCallback(buildExcludedProxy(this.schema)) : setOrCallback;\n\t\treturn new CfUpsertQuery(this.src, this.schema, this.rowValues, this.conflictCols, set);\n\t}\n\tdoNothing() {\n\t\treturn new CfUpsertQuery(this.src, this.schema, this.rowValues, this.conflictCols, void 0);\n\t}\n};\nvar CfUpsertQuery = class {\n\tsrc;\n\tschema;\n\trowValues;\n\tconflictCols;\n\tupdateSet;\n\tconstructor(src, schema, rowValues, conflictCols, updateSet) {\n\t\tthis.src = src;\n\t\tthis.schema = schema;\n\t\tthis.rowValues = rowValues;\n\t\tthis.conflictCols = conflictCols;\n\t\tthis.updateSet = updateSet;\n\t}\n\tbuild() {\n\t\tconst row = buildInsertRow(this.schema, this.rowValues);\n\t\tconst conflictRefs = this.conflictCols.map((col) => col.toRef());\n\t\tconst onConflict = this.updateSet === void 0 ? InsertOnConflict.on(conflictRefs).doNothing() : InsertOnConflict.on(conflictRefs).doUpdateSet(buildSetMap(this.schema, this.updateSet));\n\t\treturn InsertAst.into(this.src).withRows([row]).withOnConflict(onConflict);\n\t}\n};\nvar CfUpdateQuery = class CfUpdateQuery {\n\tsrc;\n\tschema;\n\tsetValues;\n\twhereExpr;\n\treturningItems;\n\tconstructor(src, schema, setValues = void 0, whereExpr = void 0, returningItems = void 0) {\n\t\tthis.src = src;\n\t\tthis.schema = schema;\n\t\tthis.setValues = setValues;\n\t\tthis.whereExpr = whereExpr;\n\t\tthis.returningItems = returningItems;\n\t}\n\tset(values) {\n\t\treturn new CfUpdateQuery(this.src, this.schema, values, this.whereExpr, this.returningItems);\n\t}\n\twhere(expr) {\n\t\treturn new CfUpdateQuery(this.src, this.schema, this.setValues, expr, this.returningItems);\n\t}\n\treturning(...columns) {\n\t\treturn new CfUpdateQuery(this.src, this.schema, this.setValues, this.whereExpr, columns.map((col) => col.toProjectionItem()));\n\t}\n\tbuild() {\n\t\tconst set = buildSetMap(this.schema, this.setValues);\n\t\tconst base = UpdateAst.table(this.src).withSet(set);\n\t\tconst withWhere = this.whereExpr ? base.withWhere(this.whereExpr.ast) : base;\n\t\treturn this.returningItems ? withWhere.withReturning(this.returningItems) : withWhere;\n\t}\n};\nvar CfSelectQuery = class CfSelectQuery {\n\tsrc;\n\tprojectionItems;\n\twhereExpr;\n\torderByItems;\n\tconstructor(src, projectionItems, whereExpr = void 0, orderByItems = []) {\n\t\tthis.src = src;\n\t\tthis.projectionItems = projectionItems;\n\t\tthis.whereExpr = whereExpr;\n\t\tthis.orderByItems = orderByItems;\n\t}\n\twhere(expr) {\n\t\treturn new CfSelectQuery(this.src, this.projectionItems, expr, this.orderByItems);\n\t}\n\torderBy(column, dir = \"asc\") {\n\t\tconst item = dir === \"asc\" ? OrderByItem.asc(column.toRef()) : OrderByItem.desc(column.toRef());\n\t\treturn new CfSelectQuery(this.src, this.projectionItems, this.whereExpr, [...this.orderByItems, item]);\n\t}\n\tbuild() {\n\t\tconst base = SelectAst.from(this.src).withProjection(this.projectionItems);\n\t\tconst withWhere = this.whereExpr ? base.withWhere(this.whereExpr.ast) : base;\n\t\treturn this.orderByItems.length > 0 ? withWhere.withOrderBy(this.orderByItems) : withWhere;\n\t}\n};\n/**\n* Declare a control-plane table once, binding column codecs at declaration time.\n* Returns a `TableHandle` whose column properties compose expressions directly\n* without per-call-site codec or column-name threading.\n*\n* ```ts\n* const marker = pgTable({ name: 'marker', schema: 'prisma_contract' }, {\n* space: text(),\n* core_hash: text(),\n* updated_at: timestamptz(),\n* });\n*\n* const query = marker.update()\n* .set({ core_hash: newHash, updated_at: NOW })\n* .where(marker.space.eq(space).and(marker.core_hash.eq(expectedFrom)))\n* .returning(marker.space)\n* .build();\n* ```\n*/\nfunction table(source, schema) {\n\tconst proxies = {};\n\tfor (const [col, desc] of Object.entries(schema)) proxies[col] = makeColumnProxy(source.alias ?? source.name, col, desc);\n\treturn blindCast({\n\t\t...proxies,\n\t\tsource,\n\t\tinsert: (row) => new CfInsertQuery(source, schema, row),\n\t\tupsert: (row) => new CfUpsertBuilder(source, schema, row),\n\t\tupdate: () => new CfUpdateQuery(source, schema),\n\t\tselect: (...cols) => new CfSelectQuery(source, cols.map((col) => col.toProjectionItem()))\n\t});\n}\nfunction makeColumnProxy(tableName, columnName, desc) {\n\tconst ref = ColumnRef.of(tableName, columnName);\n\treturn {\n\t\tcodecId: desc.codecId,\n\t\tnullable: desc.nullable,\n\t\tcolumnName,\n\t\ttableName,\n\t\teq: (value) => value === null ? new CfExpr(NullCheckExpr.isNull(ref)) : new CfExpr(BinaryExpr.eq(ref, toSetExpression(value, desc))),\n\t\tneq: (value) => value === null ? new CfExpr(NullCheckExpr.isNotNull(ref)) : new CfExpr(BinaryExpr.neq(ref, toSetExpression(value, desc))),\n\t\tisNull: () => new CfExpr(NullCheckExpr.isNull(ref)),\n\t\tisNotNull: () => new CfExpr(NullCheckExpr.isNotNull(ref)),\n\t\ttoRef: () => ref,\n\t\ttoProjectionItem: (alias = columnName) => ProjectionItem.of(alias, ref, { codecId: desc.codecId })\n\t};\n}\nfunction buildExcludedProxy(schema) {\n\treturn blindCast(Object.fromEntries(Object.keys(schema).map((col) => [col, ColumnRef.of(\"excluded\", col)])));\n}\nfunction isExpressionSource(value) {\n\treturn typeof value === \"object\" && value !== null && \"toExpr\" in value && typeof value.toExpr === \"function\";\n}\nfunction toInsertValue(value, desc) {\n\tif (isExpressionSource(value)) {\n\t\tconst expr = value.toExpr();\n\t\tif (expr.kind === \"column-ref\" || expr.kind === \"param-ref\" || expr.kind === \"prepared-param-ref\" || expr.kind === \"raw-expr\") return expr;\n\t}\n\treturn ParamRef.of(value, { codec: { codecId: desc.codecId } });\n}\nfunction toSetExpression(value, desc) {\n\tif (isExpressionSource(value)) return value.toExpr();\n\treturn ParamRef.of(value, { codec: { codecId: desc.codecId } });\n}\nfunction buildInsertRow(schema, values) {\n\tconst row = {};\n\tconst rawValues = blindCast(values);\n\tfor (const [col, desc] of Object.entries(schema)) row[col] = toInsertValue(rawValues[col], desc);\n\treturn row;\n}\nfunction buildSetMap(schema, values) {\n\tif (values === void 0) return {};\n\tconst set = {};\n\tconst rawSchema = blindCast(schema);\n\tconst rawValues = blindCast(values);\n\tfor (const [col, value] of Object.entries(rawValues)) {\n\t\tconst desc = rawSchema[col];\n\t\tif (desc !== void 0) set[col] = toSetExpression(value, desc);\n\t}\n\treturn set;\n}\n//#endregion\nexport { CfConflictClause, CfExpr, CfExprSelectQuery, CfInsertQuery, CfSelectQuery, CfUpdateQuery, CfUpsertBuilder, CfUpsertQuery, cfExpr, cfTable, checkExpression, col, exprSelect, fn, foreignKey, lit, primaryKey, table, unique };\n\n//# sourceMappingURL=contract-free.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"relational-core__contract-free.mjs","names":[],"sources":["../../../../2-sql/4-lanes/relational-core/dist/exports/contract-free.mjs"],"sourcesContent":["import { C as LiteralExpr, D as OrExpr, E as OperationExpr, I as TableSource, L as UpdateAst, M as RawExpr, O as OrderByItem, P as SelectAst, T as NullCheckExpr, _ as InsertAst, g as IdentifierRef, j as ProjectionItem, k as ParamRef, n as AndExpr, o as ColumnRef, p as ExistsExpr, r as BinaryExpr, t as AggregateExpr, v as InsertOnConflict, y as JoinAst } from \"../types-BAhLyUFj.mjs\";\nimport { a as ForeignKeyConstraint, c as PrimaryKeyConstraint, l as UniqueConstraint, n as DdlColumn, o as FunctionColumnDefault, s as LiteralColumnDefault, t as CheckExpressionConstraint } from \"../ddl-types-DOgOmDOh.mjs\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { blindCast } from \"@internal/utils/casts\";\n//#region src/contract-free/column.ts\nfunction lit(value) {\n\treturn new LiteralColumnDefault(value);\n}\nfunction fn(expression) {\n\treturn new FunctionColumnDefault(expression);\n}\nfunction col(name, type, options) {\n\treturn new DdlColumn({\n\t\tname,\n\t\ttype,\n\t\t...options\n\t});\n}\nfunction primaryKey(columns, options) {\n\treturn new PrimaryKeyConstraint({\n\t\tcolumns,\n\t\t...options\n\t});\n}\nfunction foreignKey(columns, refTable, refColumns, options) {\n\treturn new ForeignKeyConstraint({\n\t\tcolumns,\n\t\trefTable,\n\t\trefColumns,\n\t\t...options\n\t});\n}\nfunction unique(columns, options) {\n\treturn new UniqueConstraint({\n\t\tcolumns,\n\t\t...options\n\t});\n}\nfunction checkExpression(name, expression) {\n\treturn new CheckExpressionConstraint({\n\t\tname,\n\t\texpression\n\t});\n}\n//#endregion\n//#region src/contract-free/table.ts\n/**\n* A composable WHERE / ON expression. Wraps an `AnyExpression` and exposes\n* fluent boolean combinators, mirroring the spirit of `sql-builder`'s\n* `Expression` interface without the contract-bound type machinery.\n*/\nvar CfExpr = class CfExpr {\n\tast;\n\tconstructor(ast) {\n\t\tthis.ast = ast;\n\t}\n\tand(other) {\n\t\treturn new CfExpr(AndExpr.of([this.ast, other.ast]));\n\t}\n\tor(other) {\n\t\treturn new CfExpr(OrExpr.of([this.ast, other.ast]));\n\t}\n\tnot() {\n\t\treturn new CfExpr(this.ast.not());\n\t}\n\tisNull() {\n\t\treturn new CfExpr(NullCheckExpr.isNull(this.ast));\n\t}\n\tisNotNull() {\n\t\treturn new CfExpr(NullCheckExpr.isNotNull(this.ast));\n\t}\n\teqLit(value) {\n\t\treturn new CfExpr(BinaryExpr.eq(this.ast, LiteralExpr.of(value)));\n\t}\n\tgtLit(value) {\n\t\treturn new CfExpr(BinaryExpr.gt(this.ast, LiteralExpr.of(value)));\n\t}\n\teqParam(value, codecId) {\n\t\treturn new CfExpr(BinaryExpr.eq(this.ast, ParamRef.of(value, { codec: { codecId } })));\n\t}\n\teqExpr(other) {\n\t\treturn new CfExpr(BinaryExpr.eq(this.ast, other.ast));\n\t}\n};\nconst cfExpr = {\n\tcountStar() {\n\t\treturn new CfExpr(AggregateExpr.count());\n\t},\n\tlit(value) {\n\t\treturn new CfExpr(LiteralExpr.of(value));\n\t},\n\tidentifierRef(name) {\n\t\treturn new CfExpr(IdentifierRef.of(name));\n\t},\n\tparam(value, codecId) {\n\t\treturn new CfExpr(ParamRef.of(value, { codec: { codecId } }));\n\t},\n\t/**\n\t* Catalog function call lowered via a `'function'`-strategy template\n\t* (e.g. `to_regclass({{self}})`). Owns the `OperationExpr` assembly so\n\t* target packages only supply vocabulary: template, codec'd operands,\n\t* and return spec.\n\t*/\n\tfn(options) {\n\t\treturn new CfExpr(new OperationExpr({\n\t\t\tmethod: options.method,\n\t\t\tself: options.self.ast,\n\t\t\targs: options.args?.map((arg) => arg.ast),\n\t\t\treturns: options.returns,\n\t\t\tlowering: {\n\t\t\t\ttargetFamily: \"sql\",\n\t\t\t\ttemplate: options.template\n\t\t\t}\n\t\t}));\n\t},\n\tcolumnRef(qualifier, name) {\n\t\treturn new CfExpr(ColumnRef.of(qualifier, name));\n\t},\n\tallOf(exprs) {\n\t\treturn new CfExpr(AndExpr.of(exprs.map((expr) => expr.ast)));\n\t},\n\t/**\n\t* Opaque DB-side SQL expression (e.g. `current_schema()`) carried as a\n\t* `RawExpr`. For zero-operand catalog functions where a `'function'`\n\t* lowering template has nothing to substitute.\n\t*/\n\traw(sql, returns) {\n\t\treturn new CfExpr(new RawExpr({\n\t\t\tparts: [sql],\n\t\t\treturns\n\t\t}));\n\t},\n\texists(query) {\n\t\treturn new CfExpr(ExistsExpr.exists(query.build()));\n\t},\n\tnotExists(query) {\n\t\treturn new CfExpr(ExistsExpr.notExists(query.build()));\n\t}\n};\n/** Aliased table source for catalog queries (no namespace coordinate). */\nfunction cfTable(name, alias) {\n\treturn TableSource.named(name, alias);\n}\nvar CfExprSelectQuery = class CfExprSelectQuery {\n\tsrc;\n\tprojectionItems;\n\twhereExpr;\n\tjoinItems;\n\tlimitValue;\n\tconstructor(src, projectionItems, whereExpr, joinItems = [], limitValue = void 0) {\n\t\tthis.src = src;\n\t\tthis.projectionItems = projectionItems;\n\t\tthis.whereExpr = whereExpr;\n\t\tthis.joinItems = joinItems;\n\t\tthis.limitValue = limitValue;\n\t}\n\tfrom(source) {\n\t\treturn new CfExprSelectQuery(source, this.projectionItems, this.whereExpr, this.joinItems, this.limitValue);\n\t}\n\tjoin(source, on) {\n\t\treturn new CfExprSelectQuery(this.src, this.projectionItems, this.whereExpr, [...this.joinItems, JoinAst.inner(source, on.ast)], this.limitValue);\n\t}\n\tleftJoin(source, on) {\n\t\treturn new CfExprSelectQuery(this.src, this.projectionItems, this.whereExpr, [...this.joinItems, JoinAst.left(source, on.ast)], this.limitValue);\n\t}\n\tproject(alias, expr) {\n\t\treturn new CfExprSelectQuery(this.src, [...this.projectionItems, ProjectionItem.of(alias, expr.ast)], this.whereExpr, this.joinItems, this.limitValue);\n\t}\n\twhere(expr) {\n\t\treturn new CfExprSelectQuery(this.src, this.projectionItems, expr, this.joinItems, this.limitValue);\n\t}\n\tlimit(value) {\n\t\treturn new CfExprSelectQuery(this.src, this.projectionItems, this.whereExpr, this.joinItems, value);\n\t}\n\tbuild() {\n\t\tif (this.joinItems.length > 0 && this.src === void 0) throw structuredError(\"ORM.ARGUMENT_INVALID\", \"CfExprSelectQuery: cannot add a JOIN without a FROM clause\");\n\t\tconst base = this.src !== void 0 ? SelectAst.from(this.src).withProjection(this.projectionItems) : SelectAst.noFrom().withProjection(this.projectionItems);\n\t\tconst withJoins = this.joinItems.length > 0 ? base.withJoins(this.joinItems) : base;\n\t\tconst withWhere = this.whereExpr !== void 0 ? withJoins.withWhere(this.whereExpr.ast) : withJoins;\n\t\treturn this.limitValue !== void 0 ? withWhere.withLimit(this.limitValue) : withWhere;\n\t}\n};\nfunction exprSelect() {\n\treturn new CfExprSelectQuery(void 0, [], void 0);\n}\nvar CfInsertQuery = class CfInsertQuery {\n\tsrc;\n\tschema;\n\trowValues;\n\treturningItems;\n\tconstructor(src, schema, rowValues, returningItems = void 0) {\n\t\tthis.src = src;\n\t\tthis.schema = schema;\n\t\tthis.rowValues = rowValues;\n\t\tthis.returningItems = returningItems;\n\t}\n\treturning(...columns) {\n\t\treturn new CfInsertQuery(this.src, this.schema, this.rowValues, columns.map((col) => col.toProjectionItem()));\n\t}\n\tbuild() {\n\t\tconst row = buildInsertRow(this.schema, this.rowValues);\n\t\tconst ast = InsertAst.into(this.src).withRows([row]);\n\t\treturn this.returningItems ? ast.withReturning(this.returningItems) : ast;\n\t}\n};\nvar CfUpsertBuilder = class {\n\tsrc;\n\tschema;\n\trowValues;\n\tconstructor(src, schema, rowValues) {\n\t\tthis.src = src;\n\t\tthis.schema = schema;\n\t\tthis.rowValues = rowValues;\n\t}\n\tonConflict(...columns) {\n\t\treturn new CfConflictClause(this.src, this.schema, this.rowValues, [...columns]);\n\t}\n};\nvar CfConflictClause = class {\n\tsrc;\n\tschema;\n\trowValues;\n\tconflictCols;\n\tconstructor(src, schema, rowValues, conflictCols) {\n\t\tthis.src = src;\n\t\tthis.schema = schema;\n\t\tthis.rowValues = rowValues;\n\t\tthis.conflictCols = conflictCols;\n\t}\n\tdoUpdate(setOrCallback) {\n\t\tconst set = typeof setOrCallback === \"function\" ? setOrCallback(buildExcludedProxy(this.schema)) : setOrCallback;\n\t\treturn new CfUpsertQuery(this.src, this.schema, this.rowValues, this.conflictCols, set);\n\t}\n\tdoNothing() {\n\t\treturn new CfUpsertQuery(this.src, this.schema, this.rowValues, this.conflictCols, void 0);\n\t}\n};\nvar CfUpsertQuery = class {\n\tsrc;\n\tschema;\n\trowValues;\n\tconflictCols;\n\tupdateSet;\n\tconstructor(src, schema, rowValues, conflictCols, updateSet) {\n\t\tthis.src = src;\n\t\tthis.schema = schema;\n\t\tthis.rowValues = rowValues;\n\t\tthis.conflictCols = conflictCols;\n\t\tthis.updateSet = updateSet;\n\t}\n\tbuild() {\n\t\tconst row = buildInsertRow(this.schema, this.rowValues);\n\t\tconst conflictRefs = this.conflictCols.map((col) => col.toRef());\n\t\tconst onConflict = this.updateSet === void 0 ? InsertOnConflict.on(conflictRefs).doNothing() : InsertOnConflict.on(conflictRefs).doUpdateSet(buildSetMap(this.schema, this.updateSet));\n\t\treturn InsertAst.into(this.src).withRows([row]).withOnConflict(onConflict);\n\t}\n};\nvar CfUpdateQuery = class CfUpdateQuery {\n\tsrc;\n\tschema;\n\tsetValues;\n\twhereExpr;\n\treturningItems;\n\tconstructor(src, schema, setValues = void 0, whereExpr = void 0, returningItems = void 0) {\n\t\tthis.src = src;\n\t\tthis.schema = schema;\n\t\tthis.setValues = setValues;\n\t\tthis.whereExpr = whereExpr;\n\t\tthis.returningItems = returningItems;\n\t}\n\tset(values) {\n\t\treturn new CfUpdateQuery(this.src, this.schema, values, this.whereExpr, this.returningItems);\n\t}\n\twhere(expr) {\n\t\treturn new CfUpdateQuery(this.src, this.schema, this.setValues, expr, this.returningItems);\n\t}\n\treturning(...columns) {\n\t\treturn new CfUpdateQuery(this.src, this.schema, this.setValues, this.whereExpr, columns.map((col) => col.toProjectionItem()));\n\t}\n\tbuild() {\n\t\tconst set = buildSetMap(this.schema, this.setValues);\n\t\tconst base = UpdateAst.table(this.src).withSet(set);\n\t\tconst withWhere = this.whereExpr ? base.withWhere(this.whereExpr.ast) : base;\n\t\treturn this.returningItems ? withWhere.withReturning(this.returningItems) : withWhere;\n\t}\n};\nvar CfSelectQuery = class CfSelectQuery {\n\tsrc;\n\tprojectionItems;\n\twhereExpr;\n\torderByItems;\n\tconstructor(src, projectionItems, whereExpr = void 0, orderByItems = []) {\n\t\tthis.src = src;\n\t\tthis.projectionItems = projectionItems;\n\t\tthis.whereExpr = whereExpr;\n\t\tthis.orderByItems = orderByItems;\n\t}\n\twhere(expr) {\n\t\treturn new CfSelectQuery(this.src, this.projectionItems, expr, this.orderByItems);\n\t}\n\torderBy(column, dir = \"asc\") {\n\t\tconst item = dir === \"asc\" ? OrderByItem.asc(column.toRef()) : OrderByItem.desc(column.toRef());\n\t\treturn new CfSelectQuery(this.src, this.projectionItems, this.whereExpr, [...this.orderByItems, item]);\n\t}\n\tbuild() {\n\t\tconst base = SelectAst.from(this.src).withProjection(this.projectionItems);\n\t\tconst withWhere = this.whereExpr ? base.withWhere(this.whereExpr.ast) : base;\n\t\treturn this.orderByItems.length > 0 ? withWhere.withOrderBy(this.orderByItems) : withWhere;\n\t}\n};\n/**\n* Declare a control-plane table once, binding column codecs at declaration time.\n* Returns a `TableHandle` whose column properties compose expressions directly\n* without per-call-site codec or column-name threading.\n*\n* ```ts\n* const marker = pgTable({ name: 'marker', schema: 'prisma_contract' }, {\n* space: text(),\n* core_hash: text(),\n* updated_at: timestamptz(),\n* });\n*\n* const query = marker.update()\n* .set({ core_hash: newHash, updated_at: NOW })\n* .where(marker.space.eq(space).and(marker.core_hash.eq(expectedFrom)))\n* .returning(marker.space)\n* .build();\n* ```\n*/\nfunction table(source, schema) {\n\tconst proxies = {};\n\tfor (const [col, desc] of Object.entries(schema)) proxies[col] = makeColumnProxy(source.alias ?? source.name, col, desc);\n\treturn blindCast({\n\t\t...proxies,\n\t\tsource,\n\t\tinsert: (row) => new CfInsertQuery(source, schema, row),\n\t\tupsert: (row) => new CfUpsertBuilder(source, schema, row),\n\t\tupdate: () => new CfUpdateQuery(source, schema),\n\t\tselect: (...cols) => new CfSelectQuery(source, cols.map((col) => col.toProjectionItem()))\n\t});\n}\nfunction makeColumnProxy(tableName, columnName, desc) {\n\tconst ref = ColumnRef.of(tableName, columnName);\n\treturn {\n\t\tcodecId: desc.codecId,\n\t\tnullable: desc.nullable,\n\t\tcolumnName,\n\t\ttableName,\n\t\teq: (value) => value === null ? new CfExpr(NullCheckExpr.isNull(ref)) : new CfExpr(BinaryExpr.eq(ref, toSetExpression(value, desc))),\n\t\tneq: (value) => value === null ? new CfExpr(NullCheckExpr.isNotNull(ref)) : new CfExpr(BinaryExpr.neq(ref, toSetExpression(value, desc))),\n\t\tisNull: () => new CfExpr(NullCheckExpr.isNull(ref)),\n\t\tisNotNull: () => new CfExpr(NullCheckExpr.isNotNull(ref)),\n\t\ttoRef: () => ref,\n\t\ttoProjectionItem: (alias = columnName) => ProjectionItem.of(alias, ref, { codecId: desc.codecId })\n\t};\n}\nfunction buildExcludedProxy(schema) {\n\treturn blindCast(Object.fromEntries(Object.keys(schema).map((col) => [col, ColumnRef.of(\"excluded\", col)])));\n}\nfunction isExpressionSource(value) {\n\treturn typeof value === \"object\" && value !== null && \"toExpr\" in value && typeof value.toExpr === \"function\";\n}\nfunction toInsertValue(value, desc) {\n\tif (isExpressionSource(value)) {\n\t\tconst expr = value.toExpr();\n\t\tif (expr.kind === \"column-ref\" || expr.kind === \"param-ref\" || expr.kind === \"prepared-param-ref\" || expr.kind === \"raw-expr\") return expr;\n\t}\n\treturn ParamRef.of(value, { codec: { codecId: desc.codecId } });\n}\nfunction toSetExpression(value, desc) {\n\tif (isExpressionSource(value)) return value.toExpr();\n\treturn ParamRef.of(value, { codec: { codecId: desc.codecId } });\n}\nfunction buildInsertRow(schema, values) {\n\tconst row = {};\n\tconst rawValues = blindCast(values);\n\tfor (const [col, desc] of Object.entries(schema)) row[col] = toInsertValue(rawValues[col], desc);\n\treturn row;\n}\nfunction buildSetMap(schema, values) {\n\tif (values === void 0) return {};\n\tconst set = {};\n\tconst rawSchema = blindCast(schema);\n\tconst rawValues = blindCast(values);\n\tfor (const [col, value] of Object.entries(rawValues)) {\n\t\tconst desc = rawSchema[col];\n\t\tif (desc !== void 0) set[col] = toSetExpression(value, desc);\n\t}\n\treturn set;\n}\n//#endregion\nexport { CfConflictClause, CfExpr, CfExprSelectQuery, CfInsertQuery, CfSelectQuery, CfUpdateQuery, CfUpsertBuilder, CfUpsertQuery, cfExpr, cfTable, checkExpression, col, exprSelect, fn, foreignKey, lit, primaryKey, table, unique };\n\n//# sourceMappingURL=contract-free.mjs.map"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { a as param, i as isExpression, n as codecOf, o as toExpr, r as createRawSql, t as buildOperation } from "./expression-DqrE3myO.mjs";
1
+ import { a as param, i as isExpression, n as codecOf, o as toExpr, r as createRawSql, t as buildOperation } from "./expression-CrGD_4do.mjs";
2
2
  export { buildOperation, codecOf, createRawSql, isExpression, param, toExpr };
package/dist/runtime.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import { t as createSqlOperationRegistry } from "./dist-C_q1_QR9.mjs";
2
- import { A as PreparedParamRef, H as isQueryAst } from "./types-ZNKYVjLr-DzjvSHKB.mjs";
2
+ import { A as PreparedParamRef, H as isQueryAst } from "./types-BAhLyUFj-3TARSz8c.mjs";
3
3
  import { t as collectOrderedParamRefs } from "./util-DQQgv2j1-D6INZaRG.mjs";
4
4
  import { t as createSqlParamRefMutator } from "./middleware-CMr4CHNz-DHIUdxlm.mjs";
5
- import { t as buildSqlAggregateDescriptorRegistry } from "./aggregate-descriptor-registry-DzThdoju.mjs";
5
+ import { t as buildSqlAggregateDescriptorRegistry } from "./aggregate-descriptor-registry-BaMSvS82.mjs";
6
6
  import { t as buildCodecDescriptorRegistry } from "./codec-descriptor-registry-ECZ4ohtG.mjs";
7
7
  import { i as runPreparedQuery, n as preparedStatementQuery, r as runPreparedExecute, t as preparedStatementExecute } from "./prepared-query-BJr50wPm-ChoqfJbX.mjs";
8
8
  import { isStructuredError } from "@prisma/orm-framework/utils/structured-error";
@@ -1,7 +1,7 @@
1
1
  import { structuredError } from "@prisma/orm-framework/utils/structured-error";
2
2
  import { InternalError } from "@prisma/orm-framework/utils/internal-error";
3
3
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
4
- //#region ../../../2-sql/4-lanes/relational-core/dist/types-ZNKYVjLr.mjs
4
+ //#region ../../../2-sql/4-lanes/relational-core/dist/types-BAhLyUFj.mjs
5
5
  function isJsonArray(value) {
6
6
  return Array.isArray(value);
7
7
  }
@@ -1012,6 +1012,9 @@ var ProjectionItem = class ProjectionItem extends AstNode {
1012
1012
  return new ProjectionItem(this.alias, this.expr, codec);
1013
1013
  }
1014
1014
  };
1015
+ function checkLimitOffset(argument, value) {
1016
+ if (typeof value === "number" && !(Number.isSafeInteger(value) && value >= 0)) throw structuredError("ORM.ARGUMENT_INVALID", `${argument} must be an integer from 0 to ${Number.MAX_SAFE_INTEGER}, got ${String(value)}`, { meta: { argument } });
1017
+ }
1015
1018
  var SelectAst = class SelectAst extends QueryAst {
1016
1019
  kind = "select";
1017
1020
  from;
@@ -1028,6 +1031,8 @@ var SelectAst = class SelectAst extends QueryAst {
1028
1031
  selectAllIntent;
1029
1032
  constructor(options) {
1030
1033
  super();
1034
+ checkLimitOffset("limit", options.limit);
1035
+ checkLimitOffset("offset", options.offset);
1031
1036
  this.from = options.from;
1032
1037
  this.joins = options.joins && options.joins.length > 0 ? frozenArrayCopy(options.joins) : void 0;
1033
1038
  this.projection = frozenArrayCopy(options.projection);
@@ -1505,4 +1510,4 @@ function isWhereExpr(value) {
1505
1510
  //#endregion
1506
1511
  export { PreparedParamRef as A, frozenCodecRef as B, LiteralExpr as C, OrExpr as D, OperationExpr as E, SubqueryExpr as F, whereExprKinds as G, isQueryAst as H, TableSource as I, UpdateAst as L, RawExpr as M, RawQueryAst as N, OrderByItem as O, SelectAst as P, WindowFuncExpr as R, ListExpression as S, NullCheckExpr as T, isWhereExpr as U, isAggregateFn as V, queryAstKinds as W, InsertAst as _, CastExpr as a, JsonArrayAggExpr as b, DeleteAst as c, DoUpdateSetConflictAction as d, EqColJoinOn as f, IdentifierRef as g, FunctionSource as h, CaseExpr as i, ProjectionItem as j, ParamRef as k, DerivedTableSource as l, FunctionCallExpr as m, AndExpr as n, ColumnRef as o, ExistsExpr as p, BinaryExpr as r, DefaultValueExpr as s, AggregateExpr as t, DoNothingConflictAction as u, InsertOnConflict as v, NotExpr as w, JsonObjectExpr as x, JoinAst as y, aggregateFnNames as z };
1507
1512
 
1508
- //# sourceMappingURL=types-ZNKYVjLr-DzjvSHKB.mjs.map
1513
+ //# sourceMappingURL=types-BAhLyUFj-3TARSz8c.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-BAhLyUFj-3TARSz8c.mjs","names":["#asAnyExpression","#aliasOptions"],"sources":["../../../../2-sql/4-lanes/relational-core/dist/types-BAhLyUFj.mjs"],"sourcesContent":["import { ifDefined } from \"@internal/utils/defined\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { InternalError } from \"@internal/utils/internal-error\";\n//#region src/ast/codec-types.ts\nfunction isJsonArray(value) {\n\treturn Array.isArray(value);\n}\nfunction freezeJsonValue(value) {\n\tif (value === null || typeof value !== \"object\") return;\n\tif (isJsonArray(value)) for (const item of value) freezeJsonValue(item);\n\telse for (const item of Object.values(value)) freezeJsonValue(item);\n\tObject.freeze(value);\n}\nfunction frozenCodecRef(codec) {\n\tconst typeParams = codec.typeParams === void 0 ? void 0 : structuredClone(codec.typeParams);\n\tif (typeParams !== void 0) freezeJsonValue(typeParams);\n\treturn Object.freeze({\n\t\tcodecId: codec.codecId,\n\t\t...ifDefined(\"typeParams\", typeParams),\n\t\t...ifDefined(\"many\", codec.many)\n\t});\n}\n//#endregion\n//#region src/ast/types.ts\n/**\n* The closed SQL aggregate alphabet: every function name an {@link AggregateExpr} can carry, and so the set renderers are exhaustive over. Aggregate operation names are an open namespace; an operation outside the alphabet reaches SQL only through a descriptor's lowering hook, which builds its expression from existing nodes.\n*/\nconst aggregateFnNames = /* @__PURE__ */ new Set([\n\t\"count\",\n\t\"sum\",\n\t\"avg\",\n\t\"min\",\n\t\"max\"\n]);\n/** Whether `name` is in the closed SQL aggregate alphabet, and so lowers to a plain {@link AggregateExpr} without a descriptor-supplied hook. */\nfunction isAggregateFn(name) {\n\treturn aggregateFnNames.has(name);\n}\nconst toAnyExpressionVisitor = {\n\tcolumnRef: (expr) => expr,\n\tidentifierRef: (expr) => expr,\n\tsubquery: (expr) => expr,\n\toperation: (expr) => expr,\n\taggregate: (expr) => expr,\n\twindowFunc: (expr) => expr,\n\tfunctionCall: (expr) => expr,\n\tcast: (expr) => expr,\n\tcase: (expr) => expr,\n\tjsonObject: (expr) => expr,\n\tjsonArrayAgg: (expr) => expr,\n\tbinary: (expr) => expr,\n\tand: (expr) => expr,\n\tor: (expr) => expr,\n\texists: (expr) => expr,\n\tnullCheck: (expr) => expr,\n\tnot: (expr) => expr,\n\tliteral: (expr) => expr,\n\tparam: (expr) => expr,\n\tpreparedParam: (expr) => expr,\n\tlist: (expr) => expr,\n\trawExpr: (expr) => expr\n};\nfunction frozenArrayCopy(values) {\n\treturn Object.freeze([...values]);\n}\nfunction frozenOptionalRecordCopy(value) {\n\treturn value === void 0 ? void 0 : Object.freeze({ ...value });\n}\nfunction frozenRecordCopy(record) {\n\treturn Object.freeze({ ...record });\n}\nfunction freezeRows(rows) {\n\treturn Object.freeze(rows.map((row) => Object.freeze({ ...row })));\n}\nfunction combineAll(folder, thunks) {\n\tlet result = folder.empty;\n\tfor (const thunk of thunks) {\n\t\tif (folder.isAbsorbing?.(result)) return result;\n\t\tresult = folder.combine(result, thunk());\n\t}\n\treturn result;\n}\nfunction rewriteComparable(value, rewriter) {\n\tswitch (value.kind) {\n\t\tcase \"param-ref\": return rewriter.paramRef ? rewriter.paramRef(value) : value;\n\t\tcase \"prepared-param-ref\": return rewriter.preparedParamRef ? rewriter.preparedParamRef(value) : value;\n\t\tcase \"literal\": return rewriter.literal ? rewriter.literal(value) : value;\n\t\tcase \"list\":\n\t\t\tif (rewriter.list) return rewriter.list(value);\n\t\t\treturn value.rewrite(rewriter);\n\t\tdefault: return value.rewrite(rewriter);\n\t}\n}\nfunction foldComparable(value, folder) {\n\tswitch (value.kind) {\n\t\tcase \"param-ref\": return folder.paramRef ? folder.paramRef(value) : folder.empty;\n\t\tcase \"prepared-param-ref\": return folder.preparedParamRef ? folder.preparedParamRef(value) : folder.empty;\n\t\tcase \"literal\": return folder.literal ? folder.literal(value) : folder.empty;\n\t\tcase \"list\": return value.fold(folder);\n\t\tdefault: return value.fold(folder);\n\t}\n}\nfunction collectColumnRefsWith(node) {\n\treturn node.fold({\n\t\tempty: [],\n\t\tcombine: (a, b) => [...a, ...b],\n\t\tcolumnRef: (columnRef) => [columnRef],\n\t\tselect: (ast) => ast.collectColumnRefs()\n\t});\n}\nfunction collectParamRefsWith(node) {\n\treturn node.fold({\n\t\tempty: [],\n\t\tcombine: (a, b) => [...a, ...b],\n\t\tparamRef: (paramRef) => [paramRef],\n\t\tpreparedParamRef: (paramRef) => [paramRef],\n\t\tselect: (ast) => ast.collectParamRefs()\n\t});\n}\nfunction rewriteTableSource(table, rewriter) {\n\treturn rewriter.tableSource ? rewriter.tableSource(table) : table;\n}\nfunction rewriteProjectionItem(item, rewriter) {\n\tconst rewrittenExpr = item.expr.kind === \"literal\" ? rewriter.literal ? rewriter.literal(item.expr) : item.expr : item.expr.rewrite(rewriter);\n\treturn new ProjectionItem(item.alias, rewrittenExpr, item.codec);\n}\nfunction rewriteInsertValue(value, rewriter) {\n\tswitch (value.kind) {\n\t\tcase \"param-ref\": return rewriter.paramRef ? rewriteParamRefForInsert(value, rewriter) : value;\n\t\tcase \"prepared-param-ref\": return rewriter.preparedParamRef ? rewriter.preparedParamRef(value) : value;\n\t\tcase \"column-ref\": return rewriter.columnRef ? rewriteColumnRefForInsert(value, rewriter) : value;\n\t\tcase \"default-value\": return value;\n\t\tcase \"raw-expr\": return value;\n\t}\n}\nfunction rewriteParamRefForInsert(value, rewriter) {\n\tconst rewritten = rewriter.paramRef ? rewriter.paramRef(value) : value;\n\treturn rewritten.kind === \"param-ref\" ? rewritten : value;\n}\nfunction rewriteColumnRefForInsert(value, rewriter) {\n\tconst rewritten = rewriter.columnRef ? rewriter.columnRef(value) : value;\n\treturn rewritten.kind === \"column-ref\" ? rewritten : value;\n}\nfunction rewriteInsertRow(row, rewriter) {\n\tconst result = {};\n\tfor (const [key, value] of Object.entries(row)) result[key] = rewriteInsertValue(value, rewriter);\n\treturn result;\n}\nfunction rewriteUpdateSet(set, rewriter) {\n\tconst result = {};\n\tfor (const [key, value] of Object.entries(set)) result[key] = value.rewrite(rewriter);\n\treturn result;\n}\nfunction rewriteLimitOffset(value, rewriter) {\n\tif (value === void 0 || typeof value === \"number\") return value;\n\treturn value.rewrite(rewriter);\n}\nfunction rewriteOnConflict(onConflict, rewriter) {\n\tconst columns = onConflict.columns.map((columnRef) => {\n\t\tconst rewritten = rewriter.columnRef ? rewriter.columnRef(columnRef) : columnRef;\n\t\treturn rewritten.kind === \"column-ref\" ? rewritten : columnRef;\n\t});\n\tif (onConflict.action.kind === \"do-nothing\") return new InsertOnConflict(columns, new DoNothingConflictAction());\n\treturn new InsertOnConflict(columns, new DoUpdateSetConflictAction(rewriteUpdateSet(onConflict.action.set, rewriter)));\n}\nvar AstNode = class {\n\tfreeze() {\n\t\tObject.freeze(this);\n\t}\n};\nvar QueryAst = class extends AstNode {};\nvar FromSource = class extends AstNode {};\nvar Expression = class extends AstNode {\n\tcollectColumnRefs() {\n\t\treturn collectColumnRefsWith(this);\n\t}\n\tcollectParamRefs() {\n\t\treturn collectParamRefsWith(this);\n\t}\n\tbaseColumnRef() {\n\t\tthrow new InternalError(`${this.constructor.name} does not expose a base column reference`);\n\t}\n\t#asAnyExpression() {\n\t\treturn this.accept(toAnyExpressionVisitor);\n\t}\n\ttoExpr() {\n\t\treturn this.#asAnyExpression();\n\t}\n\tnot() {\n\t\treturn new NotExpr(this.#asAnyExpression());\n\t}\n};\nvar TableSource = class TableSource extends FromSource {\n\tkind = \"table-source\";\n\tname;\n\talias;\n\t/**\n\t* Resolved storage namespace coordinate for this table, stamped when the\n\t* table proxy constructs the AST. Renderers qualify via the namespace\n\t* concretion's `qualifyTable()` using this id — never by re-resolving the\n\t* bare table name at render time.\n\t*/\n\tnamespaceId;\n\tconstructor(name, alias, namespaceId) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.alias = alias;\n\t\tthis.namespaceId = namespaceId;\n\t}\n\tstatic named(name, alias, namespaceId) {\n\t\tconst source = new TableSource(name, alias, namespaceId);\n\t\tsource.freeze();\n\t\treturn source;\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.tableSource ? rewriter.tableSource(this) : this;\n\t}\n\ttoFromSource() {\n\t\treturn this;\n\t}\n};\nvar DerivedTableSource = class DerivedTableSource extends FromSource {\n\tkind = \"derived-table-source\";\n\talias;\n\tquery;\n\tconstructor(alias, query) {\n\t\tsuper();\n\t\tthis.alias = alias;\n\t\tthis.query = query;\n\t\tthis.freeze();\n\t}\n\tstatic as(alias, query) {\n\t\treturn new DerivedTableSource(alias, query);\n\t}\n\trewrite(rewriter) {\n\t\treturn new DerivedTableSource(this.alias, this.query.rewrite(rewriter));\n\t}\n\ttoFromSource() {\n\t\treturn this;\n\t}\n};\nvar FunctionSource = class FunctionSource extends FromSource {\n\tkind = \"function-source\";\n\tfn;\n\targs;\n\talias;\n\tcolumnAliases;\n\tordinality;\n\tconstructor(fn, args, alias, ordinality = false) {\n\t\tsuper();\n\t\tif (alias?.columnAliases?.length === 0) throw structuredError(\"RUNTIME.AST_INVALID\", \"FunctionSource column aliases must not be empty\", { meta: {\n\t\t\tkind: \"function-source\",\n\t\t\tfield: \"columnAliases\"\n\t\t} });\n\t\tthis.fn = fn;\n\t\tthis.args = frozenArrayCopy(args);\n\t\tthis.alias = alias?.alias;\n\t\tthis.columnAliases = alias?.columnAliases === void 0 ? void 0 : frozenArrayCopy(alias.columnAliases);\n\t\tthis.ordinality = ordinality;\n\t\tthis.freeze();\n\t}\n\tstatic of(fn, args, alias) {\n\t\treturn new FunctionSource(fn, args, alias);\n\t}\n\t#aliasOptions() {\n\t\tif (this.alias === void 0) return void 0;\n\t\treturn {\n\t\t\talias: this.alias,\n\t\t\t...ifDefined(\"columnAliases\", this.columnAliases)\n\t\t};\n\t}\n\twithOrdinality() {\n\t\tif (this.ordinality) return this;\n\t\treturn new FunctionSource(this.fn, this.args, this.#aliasOptions(), true);\n\t}\n\trewrite(rewriter) {\n\t\tconst rewrittenArgs = this.args.map((arg) => rewriteComparable(arg, rewriter));\n\t\tif (rewrittenArgs.every((arg, i) => arg === this.args[i])) return this;\n\t\treturn new FunctionSource(this.fn, rewrittenArgs, this.#aliasOptions(), this.ordinality);\n\t}\n\ttoFromSource() {\n\t\treturn this;\n\t}\n};\nvar ColumnRef = class ColumnRef extends Expression {\n\tkind = \"column-ref\";\n\ttable;\n\tcolumn;\n\tconstructor(table, column) {\n\t\tsuper();\n\t\tthis.table = table;\n\t\tthis.column = column;\n\t\tthis.freeze();\n\t}\n\tstatic of(table, column) {\n\t\treturn new ColumnRef(table, column);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.columnRef(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.columnRef ? rewriter.columnRef(this) : this;\n\t}\n\tfold(folder) {\n\t\treturn folder.columnRef ? folder.columnRef(this) : folder.empty;\n\t}\n\tbaseColumnRef() {\n\t\treturn this;\n\t}\n};\nvar IdentifierRef = class IdentifierRef extends Expression {\n\tkind = \"identifier-ref\";\n\tname;\n\tconstructor(name) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.freeze();\n\t}\n\tstatic of(name) {\n\t\treturn new IdentifierRef(name);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.identifierRef(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.identifierRef ? rewriter.identifierRef(this) : this;\n\t}\n\tfold(folder) {\n\t\treturn folder.identifierRef ? folder.identifierRef(this) : folder.empty;\n\t}\n};\nvar ParamRef = class ParamRef extends Expression {\n\tkind = \"param-ref\";\n\tvalue;\n\tname;\n\t/**\n\t* Codec identity carried by every column-bound `ParamRef`. The encode-side dispatch path materialises the per-instance codec through `contractCodecs.forCodecRef(codec)` — content-keyed memoisation on `(codecId, canonicalize(typeParams))` keeps repeated lookups for the same logical column on one shared {@link Codec}.\n\t*\n\t* `codec` may be `undefined` for `ParamRef`s constructed without a column-bound site (literals, transient builder state); the runtime treats those as untyped passthroughs.\n\t*/\n\tcodec;\n\tconstructor(value, options) {\n\t\tsuper();\n\t\tthis.value = value;\n\t\tthis.name = options?.name;\n\t\tthis.codec = options?.codec ? frozenCodecRef(options.codec) : void 0;\n\t\tthis.freeze();\n\t}\n\tstatic of(value, options) {\n\t\treturn new ParamRef(value, options);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.param(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.paramRef ? rewriter.paramRef(this) : this;\n\t}\n\tfold(folder) {\n\t\treturn folder.paramRef ? folder.paramRef(this) : folder.empty;\n\t}\n};\n/**\n* Bind-site placeholder: occupies the same positions as `ParamRef` in the\n* AST, but carries no value — the value is supplied per-execute by the\n* `statement.query(target, params)` caller and matched to this node by\n* `name`.\n*/\nvar PreparedParamRef = class PreparedParamRef extends Expression {\n\tkind = \"prepared-param-ref\";\n\tname;\n\tcodec;\n\tnullable;\n\tconstructor(name, codec, nullable = false) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.codec = frozenCodecRef(codec);\n\t\tthis.nullable = nullable;\n\t\tthis.freeze();\n\t}\n\tstatic of(name, codec, nullable = false) {\n\t\treturn new PreparedParamRef(name, codec, nullable);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.preparedParam(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.preparedParamRef ? rewriter.preparedParamRef(this) : this;\n\t}\n\tfold(folder) {\n\t\treturn folder.preparedParamRef ? folder.preparedParamRef(this) : folder.empty;\n\t}\n};\nvar DefaultValueExpr = class extends AstNode {\n\tkind = \"default-value\";\n\tconstructor() {\n\t\tsuper();\n\t\tthis.freeze();\n\t}\n};\nvar LiteralExpr = class LiteralExpr extends Expression {\n\tkind = \"literal\";\n\tvalue;\n\tconstructor(value) {\n\t\tsuper();\n\t\tthis.value = value;\n\t\tthis.freeze();\n\t}\n\tstatic of(value) {\n\t\treturn new LiteralExpr(value);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.literal(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.literal ? rewriter.literal(this) : this;\n\t}\n\tfold(folder) {\n\t\treturn folder.literal ? folder.literal(this) : folder.empty;\n\t}\n};\nvar SubqueryExpr = class SubqueryExpr extends Expression {\n\tkind = \"subquery\";\n\tquery;\n\tconstructor(query) {\n\t\tsuper();\n\t\tthis.query = query;\n\t\tthis.freeze();\n\t}\n\tstatic of(query) {\n\t\treturn new SubqueryExpr(query);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.subquery(this);\n\t}\n\trewrite(rewriter) {\n\t\tconst query = this.query.rewrite(rewriter);\n\t\treturn new SubqueryExpr(query);\n\t}\n\tfold(folder) {\n\t\treturn folder.select ? folder.select(this.query) : folder.empty;\n\t}\n};\nvar OperationExpr = class OperationExpr extends Expression {\n\tkind = \"operation\";\n\tmethod;\n\tself;\n\targs;\n\treturns;\n\tlowering;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.method = options.method;\n\t\tthis.self = options.self;\n\t\tthis.args = frozenArrayCopy(options.args ?? []);\n\t\tthis.returns = options.returns;\n\t\tthis.lowering = options.lowering;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.operation(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new OperationExpr({\n\t\t\tmethod: this.method,\n\t\t\tself: this.self.rewrite(rewriter),\n\t\t\targs: this.args.map((arg) => rewriteComparable(arg, rewriter)),\n\t\t\treturns: this.returns,\n\t\t\tlowering: this.lowering\n\t\t});\n\t}\n\tfold(folder) {\n\t\treturn combineAll(folder, [() => this.self.fold(folder), ...this.args.map((arg) => () => foldComparable(arg, folder))]);\n\t}\n\tbaseColumnRef() {\n\t\treturn this.self.baseColumnRef();\n\t}\n};\nvar RawExpr = class extends Expression {\n\tkind = \"raw-expr\";\n\tparts;\n\treturns;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.parts = frozenArrayCopy(options.parts);\n\t\tthis.returns = options.returns;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.rawExpr(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.rawExpr ? rewriter.rawExpr(this) : this;\n\t}\n\tfold(folder) {\n\t\tif (folder.rawExpr) return folder.rawExpr(this);\n\t\treturn combineAll(folder, this.parts.filter((p) => typeof p !== \"string\").map((p) => () => p.fold(folder)));\n\t}\n};\nvar AggregateExpr = class AggregateExpr extends Expression {\n\tkind = \"aggregate\";\n\tfn;\n\texpr;\n\tconstructor(fn, expr) {\n\t\tsuper();\n\t\tif (fn !== \"count\" && expr === void 0) throw structuredError(\"ORM.ARGUMENT_INVALID\", `Aggregate function \"${fn}\" requires an expression`, { meta: { fn } });\n\t\tthis.fn = fn;\n\t\tthis.expr = expr;\n\t\tthis.freeze();\n\t}\n\tstatic count(expr) {\n\t\treturn new AggregateExpr(\"count\", expr);\n\t}\n\tstatic sum(expr) {\n\t\treturn new AggregateExpr(\"sum\", expr);\n\t}\n\tstatic avg(expr) {\n\t\treturn new AggregateExpr(\"avg\", expr);\n\t}\n\tstatic min(expr) {\n\t\treturn new AggregateExpr(\"min\", expr);\n\t}\n\tstatic max(expr) {\n\t\treturn new AggregateExpr(\"max\", expr);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.aggregate(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn this.expr === void 0 ? this : new AggregateExpr(this.fn, this.expr.rewrite(rewriter));\n\t}\n\tfold(folder) {\n\t\treturn this.expr ? this.expr.fold(folder) : folder.empty;\n\t}\n};\n/**\n* Window function call: `fn(args) OVER (PARTITION BY ... ORDER BY ...)`.\n*\n* Both `partitionBy` and `orderBy` are optional; an empty `OVER ()`\n* clause is legal SQL but rarely useful. For `ROW_NUMBER`, `RANK`, and\n* `DENSE_RANK` the standard mandates an `ORDER BY` for deterministic\n* results — callers are expected to provide one, but the AST does not\n* enforce it.\n*\n* The `args` slot exists for future window function additions that take\n* arguments (e.g. `COUNT(*) OVER`, `SUM(x) OVER`); `ROW_NUMBER` and the\n* other ranking functions take no arguments.\n*/\nvar WindowFuncExpr = class WindowFuncExpr extends Expression {\n\tkind = \"window-func\";\n\tfn;\n\targs;\n\tpartitionBy;\n\torderBy;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.fn = options.fn;\n\t\tthis.args = options.args && options.args.length > 0 ? frozenArrayCopy(options.args) : [];\n\t\tthis.partitionBy = options.partitionBy && options.partitionBy.length > 0 ? frozenArrayCopy(options.partitionBy) : void 0;\n\t\tthis.orderBy = options.orderBy && options.orderBy.length > 0 ? frozenArrayCopy(options.orderBy) : void 0;\n\t\tthis.freeze();\n\t}\n\tstatic rowNumber(options) {\n\t\treturn new WindowFuncExpr({\n\t\t\tfn: \"row_number\",\n\t\t\t...options\n\t\t});\n\t}\n\taccept(visitor) {\n\t\treturn visitor.windowFunc(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new WindowFuncExpr({\n\t\t\tfn: this.fn,\n\t\t\targs: this.args.map((arg) => arg.rewrite(rewriter)),\n\t\t\t...ifDefined(\"partitionBy\", this.partitionBy?.map((expr) => expr.rewrite(rewriter))),\n\t\t\t...ifDefined(\"orderBy\", this.orderBy?.map((orderItem) => orderItem.rewrite(rewriter)))\n\t\t});\n\t}\n\tfold(folder) {\n\t\treturn combineAll(folder, [\n\t\t\t...this.args.map((arg) => () => arg.fold(folder)),\n\t\t\t...(this.partitionBy ?? []).map((expr) => () => expr.fold(folder)),\n\t\t\t...(this.orderBy ?? []).map((orderItem) => () => orderItem.expr.fold(folder))\n\t\t]);\n\t}\n};\nvar FunctionCallExpr = class FunctionCallExpr extends Expression {\n\tkind = \"function-call\";\n\tfn;\n\targs;\n\tconstructor(fn, args) {\n\t\tsuper();\n\t\tthis.fn = fn;\n\t\tthis.args = frozenArrayCopy(args);\n\t\tthis.freeze();\n\t}\n\tstatic of(fn, args) {\n\t\treturn new FunctionCallExpr(fn, args);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.functionCall(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new FunctionCallExpr(this.fn, this.args.map((arg) => arg.rewrite(rewriter)));\n\t}\n\tfold(folder) {\n\t\treturn combineAll(folder, this.args.map((arg) => () => arg.fold(folder)));\n\t}\n};\nvar CastExpr = class CastExpr extends Expression {\n\tkind = \"cast\";\n\texpr;\n\ttargetType;\n\tconstructor(expr, targetType) {\n\t\tsuper();\n\t\tthis.expr = expr;\n\t\tthis.targetType = targetType;\n\t\tthis.freeze();\n\t}\n\tstatic as(expr, targetType) {\n\t\treturn new CastExpr(expr, targetType);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.cast(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new CastExpr(this.expr.rewrite(rewriter), this.targetType);\n\t}\n\tfold(folder) {\n\t\treturn this.expr.fold(folder);\n\t}\n};\nvar CaseExpr = class CaseExpr extends Expression {\n\tkind = \"case\";\n\tbranches;\n\telseExpr;\n\tconstructor(branches, elseExpr) {\n\t\tsuper();\n\t\tif (branches.length === 0) throw structuredError(\"RUNTIME.AST_INVALID\", \"CaseExpr requires at least one branch\", { meta: {\n\t\t\tkind: \"case\",\n\t\t\tfield: \"branches\"\n\t\t} });\n\t\tthis.branches = Object.freeze(branches.map((branch) => Object.freeze({\n\t\t\tcondition: branch.condition,\n\t\t\tvalue: branch.value\n\t\t})));\n\t\tthis.elseExpr = elseExpr;\n\t\tthis.freeze();\n\t}\n\tstatic of(branches, elseExpr) {\n\t\treturn new CaseExpr(branches, elseExpr);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.case(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new CaseExpr(this.branches.map((branch) => ({\n\t\t\tcondition: branch.condition.rewrite(rewriter),\n\t\t\tvalue: branch.value.rewrite(rewriter)\n\t\t})), this.elseExpr?.rewrite(rewriter));\n\t}\n\tfold(folder) {\n\t\tconst elseExpr = this.elseExpr;\n\t\treturn combineAll(folder, [...this.branches.flatMap((branch) => [() => branch.condition.fold(folder), () => branch.value.fold(folder)]), ...elseExpr === void 0 ? [] : [() => elseExpr.fold(folder)]]);\n\t}\n};\nvar JsonObjectExpr = class JsonObjectExpr extends Expression {\n\tkind = \"json-object\";\n\tentries;\n\tconstructor(entries) {\n\t\tsuper();\n\t\tthis.entries = frozenArrayCopy(entries.map((entry) => Object.freeze({ ...entry })));\n\t\tthis.freeze();\n\t}\n\tstatic entry(key, value) {\n\t\treturn {\n\t\t\tkey,\n\t\t\tvalue\n\t\t};\n\t}\n\tstatic fromEntries(entries) {\n\t\treturn new JsonObjectExpr(entries);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.jsonObject(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new JsonObjectExpr(this.entries.map((entry) => ({\n\t\t\tkey: entry.key,\n\t\t\tvalue: entry.value.rewrite(rewriter)\n\t\t})));\n\t}\n\tfold(folder) {\n\t\treturn combineAll(folder, this.entries.map((entry) => () => entry.value.fold(folder)));\n\t}\n};\nvar OrderByItem = class OrderByItem extends AstNode {\n\tkind = \"order-by-item\";\n\texpr;\n\tdir;\n\tconstructor(expr, dir) {\n\t\tsuper();\n\t\tthis.expr = expr;\n\t\tthis.dir = dir;\n\t\tthis.freeze();\n\t}\n\tstatic asc(expr) {\n\t\treturn new OrderByItem(expr, \"asc\");\n\t}\n\tstatic desc(expr) {\n\t\treturn new OrderByItem(expr, \"desc\");\n\t}\n\trewrite(rewriter) {\n\t\treturn new OrderByItem(this.expr.rewrite(rewriter), this.dir);\n\t}\n\t/**\n\t* A new frozen item with the sort direction flipped and `expr` unchanged.\n\t* Integrations that own pagination (e.g. backward cursor pagination) use\n\t* this to reverse a user's sort order without reaching into the AST.\n\t*/\n\treverse() {\n\t\treturn new OrderByItem(this.expr, this.dir === \"asc\" ? \"desc\" : \"asc\");\n\t}\n};\nvar JsonArrayAggExpr = class JsonArrayAggExpr extends Expression {\n\tkind = \"json-array-agg\";\n\texpr;\n\tonEmpty;\n\torderBy;\n\tconstructor(expr, onEmpty = \"null\", orderBy) {\n\t\tsuper();\n\t\tthis.expr = expr;\n\t\tthis.onEmpty = onEmpty;\n\t\tthis.orderBy = orderBy && orderBy.length > 0 ? frozenArrayCopy(orderBy) : void 0;\n\t\tthis.freeze();\n\t}\n\tstatic of(expr, onEmpty = \"null\", orderBy) {\n\t\treturn new JsonArrayAggExpr(expr, onEmpty, orderBy);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.jsonArrayAgg(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new JsonArrayAggExpr(this.expr.rewrite(rewriter), this.onEmpty, this.orderBy?.map((orderItem) => orderItem.rewrite(rewriter)));\n\t}\n\tfold(folder) {\n\t\treturn combineAll(folder, [() => this.expr.fold(folder), ...(this.orderBy ?? []).map((orderItem) => () => orderItem.expr.fold(folder))]);\n\t}\n};\nvar ListExpression = class ListExpression extends Expression {\n\tkind = \"list\";\n\tvalues;\n\tconstructor(values) {\n\t\tsuper();\n\t\tthis.values = frozenArrayCopy(values);\n\t\tthis.freeze();\n\t}\n\tstatic of(values) {\n\t\treturn new ListExpression(values);\n\t}\n\tstatic fromValues(values) {\n\t\treturn new ListExpression(values.map((value) => new LiteralExpr(value)));\n\t}\n\taccept(visitor) {\n\t\treturn visitor.list(this);\n\t}\n\trewrite(rewriter) {\n\t\tif (rewriter.list) return rewriter.list(this);\n\t\treturn new ListExpression(this.values.map((value) => value.rewrite(rewriter)));\n\t}\n\tfold(folder) {\n\t\tif (folder.list) return folder.list(this);\n\t\treturn combineAll(folder, this.values.map((value) => () => value.fold(folder)));\n\t}\n};\nvar BinaryExpr = class BinaryExpr extends Expression {\n\tkind = \"binary\";\n\top;\n\tleft;\n\tright;\n\tconstructor(op, left, right) {\n\t\tsuper();\n\t\tthis.op = op;\n\t\tthis.left = left;\n\t\tthis.right = right;\n\t\tthis.freeze();\n\t}\n\tstatic eq(left, right) {\n\t\treturn new BinaryExpr(\"eq\", left, right);\n\t}\n\tstatic neq(left, right) {\n\t\treturn new BinaryExpr(\"neq\", left, right);\n\t}\n\tstatic gt(left, right) {\n\t\treturn new BinaryExpr(\"gt\", left, right);\n\t}\n\tstatic lt(left, right) {\n\t\treturn new BinaryExpr(\"lt\", left, right);\n\t}\n\tstatic gte(left, right) {\n\t\treturn new BinaryExpr(\"gte\", left, right);\n\t}\n\tstatic lte(left, right) {\n\t\treturn new BinaryExpr(\"lte\", left, right);\n\t}\n\tstatic like(left, right) {\n\t\treturn new BinaryExpr(\"like\", left, right);\n\t}\n\tstatic in(left, right) {\n\t\treturn new BinaryExpr(\"in\", left, right);\n\t}\n\tstatic notIn(left, right) {\n\t\treturn new BinaryExpr(\"notIn\", left, right);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.binary(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new BinaryExpr(this.op, rewriteComparable(this.left, rewriter), rewriteComparable(this.right, rewriter));\n\t}\n\tfold(folder) {\n\t\treturn combineAll(folder, [() => foldComparable(this.left, folder), () => foldComparable(this.right, folder)]);\n\t}\n};\nvar AndExpr = class AndExpr extends Expression {\n\tkind = \"and\";\n\texprs;\n\tconstructor(exprs) {\n\t\tsuper();\n\t\tthis.exprs = frozenArrayCopy(exprs);\n\t\tthis.freeze();\n\t}\n\tstatic of(exprs) {\n\t\treturn new AndExpr(exprs);\n\t}\n\tstatic true() {\n\t\treturn new AndExpr([]);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.and(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new AndExpr(this.exprs.map((expr) => expr.rewrite(rewriter)));\n\t}\n\tfold(folder) {\n\t\treturn combineAll(folder, this.exprs.map((expr) => () => expr.fold(folder)));\n\t}\n};\nvar OrExpr = class OrExpr extends Expression {\n\tkind = \"or\";\n\texprs;\n\tconstructor(exprs) {\n\t\tsuper();\n\t\tthis.exprs = frozenArrayCopy(exprs);\n\t\tthis.freeze();\n\t}\n\tstatic of(exprs) {\n\t\treturn new OrExpr(exprs);\n\t}\n\tstatic false() {\n\t\treturn new OrExpr([]);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.or(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new OrExpr(this.exprs.map((expr) => expr.rewrite(rewriter)));\n\t}\n\tfold(folder) {\n\t\treturn combineAll(folder, this.exprs.map((expr) => () => expr.fold(folder)));\n\t}\n};\nvar ExistsExpr = class ExistsExpr extends Expression {\n\tkind = \"exists\";\n\tnotExists;\n\tsubquery;\n\tconstructor(subquery, notExists = false) {\n\t\tsuper();\n\t\tthis.notExists = notExists;\n\t\tthis.subquery = subquery;\n\t\tthis.freeze();\n\t}\n\tstatic exists(subquery) {\n\t\treturn new ExistsExpr(subquery, false);\n\t}\n\tstatic notExists(subquery) {\n\t\treturn new ExistsExpr(subquery, true);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.exists(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new ExistsExpr(this.subquery.rewrite(rewriter), this.notExists);\n\t}\n\tfold(folder) {\n\t\treturn folder.select ? folder.select(this.subquery) : folder.empty;\n\t}\n};\nvar NullCheckExpr = class NullCheckExpr extends Expression {\n\tkind = \"null-check\";\n\texpr;\n\tisNull;\n\tconstructor(expr, isNull) {\n\t\tsuper();\n\t\tthis.expr = expr;\n\t\tthis.isNull = isNull;\n\t\tthis.freeze();\n\t}\n\tstatic isNull(expr) {\n\t\treturn new NullCheckExpr(expr, true);\n\t}\n\tstatic isNotNull(expr) {\n\t\treturn new NullCheckExpr(expr, false);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.nullCheck(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new NullCheckExpr(this.expr.rewrite(rewriter), this.isNull);\n\t}\n\tfold(folder) {\n\t\treturn this.expr.fold(folder);\n\t}\n};\nvar NotExpr = class NotExpr extends Expression {\n\tkind = \"not\";\n\texpr;\n\tconstructor(expr) {\n\t\tsuper();\n\t\tthis.expr = expr;\n\t\tthis.freeze();\n\t}\n\ttoWhereExpr() {\n\t\treturn this;\n\t}\n\taccept(visitor) {\n\t\treturn visitor.not(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new NotExpr(this.expr.rewrite(rewriter));\n\t}\n\tfold(folder) {\n\t\treturn this.expr.fold(folder);\n\t}\n};\nvar EqColJoinOn = class EqColJoinOn extends AstNode {\n\tkind = \"eq-col-join-on\";\n\tleft;\n\tright;\n\tconstructor(left, right) {\n\t\tsuper();\n\t\tthis.left = left;\n\t\tthis.right = right;\n\t\tthis.freeze();\n\t}\n\tstatic of(left, right) {\n\t\treturn new EqColJoinOn(left, right);\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.eqColJoinOn ? rewriter.eqColJoinOn(this) : this;\n\t}\n};\nvar JoinAst = class JoinAst extends AstNode {\n\tkind = \"join\";\n\tjoinType;\n\tsource;\n\tlateral;\n\ton;\n\tconstructor(joinType, source, on, lateral = false) {\n\t\tsuper();\n\t\tthis.joinType = joinType;\n\t\tthis.source = source;\n\t\tthis.lateral = lateral;\n\t\tthis.on = on;\n\t\tthis.freeze();\n\t}\n\tstatic inner(source, on, lateral = false) {\n\t\treturn new JoinAst(\"inner\", source, on, lateral);\n\t}\n\tstatic left(source, on, lateral = false) {\n\t\treturn new JoinAst(\"left\", source, on, lateral);\n\t}\n\tstatic right(source, on, lateral = false) {\n\t\treturn new JoinAst(\"right\", source, on, lateral);\n\t}\n\tstatic full(source, on, lateral = false) {\n\t\treturn new JoinAst(\"full\", source, on, lateral);\n\t}\n\trewrite(rewriter) {\n\t\treturn new JoinAst(this.joinType, this.source.rewrite(rewriter), this.on.kind === \"eq-col-join-on\" ? this.on.rewrite(rewriter) : this.on.rewrite(rewriter), this.lateral);\n\t}\n};\nvar ProjectionItem = class ProjectionItem extends AstNode {\n\tkind = \"projection-item\";\n\talias;\n\texpr;\n\t/**\n\t* Codec identity for any known projected result, whether read directly from a contract column or forwarded through a query wrapper. Decode-side dispatch resolves the per-instance codec through `contractCodecs.forCodecRef(codec)` — content-keyed memoisation collapses repeated lookups for the same logical result onto one shared {@link Codec}.\n\t*\n\t* Stays `undefined` only when the projected result's codec is unknown, such as computed expressions, subqueries, or raw aliases whose decoded type the runtime cannot infer.\n\t*/\n\tcodec;\n\tconstructor(alias, expr, codec) {\n\t\tsuper();\n\t\tthis.alias = alias;\n\t\tthis.expr = expr;\n\t\tthis.codec = codec ? frozenCodecRef(codec) : void 0;\n\t\tthis.freeze();\n\t}\n\tstatic of(alias, expr, codec) {\n\t\treturn new ProjectionItem(alias, expr, codec);\n\t}\n\twithCodec(codec) {\n\t\treturn new ProjectionItem(this.alias, this.expr, codec);\n\t}\n};\nfunction checkLimitOffset(argument, value) {\n\tif (typeof value === \"number\" && !(Number.isSafeInteger(value) && value >= 0)) throw structuredError(\"ORM.ARGUMENT_INVALID\", `${argument} must be an integer from 0 to ${Number.MAX_SAFE_INTEGER}, got ${String(value)}`, { meta: { argument } });\n}\nvar SelectAst = class SelectAst extends QueryAst {\n\tkind = \"select\";\n\tfrom;\n\tjoins;\n\tprojection;\n\twhere;\n\torderBy;\n\tdistinct;\n\tdistinctOn;\n\tgroupBy;\n\thaving;\n\tlimit;\n\toffset;\n\tselectAllIntent;\n\tconstructor(options) {\n\t\tsuper();\n\t\tcheckLimitOffset(\"limit\", options.limit);\n\t\tcheckLimitOffset(\"offset\", options.offset);\n\t\tthis.from = options.from;\n\t\tthis.joins = options.joins && options.joins.length > 0 ? frozenArrayCopy(options.joins) : void 0;\n\t\tthis.projection = frozenArrayCopy(options.projection);\n\t\tthis.where = options.where;\n\t\tthis.orderBy = options.orderBy && options.orderBy.length > 0 ? frozenArrayCopy(options.orderBy) : void 0;\n\t\tthis.distinct = options.distinct;\n\t\tthis.distinctOn = options.distinctOn && options.distinctOn.length > 0 ? frozenArrayCopy(options.distinctOn) : void 0;\n\t\tthis.groupBy = options.groupBy && options.groupBy.length > 0 ? frozenArrayCopy(options.groupBy) : void 0;\n\t\tthis.having = options.having;\n\t\tthis.limit = options.limit;\n\t\tthis.offset = options.offset;\n\t\tthis.selectAllIntent = frozenOptionalRecordCopy(options.selectAllIntent);\n\t\tthis.freeze();\n\t}\n\tstatic from(from) {\n\t\treturn new SelectAst({\n\t\t\tfrom,\n\t\t\tjoins: void 0,\n\t\t\tprojection: [],\n\t\t\twhere: void 0,\n\t\t\torderBy: void 0,\n\t\t\tdistinct: void 0,\n\t\t\tdistinctOn: void 0,\n\t\t\tgroupBy: void 0,\n\t\t\thaving: void 0,\n\t\t\tlimit: void 0,\n\t\t\toffset: void 0,\n\t\t\tselectAllIntent: void 0\n\t\t});\n\t}\n\tstatic noFrom() {\n\t\treturn new SelectAst({\n\t\t\tjoins: void 0,\n\t\t\tprojection: [],\n\t\t\twhere: void 0,\n\t\t\torderBy: void 0,\n\t\t\tdistinct: void 0,\n\t\t\tdistinctOn: void 0,\n\t\t\tgroupBy: void 0,\n\t\t\thaving: void 0,\n\t\t\tlimit: void 0,\n\t\t\toffset: void 0,\n\t\t\tselectAllIntent: void 0\n\t\t});\n\t}\n\ttoOptions() {\n\t\treturn {\n\t\t\t...this.from !== void 0 ? { from: this.from } : {},\n\t\t\tjoins: this.joins,\n\t\t\tprojection: this.projection,\n\t\t\twhere: this.where,\n\t\t\torderBy: this.orderBy,\n\t\t\tdistinct: this.distinct,\n\t\t\tdistinctOn: this.distinctOn,\n\t\t\tgroupBy: this.groupBy,\n\t\t\thaving: this.having,\n\t\t\tlimit: this.limit,\n\t\t\toffset: this.offset,\n\t\t\tselectAllIntent: this.selectAllIntent\n\t\t};\n\t}\n\twithFrom(from) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tfrom\n\t\t});\n\t}\n\twithJoins(joins) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tjoins: joins.length > 0 ? joins : void 0\n\t\t});\n\t}\n\twithProjection(projection) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tprojection\n\t\t});\n\t}\n\taddProjection(alias, expr) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tprojection: [...this.projection, new ProjectionItem(alias, expr)]\n\t\t});\n\t}\n\twithWhere(where) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\twhere\n\t\t});\n\t}\n\twithOrderBy(orderBy) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\torderBy: orderBy.length > 0 ? orderBy : void 0\n\t\t});\n\t}\n\twithDistinct(enabled = true) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tdistinct: enabled ? true : void 0\n\t\t});\n\t}\n\twithDistinctOn(distinctOn) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tdistinctOn: distinctOn.length > 0 ? distinctOn : void 0\n\t\t});\n\t}\n\twithGroupBy(groupBy) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tgroupBy: groupBy.length > 0 ? groupBy : void 0\n\t\t});\n\t}\n\twithHaving(having) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\thaving\n\t\t});\n\t}\n\twithLimit(limit) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tlimit\n\t\t});\n\t}\n\twithOffset(offset) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\toffset\n\t\t});\n\t}\n\twithSelectAllIntent(selectAllIntent) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tselectAllIntent\n\t\t});\n\t}\n\trewrite(rewriter) {\n\t\tconst rewrittenFrom = this.from?.rewrite(rewriter);\n\t\tconst rewritten = new SelectAst({\n\t\t\t...rewrittenFrom !== void 0 ? { from: rewrittenFrom } : {},\n\t\t\tjoins: this.joins?.map((join) => join.rewrite(rewriter)),\n\t\t\tprojection: this.projection.map((projection) => new ProjectionItem(projection.alias, projection.expr.kind === \"literal\" ? rewriter.literal ? rewriter.literal(projection.expr) : projection.expr : projection.expr.rewrite(rewriter), projection.codec)),\n\t\t\twhere: this.where?.rewrite(rewriter),\n\t\t\torderBy: this.orderBy?.map((orderItem) => orderItem.rewrite(rewriter)),\n\t\t\tdistinct: this.distinct,\n\t\t\tdistinctOn: this.distinctOn?.map((expr) => expr.rewrite(rewriter)),\n\t\t\tgroupBy: this.groupBy?.map((expr) => expr.rewrite(rewriter)),\n\t\t\thaving: this.having?.rewrite(rewriter),\n\t\t\tlimit: rewriteLimitOffset(this.limit, rewriter),\n\t\t\toffset: rewriteLimitOffset(this.offset, rewriter),\n\t\t\tselectAllIntent: this.selectAllIntent\n\t\t});\n\t\treturn rewriter.select ? rewriter.select(rewritten) : rewritten;\n\t}\n\tcollectColumnRefs() {\n\t\tconst refs = [];\n\t\tconst pushRefs = (columns) => {\n\t\t\trefs.push(...columns);\n\t\t};\n\t\tif (this.from?.kind === \"derived-table-source\") pushRefs(this.from.query.collectColumnRefs());\n\t\telse if (this.from?.kind === \"function-source\") for (const arg of this.from.args) pushRefs(arg.collectColumnRefs());\n\t\tfor (const projection of this.projection) if (!(projection.expr.kind === \"literal\")) pushRefs(projection.expr.collectColumnRefs());\n\t\tif (this.where) pushRefs(this.where.collectColumnRefs());\n\t\tif (this.having) pushRefs(this.having.collectColumnRefs());\n\t\tfor (const orderItem of this.orderBy ?? []) pushRefs(orderItem.expr.collectColumnRefs());\n\t\tfor (const expr of this.distinctOn ?? []) pushRefs(expr.collectColumnRefs());\n\t\tfor (const expr of this.groupBy ?? []) pushRefs(expr.collectColumnRefs());\n\t\tfor (const join of this.joins ?? []) {\n\t\t\tif (join.source.kind === \"derived-table-source\") pushRefs(join.source.query.collectColumnRefs());\n\t\t\telse if (join.source.kind === \"function-source\") for (const arg of join.source.args) pushRefs(arg.collectColumnRefs());\n\t\t\tif (join.on.kind === \"eq-col-join-on\") refs.push(join.on.left, join.on.right);\n\t\t\telse pushRefs(join.on.collectColumnRefs());\n\t\t}\n\t\tif (typeof this.limit === \"object\") pushRefs(this.limit.collectColumnRefs());\n\t\tif (typeof this.offset === \"object\") pushRefs(this.offset.collectColumnRefs());\n\t\treturn refs;\n\t}\n\tcollectParamRefs() {\n\t\tconst refs = [];\n\t\tconst pushRefs = (params) => {\n\t\t\trefs.push(...params);\n\t\t};\n\t\tif (this.from?.kind === \"derived-table-source\") pushRefs(this.from.query.collectParamRefs());\n\t\telse if (this.from?.kind === \"function-source\") for (const arg of this.from.args) pushRefs(arg.collectParamRefs());\n\t\tfor (const projection of this.projection) if (!(projection.expr.kind === \"literal\")) pushRefs(projection.expr.collectParamRefs());\n\t\tif (this.where) pushRefs(this.where.collectParamRefs());\n\t\tif (this.having) pushRefs(this.having.collectParamRefs());\n\t\tfor (const orderItem of this.orderBy ?? []) pushRefs(orderItem.expr.collectParamRefs());\n\t\tfor (const expr of this.distinctOn ?? []) pushRefs(expr.collectParamRefs());\n\t\tfor (const expr of this.groupBy ?? []) pushRefs(expr.collectParamRefs());\n\t\tfor (const join of this.joins ?? []) {\n\t\t\tif (join.source.kind === \"derived-table-source\") pushRefs(join.source.query.collectParamRefs());\n\t\t\telse if (join.source.kind === \"function-source\") for (const arg of join.source.args) pushRefs(arg.collectParamRefs());\n\t\t\tif (!(join.on.kind === \"eq-col-join-on\")) pushRefs(join.on.collectParamRefs());\n\t\t}\n\t\tif (typeof this.limit === \"object\") pushRefs(this.limit.collectParamRefs());\n\t\tif (typeof this.offset === \"object\") pushRefs(this.offset.collectParamRefs());\n\t\treturn refs;\n\t}\n\ttoQueryAst() {\n\t\treturn this;\n\t}\n};\nvar InsertOnConflictAction = class extends AstNode {};\nvar DoNothingConflictAction = class extends InsertOnConflictAction {\n\tkind = \"do-nothing\";\n\tconstructor() {\n\t\tsuper();\n\t\tthis.freeze();\n\t}\n\ttoInsertOnConflictAction() {\n\t\treturn this;\n\t}\n};\nvar DoUpdateSetConflictAction = class extends InsertOnConflictAction {\n\tkind = \"do-update-set\";\n\tset;\n\tconstructor(set) {\n\t\tsuper();\n\t\tthis.set = frozenRecordCopy(set);\n\t\tthis.freeze();\n\t}\n\ttoInsertOnConflictAction() {\n\t\treturn this;\n\t}\n};\nvar InsertOnConflict = class InsertOnConflict extends AstNode {\n\tkind = \"insert-on-conflict\";\n\tcolumns;\n\taction;\n\tconstructor(columns, action) {\n\t\tsuper();\n\t\tthis.columns = frozenArrayCopy(columns);\n\t\tthis.action = action;\n\t\tthis.freeze();\n\t}\n\tstatic on(columns) {\n\t\treturn new InsertOnConflict(columns, new DoNothingConflictAction());\n\t}\n\t/**\n\t* Skip a row that collides with any unique constraint on the table, without\n\t* naming one. The renderer chooses the dialect; Postgres and SQLite emit\n\t* `ON CONFLICT DO NOTHING`.\n\t*/\n\tstatic doNothing() {\n\t\treturn new InsertOnConflict([], new DoNothingConflictAction());\n\t}\n\tdoNothing() {\n\t\treturn new InsertOnConflict(this.columns, new DoNothingConflictAction());\n\t}\n\tdoUpdateSet(set) {\n\t\treturn new InsertOnConflict(this.columns, new DoUpdateSetConflictAction(set));\n\t}\n};\nvar InsertAst = class InsertAst extends QueryAst {\n\tkind = \"insert\";\n\ttable;\n\trows;\n\tonConflict;\n\treturning;\n\tconstructor(table, rows = [{}], onConflict, returning) {\n\t\tsuper();\n\t\tthis.table = table;\n\t\tthis.rows = freezeRows(rows);\n\t\tthis.onConflict = onConflict;\n\t\tthis.returning = returning && returning.length > 0 ? frozenArrayCopy(returning) : void 0;\n\t\tthis.freeze();\n\t}\n\tstatic into(table) {\n\t\treturn new InsertAst(table);\n\t}\n\twithRows(rows) {\n\t\treturn new InsertAst(this.table, rows.map((row) => ({ ...row })), this.onConflict, this.returning);\n\t}\n\twithReturning(returning) {\n\t\treturn new InsertAst(this.table, this.rows.map((row) => ({ ...row })), this.onConflict, returning);\n\t}\n\twithOnConflict(onConflict) {\n\t\treturn new InsertAst(this.table, this.rows.map((row) => ({ ...row })), onConflict, this.returning);\n\t}\n\trewrite(rewriter) {\n\t\treturn new InsertAst(rewriteTableSource(this.table, rewriter), this.rows.map((row) => rewriteInsertRow(row, rewriter)), this.onConflict ? rewriteOnConflict(this.onConflict, rewriter) : void 0, this.returning?.map((item) => rewriteProjectionItem(item, rewriter)));\n\t}\n\tcollectParamRefs() {\n\t\tconst refs = [];\n\t\tfor (const row of this.rows) for (const value of Object.values(row)) if (value.kind === \"param-ref\" || value.kind === \"prepared-param-ref\") refs.push(value);\n\t\telse if (value.kind === \"raw-expr\") refs.push(...value.collectParamRefs());\n\t\tif (this.onConflict?.action.kind === \"do-update-set\") {\n\t\t\tfor (const value of Object.values(this.onConflict.action.set)) if (value.kind === \"param-ref\" || value.kind === \"prepared-param-ref\") refs.push(value);\n\t\t}\n\t\tfor (const item of this.returning ?? []) if (item.expr.kind !== \"literal\") refs.push(...item.expr.collectParamRefs());\n\t\treturn refs;\n\t}\n\ttoQueryAst() {\n\t\treturn this;\n\t}\n};\nvar UpdateAst = class UpdateAst extends QueryAst {\n\tkind = \"update\";\n\ttable;\n\tset;\n\twhere;\n\treturning;\n\tconstructor(table, set = {}, where, returning) {\n\t\tsuper();\n\t\tthis.table = table;\n\t\tthis.set = frozenRecordCopy(set);\n\t\tthis.where = where;\n\t\tthis.returning = returning && returning.length > 0 ? frozenArrayCopy(returning) : void 0;\n\t\tthis.freeze();\n\t}\n\tstatic table(table) {\n\t\treturn new UpdateAst(table);\n\t}\n\twithSet(set) {\n\t\treturn new UpdateAst(this.table, set, this.where, this.returning);\n\t}\n\twithWhere(where) {\n\t\treturn new UpdateAst(this.table, this.set, where, this.returning);\n\t}\n\twithReturning(returning) {\n\t\treturn new UpdateAst(this.table, this.set, this.where, returning);\n\t}\n\trewrite(rewriter) {\n\t\treturn new UpdateAst(rewriteTableSource(this.table, rewriter), rewriteUpdateSet(this.set, rewriter), this.where?.rewrite(rewriter), this.returning?.map((item) => rewriteProjectionItem(item, rewriter)));\n\t}\n\tcollectParamRefs() {\n\t\tconst refs = [];\n\t\tfor (const value of Object.values(this.set)) refs.push(...value.collectParamRefs());\n\t\tif (this.where) refs.push(...this.where.collectParamRefs());\n\t\tfor (const item of this.returning ?? []) if (item.expr.kind !== \"literal\") refs.push(...item.expr.collectParamRefs());\n\t\treturn refs;\n\t}\n\ttoQueryAst() {\n\t\treturn this;\n\t}\n};\nvar DeleteAst = class DeleteAst extends QueryAst {\n\tkind = \"delete\";\n\ttable;\n\twhere;\n\treturning;\n\tconstructor(table, where, returning) {\n\t\tsuper();\n\t\tthis.table = table;\n\t\tthis.where = where;\n\t\tthis.returning = returning && returning.length > 0 ? frozenArrayCopy(returning) : void 0;\n\t\tthis.freeze();\n\t}\n\tstatic from(table) {\n\t\treturn new DeleteAst(table);\n\t}\n\twithWhere(where) {\n\t\treturn new DeleteAst(this.table, where, this.returning);\n\t}\n\twithReturning(returning) {\n\t\treturn new DeleteAst(this.table, this.where, returning);\n\t}\n\trewrite(rewriter) {\n\t\treturn new DeleteAst(rewriteTableSource(this.table, rewriter), this.where?.rewrite(rewriter), this.returning?.map((item) => rewriteProjectionItem(item, rewriter)));\n\t}\n\tcollectParamRefs() {\n\t\tconst refs = [];\n\t\tif (this.where) refs.push(...this.where.collectParamRefs());\n\t\tfor (const item of this.returning ?? []) if (item.expr.kind !== \"literal\") refs.push(...item.expr.collectParamRefs());\n\t\treturn refs;\n\t}\n\ttoQueryAst() {\n\t\treturn this;\n\t}\n};\n/**\n* The one column name a declared result cannot carry. Writing `__proto__` onto\n* an object literal sets that object's prototype instead of adding a property,\n* so a column so named would disappear between the declaration and the decoded\n* row — and the row type would still promise it. Every other name that shadows\n* something on `Object.prototype` (`constructor`, `prototype`) is an ordinary\n* own property when assigned, and passes through as declared.\n*/\nconst RESERVED_RESULT_COLUMN = \"__proto__\";\nfunction frozenRawQueryResult(result) {\n\tif (result.kind === \"affected-count\") return Object.freeze({ kind: \"affected-count\" });\n\tconst columns = {};\n\tfor (const [name, column] of Object.entries(result.columns)) {\n\t\tif (name === RESERVED_RESULT_COLUMN) throw structuredError(\"RUNTIME.AST_INVALID\", `A raw query result cannot declare a \"${RESERVED_RESULT_COLUMN}\" column: alias the column in SQL and declare the alias instead`, { meta: {\n\t\t\tkind: \"raw-query\",\n\t\t\tfield: \"result.columns\",\n\t\t\tcolumn: name\n\t\t} });\n\t\tcolumns[name] = Object.freeze({\n\t\t\tcodecId: column.codecId,\n\t\t\tnullable: column.nullable\n\t\t});\n\t}\n\treturn Object.freeze({\n\t\tkind: \"rows\",\n\t\tcolumns: Object.freeze(columns)\n\t});\n}\n/**\n* Raw-SQL statement AST node: a whole query authored as a template, carrying\n* the same `parts` representation as {@link RawExpr} (literal SQL fragments\n* interleaved with interpolated expressions and `ParamRef`s) plus the result\n* the author declared for it.\n*\n* The shared `parts` shape is what lets a row-returning raw query be spliced\n* into another raw template: the inner parts are concatenated into the outer\n* list, so parameters keep their template order and lowering walks one flat\n* sequence.\n*/\nvar RawQueryAst = class RawQueryAst extends QueryAst {\n\tkind = \"raw-query\";\n\tparts;\n\tresult;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.parts = frozenArrayCopy(options.parts);\n\t\tthis.result = frozenRawQueryResult(options.result);\n\t\tthis.freeze();\n\t}\n\tstatic rows(parts, columns) {\n\t\treturn new RawQueryAst({\n\t\t\tparts,\n\t\t\tresult: {\n\t\t\t\tkind: \"rows\",\n\t\t\t\tcolumns\n\t\t\t}\n\t\t});\n\t}\n\tstatic affectedCount(parts) {\n\t\treturn new RawQueryAst({\n\t\t\tparts,\n\t\t\tresult: { kind: \"affected-count\" }\n\t\t});\n\t}\n\trewrite(rewriter) {\n\t\treturn new RawQueryAst({\n\t\t\tparts: this.parts.map((part) => typeof part === \"string\" ? part : rewriteComparable(part, rewriter)),\n\t\t\tresult: this.result\n\t\t});\n\t}\n\tcollectParamRefs() {\n\t\tconst refs = [];\n\t\tfor (const part of this.parts) if (typeof part !== \"string\") refs.push(...part.collectParamRefs());\n\t\treturn refs;\n\t}\n\ttoQueryAst() {\n\t\treturn this;\n\t}\n};\nconst queryAstKinds = /* @__PURE__ */ new Set([\n\t\"select\",\n\t\"insert\",\n\t\"update\",\n\t\"delete\",\n\t\"raw-query\"\n]);\nconst whereExprKinds = /* @__PURE__ */ new Set([\n\t\"binary\",\n\t\"and\",\n\t\"or\",\n\t\"exists\",\n\t\"null-check\",\n\t\"not\"\n]);\nfunction isQueryAst(value) {\n\treturn typeof value === \"object\" && value !== null && \"kind\" in value && typeof value.kind === \"string\" && queryAstKinds.has(value.kind);\n}\nfunction isWhereExpr(value) {\n\treturn typeof value === \"object\" && value !== null && \"kind\" in value && typeof value.kind === \"string\" && whereExprKinds.has(value.kind);\n}\n//#endregion\nexport { PreparedParamRef as A, isAggregateFn as B, LiteralExpr as C, OrExpr as D, OperationExpr as E, SubqueryExpr as F, frozenCodecRef as G, isWhereExpr as H, TableSource as I, UpdateAst as L, RawExpr as M, RawQueryAst as N, OrderByItem as O, SelectAst as P, WindowFuncExpr as R, ListExpression as S, NullCheckExpr as T, queryAstKinds as U, isQueryAst as V, whereExprKinds as W, InsertAst as _, CastExpr as a, JsonArrayAggExpr as b, DeleteAst as c, DoUpdateSetConflictAction as d, EqColJoinOn as f, IdentifierRef as g, FunctionSource as h, CaseExpr as i, ProjectionItem as j, ParamRef as k, DerivedTableSource as l, FunctionCallExpr as m, AndExpr as n, ColumnRef as o, ExistsExpr as p, BinaryExpr as r, DefaultValueExpr as s, AggregateExpr as t, DoNothingConflictAction as u, InsertOnConflict as v, NotExpr as w, JsonObjectExpr as x, JoinAst as y, aggregateFnNames as z };\n\n//# sourceMappingURL=types-BAhLyUFj.mjs.map"],"mappings":";;;;AAIA,SAAS,YAAY,OAAO;CAC3B,OAAO,MAAM,QAAQ,KAAK;AAC3B;AACA,SAAS,gBAAgB,OAAO;CAC/B,IAAI,UAAU,QAAQ,OAAO,UAAU,UAAU;CACjD,IAAI,YAAY,KAAK,GAAG,KAAK,MAAM,QAAQ,OAAO,gBAAgB,IAAI;MACjE,KAAK,MAAM,QAAQ,OAAO,OAAO,KAAK,GAAG,gBAAgB,IAAI;CAClE,OAAO,OAAO,KAAK;AACpB;AACA,SAAS,eAAe,OAAO;CAC9B,MAAM,aAAa,MAAM,eAAe,KAAK,IAAI,KAAK,IAAI,gBAAgB,MAAM,UAAU;CAC1F,IAAI,eAAe,KAAK,GAAG,gBAAgB,UAAU;CACrD,OAAO,OAAO,OAAO;EACpB,SAAS,MAAM;EACf,GAAG,UAAU,cAAc,UAAU;EACrC,GAAG,UAAU,QAAQ,MAAM,IAAI;CAChC,CAAC;AACF;;;;AAMA,MAAM,mCAAmC,IAAI,IAAI;CAChD;CACA;CACA;CACA;CACA;AACD,CAAC;;AAED,SAAS,cAAc,MAAM;CAC5B,OAAO,iBAAiB,IAAI,IAAI;AACjC;AACA,MAAM,yBAAyB;CAC9B,YAAY,SAAS;CACrB,gBAAgB,SAAS;CACzB,WAAW,SAAS;CACpB,YAAY,SAAS;CACrB,YAAY,SAAS;CACrB,aAAa,SAAS;CACtB,eAAe,SAAS;CACxB,OAAO,SAAS;CAChB,OAAO,SAAS;CAChB,aAAa,SAAS;CACtB,eAAe,SAAS;CACxB,SAAS,SAAS;CAClB,MAAM,SAAS;CACf,KAAK,SAAS;CACd,SAAS,SAAS;CAClB,YAAY,SAAS;CACrB,MAAM,SAAS;CACf,UAAU,SAAS;CACnB,QAAQ,SAAS;CACjB,gBAAgB,SAAS;CACzB,OAAO,SAAS;CAChB,UAAU,SAAS;AACpB;AACA,SAAS,gBAAgB,QAAQ;CAChC,OAAO,OAAO,OAAO,CAAC,GAAG,MAAM,CAAC;AACjC;AACA,SAAS,yBAAyB,OAAO;CACxC,OAAO,UAAU,KAAK,IAAI,KAAK,IAAI,OAAO,OAAO,EAAE,GAAG,MAAM,CAAC;AAC9D;AACA,SAAS,iBAAiB,QAAQ;CACjC,OAAO,OAAO,OAAO,EAAE,GAAG,OAAO,CAAC;AACnC;AACA,SAAS,WAAW,MAAM;CACzB,OAAO,OAAO,OAAO,KAAK,KAAK,QAAQ,OAAO,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAClE;AACA,SAAS,WAAW,QAAQ,QAAQ;CACnC,IAAI,SAAS,OAAO;CACpB,KAAK,MAAM,SAAS,QAAQ;EAC3B,IAAI,OAAO,cAAc,MAAM,GAAG,OAAO;EACzC,SAAS,OAAO,QAAQ,QAAQ,MAAM,CAAC;CACxC;CACA,OAAO;AACR;AACA,SAAS,kBAAkB,OAAO,UAAU;CAC3C,QAAQ,MAAM,MAAd;EACC,KAAK,aAAa,OAAO,SAAS,WAAW,SAAS,SAAS,KAAK,IAAI;EACxE,KAAK,sBAAsB,OAAO,SAAS,mBAAmB,SAAS,iBAAiB,KAAK,IAAI;EACjG,KAAK,WAAW,OAAO,SAAS,UAAU,SAAS,QAAQ,KAAK,IAAI;EACpE,KAAK;GACJ,IAAI,SAAS,MAAM,OAAO,SAAS,KAAK,KAAK;GAC7C,OAAO,MAAM,QAAQ,QAAQ;EAC9B,SAAS,OAAO,MAAM,QAAQ,QAAQ;CACvC;AACD;AACA,SAAS,eAAe,OAAO,QAAQ;CACtC,QAAQ,MAAM,MAAd;EACC,KAAK,aAAa,OAAO,OAAO,WAAW,OAAO,SAAS,KAAK,IAAI,OAAO;EAC3E,KAAK,sBAAsB,OAAO,OAAO,mBAAmB,OAAO,iBAAiB,KAAK,IAAI,OAAO;EACpG,KAAK,WAAW,OAAO,OAAO,UAAU,OAAO,QAAQ,KAAK,IAAI,OAAO;EACvE,KAAK,QAAQ,OAAO,MAAM,KAAK,MAAM;EACrC,SAAS,OAAO,MAAM,KAAK,MAAM;CAClC;AACD;AACA,SAAS,sBAAsB,MAAM;CACpC,OAAO,KAAK,KAAK;EAChB,OAAO,CAAC;EACR,UAAU,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;EAC9B,YAAY,cAAc,CAAC,SAAS;EACpC,SAAS,QAAQ,IAAI,kBAAkB;CACxC,CAAC;AACF;AACA,SAAS,qBAAqB,MAAM;CACnC,OAAO,KAAK,KAAK;EAChB,OAAO,CAAC;EACR,UAAU,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;EAC9B,WAAW,aAAa,CAAC,QAAQ;EACjC,mBAAmB,aAAa,CAAC,QAAQ;EACzC,SAAS,QAAQ,IAAI,iBAAiB;CACvC,CAAC;AACF;AACA,SAAS,mBAAmB,OAAO,UAAU;CAC5C,OAAO,SAAS,cAAc,SAAS,YAAY,KAAK,IAAI;AAC7D;AACA,SAAS,sBAAsB,MAAM,UAAU;CAC9C,MAAM,gBAAgB,KAAK,KAAK,SAAS,YAAY,SAAS,UAAU,SAAS,QAAQ,KAAK,IAAI,IAAI,KAAK,OAAO,KAAK,KAAK,QAAQ,QAAQ;CAC5I,OAAO,IAAI,eAAe,KAAK,OAAO,eAAe,KAAK,KAAK;AAChE;AACA,SAAS,mBAAmB,OAAO,UAAU;CAC5C,QAAQ,MAAM,MAAd;EACC,KAAK,aAAa,OAAO,SAAS,WAAW,yBAAyB,OAAO,QAAQ,IAAI;EACzF,KAAK,sBAAsB,OAAO,SAAS,mBAAmB,SAAS,iBAAiB,KAAK,IAAI;EACjG,KAAK,cAAc,OAAO,SAAS,YAAY,0BAA0B,OAAO,QAAQ,IAAI;EAC5F,KAAK,iBAAiB,OAAO;EAC7B,KAAK,YAAY,OAAO;CACzB;AACD;AACA,SAAS,yBAAyB,OAAO,UAAU;CAClD,MAAM,YAAY,SAAS,WAAW,SAAS,SAAS,KAAK,IAAI;CACjE,OAAO,UAAU,SAAS,cAAc,YAAY;AACrD;AACA,SAAS,0BAA0B,OAAO,UAAU;CACnD,MAAM,YAAY,SAAS,YAAY,SAAS,UAAU,KAAK,IAAI;CACnE,OAAO,UAAU,SAAS,eAAe,YAAY;AACtD;AACA,SAAS,iBAAiB,KAAK,UAAU;CACxC,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,GAAG,GAAG,OAAO,OAAO,mBAAmB,OAAO,QAAQ;CAChG,OAAO;AACR;AACA,SAAS,iBAAiB,KAAK,UAAU;CACxC,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,GAAG,GAAG,OAAO,OAAO,MAAM,QAAQ,QAAQ;CACpF,OAAO;AACR;AACA,SAAS,mBAAmB,OAAO,UAAU;CAC5C,IAAI,UAAU,KAAK,KAAK,OAAO,UAAU,UAAU,OAAO;CAC1D,OAAO,MAAM,QAAQ,QAAQ;AAC9B;AACA,SAAS,kBAAkB,YAAY,UAAU;CAChD,MAAM,UAAU,WAAW,QAAQ,KAAK,cAAc;EACrD,MAAM,YAAY,SAAS,YAAY,SAAS,UAAU,SAAS,IAAI;EACvE,OAAO,UAAU,SAAS,eAAe,YAAY;CACtD,CAAC;CACD,IAAI,WAAW,OAAO,SAAS,cAAc,OAAO,IAAI,iBAAiB,SAAS,IAAI,wBAAwB,CAAC;CAC/G,OAAO,IAAI,iBAAiB,SAAS,IAAI,0BAA0B,iBAAiB,WAAW,OAAO,KAAK,QAAQ,CAAC,CAAC;AACtH;AACA,IAAI,UAAU,MAAM;CACnB,SAAS;EACR,OAAO,OAAO,IAAI;CACnB;AACD;AACA,IAAI,WAAW,cAAc,QAAQ,CAAC;AACtC,IAAI,aAAa,cAAc,QAAQ,CAAC;AACxC,IAAI,aAAa,cAAc,QAAQ;CACtC,oBAAoB;EACnB,OAAO,sBAAsB,IAAI;CAClC;CACA,mBAAmB;EAClB,OAAO,qBAAqB,IAAI;CACjC;CACA,gBAAgB;EACf,MAAM,IAAI,cAAc,GAAG,KAAK,YAAY,KAAK,yCAAyC;CAC3F;CACA,mBAAmB;EAClB,OAAO,KAAK,OAAO,sBAAsB;CAC1C;CACA,SAAS;EACR,OAAO,KAAKA,iBAAiB;CAC9B;CACA,MAAM;EACL,OAAO,IAAI,QAAQ,KAAKA,iBAAiB,CAAC;CAC3C;AACD;AACA,IAAI,cAAc,MAAM,oBAAoB,WAAW;CACtD,OAAO;CACP;CACA;;;;;;;CAOA;CACA,YAAY,MAAM,OAAO,aAAa;EACrC,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,cAAc;CACpB;CACA,OAAO,MAAM,MAAM,OAAO,aAAa;EACtC,MAAM,SAAS,IAAI,YAAY,MAAM,OAAO,WAAW;EACvD,OAAO,OAAO;EACd,OAAO;CACR;CACA,QAAQ,UAAU;EACjB,OAAO,SAAS,cAAc,SAAS,YAAY,IAAI,IAAI;CAC5D;CACA,eAAe;EACd,OAAO;CACR;AACD;AACA,IAAI,qBAAqB,MAAM,2BAA2B,WAAW;CACpE,OAAO;CACP;CACA;CACA,YAAY,OAAO,OAAO;EACzB,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,QAAQ;EACb,KAAK,OAAO;CACb;CACA,OAAO,GAAG,OAAO,OAAO;EACvB,OAAO,IAAI,mBAAmB,OAAO,KAAK;CAC3C;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,mBAAmB,KAAK,OAAO,KAAK,MAAM,QAAQ,QAAQ,CAAC;CACvE;CACA,eAAe;EACd,OAAO;CACR;AACD;AACA,IAAI,iBAAiB,MAAM,uBAAuB,WAAW;CAC5D,OAAO;CACP;CACA;CACA;CACA;CACA;CACA,YAAY,IAAI,MAAM,OAAO,aAAa,OAAO;EAChD,MAAM;EACN,IAAI,OAAO,eAAe,WAAW,GAAG,MAAM,gBAAgB,uBAAuB,mDAAmD,EAAE,MAAM;GAC/I,MAAM;GACN,OAAO;EACR,EAAE,CAAC;EACH,KAAK,KAAK;EACV,KAAK,OAAO,gBAAgB,IAAI;EAChC,KAAK,QAAQ,OAAO;EACpB,KAAK,gBAAgB,OAAO,kBAAkB,KAAK,IAAI,KAAK,IAAI,gBAAgB,MAAM,aAAa;EACnG,KAAK,aAAa;EAClB,KAAK,OAAO;CACb;CACA,OAAO,GAAG,IAAI,MAAM,OAAO;EAC1B,OAAO,IAAI,eAAe,IAAI,MAAM,KAAK;CAC1C;CACA,gBAAgB;EACf,IAAI,KAAK,UAAU,KAAK,GAAG,OAAO,KAAK;EACvC,OAAO;GACN,OAAO,KAAK;GACZ,GAAG,UAAU,iBAAiB,KAAK,aAAa;EACjD;CACD;CACA,iBAAiB;EAChB,IAAI,KAAK,YAAY,OAAO;EAC5B,OAAO,IAAI,eAAe,KAAK,IAAI,KAAK,MAAM,KAAKC,cAAc,GAAG,IAAI;CACzE;CACA,QAAQ,UAAU;EACjB,MAAM,gBAAgB,KAAK,KAAK,KAAK,QAAQ,kBAAkB,KAAK,QAAQ,CAAC;EAC7E,IAAI,cAAc,OAAO,KAAK,MAAM,QAAQ,KAAK,KAAK,EAAE,GAAG,OAAO;EAClE,OAAO,IAAI,eAAe,KAAK,IAAI,eAAe,KAAKA,cAAc,GAAG,KAAK,UAAU;CACxF;CACA,eAAe;EACd,OAAO;CACR;AACD;AACA,IAAI,YAAY,MAAM,kBAAkB,WAAW;CAClD,OAAO;CACP;CACA;CACA,YAAY,OAAO,QAAQ;EAC1B,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,SAAS;EACd,KAAK,OAAO;CACb;CACA,OAAO,GAAG,OAAO,QAAQ;EACxB,OAAO,IAAI,UAAU,OAAO,MAAM;CACnC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,UAAU,IAAI;CAC9B;CACA,QAAQ,UAAU;EACjB,OAAO,SAAS,YAAY,SAAS,UAAU,IAAI,IAAI;CACxD;CACA,KAAK,QAAQ;EACZ,OAAO,OAAO,YAAY,OAAO,UAAU,IAAI,IAAI,OAAO;CAC3D;CACA,gBAAgB;EACf,OAAO;CACR;AACD;AACA,IAAI,gBAAgB,MAAM,sBAAsB,WAAW;CAC1D,OAAO;CACP;CACA,YAAY,MAAM;EACjB,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,OAAO;CACb;CACA,OAAO,GAAG,MAAM;EACf,OAAO,IAAI,cAAc,IAAI;CAC9B;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,cAAc,IAAI;CAClC;CACA,QAAQ,UAAU;EACjB,OAAO,SAAS,gBAAgB,SAAS,cAAc,IAAI,IAAI;CAChE;CACA,KAAK,QAAQ;EACZ,OAAO,OAAO,gBAAgB,OAAO,cAAc,IAAI,IAAI,OAAO;CACnE;AACD;AACA,IAAI,WAAW,MAAM,iBAAiB,WAAW;CAChD,OAAO;CACP;CACA;;;;;;CAMA;CACA,YAAY,OAAO,SAAS;EAC3B,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,OAAO,SAAS;EACrB,KAAK,QAAQ,SAAS,QAAQ,eAAe,QAAQ,KAAK,IAAI,KAAK;EACnE,KAAK,OAAO;CACb;CACA,OAAO,GAAG,OAAO,SAAS;EACzB,OAAO,IAAI,SAAS,OAAO,OAAO;CACnC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,MAAM,IAAI;CAC1B;CACA,QAAQ,UAAU;EACjB,OAAO,SAAS,WAAW,SAAS,SAAS,IAAI,IAAI;CACtD;CACA,KAAK,QAAQ;EACZ,OAAO,OAAO,WAAW,OAAO,SAAS,IAAI,IAAI,OAAO;CACzD;AACD;;;;;;;AAOA,IAAI,mBAAmB,MAAM,yBAAyB,WAAW;CAChE,OAAO;CACP;CACA;CACA;CACA,YAAY,MAAM,OAAO,WAAW,OAAO;EAC1C,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,QAAQ,eAAe,KAAK;EACjC,KAAK,WAAW;EAChB,KAAK,OAAO;CACb;CACA,OAAO,GAAG,MAAM,OAAO,WAAW,OAAO;EACxC,OAAO,IAAI,iBAAiB,MAAM,OAAO,QAAQ;CAClD;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,cAAc,IAAI;CAClC;CACA,QAAQ,UAAU;EACjB,OAAO,SAAS,mBAAmB,SAAS,iBAAiB,IAAI,IAAI;CACtE;CACA,KAAK,QAAQ;EACZ,OAAO,OAAO,mBAAmB,OAAO,iBAAiB,IAAI,IAAI,OAAO;CACzE;AACD;AACA,IAAI,mBAAmB,cAAc,QAAQ;CAC5C,OAAO;CACP,cAAc;EACb,MAAM;EACN,KAAK,OAAO;CACb;AACD;AACA,IAAI,cAAc,MAAM,oBAAoB,WAAW;CACtD,OAAO;CACP;CACA,YAAY,OAAO;EAClB,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,OAAO;CACb;CACA,OAAO,GAAG,OAAO;EAChB,OAAO,IAAI,YAAY,KAAK;CAC7B;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,QAAQ,IAAI;CAC5B;CACA,QAAQ,UAAU;EACjB,OAAO,SAAS,UAAU,SAAS,QAAQ,IAAI,IAAI;CACpD;CACA,KAAK,QAAQ;EACZ,OAAO,OAAO,UAAU,OAAO,QAAQ,IAAI,IAAI,OAAO;CACvD;AACD;AACA,IAAI,eAAe,MAAM,qBAAqB,WAAW;CACxD,OAAO;CACP;CACA,YAAY,OAAO;EAClB,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,OAAO;CACb;CACA,OAAO,GAAG,OAAO;EAChB,OAAO,IAAI,aAAa,KAAK;CAC9B;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,SAAS,IAAI;CAC7B;CACA,QAAQ,UAAU;EACjB,MAAM,QAAQ,KAAK,MAAM,QAAQ,QAAQ;EACzC,OAAO,IAAI,aAAa,KAAK;CAC9B;CACA,KAAK,QAAQ;EACZ,OAAO,OAAO,SAAS,OAAO,OAAO,KAAK,KAAK,IAAI,OAAO;CAC3D;AACD;AACA,IAAI,gBAAgB,MAAM,sBAAsB,WAAW;CAC1D,OAAO;CACP;CACA;CACA;CACA;CACA;CACA,YAAY,SAAS;EACpB,MAAM;EACN,KAAK,SAAS,QAAQ;EACtB,KAAK,OAAO,QAAQ;EACpB,KAAK,OAAO,gBAAgB,QAAQ,QAAQ,CAAC,CAAC;EAC9C,KAAK,UAAU,QAAQ;EACvB,KAAK,WAAW,QAAQ;EACxB,KAAK,OAAO;CACb;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,UAAU,IAAI;CAC9B;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,cAAc;GACxB,QAAQ,KAAK;GACb,MAAM,KAAK,KAAK,QAAQ,QAAQ;GAChC,MAAM,KAAK,KAAK,KAAK,QAAQ,kBAAkB,KAAK,QAAQ,CAAC;GAC7D,SAAS,KAAK;GACd,UAAU,KAAK;EAChB,CAAC;CACF;CACA,KAAK,QAAQ;EACZ,OAAO,WAAW,QAAQ,OAAO,KAAK,KAAK,KAAK,MAAM,GAAG,GAAG,KAAK,KAAK,KAAK,cAAc,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC;CACvH;CACA,gBAAgB;EACf,OAAO,KAAK,KAAK,cAAc;CAChC;AACD;AACA,IAAI,UAAU,cAAc,WAAW;CACtC,OAAO;CACP;CACA;CACA,YAAY,SAAS;EACpB,MAAM;EACN,KAAK,QAAQ,gBAAgB,QAAQ,KAAK;EAC1C,KAAK,UAAU,QAAQ;EACvB,KAAK,OAAO;CACb;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,QAAQ,IAAI;CAC5B;CACA,QAAQ,UAAU;EACjB,OAAO,SAAS,UAAU,SAAS,QAAQ,IAAI,IAAI;CACpD;CACA,KAAK,QAAQ;EACZ,IAAI,OAAO,SAAS,OAAO,OAAO,QAAQ,IAAI;EAC9C,OAAO,WAAW,QAAQ,KAAK,MAAM,QAAQ,MAAM,OAAO,MAAM,QAAQ,CAAC,CAAC,KAAK,YAAY,EAAE,KAAK,MAAM,CAAC,CAAC;CAC3G;AACD;AACA,IAAI,gBAAgB,MAAM,sBAAsB,WAAW;CAC1D,OAAO;CACP;CACA;CACA,YAAY,IAAI,MAAM;EACrB,MAAM;EACN,IAAI,OAAO,WAAW,SAAS,KAAK,GAAG,MAAM,gBAAgB,wBAAwB,uBAAuB,GAAG,2BAA2B,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;EAC1J,KAAK,KAAK;EACV,KAAK,OAAO;EACZ,KAAK,OAAO;CACb;CACA,OAAO,MAAM,MAAM;EAClB,OAAO,IAAI,cAAc,SAAS,IAAI;CACvC;CACA,OAAO,IAAI,MAAM;EAChB,OAAO,IAAI,cAAc,OAAO,IAAI;CACrC;CACA,OAAO,IAAI,MAAM;EAChB,OAAO,IAAI,cAAc,OAAO,IAAI;CACrC;CACA,OAAO,IAAI,MAAM;EAChB,OAAO,IAAI,cAAc,OAAO,IAAI;CACrC;CACA,OAAO,IAAI,MAAM;EAChB,OAAO,IAAI,cAAc,OAAO,IAAI;CACrC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,UAAU,IAAI;CAC9B;CACA,QAAQ,UAAU;EACjB,OAAO,KAAK,SAAS,KAAK,IAAI,OAAO,IAAI,cAAc,KAAK,IAAI,KAAK,KAAK,QAAQ,QAAQ,CAAC;CAC5F;CACA,KAAK,QAAQ;EACZ,OAAO,KAAK,OAAO,KAAK,KAAK,KAAK,MAAM,IAAI,OAAO;CACpD;AACD;;;;;;;;;;;;;;AAcA,IAAI,iBAAiB,MAAM,uBAAuB,WAAW;CAC5D,OAAO;CACP;CACA;CACA;CACA;CACA,YAAY,SAAS;EACpB,MAAM;EACN,KAAK,KAAK,QAAQ;EAClB,KAAK,OAAO,QAAQ,QAAQ,QAAQ,KAAK,SAAS,IAAI,gBAAgB,QAAQ,IAAI,IAAI,CAAC;EACvF,KAAK,cAAc,QAAQ,eAAe,QAAQ,YAAY,SAAS,IAAI,gBAAgB,QAAQ,WAAW,IAAI,KAAK;EACvH,KAAK,UAAU,QAAQ,WAAW,QAAQ,QAAQ,SAAS,IAAI,gBAAgB,QAAQ,OAAO,IAAI,KAAK;EACvG,KAAK,OAAO;CACb;CACA,OAAO,UAAU,SAAS;EACzB,OAAO,IAAI,eAAe;GACzB,IAAI;GACJ,GAAG;EACJ,CAAC;CACF;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,WAAW,IAAI;CAC/B;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,eAAe;GACzB,IAAI,KAAK;GACT,MAAM,KAAK,KAAK,KAAK,QAAQ,IAAI,QAAQ,QAAQ,CAAC;GAClD,GAAG,UAAU,eAAe,KAAK,aAAa,KAAK,SAAS,KAAK,QAAQ,QAAQ,CAAC,CAAC;GACnF,GAAG,UAAU,WAAW,KAAK,SAAS,KAAK,cAAc,UAAU,QAAQ,QAAQ,CAAC,CAAC;EACtF,CAAC;CACF;CACA,KAAK,QAAQ;EACZ,OAAO,WAAW,QAAQ;GACzB,GAAG,KAAK,KAAK,KAAK,cAAc,IAAI,KAAK,MAAM,CAAC;GAChD,IAAI,KAAK,eAAe,CAAC,EAAA,CAAG,KAAK,eAAe,KAAK,KAAK,MAAM,CAAC;GACjE,IAAI,KAAK,WAAW,CAAC,EAAA,CAAG,KAAK,oBAAoB,UAAU,KAAK,KAAK,MAAM,CAAC;EAC7E,CAAC;CACF;AACD;AACA,IAAI,mBAAmB,MAAM,yBAAyB,WAAW;CAChE,OAAO;CACP;CACA;CACA,YAAY,IAAI,MAAM;EACrB,MAAM;EACN,KAAK,KAAK;EACV,KAAK,OAAO,gBAAgB,IAAI;EAChC,KAAK,OAAO;CACb;CACA,OAAO,GAAG,IAAI,MAAM;EACnB,OAAO,IAAI,iBAAiB,IAAI,IAAI;CACrC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,aAAa,IAAI;CACjC;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,iBAAiB,KAAK,IAAI,KAAK,KAAK,KAAK,QAAQ,IAAI,QAAQ,QAAQ,CAAC,CAAC;CACnF;CACA,KAAK,QAAQ;EACZ,OAAO,WAAW,QAAQ,KAAK,KAAK,KAAK,cAAc,IAAI,KAAK,MAAM,CAAC,CAAC;CACzE;AACD;AACA,IAAI,WAAW,MAAM,iBAAiB,WAAW;CAChD,OAAO;CACP;CACA;CACA,YAAY,MAAM,YAAY;EAC7B,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,aAAa;EAClB,KAAK,OAAO;CACb;CACA,OAAO,GAAG,MAAM,YAAY;EAC3B,OAAO,IAAI,SAAS,MAAM,UAAU;CACrC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,KAAK,IAAI;CACzB;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,SAAS,KAAK,KAAK,QAAQ,QAAQ,GAAG,KAAK,UAAU;CACjE;CACA,KAAK,QAAQ;EACZ,OAAO,KAAK,KAAK,KAAK,MAAM;CAC7B;AACD;AACA,IAAI,WAAW,MAAM,iBAAiB,WAAW;CAChD,OAAO;CACP;CACA;CACA,YAAY,UAAU,UAAU;EAC/B,MAAM;EACN,IAAI,SAAS,WAAW,GAAG,MAAM,gBAAgB,uBAAuB,yCAAyC,EAAE,MAAM;GACxH,MAAM;GACN,OAAO;EACR,EAAE,CAAC;EACH,KAAK,WAAW,OAAO,OAAO,SAAS,KAAK,WAAW,OAAO,OAAO;GACpE,WAAW,OAAO;GAClB,OAAO,OAAO;EACf,CAAC,CAAC,CAAC;EACH,KAAK,WAAW;EAChB,KAAK,OAAO;CACb;CACA,OAAO,GAAG,UAAU,UAAU;EAC7B,OAAO,IAAI,SAAS,UAAU,QAAQ;CACvC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,KAAK,IAAI;CACzB;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,SAAS,KAAK,SAAS,KAAK,YAAY;GAClD,WAAW,OAAO,UAAU,QAAQ,QAAQ;GAC5C,OAAO,OAAO,MAAM,QAAQ,QAAQ;EACrC,EAAE,GAAG,KAAK,UAAU,QAAQ,QAAQ,CAAC;CACtC;CACA,KAAK,QAAQ;EACZ,MAAM,WAAW,KAAK;EACtB,OAAO,WAAW,QAAQ,CAAC,GAAG,KAAK,SAAS,SAAS,WAAW,OAAO,OAAO,UAAU,KAAK,MAAM,SAAS,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,aAAa,KAAK,IAAI,CAAC,IAAI,OAAO,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC;CACtM;AACD;AACA,IAAI,iBAAiB,MAAM,uBAAuB,WAAW;CAC5D,OAAO;CACP;CACA,YAAY,SAAS;EACpB,MAAM;EACN,KAAK,UAAU,gBAAgB,QAAQ,KAAK,UAAU,OAAO,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;EAClF,KAAK,OAAO;CACb;CACA,OAAO,MAAM,KAAK,OAAO;EACxB,OAAO;GACN;GACA;EACD;CACD;CACA,OAAO,YAAY,SAAS;EAC3B,OAAO,IAAI,eAAe,OAAO;CAClC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,WAAW,IAAI;CAC/B;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,eAAe,KAAK,QAAQ,KAAK,WAAW;GACtD,KAAK,MAAM;GACX,OAAO,MAAM,MAAM,QAAQ,QAAQ;EACpC,EAAE,CAAC;CACJ;CACA,KAAK,QAAQ;EACZ,OAAO,WAAW,QAAQ,KAAK,QAAQ,KAAK,gBAAgB,MAAM,MAAM,KAAK,MAAM,CAAC,CAAC;CACtF;AACD;AACA,IAAI,cAAc,MAAM,oBAAoB,QAAQ;CACnD,OAAO;CACP;CACA;CACA,YAAY,MAAM,KAAK;EACtB,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,MAAM;EACX,KAAK,OAAO;CACb;CACA,OAAO,IAAI,MAAM;EAChB,OAAO,IAAI,YAAY,MAAM,KAAK;CACnC;CACA,OAAO,KAAK,MAAM;EACjB,OAAO,IAAI,YAAY,MAAM,MAAM;CACpC;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,YAAY,KAAK,KAAK,QAAQ,QAAQ,GAAG,KAAK,GAAG;CAC7D;;;;;;CAMA,UAAU;EACT,OAAO,IAAI,YAAY,KAAK,MAAM,KAAK,QAAQ,QAAQ,SAAS,KAAK;CACtE;AACD;AACA,IAAI,mBAAmB,MAAM,yBAAyB,WAAW;CAChE,OAAO;CACP;CACA;CACA;CACA,YAAY,MAAM,UAAU,QAAQ,SAAS;EAC5C,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,UAAU;EACf,KAAK,UAAU,WAAW,QAAQ,SAAS,IAAI,gBAAgB,OAAO,IAAI,KAAK;EAC/E,KAAK,OAAO;CACb;CACA,OAAO,GAAG,MAAM,UAAU,QAAQ,SAAS;EAC1C,OAAO,IAAI,iBAAiB,MAAM,SAAS,OAAO;CACnD;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,aAAa,IAAI;CACjC;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,iBAAiB,KAAK,KAAK,QAAQ,QAAQ,GAAG,KAAK,SAAS,KAAK,SAAS,KAAK,cAAc,UAAU,QAAQ,QAAQ,CAAC,CAAC;CACrI;CACA,KAAK,QAAQ;EACZ,OAAO,WAAW,QAAQ,OAAO,KAAK,KAAK,KAAK,MAAM,GAAG,IAAI,KAAK,WAAW,CAAC,EAAA,CAAG,KAAK,oBAAoB,UAAU,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC;CACxI;AACD;AACA,IAAI,iBAAiB,MAAM,uBAAuB,WAAW;CAC5D,OAAO;CACP;CACA,YAAY,QAAQ;EACnB,MAAM;EACN,KAAK,SAAS,gBAAgB,MAAM;EACpC,KAAK,OAAO;CACb;CACA,OAAO,GAAG,QAAQ;EACjB,OAAO,IAAI,eAAe,MAAM;CACjC;CACA,OAAO,WAAW,QAAQ;EACzB,OAAO,IAAI,eAAe,OAAO,KAAK,UAAU,IAAI,YAAY,KAAK,CAAC,CAAC;CACxE;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,KAAK,IAAI;CACzB;CACA,QAAQ,UAAU;EACjB,IAAI,SAAS,MAAM,OAAO,SAAS,KAAK,IAAI;EAC5C,OAAO,IAAI,eAAe,KAAK,OAAO,KAAK,UAAU,MAAM,QAAQ,QAAQ,CAAC,CAAC;CAC9E;CACA,KAAK,QAAQ;EACZ,IAAI,OAAO,MAAM,OAAO,OAAO,KAAK,IAAI;EACxC,OAAO,WAAW,QAAQ,KAAK,OAAO,KAAK,gBAAgB,MAAM,KAAK,MAAM,CAAC,CAAC;CAC/E;AACD;AACA,IAAI,aAAa,MAAM,mBAAmB,WAAW;CACpD,OAAO;CACP;CACA;CACA;CACA,YAAY,IAAI,MAAM,OAAO;EAC5B,MAAM;EACN,KAAK,KAAK;EACV,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,OAAO;CACb;CACA,OAAO,GAAG,MAAM,OAAO;EACtB,OAAO,IAAI,WAAW,MAAM,MAAM,KAAK;CACxC;CACA,OAAO,IAAI,MAAM,OAAO;EACvB,OAAO,IAAI,WAAW,OAAO,MAAM,KAAK;CACzC;CACA,OAAO,GAAG,MAAM,OAAO;EACtB,OAAO,IAAI,WAAW,MAAM,MAAM,KAAK;CACxC;CACA,OAAO,GAAG,MAAM,OAAO;EACtB,OAAO,IAAI,WAAW,MAAM,MAAM,KAAK;CACxC;CACA,OAAO,IAAI,MAAM,OAAO;EACvB,OAAO,IAAI,WAAW,OAAO,MAAM,KAAK;CACzC;CACA,OAAO,IAAI,MAAM,OAAO;EACvB,OAAO,IAAI,WAAW,OAAO,MAAM,KAAK;CACzC;CACA,OAAO,KAAK,MAAM,OAAO;EACxB,OAAO,IAAI,WAAW,QAAQ,MAAM,KAAK;CAC1C;CACA,OAAO,GAAG,MAAM,OAAO;EACtB,OAAO,IAAI,WAAW,MAAM,MAAM,KAAK;CACxC;CACA,OAAO,MAAM,MAAM,OAAO;EACzB,OAAO,IAAI,WAAW,SAAS,MAAM,KAAK;CAC3C;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,OAAO,IAAI;CAC3B;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,WAAW,KAAK,IAAI,kBAAkB,KAAK,MAAM,QAAQ,GAAG,kBAAkB,KAAK,OAAO,QAAQ,CAAC;CAC/G;CACA,KAAK,QAAQ;EACZ,OAAO,WAAW,QAAQ,OAAO,eAAe,KAAK,MAAM,MAAM,SAAS,eAAe,KAAK,OAAO,MAAM,CAAC,CAAC;CAC9G;AACD;AACA,IAAI,UAAU,MAAM,gBAAgB,WAAW;CAC9C,OAAO;CACP;CACA,YAAY,OAAO;EAClB,MAAM;EACN,KAAK,QAAQ,gBAAgB,KAAK;EAClC,KAAK,OAAO;CACb;CACA,OAAO,GAAG,OAAO;EAChB,OAAO,IAAI,QAAQ,KAAK;CACzB;CACA,OAAO,OAAO;EACb,OAAO,IAAI,QAAQ,CAAC,CAAC;CACtB;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,IAAI,IAAI;CACxB;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,QAAQ,KAAK,MAAM,KAAK,SAAS,KAAK,QAAQ,QAAQ,CAAC,CAAC;CACpE;CACA,KAAK,QAAQ;EACZ,OAAO,WAAW,QAAQ,KAAK,MAAM,KAAK,eAAe,KAAK,KAAK,MAAM,CAAC,CAAC;CAC5E;AACD;AACA,IAAI,SAAS,MAAM,eAAe,WAAW;CAC5C,OAAO;CACP;CACA,YAAY,OAAO;EAClB,MAAM;EACN,KAAK,QAAQ,gBAAgB,KAAK;EAClC,KAAK,OAAO;CACb;CACA,OAAO,GAAG,OAAO;EAChB,OAAO,IAAI,OAAO,KAAK;CACxB;CACA,OAAO,QAAQ;EACd,OAAO,IAAI,OAAO,CAAC,CAAC;CACrB;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,GAAG,IAAI;CACvB;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,OAAO,KAAK,MAAM,KAAK,SAAS,KAAK,QAAQ,QAAQ,CAAC,CAAC;CACnE;CACA,KAAK,QAAQ;EACZ,OAAO,WAAW,QAAQ,KAAK,MAAM,KAAK,eAAe,KAAK,KAAK,MAAM,CAAC,CAAC;CAC5E;AACD;AACA,IAAI,aAAa,MAAM,mBAAmB,WAAW;CACpD,OAAO;CACP;CACA;CACA,YAAY,UAAU,YAAY,OAAO;EACxC,MAAM;EACN,KAAK,YAAY;EACjB,KAAK,WAAW;EAChB,KAAK,OAAO;CACb;CACA,OAAO,OAAO,UAAU;EACvB,OAAO,IAAI,WAAW,UAAU,KAAK;CACtC;CACA,OAAO,UAAU,UAAU;EAC1B,OAAO,IAAI,WAAW,UAAU,IAAI;CACrC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,OAAO,IAAI;CAC3B;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,WAAW,KAAK,SAAS,QAAQ,QAAQ,GAAG,KAAK,SAAS;CACtE;CACA,KAAK,QAAQ;EACZ,OAAO,OAAO,SAAS,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO;CAC9D;AACD;AACA,IAAI,gBAAgB,MAAM,sBAAsB,WAAW;CAC1D,OAAO;CACP;CACA;CACA,YAAY,MAAM,QAAQ;EACzB,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,SAAS;EACd,KAAK,OAAO;CACb;CACA,OAAO,OAAO,MAAM;EACnB,OAAO,IAAI,cAAc,MAAM,IAAI;CACpC;CACA,OAAO,UAAU,MAAM;EACtB,OAAO,IAAI,cAAc,MAAM,KAAK;CACrC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,UAAU,IAAI;CAC9B;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,cAAc,KAAK,KAAK,QAAQ,QAAQ,GAAG,KAAK,MAAM;CAClE;CACA,KAAK,QAAQ;EACZ,OAAO,KAAK,KAAK,KAAK,MAAM;CAC7B;AACD;AACA,IAAI,UAAU,MAAM,gBAAgB,WAAW;CAC9C,OAAO;CACP;CACA,YAAY,MAAM;EACjB,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,OAAO;CACb;CACA,cAAc;EACb,OAAO;CACR;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,IAAI,IAAI;CACxB;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,QAAQ,KAAK,KAAK,QAAQ,QAAQ,CAAC;CAC/C;CACA,KAAK,QAAQ;EACZ,OAAO,KAAK,KAAK,KAAK,MAAM;CAC7B;AACD;AACA,IAAI,cAAc,MAAM,oBAAoB,QAAQ;CACnD,OAAO;CACP;CACA;CACA,YAAY,MAAM,OAAO;EACxB,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,OAAO;CACb;CACA,OAAO,GAAG,MAAM,OAAO;EACtB,OAAO,IAAI,YAAY,MAAM,KAAK;CACnC;CACA,QAAQ,UAAU;EACjB,OAAO,SAAS,cAAc,SAAS,YAAY,IAAI,IAAI;CAC5D;AACD;AACA,IAAI,UAAU,MAAM,gBAAgB,QAAQ;CAC3C,OAAO;CACP;CACA;CACA;CACA;CACA,YAAY,UAAU,QAAQ,IAAI,UAAU,OAAO;EAClD,MAAM;EACN,KAAK,WAAW;EAChB,KAAK,SAAS;EACd,KAAK,UAAU;EACf,KAAK,KAAK;EACV,KAAK,OAAO;CACb;CACA,OAAO,MAAM,QAAQ,IAAI,UAAU,OAAO;EACzC,OAAO,IAAI,QAAQ,SAAS,QAAQ,IAAI,OAAO;CAChD;CACA,OAAO,KAAK,QAAQ,IAAI,UAAU,OAAO;EACxC,OAAO,IAAI,QAAQ,QAAQ,QAAQ,IAAI,OAAO;CAC/C;CACA,OAAO,MAAM,QAAQ,IAAI,UAAU,OAAO;EACzC,OAAO,IAAI,QAAQ,SAAS,QAAQ,IAAI,OAAO;CAChD;CACA,OAAO,KAAK,QAAQ,IAAI,UAAU,OAAO;EACxC,OAAO,IAAI,QAAQ,QAAQ,QAAQ,IAAI,OAAO;CAC/C;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,QAAQ,KAAK,UAAU,KAAK,OAAO,QAAQ,QAAQ,GAAG,KAAK,GAAG,SAAS,mBAAmB,KAAK,GAAG,QAAQ,QAAQ,IAAI,KAAK,GAAG,QAAQ,QAAQ,GAAG,KAAK,OAAO;CACzK;AACD;AACA,IAAI,iBAAiB,MAAM,uBAAuB,QAAQ;CACzD,OAAO;CACP;CACA;;;;;;CAMA;CACA,YAAY,OAAO,MAAM,OAAO;EAC/B,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,OAAO;EACZ,KAAK,QAAQ,QAAQ,eAAe,KAAK,IAAI,KAAK;EAClD,KAAK,OAAO;CACb;CACA,OAAO,GAAG,OAAO,MAAM,OAAO;EAC7B,OAAO,IAAI,eAAe,OAAO,MAAM,KAAK;CAC7C;CACA,UAAU,OAAO;EAChB,OAAO,IAAI,eAAe,KAAK,OAAO,KAAK,MAAM,KAAK;CACvD;AACD;AACA,SAAS,iBAAiB,UAAU,OAAO;CAC1C,IAAI,OAAO,UAAU,YAAY,EAAE,OAAO,cAAc,KAAK,KAAK,SAAS,IAAI,MAAM,gBAAgB,wBAAwB,GAAG,SAAS,gCAAgC,OAAO,iBAAiB,QAAQ,OAAO,KAAK,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACjP;AACA,IAAI,YAAY,MAAM,kBAAkB,SAAS;CAChD,OAAO;CACP;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,YAAY,SAAS;EACpB,MAAM;EACN,iBAAiB,SAAS,QAAQ,KAAK;EACvC,iBAAiB,UAAU,QAAQ,MAAM;EACzC,KAAK,OAAO,QAAQ;EACpB,KAAK,QAAQ,QAAQ,SAAS,QAAQ,MAAM,SAAS,IAAI,gBAAgB,QAAQ,KAAK,IAAI,KAAK;EAC/F,KAAK,aAAa,gBAAgB,QAAQ,UAAU;EACpD,KAAK,QAAQ,QAAQ;EACrB,KAAK,UAAU,QAAQ,WAAW,QAAQ,QAAQ,SAAS,IAAI,gBAAgB,QAAQ,OAAO,IAAI,KAAK;EACvG,KAAK,WAAW,QAAQ;EACxB,KAAK,aAAa,QAAQ,cAAc,QAAQ,WAAW,SAAS,IAAI,gBAAgB,QAAQ,UAAU,IAAI,KAAK;EACnH,KAAK,UAAU,QAAQ,WAAW,QAAQ,QAAQ,SAAS,IAAI,gBAAgB,QAAQ,OAAO,IAAI,KAAK;EACvG,KAAK,SAAS,QAAQ;EACtB,KAAK,QAAQ,QAAQ;EACrB,KAAK,SAAS,QAAQ;EACtB,KAAK,kBAAkB,yBAAyB,QAAQ,eAAe;EACvE,KAAK,OAAO;CACb;CACA,OAAO,KAAK,MAAM;EACjB,OAAO,IAAI,UAAU;GACpB;GACA,OAAO,KAAK;GACZ,YAAY,CAAC;GACb,OAAO,KAAK;GACZ,SAAS,KAAK;GACd,UAAU,KAAK;GACf,YAAY,KAAK;GACjB,SAAS,KAAK;GACd,QAAQ,KAAK;GACb,OAAO,KAAK;GACZ,QAAQ,KAAK;GACb,iBAAiB,KAAK;EACvB,CAAC;CACF;CACA,OAAO,SAAS;EACf,OAAO,IAAI,UAAU;GACpB,OAAO,KAAK;GACZ,YAAY,CAAC;GACb,OAAO,KAAK;GACZ,SAAS,KAAK;GACd,UAAU,KAAK;GACf,YAAY,KAAK;GACjB,SAAS,KAAK;GACd,QAAQ,KAAK;GACb,OAAO,KAAK;GACZ,QAAQ,KAAK;GACb,iBAAiB,KAAK;EACvB,CAAC;CACF;CACA,YAAY;EACX,OAAO;GACN,GAAG,KAAK,SAAS,KAAK,IAAI,EAAE,MAAM,KAAK,KAAK,IAAI,CAAC;GACjD,OAAO,KAAK;GACZ,YAAY,KAAK;GACjB,OAAO,KAAK;GACZ,SAAS,KAAK;GACd,UAAU,KAAK;GACf,YAAY,KAAK;GACjB,SAAS,KAAK;GACd,QAAQ,KAAK;GACb,OAAO,KAAK;GACZ,QAAQ,KAAK;GACb,iBAAiB,KAAK;EACvB;CACD;CACA,SAAS,MAAM;EACd,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB;EACD,CAAC;CACF;CACA,UAAU,OAAO;EAChB,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB,OAAO,MAAM,SAAS,IAAI,QAAQ,KAAK;EACxC,CAAC;CACF;CACA,eAAe,YAAY;EAC1B,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB;EACD,CAAC;CACF;CACA,cAAc,OAAO,MAAM;EAC1B,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB,YAAY,CAAC,GAAG,KAAK,YAAY,IAAI,eAAe,OAAO,IAAI,CAAC;EACjE,CAAC;CACF;CACA,UAAU,OAAO;EAChB,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB;EACD,CAAC;CACF;CACA,YAAY,SAAS;EACpB,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB,SAAS,QAAQ,SAAS,IAAI,UAAU,KAAK;EAC9C,CAAC;CACF;CACA,aAAa,UAAU,MAAM;EAC5B,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB,UAAU,UAAU,OAAO,KAAK;EACjC,CAAC;CACF;CACA,eAAe,YAAY;EAC1B,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB,YAAY,WAAW,SAAS,IAAI,aAAa,KAAK;EACvD,CAAC;CACF;CACA,YAAY,SAAS;EACpB,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB,SAAS,QAAQ,SAAS,IAAI,UAAU,KAAK;EAC9C,CAAC;CACF;CACA,WAAW,QAAQ;EAClB,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB;EACD,CAAC;CACF;CACA,UAAU,OAAO;EAChB,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB;EACD,CAAC;CACF;CACA,WAAW,QAAQ;EAClB,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB;EACD,CAAC;CACF;CACA,oBAAoB,iBAAiB;EACpC,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB;EACD,CAAC;CACF;CACA,QAAQ,UAAU;EACjB,MAAM,gBAAgB,KAAK,MAAM,QAAQ,QAAQ;EACjD,MAAM,YAAY,IAAI,UAAU;GAC/B,GAAG,kBAAkB,KAAK,IAAI,EAAE,MAAM,cAAc,IAAI,CAAC;GACzD,OAAO,KAAK,OAAO,KAAK,SAAS,KAAK,QAAQ,QAAQ,CAAC;GACvD,YAAY,KAAK,WAAW,KAAK,eAAe,IAAI,eAAe,WAAW,OAAO,WAAW,KAAK,SAAS,YAAY,SAAS,UAAU,SAAS,QAAQ,WAAW,IAAI,IAAI,WAAW,OAAO,WAAW,KAAK,QAAQ,QAAQ,GAAG,WAAW,KAAK,CAAC;GACvP,OAAO,KAAK,OAAO,QAAQ,QAAQ;GACnC,SAAS,KAAK,SAAS,KAAK,cAAc,UAAU,QAAQ,QAAQ,CAAC;GACrE,UAAU,KAAK;GACf,YAAY,KAAK,YAAY,KAAK,SAAS,KAAK,QAAQ,QAAQ,CAAC;GACjE,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,QAAQ,QAAQ,CAAC;GAC3D,QAAQ,KAAK,QAAQ,QAAQ,QAAQ;GACrC,OAAO,mBAAmB,KAAK,OAAO,QAAQ;GAC9C,QAAQ,mBAAmB,KAAK,QAAQ,QAAQ;GAChD,iBAAiB,KAAK;EACvB,CAAC;EACD,OAAO,SAAS,SAAS,SAAS,OAAO,SAAS,IAAI;CACvD;CACA,oBAAoB;EACnB,MAAM,OAAO,CAAC;EACd,MAAM,YAAY,YAAY;GAC7B,KAAK,KAAK,GAAG,OAAO;EACrB;EACA,IAAI,KAAK,MAAM,SAAS,wBAAwB,SAAS,KAAK,KAAK,MAAM,kBAAkB,CAAC;OACvF,IAAI,KAAK,MAAM,SAAS,mBAAmB,KAAK,MAAM,OAAO,KAAK,KAAK,MAAM,SAAS,IAAI,kBAAkB,CAAC;EAClH,KAAK,MAAM,cAAc,KAAK,YAAY,IAAI,EAAE,WAAW,KAAK,SAAS,YAAY,SAAS,WAAW,KAAK,kBAAkB,CAAC;EACjI,IAAI,KAAK,OAAO,SAAS,KAAK,MAAM,kBAAkB,CAAC;EACvD,IAAI,KAAK,QAAQ,SAAS,KAAK,OAAO,kBAAkB,CAAC;EACzD,KAAK,MAAM,aAAa,KAAK,WAAW,CAAC,GAAG,SAAS,UAAU,KAAK,kBAAkB,CAAC;EACvF,KAAK,MAAM,QAAQ,KAAK,cAAc,CAAC,GAAG,SAAS,KAAK,kBAAkB,CAAC;EAC3E,KAAK,MAAM,QAAQ,KAAK,WAAW,CAAC,GAAG,SAAS,KAAK,kBAAkB,CAAC;EACxE,KAAK,MAAM,QAAQ,KAAK,SAAS,CAAC,GAAG;GACpC,IAAI,KAAK,OAAO,SAAS,wBAAwB,SAAS,KAAK,OAAO,MAAM,kBAAkB,CAAC;QAC1F,IAAI,KAAK,OAAO,SAAS,mBAAmB,KAAK,MAAM,OAAO,KAAK,OAAO,MAAM,SAAS,IAAI,kBAAkB,CAAC;GACrH,IAAI,KAAK,GAAG,SAAS,kBAAkB,KAAK,KAAK,KAAK,GAAG,MAAM,KAAK,GAAG,KAAK;QACvE,SAAS,KAAK,GAAG,kBAAkB,CAAC;EAC1C;EACA,IAAI,OAAO,KAAK,UAAU,UAAU,SAAS,KAAK,MAAM,kBAAkB,CAAC;EAC3E,IAAI,OAAO,KAAK,WAAW,UAAU,SAAS,KAAK,OAAO,kBAAkB,CAAC;EAC7E,OAAO;CACR;CACA,mBAAmB;EAClB,MAAM,OAAO,CAAC;EACd,MAAM,YAAY,WAAW;GAC5B,KAAK,KAAK,GAAG,MAAM;EACpB;EACA,IAAI,KAAK,MAAM,SAAS,wBAAwB,SAAS,KAAK,KAAK,MAAM,iBAAiB,CAAC;OACtF,IAAI,KAAK,MAAM,SAAS,mBAAmB,KAAK,MAAM,OAAO,KAAK,KAAK,MAAM,SAAS,IAAI,iBAAiB,CAAC;EACjH,KAAK,MAAM,cAAc,KAAK,YAAY,IAAI,EAAE,WAAW,KAAK,SAAS,YAAY,SAAS,WAAW,KAAK,iBAAiB,CAAC;EAChI,IAAI,KAAK,OAAO,SAAS,KAAK,MAAM,iBAAiB,CAAC;EACtD,IAAI,KAAK,QAAQ,SAAS,KAAK,OAAO,iBAAiB,CAAC;EACxD,KAAK,MAAM,aAAa,KAAK,WAAW,CAAC,GAAG,SAAS,UAAU,KAAK,iBAAiB,CAAC;EACtF,KAAK,MAAM,QAAQ,KAAK,cAAc,CAAC,GAAG,SAAS,KAAK,iBAAiB,CAAC;EAC1E,KAAK,MAAM,QAAQ,KAAK,WAAW,CAAC,GAAG,SAAS,KAAK,iBAAiB,CAAC;EACvE,KAAK,MAAM,QAAQ,KAAK,SAAS,CAAC,GAAG;GACpC,IAAI,KAAK,OAAO,SAAS,wBAAwB,SAAS,KAAK,OAAO,MAAM,iBAAiB,CAAC;QACzF,IAAI,KAAK,OAAO,SAAS,mBAAmB,KAAK,MAAM,OAAO,KAAK,OAAO,MAAM,SAAS,IAAI,iBAAiB,CAAC;GACpH,IAAI,EAAE,KAAK,GAAG,SAAS,mBAAmB,SAAS,KAAK,GAAG,iBAAiB,CAAC;EAC9E;EACA,IAAI,OAAO,KAAK,UAAU,UAAU,SAAS,KAAK,MAAM,iBAAiB,CAAC;EAC1E,IAAI,OAAO,KAAK,WAAW,UAAU,SAAS,KAAK,OAAO,iBAAiB,CAAC;EAC5E,OAAO;CACR;CACA,aAAa;EACZ,OAAO;CACR;AACD;AACA,IAAI,yBAAyB,cAAc,QAAQ,CAAC;AACpD,IAAI,0BAA0B,cAAc,uBAAuB;CAClE,OAAO;CACP,cAAc;EACb,MAAM;EACN,KAAK,OAAO;CACb;CACA,2BAA2B;EAC1B,OAAO;CACR;AACD;AACA,IAAI,4BAA4B,cAAc,uBAAuB;CACpE,OAAO;CACP;CACA,YAAY,KAAK;EAChB,MAAM;EACN,KAAK,MAAM,iBAAiB,GAAG;EAC/B,KAAK,OAAO;CACb;CACA,2BAA2B;EAC1B,OAAO;CACR;AACD;AACA,IAAI,mBAAmB,MAAM,yBAAyB,QAAQ;CAC7D,OAAO;CACP;CACA;CACA,YAAY,SAAS,QAAQ;EAC5B,MAAM;EACN,KAAK,UAAU,gBAAgB,OAAO;EACtC,KAAK,SAAS;EACd,KAAK,OAAO;CACb;CACA,OAAO,GAAG,SAAS;EAClB,OAAO,IAAI,iBAAiB,SAAS,IAAI,wBAAwB,CAAC;CACnE;;;;;;CAMA,OAAO,YAAY;EAClB,OAAO,IAAI,iBAAiB,CAAC,GAAG,IAAI,wBAAwB,CAAC;CAC9D;CACA,YAAY;EACX,OAAO,IAAI,iBAAiB,KAAK,SAAS,IAAI,wBAAwB,CAAC;CACxE;CACA,YAAY,KAAK;EAChB,OAAO,IAAI,iBAAiB,KAAK,SAAS,IAAI,0BAA0B,GAAG,CAAC;CAC7E;AACD;AACA,IAAI,YAAY,MAAM,kBAAkB,SAAS;CAChD,OAAO;CACP;CACA;CACA;CACA;CACA,YAAY,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,YAAY,WAAW;EACtD,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,OAAO,WAAW,IAAI;EAC3B,KAAK,aAAa;EAClB,KAAK,YAAY,aAAa,UAAU,SAAS,IAAI,gBAAgB,SAAS,IAAI,KAAK;EACvF,KAAK,OAAO;CACb;CACA,OAAO,KAAK,OAAO;EAClB,OAAO,IAAI,UAAU,KAAK;CAC3B;CACA,SAAS,MAAM;EACd,OAAO,IAAI,UAAU,KAAK,OAAO,KAAK,KAAK,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,YAAY,KAAK,SAAS;CAClG;CACA,cAAc,WAAW;EACxB,OAAO,IAAI,UAAU,KAAK,OAAO,KAAK,KAAK,KAAK,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,YAAY,SAAS;CAClG;CACA,eAAe,YAAY;EAC1B,OAAO,IAAI,UAAU,KAAK,OAAO,KAAK,KAAK,KAAK,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,YAAY,KAAK,SAAS;CAClG;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,UAAU,mBAAmB,KAAK,OAAO,QAAQ,GAAG,KAAK,KAAK,KAAK,QAAQ,iBAAiB,KAAK,QAAQ,CAAC,GAAG,KAAK,aAAa,kBAAkB,KAAK,YAAY,QAAQ,IAAI,KAAK,GAAG,KAAK,WAAW,KAAK,SAAS,sBAAsB,MAAM,QAAQ,CAAC,CAAC;CACtQ;CACA,mBAAmB;EAClB,MAAM,OAAO,CAAC;EACd,KAAK,MAAM,OAAO,KAAK,MAAM,KAAK,MAAM,SAAS,OAAO,OAAO,GAAG,GAAG,IAAI,MAAM,SAAS,eAAe,MAAM,SAAS,sBAAsB,KAAK,KAAK,KAAK;OACtJ,IAAI,MAAM,SAAS,YAAY,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAC;EACzE,IAAI,KAAK,YAAY,OAAO,SAAS,iBAC/B;QAAA,MAAM,SAAS,OAAO,OAAO,KAAK,WAAW,OAAO,GAAG,GAAG,IAAI,MAAM,SAAS,eAAe,MAAM,SAAS,sBAAsB,KAAK,KAAK,KAAK;EAAA;EAEtJ,KAAK,MAAM,QAAQ,KAAK,aAAa,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,WAAW,KAAK,KAAK,GAAG,KAAK,KAAK,iBAAiB,CAAC;EACpH,OAAO;CACR;CACA,aAAa;EACZ,OAAO;CACR;AACD;AACA,IAAI,YAAY,MAAM,kBAAkB,SAAS;CAChD,OAAO;CACP;CACA;CACA;CACA;CACA,YAAY,OAAO,MAAM,CAAC,GAAG,OAAO,WAAW;EAC9C,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,MAAM,iBAAiB,GAAG;EAC/B,KAAK,QAAQ;EACb,KAAK,YAAY,aAAa,UAAU,SAAS,IAAI,gBAAgB,SAAS,IAAI,KAAK;EACvF,KAAK,OAAO;CACb;CACA,OAAO,MAAM,OAAO;EACnB,OAAO,IAAI,UAAU,KAAK;CAC3B;CACA,QAAQ,KAAK;EACZ,OAAO,IAAI,UAAU,KAAK,OAAO,KAAK,KAAK,OAAO,KAAK,SAAS;CACjE;CACA,UAAU,OAAO;EAChB,OAAO,IAAI,UAAU,KAAK,OAAO,KAAK,KAAK,OAAO,KAAK,SAAS;CACjE;CACA,cAAc,WAAW;EACxB,OAAO,IAAI,UAAU,KAAK,OAAO,KAAK,KAAK,KAAK,OAAO,SAAS;CACjE;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,UAAU,mBAAmB,KAAK,OAAO,QAAQ,GAAG,iBAAiB,KAAK,KAAK,QAAQ,GAAG,KAAK,OAAO,QAAQ,QAAQ,GAAG,KAAK,WAAW,KAAK,SAAS,sBAAsB,MAAM,QAAQ,CAAC,CAAC;CACzM;CACA,mBAAmB;EAClB,MAAM,OAAO,CAAC;EACd,KAAK,MAAM,SAAS,OAAO,OAAO,KAAK,GAAG,GAAG,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAC;EAClF,IAAI,KAAK,OAAO,KAAK,KAAK,GAAG,KAAK,MAAM,iBAAiB,CAAC;EAC1D,KAAK,MAAM,QAAQ,KAAK,aAAa,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,WAAW,KAAK,KAAK,GAAG,KAAK,KAAK,iBAAiB,CAAC;EACpH,OAAO;CACR;CACA,aAAa;EACZ,OAAO;CACR;AACD;AACA,IAAI,YAAY,MAAM,kBAAkB,SAAS;CAChD,OAAO;CACP;CACA;CACA;CACA,YAAY,OAAO,OAAO,WAAW;EACpC,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,QAAQ;EACb,KAAK,YAAY,aAAa,UAAU,SAAS,IAAI,gBAAgB,SAAS,IAAI,KAAK;EACvF,KAAK,OAAO;CACb;CACA,OAAO,KAAK,OAAO;EAClB,OAAO,IAAI,UAAU,KAAK;CAC3B;CACA,UAAU,OAAO;EAChB,OAAO,IAAI,UAAU,KAAK,OAAO,OAAO,KAAK,SAAS;CACvD;CACA,cAAc,WAAW;EACxB,OAAO,IAAI,UAAU,KAAK,OAAO,KAAK,OAAO,SAAS;CACvD;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,UAAU,mBAAmB,KAAK,OAAO,QAAQ,GAAG,KAAK,OAAO,QAAQ,QAAQ,GAAG,KAAK,WAAW,KAAK,SAAS,sBAAsB,MAAM,QAAQ,CAAC,CAAC;CACnK;CACA,mBAAmB;EAClB,MAAM,OAAO,CAAC;EACd,IAAI,KAAK,OAAO,KAAK,KAAK,GAAG,KAAK,MAAM,iBAAiB,CAAC;EAC1D,KAAK,MAAM,QAAQ,KAAK,aAAa,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,WAAW,KAAK,KAAK,GAAG,KAAK,KAAK,iBAAiB,CAAC;EACpH,OAAO;CACR;CACA,aAAa;EACZ,OAAO;CACR;AACD;;;;;;;;;AASA,MAAM,yBAAyB;AAC/B,SAAS,qBAAqB,QAAQ;CACrC,IAAI,OAAO,SAAS,kBAAkB,OAAO,OAAO,OAAO,EAAE,MAAM,iBAAiB,CAAC;CACrF,MAAM,UAAU,CAAC;CACjB,KAAK,MAAM,CAAC,MAAM,WAAW,OAAO,QAAQ,OAAO,OAAO,GAAG;EAC5D,IAAI,SAAS,wBAAwB,MAAM,gBAAgB,uBAAuB,wCAAwC,uBAAuB,kEAAkE,EAAE,MAAM;GAC1N,MAAM;GACN,OAAO;GACP,QAAQ;EACT,EAAE,CAAC;EACH,QAAQ,QAAQ,OAAO,OAAO;GAC7B,SAAS,OAAO;GAChB,UAAU,OAAO;EAClB,CAAC;CACF;CACA,OAAO,OAAO,OAAO;EACpB,MAAM;EACN,SAAS,OAAO,OAAO,OAAO;CAC/B,CAAC;AACF;;;;;;;;;;;;AAYA,IAAI,cAAc,MAAM,oBAAoB,SAAS;CACpD,OAAO;CACP;CACA;CACA,YAAY,SAAS;EACpB,MAAM;EACN,KAAK,QAAQ,gBAAgB,QAAQ,KAAK;EAC1C,KAAK,SAAS,qBAAqB,QAAQ,MAAM;EACjD,KAAK,OAAO;CACb;CACA,OAAO,KAAK,OAAO,SAAS;EAC3B,OAAO,IAAI,YAAY;GACtB;GACA,QAAQ;IACP,MAAM;IACN;GACD;EACD,CAAC;CACF;CACA,OAAO,cAAc,OAAO;EAC3B,OAAO,IAAI,YAAY;GACtB;GACA,QAAQ,EAAE,MAAM,iBAAiB;EAClC,CAAC;CACF;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,YAAY;GACtB,OAAO,KAAK,MAAM,KAAK,SAAS,OAAO,SAAS,WAAW,OAAO,kBAAkB,MAAM,QAAQ,CAAC;GACnG,QAAQ,KAAK;EACd,CAAC;CACF;CACA,mBAAmB;EAClB,MAAM,OAAO,CAAC;EACd,KAAK,MAAM,QAAQ,KAAK,OAAO,IAAI,OAAO,SAAS,UAAU,KAAK,KAAK,GAAG,KAAK,iBAAiB,CAAC;EACjG,OAAO;CACR;CACA,aAAa;EACZ,OAAO;CACR;AACD;AACA,MAAM,gCAAgC,IAAI,IAAI;CAC7C;CACA;CACA;CACA;CACA;AACD,CAAC;AACD,MAAM,iCAAiC,IAAI,IAAI;CAC9C;CACA;CACA;CACA;CACA;CACA;AACD,CAAC;AACD,SAAS,WAAW,OAAO;CAC1B,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,UAAU,SAAS,OAAO,MAAM,SAAS,YAAY,cAAc,IAAI,MAAM,IAAI;AACxI;AACA,SAAS,YAAY,OAAO;CAC3B,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,UAAU,SAAS,OAAO,MAAM,SAAS,YAAY,eAAe,IAAI,MAAM,IAAI;AACzI"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/orm-family-sql",
3
- "version": "8.0.0-rc.12-dev.5",
3
+ "version": "8.0.0-rc.12-dev.6",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -9,8 +9,8 @@
9
9
  "dist"
10
10
  ],
11
11
  "dependencies": {
12
- "@prisma/orm-framework": "8.0.0-rc.12-dev.5",
13
- "@prisma/orm-toolchain": "8.0.0-rc.12-dev.5",
12
+ "@prisma/orm-framework": "8.0.0-rc.12-dev.6",
13
+ "@prisma/orm-toolchain": "8.0.0-rc.12-dev.6",
14
14
  "@standard-schema/spec": "^1.1.0",
15
15
  "arktype": "^2.2.2",
16
16
  "pathe": "^2.0.3",
@@ -19,21 +19,21 @@
19
19
  "ts-toolbelt": "^9.6.0"
20
20
  },
21
21
  "devDependencies": {
22
- "@internal/family-sql": "8.0.0-rc.12-dev.5",
23
- "@internal/sql-builder": "8.0.0-rc.12-dev.5",
24
- "@internal/sql-contract": "8.0.0-rc.12-dev.5",
25
- "@internal/sql-contract-emitter": "8.0.0-rc.12-dev.5",
26
- "@internal/sql-contract-prisma7": "8.0.0-rc.12-dev.5",
27
- "@internal/sql-contract-psl": "8.0.0-rc.12-dev.5",
28
- "@internal/sql-contract-ts": "8.0.0-rc.12-dev.5",
29
- "@internal/sql-errors": "8.0.0-rc.12-dev.5",
30
- "@internal/sql-operations": "8.0.0-rc.12-dev.5",
31
- "@internal/sql-orm-client": "8.0.0-rc.12-dev.5",
32
- "@internal/sql-relational-core": "8.0.0-rc.12-dev.5",
33
- "@internal/sql-runtime": "8.0.0-rc.12-dev.5",
34
- "@internal/sql-schema-ir": "8.0.0-rc.12-dev.5",
35
- "@repo/tsconfig": "8.0.0-rc.12-dev.5",
36
- "@repo/tsdown": "8.0.0-rc.12-dev.5",
22
+ "@internal/family-sql": "8.0.0-rc.12-dev.6",
23
+ "@internal/sql-builder": "8.0.0-rc.12-dev.6",
24
+ "@internal/sql-contract": "8.0.0-rc.12-dev.6",
25
+ "@internal/sql-contract-emitter": "8.0.0-rc.12-dev.6",
26
+ "@internal/sql-contract-prisma7": "8.0.0-rc.12-dev.6",
27
+ "@internal/sql-contract-psl": "8.0.0-rc.12-dev.6",
28
+ "@internal/sql-contract-ts": "8.0.0-rc.12-dev.6",
29
+ "@internal/sql-errors": "8.0.0-rc.12-dev.6",
30
+ "@internal/sql-operations": "8.0.0-rc.12-dev.6",
31
+ "@internal/sql-orm-client": "8.0.0-rc.12-dev.6",
32
+ "@internal/sql-relational-core": "8.0.0-rc.12-dev.6",
33
+ "@internal/sql-runtime": "8.0.0-rc.12-dev.6",
34
+ "@internal/sql-schema-ir": "8.0.0-rc.12-dev.6",
35
+ "@repo/tsconfig": "8.0.0-rc.12-dev.6",
36
+ "@repo/tsdown": "8.0.0-rc.12-dev.6",
37
37
  "tsdown": "0.22.14",
38
38
  "typescript": "5.9.3"
39
39
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-ZNKYVjLr-DzjvSHKB.mjs","names":["#asAnyExpression","#aliasOptions"],"sources":["../../../../2-sql/4-lanes/relational-core/dist/types-ZNKYVjLr.mjs"],"sourcesContent":["import { ifDefined } from \"@internal/utils/defined\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { InternalError } from \"@internal/utils/internal-error\";\n//#region src/ast/codec-types.ts\nfunction isJsonArray(value) {\n\treturn Array.isArray(value);\n}\nfunction freezeJsonValue(value) {\n\tif (value === null || typeof value !== \"object\") return;\n\tif (isJsonArray(value)) for (const item of value) freezeJsonValue(item);\n\telse for (const item of Object.values(value)) freezeJsonValue(item);\n\tObject.freeze(value);\n}\nfunction frozenCodecRef(codec) {\n\tconst typeParams = codec.typeParams === void 0 ? void 0 : structuredClone(codec.typeParams);\n\tif (typeParams !== void 0) freezeJsonValue(typeParams);\n\treturn Object.freeze({\n\t\tcodecId: codec.codecId,\n\t\t...ifDefined(\"typeParams\", typeParams),\n\t\t...ifDefined(\"many\", codec.many)\n\t});\n}\n//#endregion\n//#region src/ast/types.ts\n/**\n* The closed SQL aggregate alphabet: every function name an {@link AggregateExpr} can carry, and so the set renderers are exhaustive over. Aggregate operation names are an open namespace; an operation outside the alphabet reaches SQL only through a descriptor's lowering hook, which builds its expression from existing nodes.\n*/\nconst aggregateFnNames = /* @__PURE__ */ new Set([\n\t\"count\",\n\t\"sum\",\n\t\"avg\",\n\t\"min\",\n\t\"max\"\n]);\n/** Whether `name` is in the closed SQL aggregate alphabet, and so lowers to a plain {@link AggregateExpr} without a descriptor-supplied hook. */\nfunction isAggregateFn(name) {\n\treturn aggregateFnNames.has(name);\n}\nconst toAnyExpressionVisitor = {\n\tcolumnRef: (expr) => expr,\n\tidentifierRef: (expr) => expr,\n\tsubquery: (expr) => expr,\n\toperation: (expr) => expr,\n\taggregate: (expr) => expr,\n\twindowFunc: (expr) => expr,\n\tfunctionCall: (expr) => expr,\n\tcast: (expr) => expr,\n\tcase: (expr) => expr,\n\tjsonObject: (expr) => expr,\n\tjsonArrayAgg: (expr) => expr,\n\tbinary: (expr) => expr,\n\tand: (expr) => expr,\n\tor: (expr) => expr,\n\texists: (expr) => expr,\n\tnullCheck: (expr) => expr,\n\tnot: (expr) => expr,\n\tliteral: (expr) => expr,\n\tparam: (expr) => expr,\n\tpreparedParam: (expr) => expr,\n\tlist: (expr) => expr,\n\trawExpr: (expr) => expr\n};\nfunction frozenArrayCopy(values) {\n\treturn Object.freeze([...values]);\n}\nfunction frozenOptionalRecordCopy(value) {\n\treturn value === void 0 ? void 0 : Object.freeze({ ...value });\n}\nfunction frozenRecordCopy(record) {\n\treturn Object.freeze({ ...record });\n}\nfunction freezeRows(rows) {\n\treturn Object.freeze(rows.map((row) => Object.freeze({ ...row })));\n}\nfunction combineAll(folder, thunks) {\n\tlet result = folder.empty;\n\tfor (const thunk of thunks) {\n\t\tif (folder.isAbsorbing?.(result)) return result;\n\t\tresult = folder.combine(result, thunk());\n\t}\n\treturn result;\n}\nfunction rewriteComparable(value, rewriter) {\n\tswitch (value.kind) {\n\t\tcase \"param-ref\": return rewriter.paramRef ? rewriter.paramRef(value) : value;\n\t\tcase \"prepared-param-ref\": return rewriter.preparedParamRef ? rewriter.preparedParamRef(value) : value;\n\t\tcase \"literal\": return rewriter.literal ? rewriter.literal(value) : value;\n\t\tcase \"list\":\n\t\t\tif (rewriter.list) return rewriter.list(value);\n\t\t\treturn value.rewrite(rewriter);\n\t\tdefault: return value.rewrite(rewriter);\n\t}\n}\nfunction foldComparable(value, folder) {\n\tswitch (value.kind) {\n\t\tcase \"param-ref\": return folder.paramRef ? folder.paramRef(value) : folder.empty;\n\t\tcase \"prepared-param-ref\": return folder.preparedParamRef ? folder.preparedParamRef(value) : folder.empty;\n\t\tcase \"literal\": return folder.literal ? folder.literal(value) : folder.empty;\n\t\tcase \"list\": return value.fold(folder);\n\t\tdefault: return value.fold(folder);\n\t}\n}\nfunction collectColumnRefsWith(node) {\n\treturn node.fold({\n\t\tempty: [],\n\t\tcombine: (a, b) => [...a, ...b],\n\t\tcolumnRef: (columnRef) => [columnRef],\n\t\tselect: (ast) => ast.collectColumnRefs()\n\t});\n}\nfunction collectParamRefsWith(node) {\n\treturn node.fold({\n\t\tempty: [],\n\t\tcombine: (a, b) => [...a, ...b],\n\t\tparamRef: (paramRef) => [paramRef],\n\t\tpreparedParamRef: (paramRef) => [paramRef],\n\t\tselect: (ast) => ast.collectParamRefs()\n\t});\n}\nfunction rewriteTableSource(table, rewriter) {\n\treturn rewriter.tableSource ? rewriter.tableSource(table) : table;\n}\nfunction rewriteProjectionItem(item, rewriter) {\n\tconst rewrittenExpr = item.expr.kind === \"literal\" ? rewriter.literal ? rewriter.literal(item.expr) : item.expr : item.expr.rewrite(rewriter);\n\treturn new ProjectionItem(item.alias, rewrittenExpr, item.codec);\n}\nfunction rewriteInsertValue(value, rewriter) {\n\tswitch (value.kind) {\n\t\tcase \"param-ref\": return rewriter.paramRef ? rewriteParamRefForInsert(value, rewriter) : value;\n\t\tcase \"prepared-param-ref\": return rewriter.preparedParamRef ? rewriter.preparedParamRef(value) : value;\n\t\tcase \"column-ref\": return rewriter.columnRef ? rewriteColumnRefForInsert(value, rewriter) : value;\n\t\tcase \"default-value\": return value;\n\t\tcase \"raw-expr\": return value;\n\t}\n}\nfunction rewriteParamRefForInsert(value, rewriter) {\n\tconst rewritten = rewriter.paramRef ? rewriter.paramRef(value) : value;\n\treturn rewritten.kind === \"param-ref\" ? rewritten : value;\n}\nfunction rewriteColumnRefForInsert(value, rewriter) {\n\tconst rewritten = rewriter.columnRef ? rewriter.columnRef(value) : value;\n\treturn rewritten.kind === \"column-ref\" ? rewritten : value;\n}\nfunction rewriteInsertRow(row, rewriter) {\n\tconst result = {};\n\tfor (const [key, value] of Object.entries(row)) result[key] = rewriteInsertValue(value, rewriter);\n\treturn result;\n}\nfunction rewriteUpdateSet(set, rewriter) {\n\tconst result = {};\n\tfor (const [key, value] of Object.entries(set)) result[key] = value.rewrite(rewriter);\n\treturn result;\n}\nfunction rewriteLimitOffset(value, rewriter) {\n\tif (value === void 0 || typeof value === \"number\") return value;\n\treturn value.rewrite(rewriter);\n}\nfunction rewriteOnConflict(onConflict, rewriter) {\n\tconst columns = onConflict.columns.map((columnRef) => {\n\t\tconst rewritten = rewriter.columnRef ? rewriter.columnRef(columnRef) : columnRef;\n\t\treturn rewritten.kind === \"column-ref\" ? rewritten : columnRef;\n\t});\n\tif (onConflict.action.kind === \"do-nothing\") return new InsertOnConflict(columns, new DoNothingConflictAction());\n\treturn new InsertOnConflict(columns, new DoUpdateSetConflictAction(rewriteUpdateSet(onConflict.action.set, rewriter)));\n}\nvar AstNode = class {\n\tfreeze() {\n\t\tObject.freeze(this);\n\t}\n};\nvar QueryAst = class extends AstNode {};\nvar FromSource = class extends AstNode {};\nvar Expression = class extends AstNode {\n\tcollectColumnRefs() {\n\t\treturn collectColumnRefsWith(this);\n\t}\n\tcollectParamRefs() {\n\t\treturn collectParamRefsWith(this);\n\t}\n\tbaseColumnRef() {\n\t\tthrow new InternalError(`${this.constructor.name} does not expose a base column reference`);\n\t}\n\t#asAnyExpression() {\n\t\treturn this.accept(toAnyExpressionVisitor);\n\t}\n\ttoExpr() {\n\t\treturn this.#asAnyExpression();\n\t}\n\tnot() {\n\t\treturn new NotExpr(this.#asAnyExpression());\n\t}\n};\nvar TableSource = class TableSource extends FromSource {\n\tkind = \"table-source\";\n\tname;\n\talias;\n\t/**\n\t* Resolved storage namespace coordinate for this table, stamped when the\n\t* table proxy constructs the AST. Renderers qualify via the namespace\n\t* concretion's `qualifyTable()` using this id — never by re-resolving the\n\t* bare table name at render time.\n\t*/\n\tnamespaceId;\n\tconstructor(name, alias, namespaceId) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.alias = alias;\n\t\tthis.namespaceId = namespaceId;\n\t}\n\tstatic named(name, alias, namespaceId) {\n\t\tconst source = new TableSource(name, alias, namespaceId);\n\t\tsource.freeze();\n\t\treturn source;\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.tableSource ? rewriter.tableSource(this) : this;\n\t}\n\ttoFromSource() {\n\t\treturn this;\n\t}\n};\nvar DerivedTableSource = class DerivedTableSource extends FromSource {\n\tkind = \"derived-table-source\";\n\talias;\n\tquery;\n\tconstructor(alias, query) {\n\t\tsuper();\n\t\tthis.alias = alias;\n\t\tthis.query = query;\n\t\tthis.freeze();\n\t}\n\tstatic as(alias, query) {\n\t\treturn new DerivedTableSource(alias, query);\n\t}\n\trewrite(rewriter) {\n\t\treturn new DerivedTableSource(this.alias, this.query.rewrite(rewriter));\n\t}\n\ttoFromSource() {\n\t\treturn this;\n\t}\n};\nvar FunctionSource = class FunctionSource extends FromSource {\n\tkind = \"function-source\";\n\tfn;\n\targs;\n\talias;\n\tcolumnAliases;\n\tordinality;\n\tconstructor(fn, args, alias, ordinality = false) {\n\t\tsuper();\n\t\tif (alias?.columnAliases?.length === 0) throw structuredError(\"RUNTIME.AST_INVALID\", \"FunctionSource column aliases must not be empty\", { meta: {\n\t\t\tkind: \"function-source\",\n\t\t\tfield: \"columnAliases\"\n\t\t} });\n\t\tthis.fn = fn;\n\t\tthis.args = frozenArrayCopy(args);\n\t\tthis.alias = alias?.alias;\n\t\tthis.columnAliases = alias?.columnAliases === void 0 ? void 0 : frozenArrayCopy(alias.columnAliases);\n\t\tthis.ordinality = ordinality;\n\t\tthis.freeze();\n\t}\n\tstatic of(fn, args, alias) {\n\t\treturn new FunctionSource(fn, args, alias);\n\t}\n\t#aliasOptions() {\n\t\tif (this.alias === void 0) return void 0;\n\t\treturn {\n\t\t\talias: this.alias,\n\t\t\t...ifDefined(\"columnAliases\", this.columnAliases)\n\t\t};\n\t}\n\twithOrdinality() {\n\t\tif (this.ordinality) return this;\n\t\treturn new FunctionSource(this.fn, this.args, this.#aliasOptions(), true);\n\t}\n\trewrite(rewriter) {\n\t\tconst rewrittenArgs = this.args.map((arg) => rewriteComparable(arg, rewriter));\n\t\tif (rewrittenArgs.every((arg, i) => arg === this.args[i])) return this;\n\t\treturn new FunctionSource(this.fn, rewrittenArgs, this.#aliasOptions(), this.ordinality);\n\t}\n\ttoFromSource() {\n\t\treturn this;\n\t}\n};\nvar ColumnRef = class ColumnRef extends Expression {\n\tkind = \"column-ref\";\n\ttable;\n\tcolumn;\n\tconstructor(table, column) {\n\t\tsuper();\n\t\tthis.table = table;\n\t\tthis.column = column;\n\t\tthis.freeze();\n\t}\n\tstatic of(table, column) {\n\t\treturn new ColumnRef(table, column);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.columnRef(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.columnRef ? rewriter.columnRef(this) : this;\n\t}\n\tfold(folder) {\n\t\treturn folder.columnRef ? folder.columnRef(this) : folder.empty;\n\t}\n\tbaseColumnRef() {\n\t\treturn this;\n\t}\n};\nvar IdentifierRef = class IdentifierRef extends Expression {\n\tkind = \"identifier-ref\";\n\tname;\n\tconstructor(name) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.freeze();\n\t}\n\tstatic of(name) {\n\t\treturn new IdentifierRef(name);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.identifierRef(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.identifierRef ? rewriter.identifierRef(this) : this;\n\t}\n\tfold(folder) {\n\t\treturn folder.identifierRef ? folder.identifierRef(this) : folder.empty;\n\t}\n};\nvar ParamRef = class ParamRef extends Expression {\n\tkind = \"param-ref\";\n\tvalue;\n\tname;\n\t/**\n\t* Codec identity carried by every column-bound `ParamRef`. The encode-side dispatch path materialises the per-instance codec through `contractCodecs.forCodecRef(codec)` — content-keyed memoisation on `(codecId, canonicalize(typeParams))` keeps repeated lookups for the same logical column on one shared {@link Codec}.\n\t*\n\t* `codec` may be `undefined` for `ParamRef`s constructed without a column-bound site (literals, transient builder state); the runtime treats those as untyped passthroughs.\n\t*/\n\tcodec;\n\tconstructor(value, options) {\n\t\tsuper();\n\t\tthis.value = value;\n\t\tthis.name = options?.name;\n\t\tthis.codec = options?.codec ? frozenCodecRef(options.codec) : void 0;\n\t\tthis.freeze();\n\t}\n\tstatic of(value, options) {\n\t\treturn new ParamRef(value, options);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.param(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.paramRef ? rewriter.paramRef(this) : this;\n\t}\n\tfold(folder) {\n\t\treturn folder.paramRef ? folder.paramRef(this) : folder.empty;\n\t}\n};\n/**\n* Bind-site placeholder: occupies the same positions as `ParamRef` in the\n* AST, but carries no value — the value is supplied per-execute by the\n* `statement.query(target, params)` caller and matched to this node by\n* `name`.\n*/\nvar PreparedParamRef = class PreparedParamRef extends Expression {\n\tkind = \"prepared-param-ref\";\n\tname;\n\tcodec;\n\tnullable;\n\tconstructor(name, codec, nullable = false) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.codec = frozenCodecRef(codec);\n\t\tthis.nullable = nullable;\n\t\tthis.freeze();\n\t}\n\tstatic of(name, codec, nullable = false) {\n\t\treturn new PreparedParamRef(name, codec, nullable);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.preparedParam(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.preparedParamRef ? rewriter.preparedParamRef(this) : this;\n\t}\n\tfold(folder) {\n\t\treturn folder.preparedParamRef ? folder.preparedParamRef(this) : folder.empty;\n\t}\n};\nvar DefaultValueExpr = class extends AstNode {\n\tkind = \"default-value\";\n\tconstructor() {\n\t\tsuper();\n\t\tthis.freeze();\n\t}\n};\nvar LiteralExpr = class LiteralExpr extends Expression {\n\tkind = \"literal\";\n\tvalue;\n\tconstructor(value) {\n\t\tsuper();\n\t\tthis.value = value;\n\t\tthis.freeze();\n\t}\n\tstatic of(value) {\n\t\treturn new LiteralExpr(value);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.literal(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.literal ? rewriter.literal(this) : this;\n\t}\n\tfold(folder) {\n\t\treturn folder.literal ? folder.literal(this) : folder.empty;\n\t}\n};\nvar SubqueryExpr = class SubqueryExpr extends Expression {\n\tkind = \"subquery\";\n\tquery;\n\tconstructor(query) {\n\t\tsuper();\n\t\tthis.query = query;\n\t\tthis.freeze();\n\t}\n\tstatic of(query) {\n\t\treturn new SubqueryExpr(query);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.subquery(this);\n\t}\n\trewrite(rewriter) {\n\t\tconst query = this.query.rewrite(rewriter);\n\t\treturn new SubqueryExpr(query);\n\t}\n\tfold(folder) {\n\t\treturn folder.select ? folder.select(this.query) : folder.empty;\n\t}\n};\nvar OperationExpr = class OperationExpr extends Expression {\n\tkind = \"operation\";\n\tmethod;\n\tself;\n\targs;\n\treturns;\n\tlowering;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.method = options.method;\n\t\tthis.self = options.self;\n\t\tthis.args = frozenArrayCopy(options.args ?? []);\n\t\tthis.returns = options.returns;\n\t\tthis.lowering = options.lowering;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.operation(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new OperationExpr({\n\t\t\tmethod: this.method,\n\t\t\tself: this.self.rewrite(rewriter),\n\t\t\targs: this.args.map((arg) => rewriteComparable(arg, rewriter)),\n\t\t\treturns: this.returns,\n\t\t\tlowering: this.lowering\n\t\t});\n\t}\n\tfold(folder) {\n\t\treturn combineAll(folder, [() => this.self.fold(folder), ...this.args.map((arg) => () => foldComparable(arg, folder))]);\n\t}\n\tbaseColumnRef() {\n\t\treturn this.self.baseColumnRef();\n\t}\n};\nvar RawExpr = class extends Expression {\n\tkind = \"raw-expr\";\n\tparts;\n\treturns;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.parts = frozenArrayCopy(options.parts);\n\t\tthis.returns = options.returns;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.rawExpr(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.rawExpr ? rewriter.rawExpr(this) : this;\n\t}\n\tfold(folder) {\n\t\tif (folder.rawExpr) return folder.rawExpr(this);\n\t\treturn combineAll(folder, this.parts.filter((p) => typeof p !== \"string\").map((p) => () => p.fold(folder)));\n\t}\n};\nvar AggregateExpr = class AggregateExpr extends Expression {\n\tkind = \"aggregate\";\n\tfn;\n\texpr;\n\tconstructor(fn, expr) {\n\t\tsuper();\n\t\tif (fn !== \"count\" && expr === void 0) throw structuredError(\"ORM.ARGUMENT_INVALID\", `Aggregate function \"${fn}\" requires an expression`, { meta: { fn } });\n\t\tthis.fn = fn;\n\t\tthis.expr = expr;\n\t\tthis.freeze();\n\t}\n\tstatic count(expr) {\n\t\treturn new AggregateExpr(\"count\", expr);\n\t}\n\tstatic sum(expr) {\n\t\treturn new AggregateExpr(\"sum\", expr);\n\t}\n\tstatic avg(expr) {\n\t\treturn new AggregateExpr(\"avg\", expr);\n\t}\n\tstatic min(expr) {\n\t\treturn new AggregateExpr(\"min\", expr);\n\t}\n\tstatic max(expr) {\n\t\treturn new AggregateExpr(\"max\", expr);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.aggregate(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn this.expr === void 0 ? this : new AggregateExpr(this.fn, this.expr.rewrite(rewriter));\n\t}\n\tfold(folder) {\n\t\treturn this.expr ? this.expr.fold(folder) : folder.empty;\n\t}\n};\n/**\n* Window function call: `fn(args) OVER (PARTITION BY ... ORDER BY ...)`.\n*\n* Both `partitionBy` and `orderBy` are optional; an empty `OVER ()`\n* clause is legal SQL but rarely useful. For `ROW_NUMBER`, `RANK`, and\n* `DENSE_RANK` the standard mandates an `ORDER BY` for deterministic\n* results — callers are expected to provide one, but the AST does not\n* enforce it.\n*\n* The `args` slot exists for future window function additions that take\n* arguments (e.g. `COUNT(*) OVER`, `SUM(x) OVER`); `ROW_NUMBER` and the\n* other ranking functions take no arguments.\n*/\nvar WindowFuncExpr = class WindowFuncExpr extends Expression {\n\tkind = \"window-func\";\n\tfn;\n\targs;\n\tpartitionBy;\n\torderBy;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.fn = options.fn;\n\t\tthis.args = options.args && options.args.length > 0 ? frozenArrayCopy(options.args) : [];\n\t\tthis.partitionBy = options.partitionBy && options.partitionBy.length > 0 ? frozenArrayCopy(options.partitionBy) : void 0;\n\t\tthis.orderBy = options.orderBy && options.orderBy.length > 0 ? frozenArrayCopy(options.orderBy) : void 0;\n\t\tthis.freeze();\n\t}\n\tstatic rowNumber(options) {\n\t\treturn new WindowFuncExpr({\n\t\t\tfn: \"row_number\",\n\t\t\t...options\n\t\t});\n\t}\n\taccept(visitor) {\n\t\treturn visitor.windowFunc(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new WindowFuncExpr({\n\t\t\tfn: this.fn,\n\t\t\targs: this.args.map((arg) => arg.rewrite(rewriter)),\n\t\t\t...ifDefined(\"partitionBy\", this.partitionBy?.map((expr) => expr.rewrite(rewriter))),\n\t\t\t...ifDefined(\"orderBy\", this.orderBy?.map((orderItem) => orderItem.rewrite(rewriter)))\n\t\t});\n\t}\n\tfold(folder) {\n\t\treturn combineAll(folder, [\n\t\t\t...this.args.map((arg) => () => arg.fold(folder)),\n\t\t\t...(this.partitionBy ?? []).map((expr) => () => expr.fold(folder)),\n\t\t\t...(this.orderBy ?? []).map((orderItem) => () => orderItem.expr.fold(folder))\n\t\t]);\n\t}\n};\nvar FunctionCallExpr = class FunctionCallExpr extends Expression {\n\tkind = \"function-call\";\n\tfn;\n\targs;\n\tconstructor(fn, args) {\n\t\tsuper();\n\t\tthis.fn = fn;\n\t\tthis.args = frozenArrayCopy(args);\n\t\tthis.freeze();\n\t}\n\tstatic of(fn, args) {\n\t\treturn new FunctionCallExpr(fn, args);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.functionCall(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new FunctionCallExpr(this.fn, this.args.map((arg) => arg.rewrite(rewriter)));\n\t}\n\tfold(folder) {\n\t\treturn combineAll(folder, this.args.map((arg) => () => arg.fold(folder)));\n\t}\n};\nvar CastExpr = class CastExpr extends Expression {\n\tkind = \"cast\";\n\texpr;\n\ttargetType;\n\tconstructor(expr, targetType) {\n\t\tsuper();\n\t\tthis.expr = expr;\n\t\tthis.targetType = targetType;\n\t\tthis.freeze();\n\t}\n\tstatic as(expr, targetType) {\n\t\treturn new CastExpr(expr, targetType);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.cast(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new CastExpr(this.expr.rewrite(rewriter), this.targetType);\n\t}\n\tfold(folder) {\n\t\treturn this.expr.fold(folder);\n\t}\n};\nvar CaseExpr = class CaseExpr extends Expression {\n\tkind = \"case\";\n\tbranches;\n\telseExpr;\n\tconstructor(branches, elseExpr) {\n\t\tsuper();\n\t\tif (branches.length === 0) throw structuredError(\"RUNTIME.AST_INVALID\", \"CaseExpr requires at least one branch\", { meta: {\n\t\t\tkind: \"case\",\n\t\t\tfield: \"branches\"\n\t\t} });\n\t\tthis.branches = Object.freeze(branches.map((branch) => Object.freeze({\n\t\t\tcondition: branch.condition,\n\t\t\tvalue: branch.value\n\t\t})));\n\t\tthis.elseExpr = elseExpr;\n\t\tthis.freeze();\n\t}\n\tstatic of(branches, elseExpr) {\n\t\treturn new CaseExpr(branches, elseExpr);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.case(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new CaseExpr(this.branches.map((branch) => ({\n\t\t\tcondition: branch.condition.rewrite(rewriter),\n\t\t\tvalue: branch.value.rewrite(rewriter)\n\t\t})), this.elseExpr?.rewrite(rewriter));\n\t}\n\tfold(folder) {\n\t\tconst elseExpr = this.elseExpr;\n\t\treturn combineAll(folder, [...this.branches.flatMap((branch) => [() => branch.condition.fold(folder), () => branch.value.fold(folder)]), ...elseExpr === void 0 ? [] : [() => elseExpr.fold(folder)]]);\n\t}\n};\nvar JsonObjectExpr = class JsonObjectExpr extends Expression {\n\tkind = \"json-object\";\n\tentries;\n\tconstructor(entries) {\n\t\tsuper();\n\t\tthis.entries = frozenArrayCopy(entries.map((entry) => Object.freeze({ ...entry })));\n\t\tthis.freeze();\n\t}\n\tstatic entry(key, value) {\n\t\treturn {\n\t\t\tkey,\n\t\t\tvalue\n\t\t};\n\t}\n\tstatic fromEntries(entries) {\n\t\treturn new JsonObjectExpr(entries);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.jsonObject(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new JsonObjectExpr(this.entries.map((entry) => ({\n\t\t\tkey: entry.key,\n\t\t\tvalue: entry.value.rewrite(rewriter)\n\t\t})));\n\t}\n\tfold(folder) {\n\t\treturn combineAll(folder, this.entries.map((entry) => () => entry.value.fold(folder)));\n\t}\n};\nvar OrderByItem = class OrderByItem extends AstNode {\n\tkind = \"order-by-item\";\n\texpr;\n\tdir;\n\tconstructor(expr, dir) {\n\t\tsuper();\n\t\tthis.expr = expr;\n\t\tthis.dir = dir;\n\t\tthis.freeze();\n\t}\n\tstatic asc(expr) {\n\t\treturn new OrderByItem(expr, \"asc\");\n\t}\n\tstatic desc(expr) {\n\t\treturn new OrderByItem(expr, \"desc\");\n\t}\n\trewrite(rewriter) {\n\t\treturn new OrderByItem(this.expr.rewrite(rewriter), this.dir);\n\t}\n\t/**\n\t* A new frozen item with the sort direction flipped and `expr` unchanged.\n\t* Integrations that own pagination (e.g. backward cursor pagination) use\n\t* this to reverse a user's sort order without reaching into the AST.\n\t*/\n\treverse() {\n\t\treturn new OrderByItem(this.expr, this.dir === \"asc\" ? \"desc\" : \"asc\");\n\t}\n};\nvar JsonArrayAggExpr = class JsonArrayAggExpr extends Expression {\n\tkind = \"json-array-agg\";\n\texpr;\n\tonEmpty;\n\torderBy;\n\tconstructor(expr, onEmpty = \"null\", orderBy) {\n\t\tsuper();\n\t\tthis.expr = expr;\n\t\tthis.onEmpty = onEmpty;\n\t\tthis.orderBy = orderBy && orderBy.length > 0 ? frozenArrayCopy(orderBy) : void 0;\n\t\tthis.freeze();\n\t}\n\tstatic of(expr, onEmpty = \"null\", orderBy) {\n\t\treturn new JsonArrayAggExpr(expr, onEmpty, orderBy);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.jsonArrayAgg(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new JsonArrayAggExpr(this.expr.rewrite(rewriter), this.onEmpty, this.orderBy?.map((orderItem) => orderItem.rewrite(rewriter)));\n\t}\n\tfold(folder) {\n\t\treturn combineAll(folder, [() => this.expr.fold(folder), ...(this.orderBy ?? []).map((orderItem) => () => orderItem.expr.fold(folder))]);\n\t}\n};\nvar ListExpression = class ListExpression extends Expression {\n\tkind = \"list\";\n\tvalues;\n\tconstructor(values) {\n\t\tsuper();\n\t\tthis.values = frozenArrayCopy(values);\n\t\tthis.freeze();\n\t}\n\tstatic of(values) {\n\t\treturn new ListExpression(values);\n\t}\n\tstatic fromValues(values) {\n\t\treturn new ListExpression(values.map((value) => new LiteralExpr(value)));\n\t}\n\taccept(visitor) {\n\t\treturn visitor.list(this);\n\t}\n\trewrite(rewriter) {\n\t\tif (rewriter.list) return rewriter.list(this);\n\t\treturn new ListExpression(this.values.map((value) => value.rewrite(rewriter)));\n\t}\n\tfold(folder) {\n\t\tif (folder.list) return folder.list(this);\n\t\treturn combineAll(folder, this.values.map((value) => () => value.fold(folder)));\n\t}\n};\nvar BinaryExpr = class BinaryExpr extends Expression {\n\tkind = \"binary\";\n\top;\n\tleft;\n\tright;\n\tconstructor(op, left, right) {\n\t\tsuper();\n\t\tthis.op = op;\n\t\tthis.left = left;\n\t\tthis.right = right;\n\t\tthis.freeze();\n\t}\n\tstatic eq(left, right) {\n\t\treturn new BinaryExpr(\"eq\", left, right);\n\t}\n\tstatic neq(left, right) {\n\t\treturn new BinaryExpr(\"neq\", left, right);\n\t}\n\tstatic gt(left, right) {\n\t\treturn new BinaryExpr(\"gt\", left, right);\n\t}\n\tstatic lt(left, right) {\n\t\treturn new BinaryExpr(\"lt\", left, right);\n\t}\n\tstatic gte(left, right) {\n\t\treturn new BinaryExpr(\"gte\", left, right);\n\t}\n\tstatic lte(left, right) {\n\t\treturn new BinaryExpr(\"lte\", left, right);\n\t}\n\tstatic like(left, right) {\n\t\treturn new BinaryExpr(\"like\", left, right);\n\t}\n\tstatic in(left, right) {\n\t\treturn new BinaryExpr(\"in\", left, right);\n\t}\n\tstatic notIn(left, right) {\n\t\treturn new BinaryExpr(\"notIn\", left, right);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.binary(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new BinaryExpr(this.op, rewriteComparable(this.left, rewriter), rewriteComparable(this.right, rewriter));\n\t}\n\tfold(folder) {\n\t\treturn combineAll(folder, [() => foldComparable(this.left, folder), () => foldComparable(this.right, folder)]);\n\t}\n};\nvar AndExpr = class AndExpr extends Expression {\n\tkind = \"and\";\n\texprs;\n\tconstructor(exprs) {\n\t\tsuper();\n\t\tthis.exprs = frozenArrayCopy(exprs);\n\t\tthis.freeze();\n\t}\n\tstatic of(exprs) {\n\t\treturn new AndExpr(exprs);\n\t}\n\tstatic true() {\n\t\treturn new AndExpr([]);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.and(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new AndExpr(this.exprs.map((expr) => expr.rewrite(rewriter)));\n\t}\n\tfold(folder) {\n\t\treturn combineAll(folder, this.exprs.map((expr) => () => expr.fold(folder)));\n\t}\n};\nvar OrExpr = class OrExpr extends Expression {\n\tkind = \"or\";\n\texprs;\n\tconstructor(exprs) {\n\t\tsuper();\n\t\tthis.exprs = frozenArrayCopy(exprs);\n\t\tthis.freeze();\n\t}\n\tstatic of(exprs) {\n\t\treturn new OrExpr(exprs);\n\t}\n\tstatic false() {\n\t\treturn new OrExpr([]);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.or(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new OrExpr(this.exprs.map((expr) => expr.rewrite(rewriter)));\n\t}\n\tfold(folder) {\n\t\treturn combineAll(folder, this.exprs.map((expr) => () => expr.fold(folder)));\n\t}\n};\nvar ExistsExpr = class ExistsExpr extends Expression {\n\tkind = \"exists\";\n\tnotExists;\n\tsubquery;\n\tconstructor(subquery, notExists = false) {\n\t\tsuper();\n\t\tthis.notExists = notExists;\n\t\tthis.subquery = subquery;\n\t\tthis.freeze();\n\t}\n\tstatic exists(subquery) {\n\t\treturn new ExistsExpr(subquery, false);\n\t}\n\tstatic notExists(subquery) {\n\t\treturn new ExistsExpr(subquery, true);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.exists(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new ExistsExpr(this.subquery.rewrite(rewriter), this.notExists);\n\t}\n\tfold(folder) {\n\t\treturn folder.select ? folder.select(this.subquery) : folder.empty;\n\t}\n};\nvar NullCheckExpr = class NullCheckExpr extends Expression {\n\tkind = \"null-check\";\n\texpr;\n\tisNull;\n\tconstructor(expr, isNull) {\n\t\tsuper();\n\t\tthis.expr = expr;\n\t\tthis.isNull = isNull;\n\t\tthis.freeze();\n\t}\n\tstatic isNull(expr) {\n\t\treturn new NullCheckExpr(expr, true);\n\t}\n\tstatic isNotNull(expr) {\n\t\treturn new NullCheckExpr(expr, false);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.nullCheck(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new NullCheckExpr(this.expr.rewrite(rewriter), this.isNull);\n\t}\n\tfold(folder) {\n\t\treturn this.expr.fold(folder);\n\t}\n};\nvar NotExpr = class NotExpr extends Expression {\n\tkind = \"not\";\n\texpr;\n\tconstructor(expr) {\n\t\tsuper();\n\t\tthis.expr = expr;\n\t\tthis.freeze();\n\t}\n\ttoWhereExpr() {\n\t\treturn this;\n\t}\n\taccept(visitor) {\n\t\treturn visitor.not(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn new NotExpr(this.expr.rewrite(rewriter));\n\t}\n\tfold(folder) {\n\t\treturn this.expr.fold(folder);\n\t}\n};\nvar EqColJoinOn = class EqColJoinOn extends AstNode {\n\tkind = \"eq-col-join-on\";\n\tleft;\n\tright;\n\tconstructor(left, right) {\n\t\tsuper();\n\t\tthis.left = left;\n\t\tthis.right = right;\n\t\tthis.freeze();\n\t}\n\tstatic of(left, right) {\n\t\treturn new EqColJoinOn(left, right);\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.eqColJoinOn ? rewriter.eqColJoinOn(this) : this;\n\t}\n};\nvar JoinAst = class JoinAst extends AstNode {\n\tkind = \"join\";\n\tjoinType;\n\tsource;\n\tlateral;\n\ton;\n\tconstructor(joinType, source, on, lateral = false) {\n\t\tsuper();\n\t\tthis.joinType = joinType;\n\t\tthis.source = source;\n\t\tthis.lateral = lateral;\n\t\tthis.on = on;\n\t\tthis.freeze();\n\t}\n\tstatic inner(source, on, lateral = false) {\n\t\treturn new JoinAst(\"inner\", source, on, lateral);\n\t}\n\tstatic left(source, on, lateral = false) {\n\t\treturn new JoinAst(\"left\", source, on, lateral);\n\t}\n\tstatic right(source, on, lateral = false) {\n\t\treturn new JoinAst(\"right\", source, on, lateral);\n\t}\n\tstatic full(source, on, lateral = false) {\n\t\treturn new JoinAst(\"full\", source, on, lateral);\n\t}\n\trewrite(rewriter) {\n\t\treturn new JoinAst(this.joinType, this.source.rewrite(rewriter), this.on.kind === \"eq-col-join-on\" ? this.on.rewrite(rewriter) : this.on.rewrite(rewriter), this.lateral);\n\t}\n};\nvar ProjectionItem = class ProjectionItem extends AstNode {\n\tkind = \"projection-item\";\n\talias;\n\texpr;\n\t/**\n\t* Codec identity for any known projected result, whether read directly from a contract column or forwarded through a query wrapper. Decode-side dispatch resolves the per-instance codec through `contractCodecs.forCodecRef(codec)` — content-keyed memoisation collapses repeated lookups for the same logical result onto one shared {@link Codec}.\n\t*\n\t* Stays `undefined` only when the projected result's codec is unknown, such as computed expressions, subqueries, or raw aliases whose decoded type the runtime cannot infer.\n\t*/\n\tcodec;\n\tconstructor(alias, expr, codec) {\n\t\tsuper();\n\t\tthis.alias = alias;\n\t\tthis.expr = expr;\n\t\tthis.codec = codec ? frozenCodecRef(codec) : void 0;\n\t\tthis.freeze();\n\t}\n\tstatic of(alias, expr, codec) {\n\t\treturn new ProjectionItem(alias, expr, codec);\n\t}\n\twithCodec(codec) {\n\t\treturn new ProjectionItem(this.alias, this.expr, codec);\n\t}\n};\nvar SelectAst = class SelectAst extends QueryAst {\n\tkind = \"select\";\n\tfrom;\n\tjoins;\n\tprojection;\n\twhere;\n\torderBy;\n\tdistinct;\n\tdistinctOn;\n\tgroupBy;\n\thaving;\n\tlimit;\n\toffset;\n\tselectAllIntent;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.from = options.from;\n\t\tthis.joins = options.joins && options.joins.length > 0 ? frozenArrayCopy(options.joins) : void 0;\n\t\tthis.projection = frozenArrayCopy(options.projection);\n\t\tthis.where = options.where;\n\t\tthis.orderBy = options.orderBy && options.orderBy.length > 0 ? frozenArrayCopy(options.orderBy) : void 0;\n\t\tthis.distinct = options.distinct;\n\t\tthis.distinctOn = options.distinctOn && options.distinctOn.length > 0 ? frozenArrayCopy(options.distinctOn) : void 0;\n\t\tthis.groupBy = options.groupBy && options.groupBy.length > 0 ? frozenArrayCopy(options.groupBy) : void 0;\n\t\tthis.having = options.having;\n\t\tthis.limit = options.limit;\n\t\tthis.offset = options.offset;\n\t\tthis.selectAllIntent = frozenOptionalRecordCopy(options.selectAllIntent);\n\t\tthis.freeze();\n\t}\n\tstatic from(from) {\n\t\treturn new SelectAst({\n\t\t\tfrom,\n\t\t\tjoins: void 0,\n\t\t\tprojection: [],\n\t\t\twhere: void 0,\n\t\t\torderBy: void 0,\n\t\t\tdistinct: void 0,\n\t\t\tdistinctOn: void 0,\n\t\t\tgroupBy: void 0,\n\t\t\thaving: void 0,\n\t\t\tlimit: void 0,\n\t\t\toffset: void 0,\n\t\t\tselectAllIntent: void 0\n\t\t});\n\t}\n\tstatic noFrom() {\n\t\treturn new SelectAst({\n\t\t\tjoins: void 0,\n\t\t\tprojection: [],\n\t\t\twhere: void 0,\n\t\t\torderBy: void 0,\n\t\t\tdistinct: void 0,\n\t\t\tdistinctOn: void 0,\n\t\t\tgroupBy: void 0,\n\t\t\thaving: void 0,\n\t\t\tlimit: void 0,\n\t\t\toffset: void 0,\n\t\t\tselectAllIntent: void 0\n\t\t});\n\t}\n\ttoOptions() {\n\t\treturn {\n\t\t\t...this.from !== void 0 ? { from: this.from } : {},\n\t\t\tjoins: this.joins,\n\t\t\tprojection: this.projection,\n\t\t\twhere: this.where,\n\t\t\torderBy: this.orderBy,\n\t\t\tdistinct: this.distinct,\n\t\t\tdistinctOn: this.distinctOn,\n\t\t\tgroupBy: this.groupBy,\n\t\t\thaving: this.having,\n\t\t\tlimit: this.limit,\n\t\t\toffset: this.offset,\n\t\t\tselectAllIntent: this.selectAllIntent\n\t\t};\n\t}\n\twithFrom(from) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tfrom\n\t\t});\n\t}\n\twithJoins(joins) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tjoins: joins.length > 0 ? joins : void 0\n\t\t});\n\t}\n\twithProjection(projection) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tprojection\n\t\t});\n\t}\n\taddProjection(alias, expr) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tprojection: [...this.projection, new ProjectionItem(alias, expr)]\n\t\t});\n\t}\n\twithWhere(where) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\twhere\n\t\t});\n\t}\n\twithOrderBy(orderBy) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\torderBy: orderBy.length > 0 ? orderBy : void 0\n\t\t});\n\t}\n\twithDistinct(enabled = true) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tdistinct: enabled ? true : void 0\n\t\t});\n\t}\n\twithDistinctOn(distinctOn) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tdistinctOn: distinctOn.length > 0 ? distinctOn : void 0\n\t\t});\n\t}\n\twithGroupBy(groupBy) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tgroupBy: groupBy.length > 0 ? groupBy : void 0\n\t\t});\n\t}\n\twithHaving(having) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\thaving\n\t\t});\n\t}\n\twithLimit(limit) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tlimit\n\t\t});\n\t}\n\twithOffset(offset) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\toffset\n\t\t});\n\t}\n\twithSelectAllIntent(selectAllIntent) {\n\t\treturn new SelectAst({\n\t\t\t...this.toOptions(),\n\t\t\tselectAllIntent\n\t\t});\n\t}\n\trewrite(rewriter) {\n\t\tconst rewrittenFrom = this.from?.rewrite(rewriter);\n\t\tconst rewritten = new SelectAst({\n\t\t\t...rewrittenFrom !== void 0 ? { from: rewrittenFrom } : {},\n\t\t\tjoins: this.joins?.map((join) => join.rewrite(rewriter)),\n\t\t\tprojection: this.projection.map((projection) => new ProjectionItem(projection.alias, projection.expr.kind === \"literal\" ? rewriter.literal ? rewriter.literal(projection.expr) : projection.expr : projection.expr.rewrite(rewriter), projection.codec)),\n\t\t\twhere: this.where?.rewrite(rewriter),\n\t\t\torderBy: this.orderBy?.map((orderItem) => orderItem.rewrite(rewriter)),\n\t\t\tdistinct: this.distinct,\n\t\t\tdistinctOn: this.distinctOn?.map((expr) => expr.rewrite(rewriter)),\n\t\t\tgroupBy: this.groupBy?.map((expr) => expr.rewrite(rewriter)),\n\t\t\thaving: this.having?.rewrite(rewriter),\n\t\t\tlimit: rewriteLimitOffset(this.limit, rewriter),\n\t\t\toffset: rewriteLimitOffset(this.offset, rewriter),\n\t\t\tselectAllIntent: this.selectAllIntent\n\t\t});\n\t\treturn rewriter.select ? rewriter.select(rewritten) : rewritten;\n\t}\n\tcollectColumnRefs() {\n\t\tconst refs = [];\n\t\tconst pushRefs = (columns) => {\n\t\t\trefs.push(...columns);\n\t\t};\n\t\tif (this.from?.kind === \"derived-table-source\") pushRefs(this.from.query.collectColumnRefs());\n\t\telse if (this.from?.kind === \"function-source\") for (const arg of this.from.args) pushRefs(arg.collectColumnRefs());\n\t\tfor (const projection of this.projection) if (!(projection.expr.kind === \"literal\")) pushRefs(projection.expr.collectColumnRefs());\n\t\tif (this.where) pushRefs(this.where.collectColumnRefs());\n\t\tif (this.having) pushRefs(this.having.collectColumnRefs());\n\t\tfor (const orderItem of this.orderBy ?? []) pushRefs(orderItem.expr.collectColumnRefs());\n\t\tfor (const expr of this.distinctOn ?? []) pushRefs(expr.collectColumnRefs());\n\t\tfor (const expr of this.groupBy ?? []) pushRefs(expr.collectColumnRefs());\n\t\tfor (const join of this.joins ?? []) {\n\t\t\tif (join.source.kind === \"derived-table-source\") pushRefs(join.source.query.collectColumnRefs());\n\t\t\telse if (join.source.kind === \"function-source\") for (const arg of join.source.args) pushRefs(arg.collectColumnRefs());\n\t\t\tif (join.on.kind === \"eq-col-join-on\") refs.push(join.on.left, join.on.right);\n\t\t\telse pushRefs(join.on.collectColumnRefs());\n\t\t}\n\t\tif (typeof this.limit === \"object\") pushRefs(this.limit.collectColumnRefs());\n\t\tif (typeof this.offset === \"object\") pushRefs(this.offset.collectColumnRefs());\n\t\treturn refs;\n\t}\n\tcollectParamRefs() {\n\t\tconst refs = [];\n\t\tconst pushRefs = (params) => {\n\t\t\trefs.push(...params);\n\t\t};\n\t\tif (this.from?.kind === \"derived-table-source\") pushRefs(this.from.query.collectParamRefs());\n\t\telse if (this.from?.kind === \"function-source\") for (const arg of this.from.args) pushRefs(arg.collectParamRefs());\n\t\tfor (const projection of this.projection) if (!(projection.expr.kind === \"literal\")) pushRefs(projection.expr.collectParamRefs());\n\t\tif (this.where) pushRefs(this.where.collectParamRefs());\n\t\tif (this.having) pushRefs(this.having.collectParamRefs());\n\t\tfor (const orderItem of this.orderBy ?? []) pushRefs(orderItem.expr.collectParamRefs());\n\t\tfor (const expr of this.distinctOn ?? []) pushRefs(expr.collectParamRefs());\n\t\tfor (const expr of this.groupBy ?? []) pushRefs(expr.collectParamRefs());\n\t\tfor (const join of this.joins ?? []) {\n\t\t\tif (join.source.kind === \"derived-table-source\") pushRefs(join.source.query.collectParamRefs());\n\t\t\telse if (join.source.kind === \"function-source\") for (const arg of join.source.args) pushRefs(arg.collectParamRefs());\n\t\t\tif (!(join.on.kind === \"eq-col-join-on\")) pushRefs(join.on.collectParamRefs());\n\t\t}\n\t\tif (typeof this.limit === \"object\") pushRefs(this.limit.collectParamRefs());\n\t\tif (typeof this.offset === \"object\") pushRefs(this.offset.collectParamRefs());\n\t\treturn refs;\n\t}\n\ttoQueryAst() {\n\t\treturn this;\n\t}\n};\nvar InsertOnConflictAction = class extends AstNode {};\nvar DoNothingConflictAction = class extends InsertOnConflictAction {\n\tkind = \"do-nothing\";\n\tconstructor() {\n\t\tsuper();\n\t\tthis.freeze();\n\t}\n\ttoInsertOnConflictAction() {\n\t\treturn this;\n\t}\n};\nvar DoUpdateSetConflictAction = class extends InsertOnConflictAction {\n\tkind = \"do-update-set\";\n\tset;\n\tconstructor(set) {\n\t\tsuper();\n\t\tthis.set = frozenRecordCopy(set);\n\t\tthis.freeze();\n\t}\n\ttoInsertOnConflictAction() {\n\t\treturn this;\n\t}\n};\nvar InsertOnConflict = class InsertOnConflict extends AstNode {\n\tkind = \"insert-on-conflict\";\n\tcolumns;\n\taction;\n\tconstructor(columns, action) {\n\t\tsuper();\n\t\tthis.columns = frozenArrayCopy(columns);\n\t\tthis.action = action;\n\t\tthis.freeze();\n\t}\n\tstatic on(columns) {\n\t\treturn new InsertOnConflict(columns, new DoNothingConflictAction());\n\t}\n\t/**\n\t* Skip a row that collides with any unique constraint on the table, without\n\t* naming one. The renderer chooses the dialect; Postgres and SQLite emit\n\t* `ON CONFLICT DO NOTHING`.\n\t*/\n\tstatic doNothing() {\n\t\treturn new InsertOnConflict([], new DoNothingConflictAction());\n\t}\n\tdoNothing() {\n\t\treturn new InsertOnConflict(this.columns, new DoNothingConflictAction());\n\t}\n\tdoUpdateSet(set) {\n\t\treturn new InsertOnConflict(this.columns, new DoUpdateSetConflictAction(set));\n\t}\n};\nvar InsertAst = class InsertAst extends QueryAst {\n\tkind = \"insert\";\n\ttable;\n\trows;\n\tonConflict;\n\treturning;\n\tconstructor(table, rows = [{}], onConflict, returning) {\n\t\tsuper();\n\t\tthis.table = table;\n\t\tthis.rows = freezeRows(rows);\n\t\tthis.onConflict = onConflict;\n\t\tthis.returning = returning && returning.length > 0 ? frozenArrayCopy(returning) : void 0;\n\t\tthis.freeze();\n\t}\n\tstatic into(table) {\n\t\treturn new InsertAst(table);\n\t}\n\twithRows(rows) {\n\t\treturn new InsertAst(this.table, rows.map((row) => ({ ...row })), this.onConflict, this.returning);\n\t}\n\twithReturning(returning) {\n\t\treturn new InsertAst(this.table, this.rows.map((row) => ({ ...row })), this.onConflict, returning);\n\t}\n\twithOnConflict(onConflict) {\n\t\treturn new InsertAst(this.table, this.rows.map((row) => ({ ...row })), onConflict, this.returning);\n\t}\n\trewrite(rewriter) {\n\t\treturn new InsertAst(rewriteTableSource(this.table, rewriter), this.rows.map((row) => rewriteInsertRow(row, rewriter)), this.onConflict ? rewriteOnConflict(this.onConflict, rewriter) : void 0, this.returning?.map((item) => rewriteProjectionItem(item, rewriter)));\n\t}\n\tcollectParamRefs() {\n\t\tconst refs = [];\n\t\tfor (const row of this.rows) for (const value of Object.values(row)) if (value.kind === \"param-ref\" || value.kind === \"prepared-param-ref\") refs.push(value);\n\t\telse if (value.kind === \"raw-expr\") refs.push(...value.collectParamRefs());\n\t\tif (this.onConflict?.action.kind === \"do-update-set\") {\n\t\t\tfor (const value of Object.values(this.onConflict.action.set)) if (value.kind === \"param-ref\" || value.kind === \"prepared-param-ref\") refs.push(value);\n\t\t}\n\t\tfor (const item of this.returning ?? []) if (item.expr.kind !== \"literal\") refs.push(...item.expr.collectParamRefs());\n\t\treturn refs;\n\t}\n\ttoQueryAst() {\n\t\treturn this;\n\t}\n};\nvar UpdateAst = class UpdateAst extends QueryAst {\n\tkind = \"update\";\n\ttable;\n\tset;\n\twhere;\n\treturning;\n\tconstructor(table, set = {}, where, returning) {\n\t\tsuper();\n\t\tthis.table = table;\n\t\tthis.set = frozenRecordCopy(set);\n\t\tthis.where = where;\n\t\tthis.returning = returning && returning.length > 0 ? frozenArrayCopy(returning) : void 0;\n\t\tthis.freeze();\n\t}\n\tstatic table(table) {\n\t\treturn new UpdateAst(table);\n\t}\n\twithSet(set) {\n\t\treturn new UpdateAst(this.table, set, this.where, this.returning);\n\t}\n\twithWhere(where) {\n\t\treturn new UpdateAst(this.table, this.set, where, this.returning);\n\t}\n\twithReturning(returning) {\n\t\treturn new UpdateAst(this.table, this.set, this.where, returning);\n\t}\n\trewrite(rewriter) {\n\t\treturn new UpdateAst(rewriteTableSource(this.table, rewriter), rewriteUpdateSet(this.set, rewriter), this.where?.rewrite(rewriter), this.returning?.map((item) => rewriteProjectionItem(item, rewriter)));\n\t}\n\tcollectParamRefs() {\n\t\tconst refs = [];\n\t\tfor (const value of Object.values(this.set)) refs.push(...value.collectParamRefs());\n\t\tif (this.where) refs.push(...this.where.collectParamRefs());\n\t\tfor (const item of this.returning ?? []) if (item.expr.kind !== \"literal\") refs.push(...item.expr.collectParamRefs());\n\t\treturn refs;\n\t}\n\ttoQueryAst() {\n\t\treturn this;\n\t}\n};\nvar DeleteAst = class DeleteAst extends QueryAst {\n\tkind = \"delete\";\n\ttable;\n\twhere;\n\treturning;\n\tconstructor(table, where, returning) {\n\t\tsuper();\n\t\tthis.table = table;\n\t\tthis.where = where;\n\t\tthis.returning = returning && returning.length > 0 ? frozenArrayCopy(returning) : void 0;\n\t\tthis.freeze();\n\t}\n\tstatic from(table) {\n\t\treturn new DeleteAst(table);\n\t}\n\twithWhere(where) {\n\t\treturn new DeleteAst(this.table, where, this.returning);\n\t}\n\twithReturning(returning) {\n\t\treturn new DeleteAst(this.table, this.where, returning);\n\t}\n\trewrite(rewriter) {\n\t\treturn new DeleteAst(rewriteTableSource(this.table, rewriter), this.where?.rewrite(rewriter), this.returning?.map((item) => rewriteProjectionItem(item, rewriter)));\n\t}\n\tcollectParamRefs() {\n\t\tconst refs = [];\n\t\tif (this.where) refs.push(...this.where.collectParamRefs());\n\t\tfor (const item of this.returning ?? []) if (item.expr.kind !== \"literal\") refs.push(...item.expr.collectParamRefs());\n\t\treturn refs;\n\t}\n\ttoQueryAst() {\n\t\treturn this;\n\t}\n};\n/**\n* The one column name a declared result cannot carry. Writing `__proto__` onto\n* an object literal sets that object's prototype instead of adding a property,\n* so a column so named would disappear between the declaration and the decoded\n* row — and the row type would still promise it. Every other name that shadows\n* something on `Object.prototype` (`constructor`, `prototype`) is an ordinary\n* own property when assigned, and passes through as declared.\n*/\nconst RESERVED_RESULT_COLUMN = \"__proto__\";\nfunction frozenRawQueryResult(result) {\n\tif (result.kind === \"affected-count\") return Object.freeze({ kind: \"affected-count\" });\n\tconst columns = {};\n\tfor (const [name, column] of Object.entries(result.columns)) {\n\t\tif (name === RESERVED_RESULT_COLUMN) throw structuredError(\"RUNTIME.AST_INVALID\", `A raw query result cannot declare a \"${RESERVED_RESULT_COLUMN}\" column: alias the column in SQL and declare the alias instead`, { meta: {\n\t\t\tkind: \"raw-query\",\n\t\t\tfield: \"result.columns\",\n\t\t\tcolumn: name\n\t\t} });\n\t\tcolumns[name] = Object.freeze({\n\t\t\tcodecId: column.codecId,\n\t\t\tnullable: column.nullable\n\t\t});\n\t}\n\treturn Object.freeze({\n\t\tkind: \"rows\",\n\t\tcolumns: Object.freeze(columns)\n\t});\n}\n/**\n* Raw-SQL statement AST node: a whole query authored as a template, carrying\n* the same `parts` representation as {@link RawExpr} (literal SQL fragments\n* interleaved with interpolated expressions and `ParamRef`s) plus the result\n* the author declared for it.\n*\n* The shared `parts` shape is what lets a row-returning raw query be spliced\n* into another raw template: the inner parts are concatenated into the outer\n* list, so parameters keep their template order and lowering walks one flat\n* sequence.\n*/\nvar RawQueryAst = class RawQueryAst extends QueryAst {\n\tkind = \"raw-query\";\n\tparts;\n\tresult;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.parts = frozenArrayCopy(options.parts);\n\t\tthis.result = frozenRawQueryResult(options.result);\n\t\tthis.freeze();\n\t}\n\tstatic rows(parts, columns) {\n\t\treturn new RawQueryAst({\n\t\t\tparts,\n\t\t\tresult: {\n\t\t\t\tkind: \"rows\",\n\t\t\t\tcolumns\n\t\t\t}\n\t\t});\n\t}\n\tstatic affectedCount(parts) {\n\t\treturn new RawQueryAst({\n\t\t\tparts,\n\t\t\tresult: { kind: \"affected-count\" }\n\t\t});\n\t}\n\trewrite(rewriter) {\n\t\treturn new RawQueryAst({\n\t\t\tparts: this.parts.map((part) => typeof part === \"string\" ? part : rewriteComparable(part, rewriter)),\n\t\t\tresult: this.result\n\t\t});\n\t}\n\tcollectParamRefs() {\n\t\tconst refs = [];\n\t\tfor (const part of this.parts) if (typeof part !== \"string\") refs.push(...part.collectParamRefs());\n\t\treturn refs;\n\t}\n\ttoQueryAst() {\n\t\treturn this;\n\t}\n};\nconst queryAstKinds = /* @__PURE__ */ new Set([\n\t\"select\",\n\t\"insert\",\n\t\"update\",\n\t\"delete\",\n\t\"raw-query\"\n]);\nconst whereExprKinds = /* @__PURE__ */ new Set([\n\t\"binary\",\n\t\"and\",\n\t\"or\",\n\t\"exists\",\n\t\"null-check\",\n\t\"not\"\n]);\nfunction isQueryAst(value) {\n\treturn typeof value === \"object\" && value !== null && \"kind\" in value && typeof value.kind === \"string\" && queryAstKinds.has(value.kind);\n}\nfunction isWhereExpr(value) {\n\treturn typeof value === \"object\" && value !== null && \"kind\" in value && typeof value.kind === \"string\" && whereExprKinds.has(value.kind);\n}\n//#endregion\nexport { PreparedParamRef as A, isAggregateFn as B, LiteralExpr as C, OrExpr as D, OperationExpr as E, SubqueryExpr as F, frozenCodecRef as G, isWhereExpr as H, TableSource as I, UpdateAst as L, RawExpr as M, RawQueryAst as N, OrderByItem as O, SelectAst as P, WindowFuncExpr as R, ListExpression as S, NullCheckExpr as T, queryAstKinds as U, isQueryAst as V, whereExprKinds as W, InsertAst as _, CastExpr as a, JsonArrayAggExpr as b, DeleteAst as c, DoUpdateSetConflictAction as d, EqColJoinOn as f, IdentifierRef as g, FunctionSource as h, CaseExpr as i, ProjectionItem as j, ParamRef as k, DerivedTableSource as l, FunctionCallExpr as m, AndExpr as n, ColumnRef as o, ExistsExpr as p, BinaryExpr as r, DefaultValueExpr as s, AggregateExpr as t, DoNothingConflictAction as u, InsertOnConflict as v, NotExpr as w, JsonObjectExpr as x, JoinAst as y, aggregateFnNames as z };\n\n//# sourceMappingURL=types-ZNKYVjLr.mjs.map"],"mappings":";;;;AAIA,SAAS,YAAY,OAAO;CAC3B,OAAO,MAAM,QAAQ,KAAK;AAC3B;AACA,SAAS,gBAAgB,OAAO;CAC/B,IAAI,UAAU,QAAQ,OAAO,UAAU,UAAU;CACjD,IAAI,YAAY,KAAK,GAAG,KAAK,MAAM,QAAQ,OAAO,gBAAgB,IAAI;MACjE,KAAK,MAAM,QAAQ,OAAO,OAAO,KAAK,GAAG,gBAAgB,IAAI;CAClE,OAAO,OAAO,KAAK;AACpB;AACA,SAAS,eAAe,OAAO;CAC9B,MAAM,aAAa,MAAM,eAAe,KAAK,IAAI,KAAK,IAAI,gBAAgB,MAAM,UAAU;CAC1F,IAAI,eAAe,KAAK,GAAG,gBAAgB,UAAU;CACrD,OAAO,OAAO,OAAO;EACpB,SAAS,MAAM;EACf,GAAG,UAAU,cAAc,UAAU;EACrC,GAAG,UAAU,QAAQ,MAAM,IAAI;CAChC,CAAC;AACF;;;;AAMA,MAAM,mCAAmC,IAAI,IAAI;CAChD;CACA;CACA;CACA;CACA;AACD,CAAC;;AAED,SAAS,cAAc,MAAM;CAC5B,OAAO,iBAAiB,IAAI,IAAI;AACjC;AACA,MAAM,yBAAyB;CAC9B,YAAY,SAAS;CACrB,gBAAgB,SAAS;CACzB,WAAW,SAAS;CACpB,YAAY,SAAS;CACrB,YAAY,SAAS;CACrB,aAAa,SAAS;CACtB,eAAe,SAAS;CACxB,OAAO,SAAS;CAChB,OAAO,SAAS;CAChB,aAAa,SAAS;CACtB,eAAe,SAAS;CACxB,SAAS,SAAS;CAClB,MAAM,SAAS;CACf,KAAK,SAAS;CACd,SAAS,SAAS;CAClB,YAAY,SAAS;CACrB,MAAM,SAAS;CACf,UAAU,SAAS;CACnB,QAAQ,SAAS;CACjB,gBAAgB,SAAS;CACzB,OAAO,SAAS;CAChB,UAAU,SAAS;AACpB;AACA,SAAS,gBAAgB,QAAQ;CAChC,OAAO,OAAO,OAAO,CAAC,GAAG,MAAM,CAAC;AACjC;AACA,SAAS,yBAAyB,OAAO;CACxC,OAAO,UAAU,KAAK,IAAI,KAAK,IAAI,OAAO,OAAO,EAAE,GAAG,MAAM,CAAC;AAC9D;AACA,SAAS,iBAAiB,QAAQ;CACjC,OAAO,OAAO,OAAO,EAAE,GAAG,OAAO,CAAC;AACnC;AACA,SAAS,WAAW,MAAM;CACzB,OAAO,OAAO,OAAO,KAAK,KAAK,QAAQ,OAAO,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAClE;AACA,SAAS,WAAW,QAAQ,QAAQ;CACnC,IAAI,SAAS,OAAO;CACpB,KAAK,MAAM,SAAS,QAAQ;EAC3B,IAAI,OAAO,cAAc,MAAM,GAAG,OAAO;EACzC,SAAS,OAAO,QAAQ,QAAQ,MAAM,CAAC;CACxC;CACA,OAAO;AACR;AACA,SAAS,kBAAkB,OAAO,UAAU;CAC3C,QAAQ,MAAM,MAAd;EACC,KAAK,aAAa,OAAO,SAAS,WAAW,SAAS,SAAS,KAAK,IAAI;EACxE,KAAK,sBAAsB,OAAO,SAAS,mBAAmB,SAAS,iBAAiB,KAAK,IAAI;EACjG,KAAK,WAAW,OAAO,SAAS,UAAU,SAAS,QAAQ,KAAK,IAAI;EACpE,KAAK;GACJ,IAAI,SAAS,MAAM,OAAO,SAAS,KAAK,KAAK;GAC7C,OAAO,MAAM,QAAQ,QAAQ;EAC9B,SAAS,OAAO,MAAM,QAAQ,QAAQ;CACvC;AACD;AACA,SAAS,eAAe,OAAO,QAAQ;CACtC,QAAQ,MAAM,MAAd;EACC,KAAK,aAAa,OAAO,OAAO,WAAW,OAAO,SAAS,KAAK,IAAI,OAAO;EAC3E,KAAK,sBAAsB,OAAO,OAAO,mBAAmB,OAAO,iBAAiB,KAAK,IAAI,OAAO;EACpG,KAAK,WAAW,OAAO,OAAO,UAAU,OAAO,QAAQ,KAAK,IAAI,OAAO;EACvE,KAAK,QAAQ,OAAO,MAAM,KAAK,MAAM;EACrC,SAAS,OAAO,MAAM,KAAK,MAAM;CAClC;AACD;AACA,SAAS,sBAAsB,MAAM;CACpC,OAAO,KAAK,KAAK;EAChB,OAAO,CAAC;EACR,UAAU,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;EAC9B,YAAY,cAAc,CAAC,SAAS;EACpC,SAAS,QAAQ,IAAI,kBAAkB;CACxC,CAAC;AACF;AACA,SAAS,qBAAqB,MAAM;CACnC,OAAO,KAAK,KAAK;EAChB,OAAO,CAAC;EACR,UAAU,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;EAC9B,WAAW,aAAa,CAAC,QAAQ;EACjC,mBAAmB,aAAa,CAAC,QAAQ;EACzC,SAAS,QAAQ,IAAI,iBAAiB;CACvC,CAAC;AACF;AACA,SAAS,mBAAmB,OAAO,UAAU;CAC5C,OAAO,SAAS,cAAc,SAAS,YAAY,KAAK,IAAI;AAC7D;AACA,SAAS,sBAAsB,MAAM,UAAU;CAC9C,MAAM,gBAAgB,KAAK,KAAK,SAAS,YAAY,SAAS,UAAU,SAAS,QAAQ,KAAK,IAAI,IAAI,KAAK,OAAO,KAAK,KAAK,QAAQ,QAAQ;CAC5I,OAAO,IAAI,eAAe,KAAK,OAAO,eAAe,KAAK,KAAK;AAChE;AACA,SAAS,mBAAmB,OAAO,UAAU;CAC5C,QAAQ,MAAM,MAAd;EACC,KAAK,aAAa,OAAO,SAAS,WAAW,yBAAyB,OAAO,QAAQ,IAAI;EACzF,KAAK,sBAAsB,OAAO,SAAS,mBAAmB,SAAS,iBAAiB,KAAK,IAAI;EACjG,KAAK,cAAc,OAAO,SAAS,YAAY,0BAA0B,OAAO,QAAQ,IAAI;EAC5F,KAAK,iBAAiB,OAAO;EAC7B,KAAK,YAAY,OAAO;CACzB;AACD;AACA,SAAS,yBAAyB,OAAO,UAAU;CAClD,MAAM,YAAY,SAAS,WAAW,SAAS,SAAS,KAAK,IAAI;CACjE,OAAO,UAAU,SAAS,cAAc,YAAY;AACrD;AACA,SAAS,0BAA0B,OAAO,UAAU;CACnD,MAAM,YAAY,SAAS,YAAY,SAAS,UAAU,KAAK,IAAI;CACnE,OAAO,UAAU,SAAS,eAAe,YAAY;AACtD;AACA,SAAS,iBAAiB,KAAK,UAAU;CACxC,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,GAAG,GAAG,OAAO,OAAO,mBAAmB,OAAO,QAAQ;CAChG,OAAO;AACR;AACA,SAAS,iBAAiB,KAAK,UAAU;CACxC,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,GAAG,GAAG,OAAO,OAAO,MAAM,QAAQ,QAAQ;CACpF,OAAO;AACR;AACA,SAAS,mBAAmB,OAAO,UAAU;CAC5C,IAAI,UAAU,KAAK,KAAK,OAAO,UAAU,UAAU,OAAO;CAC1D,OAAO,MAAM,QAAQ,QAAQ;AAC9B;AACA,SAAS,kBAAkB,YAAY,UAAU;CAChD,MAAM,UAAU,WAAW,QAAQ,KAAK,cAAc;EACrD,MAAM,YAAY,SAAS,YAAY,SAAS,UAAU,SAAS,IAAI;EACvE,OAAO,UAAU,SAAS,eAAe,YAAY;CACtD,CAAC;CACD,IAAI,WAAW,OAAO,SAAS,cAAc,OAAO,IAAI,iBAAiB,SAAS,IAAI,wBAAwB,CAAC;CAC/G,OAAO,IAAI,iBAAiB,SAAS,IAAI,0BAA0B,iBAAiB,WAAW,OAAO,KAAK,QAAQ,CAAC,CAAC;AACtH;AACA,IAAI,UAAU,MAAM;CACnB,SAAS;EACR,OAAO,OAAO,IAAI;CACnB;AACD;AACA,IAAI,WAAW,cAAc,QAAQ,CAAC;AACtC,IAAI,aAAa,cAAc,QAAQ,CAAC;AACxC,IAAI,aAAa,cAAc,QAAQ;CACtC,oBAAoB;EACnB,OAAO,sBAAsB,IAAI;CAClC;CACA,mBAAmB;EAClB,OAAO,qBAAqB,IAAI;CACjC;CACA,gBAAgB;EACf,MAAM,IAAI,cAAc,GAAG,KAAK,YAAY,KAAK,yCAAyC;CAC3F;CACA,mBAAmB;EAClB,OAAO,KAAK,OAAO,sBAAsB;CAC1C;CACA,SAAS;EACR,OAAO,KAAKA,iBAAiB;CAC9B;CACA,MAAM;EACL,OAAO,IAAI,QAAQ,KAAKA,iBAAiB,CAAC;CAC3C;AACD;AACA,IAAI,cAAc,MAAM,oBAAoB,WAAW;CACtD,OAAO;CACP;CACA;;;;;;;CAOA;CACA,YAAY,MAAM,OAAO,aAAa;EACrC,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,cAAc;CACpB;CACA,OAAO,MAAM,MAAM,OAAO,aAAa;EACtC,MAAM,SAAS,IAAI,YAAY,MAAM,OAAO,WAAW;EACvD,OAAO,OAAO;EACd,OAAO;CACR;CACA,QAAQ,UAAU;EACjB,OAAO,SAAS,cAAc,SAAS,YAAY,IAAI,IAAI;CAC5D;CACA,eAAe;EACd,OAAO;CACR;AACD;AACA,IAAI,qBAAqB,MAAM,2BAA2B,WAAW;CACpE,OAAO;CACP;CACA;CACA,YAAY,OAAO,OAAO;EACzB,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,QAAQ;EACb,KAAK,OAAO;CACb;CACA,OAAO,GAAG,OAAO,OAAO;EACvB,OAAO,IAAI,mBAAmB,OAAO,KAAK;CAC3C;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,mBAAmB,KAAK,OAAO,KAAK,MAAM,QAAQ,QAAQ,CAAC;CACvE;CACA,eAAe;EACd,OAAO;CACR;AACD;AACA,IAAI,iBAAiB,MAAM,uBAAuB,WAAW;CAC5D,OAAO;CACP;CACA;CACA;CACA;CACA;CACA,YAAY,IAAI,MAAM,OAAO,aAAa,OAAO;EAChD,MAAM;EACN,IAAI,OAAO,eAAe,WAAW,GAAG,MAAM,gBAAgB,uBAAuB,mDAAmD,EAAE,MAAM;GAC/I,MAAM;GACN,OAAO;EACR,EAAE,CAAC;EACH,KAAK,KAAK;EACV,KAAK,OAAO,gBAAgB,IAAI;EAChC,KAAK,QAAQ,OAAO;EACpB,KAAK,gBAAgB,OAAO,kBAAkB,KAAK,IAAI,KAAK,IAAI,gBAAgB,MAAM,aAAa;EACnG,KAAK,aAAa;EAClB,KAAK,OAAO;CACb;CACA,OAAO,GAAG,IAAI,MAAM,OAAO;EAC1B,OAAO,IAAI,eAAe,IAAI,MAAM,KAAK;CAC1C;CACA,gBAAgB;EACf,IAAI,KAAK,UAAU,KAAK,GAAG,OAAO,KAAK;EACvC,OAAO;GACN,OAAO,KAAK;GACZ,GAAG,UAAU,iBAAiB,KAAK,aAAa;EACjD;CACD;CACA,iBAAiB;EAChB,IAAI,KAAK,YAAY,OAAO;EAC5B,OAAO,IAAI,eAAe,KAAK,IAAI,KAAK,MAAM,KAAKC,cAAc,GAAG,IAAI;CACzE;CACA,QAAQ,UAAU;EACjB,MAAM,gBAAgB,KAAK,KAAK,KAAK,QAAQ,kBAAkB,KAAK,QAAQ,CAAC;EAC7E,IAAI,cAAc,OAAO,KAAK,MAAM,QAAQ,KAAK,KAAK,EAAE,GAAG,OAAO;EAClE,OAAO,IAAI,eAAe,KAAK,IAAI,eAAe,KAAKA,cAAc,GAAG,KAAK,UAAU;CACxF;CACA,eAAe;EACd,OAAO;CACR;AACD;AACA,IAAI,YAAY,MAAM,kBAAkB,WAAW;CAClD,OAAO;CACP;CACA;CACA,YAAY,OAAO,QAAQ;EAC1B,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,SAAS;EACd,KAAK,OAAO;CACb;CACA,OAAO,GAAG,OAAO,QAAQ;EACxB,OAAO,IAAI,UAAU,OAAO,MAAM;CACnC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,UAAU,IAAI;CAC9B;CACA,QAAQ,UAAU;EACjB,OAAO,SAAS,YAAY,SAAS,UAAU,IAAI,IAAI;CACxD;CACA,KAAK,QAAQ;EACZ,OAAO,OAAO,YAAY,OAAO,UAAU,IAAI,IAAI,OAAO;CAC3D;CACA,gBAAgB;EACf,OAAO;CACR;AACD;AACA,IAAI,gBAAgB,MAAM,sBAAsB,WAAW;CAC1D,OAAO;CACP;CACA,YAAY,MAAM;EACjB,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,OAAO;CACb;CACA,OAAO,GAAG,MAAM;EACf,OAAO,IAAI,cAAc,IAAI;CAC9B;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,cAAc,IAAI;CAClC;CACA,QAAQ,UAAU;EACjB,OAAO,SAAS,gBAAgB,SAAS,cAAc,IAAI,IAAI;CAChE;CACA,KAAK,QAAQ;EACZ,OAAO,OAAO,gBAAgB,OAAO,cAAc,IAAI,IAAI,OAAO;CACnE;AACD;AACA,IAAI,WAAW,MAAM,iBAAiB,WAAW;CAChD,OAAO;CACP;CACA;;;;;;CAMA;CACA,YAAY,OAAO,SAAS;EAC3B,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,OAAO,SAAS;EACrB,KAAK,QAAQ,SAAS,QAAQ,eAAe,QAAQ,KAAK,IAAI,KAAK;EACnE,KAAK,OAAO;CACb;CACA,OAAO,GAAG,OAAO,SAAS;EACzB,OAAO,IAAI,SAAS,OAAO,OAAO;CACnC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,MAAM,IAAI;CAC1B;CACA,QAAQ,UAAU;EACjB,OAAO,SAAS,WAAW,SAAS,SAAS,IAAI,IAAI;CACtD;CACA,KAAK,QAAQ;EACZ,OAAO,OAAO,WAAW,OAAO,SAAS,IAAI,IAAI,OAAO;CACzD;AACD;;;;;;;AAOA,IAAI,mBAAmB,MAAM,yBAAyB,WAAW;CAChE,OAAO;CACP;CACA;CACA;CACA,YAAY,MAAM,OAAO,WAAW,OAAO;EAC1C,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,QAAQ,eAAe,KAAK;EACjC,KAAK,WAAW;EAChB,KAAK,OAAO;CACb;CACA,OAAO,GAAG,MAAM,OAAO,WAAW,OAAO;EACxC,OAAO,IAAI,iBAAiB,MAAM,OAAO,QAAQ;CAClD;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,cAAc,IAAI;CAClC;CACA,QAAQ,UAAU;EACjB,OAAO,SAAS,mBAAmB,SAAS,iBAAiB,IAAI,IAAI;CACtE;CACA,KAAK,QAAQ;EACZ,OAAO,OAAO,mBAAmB,OAAO,iBAAiB,IAAI,IAAI,OAAO;CACzE;AACD;AACA,IAAI,mBAAmB,cAAc,QAAQ;CAC5C,OAAO;CACP,cAAc;EACb,MAAM;EACN,KAAK,OAAO;CACb;AACD;AACA,IAAI,cAAc,MAAM,oBAAoB,WAAW;CACtD,OAAO;CACP;CACA,YAAY,OAAO;EAClB,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,OAAO;CACb;CACA,OAAO,GAAG,OAAO;EAChB,OAAO,IAAI,YAAY,KAAK;CAC7B;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,QAAQ,IAAI;CAC5B;CACA,QAAQ,UAAU;EACjB,OAAO,SAAS,UAAU,SAAS,QAAQ,IAAI,IAAI;CACpD;CACA,KAAK,QAAQ;EACZ,OAAO,OAAO,UAAU,OAAO,QAAQ,IAAI,IAAI,OAAO;CACvD;AACD;AACA,IAAI,eAAe,MAAM,qBAAqB,WAAW;CACxD,OAAO;CACP;CACA,YAAY,OAAO;EAClB,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,OAAO;CACb;CACA,OAAO,GAAG,OAAO;EAChB,OAAO,IAAI,aAAa,KAAK;CAC9B;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,SAAS,IAAI;CAC7B;CACA,QAAQ,UAAU;EACjB,MAAM,QAAQ,KAAK,MAAM,QAAQ,QAAQ;EACzC,OAAO,IAAI,aAAa,KAAK;CAC9B;CACA,KAAK,QAAQ;EACZ,OAAO,OAAO,SAAS,OAAO,OAAO,KAAK,KAAK,IAAI,OAAO;CAC3D;AACD;AACA,IAAI,gBAAgB,MAAM,sBAAsB,WAAW;CAC1D,OAAO;CACP;CACA;CACA;CACA;CACA;CACA,YAAY,SAAS;EACpB,MAAM;EACN,KAAK,SAAS,QAAQ;EACtB,KAAK,OAAO,QAAQ;EACpB,KAAK,OAAO,gBAAgB,QAAQ,QAAQ,CAAC,CAAC;EAC9C,KAAK,UAAU,QAAQ;EACvB,KAAK,WAAW,QAAQ;EACxB,KAAK,OAAO;CACb;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,UAAU,IAAI;CAC9B;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,cAAc;GACxB,QAAQ,KAAK;GACb,MAAM,KAAK,KAAK,QAAQ,QAAQ;GAChC,MAAM,KAAK,KAAK,KAAK,QAAQ,kBAAkB,KAAK,QAAQ,CAAC;GAC7D,SAAS,KAAK;GACd,UAAU,KAAK;EAChB,CAAC;CACF;CACA,KAAK,QAAQ;EACZ,OAAO,WAAW,QAAQ,OAAO,KAAK,KAAK,KAAK,MAAM,GAAG,GAAG,KAAK,KAAK,KAAK,cAAc,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC;CACvH;CACA,gBAAgB;EACf,OAAO,KAAK,KAAK,cAAc;CAChC;AACD;AACA,IAAI,UAAU,cAAc,WAAW;CACtC,OAAO;CACP;CACA;CACA,YAAY,SAAS;EACpB,MAAM;EACN,KAAK,QAAQ,gBAAgB,QAAQ,KAAK;EAC1C,KAAK,UAAU,QAAQ;EACvB,KAAK,OAAO;CACb;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,QAAQ,IAAI;CAC5B;CACA,QAAQ,UAAU;EACjB,OAAO,SAAS,UAAU,SAAS,QAAQ,IAAI,IAAI;CACpD;CACA,KAAK,QAAQ;EACZ,IAAI,OAAO,SAAS,OAAO,OAAO,QAAQ,IAAI;EAC9C,OAAO,WAAW,QAAQ,KAAK,MAAM,QAAQ,MAAM,OAAO,MAAM,QAAQ,CAAC,CAAC,KAAK,YAAY,EAAE,KAAK,MAAM,CAAC,CAAC;CAC3G;AACD;AACA,IAAI,gBAAgB,MAAM,sBAAsB,WAAW;CAC1D,OAAO;CACP;CACA;CACA,YAAY,IAAI,MAAM;EACrB,MAAM;EACN,IAAI,OAAO,WAAW,SAAS,KAAK,GAAG,MAAM,gBAAgB,wBAAwB,uBAAuB,GAAG,2BAA2B,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;EAC1J,KAAK,KAAK;EACV,KAAK,OAAO;EACZ,KAAK,OAAO;CACb;CACA,OAAO,MAAM,MAAM;EAClB,OAAO,IAAI,cAAc,SAAS,IAAI;CACvC;CACA,OAAO,IAAI,MAAM;EAChB,OAAO,IAAI,cAAc,OAAO,IAAI;CACrC;CACA,OAAO,IAAI,MAAM;EAChB,OAAO,IAAI,cAAc,OAAO,IAAI;CACrC;CACA,OAAO,IAAI,MAAM;EAChB,OAAO,IAAI,cAAc,OAAO,IAAI;CACrC;CACA,OAAO,IAAI,MAAM;EAChB,OAAO,IAAI,cAAc,OAAO,IAAI;CACrC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,UAAU,IAAI;CAC9B;CACA,QAAQ,UAAU;EACjB,OAAO,KAAK,SAAS,KAAK,IAAI,OAAO,IAAI,cAAc,KAAK,IAAI,KAAK,KAAK,QAAQ,QAAQ,CAAC;CAC5F;CACA,KAAK,QAAQ;EACZ,OAAO,KAAK,OAAO,KAAK,KAAK,KAAK,MAAM,IAAI,OAAO;CACpD;AACD;;;;;;;;;;;;;;AAcA,IAAI,iBAAiB,MAAM,uBAAuB,WAAW;CAC5D,OAAO;CACP;CACA;CACA;CACA;CACA,YAAY,SAAS;EACpB,MAAM;EACN,KAAK,KAAK,QAAQ;EAClB,KAAK,OAAO,QAAQ,QAAQ,QAAQ,KAAK,SAAS,IAAI,gBAAgB,QAAQ,IAAI,IAAI,CAAC;EACvF,KAAK,cAAc,QAAQ,eAAe,QAAQ,YAAY,SAAS,IAAI,gBAAgB,QAAQ,WAAW,IAAI,KAAK;EACvH,KAAK,UAAU,QAAQ,WAAW,QAAQ,QAAQ,SAAS,IAAI,gBAAgB,QAAQ,OAAO,IAAI,KAAK;EACvG,KAAK,OAAO;CACb;CACA,OAAO,UAAU,SAAS;EACzB,OAAO,IAAI,eAAe;GACzB,IAAI;GACJ,GAAG;EACJ,CAAC;CACF;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,WAAW,IAAI;CAC/B;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,eAAe;GACzB,IAAI,KAAK;GACT,MAAM,KAAK,KAAK,KAAK,QAAQ,IAAI,QAAQ,QAAQ,CAAC;GAClD,GAAG,UAAU,eAAe,KAAK,aAAa,KAAK,SAAS,KAAK,QAAQ,QAAQ,CAAC,CAAC;GACnF,GAAG,UAAU,WAAW,KAAK,SAAS,KAAK,cAAc,UAAU,QAAQ,QAAQ,CAAC,CAAC;EACtF,CAAC;CACF;CACA,KAAK,QAAQ;EACZ,OAAO,WAAW,QAAQ;GACzB,GAAG,KAAK,KAAK,KAAK,cAAc,IAAI,KAAK,MAAM,CAAC;GAChD,IAAI,KAAK,eAAe,CAAC,EAAA,CAAG,KAAK,eAAe,KAAK,KAAK,MAAM,CAAC;GACjE,IAAI,KAAK,WAAW,CAAC,EAAA,CAAG,KAAK,oBAAoB,UAAU,KAAK,KAAK,MAAM,CAAC;EAC7E,CAAC;CACF;AACD;AACA,IAAI,mBAAmB,MAAM,yBAAyB,WAAW;CAChE,OAAO;CACP;CACA;CACA,YAAY,IAAI,MAAM;EACrB,MAAM;EACN,KAAK,KAAK;EACV,KAAK,OAAO,gBAAgB,IAAI;EAChC,KAAK,OAAO;CACb;CACA,OAAO,GAAG,IAAI,MAAM;EACnB,OAAO,IAAI,iBAAiB,IAAI,IAAI;CACrC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,aAAa,IAAI;CACjC;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,iBAAiB,KAAK,IAAI,KAAK,KAAK,KAAK,QAAQ,IAAI,QAAQ,QAAQ,CAAC,CAAC;CACnF;CACA,KAAK,QAAQ;EACZ,OAAO,WAAW,QAAQ,KAAK,KAAK,KAAK,cAAc,IAAI,KAAK,MAAM,CAAC,CAAC;CACzE;AACD;AACA,IAAI,WAAW,MAAM,iBAAiB,WAAW;CAChD,OAAO;CACP;CACA;CACA,YAAY,MAAM,YAAY;EAC7B,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,aAAa;EAClB,KAAK,OAAO;CACb;CACA,OAAO,GAAG,MAAM,YAAY;EAC3B,OAAO,IAAI,SAAS,MAAM,UAAU;CACrC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,KAAK,IAAI;CACzB;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,SAAS,KAAK,KAAK,QAAQ,QAAQ,GAAG,KAAK,UAAU;CACjE;CACA,KAAK,QAAQ;EACZ,OAAO,KAAK,KAAK,KAAK,MAAM;CAC7B;AACD;AACA,IAAI,WAAW,MAAM,iBAAiB,WAAW;CAChD,OAAO;CACP;CACA;CACA,YAAY,UAAU,UAAU;EAC/B,MAAM;EACN,IAAI,SAAS,WAAW,GAAG,MAAM,gBAAgB,uBAAuB,yCAAyC,EAAE,MAAM;GACxH,MAAM;GACN,OAAO;EACR,EAAE,CAAC;EACH,KAAK,WAAW,OAAO,OAAO,SAAS,KAAK,WAAW,OAAO,OAAO;GACpE,WAAW,OAAO;GAClB,OAAO,OAAO;EACf,CAAC,CAAC,CAAC;EACH,KAAK,WAAW;EAChB,KAAK,OAAO;CACb;CACA,OAAO,GAAG,UAAU,UAAU;EAC7B,OAAO,IAAI,SAAS,UAAU,QAAQ;CACvC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,KAAK,IAAI;CACzB;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,SAAS,KAAK,SAAS,KAAK,YAAY;GAClD,WAAW,OAAO,UAAU,QAAQ,QAAQ;GAC5C,OAAO,OAAO,MAAM,QAAQ,QAAQ;EACrC,EAAE,GAAG,KAAK,UAAU,QAAQ,QAAQ,CAAC;CACtC;CACA,KAAK,QAAQ;EACZ,MAAM,WAAW,KAAK;EACtB,OAAO,WAAW,QAAQ,CAAC,GAAG,KAAK,SAAS,SAAS,WAAW,OAAO,OAAO,UAAU,KAAK,MAAM,SAAS,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,GAAG,aAAa,KAAK,IAAI,CAAC,IAAI,OAAO,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC;CACtM;AACD;AACA,IAAI,iBAAiB,MAAM,uBAAuB,WAAW;CAC5D,OAAO;CACP;CACA,YAAY,SAAS;EACpB,MAAM;EACN,KAAK,UAAU,gBAAgB,QAAQ,KAAK,UAAU,OAAO,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;EAClF,KAAK,OAAO;CACb;CACA,OAAO,MAAM,KAAK,OAAO;EACxB,OAAO;GACN;GACA;EACD;CACD;CACA,OAAO,YAAY,SAAS;EAC3B,OAAO,IAAI,eAAe,OAAO;CAClC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,WAAW,IAAI;CAC/B;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,eAAe,KAAK,QAAQ,KAAK,WAAW;GACtD,KAAK,MAAM;GACX,OAAO,MAAM,MAAM,QAAQ,QAAQ;EACpC,EAAE,CAAC;CACJ;CACA,KAAK,QAAQ;EACZ,OAAO,WAAW,QAAQ,KAAK,QAAQ,KAAK,gBAAgB,MAAM,MAAM,KAAK,MAAM,CAAC,CAAC;CACtF;AACD;AACA,IAAI,cAAc,MAAM,oBAAoB,QAAQ;CACnD,OAAO;CACP;CACA;CACA,YAAY,MAAM,KAAK;EACtB,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,MAAM;EACX,KAAK,OAAO;CACb;CACA,OAAO,IAAI,MAAM;EAChB,OAAO,IAAI,YAAY,MAAM,KAAK;CACnC;CACA,OAAO,KAAK,MAAM;EACjB,OAAO,IAAI,YAAY,MAAM,MAAM;CACpC;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,YAAY,KAAK,KAAK,QAAQ,QAAQ,GAAG,KAAK,GAAG;CAC7D;;;;;;CAMA,UAAU;EACT,OAAO,IAAI,YAAY,KAAK,MAAM,KAAK,QAAQ,QAAQ,SAAS,KAAK;CACtE;AACD;AACA,IAAI,mBAAmB,MAAM,yBAAyB,WAAW;CAChE,OAAO;CACP;CACA;CACA;CACA,YAAY,MAAM,UAAU,QAAQ,SAAS;EAC5C,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,UAAU;EACf,KAAK,UAAU,WAAW,QAAQ,SAAS,IAAI,gBAAgB,OAAO,IAAI,KAAK;EAC/E,KAAK,OAAO;CACb;CACA,OAAO,GAAG,MAAM,UAAU,QAAQ,SAAS;EAC1C,OAAO,IAAI,iBAAiB,MAAM,SAAS,OAAO;CACnD;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,aAAa,IAAI;CACjC;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,iBAAiB,KAAK,KAAK,QAAQ,QAAQ,GAAG,KAAK,SAAS,KAAK,SAAS,KAAK,cAAc,UAAU,QAAQ,QAAQ,CAAC,CAAC;CACrI;CACA,KAAK,QAAQ;EACZ,OAAO,WAAW,QAAQ,OAAO,KAAK,KAAK,KAAK,MAAM,GAAG,IAAI,KAAK,WAAW,CAAC,EAAA,CAAG,KAAK,oBAAoB,UAAU,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC;CACxI;AACD;AACA,IAAI,iBAAiB,MAAM,uBAAuB,WAAW;CAC5D,OAAO;CACP;CACA,YAAY,QAAQ;EACnB,MAAM;EACN,KAAK,SAAS,gBAAgB,MAAM;EACpC,KAAK,OAAO;CACb;CACA,OAAO,GAAG,QAAQ;EACjB,OAAO,IAAI,eAAe,MAAM;CACjC;CACA,OAAO,WAAW,QAAQ;EACzB,OAAO,IAAI,eAAe,OAAO,KAAK,UAAU,IAAI,YAAY,KAAK,CAAC,CAAC;CACxE;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,KAAK,IAAI;CACzB;CACA,QAAQ,UAAU;EACjB,IAAI,SAAS,MAAM,OAAO,SAAS,KAAK,IAAI;EAC5C,OAAO,IAAI,eAAe,KAAK,OAAO,KAAK,UAAU,MAAM,QAAQ,QAAQ,CAAC,CAAC;CAC9E;CACA,KAAK,QAAQ;EACZ,IAAI,OAAO,MAAM,OAAO,OAAO,KAAK,IAAI;EACxC,OAAO,WAAW,QAAQ,KAAK,OAAO,KAAK,gBAAgB,MAAM,KAAK,MAAM,CAAC,CAAC;CAC/E;AACD;AACA,IAAI,aAAa,MAAM,mBAAmB,WAAW;CACpD,OAAO;CACP;CACA;CACA;CACA,YAAY,IAAI,MAAM,OAAO;EAC5B,MAAM;EACN,KAAK,KAAK;EACV,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,OAAO;CACb;CACA,OAAO,GAAG,MAAM,OAAO;EACtB,OAAO,IAAI,WAAW,MAAM,MAAM,KAAK;CACxC;CACA,OAAO,IAAI,MAAM,OAAO;EACvB,OAAO,IAAI,WAAW,OAAO,MAAM,KAAK;CACzC;CACA,OAAO,GAAG,MAAM,OAAO;EACtB,OAAO,IAAI,WAAW,MAAM,MAAM,KAAK;CACxC;CACA,OAAO,GAAG,MAAM,OAAO;EACtB,OAAO,IAAI,WAAW,MAAM,MAAM,KAAK;CACxC;CACA,OAAO,IAAI,MAAM,OAAO;EACvB,OAAO,IAAI,WAAW,OAAO,MAAM,KAAK;CACzC;CACA,OAAO,IAAI,MAAM,OAAO;EACvB,OAAO,IAAI,WAAW,OAAO,MAAM,KAAK;CACzC;CACA,OAAO,KAAK,MAAM,OAAO;EACxB,OAAO,IAAI,WAAW,QAAQ,MAAM,KAAK;CAC1C;CACA,OAAO,GAAG,MAAM,OAAO;EACtB,OAAO,IAAI,WAAW,MAAM,MAAM,KAAK;CACxC;CACA,OAAO,MAAM,MAAM,OAAO;EACzB,OAAO,IAAI,WAAW,SAAS,MAAM,KAAK;CAC3C;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,OAAO,IAAI;CAC3B;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,WAAW,KAAK,IAAI,kBAAkB,KAAK,MAAM,QAAQ,GAAG,kBAAkB,KAAK,OAAO,QAAQ,CAAC;CAC/G;CACA,KAAK,QAAQ;EACZ,OAAO,WAAW,QAAQ,OAAO,eAAe,KAAK,MAAM,MAAM,SAAS,eAAe,KAAK,OAAO,MAAM,CAAC,CAAC;CAC9G;AACD;AACA,IAAI,UAAU,MAAM,gBAAgB,WAAW;CAC9C,OAAO;CACP;CACA,YAAY,OAAO;EAClB,MAAM;EACN,KAAK,QAAQ,gBAAgB,KAAK;EAClC,KAAK,OAAO;CACb;CACA,OAAO,GAAG,OAAO;EAChB,OAAO,IAAI,QAAQ,KAAK;CACzB;CACA,OAAO,OAAO;EACb,OAAO,IAAI,QAAQ,CAAC,CAAC;CACtB;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,IAAI,IAAI;CACxB;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,QAAQ,KAAK,MAAM,KAAK,SAAS,KAAK,QAAQ,QAAQ,CAAC,CAAC;CACpE;CACA,KAAK,QAAQ;EACZ,OAAO,WAAW,QAAQ,KAAK,MAAM,KAAK,eAAe,KAAK,KAAK,MAAM,CAAC,CAAC;CAC5E;AACD;AACA,IAAI,SAAS,MAAM,eAAe,WAAW;CAC5C,OAAO;CACP;CACA,YAAY,OAAO;EAClB,MAAM;EACN,KAAK,QAAQ,gBAAgB,KAAK;EAClC,KAAK,OAAO;CACb;CACA,OAAO,GAAG,OAAO;EAChB,OAAO,IAAI,OAAO,KAAK;CACxB;CACA,OAAO,QAAQ;EACd,OAAO,IAAI,OAAO,CAAC,CAAC;CACrB;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,GAAG,IAAI;CACvB;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,OAAO,KAAK,MAAM,KAAK,SAAS,KAAK,QAAQ,QAAQ,CAAC,CAAC;CACnE;CACA,KAAK,QAAQ;EACZ,OAAO,WAAW,QAAQ,KAAK,MAAM,KAAK,eAAe,KAAK,KAAK,MAAM,CAAC,CAAC;CAC5E;AACD;AACA,IAAI,aAAa,MAAM,mBAAmB,WAAW;CACpD,OAAO;CACP;CACA;CACA,YAAY,UAAU,YAAY,OAAO;EACxC,MAAM;EACN,KAAK,YAAY;EACjB,KAAK,WAAW;EAChB,KAAK,OAAO;CACb;CACA,OAAO,OAAO,UAAU;EACvB,OAAO,IAAI,WAAW,UAAU,KAAK;CACtC;CACA,OAAO,UAAU,UAAU;EAC1B,OAAO,IAAI,WAAW,UAAU,IAAI;CACrC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,OAAO,IAAI;CAC3B;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,WAAW,KAAK,SAAS,QAAQ,QAAQ,GAAG,KAAK,SAAS;CACtE;CACA,KAAK,QAAQ;EACZ,OAAO,OAAO,SAAS,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO;CAC9D;AACD;AACA,IAAI,gBAAgB,MAAM,sBAAsB,WAAW;CAC1D,OAAO;CACP;CACA;CACA,YAAY,MAAM,QAAQ;EACzB,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,SAAS;EACd,KAAK,OAAO;CACb;CACA,OAAO,OAAO,MAAM;EACnB,OAAO,IAAI,cAAc,MAAM,IAAI;CACpC;CACA,OAAO,UAAU,MAAM;EACtB,OAAO,IAAI,cAAc,MAAM,KAAK;CACrC;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,UAAU,IAAI;CAC9B;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,cAAc,KAAK,KAAK,QAAQ,QAAQ,GAAG,KAAK,MAAM;CAClE;CACA,KAAK,QAAQ;EACZ,OAAO,KAAK,KAAK,KAAK,MAAM;CAC7B;AACD;AACA,IAAI,UAAU,MAAM,gBAAgB,WAAW;CAC9C,OAAO;CACP;CACA,YAAY,MAAM;EACjB,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,OAAO;CACb;CACA,cAAc;EACb,OAAO;CACR;CACA,OAAO,SAAS;EACf,OAAO,QAAQ,IAAI,IAAI;CACxB;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,QAAQ,KAAK,KAAK,QAAQ,QAAQ,CAAC;CAC/C;CACA,KAAK,QAAQ;EACZ,OAAO,KAAK,KAAK,KAAK,MAAM;CAC7B;AACD;AACA,IAAI,cAAc,MAAM,oBAAoB,QAAQ;CACnD,OAAO;CACP;CACA;CACA,YAAY,MAAM,OAAO;EACxB,MAAM;EACN,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,OAAO;CACb;CACA,OAAO,GAAG,MAAM,OAAO;EACtB,OAAO,IAAI,YAAY,MAAM,KAAK;CACnC;CACA,QAAQ,UAAU;EACjB,OAAO,SAAS,cAAc,SAAS,YAAY,IAAI,IAAI;CAC5D;AACD;AACA,IAAI,UAAU,MAAM,gBAAgB,QAAQ;CAC3C,OAAO;CACP;CACA;CACA;CACA;CACA,YAAY,UAAU,QAAQ,IAAI,UAAU,OAAO;EAClD,MAAM;EACN,KAAK,WAAW;EAChB,KAAK,SAAS;EACd,KAAK,UAAU;EACf,KAAK,KAAK;EACV,KAAK,OAAO;CACb;CACA,OAAO,MAAM,QAAQ,IAAI,UAAU,OAAO;EACzC,OAAO,IAAI,QAAQ,SAAS,QAAQ,IAAI,OAAO;CAChD;CACA,OAAO,KAAK,QAAQ,IAAI,UAAU,OAAO;EACxC,OAAO,IAAI,QAAQ,QAAQ,QAAQ,IAAI,OAAO;CAC/C;CACA,OAAO,MAAM,QAAQ,IAAI,UAAU,OAAO;EACzC,OAAO,IAAI,QAAQ,SAAS,QAAQ,IAAI,OAAO;CAChD;CACA,OAAO,KAAK,QAAQ,IAAI,UAAU,OAAO;EACxC,OAAO,IAAI,QAAQ,QAAQ,QAAQ,IAAI,OAAO;CAC/C;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,QAAQ,KAAK,UAAU,KAAK,OAAO,QAAQ,QAAQ,GAAG,KAAK,GAAG,SAAS,mBAAmB,KAAK,GAAG,QAAQ,QAAQ,IAAI,KAAK,GAAG,QAAQ,QAAQ,GAAG,KAAK,OAAO;CACzK;AACD;AACA,IAAI,iBAAiB,MAAM,uBAAuB,QAAQ;CACzD,OAAO;CACP;CACA;;;;;;CAMA;CACA,YAAY,OAAO,MAAM,OAAO;EAC/B,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,OAAO;EACZ,KAAK,QAAQ,QAAQ,eAAe,KAAK,IAAI,KAAK;EAClD,KAAK,OAAO;CACb;CACA,OAAO,GAAG,OAAO,MAAM,OAAO;EAC7B,OAAO,IAAI,eAAe,OAAO,MAAM,KAAK;CAC7C;CACA,UAAU,OAAO;EAChB,OAAO,IAAI,eAAe,KAAK,OAAO,KAAK,MAAM,KAAK;CACvD;AACD;AACA,IAAI,YAAY,MAAM,kBAAkB,SAAS;CAChD,OAAO;CACP;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,YAAY,SAAS;EACpB,MAAM;EACN,KAAK,OAAO,QAAQ;EACpB,KAAK,QAAQ,QAAQ,SAAS,QAAQ,MAAM,SAAS,IAAI,gBAAgB,QAAQ,KAAK,IAAI,KAAK;EAC/F,KAAK,aAAa,gBAAgB,QAAQ,UAAU;EACpD,KAAK,QAAQ,QAAQ;EACrB,KAAK,UAAU,QAAQ,WAAW,QAAQ,QAAQ,SAAS,IAAI,gBAAgB,QAAQ,OAAO,IAAI,KAAK;EACvG,KAAK,WAAW,QAAQ;EACxB,KAAK,aAAa,QAAQ,cAAc,QAAQ,WAAW,SAAS,IAAI,gBAAgB,QAAQ,UAAU,IAAI,KAAK;EACnH,KAAK,UAAU,QAAQ,WAAW,QAAQ,QAAQ,SAAS,IAAI,gBAAgB,QAAQ,OAAO,IAAI,KAAK;EACvG,KAAK,SAAS,QAAQ;EACtB,KAAK,QAAQ,QAAQ;EACrB,KAAK,SAAS,QAAQ;EACtB,KAAK,kBAAkB,yBAAyB,QAAQ,eAAe;EACvE,KAAK,OAAO;CACb;CACA,OAAO,KAAK,MAAM;EACjB,OAAO,IAAI,UAAU;GACpB;GACA,OAAO,KAAK;GACZ,YAAY,CAAC;GACb,OAAO,KAAK;GACZ,SAAS,KAAK;GACd,UAAU,KAAK;GACf,YAAY,KAAK;GACjB,SAAS,KAAK;GACd,QAAQ,KAAK;GACb,OAAO,KAAK;GACZ,QAAQ,KAAK;GACb,iBAAiB,KAAK;EACvB,CAAC;CACF;CACA,OAAO,SAAS;EACf,OAAO,IAAI,UAAU;GACpB,OAAO,KAAK;GACZ,YAAY,CAAC;GACb,OAAO,KAAK;GACZ,SAAS,KAAK;GACd,UAAU,KAAK;GACf,YAAY,KAAK;GACjB,SAAS,KAAK;GACd,QAAQ,KAAK;GACb,OAAO,KAAK;GACZ,QAAQ,KAAK;GACb,iBAAiB,KAAK;EACvB,CAAC;CACF;CACA,YAAY;EACX,OAAO;GACN,GAAG,KAAK,SAAS,KAAK,IAAI,EAAE,MAAM,KAAK,KAAK,IAAI,CAAC;GACjD,OAAO,KAAK;GACZ,YAAY,KAAK;GACjB,OAAO,KAAK;GACZ,SAAS,KAAK;GACd,UAAU,KAAK;GACf,YAAY,KAAK;GACjB,SAAS,KAAK;GACd,QAAQ,KAAK;GACb,OAAO,KAAK;GACZ,QAAQ,KAAK;GACb,iBAAiB,KAAK;EACvB;CACD;CACA,SAAS,MAAM;EACd,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB;EACD,CAAC;CACF;CACA,UAAU,OAAO;EAChB,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB,OAAO,MAAM,SAAS,IAAI,QAAQ,KAAK;EACxC,CAAC;CACF;CACA,eAAe,YAAY;EAC1B,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB;EACD,CAAC;CACF;CACA,cAAc,OAAO,MAAM;EAC1B,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB,YAAY,CAAC,GAAG,KAAK,YAAY,IAAI,eAAe,OAAO,IAAI,CAAC;EACjE,CAAC;CACF;CACA,UAAU,OAAO;EAChB,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB;EACD,CAAC;CACF;CACA,YAAY,SAAS;EACpB,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB,SAAS,QAAQ,SAAS,IAAI,UAAU,KAAK;EAC9C,CAAC;CACF;CACA,aAAa,UAAU,MAAM;EAC5B,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB,UAAU,UAAU,OAAO,KAAK;EACjC,CAAC;CACF;CACA,eAAe,YAAY;EAC1B,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB,YAAY,WAAW,SAAS,IAAI,aAAa,KAAK;EACvD,CAAC;CACF;CACA,YAAY,SAAS;EACpB,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB,SAAS,QAAQ,SAAS,IAAI,UAAU,KAAK;EAC9C,CAAC;CACF;CACA,WAAW,QAAQ;EAClB,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB;EACD,CAAC;CACF;CACA,UAAU,OAAO;EAChB,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB;EACD,CAAC;CACF;CACA,WAAW,QAAQ;EAClB,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB;EACD,CAAC;CACF;CACA,oBAAoB,iBAAiB;EACpC,OAAO,IAAI,UAAU;GACpB,GAAG,KAAK,UAAU;GAClB;EACD,CAAC;CACF;CACA,QAAQ,UAAU;EACjB,MAAM,gBAAgB,KAAK,MAAM,QAAQ,QAAQ;EACjD,MAAM,YAAY,IAAI,UAAU;GAC/B,GAAG,kBAAkB,KAAK,IAAI,EAAE,MAAM,cAAc,IAAI,CAAC;GACzD,OAAO,KAAK,OAAO,KAAK,SAAS,KAAK,QAAQ,QAAQ,CAAC;GACvD,YAAY,KAAK,WAAW,KAAK,eAAe,IAAI,eAAe,WAAW,OAAO,WAAW,KAAK,SAAS,YAAY,SAAS,UAAU,SAAS,QAAQ,WAAW,IAAI,IAAI,WAAW,OAAO,WAAW,KAAK,QAAQ,QAAQ,GAAG,WAAW,KAAK,CAAC;GACvP,OAAO,KAAK,OAAO,QAAQ,QAAQ;GACnC,SAAS,KAAK,SAAS,KAAK,cAAc,UAAU,QAAQ,QAAQ,CAAC;GACrE,UAAU,KAAK;GACf,YAAY,KAAK,YAAY,KAAK,SAAS,KAAK,QAAQ,QAAQ,CAAC;GACjE,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,QAAQ,QAAQ,CAAC;GAC3D,QAAQ,KAAK,QAAQ,QAAQ,QAAQ;GACrC,OAAO,mBAAmB,KAAK,OAAO,QAAQ;GAC9C,QAAQ,mBAAmB,KAAK,QAAQ,QAAQ;GAChD,iBAAiB,KAAK;EACvB,CAAC;EACD,OAAO,SAAS,SAAS,SAAS,OAAO,SAAS,IAAI;CACvD;CACA,oBAAoB;EACnB,MAAM,OAAO,CAAC;EACd,MAAM,YAAY,YAAY;GAC7B,KAAK,KAAK,GAAG,OAAO;EACrB;EACA,IAAI,KAAK,MAAM,SAAS,wBAAwB,SAAS,KAAK,KAAK,MAAM,kBAAkB,CAAC;OACvF,IAAI,KAAK,MAAM,SAAS,mBAAmB,KAAK,MAAM,OAAO,KAAK,KAAK,MAAM,SAAS,IAAI,kBAAkB,CAAC;EAClH,KAAK,MAAM,cAAc,KAAK,YAAY,IAAI,EAAE,WAAW,KAAK,SAAS,YAAY,SAAS,WAAW,KAAK,kBAAkB,CAAC;EACjI,IAAI,KAAK,OAAO,SAAS,KAAK,MAAM,kBAAkB,CAAC;EACvD,IAAI,KAAK,QAAQ,SAAS,KAAK,OAAO,kBAAkB,CAAC;EACzD,KAAK,MAAM,aAAa,KAAK,WAAW,CAAC,GAAG,SAAS,UAAU,KAAK,kBAAkB,CAAC;EACvF,KAAK,MAAM,QAAQ,KAAK,cAAc,CAAC,GAAG,SAAS,KAAK,kBAAkB,CAAC;EAC3E,KAAK,MAAM,QAAQ,KAAK,WAAW,CAAC,GAAG,SAAS,KAAK,kBAAkB,CAAC;EACxE,KAAK,MAAM,QAAQ,KAAK,SAAS,CAAC,GAAG;GACpC,IAAI,KAAK,OAAO,SAAS,wBAAwB,SAAS,KAAK,OAAO,MAAM,kBAAkB,CAAC;QAC1F,IAAI,KAAK,OAAO,SAAS,mBAAmB,KAAK,MAAM,OAAO,KAAK,OAAO,MAAM,SAAS,IAAI,kBAAkB,CAAC;GACrH,IAAI,KAAK,GAAG,SAAS,kBAAkB,KAAK,KAAK,KAAK,GAAG,MAAM,KAAK,GAAG,KAAK;QACvE,SAAS,KAAK,GAAG,kBAAkB,CAAC;EAC1C;EACA,IAAI,OAAO,KAAK,UAAU,UAAU,SAAS,KAAK,MAAM,kBAAkB,CAAC;EAC3E,IAAI,OAAO,KAAK,WAAW,UAAU,SAAS,KAAK,OAAO,kBAAkB,CAAC;EAC7E,OAAO;CACR;CACA,mBAAmB;EAClB,MAAM,OAAO,CAAC;EACd,MAAM,YAAY,WAAW;GAC5B,KAAK,KAAK,GAAG,MAAM;EACpB;EACA,IAAI,KAAK,MAAM,SAAS,wBAAwB,SAAS,KAAK,KAAK,MAAM,iBAAiB,CAAC;OACtF,IAAI,KAAK,MAAM,SAAS,mBAAmB,KAAK,MAAM,OAAO,KAAK,KAAK,MAAM,SAAS,IAAI,iBAAiB,CAAC;EACjH,KAAK,MAAM,cAAc,KAAK,YAAY,IAAI,EAAE,WAAW,KAAK,SAAS,YAAY,SAAS,WAAW,KAAK,iBAAiB,CAAC;EAChI,IAAI,KAAK,OAAO,SAAS,KAAK,MAAM,iBAAiB,CAAC;EACtD,IAAI,KAAK,QAAQ,SAAS,KAAK,OAAO,iBAAiB,CAAC;EACxD,KAAK,MAAM,aAAa,KAAK,WAAW,CAAC,GAAG,SAAS,UAAU,KAAK,iBAAiB,CAAC;EACtF,KAAK,MAAM,QAAQ,KAAK,cAAc,CAAC,GAAG,SAAS,KAAK,iBAAiB,CAAC;EAC1E,KAAK,MAAM,QAAQ,KAAK,WAAW,CAAC,GAAG,SAAS,KAAK,iBAAiB,CAAC;EACvE,KAAK,MAAM,QAAQ,KAAK,SAAS,CAAC,GAAG;GACpC,IAAI,KAAK,OAAO,SAAS,wBAAwB,SAAS,KAAK,OAAO,MAAM,iBAAiB,CAAC;QACzF,IAAI,KAAK,OAAO,SAAS,mBAAmB,KAAK,MAAM,OAAO,KAAK,OAAO,MAAM,SAAS,IAAI,iBAAiB,CAAC;GACpH,IAAI,EAAE,KAAK,GAAG,SAAS,mBAAmB,SAAS,KAAK,GAAG,iBAAiB,CAAC;EAC9E;EACA,IAAI,OAAO,KAAK,UAAU,UAAU,SAAS,KAAK,MAAM,iBAAiB,CAAC;EAC1E,IAAI,OAAO,KAAK,WAAW,UAAU,SAAS,KAAK,OAAO,iBAAiB,CAAC;EAC5E,OAAO;CACR;CACA,aAAa;EACZ,OAAO;CACR;AACD;AACA,IAAI,yBAAyB,cAAc,QAAQ,CAAC;AACpD,IAAI,0BAA0B,cAAc,uBAAuB;CAClE,OAAO;CACP,cAAc;EACb,MAAM;EACN,KAAK,OAAO;CACb;CACA,2BAA2B;EAC1B,OAAO;CACR;AACD;AACA,IAAI,4BAA4B,cAAc,uBAAuB;CACpE,OAAO;CACP;CACA,YAAY,KAAK;EAChB,MAAM;EACN,KAAK,MAAM,iBAAiB,GAAG;EAC/B,KAAK,OAAO;CACb;CACA,2BAA2B;EAC1B,OAAO;CACR;AACD;AACA,IAAI,mBAAmB,MAAM,yBAAyB,QAAQ;CAC7D,OAAO;CACP;CACA;CACA,YAAY,SAAS,QAAQ;EAC5B,MAAM;EACN,KAAK,UAAU,gBAAgB,OAAO;EACtC,KAAK,SAAS;EACd,KAAK,OAAO;CACb;CACA,OAAO,GAAG,SAAS;EAClB,OAAO,IAAI,iBAAiB,SAAS,IAAI,wBAAwB,CAAC;CACnE;;;;;;CAMA,OAAO,YAAY;EAClB,OAAO,IAAI,iBAAiB,CAAC,GAAG,IAAI,wBAAwB,CAAC;CAC9D;CACA,YAAY;EACX,OAAO,IAAI,iBAAiB,KAAK,SAAS,IAAI,wBAAwB,CAAC;CACxE;CACA,YAAY,KAAK;EAChB,OAAO,IAAI,iBAAiB,KAAK,SAAS,IAAI,0BAA0B,GAAG,CAAC;CAC7E;AACD;AACA,IAAI,YAAY,MAAM,kBAAkB,SAAS;CAChD,OAAO;CACP;CACA;CACA;CACA;CACA,YAAY,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,YAAY,WAAW;EACtD,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,OAAO,WAAW,IAAI;EAC3B,KAAK,aAAa;EAClB,KAAK,YAAY,aAAa,UAAU,SAAS,IAAI,gBAAgB,SAAS,IAAI,KAAK;EACvF,KAAK,OAAO;CACb;CACA,OAAO,KAAK,OAAO;EAClB,OAAO,IAAI,UAAU,KAAK;CAC3B;CACA,SAAS,MAAM;EACd,OAAO,IAAI,UAAU,KAAK,OAAO,KAAK,KAAK,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,YAAY,KAAK,SAAS;CAClG;CACA,cAAc,WAAW;EACxB,OAAO,IAAI,UAAU,KAAK,OAAO,KAAK,KAAK,KAAK,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,YAAY,SAAS;CAClG;CACA,eAAe,YAAY;EAC1B,OAAO,IAAI,UAAU,KAAK,OAAO,KAAK,KAAK,KAAK,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,YAAY,KAAK,SAAS;CAClG;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,UAAU,mBAAmB,KAAK,OAAO,QAAQ,GAAG,KAAK,KAAK,KAAK,QAAQ,iBAAiB,KAAK,QAAQ,CAAC,GAAG,KAAK,aAAa,kBAAkB,KAAK,YAAY,QAAQ,IAAI,KAAK,GAAG,KAAK,WAAW,KAAK,SAAS,sBAAsB,MAAM,QAAQ,CAAC,CAAC;CACtQ;CACA,mBAAmB;EAClB,MAAM,OAAO,CAAC;EACd,KAAK,MAAM,OAAO,KAAK,MAAM,KAAK,MAAM,SAAS,OAAO,OAAO,GAAG,GAAG,IAAI,MAAM,SAAS,eAAe,MAAM,SAAS,sBAAsB,KAAK,KAAK,KAAK;OACtJ,IAAI,MAAM,SAAS,YAAY,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAC;EACzE,IAAI,KAAK,YAAY,OAAO,SAAS,iBAC/B;QAAA,MAAM,SAAS,OAAO,OAAO,KAAK,WAAW,OAAO,GAAG,GAAG,IAAI,MAAM,SAAS,eAAe,MAAM,SAAS,sBAAsB,KAAK,KAAK,KAAK;EAAA;EAEtJ,KAAK,MAAM,QAAQ,KAAK,aAAa,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,WAAW,KAAK,KAAK,GAAG,KAAK,KAAK,iBAAiB,CAAC;EACpH,OAAO;CACR;CACA,aAAa;EACZ,OAAO;CACR;AACD;AACA,IAAI,YAAY,MAAM,kBAAkB,SAAS;CAChD,OAAO;CACP;CACA;CACA;CACA;CACA,YAAY,OAAO,MAAM,CAAC,GAAG,OAAO,WAAW;EAC9C,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,MAAM,iBAAiB,GAAG;EAC/B,KAAK,QAAQ;EACb,KAAK,YAAY,aAAa,UAAU,SAAS,IAAI,gBAAgB,SAAS,IAAI,KAAK;EACvF,KAAK,OAAO;CACb;CACA,OAAO,MAAM,OAAO;EACnB,OAAO,IAAI,UAAU,KAAK;CAC3B;CACA,QAAQ,KAAK;EACZ,OAAO,IAAI,UAAU,KAAK,OAAO,KAAK,KAAK,OAAO,KAAK,SAAS;CACjE;CACA,UAAU,OAAO;EAChB,OAAO,IAAI,UAAU,KAAK,OAAO,KAAK,KAAK,OAAO,KAAK,SAAS;CACjE;CACA,cAAc,WAAW;EACxB,OAAO,IAAI,UAAU,KAAK,OAAO,KAAK,KAAK,KAAK,OAAO,SAAS;CACjE;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,UAAU,mBAAmB,KAAK,OAAO,QAAQ,GAAG,iBAAiB,KAAK,KAAK,QAAQ,GAAG,KAAK,OAAO,QAAQ,QAAQ,GAAG,KAAK,WAAW,KAAK,SAAS,sBAAsB,MAAM,QAAQ,CAAC,CAAC;CACzM;CACA,mBAAmB;EAClB,MAAM,OAAO,CAAC;EACd,KAAK,MAAM,SAAS,OAAO,OAAO,KAAK,GAAG,GAAG,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAC;EAClF,IAAI,KAAK,OAAO,KAAK,KAAK,GAAG,KAAK,MAAM,iBAAiB,CAAC;EAC1D,KAAK,MAAM,QAAQ,KAAK,aAAa,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,WAAW,KAAK,KAAK,GAAG,KAAK,KAAK,iBAAiB,CAAC;EACpH,OAAO;CACR;CACA,aAAa;EACZ,OAAO;CACR;AACD;AACA,IAAI,YAAY,MAAM,kBAAkB,SAAS;CAChD,OAAO;CACP;CACA;CACA;CACA,YAAY,OAAO,OAAO,WAAW;EACpC,MAAM;EACN,KAAK,QAAQ;EACb,KAAK,QAAQ;EACb,KAAK,YAAY,aAAa,UAAU,SAAS,IAAI,gBAAgB,SAAS,IAAI,KAAK;EACvF,KAAK,OAAO;CACb;CACA,OAAO,KAAK,OAAO;EAClB,OAAO,IAAI,UAAU,KAAK;CAC3B;CACA,UAAU,OAAO;EAChB,OAAO,IAAI,UAAU,KAAK,OAAO,OAAO,KAAK,SAAS;CACvD;CACA,cAAc,WAAW;EACxB,OAAO,IAAI,UAAU,KAAK,OAAO,KAAK,OAAO,SAAS;CACvD;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,UAAU,mBAAmB,KAAK,OAAO,QAAQ,GAAG,KAAK,OAAO,QAAQ,QAAQ,GAAG,KAAK,WAAW,KAAK,SAAS,sBAAsB,MAAM,QAAQ,CAAC,CAAC;CACnK;CACA,mBAAmB;EAClB,MAAM,OAAO,CAAC;EACd,IAAI,KAAK,OAAO,KAAK,KAAK,GAAG,KAAK,MAAM,iBAAiB,CAAC;EAC1D,KAAK,MAAM,QAAQ,KAAK,aAAa,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,WAAW,KAAK,KAAK,GAAG,KAAK,KAAK,iBAAiB,CAAC;EACpH,OAAO;CACR;CACA,aAAa;EACZ,OAAO;CACR;AACD;;;;;;;;;AASA,MAAM,yBAAyB;AAC/B,SAAS,qBAAqB,QAAQ;CACrC,IAAI,OAAO,SAAS,kBAAkB,OAAO,OAAO,OAAO,EAAE,MAAM,iBAAiB,CAAC;CACrF,MAAM,UAAU,CAAC;CACjB,KAAK,MAAM,CAAC,MAAM,WAAW,OAAO,QAAQ,OAAO,OAAO,GAAG;EAC5D,IAAI,SAAS,wBAAwB,MAAM,gBAAgB,uBAAuB,wCAAwC,uBAAuB,kEAAkE,EAAE,MAAM;GAC1N,MAAM;GACN,OAAO;GACP,QAAQ;EACT,EAAE,CAAC;EACH,QAAQ,QAAQ,OAAO,OAAO;GAC7B,SAAS,OAAO;GAChB,UAAU,OAAO;EAClB,CAAC;CACF;CACA,OAAO,OAAO,OAAO;EACpB,MAAM;EACN,SAAS,OAAO,OAAO,OAAO;CAC/B,CAAC;AACF;;;;;;;;;;;;AAYA,IAAI,cAAc,MAAM,oBAAoB,SAAS;CACpD,OAAO;CACP;CACA;CACA,YAAY,SAAS;EACpB,MAAM;EACN,KAAK,QAAQ,gBAAgB,QAAQ,KAAK;EAC1C,KAAK,SAAS,qBAAqB,QAAQ,MAAM;EACjD,KAAK,OAAO;CACb;CACA,OAAO,KAAK,OAAO,SAAS;EAC3B,OAAO,IAAI,YAAY;GACtB;GACA,QAAQ;IACP,MAAM;IACN;GACD;EACD,CAAC;CACF;CACA,OAAO,cAAc,OAAO;EAC3B,OAAO,IAAI,YAAY;GACtB;GACA,QAAQ,EAAE,MAAM,iBAAiB;EAClC,CAAC;CACF;CACA,QAAQ,UAAU;EACjB,OAAO,IAAI,YAAY;GACtB,OAAO,KAAK,MAAM,KAAK,SAAS,OAAO,SAAS,WAAW,OAAO,kBAAkB,MAAM,QAAQ,CAAC;GACnG,QAAQ,KAAK;EACd,CAAC;CACF;CACA,mBAAmB;EAClB,MAAM,OAAO,CAAC;EACd,KAAK,MAAM,QAAQ,KAAK,OAAO,IAAI,OAAO,SAAS,UAAU,KAAK,KAAK,GAAG,KAAK,iBAAiB,CAAC;EACjG,OAAO;CACR;CACA,aAAa;EACZ,OAAO;CACR;AACD;AACA,MAAM,gCAAgC,IAAI,IAAI;CAC7C;CACA;CACA;CACA;CACA;AACD,CAAC;AACD,MAAM,iCAAiC,IAAI,IAAI;CAC9C;CACA;CACA;CACA;CACA;CACA;AACD,CAAC;AACD,SAAS,WAAW,OAAO;CAC1B,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,UAAU,SAAS,OAAO,MAAM,SAAS,YAAY,cAAc,IAAI,MAAM,IAAI;AACxI;AACA,SAAS,YAAY,OAAO;CAC3B,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,UAAU,SAAS,OAAO,MAAM,SAAS,YAAY,eAAe,IAAI,MAAM,IAAI;AACzI"}