@prisma/orm-framework 8.0.0-rc.14-dev.13 → 8.0.0-rc.14-dev.15

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 (122) hide show
  1. package/dist/{apply-specifier-default-control-policy-9vsCWnn8.d.mts → apply-specifier-default-control-policy-C7GgMLwT.d.mts} +2 -2
  2. package/dist/apply-specifier-default-control-policy-C7GgMLwT.d.mts.map +1 -0
  3. package/dist/{authoring-C9lq8UGN.d.mts → authoring-DTZsvKV7.d.mts} +5 -5
  4. package/dist/{authoring-C9lq8UGN.d.mts.map → authoring-DTZsvKV7.d.mts.map} +1 -1
  5. package/dist/{canonicalization-BykcD9kZ-DDeZ2c-B.d.mts → canonicalization-DufIiCLc-D8HOry-O.d.mts} +3 -3
  6. package/dist/{canonicalization-BykcD9kZ-DDeZ2c-B.d.mts.map → canonicalization-DufIiCLc-D8HOry-O.d.mts.map} +1 -1
  7. package/dist/{codec-D67Y03B_.d.mts → codec-DFvi9jo5.d.mts} +3 -3
  8. package/dist/{codec-D67Y03B_.d.mts.map → codec-DFvi9jo5.d.mts.map} +1 -1
  9. package/dist/{codec-types-DrcxdLlC-CDdDe0_A.d.mts → codec-types-DrcxdLlC-CAfu8HRL.d.mts} +2 -2
  10. package/dist/{codec-types-DrcxdLlC-CDdDe0_A.d.mts.map → codec-types-DrcxdLlC-CAfu8HRL.d.mts.map} +1 -1
  11. package/dist/{components-utVOE0ha.d.mts → components-DgQX4ccF.d.mts} +4 -4
  12. package/dist/{components-utVOE0ha.d.mts.map → components-DgQX4ccF.d.mts.map} +1 -1
  13. package/dist/components.d.mts +17 -17
  14. package/dist/components__authoring.d.mts +3 -3
  15. package/dist/components__codec.d.mts +2 -2
  16. package/dist/components__components.d.mts +3 -3
  17. package/dist/components__control.d.mts +3 -3
  18. package/dist/components__emission.d.mts +3 -3
  19. package/dist/components__execution.d.mts +1 -1
  20. package/dist/components__ir.d.mts +1 -1
  21. package/dist/components__psl-ast.d.mts +3 -3
  22. package/dist/components__runtime.d.mts +1 -1
  23. package/dist/{config-types-Bb2Sf7YP.d.mts → config-types-CcK2xcMX.d.mts} +7 -7
  24. package/dist/{config-types-Bb2Sf7YP.d.mts.map → config-types-CcK2xcMX.d.mts.map} +1 -1
  25. package/dist/config.d.mts +1 -1
  26. package/dist/config__config-types.d.mts +1 -1
  27. package/dist/contract-authoring.d.mts +4 -4
  28. package/dist/{contract-types-Cdqr65a--BsYwlpQo.d.mts → contract-types-BIaUtO7Z-Bcxx2I74.d.mts} +3 -3
  29. package/dist/{contract-types-Cdqr65a--BsYwlpQo.d.mts.map → contract-types-BIaUtO7Z-Bcxx2I74.d.mts.map} +1 -1
  30. package/dist/contract.d.mts +10 -10
  31. package/dist/contract.mjs +2 -2
  32. package/dist/contract__apply-specifier-default-control-policy.d.mts +1 -1
  33. package/dist/contract__enum-accessor.d.mts +1 -1
  34. package/dist/contract__hashing-utils.d.mts +1 -1
  35. package/dist/contract__hashing.d.mts +2 -2
  36. package/dist/contract__hashing.mjs +1 -1
  37. package/dist/contract__resolve-domain-model.d.mts +1 -1
  38. package/dist/contract__types.d.mts +4 -4
  39. package/dist/contract__validate-domain.d.mts +1 -1
  40. package/dist/contract__validate-domain.mjs +1 -1
  41. package/dist/{control-CqwbImYs.d.mts → control-qWBPmuvX.d.mts} +12 -12
  42. package/dist/{control-CqwbImYs.d.mts.map → control-qWBPmuvX.d.mts.map} +1 -1
  43. package/dist/{declarations-CgS5vnfJ-Dhi3X7oU.mjs → declarations-C0VwsVFX-24_6w6Lb.mjs} +26 -4
  44. package/dist/declarations-C0VwsVFX-24_6w6Lb.mjs.map +1 -0
  45. package/dist/{domain-envelope-gHv58hD1-B8mta2A6.d.mts → domain-envelope-C2vVIWGK-C5x7cBpU.d.mts} +5 -3
  46. package/dist/{domain-envelope-gHv58hD1-B8mta2A6.d.mts.map → domain-envelope-C2vVIWGK-C5x7cBpU.d.mts.map} +1 -1
  47. package/dist/emission-jG88SNeC.d.mts +2 -0
  48. package/dist/{emission-types-CND9Xi8O-BxLcJq2c.d.mts → emission-types-CND9Xi8O-DKnaAGFS.d.mts} +5 -5
  49. package/dist/{emission-types-CND9Xi8O-BxLcJq2c.d.mts.map → emission-types-CND9Xi8O-DKnaAGFS.d.mts.map} +1 -1
  50. package/dist/{enum-accessor-CCZVzS_f.d.mts → enum-accessor-YBT4SFYM.d.mts} +3 -3
  51. package/dist/{enum-accessor-CCZVzS_f.d.mts.map → enum-accessor-YBT4SFYM.d.mts.map} +1 -1
  52. package/dist/errors.d.mts +1 -1
  53. package/dist/errors__execution.d.mts +1 -1
  54. package/dist/{execution-BiivimSo.d.mts → execution-BW3cjWqQ.d.mts} +2 -2
  55. package/dist/{execution-BiivimSo.d.mts.map → execution-BW3cjWqQ.d.mts.map} +1 -1
  56. package/dist/{execution-BVq3wWK_.d.mts → execution-DHFIqFJC.d.mts} +2 -2
  57. package/dist/{execution-BVq3wWK_.d.mts.map → execution-DHFIqFJC.d.mts.map} +1 -1
  58. package/dist/{framework-authoring-50f3xfDT-BEB5Y_Vg.d.mts → framework-authoring-CsVwBOxP-saf7NH7p.d.mts} +5 -5
  59. package/dist/{framework-authoring-50f3xfDT-BEB5Y_Vg.d.mts.map → framework-authoring-CsVwBOxP-saf7NH7p.d.mts.map} +1 -1
  60. package/dist/{framework-components-CHaw_oBm-B5HHh_b7.d.mts → framework-components-DNtoaHTX-DWt4JeHF.d.mts} +6 -6
  61. package/dist/{framework-components-CHaw_oBm-B5HHh_b7.d.mts.map → framework-components-DNtoaHTX-DWt4JeHF.d.mts.map} +1 -1
  62. package/dist/{hashing-BAPc4zoz.d.mts → hashing-BznADJtu.d.mts} +4 -4
  63. package/dist/{hashing-BAPc4zoz.d.mts.map → hashing-BznADJtu.d.mts.map} +1 -1
  64. package/dist/{hashing-CjTNYBuj.mjs → hashing-CLRfNAxh.mjs} +8 -7
  65. package/dist/hashing-CLRfNAxh.mjs.map +1 -0
  66. package/dist/{hashing-utils-BUU3eFo9.d.mts → hashing-utils-pciIgMxz.d.mts} +2 -2
  67. package/dist/{hashing-utils-BUU3eFo9.d.mts.map → hashing-utils-pciIgMxz.d.mts.map} +1 -1
  68. package/dist/ids.d.mts +2 -2
  69. package/dist/ids__runtime.d.mts +1 -1
  70. package/dist/{ir-CGDgzJPj.d.mts → ir-BOKp6I1y.d.mts} +2 -2
  71. package/dist/{ir-CGDgzJPj.d.mts.map → ir-BOKp6I1y.d.mts.map} +1 -1
  72. package/dist/{mutation-default-types-B5ij1r12-DG0aqkcM.d.mts → mutation-default-types--XIOgxCm-B6NmSBxF.d.mts} +4 -4
  73. package/dist/{mutation-default-types-B5ij1r12-DG0aqkcM.d.mts.map → mutation-default-types--XIOgxCm-B6NmSBxF.d.mts.map} +1 -1
  74. package/dist/{parse-C54e9842-D-fu5Z8Y.d.mts → parse-DqMTVHCw-Cw1RjDIQ.d.mts} +16 -7
  75. package/dist/parse-DqMTVHCw-Cw1RjDIQ.d.mts.map +1 -0
  76. package/dist/{parse-1owoiwHJ-CqCnC7Qx.mjs → parse-EvT3Ac9q-j7zYLB_6.mjs} +23 -10
  77. package/dist/parse-EvT3Ac9q-j7zYLB_6.mjs.map +1 -0
  78. package/dist/{psl-ast-DPyStNWj-XiHYf17a.d.mts → psl-ast-CAA6nJRp-DIk-wyX1.d.mts} +4 -3
  79. package/dist/psl-ast-CAA6nJRp-DIk-wyX1.d.mts.map +1 -0
  80. package/dist/psl-ast-irbNZ93U.d.mts +2 -0
  81. package/dist/psl-parser.d.mts +29 -15
  82. package/dist/psl-parser.d.mts.map +1 -1
  83. package/dist/psl-parser.mjs +102 -39
  84. package/dist/psl-parser.mjs.map +1 -1
  85. package/dist/psl-parser__format.d.mts +1 -1
  86. package/dist/psl-parser__format.mjs +2 -2
  87. package/dist/psl-parser__format.mjs.map +1 -1
  88. package/dist/psl-parser__interpret.d.mts +7 -7
  89. package/dist/psl-parser__syntax.d.mts +1 -1
  90. package/dist/psl-parser__syntax.mjs +2 -2
  91. package/dist/psl-parser__syntax.mjs.map +1 -1
  92. package/dist/psl-printer.d.mts +4 -4
  93. package/dist/psl-printer.mjs +5 -1
  94. package/dist/psl-printer.mjs.map +1 -1
  95. package/dist/{resolve-domain-model-CBM8n-rX-DYZcbj-r.d.mts → resolve-domain-model-zoHO_vad-CUS97MWr.d.mts} +3 -3
  96. package/dist/resolve-domain-model-zoHO_vad-CUS97MWr.d.mts.map +1 -0
  97. package/dist/{runtime-DM3z02wq.d.mts → runtime-BCzeC3dA.d.mts} +4 -4
  98. package/dist/{runtime-DM3z02wq.d.mts.map → runtime-BCzeC3dA.d.mts.map} +1 -1
  99. package/dist/{symbol-table-D4guXoTO-CS6SD0MP.d.mts → symbol-table-DZDTpkQ7-BrBUqb4g.d.mts} +12 -9
  100. package/dist/symbol-table-DZDTpkQ7-BrBUqb4g.d.mts.map +1 -0
  101. package/dist/{temporal-presets-C3IeyYNF-Dkn3gjfg.d.mts → temporal-presets-UGhnJIuo-DCoJ3HJj.d.mts} +4 -4
  102. package/dist/{temporal-presets-C3IeyYNF-Dkn3gjfg.d.mts.map → temporal-presets-UGhnJIuo-DCoJ3HJj.d.mts.map} +1 -1
  103. package/dist/{types-import-spec-D-EPunhV-DxmpFe3l.d.mts → types-import-spec-D-EPunhV-B3y6hGP5.d.mts} +3 -3
  104. package/dist/{types-import-spec-D-EPunhV-DxmpFe3l.d.mts.map → types-import-spec-D-EPunhV-B3y6hGP5.d.mts.map} +1 -1
  105. package/dist/{types-BiXRgK9f.d.mts → types-ofsYLi7A.d.mts} +3 -3
  106. package/dist/{types-BiXRgK9f.d.mts.map → types-ofsYLi7A.d.mts.map} +1 -1
  107. package/dist/{validate-domain-CaT6wlDH.mjs → validate-domain-DgY72oWI.mjs} +13 -10
  108. package/dist/validate-domain-DgY72oWI.mjs.map +1 -0
  109. package/dist/{validate-domain-DiEWAx3K.d.mts → validate-domain-M93ZRMRA.d.mts} +2 -2
  110. package/dist/{validate-domain-DiEWAx3K.d.mts.map → validate-domain-M93ZRMRA.d.mts.map} +1 -1
  111. package/package.json +15 -15
  112. package/dist/apply-specifier-default-control-policy-9vsCWnn8.d.mts.map +0 -1
  113. package/dist/declarations-CgS5vnfJ-Dhi3X7oU.mjs.map +0 -1
  114. package/dist/emission-B9RTq119.d.mts +0 -2
  115. package/dist/hashing-CjTNYBuj.mjs.map +0 -1
  116. package/dist/parse-1owoiwHJ-CqCnC7Qx.mjs.map +0 -1
  117. package/dist/parse-C54e9842-D-fu5Z8Y.d.mts.map +0 -1
  118. package/dist/psl-ast-DPyStNWj-XiHYf17a.d.mts.map +0 -1
  119. package/dist/psl-ast-Dgvia310.d.mts +0 -2
  120. package/dist/resolve-domain-model-CBM8n-rX-DYZcbj-r.d.mts.map +0 -1
  121. package/dist/symbol-table-D4guXoTO-CS6SD0MP.d.mts.map +0 -1
  122. package/dist/validate-domain-CaT6wlDH.mjs.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { t as ContractValidationError } from "./contract-validation-error-DEiWp_EI-CRwtUgRw.mjs";
2
+ import { t as blindCast } from "./casts-DpaahrlC-Bd5n2coI.mjs";
2
3
  import { t as asNamespaceId } from "./namespace-id-asbWpwMw-3yxn-tRe.mjs";
3
4
  //#region ../../../1-framework/0-foundation/contract/dist/validate-domain.mjs
4
5
  function indexDomainModels(contract) {
@@ -134,24 +135,26 @@ function validateValueObjectReferences(contract, errors) {
134
135
  }
135
136
  for (const [namespaceKey, namespace] of Object.entries(contract.domain.namespaces)) {
136
137
  const namespaceId = asNamespaceId(namespaceKey);
137
- for (const [modelName, model] of Object.entries(namespace.models)) for (const [fieldName, field] of Object.entries(model.fields)) checkType(field?.type, `Model "${namespaceId}:${modelName}" field "${fieldName}"`, namespaceId);
138
- for (const [voName, vo] of Object.entries(namespace.valueObjects ?? {})) for (const [fieldName, field] of Object.entries(vo.fields)) checkType(field?.type, `Value object "${namespaceId}:${voName}" field "${fieldName}"`, namespaceId);
138
+ for (const [modelName, model] of Object.entries(namespace.models)) for (const [fieldName, field] of Object.entries(model.fields)) checkType(blindCast(field)?.type, `Model "${namespaceId}:${modelName}" field "${fieldName}"`, namespaceId);
139
+ for (const [voName, vo] of Object.entries(namespace.valueObjects ?? {})) for (const [fieldName, field] of Object.entries(vo.fields)) checkType(blindCast(field)?.type, `Value object "${namespaceId}:${voName}" field "${fieldName}"`, namespaceId);
139
140
  }
140
141
  }
141
142
  function validateFieldModifiers(modelIndex, contract, errors) {
142
- for (const { namespaceId, name: modelName, model } of iterateIndexedModels(modelIndex)) for (const [fieldName, field] of Object.entries(model.fields)) {
143
- const f = field;
144
- if (f?.many && f?.dict) errors.push(`Model "${namespaceId}:${modelName}" field "${fieldName}" cannot have both "many" and "dict" modifiers`);
143
+ function validateField(location, field) {
144
+ const candidate = blindCast(field);
145
+ const many = candidate?.many;
146
+ const isList = typeof many === "object" && many !== null && !Array.isArray(many) && Object.keys(many).length === 1 && "elementNullable" in many && typeof many.elementNullable === "boolean";
147
+ if (many !== void 0 && many !== false && !isList) errors.push(`${location} has invalid "many"; expected false or an elementNullable descriptor`);
148
+ if (candidate?.elementNullable !== void 0) errors.push(`${location} cannot have sibling "elementNullable"; put it inside "many"`);
149
+ if (isList && candidate?.dict) errors.push(`${location} cannot have both "many" and "dict" modifiers`);
145
150
  }
151
+ for (const { namespaceId, name: modelName, model } of iterateIndexedModels(modelIndex)) for (const [fieldName, field] of Object.entries(model.fields)) validateField(`Model "${namespaceId}:${modelName}" field "${fieldName}"`, field);
146
152
  for (const [namespaceKey, namespace] of Object.entries(contract.domain.namespaces)) {
147
153
  const namespaceId = asNamespaceId(namespaceKey);
148
- for (const [voName, vo] of Object.entries(namespace.valueObjects ?? {})) for (const [fieldName, field] of Object.entries(vo.fields)) {
149
- const f = field;
150
- if (f?.many && f?.dict) errors.push(`Value object "${namespaceId}:${voName}" field "${fieldName}" cannot have both "many" and "dict" modifiers`);
151
- }
154
+ for (const [voName, vo] of Object.entries(namespace.valueObjects ?? {})) for (const [fieldName, field] of Object.entries(vo.fields)) validateField(`Value object "${namespaceId}:${voName}" field "${fieldName}"`, field);
152
155
  }
153
156
  }
154
157
  //#endregion
155
158
  export { validateContractDomain as t };
156
159
 
157
- //# sourceMappingURL=validate-domain-CaT6wlDH.mjs.map
160
+ //# sourceMappingURL=validate-domain-DgY72oWI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-domain-DgY72oWI.mjs","names":[],"sources":["../../../../1-framework/0-foundation/contract/dist/validate-domain.mjs"],"sourcesContent":["import { t as asNamespaceId } from \"./namespace-id-asbWpwMw.mjs\";\nimport { t as ContractValidationError } from \"./contract-validation-error-DEiWp_EI.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\n//#region src/validate-domain.ts\nfunction indexDomainModels(contract) {\n\tconst index = /* @__PURE__ */ new Map();\n\tfor (const [namespaceKey, namespace] of Object.entries(contract.domain.namespaces)) {\n\t\tconst namespaceId = asNamespaceId(namespaceKey);\n\t\tlet modelsInNamespace = index.get(namespaceId);\n\t\tif (modelsInNamespace === void 0) {\n\t\t\tmodelsInNamespace = /* @__PURE__ */ new Map();\n\t\t\tindex.set(namespaceId, modelsInNamespace);\n\t\t}\n\t\tfor (const [name, model] of Object.entries(namespace.models)) modelsInNamespace.set(name, {\n\t\t\tnamespaceId,\n\t\t\tname,\n\t\t\tmodel\n\t\t});\n\t}\n\treturn index;\n}\nfunction lookupModel(index, ref) {\n\treturn index.get(ref.namespace)?.get(ref.model);\n}\nfunction* iterateIndexedModels(index) {\n\tfor (const modelsInNamespace of index.values()) for (const entry of modelsInNamespace.values()) yield entry;\n}\nfunction validateContractDomain(contract) {\n\tconst errors = [];\n\tconst modelIndex = indexDomainModels(contract);\n\tvalidateRoots(contract, modelIndex, errors);\n\tvalidateVariantsAndBases(modelIndex, errors);\n\tvalidateRelationTargets(modelIndex, errors);\n\tvalidateRelationNullability(modelIndex, errors);\n\tvalidateDiscriminators(modelIndex, errors);\n\tvalidateOwnership(contract, modelIndex, errors);\n\tvalidateValueObjectReferences(contract, errors);\n\tvalidateFieldModifiers(modelIndex, contract, errors);\n\tif (errors.length > 0) throw new ContractValidationError(`Contract domain validation failed:\\n- ${errors.join(\"\\n- \")}`, \"domain\");\n}\nfunction validateRoots(contract, modelIndex, errors) {\n\tconst seenRootTargets = /* @__PURE__ */ new Map();\n\tfor (const [rootKey, crossRef] of Object.entries(contract.roots)) {\n\t\tlet modelsInNamespace = seenRootTargets.get(crossRef.namespace);\n\t\tif (modelsInNamespace === void 0) {\n\t\t\tmodelsInNamespace = /* @__PURE__ */ new Set();\n\t\t\tseenRootTargets.set(crossRef.namespace, modelsInNamespace);\n\t\t}\n\t\tif (modelsInNamespace.has(crossRef.model)) errors.push(`Duplicate root value: \"${crossRef.namespace}:${crossRef.model}\" is mapped by multiple root keys`);\n\t\tmodelsInNamespace.add(crossRef.model);\n\t\tif (!lookupModel(modelIndex, crossRef)) errors.push(`Root \"${rootKey}\" references model \"${crossRef.namespace}:${crossRef.model}\" which does not exist in domain.namespaces`);\n\t}\n}\nfunction validateVariantsAndBases(modelIndex, errors) {\n\tfor (const { namespaceId, name: modelName, model } of iterateIndexedModels(modelIndex)) {\n\t\tif (model.variants) for (const variantName of Object.keys(model.variants)) {\n\t\t\tconst variantEntry = lookupModel(modelIndex, {\n\t\t\t\tnamespace: namespaceId,\n\t\t\t\tmodel: variantName\n\t\t\t});\n\t\t\tif (!variantEntry) {\n\t\t\t\terrors.push(`Model \"${namespaceId}:${modelName}\" lists variant \"${variantName}\" which does not exist at that namespace coordinate`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst variantBase = variantEntry.model.base;\n\t\t\tif (variantBase?.namespace !== namespaceId || variantBase?.model !== modelName) errors.push(`Variant \"${namespaceId}:${variantName}\" has base \"${variantBase?.namespace ?? \"?\"}:${variantBase?.model ?? \"(none)\"}\" but expected \"${namespaceId}:${modelName}\"`);\n\t\t}\n\t\tif (model.base) {\n\t\t\tconst baseEntry = lookupModel(modelIndex, model.base);\n\t\t\tif (!baseEntry) {\n\t\t\t\terrors.push(`Model \"${namespaceId}:${modelName}\" has base \"${model.base.namespace}:${model.base.model}\" which does not exist in domain.namespaces`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!baseEntry.model.variants || !Object.hasOwn(baseEntry.model.variants, modelName)) errors.push(`Model \"${namespaceId}:${modelName}\" has base \"${model.base.namespace}:${model.base.model}\" which does not list it as a variant`);\n\t\t}\n\t}\n}\nfunction validateRelationTargets(modelIndex, errors) {\n\tfor (const { namespaceId, name: modelName, model } of iterateIndexedModels(modelIndex)) for (const [relName, relation] of Object.entries(model.relations ?? {})) {\n\t\tif (relation.to.space !== void 0) continue;\n\t\tif (!lookupModel(modelIndex, relation.to)) errors.push(`Relation \"${relName}\" on model \"${namespaceId}:${modelName}\" targets \"${relation.to.namespace}:${relation.to.model}\" which does not exist in domain.namespaces`);\n\t}\n}\nfunction relationKindLabel(relation) {\n\treturn relation.on === void 0 ? \"embed relation\" : `${relation.cardinality} relation`;\n}\nfunction validateRelationNullability(modelIndex, errors) {\n\tfor (const { namespaceId, name: modelName, model } of iterateIndexedModels(modelIndex)) for (const [relName, relation] of Object.entries(model.relations ?? {})) {\n\t\tconst location = `Relation \"${relName}\" on model \"${namespaceId}:${modelName}\"`;\n\t\tif (relation.on !== void 0 && (relation.cardinality === \"1:1\" || relation.cardinality === \"N:1\")) {\n\t\t\tif (relation.nullable !== void 0 && typeof relation.nullable !== \"boolean\") errors.push(`${location} is a ${relation.cardinality} relation and its \"nullable\" must be a boolean`);\n\t\t\tcontinue;\n\t\t}\n\t\tif (relation.nullable !== void 0) errors.push(`${location} is a ${relationKindLabel(relation)} and must not carry \"nullable\"`);\n\t}\n}\nfunction validateDiscriminators(modelIndex, errors) {\n\tfor (const { namespaceId, name: modelName, model } of iterateIndexedModels(modelIndex)) {\n\t\tif (model.discriminator) {\n\t\t\tif (!model.variants || Object.keys(model.variants).length === 0) errors.push(`Model \"${namespaceId}:${modelName}\" has discriminator but no variants`);\n\t\t\tif (!Object.hasOwn(model.fields, model.discriminator.field)) errors.push(`Discriminator field \"${model.discriminator.field}\" is not a field on model \"${namespaceId}:${modelName}\"`);\n\t\t}\n\t\tif (model.variants && Object.keys(model.variants).length > 0 && !model.discriminator) errors.push(`Model \"${namespaceId}:${modelName}\" has variants but no discriminator`);\n\t\tif (model.base) {\n\t\t\tif (model.discriminator) errors.push(`Model \"${namespaceId}:${modelName}\" has base and must not have discriminator`);\n\t\t\tif (model.variants && Object.keys(model.variants).length > 0) errors.push(`Model \"${namespaceId}:${modelName}\" has base and must not have variants`);\n\t\t}\n\t}\n}\nfunction validateOwnership(contract, modelIndex, errors) {\n\tfor (const { namespaceId, name: modelName, model } of iterateIndexedModels(modelIndex)) {\n\t\tif (!model.owner) continue;\n\t\tif (model.owner === modelName) errors.push(`Model \"${namespaceId}:${modelName}\" cannot own itself`);\n\t\tif (!lookupModel(modelIndex, {\n\t\t\tnamespace: namespaceId,\n\t\t\tmodel: model.owner\n\t\t})) errors.push(`Model \"${namespaceId}:${modelName}\" has owner \"${namespaceId}:${model.owner}\" which does not exist in domain.namespaces`);\n\t\tfor (const [rootKey, rootRef] of Object.entries(contract.roots)) if (rootRef.namespace === namespaceId && rootRef.model === modelName) errors.push(`Owned model \"${namespaceId}:${modelName}\" must not appear in roots (found as root \"${rootKey}\")`);\n\t}\n}\nfunction validateValueObjectReferences(contract, errors) {\n\tconst voNamesByNamespace = /* @__PURE__ */ new Map();\n\tfor (const [namespaceKey, namespace] of Object.entries(contract.domain.namespaces)) {\n\t\tconst namespaceId = asNamespaceId(namespaceKey);\n\t\tvoNamesByNamespace.set(namespaceId, new Set(Object.keys(namespace.valueObjects ?? {})));\n\t}\n\tfunction checkType(type, location, namespaceId) {\n\t\tif (!type) return;\n\t\tconst voNames = voNamesByNamespace.get(namespaceId) ?? /* @__PURE__ */ new Set();\n\t\tif (type.kind === \"valueObject\" && type.name && !voNames.has(type.name)) {\n\t\t\terrors.push(`${location} references value object \"${namespaceId}:${type.name}\" which does not exist in that namespace's valueObjects`);\n\t\t\treturn;\n\t\t}\n\t\tif (type.kind === \"union\") for (const member of type.members ?? []) checkType(member, location, namespaceId);\n\t}\n\tfor (const [namespaceKey, namespace] of Object.entries(contract.domain.namespaces)) {\n\t\tconst namespaceId = asNamespaceId(namespaceKey);\n\t\tfor (const [modelName, model] of Object.entries(namespace.models)) for (const [fieldName, field] of Object.entries(model.fields)) checkType(blindCast(field)?.type, `Model \"${namespaceId}:${modelName}\" field \"${fieldName}\"`, namespaceId);\n\t\tfor (const [voName, vo] of Object.entries(namespace.valueObjects ?? {})) for (const [fieldName, field] of Object.entries(vo.fields)) checkType(blindCast(field)?.type, `Value object \"${namespaceId}:${voName}\" field \"${fieldName}\"`, namespaceId);\n\t}\n}\nfunction validateFieldModifiers(modelIndex, contract, errors) {\n\tfunction validateField(location, field) {\n\t\tconst candidate = blindCast(field);\n\t\tconst many = candidate?.many;\n\t\tconst isList = typeof many === \"object\" && many !== null && !Array.isArray(many) && Object.keys(many).length === 1 && \"elementNullable\" in many && typeof many.elementNullable === \"boolean\";\n\t\tif (many !== void 0 && many !== false && !isList) errors.push(`${location} has invalid \"many\"; expected false or an elementNullable descriptor`);\n\t\tif (candidate?.elementNullable !== void 0) errors.push(`${location} cannot have sibling \"elementNullable\"; put it inside \"many\"`);\n\t\tif (isList && candidate?.dict) errors.push(`${location} cannot have both \"many\" and \"dict\" modifiers`);\n\t}\n\tfor (const { namespaceId, name: modelName, model } of iterateIndexedModels(modelIndex)) for (const [fieldName, field] of Object.entries(model.fields)) validateField(`Model \"${namespaceId}:${modelName}\" field \"${fieldName}\"`, field);\n\tfor (const [namespaceKey, namespace] of Object.entries(contract.domain.namespaces)) {\n\t\tconst namespaceId = asNamespaceId(namespaceKey);\n\t\tfor (const [voName, vo] of Object.entries(namespace.valueObjects ?? {})) for (const [fieldName, field] of Object.entries(vo.fields)) validateField(`Value object \"${namespaceId}:${voName}\" field \"${fieldName}\"`, field);\n\t}\n}\n//#endregion\nexport { validateContractDomain };\n\n//# sourceMappingURL=validate-domain.mjs.map"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { D as CrossReference, E as ContractWithDomain } from "./domain-envelope-gHv58hD1-B8mta2A6.mjs";
1
+ import { D as CrossReference, E as ContractWithDomain } from "./domain-envelope-C2vVIWGK-C5x7cBpU.mjs";
2
2
  //#region ../../../1-framework/0-foundation/contract/dist/validate-domain.d.mts
3
3
  //#region src/validate-domain.d.ts
4
4
  interface DomainRelationShape {
@@ -23,4 +23,4 @@ interface DomainContractShape extends ContractWithDomain {
23
23
  declare function validateContractDomain(contract: DomainContractShape): void;
24
24
  //#endregion
25
25
  export { DomainModelShape as n, validateContractDomain as r, DomainContractShape as t };
26
- //# sourceMappingURL=validate-domain-DiEWAx3K.d.mts.map
26
+ //# sourceMappingURL=validate-domain-M93ZRMRA.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-domain-DiEWAx3K.d.mts","names":[],"sources":["../../../../1-framework/0-foundation/contract/dist/validate-domain.d.mts"],"mappings":";;;UAEU;WACC,IAAI;WACJ;WACA;WACA;;UAED;WACC,QAAQ;WACR,YAAY,eAAe;WAC3B;aACE;;WAEF,WAAW;WACX,OAAO;WACP;;UAED,4BAA4B;WAC3B,OAAO,eAAe;;iBAEhB,uBAAuB,UAAU"}
1
+ {"version":3,"file":"validate-domain-M93ZRMRA.d.mts","names":[],"sources":["../../../../1-framework/0-foundation/contract/dist/validate-domain.d.mts"],"mappings":";;;UAEU;WACC,IAAI;WACJ;WACA;WACA;;UAED;WACC,QAAQ;WACR,YAAY,eAAe;WAC3B;aACE;;WAEF,WAAW;WACX,OAAO;WACP;;UAED,4BAA4B;WAC3B,OAAO,eAAe;;iBAEhB,uBAAuB,UAAU"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/orm-framework",
3
- "version": "8.0.0-rc.14-dev.13",
3
+ "version": "8.0.0-rc.14-dev.15",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -16,20 +16,20 @@
16
16
  "uniku": "^0.5.0"
17
17
  },
18
18
  "devDependencies": {
19
- "@internal/config": "8.0.0-rc.14-dev.13",
20
- "@internal/contract": "8.0.0-rc.14-dev.13",
21
- "@internal/contract-authoring": "8.0.0-rc.14-dev.13",
22
- "@internal/errors": "8.0.0-rc.14-dev.13",
23
- "@internal/framework-components": "8.0.0-rc.14-dev.13",
24
- "@internal/ids": "8.0.0-rc.14-dev.13",
25
- "@internal/operations": "8.0.0-rc.14-dev.13",
26
- "@internal/psl-parser": "8.0.0-rc.14-dev.13",
27
- "@internal/psl-printer": "8.0.0-rc.14-dev.13",
28
- "@internal/ts-render": "8.0.0-rc.14-dev.13",
29
- "@repo/tsconfig": "8.0.0-rc.14-dev.13",
30
- "@internal/publish-surface": "8.0.0-rc.14-dev.13",
31
- "@repo/tsdown": "8.0.0-rc.14-dev.13",
32
- "@internal/utils": "8.0.0-rc.14-dev.13",
19
+ "@internal/config": "8.0.0-rc.14-dev.15",
20
+ "@internal/contract": "8.0.0-rc.14-dev.15",
21
+ "@internal/contract-authoring": "8.0.0-rc.14-dev.15",
22
+ "@internal/errors": "8.0.0-rc.14-dev.15",
23
+ "@internal/framework-components": "8.0.0-rc.14-dev.15",
24
+ "@internal/ids": "8.0.0-rc.14-dev.15",
25
+ "@internal/operations": "8.0.0-rc.14-dev.15",
26
+ "@internal/psl-parser": "8.0.0-rc.14-dev.15",
27
+ "@internal/psl-printer": "8.0.0-rc.14-dev.15",
28
+ "@internal/ts-render": "8.0.0-rc.14-dev.15",
29
+ "@repo/tsconfig": "8.0.0-rc.14-dev.15",
30
+ "@internal/publish-surface": "8.0.0-rc.14-dev.15",
31
+ "@repo/tsdown": "8.0.0-rc.14-dev.15",
32
+ "@internal/utils": "8.0.0-rc.14-dev.15",
33
33
  "tsdown": "0.22.14",
34
34
  "typescript": "5.9.3",
35
35
  "vitest": "5.0.0-rc.2"
@@ -1 +0,0 @@
1
- {"version":3,"file":"apply-specifier-default-control-policy-9vsCWnn8.d.mts","names":[],"sources":["../../../../1-framework/0-foundation/contract/dist/apply-specifier-default-control-policy.d.mts"],"mappings":";;;iBAEiB,mCAAmC,UAAU,UAAU,kBAAkB,4BAA4B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"declarations-CgS5vnfJ-Dhi3X7oU.mjs","names":["#segmentBefore","#segmentAfter","#separatorCount"],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/declarations-CgS5vnfJ.mjs"],"sourcesContent":["import { r as isTerminatedStringLiteral } from \"./tokenizer-BMz7z2KR.mjs\";\nimport { i as findFirstChild, n as filterChildren, o as SyntaxNode, r as findChildToken } from \"./ast-helpers-2XRnkQEO.mjs\";\nimport { canonicalizeTaggedLiteralBody, resolvePslBacktickEscapes } from \"@internal/framework-components/control\";\n//#region src/syntax/ast/identifier.ts\nvar IdentifierAst = class IdentifierAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\ttoken() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tname() {\n\t\treturn this.token()?.text;\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"Identifier\" ? new IdentifierAst(node) : void 0;\n\t}\n};\n//#endregion\n//#region src/syntax/ast/qualified-name.ts\n/** A namespace-qualified name, e.g. `pgvector.Vector` or `supabase:auth.User`. */\nvar QualifiedNameAst = class QualifiedNameAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\t#segmentBefore(boundary) {\n\t\tlet found;\n\t\tfor (const segment of filterChildren(this.syntax, IdentifierAst.cast)) {\n\t\t\tif (segment.syntax.offset >= boundary) break;\n\t\t\tfound = segment;\n\t\t}\n\t\treturn found;\n\t}\n\t#segmentAfter(boundary) {\n\t\tfor (const segment of filterChildren(this.syntax, IdentifierAst.cast)) if (segment.syntax.offset > boundary) return segment;\n\t}\n\t#separatorCount(kind) {\n\t\tlet count = 0;\n\t\tfor (const child of this.syntax.children()) if (!(child instanceof SyntaxNode) && child.kind === kind) count++;\n\t\treturn count;\n\t}\n\tcolon() {\n\t\treturn findChildToken(this.syntax, \"Colon\");\n\t}\n\tdot() {\n\t\treturn findChildToken(this.syntax, \"Dot\");\n\t}\n\tspace() {\n\t\tconst colon = this.colon();\n\t\tif (!colon) return void 0;\n\t\treturn this.#segmentBefore(colon.offset);\n\t}\n\tnamespace() {\n\t\tconst dot = this.dot();\n\t\tif (!dot) return void 0;\n\t\treturn this.#segmentBefore(dot.offset);\n\t}\n\tidentifier() {\n\t\tconst dot = this.dot();\n\t\tif (dot) return this.#segmentAfter(dot.offset);\n\t\tconst colon = this.colon();\n\t\tif (colon) return this.#segmentAfter(colon.offset);\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\t/**\n\t* Every identifier segment, in source order. A bare `Vector` yields\n\t* `['Vector']`; a qualified `pgvector.Vector` yields `['pgvector', 'Vector']`.\n\t*/\n\tpath() {\n\t\tconst segments = [];\n\t\tfor (const segment of filterChildren(this.syntax, IdentifierAst.cast)) {\n\t\t\tconst text = segment.token()?.text;\n\t\t\tif (text !== void 0) segments.push(text);\n\t\t}\n\t\treturn segments;\n\t}\n\t/** True iff this is a single unqualified identifier whose text equals `name`. */\n\tisSimpleName(name) {\n\t\tif (this.dot() !== void 0 || this.colon() !== void 0) return false;\n\t\treturn this.identifier()?.token()?.text === name;\n\t}\n\t/**\n\t* Flags a malformed name with more qualifier segments than allowed (a second\n\t* `:`-space or a second `.`-namespace).\n\t*/\n\tisOverQualified() {\n\t\treturn this.#separatorCount(\"Dot\") > 1 || this.#separatorCount(\"Colon\") > 1;\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"QualifiedName\" ? new QualifiedNameAst(node) : void 0;\n\t}\n};\n//#endregion\n//#region src/syntax/ast/expressions.ts\nvar FunctionCallAst = class FunctionCallAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\t/** The callee when it is a bare name, such as `now` in `now()`; `undefined` when the callee is dotted. */\n\tname() {\n\t\treturn findFirstChild(this.syntax, QualifiedNameAst.cast);\n\t}\n\t/**\n\t* The callee's segments, in source order. A bare `Vector(…)` yields\n\t* `['Vector']`; `pgvector.Vector(…)` yields `['pgvector', 'Vector']`;\n\t* `address.geo.lat(…)` yields `['address', 'geo', 'lat']`. Empty when the\n\t* call carries no identifier.\n\t*/\n\tpath() {\n\t\treturn segmentNames((this.name() ?? this.memberPath())?.syntax ?? this.syntax);\n\t}\n\t/** The callee when it is dotted, such as `address.city` in `address.city(sort: Asc)`; `undefined` for a bare callee. */\n\tmemberPath() {\n\t\treturn findFirstChild(this.syntax, PathExprAst.cast);\n\t}\n\tlparen() {\n\t\treturn findChildToken(this.syntax, \"LParen\");\n\t}\n\trparen() {\n\t\treturn findChildToken(this.syntax, \"RParen\");\n\t}\n\t*args() {\n\t\tyield* filterChildren(this.syntax, AttributeArgAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"FunctionCall\" ? new FunctionCallAst(node) : void 0;\n\t}\n};\nfunction segmentNames(node) {\n\tconst segments = [];\n\tfor (const segment of filterChildren(node, IdentifierAst.cast)) {\n\t\tconst text = segment.token()?.text;\n\t\tif (text !== void 0) segments.push(text);\n\t}\n\treturn segments;\n}\n/** A dotted member path in expression position, such as `address.city` in `@@index([address.city])`. */\nvar PathExprAst = class PathExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\t*segments() {\n\t\tyield* filterChildren(this.syntax, IdentifierAst.cast);\n\t}\n\t/** The segment names, in source order: `['address', 'city']` for `address.city`. */\n\tpath() {\n\t\treturn segmentNames(this.syntax);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"PathExpr\" ? new PathExprAst(node) : void 0;\n\t}\n};\nvar ArrayLiteralAst = class ArrayLiteralAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tlbracket() {\n\t\treturn findChildToken(this.syntax, \"LBracket\");\n\t}\n\trbracket() {\n\t\treturn findChildToken(this.syntax, \"RBracket\");\n\t}\n\t*elements() {\n\t\tyield* filterChildren(this.syntax, castExpression);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"ArrayLiteral\" ? new ArrayLiteralAst(node) : void 0;\n\t}\n};\nconst HEX = /^[0-9a-fA-F]+$/;\nfunction decodeFixedHex(raw, start, width) {\n\tif (start + width > raw.length) return void 0;\n\tconst hex = raw.slice(start, start + width);\n\tif (!HEX.test(hex)) return void 0;\n\treturn String.fromCharCode(Number.parseInt(hex, 16));\n}\nfunction decodeStringLiteral(raw) {\n\tlet out = \"\";\n\tlet i = 0;\n\twhile (i < raw.length) {\n\t\tconst ch = raw.charAt(i);\n\t\tif (ch !== \"\\\\\" || i + 1 >= raw.length) {\n\t\t\tout += ch;\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\t\tconst next = raw.charAt(i + 1);\n\t\tswitch (next) {\n\t\t\tcase \"/\":\n\t\t\t\tout += \"/\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"b\":\n\t\t\t\tout += \"\\b\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"f\":\n\t\t\t\tout += \"\\f\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"n\":\n\t\t\t\tout += \"\\n\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"r\":\n\t\t\t\tout += \"\\r\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"t\":\n\t\t\t\tout += \"\t\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"\\\"\":\n\t\t\t\tout += \"\\\"\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"'\":\n\t\t\t\tout += \"'\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"\\\\\":\n\t\t\t\tout += \"\\\\\";\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t\tcase \"x\": {\n\t\t\t\tconst decoded = decodeFixedHex(raw, i + 2, 2);\n\t\t\t\tif (decoded === void 0) {\n\t\t\t\t\tout += \"\\\\x\";\n\t\t\t\t\ti += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tout += decoded;\n\t\t\t\ti += 4;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcase \"u\": {\n\t\t\t\tconst decoded = decodeFixedHex(raw, i + 2, 4);\n\t\t\t\tif (decoded === void 0) {\n\t\t\t\t\tout += \"\\\\u\";\n\t\t\t\t\ti += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tout += decoded;\n\t\t\t\ti += 6;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tout += `\\\\${next}`;\n\t\t\t\ti += 2;\n\t\t\t\tcontinue;\n\t\t}\n\t}\n\treturn out;\n}\nvar StringLiteralExprAst = class StringLiteralExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\ttoken() {\n\t\treturn findChildToken(this.syntax, \"StringLiteral\");\n\t}\n\tquote() {\n\t\tconst quote = this.token()?.text.charAt(0);\n\t\treturn quote === \"\\\"\" || quote === \"'\" || quote === \"`\" ? quote : void 0;\n\t}\n\t/**\n\t* The decoded string. A `\"` or `'` string resolves the usual escapes; a backtick string resolves\n\t* only `` \\` `` and `\\\\`, keeping every other backslash sequence as written.\n\t*/\n\tvalue() {\n\t\tconst tok = this.token();\n\t\tif (!tok) return void 0;\n\t\tconst raw = isTerminatedStringLiteral(tok.text) ? tok.text.slice(1, -1) : tok.text.slice(1);\n\t\treturn this.quote() === \"`\" ? resolvePslBacktickEscapes(raw) : decodeStringLiteral(raw);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"StringLiteralExpr\" ? new StringLiteralExprAst(node) : void 0;\n\t}\n};\n/** `` tag`body` ``, `tag\"body\"`, or `tag'body'`: a qualified-name tag followed by a string literal. */\nvar TaggedLiteralExprAst = class TaggedLiteralExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\ttag() {\n\t\treturn findFirstChild(this.syntax, QualifiedNameAst.cast);\n\t}\n\t/** The tag without trivia, e.g. `postgis.geometry`. */\n\ttagName() {\n\t\tconst tag = this.tag();\n\t\tconst space = tag?.space()?.name();\n\t\tconst namespace = tag?.namespace()?.name();\n\t\treturn (space === void 0 ? \"\" : `${space}:`) + (namespace === void 0 ? \"\" : `${namespace}.`) + (tag?.identifier()?.name() ?? \"\");\n\t}\n\tliteral() {\n\t\treturn findFirstChild(this.syntax, StringLiteralExprAst.cast);\n\t}\n\tcanonicalization() {\n\t\treturn canonicalizeTaggedLiteralBody(this.literal()?.value() ?? \"\");\n\t}\n\t/** The canonical body shared with the TypeScript `sql` tag, or `undefined` when canonicalization fails. */\n\tbody() {\n\t\tconst result = this.canonicalization();\n\t\treturn result.ok ? result.body : void 0;\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"TaggedLiteral\" ? new TaggedLiteralExprAst(node) : void 0;\n\t}\n};\nvar NumberLiteralExprAst = class NumberLiteralExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\ttoken() {\n\t\treturn findChildToken(this.syntax, \"NumberLiteral\");\n\t}\n\tvalue() {\n\t\tconst tok = this.token();\n\t\tif (!tok) return void 0;\n\t\treturn Number(tok.text);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"NumberLiteralExpr\" ? new NumberLiteralExprAst(node) : void 0;\n\t}\n};\nvar BooleanLiteralExprAst = class BooleanLiteralExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\ttoken() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tvalue() {\n\t\tconst tok = this.token();\n\t\tif (!tok) return void 0;\n\t\tif (tok.text === \"true\") return true;\n\t\tif (tok.text === \"false\") return false;\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"BooleanLiteralExpr\" ? new BooleanLiteralExprAst(node) : void 0;\n\t}\n};\nvar ObjectLiteralExprAst = class ObjectLiteralExprAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*fields() {\n\t\tyield* filterChildren(this.syntax, ObjectFieldAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"ObjectLiteralExpr\" ? new ObjectLiteralExprAst(node) : void 0;\n\t}\n};\nvar ObjectFieldAst = class ObjectFieldAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkey() {\n\t\tfor (const child of this.syntax.children()) {\n\t\t\tif (!(child instanceof SyntaxNode)) {\n\t\t\t\tif (child.kind === \"Colon\") break;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn IdentifierAst.cast(child);\n\t\t}\n\t}\n\t/**\n\t* The field's logical key name, unquoted. An identifier key (`length:`) yields\n\t* its text; a string-literal key (`\"length\":`) yields the decoded string.\n\t* `undefined` when the field carries no key node.\n\t*/\n\tkeyName() {\n\t\tfor (const child of this.syntax.children()) {\n\t\t\tif (!(child instanceof SyntaxNode)) {\n\t\t\t\tif (child.kind === \"Colon\") break;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst identifier = IdentifierAst.cast(child);\n\t\t\tif (identifier) return identifier.token()?.text;\n\t\t\tconst stringKey = StringLiteralExprAst.cast(child);\n\t\t\tif (stringKey) return stringKey.value();\n\t\t\treturn;\n\t\t}\n\t}\n\tcolon() {\n\t\treturn findChildToken(this.syntax, \"Colon\");\n\t}\n\tvalue() {\n\t\tif (this.colon()) {\n\t\t\tlet pastColon = false;\n\t\t\tfor (const child of this.syntax.children()) {\n\t\t\t\tif (!(child instanceof SyntaxNode)) {\n\t\t\t\t\tif (child.kind === \"Colon\") pastColon = true;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (pastColon) {\n\t\t\t\t\tconst expr = castExpression(child);\n\t\t\t\t\tif (expr) return expr;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\treturn findFirstChild(this.syntax, castExpression);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"ObjectField\" ? new ObjectFieldAst(node) : void 0;\n\t}\n};\n/** Every dotted path in an expression: the expression itself, a dotted callee, or a path inside a list, record or call argument. */\nfunction dottedPathsIn(expression) {\n\tconst paths = [];\n\tfor (const element of expression.syntax.descendants()) {\n\t\tconst path = element instanceof SyntaxNode ? PathExprAst.cast(element) : void 0;\n\t\tif (path !== void 0) paths.push(path);\n\t}\n\treturn paths;\n}\nfunction castExpression(node) {\n\treturn FunctionCallAst.cast(node) ?? ArrayLiteralAst.cast(node) ?? StringLiteralExprAst.cast(node) ?? TaggedLiteralExprAst.cast(node) ?? NumberLiteralExprAst.cast(node) ?? BooleanLiteralExprAst.cast(node) ?? ObjectLiteralExprAst.cast(node) ?? PathExprAst.cast(node) ?? IdentifierAst.cast(node);\n}\nvar AttributeArgAst = class AttributeArgAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tname() {\n\t\tif (!this.colon()) return void 0;\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tcolon() {\n\t\treturn findChildToken(this.syntax, \"Colon\");\n\t}\n\tvalue() {\n\t\tif (this.colon()) {\n\t\t\tlet pastColon = false;\n\t\t\tfor (const child of this.syntax.children()) {\n\t\t\t\tif (!(child instanceof SyntaxNode)) {\n\t\t\t\t\tif (child.kind === \"Colon\") pastColon = true;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (pastColon) {\n\t\t\t\t\tconst expr = castExpression(child);\n\t\t\t\t\tif (expr) return expr;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\treturn findFirstChild(this.syntax, castExpression);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"AttributeArg\" ? new AttributeArgAst(node) : void 0;\n\t}\n};\n//#endregion\n//#region src/syntax/ast/attributes.ts\nvar AttributeArgListAst = class AttributeArgListAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tlparen() {\n\t\treturn findChildToken(this.syntax, \"LParen\");\n\t}\n\trparen() {\n\t\treturn findChildToken(this.syntax, \"RParen\");\n\t}\n\t*args() {\n\t\tyield* filterChildren(this.syntax, AttributeArgAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"AttributeArgList\" ? new AttributeArgListAst(node) : void 0;\n\t}\n};\nvar FieldAttributeAst = class FieldAttributeAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tat() {\n\t\treturn findChildToken(this.syntax, \"At\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, QualifiedNameAst.cast);\n\t}\n\targList() {\n\t\treturn findFirstChild(this.syntax, AttributeArgListAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"FieldAttribute\" ? new FieldAttributeAst(node) : void 0;\n\t}\n};\nvar ModelAttributeAst = class ModelAttributeAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tdoubleAt() {\n\t\treturn findChildToken(this.syntax, \"DoubleAt\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, QualifiedNameAst.cast);\n\t}\n\targList() {\n\t\treturn findFirstChild(this.syntax, AttributeArgListAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"ModelAttribute\" ? new ModelAttributeAst(node) : void 0;\n\t}\n};\n//#endregion\n//#region src/syntax/ast/type-annotation.ts\nvar TypeAnnotationAst = class TypeAnnotationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\t/** The annotation's reference, doubling as the constructor callee when an {@link argList} follows. */\n\tname() {\n\t\treturn findFirstChild(this.syntax, QualifiedNameAst.cast);\n\t}\n\t/** Present when the annotation is a constructor (`Vector(1536)`) rather than a plain reference. */\n\targList() {\n\t\treturn findFirstChild(this.syntax, AttributeArgListAst.cast);\n\t}\n\tisConstructor() {\n\t\treturn this.argList() !== void 0;\n\t}\n\tlbracket() {\n\t\treturn findChildToken(this.syntax, \"LBracket\");\n\t}\n\trbracket() {\n\t\treturn findChildToken(this.syntax, \"RBracket\");\n\t}\n\tquestionMark() {\n\t\treturn findChildToken(this.syntax, \"Question\");\n\t}\n\tisList() {\n\t\treturn this.lbracket() !== void 0;\n\t}\n\tisOptional() {\n\t\treturn this.questionMark() !== void 0;\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"TypeAnnotation\" ? new TypeAnnotationAst(node) : void 0;\n\t}\n};\n//#endregion\n//#region src/syntax/ast/declarations.ts\nfunction castNamespaceMember(node) {\n\treturn ModelDeclarationAst.cast(node) ?? CompositeTypeDeclarationAst.cast(node) ?? GenericBlockDeclarationAst.cast(node);\n}\nvar DocumentAst = class DocumentAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\t*declarations() {\n\t\tyield* filterChildren(this.syntax, (node) => castNamespaceMember(node) ?? TypesBlockAst.cast(node) ?? NamespaceDeclarationAst.cast(node));\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"Document\" ? new DocumentAst(node) : void 0;\n\t}\n};\nvar ModelDeclarationAst = class ModelDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkeyword() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*fields() {\n\t\tyield* filterChildren(this.syntax, FieldDeclarationAst.cast);\n\t}\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, ModelAttributeAst.cast);\n\t}\n\t*members() {\n\t\tyield* filterChildren(this.syntax, (node) => FieldDeclarationAst.cast(node) ?? ModelAttributeAst.cast(node));\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"ModelDeclaration\" ? new ModelDeclarationAst(node) : void 0;\n\t}\n};\nvar CompositeTypeDeclarationAst = class CompositeTypeDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkeyword() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*fields() {\n\t\tyield* filterChildren(this.syntax, FieldDeclarationAst.cast);\n\t}\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, ModelAttributeAst.cast);\n\t}\n\t*members() {\n\t\tyield* filterChildren(this.syntax, (node) => FieldDeclarationAst.cast(node) ?? ModelAttributeAst.cast(node));\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"CompositeTypeDeclaration\" ? new CompositeTypeDeclarationAst(node) : void 0;\n\t}\n};\nvar NamespaceDeclarationAst = class NamespaceDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkeyword() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*declarations() {\n\t\tyield* filterChildren(this.syntax, castNamespaceMember);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"Namespace\" ? new NamespaceDeclarationAst(node) : void 0;\n\t}\n};\nvar TypesBlockAst = class TypesBlockAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkeyword() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*declarations() {\n\t\tyield* filterChildren(this.syntax, NamedTypeDeclarationAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"TypesBlock\" ? new TypesBlockAst(node) : void 0;\n\t}\n};\nvar GenericBlockDeclarationAst = class GenericBlockDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkeyword() {\n\t\treturn findChildToken(this.syntax, \"Ident\");\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tlbrace() {\n\t\treturn findChildToken(this.syntax, \"LBrace\");\n\t}\n\trbrace() {\n\t\treturn findChildToken(this.syntax, \"RBrace\");\n\t}\n\t*entries() {\n\t\tyield* filterChildren(this.syntax, KeyValuePairAst.cast);\n\t}\n\t/** Field lines of a `view` body. Empty for every other generic block. */\n\t*fields() {\n\t\tyield* filterChildren(this.syntax, FieldDeclarationAst.cast);\n\t}\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, ModelAttributeAst.cast);\n\t}\n\t*members() {\n\t\tyield* filterChildren(this.syntax, (node) => KeyValuePairAst.cast(node) ?? ModelAttributeAst.cast(node));\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"GenericBlockDeclaration\" ? new GenericBlockDeclarationAst(node) : void 0;\n\t}\n};\nvar KeyValuePairAst = class KeyValuePairAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tkey() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tequals() {\n\t\treturn findChildToken(this.syntax, \"Equals\");\n\t}\n\tvalue() {\n\t\tlet pastEquals = false;\n\t\tfor (const child of this.syntax.children()) {\n\t\t\tif (!(child instanceof SyntaxNode)) {\n\t\t\t\tif (child.kind === \"Equals\") pastEquals = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (pastEquals) {\n\t\t\t\tconst expr = castExpression(child);\n\t\t\t\tif (expr) return expr;\n\t\t\t}\n\t\t}\n\t}\n\t/** `@` attributes after the key or value, as in `USER @map(\"user\")`. */\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, FieldAttributeAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"KeyValuePair\" ? new KeyValuePairAst(node) : void 0;\n\t}\n};\nvar FieldDeclarationAst = class FieldDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\ttypeAnnotation() {\n\t\treturn findFirstChild(this.syntax, TypeAnnotationAst.cast);\n\t}\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, FieldAttributeAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"FieldDeclaration\" ? new FieldDeclarationAst(node) : void 0;\n\t}\n};\nvar NamedTypeDeclarationAst = class NamedTypeDeclarationAst {\n\tsyntax;\n\tconstructor(syntax) {\n\t\tthis.syntax = syntax;\n\t}\n\tname() {\n\t\treturn findFirstChild(this.syntax, IdentifierAst.cast);\n\t}\n\tequals() {\n\t\treturn findChildToken(this.syntax, \"Equals\");\n\t}\n\ttypeAnnotation() {\n\t\treturn findFirstChild(this.syntax, TypeAnnotationAst.cast);\n\t}\n\t*attributes() {\n\t\tyield* filterChildren(this.syntax, FieldAttributeAst.cast);\n\t}\n\tstatic cast(node) {\n\t\treturn node.kind === \"NamedTypeDeclaration\" ? new NamedTypeDeclarationAst(node) : void 0;\n\t}\n};\n//#endregion\nexport { TaggedLiteralExprAst as C, IdentifierAst as D, QualifiedNameAst as E, StringLiteralExprAst as S, dottedPathsIn as T, FunctionCallAst as _, KeyValuePairAst as a, ObjectLiteralExprAst as b, NamespaceDeclarationAst as c, AttributeArgListAst as d, FieldAttributeAst as f, BooleanLiteralExprAst as g, AttributeArgAst as h, GenericBlockDeclarationAst as i, TypesBlockAst as l, ArrayLiteralAst as m, DocumentAst as n, ModelDeclarationAst as o, ModelAttributeAst as p, FieldDeclarationAst as r, NamedTypeDeclarationAst as s, CompositeTypeDeclarationAst as t, TypeAnnotationAst as u, NumberLiteralExprAst as v, castExpression as w, PathExprAst as x, ObjectFieldAst as y };\n\n//# sourceMappingURL=declarations-CgS5vnfJ.mjs.map"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import "./types-import-spec-D-EPunhV-DxmpFe3l.mjs";
2
- import "./emission-types-CND9Xi8O-BxLcJq2c.mjs";
@@ -1 +0,0 @@
1
- {"version":3,"file":"hashing-CjTNYBuj.mjs","names":[],"sources":["../../../../1-framework/0-foundation/contract/dist/hashing.mjs"],"sourcesContent":["import { t as isPlainRecord } from \"./is-plain-record-CUofyVQ7.mjs\";\nimport { i as compareCodeUnits, n as matchesPathPattern } from \"./canonicalization-path-match-D88xLEq6.mjs\";\nimport { blindCast, castAs } from \"@internal/utils/casts\";\nimport { createHash } from \"node:crypto\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { isArrayEqual } from \"@internal/utils/array-equal\";\n//#region src/canonicalization.ts\nconst DOMAIN_NAMESPACE_SLOT_PATTERN = [\n\t\"domain\",\n\t\"namespaces\",\n\t\"*\"\n];\nconst DOMAIN_MODELS_CONTAINER_PATTERN = [\n\t\"domain\",\n\t\"namespaces\",\n\t\"*\",\n\t\"models\"\n];\nconst DOMAIN_MODEL_RELATIONS_PATTERN = [\n\t\"domain\",\n\t\"namespaces\",\n\t\"*\",\n\t\"models\",\n\t\"*\",\n\t\"relations\"\n];\nconst DOMAIN_MODEL_STORAGE_PATTERN = [\n\t\"domain\",\n\t\"namespaces\",\n\t\"*\",\n\t\"models\",\n\t\"*\",\n\t\"storage\"\n];\nconst STORAGE_NAMESPACE_ENTRIES_PATTERN = [\n\t\"storage\",\n\t\"namespaces\",\n\t\"*\",\n\t\"entries\"\n];\nconst TOP_LEVEL_ORDER = [\n\t\"schemaVersion\",\n\t\"canonicalVersion\",\n\t\"targetFamily\",\n\t\"target\",\n\t\"profileHash\",\n\t\"roots\",\n\t\"domain\",\n\t\"storage\",\n\t\"execution\",\n\t\"capabilities\",\n\t\"extensions\",\n\t\"defaultControlPolicy\",\n\t\"meta\"\n];\nfunction isDefaultValue(value) {\n\tif (value === false) return true;\n\tif (value === null) return false;\n\tif (Array.isArray(value) && value.length === 0) return true;\n\tif (typeof value === \"object\" && value !== null) return Object.keys(value).length === 0;\n\treturn false;\n}\nfunction omitDefaults(obj, path, shouldPreserveEmpty) {\n\tif (obj === null || typeof obj !== \"object\") return obj;\n\tif (Array.isArray(obj)) return obj.map((item) => omitDefaults(item, path, shouldPreserveEmpty));\n\tconst result = {};\n\tfor (const [key, value] of Object.entries(obj)) {\n\t\tconst currentPath = [...path, key];\n\t\tif (key === \"_generated\") continue;\n\t\tif (key === \"generated\" && value === false) continue;\n\t\tif ((key === \"onDelete\" || key === \"onUpdate\") && value === \"noAction\") continue;\n\t\tif (isDefaultValue(value)) {\n\t\t\tconst isRequiredDomainNamespaces = isArrayEqual(currentPath, [\"domain\", \"namespaces\"]);\n\t\t\tconst isDomainNamespaceSlot = matchesPathPattern(currentPath, DOMAIN_NAMESPACE_SLOT_PATTERN);\n\t\t\tconst isRequiredDomainModels = matchesPathPattern(currentPath, DOMAIN_MODELS_CONTAINER_PATTERN);\n\t\t\tconst isRequiredStorageNamespaces = isArrayEqual(currentPath, [\"storage\", \"namespaces\"]);\n\t\t\tconst isStorageNamespaceEntries = matchesPathPattern(currentPath, STORAGE_NAMESPACE_ENTRIES_PATTERN);\n\t\t\tconst isRequiredRoots = isArrayEqual(currentPath, [\"roots\"]);\n\t\t\tconst isRequiredExtensions = isArrayEqual(currentPath, [\"extensions\"]);\n\t\t\tconst isRequiredCapabilities = isArrayEqual(currentPath, [\"capabilities\"]);\n\t\t\tconst isRequiredMeta = isArrayEqual(currentPath, [\"meta\"]);\n\t\t\tconst isRequiredExecutionDefaults = isArrayEqual(currentPath, [\n\t\t\t\t\"execution\",\n\t\t\t\t\"mutations\",\n\t\t\t\t\"defaults\"\n\t\t\t]);\n\t\t\tconst isExtensionNamespace = currentPath.length === 2 && currentPath[0] === \"extensions\";\n\t\t\tconst isModelRelations = matchesPathPattern(currentPath, DOMAIN_MODEL_RELATIONS_PATTERN);\n\t\t\tconst isModelStorage = matchesPathPattern(currentPath, DOMAIN_MODEL_STORAGE_PATTERN);\n\t\t\tconst isNullableField = key === \"nullable\";\n\t\t\tconst isFamilyPreserved = shouldPreserveEmpty?.(currentPath) ?? false;\n\t\t\tif (!isRequiredDomainNamespaces && !isDomainNamespaceSlot && !isRequiredDomainModels && !isRequiredStorageNamespaces && !isStorageNamespaceEntries && !isRequiredRoots && !isRequiredExtensions && !isRequiredCapabilities && !isRequiredMeta && !isRequiredExecutionDefaults && !isExtensionNamespace && !isModelRelations && !isModelStorage && !isNullableField && !isFamilyPreserved) continue;\n\t\t}\n\t\tresult[key] = omitDefaults(value, currentPath, shouldPreserveEmpty);\n\t}\n\treturn result;\n}\nfunction sortObjectKeys(obj) {\n\tif (obj === null || typeof obj !== \"object\") return obj;\n\tif (Array.isArray(obj)) return obj.map((item) => sortObjectKeys(item));\n\tconst sorted = {};\n\tconst keys = Object.keys(obj).sort();\n\tfor (const key of keys) sorted[key] = sortObjectKeys(obj[key]);\n\treturn sorted;\n}\nfunction orderTopLevel(obj) {\n\tconst ordered = {};\n\tconst remaining = new Set(Object.keys(obj));\n\tfor (const key of TOP_LEVEL_ORDER) if (remaining.has(key)) {\n\t\tordered[key] = obj[key];\n\t\tremaining.delete(key);\n\t}\n\tfor (const key of Array.from(remaining).sort()) ordered[key] = obj[key];\n\treturn ordered;\n}\n/**\n* Object-form variant of {@link canonicalizeContract}. Exported because the\n* emitter writes the canonical contract through a separate JSON-stringify\n* pass and consumes the structured object directly.\n*/\nfunction canonicalizeContractToObject(contract, options) {\n\tconst serialized = options.serializeContract(contract);\n\tconst withDefaultsOmitted = omitDefaults({\n\t\t...ifDefined(\"schemaVersion\", options.schemaVersion),\n\t\ttargetFamily: serialized[\"targetFamily\"],\n\t\ttarget: serialized[\"target\"],\n\t\tprofileHash: serialized[\"profileHash\"],\n\t\troots: serialized[\"roots\"],\n\t\tdomain: serialized[\"domain\"],\n\t\tstorage: serialized[\"storage\"],\n\t\t...ifDefined(\"execution\", serialized[\"execution\"]),\n\t\textensions: serialized[\"extensions\"],\n\t\tcapabilities: serialized[\"capabilities\"],\n\t\t...ifDefined(\"defaultControlPolicy\", serialized[\"defaultControlPolicy\"]),\n\t\tmeta: serialized[\"meta\"]\n\t}, [], options.shouldPreserveEmpty);\n\treturn orderTopLevel(sortObjectKeys(options.sortStorage ? {\n\t\t...withDefaultsOmitted,\n\t\tstorage: options.sortStorage(withDefaultsOmitted[\"storage\"])\n\t} : withDefaultsOmitted));\n}\nfunction canonicalizeContract(contract, options) {\n\treturn JSON.stringify(canonicalizeContractToObject(contract, options), null, 2);\n}\n//#endregion\n//#region src/hashing.ts\nconst SCHEMA_VERSION = \"1\";\nfunction omitNamespaceKindsForHash(storage) {\n\tif (!isPlainRecord(storage)) return storage;\n\tconst namespaces = storage[\"namespaces\"];\n\tif (!isPlainRecord(namespaces)) return storage;\n\tconst stripped = {};\n\tfor (const [nsId, ns] of Object.entries(namespaces)) if (isPlainRecord(ns)) {\n\t\tconst { kind: _kind, ...rest } = ns;\n\t\tstripped[nsId] = rest;\n\t} else stripped[nsId] = ns;\n\treturn {\n\t\t...storage,\n\t\tnamespaces: stripped\n\t};\n}\nfunction sha256(content) {\n\tconst hash = createHash(\"sha256\");\n\thash.update(content);\n\treturn hash.digest(\"hex\");\n}\nfunction hashContract(section) {\n\tconst { shouldPreserveEmpty, sortStorage, ...sectionData } = section;\n\tconst storageForHash = omitNamespaceKindsForHash(sectionData[\"storage\"] ?? {});\n\treturn canonicalizeContract(blindCast({\n\t\ttargetFamily: sectionData[\"targetFamily\"],\n\t\ttarget: sectionData[\"target\"],\n\t\troots: {},\n\t\tdomain: { namespaces: {} },\n\t\texecution: sectionData[\"execution\"],\n\t\textensions: {},\n\t\tcapabilities: sectionData[\"capabilities\"] ?? {},\n\t\tmeta: {},\n\t\tprofileHash: \"\",\n\t\t...sectionData,\n\t\tstorage: storageForHash\n\t}), {\n\t\tschemaVersion: SCHEMA_VERSION,\n\t\tserializeContract: (c) => castAs(JSON.parse(JSON.stringify(c))),\n\t\t...ifDefined(\"shouldPreserveEmpty\", shouldPreserveEmpty),\n\t\t...ifDefined(\"sortStorage\", sortStorage)\n\t});\n}\nfunction computeStorageHash(args) {\n\treturn blindCast(sha256(hashContract(args)));\n}\nfunction computeExecutionHash(args) {\n\treturn blindCast(sha256(hashContract(args)));\n}\nfunction computeProfileHash(args) {\n\treturn blindCast(sha256(hashContract(args)));\n}\n//#endregion\n//#region src/build-execution-section.ts\nfunction compareRefs(a, b) {\n\treturn compareCodeUnits(a.ref.namespace, b.ref.namespace) || compareCodeUnits(a.ref.entry, b.ref.entry) || compareCodeUnits(a.ref.field, b.ref.field);\n}\n/**\n* Builds a contract's `execution` section from its mutation defaults: sorted by namespace, entry and field in UTF-16 code-unit order, and hashed for the target. Every authoring path calls this, so they emit the same section and hash for the same defaults.\n*/\nfunction buildExecutionSection(input) {\n\tif (input.defaults.length === 0) return;\n\tconst execution = { mutations: { defaults: [...input.defaults].sort(compareRefs) } };\n\treturn {\n\t\texecutionHash: computeExecutionHash({\n\t\t\ttarget: input.target,\n\t\t\ttargetFamily: input.targetFamily,\n\t\t\texecution\n\t\t}),\n\t\t...execution\n\t};\n}\n//#endregion\nexport { buildExecutionSection, canonicalizeContract, canonicalizeContractToObject, computeExecutionHash, computeProfileHash, computeStorageHash };\n\n//# sourceMappingURL=hashing.mjs.map"],"mappings":";;;;;;;AAOA,MAAM,gCAAgC;CACrC;CACA;CACA;AACD;AACA,MAAM,kCAAkC;CACvC;CACA;CACA;CACA;AACD;AACA,MAAM,iCAAiC;CACtC;CACA;CACA;CACA;CACA;CACA;AACD;AACA,MAAM,+BAA+B;CACpC;CACA;CACA;CACA;CACA;CACA;AACD;AACA,MAAM,oCAAoC;CACzC;CACA;CACA;CACA;AACD;AACA,MAAM,kBAAkB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD;AACA,SAAS,eAAe,OAAO;CAC9B,IAAI,UAAU,OAAO,OAAO;CAC5B,IAAI,UAAU,MAAM,OAAO;CAC3B,IAAI,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,GAAG,OAAO;CACvD,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM,OAAO,OAAO,KAAK,KAAK,CAAC,CAAC,WAAW;CACtF,OAAO;AACR;AACA,SAAS,aAAa,KAAK,MAAM,qBAAqB;CACrD,IAAI,QAAQ,QAAQ,OAAO,QAAQ,UAAU,OAAO;CACpD,IAAI,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,KAAK,SAAS,aAAa,MAAM,MAAM,mBAAmB,CAAC;CAC9F,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,GAAG,GAAG;EAC/C,MAAM,cAAc,CAAC,GAAG,MAAM,GAAG;EACjC,IAAI,QAAQ,cAAc;EAC1B,IAAI,QAAQ,eAAe,UAAU,OAAO;EAC5C,KAAK,QAAQ,cAAc,QAAQ,eAAe,UAAU,YAAY;EACxE,IAAI,eAAe,KAAK,GAAG;GAC1B,MAAM,6BAA6B,aAAa,aAAa,CAAC,UAAU,YAAY,CAAC;GACrF,MAAM,wBAAwB,mBAAmB,aAAa,6BAA6B;GAC3F,MAAM,yBAAyB,mBAAmB,aAAa,+BAA+B;GAC9F,MAAM,8BAA8B,aAAa,aAAa,CAAC,WAAW,YAAY,CAAC;GACvF,MAAM,4BAA4B,mBAAmB,aAAa,iCAAiC;GACnG,MAAM,kBAAkB,aAAa,aAAa,CAAC,OAAO,CAAC;GAC3D,MAAM,uBAAuB,aAAa,aAAa,CAAC,YAAY,CAAC;GACrE,MAAM,yBAAyB,aAAa,aAAa,CAAC,cAAc,CAAC;GACzE,MAAM,iBAAiB,aAAa,aAAa,CAAC,MAAM,CAAC;GACzD,MAAM,8BAA8B,aAAa,aAAa;IAC7D;IACA;IACA;GACD,CAAC;GACD,MAAM,uBAAuB,YAAY,WAAW,KAAK,YAAY,OAAO;GAC5E,MAAM,mBAAmB,mBAAmB,aAAa,8BAA8B;GACvF,MAAM,iBAAiB,mBAAmB,aAAa,4BAA4B;GACnF,MAAM,kBAAkB,QAAQ;GAChC,MAAM,oBAAoB,sBAAsB,WAAW,KAAK;GAChE,IAAI,CAAC,8BAA8B,CAAC,yBAAyB,CAAC,0BAA0B,CAAC,+BAA+B,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,+BAA+B,CAAC,wBAAwB,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,mBAAmB;EAC3X;EACA,OAAO,OAAO,aAAa,OAAO,aAAa,mBAAmB;CACnE;CACA,OAAO;AACR;AACA,SAAS,eAAe,KAAK;CAC5B,IAAI,QAAQ,QAAQ,OAAO,QAAQ,UAAU,OAAO;CACpD,IAAI,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,KAAK,SAAS,eAAe,IAAI,CAAC;CACrE,MAAM,SAAS,CAAC;CAChB,MAAM,OAAO,OAAO,KAAK,GAAG,CAAC,CAAC,KAAK;CACnC,KAAK,MAAM,OAAO,MAAM,OAAO,OAAO,eAAe,IAAI,IAAI;CAC7D,OAAO;AACR;AACA,SAAS,cAAc,KAAK;CAC3B,MAAM,UAAU,CAAC;CACjB,MAAM,YAAY,IAAI,IAAI,OAAO,KAAK,GAAG,CAAC;CAC1C,KAAK,MAAM,OAAO,iBAAiB,IAAI,UAAU,IAAI,GAAG,GAAG;EAC1D,QAAQ,OAAO,IAAI;EACnB,UAAU,OAAO,GAAG;CACrB;CACA,KAAK,MAAM,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,KAAK,GAAG,QAAQ,OAAO,IAAI;CACnE,OAAO;AACR;;;;;;AAMA,SAAS,6BAA6B,UAAU,SAAS;CACxD,MAAM,aAAa,QAAQ,kBAAkB,QAAQ;CACrD,MAAM,sBAAsB,aAAa;EACxC,GAAG,UAAU,iBAAiB,QAAQ,aAAa;EACnD,cAAc,WAAW;EACzB,QAAQ,WAAW;EACnB,aAAa,WAAW;EACxB,OAAO,WAAW;EAClB,QAAQ,WAAW;EACnB,SAAS,WAAW;EACpB,GAAG,UAAU,aAAa,WAAW,YAAY;EACjD,YAAY,WAAW;EACvB,cAAc,WAAW;EACzB,GAAG,UAAU,wBAAwB,WAAW,uBAAuB;EACvE,MAAM,WAAW;CAClB,GAAG,CAAC,GAAG,QAAQ,mBAAmB;CAClC,OAAO,cAAc,eAAe,QAAQ,cAAc;EACzD,GAAG;EACH,SAAS,QAAQ,YAAY,oBAAoB,UAAU;CAC5D,IAAI,mBAAmB,CAAC;AACzB;AACA,SAAS,qBAAqB,UAAU,SAAS;CAChD,OAAO,KAAK,UAAU,6BAA6B,UAAU,OAAO,GAAG,MAAM,CAAC;AAC/E;AAGA,MAAM,iBAAiB;AACvB,SAAS,0BAA0B,SAAS;CAC3C,IAAI,CAAC,cAAc,OAAO,GAAG,OAAO;CACpC,MAAM,aAAa,QAAQ;CAC3B,IAAI,CAAC,cAAc,UAAU,GAAG,OAAO;CACvC,MAAM,WAAW,CAAC;CAClB,KAAK,MAAM,CAAC,MAAM,OAAO,OAAO,QAAQ,UAAU,GAAG,IAAI,cAAc,EAAE,GAAG;EAC3E,MAAM,EAAE,MAAM,OAAO,GAAG,SAAS;EACjC,SAAS,QAAQ;CAClB,OAAO,SAAS,QAAQ;CACxB,OAAO;EACN,GAAG;EACH,YAAY;CACb;AACD;AACA,SAAS,OAAO,SAAS;CACxB,MAAM,OAAO,WAAW,QAAQ;CAChC,KAAK,OAAO,OAAO;CACnB,OAAO,KAAK,OAAO,KAAK;AACzB;AACA,SAAS,aAAa,SAAS;CAC9B,MAAM,EAAE,qBAAqB,aAAa,GAAG,gBAAgB;CAC7D,MAAM,iBAAiB,0BAA0B,YAAY,cAAc,CAAC,CAAC;CAC7E,OAAO,qBAAqB,UAAU;EACrC,cAAc,YAAY;EAC1B,QAAQ,YAAY;EACpB,OAAO,CAAC;EACR,QAAQ,EAAE,YAAY,CAAC,EAAE;EACzB,WAAW,YAAY;EACvB,YAAY,CAAC;EACb,cAAc,YAAY,mBAAmB,CAAC;EAC9C,MAAM,CAAC;EACP,aAAa;EACb,GAAG;EACH,SAAS;CACV,CAAC,GAAG;EACH,eAAe;EACf,oBAAoB,MAAM,OAAO,KAAK,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC;EAC9D,GAAG,UAAU,uBAAuB,mBAAmB;EACvD,GAAG,UAAU,eAAe,WAAW;CACxC,CAAC;AACF;AACA,SAAS,mBAAmB,MAAM;CACjC,OAAO,UAAU,OAAO,aAAa,IAAI,CAAC,CAAC;AAC5C;AACA,SAAS,qBAAqB,MAAM;CACnC,OAAO,UAAU,OAAO,aAAa,IAAI,CAAC,CAAC;AAC5C;AACA,SAAS,mBAAmB,MAAM;CACjC,OAAO,UAAU,OAAO,aAAa,IAAI,CAAC,CAAC;AAC5C;AAGA,SAAS,YAAY,GAAG,GAAG;CAC1B,OAAO,iBAAiB,EAAE,IAAI,WAAW,EAAE,IAAI,SAAS,KAAK,iBAAiB,EAAE,IAAI,OAAO,EAAE,IAAI,KAAK,KAAK,iBAAiB,EAAE,IAAI,OAAO,EAAE,IAAI,KAAK;AACrJ;;;;AAIA,SAAS,sBAAsB,OAAO;CACrC,IAAI,MAAM,SAAS,WAAW,GAAG;CACjC,MAAM,YAAY,EAAE,WAAW,EAAE,UAAU,CAAC,GAAG,MAAM,QAAQ,CAAC,CAAC,KAAK,WAAW,EAAE,EAAE;CACnF,OAAO;EACN,eAAe,qBAAqB;GACnC,QAAQ,MAAM;GACd,cAAc,MAAM;GACpB;EACD,CAAC;EACD,GAAG;CACJ;AACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-1owoiwHJ-CqCnC7Qx.mjs","names":["#filename","#text","#lineStarts","#lineIndexAt","#lineStartAt","#lineEndAt","#sourcesByRoot","#stack","#tokenizer","#sourceFile","#diagnostics","#offset","#depth","#builder","#advance"],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/parse-1owoiwHJ.mjs"],"sourcesContent":["import { r as isTerminatedStringLiteral, t as Tokenizer } from \"./tokenizer-BMz7z2KR.mjs\";\nimport { l as createSyntaxTree } from \"./ast-helpers-2XRnkQEO.mjs\";\nimport { n as DocumentAst } from \"./declarations-CgS5vnfJ.mjs\";\nimport { UNSPECIFIED_PSL_NAMESPACE_ID } from \"@internal/framework-components/psl-ast\";\nimport { InternalError } from \"@internal/utils/internal-error\";\n//#region src/source-file.ts\nconst CARRIAGE_RETURN = 13;\nconst LINE_FEED = 10;\nvar SourceFile = class {\n\t#filename;\n\t#text;\n\t#lineStarts;\n\tconstructor(filename, text) {\n\t\tthis.#filename = filename;\n\t\tthis.#text = text;\n\t\tconst lineStarts = [0];\n\t\tfor (let offset = 0; offset < text.length; offset++) if (text.charCodeAt(offset) === LINE_FEED) lineStarts.push(offset + 1);\n\t\tthis.#lineStarts = lineStarts;\n\t}\n\tget filename() {\n\t\treturn this.#filename;\n\t}\n\tget text() {\n\t\treturn this.#text;\n\t}\n\tget length() {\n\t\treturn this.#text.length;\n\t}\n\tget lineCount() {\n\t\treturn this.#lineStarts.length;\n\t}\n\tlineStartOffsets() {\n\t\treturn this.#lineStarts;\n\t}\n\tlineStartOffset(line) {\n\t\tif (line <= 0) return 0;\n\t\treturn this.#lineStarts[line] ?? this.#text.length;\n\t}\n\tlineEndOffset(line) {\n\t\tif (line < 0) return 0;\n\t\tconst nextLineStart = this.#lineStarts[line + 1];\n\t\tif (nextLineStart === void 0) return this.#text.length;\n\t\tconst lineFeedOffset = nextLineStart - 1;\n\t\tconst carriageReturnOffset = lineFeedOffset - 1;\n\t\treturn this.#text.charCodeAt(carriageReturnOffset) === CARRIAGE_RETURN ? carriageReturnOffset : lineFeedOffset;\n\t}\n\tpositionAt(offset) {\n\t\tconst clamped = clamp(offset, 0, this.#text.length);\n\t\tconst line = this.#lineIndexAt(clamped);\n\t\treturn {\n\t\t\tline,\n\t\t\tcharacter: clamped - this.#lineStartAt(line)\n\t\t};\n\t}\n\toffsetAt(position) {\n\t\tconst line = clamp(position.line, 0, this.#lineStarts.length - 1);\n\t\tconst lineStart = this.#lineStartAt(line);\n\t\tconst lineEnd = this.#lineEndAt(line);\n\t\treturn clamp(lineStart + position.character, lineStart, lineEnd);\n\t}\n\toffsetToPslPosition(offset) {\n\t\tconst position = this.positionAt(offset);\n\t\treturn {\n\t\t\toffset,\n\t\t\tline: position.line + 1,\n\t\t\tcolumn: position.character + 1\n\t\t};\n\t}\n\trangeToPslSpan(range) {\n\t\treturn {\n\t\t\tstart: this.offsetToPslPosition(this.offsetAt(range.start)),\n\t\t\tend: this.offsetToPslPosition(this.offsetAt(range.end))\n\t\t};\n\t}\n\tpslSpanToRange(span) {\n\t\treturn {\n\t\t\tstart: this.positionAt(span.start.offset),\n\t\t\tend: this.positionAt(span.end.offset)\n\t\t};\n\t}\n\t#lineStartAt(line) {\n\t\treturn this.#lineStarts[line] ?? 0;\n\t}\n\t#lineEndAt(line) {\n\t\treturn line + 1 < this.#lineStarts.length ? this.#lineStartAt(line + 1) - 1 : this.#text.length;\n\t}\n\t#lineIndexAt(offset) {\n\t\tconst lineStarts = this.#lineStarts;\n\t\tlet low = 0;\n\t\tlet high = lineStarts.length - 1;\n\t\twhile (low < high) {\n\t\t\tconst mid = low + high + 1 >>> 1;\n\t\t\tif ((lineStarts[mid] ?? 0) <= offset) low = mid;\n\t\t\telse high = mid - 1;\n\t\t}\n\t\treturn low;\n\t}\n};\nvar PslSources = class PslSources {\n\t#sourcesByRoot = /* @__PURE__ */ new Map();\n\tconstructor(entries) {\n\t\tfor (const [root, sourceFile] of entries) this.#sourcesByRoot.set(root, sourceFile);\n\t}\n\t/**\n\t* A new registry uniting this one with `others` — e.g. the per-document\n\t* `PslSources` registries `parse()` returns for each member of a\n\t* multi-file schema, united into the one registry `buildSymbolTable` and\n\t* the interpreters expect.\n\t*/\n\tmerge(...others) {\n\t\treturn new PslSources([...this.#sourcesByRoot, ...others.flatMap((other) => [...other.#sourcesByRoot])]);\n\t}\n\tsourceFileNamed(filename) {\n\t\tlet match;\n\t\tfor (const sourceFile of this.#sourcesByRoot.values()) {\n\t\t\tif (sourceFile.filename !== filename) continue;\n\t\t\tif (match !== void 0 && match.text !== sourceFile.text) throw new InternalError(`Ambiguous PSL diagnostic filename \"${filename}\": registered sources have different text`);\n\t\t\tmatch = sourceFile;\n\t\t}\n\t\tif (match === void 0) throw new InternalError(`No SourceFile registered for PSL diagnostic filename \"${filename}\"`);\n\t\treturn match;\n\t}\n\tsourceFileFor(node) {\n\t\tconst root = node.root();\n\t\tconst sourceFile = this.#sourcesByRoot.get(root);\n\t\tif (sourceFile === void 0) throw new InternalError(\"No SourceFile registered for PSL syntax root\");\n\t\treturn sourceFile;\n\t}\n};\nfunction clamp(value, min, max) {\n\tif (value < min) return min;\n\tif (value > max) return max;\n\treturn value;\n}\n//#endregion\n//#region src/syntax/green.ts\nfunction greenToken(kind, text) {\n\treturn {\n\t\ttype: \"token\",\n\t\tkind,\n\t\ttext\n\t};\n}\nfunction greenNode(kind, children) {\n\tlet textLength = 0;\n\tfor (const child of children) textLength += child.type === \"token\" ? child.text.length : child.textLength;\n\treturn {\n\t\ttype: \"node\",\n\t\tkind,\n\t\tchildren,\n\t\ttextLength\n\t};\n}\n//#endregion\n//#region src/syntax/green-builder.ts\nvar GreenNodeBuilder = class {\n\t#stack = [];\n\tstartNode(kind) {\n\t\tthis.#stack.push({\n\t\t\tkind,\n\t\t\tchildren: []\n\t\t});\n\t}\n\ttoken(kind, text) {\n\t\tconst current = this.#stack.at(-1);\n\t\tif (!current) throw new InternalError(\"GreenNodeBuilder: token() called with no open node\");\n\t\tcurrent.children.push(greenToken(kind, text));\n\t}\n\tfinishNode() {\n\t\tconst completed = this.#stack.pop();\n\t\tif (!completed) throw new InternalError(\"GreenNodeBuilder: finishNode() called with no open node\");\n\t\tconst node = greenNode(completed.kind, completed.children);\n\t\tconst parent = this.#stack.at(-1);\n\t\tif (parent) parent.children.push(node);\n\t\treturn node;\n\t}\n};\n//#endregion\n//#region src/parse.ts\nconst TRIVIA_KINDS = /* @__PURE__ */ new Set([\n\t\"Whitespace\",\n\t\"Newline\",\n\t\"Comment\"\n]);\n/**\n* The fault-tolerant parser substrate the parse functions below drive. Trivia is flushed\n* into the enclosing open node, so every child node spans exactly its first\n* through last significant token.\n*/\nvar Cursor = class {\n\t#tokenizer;\n\t#sourceFile;\n\t#builder = new GreenNodeBuilder();\n\t#diagnostics = [];\n\t#offset = 0;\n\t#depth = 0;\n\tconstructor(filename, source) {\n\t\tthis.#tokenizer = new Tokenizer(source);\n\t\tthis.#sourceFile = new SourceFile(filename, source);\n\t}\n\tget diagnostics() {\n\t\treturn this.#diagnostics;\n\t}\n\tget sourceFile() {\n\t\treturn this.#sourceFile;\n\t}\n\tpeekKind(ahead = 0) {\n\t\treturn this.peekToken(ahead).kind;\n\t}\n\tpeekToken(ahead = 0) {\n\t\tlet rawIndex = 0;\n\t\tlet remaining = ahead;\n\t\tfor (;;) {\n\t\t\tconst token = this.#tokenizer.peek(rawIndex);\n\t\t\tif (token.kind === \"Eof\") return token;\n\t\t\tif (TRIVIA_KINDS.has(token.kind)) {\n\t\t\t\trawIndex++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (remaining === 0) return token;\n\t\t\tremaining--;\n\t\t\trawIndex++;\n\t\t}\n\t}\n\t/** Span of the significant token `lookahead` positions ahead (`mark(0)` = the next). */\n\tmark(lookahead = 0) {\n\t\tlet rawIndex = 0;\n\t\tlet offset = this.#offset;\n\t\tlet remaining = lookahead;\n\t\tfor (;;) {\n\t\t\tconst token = this.#tokenizer.peek(rawIndex);\n\t\t\tif (token.kind === \"Eof\") return {\n\t\t\t\toffset,\n\t\t\t\tlength: token.text.length\n\t\t\t};\n\t\t\tif (!TRIVIA_KINDS.has(token.kind) && remaining === 0) return {\n\t\t\t\toffset,\n\t\t\t\tlength: token.text.length\n\t\t\t};\n\t\t\tif (!TRIVIA_KINDS.has(token.kind)) remaining--;\n\t\t\toffset += token.text.length;\n\t\t\trawIndex++;\n\t\t}\n\t}\n\t/**\n\t* Zero-width mark just past the last consumed significant token — anchors an\n\t* \"expected here\" diagnostic, e.g. the `{` missing after a declaration's name.\n\t*/\n\tmarkAfterLastToken() {\n\t\treturn {\n\t\t\toffset: this.#offset,\n\t\t\tlength: 0\n\t\t};\n\t}\n\tstartNode(kind) {\n\t\tif (this.#depth > 0) this.flushTrivia();\n\t\tthis.#builder.startNode(kind);\n\t\tthis.#depth++;\n\t}\n\tfinishNode() {\n\t\tthis.#depth--;\n\t\treturn this.#builder.finishNode();\n\t}\n\tbump() {\n\t\tthis.flushTrivia();\n\t\tconst token = this.#tokenizer.peek();\n\t\tif (token.kind === \"Eof\") return token;\n\t\tthis.#builder.token(token.kind, token.text);\n\t\tthis.#advance();\n\t\treturn token;\n\t}\n\trecoverToSyncPoint() {\n\t\tfor (;;) {\n\t\t\tconst token = this.#tokenizer.peek();\n\t\t\tif (token.kind === \"Eof\" || token.kind === \"Newline\" || token.kind === \"RBrace\") return;\n\t\t\tthis.#builder.token(token.kind, token.text);\n\t\t\tthis.#advance();\n\t\t}\n\t}\n\tflushTrivia() {\n\t\tfor (;;) {\n\t\t\tconst token = this.#tokenizer.peek();\n\t\t\tif (!TRIVIA_KINDS.has(token.kind)) return;\n\t\t\tthis.#builder.token(token.kind, token.text);\n\t\t\tthis.#advance();\n\t\t}\n\t}\n\tdiagnostic(code, message, mark) {\n\t\tconst start = mark.offset;\n\t\tconst end = start + mark.length;\n\t\tthis.#diagnostics.push({\n\t\t\tfilename: this.#sourceFile.filename,\n\t\t\tcode,\n\t\t\tmessage,\n\t\t\trange: {\n\t\t\t\tstart: this.#sourceFile.positionAt(start),\n\t\t\t\tend: this.#sourceFile.positionAt(end)\n\t\t\t}\n\t\t});\n\t}\n\t#advance() {\n\t\tthis.#offset += this.#tokenizer.next().text.length;\n\t}\n};\nfunction parseIdentifier(cursor) {\n\tcursor.startNode(\"Identifier\");\n\tcursor.bump();\n\tcursor.finishNode();\n}\n/**\n* Returns `undefined` when the next significant token does not start a\n* recognised expression, leaving recovery to the caller.\n*/\nfunction parseExpression(cursor) {\n\treturn parseStringLiteralExpr(cursor) ?? parseNumberLiteralExpr(cursor) ?? parseArrayLiteral(cursor) ?? parseObjectLiteralExpr(cursor) ?? parseTaggedLiteral(cursor) ?? parseFunctionCall(cursor) ?? parsePathExpr(cursor) ?? parseBooleanLiteralExpr(cursor) ?? parseIdentifierExpr(cursor);\n}\n/** A string literal outside a tagged literal, where a backtick string is refused. */\nfunction parseStringLiteralExpr(cursor) {\n\tif (cursor.peekKind() !== \"StringLiteral\") return void 0;\n\tif (cursor.peekToken().text.startsWith(\"`\")) cursor.diagnostic(\"PSL_BACKTICK_STRING_REQUIRES_TAG\", \"A backtick string must follow a tag, as in tag`...`.\", cursor.mark());\n\treturn parseStringLiteral(cursor);\n}\nfunction parseStringLiteral(cursor) {\n\tconst stringMark = cursor.mark();\n\tconst text = cursor.peekToken().text;\n\tcursor.startNode(\"StringLiteralExpr\");\n\tcursor.bump();\n\tif (!isTerminatedStringLiteral(text)) cursor.diagnostic(\"PSL_UNTERMINATED_STRING\", \"Unterminated string literal\", stringMark);\n\treturn cursor.finishNode();\n}\nfunction parseNumberLiteralExpr(cursor) {\n\tif (cursor.peekKind() !== \"NumberLiteral\") return void 0;\n\tcursor.startNode(\"NumberLiteralExpr\");\n\tcursor.bump();\n\treturn cursor.finishNode();\n}\n/**\n* Parses a namespace-qualified name `[space ':']? Ident ('.' Ident)*`. The\n* caller guarantees a leading `Ident`.\n*\n* Parsing the whole chain up front lets a position decide\n* constructor-vs-reference by peeking exactly one token for `(`, with no scan of\n* the dotted chain's length.\n*/\nfunction parseQualifiedName(cursor) {\n\tcursor.startNode(\"QualifiedName\");\n\tparseIdentifier(cursor);\n\tparseQualifiedSegments(cursor, \"Colon\");\n\tparseQualifiedSegments(cursor, \"Dot\");\n\tcursor.finishNode();\n}\n/**\n* A well-formed name carries at most one colon space and one dot namespace, so\n* each separator past the first of its kind reports `PSL_INVALID_QUALIFIED_NAME`.\n* The separator is consumed regardless, keeping the lossless round-trip intact.\n*/\nfunction parseQualifiedSegments(cursor, separator) {\n\tlet seen = 0;\n\twhile (cursor.peekKind() === separator) {\n\t\tseen++;\n\t\tconst separatorMark = cursor.mark();\n\t\tcursor.bump();\n\t\tif (seen > 1) cursor.diagnostic(\"PSL_INVALID_QUALIFIED_NAME\", \"Qualified name has too many segments\", separatorMark);\n\t\tif (cursor.peekKind() === \"Ident\") parseIdentifier(cursor);\n\t\telse cursor.diagnostic(\"PSL_INVALID_QUALIFIED_NAME\", \"Qualified name is missing a name after the separator\", cursor.mark());\n\t}\n}\n/**\n* Whether the next tokens open a tagged literal: a bare `Ident` or a\n* namespace-qualified `Ident.Ident`, then a string. Trivia may sit anywhere\n* between them. Bounded like {@link isCallAhead}.\n*/\nfunction isTaggedLiteralAhead(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return false;\n\tif (cursor.peekKind(1) === \"StringLiteral\") return true;\n\treturn cursor.peekKind(1) === \"Dot\" && cursor.peekKind(2) === \"Ident\" && cursor.peekKind(3) === \"StringLiteral\";\n}\n/** Parses `` tag`body` ``, `tag\"body\"`, or `tag'body'`: a qualified name, then a string literal. */\nfunction parseTaggedLiteral(cursor) {\n\tif (!isTaggedLiteralAhead(cursor)) return void 0;\n\tcursor.startNode(\"TaggedLiteral\");\n\tparseQualifiedName(cursor);\n\tparseStringLiteral(cursor);\n\treturn cursor.finishNode();\n}\nfunction parseBooleanLiteralExpr(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tconst text = cursor.peekToken().text;\n\tif (text !== \"true\" && text !== \"false\") return void 0;\n\tcursor.startNode(\"BooleanLiteralExpr\");\n\tcursor.bump();\n\treturn cursor.finishNode();\n}\nfunction parseIdentifierExpr(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tcursor.startNode(\"Identifier\");\n\tcursor.bump();\n\treturn cursor.finishNode();\n}\nfunction parseArrayLiteral(cursor) {\n\tif (cursor.peekKind() !== \"LBracket\") return void 0;\n\tcursor.startNode(\"ArrayLiteral\");\n\tcursor.bump();\n\twhile (cursor.peekKind() !== \"RBracket\" && cursor.peekKind() !== \"Eof\") {\n\t\tif (!parseExpression(cursor)) break;\n\t\tif (cursor.peekKind() === \"Comma\") cursor.bump();\n\t\telse break;\n\t}\n\tif (cursor.peekKind() === \"RBracket\") cursor.bump();\n\treturn cursor.finishNode();\n}\nfunction parseObjectLiteralExpr(cursor) {\n\tif (cursor.peekKind() !== \"LBrace\") return void 0;\n\tconst braceMark = cursor.mark();\n\tcursor.startNode(\"ObjectLiteralExpr\");\n\tcursor.bump();\n\twhile (cursor.peekKind() !== \"RBrace\" && cursor.peekKind() !== \"Eof\") {\n\t\tparseObjectField(cursor);\n\t\tif (cursor.peekKind() === \"Comma\") cursor.bump();\n\t\telse if (cursor.peekKind() === \"Ident\") cursor.diagnostic(\"PSL_INVALID_OBJECT_LITERAL\", \"Expected \\\",\\\" between object-literal fields\", cursor.markAfterLastToken());\n\t\telse break;\n\t}\n\tif (cursor.peekKind() === \"RBrace\") cursor.bump();\n\telse cursor.diagnostic(\"PSL_INVALID_OBJECT_LITERAL\", \"Unterminated object literal\", braceMark);\n\treturn cursor.finishNode();\n}\nfunction parseObjectField(cursor) {\n\tcursor.startNode(\"ObjectField\");\n\tconst keyMark = cursor.mark();\n\tconst keyText = cursor.peekToken().text;\n\tif (cursor.peekKind() === \"Ident\") parseIdentifier(cursor);\n\telse if (cursor.peekKind() === \"StringLiteral\") parseStringLiteralExpr(cursor);\n\tif (cursor.peekKind() === \"Colon\") {\n\t\tcursor.bump();\n\t\tif (!parseExpression(cursor)) cursor.diagnostic(\"PSL_INVALID_OBJECT_LITERAL\", \"Expected a value after \\\":\\\"\", cursor.mark());\n\t} else {\n\t\tcursor.diagnostic(\"PSL_INVALID_OBJECT_LITERAL\", `Expected \":\" after \"${keyText}\"`, keyMark);\n\t\tif (!(cursor.peekKind() === \"Ident\" && cursor.peekKind(1) === \"Colon\")) parseExpression(cursor);\n\t}\n\treturn cursor.finishNode();\n}\n/**\n* The number of significant tokens in the dotted chain `Ident ('.' Ident)*` at\n* the cursor: 1 for `a`, 3 for `a.b`, 5 for `a.b.c`; 0 when no `Ident` is next.\n*/\nfunction dottedChainLength(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return 0;\n\tlet length = 1;\n\twhile (cursor.peekKind(length) === \"Dot\" && cursor.peekKind(length + 1) === \"Ident\") length += 2;\n\treturn length;\n}\n/**\n* Whether the next tokens open a call: a dotted chain followed by `(`, such as\n* `autoincrement(`, `temporal.updatedAt(` or `address.geo.lat(`. A dotted chain\n* with no `(` after it, like `a.b`, is a path, not a call.\n*/\nfunction isCallAhead(cursor) {\n\tconst chain = dottedChainLength(cursor);\n\treturn chain > 0 && cursor.peekKind(chain) === \"LParen\";\n}\n/**\n* Parses a function/constructor call — bare `autoincrement()` or dotted\n* `address.city(sort: Asc)`. A dotted callee is a `PathExpr`, the node the same\n* chain gets without the call, so `address.city` has one shape whether or not\n* it is called; a bare callee is a `QualifiedName`. Returns `undefined` unless\n* {@link isCallAhead} confirms a trailing `(`, so the `parseExpression` chain\n* falls through to the path, boolean and bare-identifier forms.\n*/\nfunction parseFunctionCall(cursor) {\n\tif (!isCallAhead(cursor)) return void 0;\n\tconst chain = dottedChainLength(cursor);\n\tcursor.startNode(\"FunctionCall\");\n\tif (chain > 1) parsePath(cursor, chain);\n\telse parseQualifiedName(cursor);\n\tif (cursor.peekKind() === \"LParen\") parseParenArgs(cursor);\n\treturn cursor.finishNode();\n}\n/**\n* Parses a member path `Ident ('.' Ident)+` that is neither a call nor the tag\n* of a tagged literal, such as `address.city` in `@@index([address.city])`.\n*/\nfunction parsePathExpr(cursor) {\n\tconst chain = dottedChainLength(cursor);\n\tif (chain < 3) return void 0;\n\treturn parsePath(cursor, chain);\n}\nfunction parsePath(cursor, chain) {\n\tcursor.startNode(\"PathExpr\");\n\tparseIdentifier(cursor);\n\tfor (let consumed = 1; consumed < chain; consumed += 2) {\n\t\tcursor.bump();\n\t\tparseIdentifier(cursor);\n\t}\n\treturn cursor.finishNode();\n}\n/** Parses a parenthesised, comma-separated `AttributeArg` list into the currently open node. */\nfunction parseParenArgs(cursor) {\n\tcursor.bump();\n\twhile (cursor.peekKind() !== \"RParen\" && cursor.peekKind() !== \"Eof\") {\n\t\tparseAttributeArg(cursor);\n\t\tif (cursor.peekKind() === \"Comma\") cursor.bump();\n\t\telse break;\n\t}\n\tif (cursor.peekKind() === \"RParen\") cursor.bump();\n}\nfunction parseAttributeArg(cursor) {\n\tconst kind = cursor.peekKind();\n\tif (kind !== \"Ident\" && kind !== \"StringLiteral\" && kind !== \"NumberLiteral\" && kind !== \"LBracket\" && kind !== \"LBrace\") return;\n\tcursor.startNode(\"AttributeArg\");\n\tif (cursor.peekKind() === \"Ident\" && cursor.peekKind(1) === \"Colon\") {\n\t\tparseIdentifier(cursor);\n\t\tcursor.bump();\n\t}\n\tparseArgValue(cursor);\n\tcursor.finishNode();\n}\nfunction parseArgValue(cursor) {\n\tparseExpression(cursor);\n}\nfunction parseAttributeArgList(cursor) {\n\tcursor.startNode(\"AttributeArgList\");\n\tparseParenArgs(cursor);\n\treturn cursor.finishNode();\n}\nfunction parseAttribute(cursor) {\n\tconst isBlockAttribute = cursor.peekKind() === \"DoubleAt\";\n\tconst attributeMark = cursor.mark();\n\tcursor.startNode(isBlockAttribute ? \"ModelAttribute\" : \"FieldAttribute\");\n\tcursor.bump();\n\tif (cursor.peekKind() === \"Ident\") parseQualifiedName(cursor);\n\telse cursor.diagnostic(\"PSL_INVALID_ATTRIBUTE_SYNTAX\", \"Attribute name expected\", attributeMark);\n\tif (cursor.peekKind() === \"LParen\") parseAttributeArgList(cursor);\n\treturn cursor.finishNode();\n}\n/**\n* A type annotation: `QualifiedName (argList)? ([])? (?)?`, e.g.\n* `pgvector.Vector(1536)[]?`. When the field has no type, no node is emitted —\n* a missing type is the absence of a `TypeAnnotation`, not a zero-width one.\n*/\nfunction parseTypeAnnotation(cursor) {\n\tconst kind = cursor.peekKind();\n\tif (kind !== \"Ident\" && kind !== \"LBracket\" && kind !== \"Question\") return;\n\tcursor.startNode(\"TypeAnnotation\");\n\tif (cursor.peekKind() === \"Ident\") {\n\t\tparseQualifiedName(cursor);\n\t\tif (cursor.peekKind() === \"LParen\") parseAttributeArgList(cursor);\n\t}\n\tif (cursor.peekKind() === \"LBracket\") {\n\t\tcursor.bump();\n\t\tif (cursor.peekKind() === \"RBracket\") cursor.bump();\n\t}\n\tif (cursor.peekKind() === \"Question\") cursor.bump();\n\tcursor.finishNode();\n}\n/**\n* Parses a full PSL document. Never throws — malformed input yields diagnostics\n* and a recovered tree, not an exception.\n*/\nfunction parse(source, filename, options = {}) {\n\tconst cursor = new Cursor(filename, source);\n\tconst root = createSyntaxTree(parseDocument(cursor, options));\n\tconst document = DocumentAst.cast(root) ?? new DocumentAst(root);\n\tconst sources = new PslSources([[document.syntax, cursor.sourceFile]]);\n\treturn {\n\t\tdocument,\n\t\tdiagnostics: cursor.diagnostics,\n\t\tsources\n\t};\n}\nfunction parseDocument(cursor, options) {\n\tcursor.startNode(\"Document\");\n\twhile (cursor.peekKind() !== \"Eof\") parseDeclaration(cursor, false, options);\n\tcursor.flushTrivia();\n\treturn cursor.finishNode();\n}\nconst RESERVED_BLOCK_KEYWORDS = /* @__PURE__ */ new Set([\n\t\"model\",\n\t\"namespace\",\n\t\"type\",\n\t\"types\"\n]);\nfunction keywordIs(cursor, keyword) {\n\treturn cursor.peekKind() === \"Ident\" && cursor.peekToken().text === keyword;\n}\n/**\n* Each alternative is a no-op on non-match, consuming nothing, so the\n* forward-only cursor is never left half-consumed by a rejected alternative.\n* Recovery runs via the `if (!node)` tail rather than as a `??` arm, because it\n* appends raw tokens to the open parent instead of returning a child node.\n*/\nfunction parseDeclaration(cursor, insideNamespace, options) {\n\tconst name = cursor.peekKind(1) === \"Ident\" ? cursor.peekToken(1).text : \"\";\n\tif (insideNamespace && keywordIs(cursor, \"namespace\")) cursor.diagnostic(\"PSL_INVALID_NAMESPACE_BLOCK\", `Recursive \"namespace ${name}\" block is not allowed; namespace blocks may not nest`, cursor.mark());\n\telse if (insideNamespace && keywordIs(cursor, \"types\")) cursor.diagnostic(\"PSL_INVALID_NAMESPACE_BLOCK\", \"`types` blocks must be declared at the document top level, not inside a namespace block\", cursor.mark());\n\telse if (keywordIs(cursor, \"namespace\") && name === UNSPECIFIED_PSL_NAMESPACE_ID) cursor.diagnostic(\"PSL_INVALID_NAMESPACE_BLOCK\", `Namespace name \"${UNSPECIFIED_PSL_NAMESPACE_ID}\" is reserved for the parser-synthesised bucket for top-level declarations`, cursor.mark(1));\n\tif (!(parseModel(cursor) ?? parseNamespace(cursor, options) ?? parseCompositeType(cursor) ?? parseTypesBlock(cursor) ?? parseGenericBlock(cursor, options))) parseUnsupportedTopLevel(cursor);\n}\n/**\n* Reports only the first missing piece — a missing name suppresses the\n* missing-brace diagnostic. `nameRequired` is false only for the `types` block.\n*/\nfunction parseBlock(cursor, kind, nameRequired, parseMember) {\n\tconst keyword = cursor.peekToken().text;\n\tconst keywordMark = cursor.mark();\n\tcursor.startNode(kind);\n\tcursor.bump();\n\tconst hasName = nameRequired && cursor.peekKind() === \"Ident\";\n\tif (hasName) parseIdentifier(cursor);\n\tif (nameRequired && !hasName) cursor.diagnostic(\"PSL_INVALID_DECLARATION\", `Expected a name after \"${keyword}\"`, keywordMark);\n\telse if (cursor.peekKind() !== \"LBrace\") cursor.diagnostic(\"PSL_INVALID_DECLARATION\", `Expected \"{\" to open the \"${keyword}\" block`, cursor.markAfterLastToken());\n\tif (cursor.peekKind() === \"LBrace\") parseBlockBody(cursor, parseMember);\n\telse cursor.recoverToSyncPoint();\n\treturn cursor.finishNode();\n}\nfunction parseModel(cursor) {\n\tif (!keywordIs(cursor, \"model\")) return void 0;\n\treturn parseBlock(cursor, \"ModelDeclaration\", true, parseModelMember);\n}\n/**\n* Excluding the reserved keywords keeps a malformed reserved block (e.g. `model\n* {` with no name) routed to its dedicated parser. The generic keyword set is\n* open, so a bare identifier with no brace (e.g. `oops`) is read as an unfinished\n* custom declaration rather than unsupported content.\n*/\nfunction parseGenericBlock(cursor, options) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tconst keyword = cursor.peekToken().text;\n\tif (RESERVED_BLOCK_KEYWORDS.has(keyword)) return void 0;\n\tconst hasName = cursor.peekKind(1) === \"Ident\" && cursor.peekKind(2) === \"LBrace\";\n\tcursor.startNode(\"GenericBlockDeclaration\");\n\tcursor.bump();\n\tif (hasName) parseIdentifier(cursor);\n\tif (cursor.peekKind() === \"LBrace\") parseBlockBody(cursor, genericBlockMemberParser(keyword, options));\n\telse {\n\t\tcursor.diagnostic(\"PSL_INVALID_DECLARATION\", `Expected \"{\" to open the \"${keyword}\" block`, cursor.markAfterLastToken());\n\t\tcursor.recoverToSyncPoint();\n\t}\n\treturn cursor.finishNode();\n}\nfunction parseNamespace(cursor, options) {\n\tif (!keywordIs(cursor, \"namespace\")) return void 0;\n\treturn parseBlock(cursor, \"Namespace\", true, (inner) => parseDeclaration(inner, true, options));\n}\nfunction parseCompositeType(cursor) {\n\tif (!keywordIs(cursor, \"type\")) return void 0;\n\treturn parseBlock(cursor, \"CompositeTypeDeclaration\", true, parseModelMember);\n}\n/** `types` (plural) is the no-name types block; the singular `type` is the composite type above. */\nfunction parseTypesBlock(cursor) {\n\tif (!keywordIs(cursor, \"types\")) return void 0;\n\treturn parseBlock(cursor, \"TypesBlock\", false, parseNamedTypeMember);\n}\n/** Every `parseMember` consumes at least one significant token, so the loop always terminates. */\nfunction parseBlockBody(cursor, parseMember) {\n\tconst braceMark = cursor.mark();\n\tcursor.bump();\n\tfor (;;) {\n\t\tconst kind = cursor.peekKind();\n\t\tif (kind === \"RBrace\" || kind === \"Eof\") break;\n\t\tparseMember(cursor);\n\t}\n\tif (cursor.peekKind() === \"RBrace\") cursor.bump();\n\telse cursor.diagnostic(\"PSL_UNTERMINATED_BLOCK\", \"Unterminated block declaration\", braceMark);\n}\nfunction parseUnsupportedTopLevel(cursor) {\n\tconst offending = cursor.peekToken().text;\n\tconst message = cursor.peekKind(1) === \"LBrace\" ? `Unsupported top-level block \"${offending}\"` : `Unsupported top-level declaration \"${offending}\"`;\n\tcursor.diagnostic(\"PSL_UNSUPPORTED_TOP_LEVEL_BLOCK\", message, cursor.mark());\n\tcursor.bump();\n\tcursor.recoverToSyncPoint();\n}\n/**\n* Matches a leading `@@` block attribute, a no-op otherwise. Single-`@`\n* attributes belong to fields and are parsed inside `parseField`.\n*/\nfunction parseBlockAttribute(cursor) {\n\tif (cursor.peekKind() !== \"DoubleAt\") return void 0;\n\treturn parseAttribute(cursor);\n}\nfunction parseModelMember(cursor) {\n\tif (!(parseBlockAttribute(cursor) ?? parseField(cursor))) invalidMember(cursor, \"PSL_INVALID_MODEL_MEMBER\", `Invalid model member declaration \"${cursor.peekToken().text}\"`);\n}\nfunction parseNamedTypeMember(cursor) {\n\tif (!parseNamedType(cursor)) invalidMember(cursor, \"PSL_INVALID_TYPES_MEMBER\", `Invalid types declaration \"${cursor.peekToken().text}\"`);\n}\n/**\n* A generic block reads `key = value` entries and bare keys; in an `enum` block those may carry `@`\n* attributes (`USER @map(\"user\")`). In the `prisma-7` grammar, a `view` body is read like a model\n* body. Each interpreter decides whether it accepts the block and its members.\n*/\nfunction genericBlockMemberParser(keyword, options) {\n\tif (keyword === \"view\" && options.grammar === \"prisma-7\") return parseModelMember;\n\tif (keyword === \"enum\") return parseEnumMember;\n\treturn parseKeyValueMember;\n}\n/**\n* A generic-block member is either a `@@`-block attribute or a `key = value`\n* entry. The block-attribute alternative is purely syntactic — it does not judge\n* whether the attribute is valid for the block's kind.\n*/\nfunction parseKeyValueMember(cursor) {\n\tif (!(parseBlockAttribute(cursor) ?? parseKeyValue(cursor))) invalidMember(cursor, \"PSL_INVALID_EXTENSION_BLOCK_MEMBER\", \"Invalid block entry\");\n}\nfunction parseEnumMember(cursor) {\n\tif (!(parseBlockAttribute(cursor) ?? parseKeyValue(cursor, { memberAttributes: true }))) invalidMember(cursor, \"PSL_INVALID_EXTENSION_BLOCK_MEMBER\", \"Invalid block entry\");\n}\nfunction invalidMember(cursor, code, message) {\n\tcursor.diagnostic(code, message, cursor.mark());\n\tcursor.bump();\n\tcursor.recoverToSyncPoint();\n}\nfunction parseField(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tcursor.startNode(\"FieldDeclaration\");\n\tconst nameMark = cursor.mark();\n\tconst nameText = cursor.peekToken().text;\n\tparseIdentifier(cursor);\n\tif (cursor.peekKind() !== \"Ident\") cursor.diagnostic(\"PSL_INVALID_MODEL_MEMBER\", `Expected a type after field \"${nameText}\"`, nameMark);\n\tparseTypeAnnotation(cursor);\n\twhile (cursor.peekKind() === \"At\") parseAttribute(cursor);\n\treturn cursor.finishNode();\n}\nfunction parseNamedType(cursor) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tcursor.startNode(\"NamedTypeDeclaration\");\n\tconst nameMark = cursor.mark();\n\tconst nameText = cursor.peekToken().text;\n\tparseIdentifier(cursor);\n\tif (cursor.peekKind() === \"Equals\") cursor.bump();\n\telse cursor.diagnostic(\"PSL_INVALID_TYPES_MEMBER\", `Expected \"=\" after \"${nameText}\"`, nameMark);\n\tparseTypeAnnotation(cursor);\n\twhile (cursor.peekKind() === \"At\") parseAttribute(cursor);\n\treturn cursor.finishNode();\n}\n/**\n* A generic-block entry is either `key = value` or a bare `key` (committing a\n* `KeyValuePair` carrying only the key). With `memberAttributes` (enum blocks) any number of `@`\n* attributes may follow, as in `USER @map(\"user\")`. A `key =` with no following expression is\n* flagged.\n*/\nfunction parseKeyValue(cursor, options = { memberAttributes: false }) {\n\tif (cursor.peekKind() !== \"Ident\") return void 0;\n\tcursor.startNode(\"KeyValuePair\");\n\tparseIdentifier(cursor);\n\tif (cursor.peekKind() === \"Equals\") {\n\t\tcursor.bump();\n\t\tif (!parseExpression(cursor)) cursor.diagnostic(\"PSL_INVALID_EXTENSION_BLOCK_MEMBER\", \"Expected a value after \\\"=\\\"\", cursor.mark());\n\t}\n\twhile (options.memberAttributes && cursor.peekKind() === \"At\") parseAttribute(cursor);\n\treturn cursor.finishNode();\n}\n//#endregion\nexport { PslSources as a, greenToken as i, GreenNodeBuilder as n, SourceFile as o, greenNode as r, parse as t };\n\n//# sourceMappingURL=parse-1owoiwHJ.mjs.map"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-C54e9842-D-fu5Z8Y.d.mts","names":[],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/parse-C54e9842.d.mts"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"psl-ast-DPyStNWj-XiHYf17a.d.mts","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/psl-ast-DPyStNWj.d.mts"],"mappings":";;;UAEU;;;;;;;;;;;WAWC,MAAM,oBAAoB;WAC1B;WACA;WACA,MAAM;;UAEP;WACC;WACA;;UAED;WACC;WACA;;KAEN,kBAAkB,0BAA0B;KAC5C;UACK;WACC;WACA;WACA,MAAM;;UAEP;WACC;WACA;WACA;WACA,MAAM;;KAEZ,uBAAuB,iCAAiC;UACnD;WACC;WACA;WACA,eAAe;WACf,MAAM;;UAEP;WACC;WACA,QAAQ;WACR;WACA,eAAe;WACf,MAAM;;KAEZ;KACA,oBAAoB;UACf;WACC;WACA;;WAEA;;WAEA;;;;;;;;;WASA;WACA,kBAAkB;WAClB;WACA;WACA;WACA,qBAAqB;WACrB,MAAM;;UAEP;WACC;WACA;WACA,MAAM;;UAEP;WACC;WACA;WACA,MAAM;;KAEZ,oBAAoB;UACf;WACC;WACA;WACA,iBAAiB;WACjB,qBAAqB;WACrB,MAAM;;;;;;;;WAQN;;;;;;;UAOD;WACC;WACA;WACA,iBAAiB;WACjB,qBAAqB;WACrB,MAAM;;UAEP;WACC;WACA;;;;;;WAMA;WACA,kBAAkB;WAClB,qBAAqB;WACrB,MAAM;;UAEP;WACC;WACA,uBAAuB;WACvB,MAAM;;;;;;;;;;;;;;cAcH;;;;;cAKA;;KAET,oBAAoB,WAAW,mBAAmB;;;;;;;;;;;;UAY7C;WACC;WACA;;WAEA,SAAS,SAAS,eAAe,SAAS,eAAe;;WAEzD,iBAAiB;;WAEjB,yBAAyB;WACzB,MAAM;;;iBAGA,iBAAiB;WACvB;WACA;WACA,SAAS,SAAS,eAAe,SAAS,eAAe;WACzD,MAAM;IACb;;;;;;iBAMa,wBAAwB,iBAAiB,YAAY,yBAAyB,oBAAoB,0BAA0B,sBAAsB,SAAS,eAAe,SAAS,eAAe;UACzM;WACC;WACA;WACA,qBAAqB;WACrB,QAAQ;WACR,MAAM;;;;;;iBAMA,cAAc,KAAK,0BAA0B;;;;iBAI7C,sBAAsB,KAAK,0BAA0B;;;;;;;;;;;cAWxD,uBAAuB;;;;;;;;;iBASpB,4BAA4B,IAAI,wBAAwB"}
@@ -1,2 +0,0 @@
1
- import "./framework-authoring-50f3xfDT-BEB5Y_Vg.mjs";
2
- import "./psl-ast-DPyStNWj-XiHYf17a.mjs";
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-domain-model-CBM8n-rX-DYZcbj-r.d.mts","names":[],"sources":["../../../../1-framework/0-foundation/contract/dist/resolve-domain-model-CBM8n-rX.d.mts"],"mappings":";;;UAEU;WACC;WACA,OAAO;;;;;;;;iBAQD,mBAAmB,QAAQ,mBAAmB,oBAAoB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"symbol-table-D4guXoTO-CS6SD0MP.d.mts","names":[],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/symbol-table-D4guXoTO.d.mts"],"mappings":";;;;;UAGU;WACC;WACA;WACA;WACA,aAAa;WACb,MAAM;;UAEP,kBAAkB,cAAc,oBAAoB,oBAAoB,oBAAoB;WAC3F;WACA,eAAe;WACf,MAAM;WACN,MAAM;;UAEP;WACC;WACA,eAAe;WACf,MAAM;;iBAEA,sBAAsB,cAAc,oBAAoB,mBAAmB,WAAW,OAAO,SAAS,aAAa,kBAAkB;iBACrI,uBAAuB,cAAc,oBAAoB,mBAAmB,YAAY,SAAS,QAAQ,SAAS,sBAAsB,kBAAkB;iBAC1J,4BAA4B,YAAY,+BAA+B,SAAS,aAAa;iBAC7F,YAAY,MAAM,YAAY,SAAS,aAAa;;iBAEpD,eAAe,MAAM,YAAY,iBAAiB,SAAS,aAAa;;;UAG/E;WACC,UAAU;;UAEX;WACC,YAAY,eAAe;WAC3B,YAAY,eAAe;WAC3B,QAAQ,eAAe;WACvB,QAAQ,eAAe;WACvB,gBAAgB,eAAe;;UAEhC;WACC;WACA;WACA;aACE,MAAM;aACN,MAAM;;WAER,QAAQ,eAAe;WACvB,gBAAgB,eAAe;WAC/B,QAAQ,eAAe;;UAExB;WACC;WACA;WACA,MAAM;WACN,MAAM;WACN,QAAQ,eAAe;WACvB,qBAAqB,kBAAkB;;UAExC;WACC;WACA;WACA,MAAM;WACN,MAAM;WACN,QAAQ,eAAe;WACvB,qBAAqB,kBAAkB;;UAExC;WACC;WACA;WACA;WACA,MAAM;WACN,MAAM;;UAEP;WACC;WACA,kBAAkB;WAClB;WACA,qBAAqB,kBAAkB;;;;;;;UAOxC,wBAAwB;WACvB;WACA;WACA,MAAM;WACN,MAAM;;UAEP;WACC;WACA;WACA,MAAM;WACN,MAAM;WACN;WACA;WACA;WACA;WACA;WACA,kBAAkB;WAClB,qBAAqB,kBAAkB;;WAEvC;;UAED;WACC,oBAAoB;WACpB,SAAS;;UAEV;WACC,aAAa;WACb,sBAAsB;;;;;;iBAMhB,iBAAiB,SAAS,0BAA0B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate-domain-CaT6wlDH.mjs","names":[],"sources":["../../../../1-framework/0-foundation/contract/dist/validate-domain.mjs"],"sourcesContent":["import { t as asNamespaceId } from \"./namespace-id-asbWpwMw.mjs\";\nimport { t as ContractValidationError } from \"./contract-validation-error-DEiWp_EI.mjs\";\n//#region src/validate-domain.ts\nfunction indexDomainModels(contract) {\n\tconst index = /* @__PURE__ */ new Map();\n\tfor (const [namespaceKey, namespace] of Object.entries(contract.domain.namespaces)) {\n\t\tconst namespaceId = asNamespaceId(namespaceKey);\n\t\tlet modelsInNamespace = index.get(namespaceId);\n\t\tif (modelsInNamespace === void 0) {\n\t\t\tmodelsInNamespace = /* @__PURE__ */ new Map();\n\t\t\tindex.set(namespaceId, modelsInNamespace);\n\t\t}\n\t\tfor (const [name, model] of Object.entries(namespace.models)) modelsInNamespace.set(name, {\n\t\t\tnamespaceId,\n\t\t\tname,\n\t\t\tmodel\n\t\t});\n\t}\n\treturn index;\n}\nfunction lookupModel(index, ref) {\n\treturn index.get(ref.namespace)?.get(ref.model);\n}\nfunction* iterateIndexedModels(index) {\n\tfor (const modelsInNamespace of index.values()) for (const entry of modelsInNamespace.values()) yield entry;\n}\nfunction validateContractDomain(contract) {\n\tconst errors = [];\n\tconst modelIndex = indexDomainModels(contract);\n\tvalidateRoots(contract, modelIndex, errors);\n\tvalidateVariantsAndBases(modelIndex, errors);\n\tvalidateRelationTargets(modelIndex, errors);\n\tvalidateRelationNullability(modelIndex, errors);\n\tvalidateDiscriminators(modelIndex, errors);\n\tvalidateOwnership(contract, modelIndex, errors);\n\tvalidateValueObjectReferences(contract, errors);\n\tvalidateFieldModifiers(modelIndex, contract, errors);\n\tif (errors.length > 0) throw new ContractValidationError(`Contract domain validation failed:\\n- ${errors.join(\"\\n- \")}`, \"domain\");\n}\nfunction validateRoots(contract, modelIndex, errors) {\n\tconst seenRootTargets = /* @__PURE__ */ new Map();\n\tfor (const [rootKey, crossRef] of Object.entries(contract.roots)) {\n\t\tlet modelsInNamespace = seenRootTargets.get(crossRef.namespace);\n\t\tif (modelsInNamespace === void 0) {\n\t\t\tmodelsInNamespace = /* @__PURE__ */ new Set();\n\t\t\tseenRootTargets.set(crossRef.namespace, modelsInNamespace);\n\t\t}\n\t\tif (modelsInNamespace.has(crossRef.model)) errors.push(`Duplicate root value: \"${crossRef.namespace}:${crossRef.model}\" is mapped by multiple root keys`);\n\t\tmodelsInNamespace.add(crossRef.model);\n\t\tif (!lookupModel(modelIndex, crossRef)) errors.push(`Root \"${rootKey}\" references model \"${crossRef.namespace}:${crossRef.model}\" which does not exist in domain.namespaces`);\n\t}\n}\nfunction validateVariantsAndBases(modelIndex, errors) {\n\tfor (const { namespaceId, name: modelName, model } of iterateIndexedModels(modelIndex)) {\n\t\tif (model.variants) for (const variantName of Object.keys(model.variants)) {\n\t\t\tconst variantEntry = lookupModel(modelIndex, {\n\t\t\t\tnamespace: namespaceId,\n\t\t\t\tmodel: variantName\n\t\t\t});\n\t\t\tif (!variantEntry) {\n\t\t\t\terrors.push(`Model \"${namespaceId}:${modelName}\" lists variant \"${variantName}\" which does not exist at that namespace coordinate`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst variantBase = variantEntry.model.base;\n\t\t\tif (variantBase?.namespace !== namespaceId || variantBase?.model !== modelName) errors.push(`Variant \"${namespaceId}:${variantName}\" has base \"${variantBase?.namespace ?? \"?\"}:${variantBase?.model ?? \"(none)\"}\" but expected \"${namespaceId}:${modelName}\"`);\n\t\t}\n\t\tif (model.base) {\n\t\t\tconst baseEntry = lookupModel(modelIndex, model.base);\n\t\t\tif (!baseEntry) {\n\t\t\t\terrors.push(`Model \"${namespaceId}:${modelName}\" has base \"${model.base.namespace}:${model.base.model}\" which does not exist in domain.namespaces`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!baseEntry.model.variants || !Object.hasOwn(baseEntry.model.variants, modelName)) errors.push(`Model \"${namespaceId}:${modelName}\" has base \"${model.base.namespace}:${model.base.model}\" which does not list it as a variant`);\n\t\t}\n\t}\n}\nfunction validateRelationTargets(modelIndex, errors) {\n\tfor (const { namespaceId, name: modelName, model } of iterateIndexedModels(modelIndex)) for (const [relName, relation] of Object.entries(model.relations ?? {})) {\n\t\tif (relation.to.space !== void 0) continue;\n\t\tif (!lookupModel(modelIndex, relation.to)) errors.push(`Relation \"${relName}\" on model \"${namespaceId}:${modelName}\" targets \"${relation.to.namespace}:${relation.to.model}\" which does not exist in domain.namespaces`);\n\t}\n}\nfunction relationKindLabel(relation) {\n\treturn relation.on === void 0 ? \"embed relation\" : `${relation.cardinality} relation`;\n}\nfunction validateRelationNullability(modelIndex, errors) {\n\tfor (const { namespaceId, name: modelName, model } of iterateIndexedModels(modelIndex)) for (const [relName, relation] of Object.entries(model.relations ?? {})) {\n\t\tconst location = `Relation \"${relName}\" on model \"${namespaceId}:${modelName}\"`;\n\t\tif (relation.on !== void 0 && (relation.cardinality === \"1:1\" || relation.cardinality === \"N:1\")) {\n\t\t\tif (relation.nullable !== void 0 && typeof relation.nullable !== \"boolean\") errors.push(`${location} is a ${relation.cardinality} relation and its \"nullable\" must be a boolean`);\n\t\t\tcontinue;\n\t\t}\n\t\tif (relation.nullable !== void 0) errors.push(`${location} is a ${relationKindLabel(relation)} and must not carry \"nullable\"`);\n\t}\n}\nfunction validateDiscriminators(modelIndex, errors) {\n\tfor (const { namespaceId, name: modelName, model } of iterateIndexedModels(modelIndex)) {\n\t\tif (model.discriminator) {\n\t\t\tif (!model.variants || Object.keys(model.variants).length === 0) errors.push(`Model \"${namespaceId}:${modelName}\" has discriminator but no variants`);\n\t\t\tif (!Object.hasOwn(model.fields, model.discriminator.field)) errors.push(`Discriminator field \"${model.discriminator.field}\" is not a field on model \"${namespaceId}:${modelName}\"`);\n\t\t}\n\t\tif (model.variants && Object.keys(model.variants).length > 0 && !model.discriminator) errors.push(`Model \"${namespaceId}:${modelName}\" has variants but no discriminator`);\n\t\tif (model.base) {\n\t\t\tif (model.discriminator) errors.push(`Model \"${namespaceId}:${modelName}\" has base and must not have discriminator`);\n\t\t\tif (model.variants && Object.keys(model.variants).length > 0) errors.push(`Model \"${namespaceId}:${modelName}\" has base and must not have variants`);\n\t\t}\n\t}\n}\nfunction validateOwnership(contract, modelIndex, errors) {\n\tfor (const { namespaceId, name: modelName, model } of iterateIndexedModels(modelIndex)) {\n\t\tif (!model.owner) continue;\n\t\tif (model.owner === modelName) errors.push(`Model \"${namespaceId}:${modelName}\" cannot own itself`);\n\t\tif (!lookupModel(modelIndex, {\n\t\t\tnamespace: namespaceId,\n\t\t\tmodel: model.owner\n\t\t})) errors.push(`Model \"${namespaceId}:${modelName}\" has owner \"${namespaceId}:${model.owner}\" which does not exist in domain.namespaces`);\n\t\tfor (const [rootKey, rootRef] of Object.entries(contract.roots)) if (rootRef.namespace === namespaceId && rootRef.model === modelName) errors.push(`Owned model \"${namespaceId}:${modelName}\" must not appear in roots (found as root \"${rootKey}\")`);\n\t}\n}\nfunction validateValueObjectReferences(contract, errors) {\n\tconst voNamesByNamespace = /* @__PURE__ */ new Map();\n\tfor (const [namespaceKey, namespace] of Object.entries(contract.domain.namespaces)) {\n\t\tconst namespaceId = asNamespaceId(namespaceKey);\n\t\tvoNamesByNamespace.set(namespaceId, new Set(Object.keys(namespace.valueObjects ?? {})));\n\t}\n\tfunction checkType(type, location, namespaceId) {\n\t\tif (!type) return;\n\t\tconst voNames = voNamesByNamespace.get(namespaceId) ?? /* @__PURE__ */ new Set();\n\t\tif (type.kind === \"valueObject\" && type.name && !voNames.has(type.name)) {\n\t\t\terrors.push(`${location} references value object \"${namespaceId}:${type.name}\" which does not exist in that namespace's valueObjects`);\n\t\t\treturn;\n\t\t}\n\t\tif (type.kind === \"union\") for (const member of type.members ?? []) checkType(member, location, namespaceId);\n\t}\n\tfor (const [namespaceKey, namespace] of Object.entries(contract.domain.namespaces)) {\n\t\tconst namespaceId = asNamespaceId(namespaceKey);\n\t\tfor (const [modelName, model] of Object.entries(namespace.models)) for (const [fieldName, field] of Object.entries(model.fields)) checkType(field?.type, `Model \"${namespaceId}:${modelName}\" field \"${fieldName}\"`, namespaceId);\n\t\tfor (const [voName, vo] of Object.entries(namespace.valueObjects ?? {})) for (const [fieldName, field] of Object.entries(vo.fields)) checkType(field?.type, `Value object \"${namespaceId}:${voName}\" field \"${fieldName}\"`, namespaceId);\n\t}\n}\nfunction validateFieldModifiers(modelIndex, contract, errors) {\n\tfor (const { namespaceId, name: modelName, model } of iterateIndexedModels(modelIndex)) for (const [fieldName, field] of Object.entries(model.fields)) {\n\t\tconst f = field;\n\t\tif (f?.many && f?.dict) errors.push(`Model \"${namespaceId}:${modelName}\" field \"${fieldName}\" cannot have both \"many\" and \"dict\" modifiers`);\n\t}\n\tfor (const [namespaceKey, namespace] of Object.entries(contract.domain.namespaces)) {\n\t\tconst namespaceId = asNamespaceId(namespaceKey);\n\t\tfor (const [voName, vo] of Object.entries(namespace.valueObjects ?? {})) for (const [fieldName, field] of Object.entries(vo.fields)) {\n\t\t\tconst f = field;\n\t\t\tif (f?.many && f?.dict) errors.push(`Value object \"${namespaceId}:${voName}\" field \"${fieldName}\" cannot have both \"many\" and \"dict\" modifiers`);\n\t\t}\n\t}\n}\n//#endregion\nexport { validateContractDomain };\n\n//# sourceMappingURL=validate-domain.mjs.map"],"mappings":"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"}