@prisma/orm-family-sql 8.0.0-rc.17-dev.12 → 8.0.0-rc.17-dev.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/{attribute-specs-DfOulPzE.d.mts → attribute-specs-Cpthx28F.d.mts} +4 -4
  2. package/dist/{attribute-specs-DfOulPzE.d.mts.map → attribute-specs-Cpthx28F.d.mts.map} +1 -1
  3. package/dist/{authoring-entity-types-CZ-vdwYS-BtvE94H_.d.mts → authoring-entity-types-CZ-vdwYS-C9QI4H3x.d.mts} +2 -2
  4. package/dist/{authoring-entity-types-CZ-vdwYS-BtvE94H_.d.mts.map → authoring-entity-types-CZ-vdwYS-C9QI4H3x.d.mts.map} +1 -1
  5. package/dist/{authoring-type-constructors-0Iv2zdwS-CnynTqjm.mjs → authoring-type-constructors-0Iv2zdwS-D-AoEcR1.mjs} +2 -2
  6. package/dist/{authoring-type-constructors-0Iv2zdwS-CnynTqjm.mjs.map → authoring-type-constructors-0Iv2zdwS-D-AoEcR1.mjs.map} +1 -1
  7. package/dist/{config-types-DggwpWr3.mjs → config-types-DabYoGbo.mjs} +2 -2
  8. package/dist/{config-types-DggwpWr3.mjs.map → config-types-DabYoGbo.mjs.map} +1 -1
  9. package/dist/{contract-builder-J9D4EprQ.mjs → contract-builder-C5n9DeDD.mjs} +59 -38
  10. package/dist/contract-builder-C5n9DeDD.mjs.map +1 -0
  11. package/dist/{contract-builder-DCTszECg.d.mts → contract-builder-DPdK6nTs.d.mts} +18 -26
  12. package/dist/contract-builder-DPdK6nTs.d.mts.map +1 -0
  13. package/dist/contract-prisma7__provider.mjs +3 -3
  14. package/dist/contract-psl.d.mts +2 -2
  15. package/dist/contract-psl.mjs +1 -1
  16. package/dist/contract-psl__attribute-specs.d.mts +1 -1
  17. package/dist/contract-psl__attribute-specs.mjs +1 -1
  18. package/dist/contract-psl__provider.mjs +2 -2
  19. package/dist/contract-ts.d.mts +3 -2
  20. package/dist/contract-ts.mjs +4 -3
  21. package/dist/contract-ts__config-types.mjs +1 -1
  22. package/dist/contract-ts__contract-builder.d.mts +3 -2
  23. package/dist/contract-ts__contract-builder.mjs +3 -2
  24. package/dist/contract.d.mts +2 -2
  25. package/dist/contract.mjs +2 -2
  26. package/dist/contract__sql-expression.d.mts +2 -2
  27. package/dist/contract__sql-expression.mjs +2 -2
  28. package/dist/{control-DdyeUFkv.d.mts → control-DJYruagt.d.mts} +6 -9
  29. package/dist/control-DJYruagt.d.mts.map +1 -0
  30. package/dist/{control-Bce-z7el.mjs → control-iqppQcJm.mjs} +8 -8
  31. package/dist/control-iqppQcJm.mjs.map +1 -0
  32. package/dist/{derived-checks-CEK-Ls_a-plK5KxX3.mjs → derived-checks-DSMOrZN--C03ao8_m.mjs} +9 -13
  33. package/dist/derived-checks-DSMOrZN--C03ao8_m.mjs.map +1 -0
  34. package/dist/{diff-l4-qJpTV.d.mts → diff-C-18M6Ii.d.mts} +2 -2
  35. package/dist/{diff-l4-qJpTV.d.mts.map → diff-C-18M6Ii.d.mts.map} +1 -1
  36. package/dist/family.d.mts +5 -5
  37. package/dist/family.mjs +3 -3
  38. package/dist/family__control.d.mts +2 -2
  39. package/dist/family__control.mjs +2 -2
  40. package/dist/family__diff.d.mts +1 -1
  41. package/dist/family__diff.mjs +1 -1
  42. package/dist/family__migration.d.mts +1 -1
  43. package/dist/family__pack.d.mts +1 -1
  44. package/dist/family__pack.mjs +2 -2
  45. package/dist/family__psl-build.mjs +1 -1
  46. package/dist/{interpreter-BTM9k0wn-Cya0qReB.mjs → interpreter-BTM9k0wn-o9kEz-St.mjs} +4 -4
  47. package/dist/{interpreter-BTM9k0wn-Cya0qReB.mjs.map → interpreter-BTM9k0wn-o9kEz-St.mjs.map} +1 -1
  48. package/dist/{migration-DEK3Hxlo.d.mts → migration-Bdt_UrTg.d.mts} +2 -2
  49. package/dist/{migration-DEK3Hxlo.d.mts.map → migration-Bdt_UrTg.d.mts.map} +1 -1
  50. package/dist/orm-client.d.mts +16 -7
  51. package/dist/orm-client.d.mts.map +1 -1
  52. package/dist/orm-client.mjs +34 -26
  53. package/dist/orm-client.mjs.map +1 -1
  54. package/dist/{pack-BIYpJtZF.d.mts → pack-BiHNZl9V.d.mts} +3 -3
  55. package/dist/{pack-BIYpJtZF.d.mts.map → pack-BiHNZl9V.d.mts.map} +1 -1
  56. package/dist/{psl-build-vdqjrTx6.mjs → psl-build-CdvX8qg4.mjs} +2 -2
  57. package/dist/{psl-build-vdqjrTx6.mjs.map → psl-build-CdvX8qg4.mjs.map} +1 -1
  58. package/dist/{psl-column-resolution-Dm5LhN9b-Br_RiSPI.d.mts → psl-column-resolution-Dm5LhN9b-DetB__rj.d.mts} +3 -3
  59. package/dist/{psl-column-resolution-Dm5LhN9b-Br_RiSPI.d.mts.map → psl-column-resolution-Dm5LhN9b-DetB__rj.d.mts.map} +1 -1
  60. package/dist/{psl-field-resolution-CAJsUfST-C4QwwiqV.mjs → psl-field-resolution-CAJsUfST-D_vMRVX2.mjs} +5 -5
  61. package/dist/psl-field-resolution-CAJsUfST-D_vMRVX2.mjs.map +1 -0
  62. package/dist/{schema-verify-DIfHSB4I-CcxNNnKO.mjs → schema-verify-DIfHSB4I-Bbek1093.mjs} +2 -2
  63. package/dist/{schema-verify-DIfHSB4I-CcxNNnKO.mjs.map → schema-verify-DIfHSB4I-Bbek1093.mjs.map} +1 -1
  64. package/dist/sql-expression-BWrjmY6M.d.mts +62 -0
  65. package/dist/sql-expression-BWrjmY6M.d.mts.map +1 -0
  66. package/dist/sql-expression-DSRILiU2.mjs +131 -0
  67. package/dist/sql-expression-DSRILiU2.mjs.map +1 -0
  68. package/dist/{types-CzxOObSY-CxZ_bdVi.d.mts → types-CzxOObSY-BxwvvyRZ.d.mts} +2 -2
  69. package/dist/{types-CzxOObSY-CxZ_bdVi.d.mts.map → types-CzxOObSY-BxwvvyRZ.d.mts.map} +1 -1
  70. package/package.json +18 -18
  71. package/dist/contract-builder-DCTszECg.d.mts.map +0 -1
  72. package/dist/contract-builder-J9D4EprQ.mjs.map +0 -1
  73. package/dist/control-Bce-z7el.mjs.map +0 -1
  74. package/dist/control-DdyeUFkv.d.mts.map +0 -1
  75. package/dist/derived-checks-CEK-Ls_a-plK5KxX3.mjs.map +0 -1
  76. package/dist/psl-field-resolution-CAJsUfST-C4QwwiqV.mjs.map +0 -1
  77. package/dist/sql-expression-DWyTh9M1.d.mts +0 -34
  78. package/dist/sql-expression-DWyTh9M1.d.mts.map +0 -1
  79. package/dist/sql-expression-Dek0jx_g.mjs +0 -64
  80. package/dist/sql-expression-Dek0jx_g.mjs.map +0 -1
@@ -1,8 +1,8 @@
1
- import "./contract-builder-DCTszECg.mjs";
2
- import "./psl-column-resolution-Dm5LhN9b-Br_RiSPI.mjs";
1
+ import "./contract-builder-DPdK6nTs.mjs";
2
+ import "./psl-column-resolution-Dm5LhN9b-DetB__rj.mjs";
3
3
  import { PslSources } from "@prisma/orm-framework/psl-parser/syntax";
4
- import "@prisma/orm-framework/components/control";
5
4
  import { AttributeSpec, AttributeSpecContext, DescribeUnsupportedAttribute, FieldAttributeCtx, FieldAttributeSpecContext, ModelAttributeCtx, ModelSymbol, ParsedWrittenList, ParsedWrittenScalar, PslSpan, TypedFuncCall } from "@prisma/orm-framework/psl-parser";
5
+ import "@prisma/orm-framework/components/control";
6
6
  import "@prisma/orm-framework/components/psl-ast";
7
7
  //#region ../../../2-sql/2-authoring/contract-psl/dist/sql-attribute-specs-V7142vJa.d.mts
8
8
  //#region src/sql-attribute-specs.d.ts
@@ -103,4 +103,4 @@ declare const sqlAttributeSpecs: {
103
103
  declare function describeUnsupportedSqlAttribute(sources: PslSources): DescribeUnsupportedAttribute;
104
104
  //#endregion
105
105
  export { ParsedNullLiteral as a, EnumMemberListDefault as i, DefaultFunctionCall as n, sqlAttributeSpecs as o, EnumMemberDefault as r, describeUnsupportedSqlAttribute as t };
106
- //# sourceMappingURL=attribute-specs-DfOulPzE.d.mts.map
106
+ //# sourceMappingURL=attribute-specs-Cpthx28F.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attribute-specs-DfOulPzE.d.mts","names":[],"sources":["../../../../2-sql/2-authoring/contract-psl/dist/sql-attribute-specs-V7142vJa.d.mts","../../../../2-sql/2-authoring/contract-psl/dist/attribute-specs.d.mts"],"mappings":";;;;;;;;UAMU;WACC;WACA;;;UAGD;WACC;WACA,MAAM;;;UAGP;WACC;WACA,oBAAoB,oBAAoB;;;UAGzC;WACC;WACA,MAAM;;KAEZ,kBAAkB,sBAAsB,oBAAoB,kBAAkB,sBAAsB,qBAAqB,sBAAsB,oBAAoB;iBACvJ,iBAAiB,KAAK,4BAA4B;EACjE,OAAO;GACN;iBACc,eAAe,KAAK,uBAAuB;EAC1D;WACS,4CAA4C;WAC5C,uCAAuC;WACvC;WACA;WACA;WACA;WACA,UAAU;GAClB;iBACc,eAAe,KAAK,uBAAuB;WACjD,2CAA2C;WAC3C;WACA;GACR;;cAEW;WACH;aACE,MAAM,MAAM,yBAAyB;MAC5C;OACC;aACM,KAAK,MAAM,yBAAyB;MAC3C;eACS;OACR;aACM,SAAS,MAAM,yBAAyB;MAC/C;eACS;OACR;aACM,cAAc;aACd,cAAc;aACd,UAAU,MAAM,yBAAyB;MAChD;OACC;aACM,gBAAgB,MAAM,yBAAyB;MACtD;OACC;aACM,OAAO,MAAM,yBAAyB;MAC7C,qCAAqC,wBAAwB;MAC7D;OACC;;WAEI;aACE,MAAM,MAAM,8BAA8B;MACjD;OACC;aACM,KAAK,MAAM,8BAA8B;eACvC;OACR;aACM,SAAS,MAAM,8BAA8B;eAC3C;OACR;aACM,UAAU,MAAM,8BAA8B;MACrD;MACA;OACC;aACM,WAAW,MAAM,8BAA8B;MACtD;eACS;eACA;eACA;eACA;eACA;eACA;OACR;aACM,gBAAgB;;;;;;iBCnFZ,gCAAgC,SAAS,aAAa"}
1
+ {"version":3,"file":"attribute-specs-Cpthx28F.d.mts","names":[],"sources":["../../../../2-sql/2-authoring/contract-psl/dist/sql-attribute-specs-V7142vJa.d.mts","../../../../2-sql/2-authoring/contract-psl/dist/attribute-specs.d.mts"],"mappings":";;;;;;;;UAMU;WACC;WACA;;;UAGD;WACC;WACA,MAAM;;;UAGP;WACC;WACA,oBAAoB,oBAAoB;;;UAGzC;WACC;WACA,MAAM;;KAEZ,kBAAkB,sBAAsB,oBAAoB,kBAAkB,sBAAsB,qBAAqB,sBAAsB,oBAAoB;iBACvJ,iBAAiB,KAAK,4BAA4B;EACjE,OAAO;GACN;iBACc,eAAe,KAAK,uBAAuB;EAC1D;WACS,4CAA4C;WAC5C,uCAAuC;WACvC;WACA;WACA;WACA;WACA,UAAU;GAClB;iBACc,eAAe,KAAK,uBAAuB;WACjD,2CAA2C;WAC3C;WACA;GACR;;cAEW;WACH;aACE,MAAM,MAAM,yBAAyB;MAC5C;OACC;aACM,KAAK,MAAM,yBAAyB;MAC3C;eACS;OACR;aACM,SAAS,MAAM,yBAAyB;MAC/C;eACS;OACR;aACM,cAAc;aACd,cAAc;aACd,UAAU,MAAM,yBAAyB;MAChD;OACC;aACM,gBAAgB,MAAM,yBAAyB;MACtD;OACC;aACM,OAAO,MAAM,yBAAyB;MAC7C,qCAAqC,wBAAwB;MAC7D;OACC;;WAEI;aACE,MAAM,MAAM,8BAA8B;MACjD;OACC;aACM,KAAK,MAAM,8BAA8B;eACvC;OACR;aACM,SAAS,MAAM,8BAA8B;eAC3C;OACR;aACM,UAAU,MAAM,8BAA8B;MACrD;MACA;OACC;aACM,WAAW,MAAM,8BAA8B;MACtD;eACS;eACA;eACA;eACA;eACA;eACA;OACR;aACM,gBAAgB;;;;;;iBCnFZ,gCAAgC,SAAS,aAAa"}
@@ -1,4 +1,4 @@
1
- import "./contract-builder-DCTszECg.mjs";
1
+ import "./contract-builder-DPdK6nTs.mjs";
2
2
  import "@prisma/orm-framework/components/authoring";
3
3
  import "@prisma/orm-framework/psl-parser";
4
4
  //#region ../../../2-sql/9-family/dist/authoring-entity-types-CZ-vdwYS.d.mts
@@ -6,4 +6,4 @@ import "@prisma/orm-framework/psl-parser";
6
6
  declare function sqlFamilyEnumSpec(): import("@prisma/orm-framework/psl-parser").MapBlockSpec<Record<string, import("@prisma/orm-framework/contract/types").JsonValue | undefined>>;
7
7
  //#endregion
8
8
  export { sqlFamilyEnumSpec as t };
9
- //# sourceMappingURL=authoring-entity-types-CZ-vdwYS-BtvE94H_.d.mts.map
9
+ //# sourceMappingURL=authoring-entity-types-CZ-vdwYS-C9QI4H3x.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authoring-entity-types-CZ-vdwYS-BtvE94H_.d.mts","names":[],"sources":["../../../../2-sql/9-family/dist/authoring-entity-types-CZ-vdwYS.d.mts"],"mappings":";;;;;iBAIiB,oDAAoD,aAAa,kDAAkD"}
1
+ {"version":3,"file":"authoring-entity-types-CZ-vdwYS-C9QI4H3x.d.mts","names":[],"sources":["../../../../2-sql/9-family/dist/authoring-entity-types-CZ-vdwYS.d.mts"],"mappings":";;;;;iBAIiB,oDAAoD,aAAa,kDAAkD"}
@@ -1,4 +1,4 @@
1
- import { c as enumType } from "./contract-builder-J9D4EprQ.mjs";
1
+ import { c as enumType } from "./contract-builder-C5n9DeDD.mjs";
2
2
  import { readEnumBlockMembers, resolveEnumCodecId } from "@prisma/orm-framework/components/authoring";
3
3
  import { enumRefusalOf, requiredParamKeys } from "@prisma/orm-framework/components/codec";
4
4
  import { blockAttribute, jsonValue, mapBlock, str } from "@prisma/orm-framework/psl-parser";
@@ -263,4 +263,4 @@ const sqlFamilyAuthoringTypes = { sql: { String: {
263
263
  //#endregion
264
264
  export { sqlFamilyPslBlockDescriptors as i, sqlFamilyAuthoringTypes as n, sqlFamilyEntityTypes as r, sqlFamilyAuthoringFieldPresets as t };
265
265
 
266
- //# sourceMappingURL=authoring-type-constructors-0Iv2zdwS-CnynTqjm.mjs.map
266
+ //# sourceMappingURL=authoring-type-constructors-0Iv2zdwS-D-AoEcR1.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"authoring-type-constructors-0Iv2zdwS-CnynTqjm.mjs","names":[],"sources":["../../../../2-sql/9-family/dist/authoring-type-constructors-0Iv2zdwS.mjs"],"sourcesContent":["import { readEnumBlockMembers, resolveEnumCodecId } from \"@internal/framework-components/authoring\";\nimport { enumRefusalOf, requiredParamKeys } from \"@internal/framework-components/codec\";\nimport { blockAttribute, jsonValue, mapBlock, str } from \"@internal/psl-parser\";\nimport { enumType } from \"@internal/sql-contract-ts/contract-builder\";\n//#region src/core/authoring-entity-types.ts\nfunction sqlFamilyEnumSpec() {\n\treturn mapBlock({\n\t\tvalue: {\n\t\t\ttype: jsonValue(),\n\t\t\tdocumentation: \"The stored member value; a bare member stores its own name.\"\n\t\t},\n\t\tallowBare: true\n\t});\n}\nconst sqlFamilyEntityTypes = { enum: {\n\tkind: \"entity\",\n\tdiscriminator: \"enum\",\n\toutput: { factory: (block, ctx) => {\n\t\tconst sourceId = ctx.sourceId ?? \"unknown\";\n\t\tconst diagnostics = ctx.diagnostics;\n\t\tconst resolved = resolveEnumCodecId(block, ctx);\n\t\tif (resolved === void 0) return;\n\t\tconst { codecId, codecSpan } = resolved;\n\t\tconst descriptor = ctx.codecLookup.descriptorFor(codecId);\n\t\tconst codec = ctx.codecLookup.get(codecId);\n\t\tif (descriptor === void 0 || codec === void 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: \"PSL_EXTENSION_INVALID_VALUE\",\n\t\t\t\tmessage: `enum \"${block.name}\" @@type references unknown codec \"${codecId}\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: codecSpan\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst enumRefusal = enumRefusalOf(descriptor);\n\t\tif (enumRefusal !== void 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: \"PSL_EXTENSION_INVALID_VALUE\",\n\t\t\t\tmessage: `enum \"${block.name}\" cannot use the codec \"${codecId}\". ${enumRefusal}`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: codecSpan\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst dataType = ctx.dataTypeLookup.get(descriptor.dataType);\n\t\tif (dataType === void 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: \"PSL_EXTENSION_INVALID_VALUE\",\n\t\t\t\tmessage: `enum \"${block.name}\" @@type codec \"${codecId}\" represents data type \"${descriptor.dataType}\", which no component registers`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: codecSpan\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst [requiredParam] = requiredParamKeys(dataType);\n\t\tif (requiredParam !== void 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: \"PSL_ENUM_TYPE_NEEDS_PARAMETERS\",\n\t\t\t\tmessage: `enum \"${block.name}\" @@type codec \"${codecId}\" represents data type \"${dataType.id}\", which requires the parameter \"${requiredParam}\"; an enum block gives it none`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: codecSpan\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst members = readEnumBlockMembers(block, codecId, codec, ctx);\n\t\tif (members === void 0) return void 0;\n\t\treturn enumType(block.name, { codecId }, ...members);\n\t} }\n} };\nconst enumTypeBlockAttribute = blockAttribute(\"type\", {\n\tdocumentation: \"Selects the storage codec for this enum.\",\n\tpositional: [{\n\t\tkey: \"codecId\",\n\t\ttype: str(),\n\t\tdocumentation: \"The fully qualified codec identifier used to store enum values.\"\n\t}]\n});\nconst sqlFamilyPslBlockDescriptors = { enum: {\n\tkind: \"pslBlock\",\n\tkeyword: \"enum\",\n\tdocumentation: \"Defines an enum with named values and an inferred or explicitly selected storage codec.\",\n\tdiscriminator: \"enum\",\n\tname: { required: true },\n\tspec: sqlFamilyEnumSpec,\n\tattributes: { type: () => enumTypeBlockAttribute }\n} };\n//#endregion\n//#region src/core/authoring-field-presets.ts\n/**\n* Family-level SQL authoring field presets.\n*\n* Only presets whose codec IDs align with the ID generator metadata live here\n* (see `@internal/ids`). These presets are target-agnostic because the\n* generator metadata fixes their codec/native-type to `sql/char@1`\n* (`character`) regardless of target, and the PSL interpreter lets the\n* generator override the scalar descriptor.\n*\n* The `uuidString` / `id.uuidv4String` / `id.uuidv7String` presets store UUID\n* values as `character(36)` — portable across all SQL targets. For a native\n* Postgres `uuid` column use `uuidNative` / `id.uuidv4Native` /\n* `id.uuidv7Native` from `@internal/target-postgres`.\n*\n* Scalar presets that map to target-specific codecs (e.g. `text`, `int`,\n* `boolean`, `dateTime`) are contributed by the target pack (see\n* `postgresAuthoringFieldPresets` in `@internal/target-postgres`) so the\n* TS callback surface and the PSL scalar surface lower to byte-identical\n* contracts for the active target.\n*/\nconst CHARACTER_CODEC_ID = \"sql/char@1\";\nconst nanoidOptionsArgument = {\n\tkind: \"object\",\n\toptional: true,\n\tproperties: { size: {\n\t\tkind: \"number\",\n\t\toptional: true,\n\t\tinteger: true,\n\t\tminimum: 2,\n\t\tmaximum: 255\n\t} }\n};\nconst sqlFamilyAuthoringFieldPresets = {\n\tuuidString: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\ttypeParams: { length: 36 }\n\t\t}\n\t},\n\tulid: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\ttypeParams: { length: 26 }\n\t\t}\n\t},\n\tnanoid: {\n\t\tkind: \"fieldPreset\",\n\t\targs: [nanoidOptionsArgument],\n\t\toutput: {\n\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\ttypeParams: { length: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0,\n\t\t\t\tpath: [\"size\"],\n\t\t\t\tdefault: 21\n\t\t\t} }\n\t\t}\n\t},\n\tcuid2: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\ttypeParams: { length: 24 }\n\t\t}\n\t},\n\tksuid: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\ttypeParams: { length: 27 }\n\t\t}\n\t},\n\tid: {\n\t\tuuidv4String: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\ttypeParams: { length: 36 },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"uuidv4\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t},\n\t\tuuidv7String: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\ttypeParams: { length: 36 },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"uuidv7\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t},\n\t\tulid: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\ttypeParams: { length: 26 },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"ulid\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t},\n\t\tnanoid: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\targs: [nanoidOptionsArgument],\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\ttypeParams: { length: {\n\t\t\t\t\tkind: \"arg\",\n\t\t\t\t\tindex: 0,\n\t\t\t\t\tpath: [\"size\"],\n\t\t\t\t\tdefault: 21\n\t\t\t\t} },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"nanoid\",\n\t\t\t\t\tparams: { size: {\n\t\t\t\t\t\tkind: \"arg\",\n\t\t\t\t\t\tindex: 0,\n\t\t\t\t\t\tpath: [\"size\"]\n\t\t\t\t\t} }\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t},\n\t\tcuid2: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\ttypeParams: { length: 24 },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"cuid2\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t},\n\t\tksuid: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\ttypeParams: { length: 27 },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"ksuid\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t}\n\t}\n};\n//#endregion\n//#region src/core/authoring-type-constructors.ts\nconst sqlFamilyAuthoringTypes = { sql: { String: {\n\tkind: \"typeConstructor\",\n\tdocumentation: \"Variable-length text with a required maximum character length.\",\n\targs: [{\n\t\tkind: \"number\",\n\t\tname: \"length\",\n\t\tinteger: true\n\t}],\n\toutput: {\n\t\tcodecId: \"sql/varchar@1\",\n\t\ttypeParams: { length: {\n\t\t\tkind: \"arg\",\n\t\t\tindex: 0\n\t\t} }\n\t}\n} } };\n//#endregion\nexport { sqlFamilyPslBlockDescriptors as i, sqlFamilyAuthoringFieldPresets as n, sqlFamilyEntityTypes as r, sqlFamilyAuthoringTypes as t };\n\n//# sourceMappingURL=authoring-type-constructors-0Iv2zdwS.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"authoring-type-constructors-0Iv2zdwS-D-AoEcR1.mjs","names":[],"sources":["../../../../2-sql/9-family/dist/authoring-type-constructors-0Iv2zdwS.mjs"],"sourcesContent":["import { readEnumBlockMembers, resolveEnumCodecId } from \"@internal/framework-components/authoring\";\nimport { enumRefusalOf, requiredParamKeys } from \"@internal/framework-components/codec\";\nimport { blockAttribute, jsonValue, mapBlock, str } from \"@internal/psl-parser\";\nimport { enumType } from \"@internal/sql-contract-ts/contract-builder\";\n//#region src/core/authoring-entity-types.ts\nfunction sqlFamilyEnumSpec() {\n\treturn mapBlock({\n\t\tvalue: {\n\t\t\ttype: jsonValue(),\n\t\t\tdocumentation: \"The stored member value; a bare member stores its own name.\"\n\t\t},\n\t\tallowBare: true\n\t});\n}\nconst sqlFamilyEntityTypes = { enum: {\n\tkind: \"entity\",\n\tdiscriminator: \"enum\",\n\toutput: { factory: (block, ctx) => {\n\t\tconst sourceId = ctx.sourceId ?? \"unknown\";\n\t\tconst diagnostics = ctx.diagnostics;\n\t\tconst resolved = resolveEnumCodecId(block, ctx);\n\t\tif (resolved === void 0) return;\n\t\tconst { codecId, codecSpan } = resolved;\n\t\tconst descriptor = ctx.codecLookup.descriptorFor(codecId);\n\t\tconst codec = ctx.codecLookup.get(codecId);\n\t\tif (descriptor === void 0 || codec === void 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: \"PSL_EXTENSION_INVALID_VALUE\",\n\t\t\t\tmessage: `enum \"${block.name}\" @@type references unknown codec \"${codecId}\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: codecSpan\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst enumRefusal = enumRefusalOf(descriptor);\n\t\tif (enumRefusal !== void 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: \"PSL_EXTENSION_INVALID_VALUE\",\n\t\t\t\tmessage: `enum \"${block.name}\" cannot use the codec \"${codecId}\". ${enumRefusal}`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: codecSpan\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst dataType = ctx.dataTypeLookup.get(descriptor.dataType);\n\t\tif (dataType === void 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: \"PSL_EXTENSION_INVALID_VALUE\",\n\t\t\t\tmessage: `enum \"${block.name}\" @@type codec \"${codecId}\" represents data type \"${descriptor.dataType}\", which no component registers`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: codecSpan\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst [requiredParam] = requiredParamKeys(dataType);\n\t\tif (requiredParam !== void 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: \"PSL_ENUM_TYPE_NEEDS_PARAMETERS\",\n\t\t\t\tmessage: `enum \"${block.name}\" @@type codec \"${codecId}\" represents data type \"${dataType.id}\", which requires the parameter \"${requiredParam}\"; an enum block gives it none`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: codecSpan\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst members = readEnumBlockMembers(block, codecId, codec, ctx);\n\t\tif (members === void 0) return void 0;\n\t\treturn enumType(block.name, { codecId }, ...members);\n\t} }\n} };\nconst enumTypeBlockAttribute = blockAttribute(\"type\", {\n\tdocumentation: \"Selects the storage codec for this enum.\",\n\tpositional: [{\n\t\tkey: \"codecId\",\n\t\ttype: str(),\n\t\tdocumentation: \"The fully qualified codec identifier used to store enum values.\"\n\t}]\n});\nconst sqlFamilyPslBlockDescriptors = { enum: {\n\tkind: \"pslBlock\",\n\tkeyword: \"enum\",\n\tdocumentation: \"Defines an enum with named values and an inferred or explicitly selected storage codec.\",\n\tdiscriminator: \"enum\",\n\tname: { required: true },\n\tspec: sqlFamilyEnumSpec,\n\tattributes: { type: () => enumTypeBlockAttribute }\n} };\n//#endregion\n//#region src/core/authoring-field-presets.ts\n/**\n* Family-level SQL authoring field presets.\n*\n* Only presets whose codec IDs align with the ID generator metadata live here\n* (see `@internal/ids`). These presets are target-agnostic because the\n* generator metadata fixes their codec/native-type to `sql/char@1`\n* (`character`) regardless of target, and the PSL interpreter lets the\n* generator override the scalar descriptor.\n*\n* The `uuidString` / `id.uuidv4String` / `id.uuidv7String` presets store UUID\n* values as `character(36)` — portable across all SQL targets. For a native\n* Postgres `uuid` column use `uuidNative` / `id.uuidv4Native` /\n* `id.uuidv7Native` from `@internal/target-postgres`.\n*\n* Scalar presets that map to target-specific codecs (e.g. `text`, `int`,\n* `boolean`, `dateTime`) are contributed by the target pack (see\n* `postgresAuthoringFieldPresets` in `@internal/target-postgres`) so the\n* TS callback surface and the PSL scalar surface lower to byte-identical\n* contracts for the active target.\n*/\nconst CHARACTER_CODEC_ID = \"sql/char@1\";\nconst nanoidOptionsArgument = {\n\tkind: \"object\",\n\toptional: true,\n\tproperties: { size: {\n\t\tkind: \"number\",\n\t\toptional: true,\n\t\tinteger: true,\n\t\tminimum: 2,\n\t\tmaximum: 255\n\t} }\n};\nconst sqlFamilyAuthoringFieldPresets = {\n\tuuidString: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\ttypeParams: { length: 36 }\n\t\t}\n\t},\n\tulid: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\ttypeParams: { length: 26 }\n\t\t}\n\t},\n\tnanoid: {\n\t\tkind: \"fieldPreset\",\n\t\targs: [nanoidOptionsArgument],\n\t\toutput: {\n\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\ttypeParams: { length: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0,\n\t\t\t\tpath: [\"size\"],\n\t\t\t\tdefault: 21\n\t\t\t} }\n\t\t}\n\t},\n\tcuid2: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\ttypeParams: { length: 24 }\n\t\t}\n\t},\n\tksuid: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\ttypeParams: { length: 27 }\n\t\t}\n\t},\n\tid: {\n\t\tuuidv4String: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\ttypeParams: { length: 36 },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"uuidv4\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t},\n\t\tuuidv7String: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\ttypeParams: { length: 36 },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"uuidv7\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t},\n\t\tulid: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\ttypeParams: { length: 26 },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"ulid\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t},\n\t\tnanoid: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\targs: [nanoidOptionsArgument],\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\ttypeParams: { length: {\n\t\t\t\t\tkind: \"arg\",\n\t\t\t\t\tindex: 0,\n\t\t\t\t\tpath: [\"size\"],\n\t\t\t\t\tdefault: 21\n\t\t\t\t} },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"nanoid\",\n\t\t\t\t\tparams: { size: {\n\t\t\t\t\t\tkind: \"arg\",\n\t\t\t\t\t\tindex: 0,\n\t\t\t\t\t\tpath: [\"size\"]\n\t\t\t\t\t} }\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t},\n\t\tcuid2: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\ttypeParams: { length: 24 },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"cuid2\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t},\n\t\tksuid: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: CHARACTER_CODEC_ID,\n\t\t\t\ttypeParams: { length: 27 },\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"ksuid\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t}\n\t}\n};\n//#endregion\n//#region src/core/authoring-type-constructors.ts\nconst sqlFamilyAuthoringTypes = { sql: { String: {\n\tkind: \"typeConstructor\",\n\tdocumentation: \"Variable-length text with a required maximum character length.\",\n\targs: [{\n\t\tkind: \"number\",\n\t\tname: \"length\",\n\t\tinteger: true\n\t}],\n\toutput: {\n\t\tcodecId: \"sql/varchar@1\",\n\t\ttypeParams: { length: {\n\t\t\tkind: \"arg\",\n\t\t\tindex: 0\n\t\t} }\n\t}\n} } };\n//#endregion\nexport { sqlFamilyPslBlockDescriptors as i, sqlFamilyAuthoringFieldPresets as n, sqlFamilyEntityTypes as r, sqlFamilyAuthoringTypes as t };\n\n//# sourceMappingURL=authoring-type-constructors-0Iv2zdwS.mjs.map"],"mappings":";;;;;AAKA,SAAS,oBAAoB;CAC5B,OAAO,SAAS;EACf,OAAO;GACN,MAAM,UAAU;GAChB,eAAe;EAChB;EACA,WAAW;CACZ,CAAC;AACF;AACA,MAAM,uBAAuB,EAAE,MAAM;CACpC,MAAM;CACN,eAAe;CACf,QAAQ,EAAE,UAAU,OAAO,QAAQ;EAClC,MAAM,WAAW,IAAI,YAAY;EACjC,MAAM,cAAc,IAAI;EACxB,MAAM,WAAW,mBAAmB,OAAO,GAAG;EAC9C,IAAI,aAAa,KAAK,GAAG;EACzB,MAAM,EAAE,SAAS,cAAc;EAC/B,MAAM,aAAa,IAAI,YAAY,cAAc,OAAO;EACxD,MAAM,QAAQ,IAAI,YAAY,IAAI,OAAO;EACzC,IAAI,eAAe,KAAK,KAAK,UAAU,KAAK,GAAG;GAC9C,aAAa,KAAK;IACjB,MAAM;IACN,SAAS,SAAS,MAAM,KAAK,qCAAqC,QAAQ;IAC1E;IACA,MAAM;GACP,CAAC;GACD;EACD;EACA,MAAM,cAAc,cAAc,UAAU;EAC5C,IAAI,gBAAgB,KAAK,GAAG;GAC3B,aAAa,KAAK;IACjB,MAAM;IACN,SAAS,SAAS,MAAM,KAAK,0BAA0B,QAAQ,KAAK;IACpE;IACA,MAAM;GACP,CAAC;GACD;EACD;EACA,MAAM,WAAW,IAAI,eAAe,IAAI,WAAW,QAAQ;EAC3D,IAAI,aAAa,KAAK,GAAG;GACxB,aAAa,KAAK;IACjB,MAAM;IACN,SAAS,SAAS,MAAM,KAAK,kBAAkB,QAAQ,0BAA0B,WAAW,SAAS;IACrG;IACA,MAAM;GACP,CAAC;GACD;EACD;EACA,MAAM,CAAC,iBAAiB,kBAAkB,QAAQ;EAClD,IAAI,kBAAkB,KAAK,GAAG;GAC7B,aAAa,KAAK;IACjB,MAAM;IACN,SAAS,SAAS,MAAM,KAAK,kBAAkB,QAAQ,0BAA0B,SAAS,GAAG,mCAAmC,cAAc;IAC9I;IACA,MAAM;GACP,CAAC;GACD;EACD;EACA,MAAM,UAAU,qBAAqB,OAAO,SAAS,OAAO,GAAG;EAC/D,IAAI,YAAY,KAAK,GAAG,OAAO,KAAK;EACpC,OAAO,SAAS,MAAM,MAAM,EAAE,QAAQ,GAAG,GAAG,OAAO;CACpD,EAAE;AACH,EAAE;AACF,MAAM,yBAAyB,eAAe,QAAQ;CACrD,eAAe;CACf,YAAY,CAAC;EACZ,KAAK;EACL,MAAM,IAAI;EACV,eAAe;CAChB,CAAC;AACF,CAAC;AACD,MAAM,+BAA+B,EAAE,MAAM;CAC5C,MAAM;CACN,SAAS;CACT,eAAe;CACf,eAAe;CACf,MAAM,EAAE,UAAU,KAAK;CACvB,MAAM;CACN,YAAY,EAAE,YAAY,uBAAuB;AAClD,EAAE;;;;;;;;;;;;;;;;;;;;;AAuBF,MAAM,qBAAqB;AAC3B,MAAM,wBAAwB;CAC7B,MAAM;CACN,UAAU;CACV,YAAY,EAAE,MAAM;EACnB,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,SAAS;CACV,EAAE;AACH;AACA,MAAM,iCAAiC;CACtC,YAAY;EACX,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY,EAAE,QAAQ,GAAG;EAC1B;CACD;CACA,MAAM;EACL,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY,EAAE,QAAQ,GAAG;EAC1B;CACD;CACA,QAAQ;EACP,MAAM;EACN,MAAM,CAAC,qBAAqB;EAC5B,QAAQ;GACP,SAAS;GACT,YAAY,EAAE,QAAQ;IACrB,MAAM;IACN,OAAO;IACP,MAAM,CAAC,MAAM;IACb,SAAS;GACV,EAAE;EACH;CACD;CACA,OAAO;EACN,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY,EAAE,QAAQ,GAAG;EAC1B;CACD;CACA,OAAO;EACN,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY,EAAE,QAAQ,GAAG;EAC1B;CACD;CACA,IAAI;EACH,cAAc;GACb,MAAM;GACN,QAAQ;IACP,SAAS;IACT,YAAY,EAAE,QAAQ,GAAG;IACzB,mBAAmB,EAAE,UAAU;KAC9B,MAAM;KACN,IAAI;IACL,EAAE;IACF,IAAI;GACL;EACD;EACA,cAAc;GACb,MAAM;GACN,QAAQ;IACP,SAAS;IACT,YAAY,EAAE,QAAQ,GAAG;IACzB,mBAAmB,EAAE,UAAU;KAC9B,MAAM;KACN,IAAI;IACL,EAAE;IACF,IAAI;GACL;EACD;EACA,MAAM;GACL,MAAM;GACN,QAAQ;IACP,SAAS;IACT,YAAY,EAAE,QAAQ,GAAG;IACzB,mBAAmB,EAAE,UAAU;KAC9B,MAAM;KACN,IAAI;IACL,EAAE;IACF,IAAI;GACL;EACD;EACA,QAAQ;GACP,MAAM;GACN,MAAM,CAAC,qBAAqB;GAC5B,QAAQ;IACP,SAAS;IACT,YAAY,EAAE,QAAQ;KACrB,MAAM;KACN,OAAO;KACP,MAAM,CAAC,MAAM;KACb,SAAS;IACV,EAAE;IACF,mBAAmB,EAAE,UAAU;KAC9B,MAAM;KACN,IAAI;KACJ,QAAQ,EAAE,MAAM;MACf,MAAM;MACN,OAAO;MACP,MAAM,CAAC,MAAM;KACd,EAAE;IACH,EAAE;IACF,IAAI;GACL;EACD;EACA,OAAO;GACN,MAAM;GACN,QAAQ;IACP,SAAS;IACT,YAAY,EAAE,QAAQ,GAAG;IACzB,mBAAmB,EAAE,UAAU;KAC9B,MAAM;KACN,IAAI;IACL,EAAE;IACF,IAAI;GACL;EACD;EACA,OAAO;GACN,MAAM;GACN,QAAQ;IACP,SAAS;IACT,YAAY,EAAE,QAAQ,GAAG;IACzB,mBAAmB,EAAE,UAAU;KAC9B,MAAM;KACN,IAAI;IACL,EAAE;IACF,IAAI;GACL;EACD;CACD;AACD;AAGA,MAAM,0BAA0B,EAAE,KAAK,EAAE,QAAQ;CAChD,MAAM;CACN,eAAe;CACf,MAAM,CAAC;EACN,MAAM;EACN,MAAM;EACN,SAAS;CACV,CAAC;CACD,QAAQ;EACP,SAAS;EACT,YAAY,EAAE,QAAQ;GACrB,MAAM;GACN,OAAO;EACR,EAAE;CACH;AACD,EAAE,EAAE"}
@@ -1,4 +1,4 @@
1
- import { n as buildSqlContractFromDefinition, r as contractError, t as applySqlSpecifierControlPolicy } from "./derived-checks-CEK-Ls_a-plK5KxX3.mjs";
1
+ import { n as buildSqlContractFromDefinition, r as contractError, t as applySqlSpecifierControlPolicy } from "./derived-checks-DSMOrZN--C03ao8_m.mjs";
2
2
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
3
3
  import { createDataTypeLookup, emptyCodecLookup } from "@prisma/orm-framework/components/codec";
4
4
  import { InternalError } from "@prisma/orm-framework/utils/internal-error";
@@ -65,4 +65,4 @@ function typescriptContractFromPath(contractPath, output, options) {
65
65
  //#endregion
66
66
  export { typescriptContract as n, typescriptContractFromPath as r, emptyContract as t };
67
67
 
68
- //# sourceMappingURL=config-types-DggwpWr3.mjs.map
68
+ //# sourceMappingURL=config-types-DabYoGbo.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-types-DggwpWr3.mjs","names":[],"sources":["../../../../2-sql/2-authoring/contract-ts/dist/config-types.mjs"],"sourcesContent":["import { n as buildSqlContractFromDefinition, o as contractError, t as applySqlSpecifierControlPolicy } from \"./derived-checks-CEK-Ls_a.mjs\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { createDataTypeLookup, emptyCodecLookup } from \"@internal/framework-components/codec\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { pathToFileURL } from \"node:url\";\nimport { ok } from \"@internal/utils/result\";\nimport { extname } from \"pathe\";\n//#region src/config-types.ts\n/**\n* Derives the emit output path from the TS contract input so artefacts land\n* colocated with the source (e.g. `prisma/contract.ts` →\n* `prisma/contract.json`). Mirrors the same default-derivation logic in\n* `@internal/sql-contract-psl/provider`.\n*/\nfunction defaultOutputFromContractPath(contractPath) {\n\tconst ext = extname(contractPath);\n\tif (ext.length === 0) return `${contractPath}.json`;\n\treturn `${contractPath.slice(0, -ext.length)}.json`;\n}\nfunction emptyContract(options) {\n\treturn {\n\t\tsource: {\n\t\t\tformat: \"typescript\",\n\t\t\tload: async () => {\n\t\t\t\treturn ok(applySqlSpecifierControlPolicy(buildSqlContractFromDefinition({\n\t\t\t\t\twarnings: void 0,\n\t\t\t\t\ttarget: options.target,\n\t\t\t\t\tcreateNamespace: options.createNamespace,\n\t\t\t\t\tmodels: []\n\t\t\t\t}, {\n\t\t\t\t\t...emptyCodecLookup,\n\t\t\t\t\tdescriptorFor: () => void 0\n\t\t\t\t}, createDataTypeLookup([])), options.defaultControlPolicy, options.createNamespace));\n\t\t\t}\n\t\t},\n\t\t...ifDefined(\"output\", options.output)\n\t};\n}\nfunction typescriptContract(contract, output, options) {\n\treturn {\n\t\tsource: {\n\t\t\tformat: \"typescript\",\n\t\t\tload: async () => ok(options === void 0 ? contract : applySqlSpecifierControlPolicy(contract, options.defaultControlPolicy, options.createNamespace))\n\t\t},\n\t\t...ifDefined(\"output\", output)\n\t};\n}\nfunction typescriptContractFromPath(contractPath, output, options) {\n\treturn {\n\t\tsource: {\n\t\t\tformat: \"typescript\",\n\t\t\tinputs: [contractPath],\n\t\t\tload: async (context) => {\n\t\t\t\tconst [absolutePath] = context.resolvedInputs;\n\t\t\t\tif (absolutePath === void 0) throw new InternalError(\"typescriptContractFromPath: context.resolvedInputs is empty. The CLI config loader should populate it from source.inputs.\");\n\t\t\t\tconst mod = await import(pathToFileURL(absolutePath).href);\n\t\t\t\tconst contract = mod.default ?? mod.contract;\n\t\t\t\tif (contract === void 0) throw contractError(\"CONTRACT.MODULE_EXPORT_MISSING\", `typescriptContractFromPath: module at \"${absolutePath}\" has no \"default\" or \"contract\" export.`, { meta: { path: absolutePath } });\n\t\t\t\treturn ok(options === void 0 ? contract : applySqlSpecifierControlPolicy(contract, options.defaultControlPolicy, options.createNamespace));\n\t\t\t}\n\t\t},\n\t\toutput: output ?? defaultOutputFromContractPath(contractPath)\n\t};\n}\n//#endregion\nexport { emptyContract, typescriptContract, typescriptContractFromPath };\n\n//# sourceMappingURL=config-types.mjs.map"],"mappings":";;;;;;;;;;;;;;AAcA,SAAS,8BAA8B,cAAc;CACpD,MAAM,MAAM,QAAQ,YAAY;CAChC,IAAI,IAAI,WAAW,GAAG,OAAO,GAAG,aAAa;CAC7C,OAAO,GAAG,aAAa,MAAM,GAAG,CAAC,IAAI,MAAM,EAAE;AAC9C;AACA,SAAS,cAAc,SAAS;CAC/B,OAAO;EACN,QAAQ;GACP,QAAQ;GACR,MAAM,YAAY;IACjB,OAAO,GAAG,+BAA+B,+BAA+B;KACvE,UAAU,KAAK;KACf,QAAQ,QAAQ;KAChB,iBAAiB,QAAQ;KACzB,QAAQ,CAAC;IACV,GAAG;KACF,GAAG;KACH,qBAAqB,KAAK;IAC3B,GAAG,qBAAqB,CAAC,CAAC,CAAC,GAAG,QAAQ,sBAAsB,QAAQ,eAAe,CAAC;GACrF;EACD;EACA,GAAG,UAAU,UAAU,QAAQ,MAAM;CACtC;AACD;AACA,SAAS,mBAAmB,UAAU,QAAQ,SAAS;CACtD,OAAO;EACN,QAAQ;GACP,QAAQ;GACR,MAAM,YAAY,GAAG,YAAY,KAAK,IAAI,WAAW,+BAA+B,UAAU,QAAQ,sBAAsB,QAAQ,eAAe,CAAC;EACrJ;EACA,GAAG,UAAU,UAAU,MAAM;CAC9B;AACD;AACA,SAAS,2BAA2B,cAAc,QAAQ,SAAS;CAClE,OAAO;EACN,QAAQ;GACP,QAAQ;GACR,QAAQ,CAAC,YAAY;GACrB,MAAM,OAAO,YAAY;IACxB,MAAM,CAAC,gBAAgB,QAAQ;IAC/B,IAAI,iBAAiB,KAAK,GAAG,MAAM,IAAI,cAAc,2HAA2H;IAChL,MAAM,MAAM,MAAM,OAAO,cAAc,YAAY,CAAC,CAAC;IACrD,MAAM,WAAW,IAAI,WAAW,IAAI;IACpC,IAAI,aAAa,KAAK,GAAG,MAAM,cAAc,kCAAkC,0CAA0C,aAAa,2CAA2C,EAAE,MAAM,EAAE,MAAM,aAAa,EAAE,CAAC;IACjN,OAAO,GAAG,YAAY,KAAK,IAAI,WAAW,+BAA+B,UAAU,QAAQ,sBAAsB,QAAQ,eAAe,CAAC;GAC1I;EACD;EACA,QAAQ,UAAU,8BAA8B,YAAY;CAC7D;AACD"}
1
+ {"version":3,"file":"config-types-DabYoGbo.mjs","names":[],"sources":["../../../../2-sql/2-authoring/contract-ts/dist/config-types.mjs"],"sourcesContent":["import { n as buildSqlContractFromDefinition, o as contractError, t as applySqlSpecifierControlPolicy } from \"./derived-checks-DSMOrZN-.mjs\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { createDataTypeLookup, emptyCodecLookup } from \"@internal/framework-components/codec\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { pathToFileURL } from \"node:url\";\nimport { ok } from \"@internal/utils/result\";\nimport { extname } from \"pathe\";\n//#region src/config-types.ts\n/**\n* Derives the emit output path from the TS contract input so artefacts land\n* colocated with the source (e.g. `prisma/contract.ts` →\n* `prisma/contract.json`). Mirrors the same default-derivation logic in\n* `@internal/sql-contract-psl/provider`.\n*/\nfunction defaultOutputFromContractPath(contractPath) {\n\tconst ext = extname(contractPath);\n\tif (ext.length === 0) return `${contractPath}.json`;\n\treturn `${contractPath.slice(0, -ext.length)}.json`;\n}\nfunction emptyContract(options) {\n\treturn {\n\t\tsource: {\n\t\t\tformat: \"typescript\",\n\t\t\tload: async () => {\n\t\t\t\treturn ok(applySqlSpecifierControlPolicy(buildSqlContractFromDefinition({\n\t\t\t\t\twarnings: void 0,\n\t\t\t\t\ttarget: options.target,\n\t\t\t\t\tcreateNamespace: options.createNamespace,\n\t\t\t\t\tmodels: []\n\t\t\t\t}, {\n\t\t\t\t\t...emptyCodecLookup,\n\t\t\t\t\tdescriptorFor: () => void 0\n\t\t\t\t}, createDataTypeLookup([])), options.defaultControlPolicy, options.createNamespace));\n\t\t\t}\n\t\t},\n\t\t...ifDefined(\"output\", options.output)\n\t};\n}\nfunction typescriptContract(contract, output, options) {\n\treturn {\n\t\tsource: {\n\t\t\tformat: \"typescript\",\n\t\t\tload: async () => ok(options === void 0 ? contract : applySqlSpecifierControlPolicy(contract, options.defaultControlPolicy, options.createNamespace))\n\t\t},\n\t\t...ifDefined(\"output\", output)\n\t};\n}\nfunction typescriptContractFromPath(contractPath, output, options) {\n\treturn {\n\t\tsource: {\n\t\t\tformat: \"typescript\",\n\t\t\tinputs: [contractPath],\n\t\t\tload: async (context) => {\n\t\t\t\tconst [absolutePath] = context.resolvedInputs;\n\t\t\t\tif (absolutePath === void 0) throw new InternalError(\"typescriptContractFromPath: context.resolvedInputs is empty. The CLI config loader should populate it from source.inputs.\");\n\t\t\t\tconst mod = await import(pathToFileURL(absolutePath).href);\n\t\t\t\tconst contract = mod.default ?? mod.contract;\n\t\t\t\tif (contract === void 0) throw contractError(\"CONTRACT.MODULE_EXPORT_MISSING\", `typescriptContractFromPath: module at \"${absolutePath}\" has no \"default\" or \"contract\" export.`, { meta: { path: absolutePath } });\n\t\t\t\treturn ok(options === void 0 ? contract : applySqlSpecifierControlPolicy(contract, options.defaultControlPolicy, options.createNamespace));\n\t\t\t}\n\t\t},\n\t\toutput: output ?? defaultOutputFromContractPath(contractPath)\n\t};\n}\n//#endregion\nexport { emptyContract, typescriptContract, typescriptContractFromPath };\n\n//# sourceMappingURL=config-types.mjs.map"],"mappings":";;;;;;;;;;;;;;AAcA,SAAS,8BAA8B,cAAc;CACpD,MAAM,MAAM,QAAQ,YAAY;CAChC,IAAI,IAAI,WAAW,GAAG,OAAO,GAAG,aAAa;CAC7C,OAAO,GAAG,aAAa,MAAM,GAAG,CAAC,IAAI,MAAM,EAAE;AAC9C;AACA,SAAS,cAAc,SAAS;CAC/B,OAAO;EACN,QAAQ;GACP,QAAQ;GACR,MAAM,YAAY;IACjB,OAAO,GAAG,+BAA+B,+BAA+B;KACvE,UAAU,KAAK;KACf,QAAQ,QAAQ;KAChB,iBAAiB,QAAQ;KACzB,QAAQ,CAAC;IACV,GAAG;KACF,GAAG;KACH,qBAAqB,KAAK;IAC3B,GAAG,qBAAqB,CAAC,CAAC,CAAC,GAAG,QAAQ,sBAAsB,QAAQ,eAAe,CAAC;GACrF;EACD;EACA,GAAG,UAAU,UAAU,QAAQ,MAAM;CACtC;AACD;AACA,SAAS,mBAAmB,UAAU,QAAQ,SAAS;CACtD,OAAO;EACN,QAAQ;GACP,QAAQ;GACR,MAAM,YAAY,GAAG,YAAY,KAAK,IAAI,WAAW,+BAA+B,UAAU,QAAQ,sBAAsB,QAAQ,eAAe,CAAC;EACrJ;EACA,GAAG,UAAU,UAAU,MAAM;CAC9B;AACD;AACA,SAAS,2BAA2B,cAAc,QAAQ,SAAS;CAClE,OAAO;EACN,QAAQ;GACP,QAAQ;GACR,QAAQ,CAAC,YAAY;GACrB,MAAM,OAAO,YAAY;IACxB,MAAM,CAAC,gBAAgB,QAAQ;IAC/B,IAAI,iBAAiB,KAAK,GAAG,MAAM,IAAI,cAAc,2HAA2H;IAChL,MAAM,MAAM,MAAM,OAAO,cAAc,YAAY,CAAC,CAAC;IACrD,MAAM,WAAW,IAAI,WAAW,IAAI;IACpC,IAAI,aAAa,KAAK,GAAG,MAAM,cAAc,kCAAkC,0CAA0C,aAAa,2CAA2C,EAAE,MAAM,EAAE,MAAM,aAAa,EAAE,CAAC;IACjN,OAAO,GAAG,YAAY,KAAK,IAAI,WAAW,+BAA+B,UAAU,QAAQ,sBAAsB,QAAQ,eAAe,CAAC;GAC1I;EACD;EACA,QAAQ,UAAU,8BAA8B,YAAY;CAC7D;AACD"}
@@ -1,14 +1,15 @@
1
1
  import { t as providesEntityHandleLowering } from "./entity-handle-lowering-hook-B3atrRKX.mjs";
2
+ import { c as readSqlExpression, l as requireSqlExpression, o as isSqlExpression, r as SqlExpression } from "./sql-expression-DSRILiU2.mjs";
2
3
  import { t as CODEC_INSTANCE_KIND } from "./types-DXrO0fxT.mjs";
3
4
  import { n as checkSqlDefaultText, o as reservedSqlDefaultText } from "./validators-B9prRmOP.mjs";
4
- import { n as buildSqlContractFromDefinition, o as toOneNullabilityContradictionMessage, r as contractError } from "./derived-checks-CEK-Ls_a-plK5KxX3.mjs";
5
+ import { n as buildSqlContractFromDefinition, o as toOneNullabilityContradictionMessage, r as contractError } from "./derived-checks-DSMOrZN--C03ao8_m.mjs";
6
+ import { isStructuredError } from "@prisma/orm-framework/utils/structured-error";
5
7
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
6
- import { assertNoCrossRegistryCollisions, canonicalizeTaggedLiteralBody, instantiateAuthoringFieldPreset, instantiateAuthoringTypeConstructor, isAuthoringEntityTypeDescriptor, isAuthoringTypeConstructorDescriptor, validateAuthoringHelperArguments, validateAuthoringTypeParams } from "@prisma/orm-framework/components/authoring";
8
+ import { assertNoCrossRegistryCollisions, instantiateAuthoringFieldPreset, instantiateAuthoringTypeConstructor, isAuthoringEntityTypeDescriptor, isAuthoringTypeConstructorDescriptor, validateAuthoringHelperArguments, validateAuthoringTypeParams } from "@prisma/orm-framework/components/authoring";
7
9
  import { blindCast } from "@prisma/orm-framework/utils/casts";
8
10
  import { InternalError } from "@prisma/orm-framework/utils/internal-error";
9
11
  import { isColumnDefault } from "@prisma/orm-framework/contract/types";
10
12
  import { assertSafeAuthoringHelperKey, bindEnumType, composePackAuthoringNamespace, createEntityHelpersFromNamespace, createFieldHelpersFromNamespace, enumType, isEnumTypeHandle, member, resolveToOneRelationNullable } from "@prisma/orm-framework/contract-authoring";
11
- import { describeTaggedLiteralFailure, resolveTemplateTagEscapes } from "@prisma/orm-framework/components/control";
12
13
  //#region ../../../2-sql/2-authoring/contract-ts/dist/contract-builder.mjs
13
14
  function isNamedConstraintOptionsLike(value) {
14
15
  if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
@@ -66,12 +67,30 @@ function createFieldPresetHelper(options) {
66
67
  };
67
68
  }
68
69
  function toColumnDefault(value) {
70
+ const expression = readSqlExpression(value);
71
+ if (expression !== void 0) return sqlExpressionDefault(expression);
69
72
  if (isColumnDefault(value)) return value;
70
73
  return {
71
74
  kind: "literal",
72
75
  value
73
76
  };
74
77
  }
78
+ function sqlExpressionDefault(value) {
79
+ const reserved = reservedSqlDefaultText(value.text);
80
+ if (reserved !== void 0) throw contractError("CONTRACT.DEFAULT_INVALID", `Write .default(${reserved}()) instead of sql\`${reserved}()\`; ${reserved}() is a Prisma default function, not raw SQL.`, { meta: {
81
+ reason: "reserved-function",
82
+ expression: value.text
83
+ } });
84
+ const unsafe = checkSqlDefaultText(value.text);
85
+ if (unsafe !== void 0) throw contractError("CONTRACT.DEFAULT_INVALID", unsafe, { meta: {
86
+ reason: "unsafe-sql",
87
+ expression: value.text
88
+ } });
89
+ return {
90
+ kind: "function",
91
+ expression: value.text
92
+ };
93
+ }
75
94
  var ScalarFieldBuilder = class ScalarFieldBuilder {
76
95
  state;
77
96
  constructor(state) {
@@ -1206,11 +1225,40 @@ function resolveDeferredColumns(spec, fieldNames, fieldCodecIds) {
1206
1225
  };
1207
1226
  });
1208
1227
  }
1228
+ /**
1229
+ * The text of an index expression. A string has no `render`, and `'render' in` a string throws a
1230
+ * `TypeError`, so the `sql` value is recognized first and anything else is refused last.
1231
+ */
1232
+ function indexExpressionText(spec, expression, fieldCodecIds, owner) {
1233
+ const sqlExpression = readSqlExpression(expression);
1234
+ if (sqlExpression !== void 0) return sqlExpression.text;
1235
+ if (typeof expression === "object" && expression !== null && "render" in expression) return renderedSqlText(expression.render(resolveDeferredColumns(spec, expression.fields.map((ref) => ref.fieldName), fieldCodecIds)), `${owner} expression`);
1236
+ return requireSqlExpression(expression, `${owner} expression`).text;
1237
+ }
1238
+ function renderedSqlText(rendered, what) {
1239
+ try {
1240
+ return new SqlExpression(rendered).text;
1241
+ } catch (cause) {
1242
+ if (!isStructuredError(cause) || cause.code !== "CONTRACT.SQL_EXPRESSION_INVALID") throw cause;
1243
+ throw contractError("CONTRACT.SQL_EXPRESSION_INVALID", `${what}: ${cause.message}`, {
1244
+ meta: {
1245
+ what,
1246
+ ...cause.meta
1247
+ },
1248
+ cause
1249
+ });
1250
+ }
1251
+ }
1252
+ function constraintOwner(kind, modelName, constraint) {
1253
+ const name = constraint.name ?? constraint.map;
1254
+ return name === void 0 ? `${kind} on "${modelName}"` : `${kind} "${name}"`;
1255
+ }
1209
1256
  /** The fields an index covers, in order: its own, or those of its deferred expression. */
1210
1257
  function coveredFieldNames(index) {
1211
1258
  if (index.fields !== void 0) return index.fields;
1212
- if (index.expression === void 0 || typeof index.expression === "string") return [];
1213
- return index.expression.fields.map((ref) => ref.fieldName);
1259
+ const { expression } = index;
1260
+ if (expression === void 0 || isSqlExpression(expression) || typeof expression !== "object") return [];
1261
+ return expression.fields.map((ref) => ref.fieldName);
1214
1262
  }
1215
1263
  function resolveModelNode(spec, allSpecs, storageTypes, storageTypeReverseLookup, extensions) {
1216
1264
  const fields = [];
@@ -1247,8 +1295,9 @@ function resolveModelNode(spec, allSpecs, storageTypes, storageTypeReverseLookup
1247
1295
  type: index.type,
1248
1296
  options
1249
1297
  });
1298
+ const owner = constraintOwner("Index", spec.modelName, index);
1250
1299
  const carried = {
1251
- where: index.where,
1300
+ where: index.where === void 0 ? void 0 : requireSqlExpression(index.where, `${owner} where`).text,
1252
1301
  unique: index.unique,
1253
1302
  name: index.name,
1254
1303
  map: index.map,
@@ -1256,14 +1305,14 @@ function resolveModelNode(spec, allSpecs, storageTypes, storageTypeReverseLookup
1256
1305
  };
1257
1306
  return index.expression !== void 0 ? {
1258
1307
  ...carried,
1259
- expression: typeof index.expression === "string" ? index.expression : index.expression.render(resolveDeferredColumns(spec, index.expression.fields.map((ref) => ref.fieldName), fieldCodecIds))
1308
+ expression: indexExpressionText(spec, index.expression, fieldCodecIds, owner)
1260
1309
  } : {
1261
1310
  ...carried,
1262
1311
  columns: mapFieldNamesToColumnNames(spec.modelName, index.fields ?? [], spec.fieldToColumn)
1263
1312
  };
1264
1313
  });
1265
1314
  const checks = (spec.sqlSpec?.checks ?? []).map((authoredCheck) => ({
1266
- expression: authoredCheck.expression,
1315
+ expression: requireSqlExpression(authoredCheck.expression, `${constraintOwner("Check", spec.modelName, authoredCheck)} expression`).text,
1267
1316
  name: authoredCheck.name,
1268
1317
  map: authoredCheck.map
1269
1318
  }));
@@ -1671,35 +1720,7 @@ function autoincrement() {
1671
1720
  expression: "autoincrement()"
1672
1721
  };
1673
1722
  }
1674
- /**
1675
- * A raw SQL column default written as a template literal: `` sql`gen_random_uuid()` ``. The raw text
1676
- * between the backticks resolves `` \` ``, `\\` and `\$`, is canonicalized the way PSL canonicalizes a
1677
- * tagged literal, and is used verbatim as the default expression. Interpolation is not supported, so
1678
- * the two characters `${` are written `\${`.
1679
- */
1680
- function sql(strings, ...values) {
1681
- if (values.length > 0) throw contractError("CONTRACT.DEFAULT_SQL_INTERPOLATION", "sql`...` does not support interpolation; write the SQL as one literal.", { meta: { interpolations: values.length } });
1682
- const canonical = canonicalizeTaggedLiteralBody(resolveTemplateTagEscapes(strings.raw.join("")));
1683
- if (!canonical.ok) throw contractError("CONTRACT.DEFAULT_INVALID", describeTaggedLiteralFailure(canonical.reason), { meta: {
1684
- reason: canonical.reason,
1685
- offset: canonical.offset
1686
- } });
1687
- const reserved = reservedSqlDefaultText(canonical.text);
1688
- if (reserved !== void 0) throw contractError("CONTRACT.DEFAULT_INVALID", `Write .default(${reserved}()) instead of sql\`${reserved}()\`; ${reserved}() is a Prisma default function, not raw SQL.`, { meta: {
1689
- reason: "reserved-function",
1690
- expression: canonical.text
1691
- } });
1692
- const rejected = checkSqlDefaultText(canonical.text);
1693
- if (rejected !== void 0) throw contractError("CONTRACT.DEFAULT_INVALID", rejected, { meta: {
1694
- reason: "unsafe-sql",
1695
- expression: canonical.text
1696
- } });
1697
- return {
1698
- kind: "function",
1699
- expression: canonical.text
1700
- };
1701
- }
1702
1723
  //#endregion
1703
- export { check as a, enumType as c, member as d, model as f, sql as h, buildContractDefinition as i, extensionModel as l, rel as m, bindEnumType as n, createComposedAuthoringHelpers as o, now as p, buildBoundContract as r, defineContract as s, autoincrement as t, field as u };
1724
+ export { check as a, enumType as c, member as d, model as f, buildContractDefinition as i, extensionModel as l, rel as m, bindEnumType as n, createComposedAuthoringHelpers as o, now as p, buildBoundContract as r, defineContract as s, autoincrement as t, field as u };
1704
1725
 
1705
- //# sourceMappingURL=contract-builder-J9D4EprQ.mjs.map
1726
+ //# sourceMappingURL=contract-builder-C5n9DeDD.mjs.map