@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.
- package/dist/{apply-specifier-default-control-policy-9vsCWnn8.d.mts → apply-specifier-default-control-policy-C7GgMLwT.d.mts} +2 -2
- package/dist/apply-specifier-default-control-policy-C7GgMLwT.d.mts.map +1 -0
- package/dist/{authoring-C9lq8UGN.d.mts → authoring-DTZsvKV7.d.mts} +5 -5
- package/dist/{authoring-C9lq8UGN.d.mts.map → authoring-DTZsvKV7.d.mts.map} +1 -1
- package/dist/{canonicalization-BykcD9kZ-DDeZ2c-B.d.mts → canonicalization-DufIiCLc-D8HOry-O.d.mts} +3 -3
- package/dist/{canonicalization-BykcD9kZ-DDeZ2c-B.d.mts.map → canonicalization-DufIiCLc-D8HOry-O.d.mts.map} +1 -1
- package/dist/{codec-D67Y03B_.d.mts → codec-DFvi9jo5.d.mts} +3 -3
- package/dist/{codec-D67Y03B_.d.mts.map → codec-DFvi9jo5.d.mts.map} +1 -1
- package/dist/{codec-types-DrcxdLlC-CDdDe0_A.d.mts → codec-types-DrcxdLlC-CAfu8HRL.d.mts} +2 -2
- package/dist/{codec-types-DrcxdLlC-CDdDe0_A.d.mts.map → codec-types-DrcxdLlC-CAfu8HRL.d.mts.map} +1 -1
- package/dist/{components-utVOE0ha.d.mts → components-DgQX4ccF.d.mts} +4 -4
- package/dist/{components-utVOE0ha.d.mts.map → components-DgQX4ccF.d.mts.map} +1 -1
- package/dist/components.d.mts +17 -17
- package/dist/components__authoring.d.mts +3 -3
- package/dist/components__codec.d.mts +2 -2
- package/dist/components__components.d.mts +3 -3
- package/dist/components__control.d.mts +3 -3
- package/dist/components__emission.d.mts +3 -3
- package/dist/components__execution.d.mts +1 -1
- package/dist/components__ir.d.mts +1 -1
- package/dist/components__psl-ast.d.mts +3 -3
- package/dist/components__runtime.d.mts +1 -1
- package/dist/{config-types-Bb2Sf7YP.d.mts → config-types-CcK2xcMX.d.mts} +7 -7
- package/dist/{config-types-Bb2Sf7YP.d.mts.map → config-types-CcK2xcMX.d.mts.map} +1 -1
- package/dist/config.d.mts +1 -1
- package/dist/config__config-types.d.mts +1 -1
- package/dist/contract-authoring.d.mts +4 -4
- package/dist/{contract-types-Cdqr65a--BsYwlpQo.d.mts → contract-types-BIaUtO7Z-Bcxx2I74.d.mts} +3 -3
- package/dist/{contract-types-Cdqr65a--BsYwlpQo.d.mts.map → contract-types-BIaUtO7Z-Bcxx2I74.d.mts.map} +1 -1
- package/dist/contract.d.mts +10 -10
- package/dist/contract.mjs +2 -2
- package/dist/contract__apply-specifier-default-control-policy.d.mts +1 -1
- package/dist/contract__enum-accessor.d.mts +1 -1
- package/dist/contract__hashing-utils.d.mts +1 -1
- package/dist/contract__hashing.d.mts +2 -2
- package/dist/contract__hashing.mjs +1 -1
- package/dist/contract__resolve-domain-model.d.mts +1 -1
- package/dist/contract__types.d.mts +4 -4
- package/dist/contract__validate-domain.d.mts +1 -1
- package/dist/contract__validate-domain.mjs +1 -1
- package/dist/{control-CqwbImYs.d.mts → control-qWBPmuvX.d.mts} +12 -12
- package/dist/{control-CqwbImYs.d.mts.map → control-qWBPmuvX.d.mts.map} +1 -1
- package/dist/{declarations-CgS5vnfJ-Dhi3X7oU.mjs → declarations-C0VwsVFX-24_6w6Lb.mjs} +26 -4
- package/dist/declarations-C0VwsVFX-24_6w6Lb.mjs.map +1 -0
- package/dist/{domain-envelope-gHv58hD1-B8mta2A6.d.mts → domain-envelope-C2vVIWGK-C5x7cBpU.d.mts} +5 -3
- package/dist/{domain-envelope-gHv58hD1-B8mta2A6.d.mts.map → domain-envelope-C2vVIWGK-C5x7cBpU.d.mts.map} +1 -1
- package/dist/emission-jG88SNeC.d.mts +2 -0
- package/dist/{emission-types-CND9Xi8O-BxLcJq2c.d.mts → emission-types-CND9Xi8O-DKnaAGFS.d.mts} +5 -5
- package/dist/{emission-types-CND9Xi8O-BxLcJq2c.d.mts.map → emission-types-CND9Xi8O-DKnaAGFS.d.mts.map} +1 -1
- package/dist/{enum-accessor-CCZVzS_f.d.mts → enum-accessor-YBT4SFYM.d.mts} +3 -3
- package/dist/{enum-accessor-CCZVzS_f.d.mts.map → enum-accessor-YBT4SFYM.d.mts.map} +1 -1
- package/dist/errors.d.mts +1 -1
- package/dist/errors__execution.d.mts +1 -1
- package/dist/{execution-BiivimSo.d.mts → execution-BW3cjWqQ.d.mts} +2 -2
- package/dist/{execution-BiivimSo.d.mts.map → execution-BW3cjWqQ.d.mts.map} +1 -1
- package/dist/{execution-BVq3wWK_.d.mts → execution-DHFIqFJC.d.mts} +2 -2
- package/dist/{execution-BVq3wWK_.d.mts.map → execution-DHFIqFJC.d.mts.map} +1 -1
- package/dist/{framework-authoring-50f3xfDT-BEB5Y_Vg.d.mts → framework-authoring-CsVwBOxP-saf7NH7p.d.mts} +5 -5
- package/dist/{framework-authoring-50f3xfDT-BEB5Y_Vg.d.mts.map → framework-authoring-CsVwBOxP-saf7NH7p.d.mts.map} +1 -1
- package/dist/{framework-components-CHaw_oBm-B5HHh_b7.d.mts → framework-components-DNtoaHTX-DWt4JeHF.d.mts} +6 -6
- package/dist/{framework-components-CHaw_oBm-B5HHh_b7.d.mts.map → framework-components-DNtoaHTX-DWt4JeHF.d.mts.map} +1 -1
- package/dist/{hashing-BAPc4zoz.d.mts → hashing-BznADJtu.d.mts} +4 -4
- package/dist/{hashing-BAPc4zoz.d.mts.map → hashing-BznADJtu.d.mts.map} +1 -1
- package/dist/{hashing-CjTNYBuj.mjs → hashing-CLRfNAxh.mjs} +8 -7
- package/dist/hashing-CLRfNAxh.mjs.map +1 -0
- package/dist/{hashing-utils-BUU3eFo9.d.mts → hashing-utils-pciIgMxz.d.mts} +2 -2
- package/dist/{hashing-utils-BUU3eFo9.d.mts.map → hashing-utils-pciIgMxz.d.mts.map} +1 -1
- package/dist/ids.d.mts +2 -2
- package/dist/ids__runtime.d.mts +1 -1
- package/dist/{ir-CGDgzJPj.d.mts → ir-BOKp6I1y.d.mts} +2 -2
- package/dist/{ir-CGDgzJPj.d.mts.map → ir-BOKp6I1y.d.mts.map} +1 -1
- package/dist/{mutation-default-types-B5ij1r12-DG0aqkcM.d.mts → mutation-default-types--XIOgxCm-B6NmSBxF.d.mts} +4 -4
- package/dist/{mutation-default-types-B5ij1r12-DG0aqkcM.d.mts.map → mutation-default-types--XIOgxCm-B6NmSBxF.d.mts.map} +1 -1
- package/dist/{parse-C54e9842-D-fu5Z8Y.d.mts → parse-DqMTVHCw-Cw1RjDIQ.d.mts} +16 -7
- package/dist/parse-DqMTVHCw-Cw1RjDIQ.d.mts.map +1 -0
- package/dist/{parse-1owoiwHJ-CqCnC7Qx.mjs → parse-EvT3Ac9q-j7zYLB_6.mjs} +23 -10
- package/dist/parse-EvT3Ac9q-j7zYLB_6.mjs.map +1 -0
- package/dist/{psl-ast-DPyStNWj-XiHYf17a.d.mts → psl-ast-CAA6nJRp-DIk-wyX1.d.mts} +4 -3
- package/dist/psl-ast-CAA6nJRp-DIk-wyX1.d.mts.map +1 -0
- package/dist/psl-ast-irbNZ93U.d.mts +2 -0
- package/dist/psl-parser.d.mts +29 -15
- package/dist/psl-parser.d.mts.map +1 -1
- package/dist/psl-parser.mjs +102 -39
- package/dist/psl-parser.mjs.map +1 -1
- package/dist/psl-parser__format.d.mts +1 -1
- package/dist/psl-parser__format.mjs +2 -2
- package/dist/psl-parser__format.mjs.map +1 -1
- package/dist/psl-parser__interpret.d.mts +7 -7
- package/dist/psl-parser__syntax.d.mts +1 -1
- package/dist/psl-parser__syntax.mjs +2 -2
- package/dist/psl-parser__syntax.mjs.map +1 -1
- package/dist/psl-printer.d.mts +4 -4
- package/dist/psl-printer.mjs +5 -1
- package/dist/psl-printer.mjs.map +1 -1
- package/dist/{resolve-domain-model-CBM8n-rX-DYZcbj-r.d.mts → resolve-domain-model-zoHO_vad-CUS97MWr.d.mts} +3 -3
- package/dist/resolve-domain-model-zoHO_vad-CUS97MWr.d.mts.map +1 -0
- package/dist/{runtime-DM3z02wq.d.mts → runtime-BCzeC3dA.d.mts} +4 -4
- package/dist/{runtime-DM3z02wq.d.mts.map → runtime-BCzeC3dA.d.mts.map} +1 -1
- package/dist/{symbol-table-D4guXoTO-CS6SD0MP.d.mts → symbol-table-DZDTpkQ7-BrBUqb4g.d.mts} +12 -9
- package/dist/symbol-table-DZDTpkQ7-BrBUqb4g.d.mts.map +1 -0
- package/dist/{temporal-presets-C3IeyYNF-Dkn3gjfg.d.mts → temporal-presets-UGhnJIuo-DCoJ3HJj.d.mts} +4 -4
- package/dist/{temporal-presets-C3IeyYNF-Dkn3gjfg.d.mts.map → temporal-presets-UGhnJIuo-DCoJ3HJj.d.mts.map} +1 -1
- package/dist/{types-import-spec-D-EPunhV-DxmpFe3l.d.mts → types-import-spec-D-EPunhV-B3y6hGP5.d.mts} +3 -3
- package/dist/{types-import-spec-D-EPunhV-DxmpFe3l.d.mts.map → types-import-spec-D-EPunhV-B3y6hGP5.d.mts.map} +1 -1
- package/dist/{types-BiXRgK9f.d.mts → types-ofsYLi7A.d.mts} +3 -3
- package/dist/{types-BiXRgK9f.d.mts.map → types-ofsYLi7A.d.mts.map} +1 -1
- package/dist/{validate-domain-CaT6wlDH.mjs → validate-domain-DgY72oWI.mjs} +13 -10
- package/dist/validate-domain-DgY72oWI.mjs.map +1 -0
- package/dist/{validate-domain-DiEWAx3K.d.mts → validate-domain-M93ZRMRA.d.mts} +2 -2
- package/dist/{validate-domain-DiEWAx3K.d.mts.map → validate-domain-M93ZRMRA.d.mts.map} +1 -1
- package/package.json +15 -15
- package/dist/apply-specifier-default-control-policy-9vsCWnn8.d.mts.map +0 -1
- package/dist/declarations-CgS5vnfJ-Dhi3X7oU.mjs.map +0 -1
- package/dist/emission-B9RTq119.d.mts +0 -2
- package/dist/hashing-CjTNYBuj.mjs.map +0 -1
- package/dist/parse-1owoiwHJ-CqCnC7Qx.mjs.map +0 -1
- package/dist/parse-C54e9842-D-fu5Z8Y.d.mts.map +0 -1
- package/dist/psl-ast-DPyStNWj-XiHYf17a.d.mts.map +0 -1
- package/dist/psl-ast-Dgvia310.d.mts +0 -2
- package/dist/resolve-domain-model-CBM8n-rX-DYZcbj-r.d.mts.map +0 -1
- package/dist/symbol-table-D4guXoTO-CS6SD0MP.d.mts.map +0 -1
- package/dist/validate-domain-CaT6wlDH.mjs.map +0 -1
|
@@ -88,8 +88,9 @@ function omitDefaults(obj, path, shouldPreserveEmpty) {
|
|
|
88
88
|
const isModelRelations = matchesPathPattern(currentPath, DOMAIN_MODEL_RELATIONS_PATTERN);
|
|
89
89
|
const isModelStorage = matchesPathPattern(currentPath, DOMAIN_MODEL_STORAGE_PATTERN);
|
|
90
90
|
const isNullableField = key === "nullable";
|
|
91
|
+
const isManyElementNullable = key === "elementNullable" && path.at(-1) === "many";
|
|
91
92
|
const isFamilyPreserved = shouldPreserveEmpty?.(currentPath) ?? false;
|
|
92
|
-
if (!isRequiredDomainNamespaces && !isDomainNamespaceSlot && !isRequiredDomainModels && !isRequiredStorageNamespaces && !isStorageNamespaceEntries && !isRequiredRoots && !isRequiredExtensions && !isRequiredCapabilities && !isRequiredMeta && !isRequiredExecutionDefaults && !isExtensionNamespace && !isModelRelations && !isModelStorage && !isNullableField && !isFamilyPreserved) continue;
|
|
93
|
+
if (!isRequiredDomainNamespaces && !isDomainNamespaceSlot && !isRequiredDomainModels && !isRequiredStorageNamespaces && !isStorageNamespaceEntries && !isRequiredRoots && !isRequiredExtensions && !isRequiredCapabilities && !isRequiredMeta && !isRequiredExecutionDefaults && !isExtensionNamespace && !isModelRelations && !isModelStorage && !isNullableField && !isManyElementNullable && !isFamilyPreserved) continue;
|
|
93
94
|
}
|
|
94
95
|
result[key] = omitDefaults(value, currentPath, shouldPreserveEmpty);
|
|
95
96
|
}
|
|
@@ -100,7 +101,7 @@ function sortObjectKeys(obj) {
|
|
|
100
101
|
if (Array.isArray(obj)) return obj.map((item) => sortObjectKeys(item));
|
|
101
102
|
const sorted = {};
|
|
102
103
|
const keys = Object.keys(obj).sort();
|
|
103
|
-
for (const key of keys) sorted[key] = sortObjectKeys(obj[key]);
|
|
104
|
+
for (const key of keys) sorted[key] = sortObjectKeys(blindCast(obj)[key]);
|
|
104
105
|
return sorted;
|
|
105
106
|
}
|
|
106
107
|
function orderTopLevel(obj) {
|
|
@@ -120,7 +121,7 @@ function orderTopLevel(obj) {
|
|
|
120
121
|
*/
|
|
121
122
|
function canonicalizeContractToObject(contract, options) {
|
|
122
123
|
const serialized = options.serializeContract(contract);
|
|
123
|
-
const withDefaultsOmitted = omitDefaults({
|
|
124
|
+
const withDefaultsOmitted = blindCast(omitDefaults({
|
|
124
125
|
...ifDefined("schemaVersion", options.schemaVersion),
|
|
125
126
|
targetFamily: serialized["targetFamily"],
|
|
126
127
|
target: serialized["target"],
|
|
@@ -133,11 +134,11 @@ function canonicalizeContractToObject(contract, options) {
|
|
|
133
134
|
capabilities: serialized["capabilities"],
|
|
134
135
|
...ifDefined("defaultControlPolicy", serialized["defaultControlPolicy"]),
|
|
135
136
|
meta: serialized["meta"]
|
|
136
|
-
}, [], options.shouldPreserveEmpty);
|
|
137
|
-
return orderTopLevel(sortObjectKeys(options.sortStorage ? {
|
|
137
|
+
}, [], options.shouldPreserveEmpty));
|
|
138
|
+
return orderTopLevel(blindCast(sortObjectKeys(options.sortStorage ? {
|
|
138
139
|
...withDefaultsOmitted,
|
|
139
140
|
storage: options.sortStorage(withDefaultsOmitted["storage"])
|
|
140
|
-
} : withDefaultsOmitted));
|
|
141
|
+
} : withDefaultsOmitted)));
|
|
141
142
|
}
|
|
142
143
|
function canonicalizeContract(contract, options) {
|
|
143
144
|
return JSON.stringify(canonicalizeContractToObject(contract, options), null, 2);
|
|
@@ -214,4 +215,4 @@ function buildExecutionSection(input) {
|
|
|
214
215
|
//#endregion
|
|
215
216
|
export { computeProfileHash as a, computeExecutionHash as i, canonicalizeContract as n, computeStorageHash as o, canonicalizeContractToObject as r, buildExecutionSection as t };
|
|
216
217
|
|
|
217
|
-
//# sourceMappingURL=hashing-
|
|
218
|
+
//# sourceMappingURL=hashing-CLRfNAxh.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hashing-CLRfNAxh.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 isManyElementNullable = key === \"elementNullable\" && path.at(-1) === \"many\";\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 && !isManyElementNullable && !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(blindCast(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 = blindCast(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(blindCast(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,wBAAwB,QAAQ,qBAAqB,KAAK,GAAG,EAAE,MAAM;GAC3E,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,yBAAyB,CAAC,mBAAmB;EACrZ;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,UAAU,GAAG,CAAC,CAAC,IAAI;CACxE,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,UAAU,aAAa;EAClD,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,CAAC;CACnC,OAAO,cAAc,UAAU,eAAe,QAAQ,cAAc;EACnE,GAAG;EACH,SAAS,QAAQ,YAAY,oBAAoB,UAAU;CAC5D,IAAI,mBAAmB,CAAC,CAAC;AAC1B;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,4 +1,4 @@
|
|
|
1
|
-
import { i as StorageSort, n as PreserveEmptyPredicate } from "./canonicalization-
|
|
1
|
+
import { i as StorageSort, n as PreserveEmptyPredicate } from "./canonicalization-DufIiCLc-D8HOry-O.mjs";
|
|
2
2
|
//#region ../../../1-framework/0-foundation/contract/dist/hashing-utils.d.mts
|
|
3
3
|
//#region src/canonicalization-path-match.d.ts
|
|
4
4
|
type PathSegment = string | '*' | readonly string[];
|
|
@@ -16,4 +16,4 @@ declare function compareByNameProperty(a: unknown, b: unknown): number;
|
|
|
16
16
|
declare function createStorageSort(targets: readonly NamedArraySortTarget[], compare?: (a: unknown, b: unknown) => number): StorageSort;
|
|
17
17
|
//#endregion
|
|
18
18
|
export { compareByNameProperty as a, matchesPathPattern as c, PathSegment$1 as i, PathPattern as n, createPreserveEmptyPredicate as o, PathSegment as r, createStorageSort as s, NamedArraySortTarget as t };
|
|
19
|
-
//# sourceMappingURL=hashing-utils-
|
|
19
|
+
//# sourceMappingURL=hashing-utils-pciIgMxz.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hashing-utils-
|
|
1
|
+
{"version":3,"file":"hashing-utils-pciIgMxz.d.mts","names":[],"sources":["../../../../1-framework/0-foundation/contract/dist/hashing-utils.d.mts"],"mappings":";;;KAEK;KACA,uBAAuB;iBACX,mBAAmB,yBAAyB,SAAS;iBACrD,6BAA6B,mBAAmB,gBAAgB;;;KAG5E;UACK;WACC,eAAe;WACf;;iBAEM,sBAAsB,YAAY;iBAClC,kBAAkB,kBAAkB,wBAAwB,WAAW,YAAY,wBAAwB"}
|
package/dist/ids.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { F as ExecutionMutationDefaultValue } from "./domain-envelope-
|
|
2
|
-
import { o as ColumnTypeDescriptor } from "./codec-
|
|
1
|
+
import { F as ExecutionMutationDefaultValue } from "./domain-envelope-C2vVIWGK-C5x7cBpU.mjs";
|
|
2
|
+
import { o as ColumnTypeDescriptor } from "./codec-DFvi9jo5.mjs";
|
|
3
3
|
import { cuid2 as cuid2$1 } from "uniku/cuid2";
|
|
4
4
|
import { ksuid as ksuid$1 } from "uniku/ksuid";
|
|
5
5
|
import { nanoid as nanoid$1 } from "uniku/nanoid";
|
package/dist/ids__runtime.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z as GeneratedValueSpec } from "./domain-envelope-
|
|
1
|
+
import { z as GeneratedValueSpec } from "./domain-envelope-C2vVIWGK-C5x7cBpU.mjs";
|
|
2
2
|
//#region ../../../1-framework/2-authoring/ids/dist/runtime.d.mts
|
|
3
3
|
//#region src/runtime.d.ts
|
|
4
4
|
declare function generateId(spec: GeneratedValueSpec): string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as StorageNamespace, X as StorageBase, n as ApplicationDomain } from "./domain-envelope-
|
|
1
|
+
import { $ as StorageNamespace, X as StorageBase, n as ApplicationDomain } from "./domain-envelope-C2vVIWGK-C5x7cBpU.mjs";
|
|
2
2
|
import { Type } from "arktype";
|
|
3
3
|
//#region ../../../1-framework/1-core/framework-components/dist/ir.d.mts
|
|
4
4
|
//#region src/ir/ir-node.d.ts
|
|
@@ -356,4 +356,4 @@ interface StorageType extends IRNode {
|
|
|
356
356
|
}
|
|
357
357
|
//#endregion
|
|
358
358
|
export { promoteBuiltinKinds as S, domainElementCoordinates as _, IRNode as a, freezeNode as b, NamespaceBase as c, Storage as d, StorageType as f, coordinateKey as g, buildSingleNamespaceView as h, EntityKindDescriptor as i, NamespacedEntities as l, buildNamespacedEntities as m, DefaultNamespaceEntries as n, IRNodeBase as o, UNBOUND_NAMESPACE_ID as p, EntityCoordinate as r, Namespace as s, AnyEntityKindDescriptor as t, SingleNamespaceView as u, elementCoordinates as v, hydrateNamespaceEntities as x, entityAt as y };
|
|
359
|
-
//# sourceMappingURL=ir-
|
|
359
|
+
//# sourceMappingURL=ir-BOKp6I1y.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ir-
|
|
1
|
+
{"version":3,"file":"ir-BOKp6I1y.d.mts","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/ir.d.mts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA4CU;WACC;;uBAEY,sBAAsB;oBACzB;;;;;;;;;;;iBAWH,WAAW,UAAU,QAAQ,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;cA0B1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAiCJ,kBAAkB,QAAQ;WACzB;WACA,SAAS,SAAS,eAAe,SAAS;;;;;;;WAO1C;;uBAEY,sBAAsB,sBAAsB;oBAC/C;oBACA,SAAS,SAAS,eAAe,SAAS;oBAC1C;;;;;;MAMd;;;;;;;;;;;;;;;;;;;;UAoBI;WACC;WACA;WACA;WACA;;;;;;;;;;;;;iBAaM,mBAAmB,SAAS,KAAK,6BAA6B,UAAU;;;;;;;;;;;;;;iBAcxE,cAAc,YAAY,KAAK;;;;;;;iBAO/B,SAAS,aAAa,SAAS,KAAK,4BAA4B,OAAO,KAAK,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAoCpJ,gBAAgB;WACf,YAAY,SAAS,eAAe;;;;;;;;;KAS1C,wBAAwB;WAClB;KACN,+BAA+B,cAAc;WACvC,eAAe;KACrB;;;;;;;;;;;;;;;;KAgBA,oBAAoB,UAAU,4CAA4C,KAAK,kBAAkB,gBAAgB,WAAW,YAAY,SAAS,MAAM;WACjJ,qBAAqB,KAAK,cAAc,UAAU,mDAAmD,YAAY,IAAI,SAAS;;;KAGpI,UAAU,cAAc;WAClB,eAAe;IACtB;;;;;;;;;;KAUC,mBAAmB;WACb;GACR,4CAA4C,YAAY,yBAAyB,oBAAoB,UAAU,uBAAuB,MAAM;;;;;;;iBAO9H,oBAAoB,OAAO,SAAS,SAAS,0BAA0B,kCAAkC;;;;;;;;iBAQzG,yBAAyB,OAAO,SAAS,SAAS,kCAAkC;;;;;;iBAMpF,wBAAwB,MAAM,SAAS,SAAS,kCAAkC;;;;;;;;;;iBAUlF,yBAAyB,QAAQ,KAAK,mCAAmC,UAAU;;;UAG1F,qBAAqB,OAAO;WAC3B;WACA,QAAQ;WACR,YAAY,OAAO,UAAU;;KAEnC,0BAA0B;;;;;;;;;;;;;iBAad,yBAAyB,SAAS,SAAS,eAAe,SAAS,4BAA4B,OAAO,oBAAoB,0BAA0B,6BAA6B,gBAAgB,eAAe,SAAS;;;;;;;;;;;;;;;;;;;;;UAqBhO,oBAAoB;WACnB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { F as ExecutionMutationDefaultValue, P as ExecutionMutationDefaultPhases, a as ColumnDefault } from "./domain-envelope-
|
|
2
|
-
import { N as DataTypeAuthoringEntry } from "./framework-authoring-
|
|
3
|
-
//#region ../../../1-framework/1-core/framework-components/dist/mutation-default-types
|
|
1
|
+
import { F as ExecutionMutationDefaultValue, P as ExecutionMutationDefaultPhases, a as ColumnDefault } from "./domain-envelope-C2vVIWGK-C5x7cBpU.mjs";
|
|
2
|
+
import { N as DataTypeAuthoringEntry } from "./framework-authoring-CsVwBOxP-saf7NH7p.mjs";
|
|
3
|
+
//#region ../../../1-framework/1-core/framework-components/dist/mutation-default-types--XIOgxCm.d.mts
|
|
4
4
|
//#region src/shared/mutation-default-types.d.ts
|
|
5
5
|
interface SourcePosition {
|
|
6
6
|
readonly offset: number;
|
|
@@ -85,4 +85,4 @@ interface ControlDefaultRegistries extends Pick<ControlMutationDefaults, 'defaul
|
|
|
85
85
|
}
|
|
86
86
|
//#endregion
|
|
87
87
|
export { DefaultFunctionLoweringContext as a, MutationDefaultGeneratorDescriptor as c, TypedDefaultFunctionCall as d, ControlMutationDefaults as i, SourceDiagnostic as l, ControlMutationDefaultEntry as n, LoweredDefaultResult as o, ControlMutationDefaultRegistry as r, LoweredDefaultValue as s, ControlDefaultRegistries as t, SourceSpan as u };
|
|
88
|
-
//# sourceMappingURL=mutation-default-types-
|
|
88
|
+
//# sourceMappingURL=mutation-default-types--XIOgxCm-B6NmSBxF.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation-default-types-
|
|
1
|
+
{"version":3,"file":"mutation-default-types--XIOgxCm-B6NmSBxF.d.mts","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/mutation-default-types--XIOgxCm.d.mts"],"mappings":";;;;UAGU;WACC;WACA;WACA;;UAED;WACC,OAAO;WACP,KAAK;;UAEN;WACC;WACA;WACA;WACA,OAAO;WACP,OAAO,SAAS;;UAEjB;WACC;WACA;WACA;WACA;;KAEN;WACM;WACA,cAAc;;WAEd;WACA,WAAW;;KAEjB;WACM;WACA,OAAO;;WAEP;WACA,YAAY;;UAEb;WACC;;;;;;;;;;WAUA;;;;;;;WAOA,eAAe,OAAO,4BAA4B;;UAEnD;WACC;WACA,MAAM;WACN,MAAM,SAAS;;UAEhB;WACC;WACA,QAAQ;aACN,MAAM;aACN,SAAS;QACd;WACG;;KAEN,iCAAiC,oBAAoB;UAChD;WACC,yBAAyB;WACzB,+BAA+B;;;;;;UAMhC,iCAAiC,KAAK;WACrC,iBAAiB,SAAS,eAAe"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { U as PslSpan } from "./framework-authoring-
|
|
2
|
-
import { o as TaggedLiteralCanonicalization } from "./temporal-presets-
|
|
3
|
-
import "./control-
|
|
4
|
-
import "./psl-ast-
|
|
5
|
-
import { h as PslParserOptions, r as ContractSourceDiagnostic } from "./config-types-
|
|
1
|
+
import { U as PslSpan } from "./framework-authoring-CsVwBOxP-saf7NH7p.mjs";
|
|
2
|
+
import { o as TaggedLiteralCanonicalization } from "./temporal-presets-UGhnJIuo-DCoJ3HJj.mjs";
|
|
3
|
+
import "./control-qWBPmuvX.mjs";
|
|
4
|
+
import "./psl-ast-irbNZ93U.mjs";
|
|
5
|
+
import { h as PslParserOptions, r as ContractSourceDiagnostic } from "./config-types-CcK2xcMX.mjs";
|
|
6
6
|
import { n as TokenKind, t as Token } from "./tokenizer-DW30uwhx-BHsWTwYk.mjs";
|
|
7
|
-
//#region ../../../1-framework/2-authoring/psl-parser/dist/parse-
|
|
7
|
+
//#region ../../../1-framework/2-authoring/psl-parser/dist/parse-DqMTVHCw.d.mts
|
|
8
8
|
//#region src/syntax/syntax-kind.d.ts
|
|
9
9
|
type SyntaxKind = 'Document' | 'ModelDeclaration' | 'CompositeTypeDeclaration' | 'Namespace' | 'TypesBlock' | 'GenericBlockDeclaration' | 'FieldDeclaration' | 'NamedTypeDeclaration' | 'KeyValuePair' | 'FieldAttribute' | 'ModelAttribute' | 'AttributeArgList' | 'AttributeArg' | 'TypeAnnotation' | 'Identifier' | 'QualifiedName' | 'FunctionCall' | 'PathExpr' | 'ArrayLiteral' | 'StringLiteralExpr' | 'TaggedLiteral' | 'NumberLiteralExpr' | 'BooleanLiteralExpr' | 'ObjectLiteralExpr' | 'ObjectField';
|
|
10
10
|
//#endregion
|
|
@@ -219,6 +219,7 @@ declare class QualifiedNameAst implements AstNode {
|
|
|
219
219
|
space(): IdentifierAst | undefined;
|
|
220
220
|
namespace(): IdentifierAst | undefined;
|
|
221
221
|
identifier(): IdentifierAst | undefined;
|
|
222
|
+
segments(): Iterable<IdentifierAst>;
|
|
222
223
|
/**
|
|
223
224
|
* Every identifier segment, in source order. A bare `Vector` yields
|
|
224
225
|
* `['Vector']`; a qualified `pgvector.Vector` yields `['pgvector', 'Vector']`.
|
|
@@ -374,6 +375,7 @@ declare class ModelAttributeAst implements AstNode {
|
|
|
374
375
|
//#endregion
|
|
375
376
|
//#region src/syntax/ast/type-annotation.d.ts
|
|
376
377
|
declare class TypeAnnotationAst implements AstNode {
|
|
378
|
+
#private;
|
|
377
379
|
readonly syntax: SyntaxNode;
|
|
378
380
|
constructor(syntax: SyntaxNode);
|
|
379
381
|
/** The annotation's reference, doubling as the constructor callee when an {@link argList} follows. */
|
|
@@ -385,7 +387,14 @@ declare class TypeAnnotationAst implements AstNode {
|
|
|
385
387
|
rbracket(): SyntaxToken | undefined;
|
|
386
388
|
questionMark(): SyntaxToken | undefined;
|
|
387
389
|
isList(): boolean;
|
|
390
|
+
/**
|
|
391
|
+
* The list/field axis: a `?` after `]` (list nullable) or, when this is not a
|
|
392
|
+
* list, the sole field-level `?`. A `?` before `[` is the element axis and
|
|
393
|
+
* does not count here.
|
|
394
|
+
*/
|
|
388
395
|
isOptional(): boolean;
|
|
396
|
+
/** The element axis: a `?` positioned before `[`, meaningful only for lists. */
|
|
397
|
+
isElementOptional(): boolean;
|
|
389
398
|
static cast(node: SyntaxNode): TypeAnnotationAst | undefined;
|
|
390
399
|
}
|
|
391
400
|
//#endregion
|
|
@@ -505,4 +514,4 @@ interface ParseResult {
|
|
|
505
514
|
declare function parse(source: string, filename: string, options?: PslParserOptions): ParseResult;
|
|
506
515
|
//#endregion
|
|
507
516
|
export { castExpression as $, ObjectFieldAst as A, Range as B, KeyValuePairAst as C, NamespaceDeclarationAst as D, NamedTypeDeclarationAst as E, Position as F, SyntaxKind as G, StringLiteralExprAst as H, PslDiagnostic as I, TaggedLiteralExprAst as J, SyntaxNode as K, PslDiagnosticCollector as L, ParseDiagnostic as M, ParseResult as N, NamespaceMemberAst as O, PathExprAst as P, any as Q, PslSources as R, IdentifierAst as S, ModelDeclarationAst as T, StringLiteralQuote as U, SourceFile as V, SyntaxElement as W, TypeAnnotationAst as X, TokenAtOffset as Y, TypesBlockAst as Z, GenericBlockDeclarationAst as _, AttributeAst as a, filterChildren as at, GreenNode as b, BracedBlock as c, greenNode as ct, DiagnosticSource as d, parse as dt, createPslDiagnosticCollector as et, DocumentAst as f, printSyntax as ft, FunctionCallAst as g, FieldDeclarationAst as h, AttributeArgListAst as i, dottedPathsIn as it, ObjectLiteralExprAst as j, NumberLiteralExprAst as k, CompositeTypeDeclarationAst as l, greenToken as lt, FieldAttributeAst as m, AstNode as n, diagnosticFromSpan as nt, BlockMemberAst as o, findChildToken as ot, ExpressionAst as p, SyntaxToken as q, AttributeArgAst as r, diagnosticSource as rt, BooleanLiteralExprAst as s, findFirstChild as st, ArrayLiteralAst as t, createSyntaxTree as tt, DeclarationAst as u, mapPslDiagnostics as ut, GenericBlockMemberAst as v, ModelAttributeAst as w, GreenToken as x, GreenElement as y, QualifiedNameAst as z };
|
|
508
|
-
//# sourceMappingURL=parse-
|
|
517
|
+
//# sourceMappingURL=parse-DqMTVHCw-Cw1RjDIQ.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-DqMTVHCw-Cw1RjDIQ.d.mts","names":[],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/parse-DqMTVHCw.d.mts"],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import { t as InternalError } from "./internal-error-ChGYPVpq-DhUD05u0.mjs";
|
|
|
2
2
|
import { r as UNSPECIFIED_PSL_NAMESPACE_ID } from "./psl-ast-CyvE6CR-.mjs";
|
|
3
3
|
import { r as isTerminatedStringLiteral, t as Tokenizer } from "./tokenizer-BMz7z2KR-J0yZ4im3.mjs";
|
|
4
4
|
import { a as createSyntaxTree } from "./ast-helpers-2XRnkQEO-BxG5qx3Q.mjs";
|
|
5
|
-
import { o as DocumentAst } from "./declarations-
|
|
6
|
-
//#region ../../../1-framework/2-authoring/psl-parser/dist/parse-
|
|
5
|
+
import { o as DocumentAst } from "./declarations-C0VwsVFX-24_6w6Lb.mjs";
|
|
6
|
+
//#region ../../../1-framework/2-authoring/psl-parser/dist/parse-EvT3Ac9q.mjs
|
|
7
7
|
const CARRIAGE_RETURN = 13;
|
|
8
8
|
const LINE_FEED = 10;
|
|
9
9
|
var SourceFile = class {
|
|
@@ -527,11 +527,15 @@ function parseAttribute(cursor) {
|
|
|
527
527
|
return cursor.finishNode();
|
|
528
528
|
}
|
|
529
529
|
/**
|
|
530
|
-
* A type annotation: `QualifiedName (argList)? ([])? (?)?`, e.g.
|
|
531
|
-
* `pgvector.Vector(1536)[]?`.
|
|
532
|
-
*
|
|
530
|
+
* A type annotation: `QualifiedName (argList)? (?)? ([])? (?)?`, e.g.
|
|
531
|
+
* `pgvector.Vector(1536)?[]?`. The two `?` positions are distinct axes: a `?`
|
|
532
|
+
* before `[]` makes the list elements nullable; a `?` after `[]` makes the
|
|
533
|
+
* list itself nullable. Without a `[]`, a single `?` is the field-level
|
|
534
|
+
* optional (`Foo?`), so a second `?` (`Foo??`) is malformed. When the field
|
|
535
|
+
* has no type, no node is emitted — a missing type is the absence of a
|
|
536
|
+
* `TypeAnnotation`, not a zero-width one.
|
|
533
537
|
*/
|
|
534
|
-
function parseTypeAnnotation(cursor) {
|
|
538
|
+
function parseTypeAnnotation(cursor, memberCode) {
|
|
535
539
|
const kind = cursor.peekKind();
|
|
536
540
|
if (kind !== "Ident" && kind !== "LBracket" && kind !== "Question") return;
|
|
537
541
|
cursor.startNode("TypeAnnotation");
|
|
@@ -539,11 +543,20 @@ function parseTypeAnnotation(cursor) {
|
|
|
539
543
|
parseQualifiedName(cursor);
|
|
540
544
|
if (cursor.peekKind() === "LParen") parseAttributeArgList(cursor);
|
|
541
545
|
}
|
|
546
|
+
const hasLeadingQuestion = cursor.peekKind() === "Question";
|
|
547
|
+
if (hasLeadingQuestion) cursor.bump();
|
|
548
|
+
let isListType = false;
|
|
542
549
|
if (cursor.peekKind() === "LBracket") {
|
|
550
|
+
isListType = true;
|
|
543
551
|
cursor.bump();
|
|
544
552
|
if (cursor.peekKind() === "RBracket") cursor.bump();
|
|
545
553
|
}
|
|
546
|
-
|
|
554
|
+
let trailingAllowed = isListType || !hasLeadingQuestion;
|
|
555
|
+
while (cursor.peekKind() === "Question") {
|
|
556
|
+
if (!trailingAllowed) cursor.diagnostic(memberCode, "Unexpected \"?\"; a type may be optional (`Foo?`), a list (`Foo[]`), have nullable elements (`Foo?[]`), or both (`Foo?[]?`)", cursor.mark());
|
|
557
|
+
cursor.bump();
|
|
558
|
+
trailingAllowed = false;
|
|
559
|
+
}
|
|
547
560
|
cursor.finishNode();
|
|
548
561
|
}
|
|
549
562
|
/**
|
|
@@ -710,7 +723,7 @@ function parseField(cursor) {
|
|
|
710
723
|
const nameText = cursor.peekToken().text;
|
|
711
724
|
parseIdentifier(cursor);
|
|
712
725
|
if (cursor.peekKind() !== "Ident") cursor.diagnostic("PSL_INVALID_MODEL_MEMBER", `Expected a type after field "${nameText}"`, nameMark);
|
|
713
|
-
parseTypeAnnotation(cursor);
|
|
726
|
+
parseTypeAnnotation(cursor, "PSL_INVALID_MODEL_MEMBER");
|
|
714
727
|
while (cursor.peekKind() === "At") parseAttribute(cursor);
|
|
715
728
|
return cursor.finishNode();
|
|
716
729
|
}
|
|
@@ -722,7 +735,7 @@ function parseNamedType(cursor) {
|
|
|
722
735
|
parseIdentifier(cursor);
|
|
723
736
|
if (cursor.peekKind() === "Equals") cursor.bump();
|
|
724
737
|
else cursor.diagnostic("PSL_INVALID_TYPES_MEMBER", `Expected "=" after "${nameText}"`, nameMark);
|
|
725
|
-
parseTypeAnnotation(cursor);
|
|
738
|
+
parseTypeAnnotation(cursor, "PSL_INVALID_TYPES_MEMBER");
|
|
726
739
|
while (cursor.peekKind() === "At") parseAttribute(cursor);
|
|
727
740
|
return cursor.finishNode();
|
|
728
741
|
}
|
|
@@ -746,4 +759,4 @@ function parseKeyValue(cursor, options = { memberAttributes: false }) {
|
|
|
746
759
|
//#endregion
|
|
747
760
|
export { greenToken as a, greenNode as i, PslSources as n, parse as o, SourceFile as r, GreenNodeBuilder as t };
|
|
748
761
|
|
|
749
|
-
//# sourceMappingURL=parse-
|
|
762
|
+
//# sourceMappingURL=parse-EvT3Ac9q-j7zYLB_6.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-EvT3Ac9q-j7zYLB_6.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-EvT3Ac9q.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-C0VwsVFX.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)?[]?`. The two `?` positions are distinct axes: a `?`\n* before `[]` makes the list elements nullable; a `?` after `[]` makes the\n* list itself nullable. Without a `[]`, a single `?` is the field-level\n* optional (`Foo?`), so a second `?` (`Foo??`) is malformed. When the field\n* has no type, no node is emitted — a missing type is the absence of a\n* `TypeAnnotation`, not a zero-width one.\n*/\nfunction parseTypeAnnotation(cursor, memberCode) {\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\tconst hasLeadingQuestion = cursor.peekKind() === \"Question\";\n\tif (hasLeadingQuestion) cursor.bump();\n\tlet isListType = false;\n\tif (cursor.peekKind() === \"LBracket\") {\n\t\tisListType = true;\n\t\tcursor.bump();\n\t\tif (cursor.peekKind() === \"RBracket\") cursor.bump();\n\t}\n\tlet trailingAllowed = isListType || !hasLeadingQuestion;\n\twhile (cursor.peekKind() === \"Question\") {\n\t\tif (!trailingAllowed) cursor.diagnostic(memberCode, \"Unexpected \\\"?\\\"; a type may be optional (`Foo?`), a list (`Foo[]`), have nullable elements (`Foo?[]`), or both (`Foo?[]?`)\", cursor.mark());\n\t\tcursor.bump();\n\t\ttrailingAllowed = false;\n\t}\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, \"PSL_INVALID_MODEL_MEMBER\");\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, \"PSL_INVALID_TYPES_MEMBER\");\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-EvT3Ac9q.mjs.map"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { I as PslDiagnosticCode, L as PslExtensionBlock, M as ContributedPslDiagnosticCode, U as PslSpan } from "./framework-authoring-
|
|
2
|
-
//#region ../../../1-framework/1-core/framework-components/dist/psl-ast-
|
|
1
|
+
import { I as PslDiagnosticCode, L as PslExtensionBlock, M as ContributedPslDiagnosticCode, U as PslSpan } from "./framework-authoring-CsVwBOxP-saf7NH7p.mjs";
|
|
2
|
+
//#region ../../../1-framework/1-core/framework-components/dist/psl-ast-CAA6nJRp.d.mts
|
|
3
3
|
//#region src/control/psl-ast.d.ts
|
|
4
4
|
interface PslDiagnostic {
|
|
5
5
|
/**
|
|
@@ -73,6 +73,7 @@ interface PslField {
|
|
|
73
73
|
readonly typeConstructor?: PslTypeConstructorCall;
|
|
74
74
|
readonly optional: boolean;
|
|
75
75
|
readonly list: boolean;
|
|
76
|
+
readonly elementOptional?: boolean;
|
|
76
77
|
readonly typeRef?: string;
|
|
77
78
|
readonly attributes: readonly PslFieldAttribute[];
|
|
78
79
|
readonly span: PslSpan;
|
|
@@ -226,4 +227,4 @@ declare const BUILTIN_PSL_KIND_KEYS: ReadonlySet<string>;
|
|
|
226
227
|
declare function namespacePslExtensionBlocks(ns: PslNamespace): readonly PslExtensionBlock[];
|
|
227
228
|
//#endregion
|
|
228
229
|
export { makePslNamespaceEntries as A, PslTypesBlock as C, flatPslCompositeTypes as D, UNSPECIFIED_PSL_NAMESPACE_ID as E, flatPslModels as O, PslTypeConstructorCall as S, UNBOUND_PSL_NAMESPACE_NAME as T, PslModelAttribute as _, PslAttributePositionalArgument as a, PslNamespaceEntry as b, PslDefaultFunctionValue as c, PslDiagnostic as d, PslDocumentAst as f, PslModel as g, PslIndexConstraint as h, PslAttributeNamedArgument as i, namespacePslExtensionBlocks as j, makePslNamespace as k, PslDefaultLiteralValue as l, PslFieldAttribute as m, PslAttribute as n, PslAttributeTarget as o, PslField as p, PslAttributeArgument as r, PslCompositeType as s, BUILTIN_PSL_KIND_KEYS as t, PslDefaultValue as u, PslNamedTypeDeclaration as v, PslUniqueConstraint as w, PslReferentialAction as x, PslNamespace as y };
|
|
229
|
-
//# sourceMappingURL=psl-ast-
|
|
230
|
+
//# sourceMappingURL=psl-ast-CAA6nJRp-DIk-wyX1.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"psl-ast-CAA6nJRp-DIk-wyX1.d.mts","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/psl-ast-CAA6nJRp.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;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"}
|
package/dist/psl-parser.d.mts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { V as JsonValue } from "./domain-envelope-
|
|
2
|
-
import { B as PslExtensionBlockParsedAttribute, C as AuthoringPslBlockDescriptorNamespace, D as AuthoringTypeConstructorDescriptor, F as ParsedPslExtensionBlock, H as PslPosition, I as PslDiagnosticCode, L as PslExtensionBlock, R as PslExtensionBlockAttribute, S as AuthoringPslBlockDescriptor, U as PslSpan, V as PslExtensionBlockPrintEntry, k as AuthoringTypeNamespace, z as PslExtensionBlockAttributeArg } from "./framework-authoring-
|
|
3
|
-
import { t as ControlDefaultRegistries } from "./mutation-default-types-
|
|
4
|
-
import { o as TaggedLiteralCanonicalization } from "./temporal-presets-
|
|
5
|
-
import "./authoring-
|
|
6
|
-
import { C as PslTypesBlock, O as flatPslModels, S as PslTypeConstructorCall, _ as PslModelAttribute, a as PslAttributePositionalArgument, c as PslDefaultFunctionValue, f as PslDocumentAst, g as PslModel, i as PslAttributeNamedArgument, j as namespacePslExtensionBlocks, l as PslDefaultLiteralValue, m as PslFieldAttribute, n as PslAttribute, o as PslAttributeTarget, p as PslField, r as PslAttributeArgument, s as PslCompositeType, u as PslDefaultValue, v as PslNamedTypeDeclaration, y as PslNamespace } from "./psl-ast-
|
|
1
|
+
import { V as JsonValue } from "./domain-envelope-C2vVIWGK-C5x7cBpU.mjs";
|
|
2
|
+
import { B as PslExtensionBlockParsedAttribute, C as AuthoringPslBlockDescriptorNamespace, D as AuthoringTypeConstructorDescriptor, F as ParsedPslExtensionBlock, H as PslPosition, I as PslDiagnosticCode, L as PslExtensionBlock, R as PslExtensionBlockAttribute, S as AuthoringPslBlockDescriptor, U as PslSpan, V as PslExtensionBlockPrintEntry, k as AuthoringTypeNamespace, z as PslExtensionBlockAttributeArg } from "./framework-authoring-CsVwBOxP-saf7NH7p.mjs";
|
|
3
|
+
import { t as ControlDefaultRegistries } from "./mutation-default-types--XIOgxCm-B6NmSBxF.mjs";
|
|
4
|
+
import { o as TaggedLiteralCanonicalization } from "./temporal-presets-UGhnJIuo-DCoJ3HJj.mjs";
|
|
5
|
+
import "./authoring-DTZsvKV7.mjs";
|
|
6
|
+
import { C as PslTypesBlock, O as flatPslModels, S as PslTypeConstructorCall, _ as PslModelAttribute, a as PslAttributePositionalArgument, c as PslDefaultFunctionValue, f as PslDocumentAst, g as PslModel, i as PslAttributeNamedArgument, j as namespacePslExtensionBlocks, l as PslDefaultLiteralValue, m as PslFieldAttribute, n as PslAttribute, o as PslAttributeTarget, p as PslField, r as PslAttributeArgument, s as PslCompositeType, u as PslDefaultValue, v as PslNamedTypeDeclaration, y as PslNamespace } from "./psl-ast-CAA6nJRp-DIk-wyX1.mjs";
|
|
7
7
|
import { r as Result } from "./result-BYCOANWy.mjs";
|
|
8
|
-
import { n as AssembledAuthoringContributions } from "./control-
|
|
9
|
-
import "./psl-ast-
|
|
8
|
+
import { n as AssembledAuthoringContributions } from "./control-qWBPmuvX.mjs";
|
|
9
|
+
import "./psl-ast-irbNZ93U.mjs";
|
|
10
10
|
import { i as isPslIdentifier } from "./tokenizer-DW30uwhx-BHsWTwYk.mjs";
|
|
11
|
-
import { I as PslDiagnostic, K as SyntaxNode, L as PslDiagnosticCollector, M as ParseDiagnostic, R as PslSources, d as DiagnosticSource, et as createPslDiagnosticCollector, m as FieldAttributeAst, n as AstNode, nt as diagnosticFromSpan, p as ExpressionAst, r as AttributeArgAst, rt as diagnosticSource, ut as mapPslDiagnostics, w as ModelAttributeAst } from "./parse-
|
|
12
|
-
import { _ as nodePslSpan, a as ModelSymbol, b as readResolvedConstructorCall, c as ResolvedAttribute, d as ResolvedTypeConstructorCall, f as SymbolTable, g as keywordPslSpan, h as buildSymbolTable, i as FieldSymbol, l as ResolvedAttributeArg, m as TopLevelScope, n as BuildSymbolTableOptions, o as NamedTypeSymbol, p as SymbolTableResult, r as CompositeTypeSymbol, s as NamespaceSymbol, t as BlockSymbol, u as ResolvedNamedTypeBinding, v as readResolvedAttribute, y as readResolvedAttributes } from "./symbol-table-
|
|
11
|
+
import { I as PslDiagnostic, K as SyntaxNode, L as PslDiagnosticCollector, M as ParseDiagnostic, R as PslSources, d as DiagnosticSource, et as createPslDiagnosticCollector, m as FieldAttributeAst, n as AstNode, nt as diagnosticFromSpan, p as ExpressionAst, r as AttributeArgAst, rt as diagnosticSource, ut as mapPslDiagnostics, w as ModelAttributeAst } from "./parse-DqMTVHCw-Cw1RjDIQ.mjs";
|
|
12
|
+
import { _ as nodePslSpan, a as ModelSymbol, b as readResolvedConstructorCall, c as ResolvedAttribute, d as ResolvedTypeConstructorCall, f as SymbolTable, g as keywordPslSpan, h as buildSymbolTable, i as FieldSymbol, l as ResolvedAttributeArg, m as TopLevelScope, n as BuildSymbolTableOptions, o as NamedTypeSymbol, p as SymbolTableResult, r as CompositeTypeSymbol, s as NamespaceSymbol, t as BlockSymbol, u as ResolvedNamedTypeBinding, v as readResolvedAttribute, y as readResolvedAttributes } from "./symbol-table-DZDTpkQ7-BrBUqb4g.mjs";
|
|
13
13
|
import { n as UnionToIntersection, t as Simplify } from "./types-DGxlljKG.mjs";
|
|
14
14
|
//#region ../../../1-framework/2-authoring/psl-parser/dist/index.d.mts
|
|
15
15
|
//#region src/attribute-helpers.d.ts
|
|
@@ -32,6 +32,7 @@ interface ContributedNamespaceSymbol {
|
|
|
32
32
|
type ContributedMember = ContributedTypeSymbol | ContributedNamespaceSymbol;
|
|
33
33
|
interface ContributedTypeScope {
|
|
34
34
|
lookup(name: string): ContributedMember | undefined;
|
|
35
|
+
entries(): Iterable<readonly [string, ContributedMember]>;
|
|
35
36
|
}
|
|
36
37
|
//#endregion
|
|
37
38
|
//#region src/scope.d.ts
|
|
@@ -61,9 +62,19 @@ type ScopeResolution = {
|
|
|
61
62
|
readonly kind: 'contributedType';
|
|
62
63
|
readonly symbol: ContributedTypeSymbol;
|
|
63
64
|
};
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
declare abstract class Scope {
|
|
66
|
+
protected readonly parent: Scope | undefined;
|
|
67
|
+
constructor(parent: Scope | undefined);
|
|
68
|
+
abstract lookup(name: string): ScopeResolution | undefined;
|
|
69
|
+
protected abstract ownNames(): Iterable<string>;
|
|
70
|
+
entries(): Iterable<readonly [string, ScopeResolution]>;
|
|
71
|
+
}
|
|
72
|
+
declare function isNamespaceLike(resolution: ScopeResolution): resolution is Extract<ScopeResolution, {
|
|
73
|
+
kind: 'namespace' | 'contributedNamespace';
|
|
74
|
+
}>;
|
|
75
|
+
declare function memberEntries(qualifier: Extract<ScopeResolution, {
|
|
76
|
+
kind: 'namespace' | 'contributedNamespace';
|
|
77
|
+
}>): Iterable<readonly [string, ScopeResolution]>;
|
|
67
78
|
//#endregion
|
|
68
79
|
//#region src/binder.d.ts
|
|
69
80
|
declare const PSL_UNRESOLVED_REFERENCE = "PSL_UNRESOLVED_REFERENCE";
|
|
@@ -90,6 +101,7 @@ type Resolution = ScopeResolution | {
|
|
|
90
101
|
interface Binder {
|
|
91
102
|
declaredSymbol(node: SyntaxNode): PslSymbol | undefined;
|
|
92
103
|
symbolForNode(node: SyntaxNode): Resolution | undefined;
|
|
104
|
+
scopeAt(node: SyntaxNode): Scope;
|
|
93
105
|
}
|
|
94
106
|
interface UnsupportedAttribute {
|
|
95
107
|
readonly attribute: ResolvedAttribute;
|
|
@@ -111,7 +123,7 @@ interface BinderResult {
|
|
|
111
123
|
readonly binder: Binder;
|
|
112
124
|
readonly diagnostics: readonly ParseDiagnostic[];
|
|
113
125
|
}
|
|
114
|
-
declare function typeReferenceNode(
|
|
126
|
+
declare function typeReferenceNode(symbol: FieldSymbol | NamedTypeSymbol): SyntaxNode | undefined;
|
|
115
127
|
declare function createBinder(options: CreateBinderOptions): BinderResult;
|
|
116
128
|
//#endregion
|
|
117
129
|
//#region src/entity-reference.d.ts
|
|
@@ -133,6 +145,8 @@ interface ResolvedEntityReference<D extends EntityDeclaration = EntityDeclaratio
|
|
|
133
145
|
readonly declaration: D;
|
|
134
146
|
readonly namespace: NamespaceSymbol | undefined;
|
|
135
147
|
}
|
|
148
|
+
declare function entityReference(resolution: Resolution): ResolvedEntityReference | undefined;
|
|
149
|
+
declare function matchesSelector<S extends EntitySelector>(reference: ResolvedEntityReference, expected: S): reference is ResolvedEntityReference<DeclarationFor<S>>;
|
|
136
150
|
//#endregion
|
|
137
151
|
//#region src/attribute-spec/types.d.ts
|
|
138
152
|
type AttributeLevel = 'field' | 'model' | 'block';
|
|
@@ -540,5 +554,5 @@ declare function isPrismaNextSchema(text: string): boolean;
|
|
|
540
554
|
/** The document with the directive earlier releases wrote replaced by the current one. */
|
|
541
555
|
declare function renameLegacyDirective(text: string): string;
|
|
542
556
|
//#endregion
|
|
543
|
-
export { type ArgBindingSpec, type ArgType, type ArgTypeKind, type AssembledAttributeSpecs, type AttributeCtx, type AttributeLevel, type AttributeOut, type AttributeSpec, type AttributeSpecContext, type AttributeSpecNamespace, type AttributeSymbol, type Binder, type BinderResult, type BlockAttributeSpecFactory, type BlockEntryValueSpec, type BlockSpec, type BlockSpecContext, type BlockSpecFactory, type BlockSymbol, type BoundSpec, type BuildSymbolTableOptions, type CompositeTypeSymbol, type ContributedMember, type ContributedNamespaceSymbol, type ContributedTypeScope, type ContributedTypeSymbol, type CreateBinderOptions, type DeclarationFor, type DescribeUnsupportedAttribute, type DiagnosticSource, type EntityDeclaration, type EntityRefArgType, type EntitySelector, type FieldAttributeCtx, type FieldAttributeSpecContext, type FieldAttributeSpecFactory, type FieldSymbol, type FixedIdentifierArgType, type FuncCallSig, type IdentifierArgType, type InferAttr, type InferBlock, type InspectableArgType, type InterpretExtensionBlockAttributesInput, type InterpretExtensionBlockInput, type InterpretExtensionBlocksResult, type JsonValueArgType, type ListOptions, type MapBlockSpec, type ModelAttributeCtx, type ModelAttributeSpecFactory, type ModelSymbol, NAME_THE_PSL_SOURCE_LOSES, type NamedOut, type NamedTypeSymbol, type NamespaceSymbol, type NullArgType, type NumLiteral, type OptionalArgType, type OutOf, PSL_UNRESOLVED_REFERENCE, type Param, type ParsedPslExtensionBlock, type ParsedTaggedLiteral, type PosOut, type PositionalParam, type PslAttribute, type PslAttributeArgument, type PslAttributeNamedArgument, type PslAttributePositionalArgument, type PslAttributeTarget, type PslBlockSpecDescriptor, type PslCompositeType, type PslDefaultFunctionValue, type PslDefaultLiteralValue, type PslDefaultValue, type PslDiagnostic, type PslDiagnosticCode, type PslDiagnosticCollector, type PslDocumentAst, type PslExtensionBlock, type PslExtensionBlockAttribute, type PslExtensionBlockAttributeArg, type PslExtensionBlockParsedAttribute, type PslExtensionBlockPrintEntry, type PslField, type PslFieldAttribute, type PslModel, type PslModelAttribute, type PslNamedTypeDeclaration, type PslNamespace, type PslPosition, type PslSpan, type PslSymbol, type PslTypeConstructorCall, type PslTypesBlock, type RejectingArgType, type Resolution, type ResolvedAttribute, type ResolvedAttributeArg, type ResolvedEntityReference, type ResolvedNamedTypeBinding, type ResolvedTypeConstructorCall, type Scope, type ScopeResolution, type StructBlockSpec, type SymbolTable, type SymbolTableResult, type TaggedLiteralArgType, type TopLevelScope, type TypedFuncCall, type UnrestrictedIdentifierArgType, type UnsupportedAttribute, assembleAttributeSpecs, blockAttribute, blockSpecFactoryOf, bool, buildSymbolTable, createBinder, createPslDiagnosticCollector, diagnosticFromSpan, diagnosticSource, entityRef, fieldAttribute, fieldRef, findBlockDescriptor, flatPslModels, funcCall, getPositionalArgument, identifier, int, interpretArgs, interpretAttribute, interpretExtensionBlock, interpretExtensionBlockAttributes, interpretExtensionBlocks, isPrismaNextSchema, isPslIdentifier, json, jsonValue, keywordPslSpan, leafDiagnostic, list, mapBlock, mapPslDiagnostics, modelAttribute, namespacePslExtensionBlocks, nodePslSpan, num, numLiteral, oneOf, optional, parseQuotedStringLiteral, readResolvedAttribute, readResolvedAttributes, readResolvedConstructorCall, record, referencedFieldRef, renameLegacyDirective, str, structBlock, taggedLiteral, typeReferenceNode };
|
|
557
|
+
export { type ArgBindingSpec, type ArgType, type ArgTypeKind, type AssembledAttributeSpecs, type AttributeCtx, type AttributeLevel, type AttributeOut, type AttributeSpec, type AttributeSpecContext, type AttributeSpecNamespace, type AttributeSymbol, type Binder, type BinderResult, type BlockAttributeSpecFactory, type BlockEntryValueSpec, type BlockSpec, type BlockSpecContext, type BlockSpecFactory, type BlockSymbol, type BoundSpec, type BuildSymbolTableOptions, type CompositeTypeSymbol, type ContributedMember, type ContributedNamespaceSymbol, type ContributedTypeScope, type ContributedTypeSymbol, type CreateBinderOptions, type DeclarationFor, type DescribeUnsupportedAttribute, type DiagnosticSource, type EntityDeclaration, type EntityRefArgType, type EntitySelector, type FieldAttributeCtx, type FieldAttributeSpecContext, type FieldAttributeSpecFactory, type FieldSymbol, type FixedIdentifierArgType, type FuncCallSig, type IdentifierArgType, type InferAttr, type InferBlock, type InspectableArgType, type InterpretExtensionBlockAttributesInput, type InterpretExtensionBlockInput, type InterpretExtensionBlocksResult, type JsonValueArgType, type ListOptions, type MapBlockSpec, type ModelAttributeCtx, type ModelAttributeSpecFactory, type ModelSymbol, NAME_THE_PSL_SOURCE_LOSES, type NamedOut, type NamedTypeSymbol, type NamespaceSymbol, type NullArgType, type NumLiteral, type OptionalArgType, type OutOf, PSL_UNRESOLVED_REFERENCE, type Param, type ParsedPslExtensionBlock, type ParsedTaggedLiteral, type PosOut, type PositionalParam, type PslAttribute, type PslAttributeArgument, type PslAttributeNamedArgument, type PslAttributePositionalArgument, type PslAttributeTarget, type PslBlockSpecDescriptor, type PslCompositeType, type PslDefaultFunctionValue, type PslDefaultLiteralValue, type PslDefaultValue, type PslDiagnostic, type PslDiagnosticCode, type PslDiagnosticCollector, type PslDocumentAst, type PslExtensionBlock, type PslExtensionBlockAttribute, type PslExtensionBlockAttributeArg, type PslExtensionBlockParsedAttribute, type PslExtensionBlockPrintEntry, type PslField, type PslFieldAttribute, type PslModel, type PslModelAttribute, type PslNamedTypeDeclaration, type PslNamespace, type PslPosition, type PslSpan, type PslSymbol, type PslTypeConstructorCall, type PslTypesBlock, type RejectingArgType, type Resolution, type ResolvedAttribute, type ResolvedAttributeArg, type ResolvedEntityReference, type ResolvedNamedTypeBinding, type ResolvedTypeConstructorCall, type Scope, type ScopeResolution, type StructBlockSpec, type SymbolTable, type SymbolTableResult, type TaggedLiteralArgType, type TopLevelScope, type TypedFuncCall, type UnrestrictedIdentifierArgType, type UnsupportedAttribute, assembleAttributeSpecs, blockAttribute, blockSpecFactoryOf, bool, buildSymbolTable, createBinder, createPslDiagnosticCollector, diagnosticFromSpan, diagnosticSource, entityRef, entityReference, fieldAttribute, fieldRef, findBlockDescriptor, flatPslModels, funcCall, getPositionalArgument, identifier, int, interpretArgs, interpretAttribute, interpretExtensionBlock, interpretExtensionBlockAttributes, interpretExtensionBlocks, isNamespaceLike, isPrismaNextSchema, isPslIdentifier, json, jsonValue, keywordPslSpan, leafDiagnostic, list, mapBlock, mapPslDiagnostics, matchesSelector, memberEntries, modelAttribute, namespacePslExtensionBlocks, nodePslSpan, num, numLiteral, oneOf, optional, parseQuotedStringLiteral, readResolvedAttribute, readResolvedAttributes, readResolvedConstructorCall, record, referencedFieldRef, renameLegacyDirective, str, structBlock, taggedLiteral, typeReferenceNode };
|
|
544
558
|
//# sourceMappingURL=psl-parser.d.mts.map
|