@prisma/orm-framework 8.0.0-rc.14-dev.16 → 8.0.0-rc.14-dev.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/{authoring-Bn_5zI9q.mjs → authoring-C8hxYYQI.mjs} +3 -21
  2. package/dist/authoring-C8hxYYQI.mjs.map +1 -0
  3. package/dist/{authoring-DTZsvKV7.d.mts → authoring-CQOFIHhF.d.mts} +4 -20
  4. package/dist/{authoring-DTZsvKV7.d.mts.map → authoring-CQOFIHhF.d.mts.map} +1 -1
  5. package/dist/binder-CQGFQCuK-DrdVszQh.d.mts +452 -0
  6. package/dist/binder-CQGFQCuK-DrdVszQh.d.mts.map +1 -0
  7. package/dist/{components-DgQX4ccF.d.mts → components-DFA65tWf.d.mts} +2 -2
  8. package/dist/{components-DgQX4ccF.d.mts.map → components-DFA65tWf.d.mts.map} +1 -1
  9. package/dist/components.d.mts +11 -11
  10. package/dist/components.mjs +4 -4
  11. package/dist/components__authoring.d.mts +4 -4
  12. package/dist/components__authoring.mjs +3 -3
  13. package/dist/components__components.d.mts +2 -2
  14. package/dist/components__control.d.mts +3 -3
  15. package/dist/components__control.mjs +2 -2
  16. package/dist/components__execution.d.mts +1 -1
  17. package/dist/components__psl-ast.d.mts +3 -3
  18. package/dist/{config-types-CcK2xcMX.d.mts → config-types-DDNiQ3jk.d.mts} +8 -4
  19. package/dist/config-types-DDNiQ3jk.d.mts.map +1 -0
  20. package/dist/config.d.mts +1 -1
  21. package/dist/config__config-types.d.mts +1 -1
  22. package/dist/contract-authoring.d.mts +2 -2
  23. package/dist/contract-authoring.mjs +1 -1
  24. package/dist/{control-qWBPmuvX.d.mts → control-B059zyD4.d.mts} +10 -6
  25. package/dist/{control-qWBPmuvX.d.mts.map → control-B059zyD4.d.mts.map} +1 -1
  26. package/dist/{control-uVHmDgha.mjs → control-DEcjDcjA.mjs} +2 -2
  27. package/dist/{control-uVHmDgha.mjs.map → control-DEcjDcjA.mjs.map} +1 -1
  28. package/dist/{declarations-C0VwsVFX-24_6w6Lb.mjs → declarations-C0VwsVFX-BcP1Nyv4.mjs} +2 -2
  29. package/dist/{declarations-C0VwsVFX-24_6w6Lb.mjs.map → declarations-C0VwsVFX-BcP1Nyv4.mjs.map} +1 -1
  30. package/dist/errors.d.mts +1 -1
  31. package/dist/errors__execution.d.mts +1 -1
  32. package/dist/{execution-DHFIqFJC.d.mts → execution-D5L9gHoo.d.mts} +2 -2
  33. package/dist/{execution-DHFIqFJC.d.mts.map → execution-D5L9gHoo.d.mts.map} +1 -1
  34. package/dist/{execution-BW3cjWqQ.d.mts → execution-NKU9_mZ4.d.mts} +2 -2
  35. package/dist/{execution-BW3cjWqQ.d.mts.map → execution-NKU9_mZ4.d.mts.map} +1 -1
  36. package/dist/{framework-authoring-CsVwBOxP-saf7NH7p.d.mts → framework-authoring-BLXTNi9g-CcRc8u9I.d.mts} +3 -12
  37. package/dist/{framework-authoring-CsVwBOxP-saf7NH7p.d.mts.map → framework-authoring-BLXTNi9g-CcRc8u9I.d.mts.map} +1 -1
  38. package/dist/{framework-components-DNtoaHTX-DWt4JeHF.d.mts → framework-components-CwclBqDh-CBGrY3Ry.d.mts} +4 -4
  39. package/dist/{framework-components-DNtoaHTX-DWt4JeHF.d.mts.map → framework-components-CwclBqDh-CBGrY3Ry.d.mts.map} +1 -1
  40. package/dist/{mutation-default-types--XIOgxCm-B6NmSBxF.d.mts → mutation-default-types-ZfKqVdmf-DATmLFpQ.d.mts} +3 -3
  41. package/dist/{mutation-default-types--XIOgxCm-B6NmSBxF.d.mts.map → mutation-default-types-ZfKqVdmf-DATmLFpQ.d.mts.map} +1 -1
  42. package/dist/{parse-DqMTVHCw-Cw1RjDIQ.d.mts → parse-DqMTVHCw-DqqgVEUq.d.mts} +6 -6
  43. package/dist/{parse-DqMTVHCw-Cw1RjDIQ.d.mts.map → parse-DqMTVHCw-DqqgVEUq.d.mts.map} +1 -1
  44. package/dist/{parse-EvT3Ac9q-j7zYLB_6.mjs → parse-EvT3Ac9q-B0Nxq52v.mjs} +2 -2
  45. package/dist/{parse-EvT3Ac9q-j7zYLB_6.mjs.map → parse-EvT3Ac9q-B0Nxq52v.mjs.map} +1 -1
  46. package/dist/{psl-ast-CAA6nJRp-DIk-wyX1.d.mts → psl-ast-CPxYIxM1-XHoHPgRO.d.mts} +3 -3
  47. package/dist/{psl-ast-CAA6nJRp-DIk-wyX1.d.mts.map → psl-ast-CPxYIxM1-XHoHPgRO.d.mts.map} +1 -1
  48. package/dist/psl-ast-DA_tKWiL.d.mts +2 -0
  49. package/dist/psl-parser.d.mts +10 -320
  50. package/dist/psl-parser.d.mts.map +1 -1
  51. package/dist/psl-parser.mjs +1388 -1328
  52. package/dist/psl-parser.mjs.map +1 -1
  53. package/dist/psl-parser__format.d.mts +1 -1
  54. package/dist/psl-parser__format.mjs +2 -2
  55. package/dist/psl-parser__interpret.d.mts +21 -32
  56. package/dist/psl-parser__interpret.d.mts.map +1 -1
  57. package/dist/psl-parser__interpret.mjs +28 -40
  58. package/dist/psl-parser__interpret.mjs.map +1 -1
  59. package/dist/psl-parser__syntax.d.mts +1 -1
  60. package/dist/psl-parser__syntax.mjs +2 -2
  61. package/dist/psl-printer.d.mts +4 -4
  62. package/dist/psl-printer.mjs +1 -1
  63. package/dist/{temporal-presets-UGhnJIuo-DCoJ3HJj.d.mts → temporal-presets-DKHiZVPP-DLAr--Pb.d.mts} +4 -4
  64. package/dist/{temporal-presets-UGhnJIuo-DCoJ3HJj.d.mts.map → temporal-presets-DKHiZVPP-DLAr--Pb.d.mts.map} +1 -1
  65. package/dist/{temporal-presets-DsGuaFyT-DWzKyja_.mjs → temporal-presets-DzBBD4St-BaL1QaZ7.mjs} +3 -16
  66. package/dist/temporal-presets-DzBBD4St-BaL1QaZ7.mjs.map +1 -0
  67. package/package.json +15 -15
  68. package/dist/authoring-Bn_5zI9q.mjs.map +0 -1
  69. package/dist/config-types-CcK2xcMX.d.mts.map +0 -1
  70. package/dist/psl-ast-irbNZ93U.d.mts +0 -2
  71. package/dist/symbol-table-DZDTpkQ7-BrBUqb4g.d.mts +0 -126
  72. package/dist/symbol-table-DZDTpkQ7-BrBUqb4g.d.mts.map +0 -1
  73. package/dist/temporal-presets-DsGuaFyT-DWzKyja_.mjs.map +0 -1
@@ -1,11 +1,11 @@
1
1
  import { t as Contract } from "./contract-types-BIaUtO7Z-Bcxx2I74.mjs";
2
- import { $ as instantiateAuthoringFieldPreset, C as AuthoringPslBlockDescriptorNamespace, U as PslSpan, a as AuthoringContributions, n as AuthoringArgumentDescriptor, p as AuthoringFieldPresetDescriptor } from "./framework-authoring-CsVwBOxP-saf7NH7p.mjs";
3
- import "./authoring-DTZsvKV7.mjs";
2
+ import { C as AuthoringPslBlockDescriptorNamespace, D as AuthoringTypeConstructorDescriptor, Q as instantiateAuthoringFieldPreset, U as PslSpan, n as AuthoringArgumentDescriptor, p as AuthoringFieldPresetDescriptor } from "./framework-authoring-BLXTNi9g-CcRc8u9I.mjs";
3
+ import "./authoring-CQOFIHhF.mjs";
4
4
  import { r as Result } from "./result-BYCOANWy.mjs";
5
- import "./psl-ast-irbNZ93U.mjs";
6
- import { c as ContractSourceProvider, n as ContractSourceContext, o as ContractSourceDiagnostics, p as PslContractSourceProvider, r as ContractSourceDiagnostic } from "./config-types-CcK2xcMX.mjs";
7
- import { I as PslDiagnostic, L as PslDiagnosticCollector, R as PslSources, d as DiagnosticSource, f as DocumentAst } from "./parse-DqMTVHCw-Cw1RjDIQ.mjs";
8
- import { d as ResolvedTypeConstructorCall, f as SymbolTable, i as FieldSymbol, l as ResolvedAttributeArg, t as BlockSymbol } from "./symbol-table-DZDTpkQ7-BrBUqb4g.mjs";
5
+ import "./psl-ast-DA_tKWiL.mjs";
6
+ import { c as ContractSourceProvider, n as ContractSourceContext, o as ContractSourceDiagnostics, p as PslContractSourceProvider, r as ContractSourceDiagnostic } from "./config-types-DDNiQ3jk.mjs";
7
+ import { I as PslDiagnostic, L as PslDiagnosticCollector, R as PslSources, d as DiagnosticSource, f as DocumentAst } from "./parse-DqMTVHCw-DqqgVEUq.mjs";
8
+ import { P as FieldSymbol, St as SymbolTable, f as BlockSymbol, gt as ResolvedAttributeArg, l as Binder, yt as ResolvedTypeConstructorCall } from "./binder-CQGFQCuK-DrdVszQh.mjs";
9
9
  //#region ../../../1-framework/2-authoring/psl-parser/dist/interpret.d.mts
10
10
  //#region src/authoring-arguments.d.ts
11
11
  /**
@@ -26,32 +26,9 @@ declare function mapPslHelperArgs(input: {
26
26
  declare function enumMemberAttributeDiagnostics(enumBlock: BlockSymbol, sources: PslSources): PslDiagnostic[];
27
27
  //#endregion
28
28
  //#region src/field-presets.d.ts
29
- /**
30
- * Pushes the canonical `PSL_EXTENSION_NAMESPACE_NOT_COMPOSED` diagnostic for a subject (attribute, model attribute, or type constructor) that references an extension namespace which is not composed in the current contract.
31
- *
32
- * The `data` payload carries the missing namespace so machine consumers (agents, IDE extensions, CLI auto-fix) don't have to parse the prose.
33
- */
34
- declare function uncomposedNamespaceDiagnostic(input: {
35
- readonly subjectLabel: string;
36
- readonly namespace: string;
37
- readonly source: DiagnosticSource;
38
- readonly span: PslSpan;
39
- }): PslDiagnostic;
40
- declare function reportUncomposedNamespace(input: {
41
- readonly subjectLabel: string;
42
- readonly namespace: string;
43
- readonly source: DiagnosticSource;
44
- readonly span: PslSpan;
45
- readonly diagnostics: PslDiagnosticCollector;
46
- }): void;
47
- /**
48
- * Pushes the canonical `PSL_UNKNOWN_FIELD_PRESET` diagnostic when a typoed preset name is referenced inside a registered field-preset namespace. The `data` payload exposes the namespace and full helper path so machine consumers (agents, IDE extensions) don't have to parse the prose.
49
- */
50
- declare function reportUnknownFieldPreset(input: {
29
+ declare function reportPresetNotCalled(input: {
51
30
  readonly entityLabel: string;
52
- readonly namespace: string;
53
- readonly helperPath: string;
54
- readonly authoringContributions: AuthoringContributions | undefined;
31
+ readonly presetPath: string;
55
32
  readonly source: DiagnosticSource;
56
33
  readonly span: PslSpan;
57
34
  readonly diagnostics: PslDiagnosticCollector;
@@ -79,6 +56,7 @@ interface PslInterpretInput {
79
56
  readonly documents: readonly DocumentAst[];
80
57
  readonly sources: PslSources;
81
58
  readonly symbolTable: SymbolTable;
59
+ readonly binder: Binder;
82
60
  }
83
61
  /**
84
62
  * Declared here — the authoring layer that owns `DocumentAst` / `PslSources` /
@@ -126,10 +104,21 @@ declare function requiredOneToOneBackrelationDiagnostic(input: {
126
104
  readonly recordNoun: 'row' | 'document';
127
105
  }): PslDiagnostic;
128
106
  //#endregion
107
+ //#region src/type-constructor-calls.d.ts
108
+ declare function isBareTypeConstructor(descriptor: AuthoringTypeConstructorDescriptor): boolean;
109
+ declare function reportTypeConstructorNotCalled(input: {
110
+ readonly entityLabel: string;
111
+ readonly path: string;
112
+ readonly descriptor: AuthoringTypeConstructorDescriptor;
113
+ readonly source: DiagnosticSource;
114
+ readonly span: PslSpan;
115
+ readonly diagnostics: PslDiagnosticCollector;
116
+ }): void;
117
+ //#endregion
129
118
  //#region src/unclaimed-blocks.d.ts
130
119
  /** A generic block is read only when a composed descriptor claims its keyword. */
131
120
  declare function claimedBlockKeywords(descriptors: AuthoringPslBlockDescriptorNamespace | undefined): ReadonlySet<string>;
132
121
  declare function unsupportedBlockDiagnostic(block: BlockSymbol, sources: PslSources): PslDiagnostic;
133
122
  //#endregion
134
- export { type InvalidFkPairing, type PslInterpretCapable, type PslInterpretInput, claimedBlockKeywords, consumeInvalidFkPairing, enumMemberAttributeDiagnostics, fkRelationPairKey, hasPslInterpreter, instantiatePslFieldPreset, mapPslHelperArgs, parsePslPositionalArgs, reportUncomposedNamespace, reportUnknownFieldPreset, requiredOneToOneBackrelationDiagnostic, uncomposedNamespaceDiagnostic, unsupportedBlockDiagnostic, withSeedDiagnostics };
123
+ export { type InvalidFkPairing, type PslInterpretCapable, type PslInterpretInput, claimedBlockKeywords, consumeInvalidFkPairing, enumMemberAttributeDiagnostics, fkRelationPairKey, hasPslInterpreter, instantiatePslFieldPreset, isBareTypeConstructor, mapPslHelperArgs, parsePslPositionalArgs, reportPresetNotCalled, reportTypeConstructorNotCalled, requiredOneToOneBackrelationDiagnostic, unsupportedBlockDiagnostic, withSeedDiagnostics };
135
124
  //# sourceMappingURL=psl-parser__interpret.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"psl-parser__interpret.d.mts","names":[],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/interpret.d.mts"],"mappings":";;;;;;;;;;;;;iBAWiB,uBAAuB,sBAAsB,+BAA+B;iBAC5E,iBAAiB;WACvB,eAAe;WACf,sBAAsB;WACtB;WACA,MAAM;WACN,aAAa;WACb,QAAQ;WACR;;;;iBAIM,+BAA+B,WAAW,aAAa,SAAS,aAAa;;;;;;;;iBAQ7E,8BAA8B;WACpC;WACA;WACA,QAAQ;WACR,MAAM;IACb;iBACa,0BAA0B;WAChC;WACA;WACA,QAAQ;WACR,MAAM;WACN,aAAa;;;;;iBAKP,yBAAyB;WAC/B;WACA;WACA;WACA,wBAAwB;WACxB,QAAQ;WACR,MAAM;WACN,aAAa;;;;;;;iBAOP,0BAA0B;WAChC,MAAM;WACN,YAAY;WACZ,aAAa;WACb,QAAQ;WACR;IACP,kBAAkB;;;;;;;;UAQZ;WACC,oBAAoB;WACpB,SAAS;WACT,aAAa;;;;;;;;UAQd,4BAA4B;EACpC,UAAU,OAAO,mBAAmB,SAAS,wBAAwB,OAAO,UAAU;;;;;;;;iBAQvE,oBAAoB,QAAQ,OAAO,UAAU,4BAA4B,0BAA0B,6BAA6B,OAAO,UAAU;;iBAEjJ,kBAAkB,QAAQ,yBAAyB,UAAU;;;;;;;;KAQzE;WACM;WACA;;iBAEM,kBAAkB,4BAA4B;;;;;;iBAM9C,wBAAwB;WAC9B;GACR,iBAAiB,mBAAmB;iBACtB,uCAAuC;WAC7C;WACA,OAAO;WACP;WACA,SAAS;WACT;IACP;;;;iBAIa,qBAAqB,aAAa,mDAAmD;iBACrF,2BAA2B,OAAO,aAAa,SAAS,aAAa"}
1
+ {"version":3,"file":"psl-parser__interpret.d.mts","names":[],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/interpret.d.mts"],"mappings":";;;;;;;;;;;;;iBAWiB,uBAAuB,sBAAsB,+BAA+B;iBAC5E,iBAAiB;WACvB,eAAe;WACf,sBAAsB;WACtB;WACA,MAAM;WACN,aAAa;WACb,QAAQ;WACR;;;;iBAIM,+BAA+B,WAAW,aAAa,SAAS,aAAa;;;iBAG7E,sBAAsB;WAC5B;WACA;WACA,QAAQ;WACR,MAAM;WACN,aAAa;;;;;;;iBAOP,0BAA0B;WAChC,MAAM;WACN,YAAY;WACZ,aAAa;WACb,QAAQ;WACR;IACP,kBAAkB;;;;;;;;UAQZ;WACC,oBAAoB;WACpB,SAAS;WACT,aAAa;WACb,QAAQ;;;;;;;;UAQT,4BAA4B;EACpC,UAAU,OAAO,mBAAmB,SAAS,wBAAwB,OAAO,UAAU;;;;;;;;iBAQvE,oBAAoB,QAAQ,OAAO,UAAU,4BAA4B,0BAA0B,6BAA6B,OAAO,UAAU;;iBAEjJ,kBAAkB,QAAQ,yBAAyB,UAAU;;;;;;;;KAQzE;WACM;WACA;;iBAEM,kBAAkB,4BAA4B;;;;;;iBAM9C,wBAAwB;WAC9B;GACR,iBAAiB,mBAAmB;iBACtB,uCAAuC;WAC7C;WACA,OAAO;WACP;WACA,SAAS;WACT;IACP;;;iBAGa,sBAAsB,YAAY;iBAClC,+BAA+B;WACrC;WACA;WACA,YAAY;WACZ,QAAQ;WACR,MAAM;WACN,aAAa;;;;;iBAKP,qBAAqB,aAAa,mDAAmD;iBACrF,2BAA2B,OAAO,aAAa,SAAS,aAAa"}
@@ -1,6 +1,5 @@
1
1
  import { n as notOk } from "./result-8OXF26MN.mjs";
2
- import { F as validateAuthoringHelperArguments, S as isAuthoringPslBlockDescriptor, g as instantiateAuthoringFieldPreset } from "./temporal-presets-DsGuaFyT-DWzKyja_.mjs";
3
- import { n as fieldPresetSpellings } from "./authoring-Bn_5zI9q.mjs";
2
+ import { P as validateAuthoringHelperArguments, h as instantiateAuthoringFieldPreset, x as isAuthoringPslBlockDescriptor } from "./temporal-presets-DzBBD4St-BaL1QaZ7.mjs";
4
3
  import { i as keywordPslSpan, o as nodePslSpan, r as diagnosticSource } from "./resolve-GE34dgM6-D33m6YEw.mjs";
5
4
  //#region ../../../1-framework/2-authoring/psl-parser/dist/interpret.mjs
6
5
  function unquoteStringLiteral(value) {
@@ -316,44 +315,11 @@ function enumMemberAttributeDiagnostics(enumBlock, sources) {
316
315
  ...source.at(nodePslSpan(attribute.syntax, sources))
317
316
  })));
318
317
  }
319
- /**
320
- * Pushes the canonical `PSL_EXTENSION_NAMESPACE_NOT_COMPOSED` diagnostic for a subject (attribute, model attribute, or type constructor) that references an extension namespace which is not composed in the current contract.
321
- *
322
- * The `data` payload carries the missing namespace so machine consumers (agents, IDE extensions, CLI auto-fix) don't have to parse the prose.
323
- */
324
- function uncomposedNamespaceDiagnostic(input) {
325
- return {
326
- code: "PSL_EXTENSION_NAMESPACE_NOT_COMPOSED",
327
- message: `${input.subjectLabel} uses unrecognized namespace "${input.namespace}". Add extension pack "${input.namespace}" to extensions in prisma.config.ts.`,
328
- ...input.source.at(input.span),
329
- data: {
330
- namespace: input.namespace,
331
- suggestedPack: input.namespace
332
- }
333
- };
334
- }
335
- function reportUncomposedNamespace(input) {
336
- input.diagnostics.push(uncomposedNamespaceDiagnostic({
337
- subjectLabel: input.subjectLabel,
338
- namespace: input.namespace,
339
- source: input.source,
340
- span: input.span
341
- }));
342
- }
343
- /**
344
- * Pushes the canonical `PSL_UNKNOWN_FIELD_PRESET` diagnostic when a typoed preset name is referenced inside a registered field-preset namespace. The `data` payload exposes the namespace and full helper path so machine consumers (agents, IDE extensions) don't have to parse the prose.
345
- */
346
- function reportUnknownFieldPreset(input) {
347
- const presets = fieldPresetSpellings(input.authoringContributions, input.namespace);
348
- const listed = presets.length === 0 ? "no field presets" : presets.length === 1 ? presets.join("") : `${presets.slice(0, -1).join(", ")} and ${presets.at(-1)}`;
318
+ function reportPresetNotCalled(input) {
349
319
  input.diagnostics.push({
350
- code: "PSL_UNKNOWN_FIELD_PRESET",
351
- message: `${input.entityLabel} references unknown field preset "${input.helperPath}". The "${input.namespace}" namespace has ${listed}.`,
352
- ...input.source.at(input.span),
353
- data: {
354
- namespace: input.namespace,
355
- helperPath: input.helperPath
356
- }
320
+ code: "PSL_PRESET_NOT_CALLED",
321
+ message: `${input.entityLabel} uses field preset "${input.presetPath}" without calling it. Write ${input.presetPath}().`,
322
+ ...input.source.at(input.span)
357
323
  });
358
324
  }
359
325
  /**
@@ -427,6 +393,28 @@ function requiredOneToOneBackrelationDiagnostic(input) {
427
393
  ...diagnosticSource(sources, field.node.syntax).at(field.span)
428
394
  };
429
395
  }
396
+ function isBareTypeConstructor(descriptor) {
397
+ return descriptor.entityRefArg === void 0 && (descriptor.args ?? []).every((arg) => arg.optional === true);
398
+ }
399
+ function argumentSpelling(descriptor) {
400
+ const args = descriptor.args ?? [];
401
+ const reference = descriptor.entityRefArg;
402
+ const count = Math.max(args.length, (reference?.index ?? -1) + 1);
403
+ const names = [];
404
+ for (let index = 0; index < count; index++) {
405
+ const arg = args[index];
406
+ if (index === reference?.index) names.push(reference.entityKind);
407
+ else if (arg !== void 0 && arg.optional !== true) names.push(arg.name ?? `argument${index + 1}`);
408
+ }
409
+ return names.join(", ");
410
+ }
411
+ function reportTypeConstructorNotCalled(input) {
412
+ input.diagnostics.push({
413
+ code: "PSL_TYPE_CONSTRUCTOR_NOT_CALLED",
414
+ message: `${input.entityLabel} uses type constructor "${input.path}" without arguments. Write ${input.path}(${argumentSpelling(input.descriptor)}).`,
415
+ ...input.source.at(input.span)
416
+ });
417
+ }
430
418
  /** A generic block is read only when a composed descriptor claims its keyword. */
431
419
  function claimedBlockKeywords(descriptors) {
432
420
  const keywords = /* @__PURE__ */ new Set();
@@ -441,6 +429,6 @@ function unsupportedBlockDiagnostic(block, sources) {
441
429
  };
442
430
  }
443
431
  //#endregion
444
- export { claimedBlockKeywords, consumeInvalidFkPairing, enumMemberAttributeDiagnostics, fkRelationPairKey, hasPslInterpreter, instantiatePslFieldPreset, mapPslHelperArgs, parsePslPositionalArgs, reportUncomposedNamespace, reportUnknownFieldPreset, requiredOneToOneBackrelationDiagnostic, uncomposedNamespaceDiagnostic, unsupportedBlockDiagnostic, withSeedDiagnostics };
432
+ export { claimedBlockKeywords, consumeInvalidFkPairing, enumMemberAttributeDiagnostics, fkRelationPairKey, hasPslInterpreter, instantiatePslFieldPreset, isBareTypeConstructor, mapPslHelperArgs, parsePslPositionalArgs, reportPresetNotCalled, reportTypeConstructorNotCalled, requiredOneToOneBackrelationDiagnostic, unsupportedBlockDiagnostic, withSeedDiagnostics };
445
433
 
446
434
  //# sourceMappingURL=psl-parser__interpret.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"psl-parser__interpret.mjs","names":[],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/interpret.mjs"],"sourcesContent":["import { c as diagnosticSource, n as nodePslSpan, t as keywordPslSpan } from \"./resolve-GE34dgM6.mjs\";\nimport { fieldPresetSpellings, instantiateAuthoringFieldPreset, isAuthoringPslBlockDescriptor, validateAuthoringHelperArguments } from \"@internal/framework-components/authoring\";\nimport { notOk } from \"@internal/utils/result\";\n//#region src/authoring-arguments.ts\nfunction unquoteStringLiteral(value) {\n\tconst trimmed = value.trim();\n\tconst match = trimmed.match(/^(['\"])(.*)\\1$/);\n\tif (!match) return trimmed;\n\treturn match[2] ?? \"\";\n}\nconst INVALID_AUTHORING_ARGUMENT = Symbol(\"invalidAuthoringArgument\");\nfunction isIdentifierStartCharacter(character) {\n\treturn character !== void 0 && /[A-Za-z_$]/.test(character);\n}\nfunction isIdentifierCharacter(character) {\n\treturn character !== void 0 && /[A-Za-z0-9_$]/.test(character);\n}\nfunction parseJsLikeLiteral(value) {\n\tlet index = 0;\n\tfunction skipWhitespace() {\n\t\twhile (/\\s/.test(value[index] ?? \"\")) index += 1;\n\t}\n\tfunction parseIdentifier() {\n\t\tconst first = value[index];\n\t\tif (!isIdentifierStartCharacter(first)) return INVALID_AUTHORING_ARGUMENT;\n\t\tlet end = index + 1;\n\t\twhile (isIdentifierCharacter(value[end])) end += 1;\n\t\tconst identifier = value.slice(index, end);\n\t\tindex = end;\n\t\treturn identifier;\n\t}\n\tfunction parseString() {\n\t\tconst quote = value[index];\n\t\tif (quote !== \"\\\"\" && quote !== \"'\") return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += 1;\n\t\tlet result = \"\";\n\t\twhile (index < value.length) {\n\t\t\tconst character = value[index];\n\t\t\tindex += 1;\n\t\t\tif (character === void 0) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tif (character === quote) return result;\n\t\t\tif (character !== \"\\\\\") {\n\t\t\t\tresult += character;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst escaped = value[index];\n\t\t\tindex += 1;\n\t\t\tif (escaped === void 0) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tswitch (escaped) {\n\t\t\t\tcase \"'\":\n\t\t\t\tcase \"\\\"\":\n\t\t\t\tcase \"\\\\\":\n\t\t\t\tcase \"/\":\n\t\t\t\t\tresult += escaped;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"b\":\n\t\t\t\t\tresult += \"\\b\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"f\":\n\t\t\t\t\tresult += \"\\f\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"n\":\n\t\t\t\t\tresult += \"\\n\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"r\":\n\t\t\t\t\tresult += \"\\r\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"t\":\n\t\t\t\t\tresult += \"\t\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"u\": {\n\t\t\t\t\tconst hex = value.slice(index, index + 4);\n\t\t\t\t\tif (!/^[0-9A-Fa-f]{4}$/.test(hex)) return INVALID_AUTHORING_ARGUMENT;\n\t\t\t\t\tresult += String.fromCharCode(Number.parseInt(hex, 16));\n\t\t\t\t\tindex += 4;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault: return INVALID_AUTHORING_ARGUMENT;\n\t\t\t}\n\t\t}\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tfunction parseNumber() {\n\t\tconst raw = value.slice(index).match(/^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/)?.[0];\n\t\tif (!raw) return INVALID_AUTHORING_ARGUMENT;\n\t\tconst parsed = Number(raw);\n\t\tif (!Number.isFinite(parsed)) return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += raw.length;\n\t\treturn parsed;\n\t}\n\tfunction parseArray() {\n\t\tif (value[index] !== \"[\") return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += 1;\n\t\tconst result = [];\n\t\tskipWhitespace();\n\t\tif (value[index] === \"]\") {\n\t\t\tindex += 1;\n\t\t\treturn result;\n\t\t}\n\t\twhile (index < value.length) {\n\t\t\tconst entry = parseValue();\n\t\t\tif (entry === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tresult.push(entry);\n\t\t\tskipWhitespace();\n\t\t\tif (value[index] === \",\") {\n\t\t\t\tindex += 1;\n\t\t\t\tskipWhitespace();\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (value[index] === \"]\") {\n\t\t\t\tindex += 1;\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tfunction parseObject() {\n\t\tif (value[index] !== \"{\") return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += 1;\n\t\tconst result = {};\n\t\tskipWhitespace();\n\t\tif (value[index] === \"}\") {\n\t\t\tindex += 1;\n\t\t\treturn result;\n\t\t}\n\t\twhile (index < value.length) {\n\t\t\tskipWhitespace();\n\t\t\tconst key = value[index] === \"\\\"\" || value[index] === \"'\" ? parseString() : parseIdentifier();\n\t\t\tif (key === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tskipWhitespace();\n\t\t\tif (value[index] !== \":\") return INVALID_AUTHORING_ARGUMENT;\n\t\t\tindex += 1;\n\t\t\tconst entry = parseValue();\n\t\t\tif (entry === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tresult[key] = entry;\n\t\t\tskipWhitespace();\n\t\t\tif (value[index] === \",\") {\n\t\t\t\tindex += 1;\n\t\t\t\tskipWhitespace();\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (value[index] === \"}\") {\n\t\t\t\tindex += 1;\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tfunction parseValue() {\n\t\tskipWhitespace();\n\t\tconst character = value[index];\n\t\tif (character === \"{\") return parseObject();\n\t\tif (character === \"[\") return parseArray();\n\t\tif (character === \"\\\"\" || character === \"'\") return parseString();\n\t\tif (character === \"-\" || /\\d/.test(character ?? \"\")) return parseNumber();\n\t\tconst identifier = parseIdentifier();\n\t\tif (identifier === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\tif (identifier === \"true\") return true;\n\t\tif (identifier === \"false\") return false;\n\t\tif (identifier === \"null\") return null;\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tskipWhitespace();\n\tconst parsed = parseValue();\n\tif (parsed === INVALID_AUTHORING_ARGUMENT) return parsed;\n\tskipWhitespace();\n\treturn index === value.length ? parsed : INVALID_AUTHORING_ARGUMENT;\n}\nfunction parseStringArrayLiteral(value) {\n\tconst parsed = parseJsLikeLiteral(value);\n\tif (parsed === INVALID_AUTHORING_ARGUMENT || !Array.isArray(parsed)) return INVALID_AUTHORING_ARGUMENT;\n\tif (!parsed.every((item) => typeof item === \"string\")) return INVALID_AUTHORING_ARGUMENT;\n\treturn parsed;\n}\nfunction isPlainObject(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\nfunction parsePslObjectLiteral(value) {\n\tconst trimmed = value.trim();\n\tif (!trimmed.startsWith(\"{\") || !trimmed.endsWith(\"}\")) return INVALID_AUTHORING_ARGUMENT;\n\tlet parsed;\n\ttry {\n\t\tparsed = JSON.parse(trimmed);\n\t} catch {\n\t\tparsed = parseJsLikeLiteral(trimmed);\n\t\tif (parsed === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t}\n\tif (!isPlainObject(parsed)) return INVALID_AUTHORING_ARGUMENT;\n\treturn parsed;\n}\nfunction parsePslAuthoringArgumentValue(descriptor, rawValue) {\n\tswitch (descriptor.kind) {\n\t\tcase \"string\": return unquoteStringLiteral(rawValue);\n\t\tcase \"boolean\": {\n\t\t\tconst trimmed = rawValue.trim();\n\t\t\tif (trimmed === \"true\") return true;\n\t\t\tif (trimmed === \"false\") return false;\n\t\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\tcase \"number\": {\n\t\t\tconst parsed = Number(unquoteStringLiteral(rawValue));\n\t\t\treturn Number.isNaN(parsed) ? INVALID_AUTHORING_ARGUMENT : parsed;\n\t\t}\n\t\tcase \"stringArray\": return parseStringArrayLiteral(rawValue);\n\t\tcase \"object\": return parsePslObjectLiteral(rawValue);\n\t\tcase \"option\": {\n\t\t\tconst trimmed = rawValue.trim();\n\t\t\treturn /^[A-Za-z_][A-Za-z0-9_]*$/.test(trimmed) ? trimmed : INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\tdefault: return INVALID_AUTHORING_ARGUMENT;\n\t}\n}\nfunction pushInvalidPslHelperArgument(input) {\n\tinput.diagnostics.push({\n\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\tmessage: `${input.entityLabel} ${input.helperLabel} ${input.message}`,\n\t\t...input.source.at(input.span)\n\t});\n}\n/**\n* The values of positional PSL arguments, each written as its PSL text in `rawArgs`, read as `descriptors` say, as the PSL reader reads a type constructor call. `undefined` when there are more arguments than descriptors or one does not parse.\n*/\nfunction parsePslPositionalArgs(descriptors, rawArgs) {\n\tif (rawArgs.length > descriptors.length) return void 0;\n\tconst values = [];\n\tfor (const [index, rawArg] of rawArgs.entries()) {\n\t\tconst descriptor = descriptors[index];\n\t\tif (descriptor === void 0) return void 0;\n\t\tconst value = parsePslAuthoringArgumentValue(descriptor, rawArg);\n\t\tif (value === INVALID_AUTHORING_ARGUMENT) return void 0;\n\t\tvalues.push(value);\n\t}\n\treturn values;\n}\nfunction mapPslHelperArgs(input) {\n\tconst mappedArgs = input.descriptors.map(() => void 0);\n\tconst positionalArgs = input.args.filter((arg) => arg.kind === \"positional\");\n\tconst namedArgs = input.args.filter((arg) => arg.kind === \"named\");\n\tif (positionalArgs.length > input.descriptors.length) return pushInvalidPslHelperArgument({\n\t\tdiagnostics: input.diagnostics,\n\t\tsource: input.source,\n\t\tspan: input.span,\n\t\tentityLabel: input.entityLabel,\n\t\thelperLabel: input.helperLabel,\n\t\tmessage: `accepts at most ${input.descriptors.length} argument(s), received ${positionalArgs.length}.`\n\t});\n\tfor (const [index, argument] of positionalArgs.entries()) {\n\t\tconst descriptor = input.descriptors[index];\n\t\tif (!descriptor) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `does not define positional argument #${index + 1}.`\n\t\t});\n\t\tconst value = parsePslAuthoringArgumentValue(descriptor, argument.value);\n\t\tif (value === INVALID_AUTHORING_ARGUMENT) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `cannot parse argument #${index + 1} for descriptor kind \"${descriptor.kind}\".`\n\t\t});\n\t\tmappedArgs[index] = value;\n\t}\n\tfor (const argument of namedArgs) {\n\t\tconst descriptorIndex = input.descriptors.findIndex((descriptor) => descriptor.name === argument.name);\n\t\tif (descriptorIndex < 0) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `received unknown named argument \"${argument.name}\".`\n\t\t});\n\t\tif (mappedArgs[descriptorIndex] !== void 0) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `received duplicate value for argument \"${argument.name}\".`\n\t\t});\n\t\tconst descriptor = input.descriptors[descriptorIndex];\n\t\tif (!descriptor) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `does not define named argument \"${argument.name}\".`\n\t\t});\n\t\tconst value = parsePslAuthoringArgumentValue(descriptor, argument.value);\n\t\tif (value === INVALID_AUTHORING_ARGUMENT) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `cannot parse named argument \"${argument.name}\" for descriptor kind \"${descriptor.kind}\".`\n\t\t});\n\t\tmappedArgs[descriptorIndex] = value;\n\t}\n\treturn mappedArgs;\n}\n//#endregion\n//#region src/enum-member-attributes.ts\nfunction enumMemberAttributeDiagnostics(enumBlock, sources) {\n\tconst source = diagnosticSource(sources, enumBlock.node.syntax);\n\treturn Array.from(enumBlock.node.entries()).flatMap((member) => Array.from(member.attributes(), (attribute) => ({\n\t\tcode: \"PSL_UNSUPPORTED_ENUM_MEMBER_ATTRIBUTE\",\n\t\tmessage: `enum \"${enumBlock.name}\": member \"${member.key()?.name() ?? \"?\"}\" carries @${attribute.name()?.path().join(\".\") ?? \"?\"}, but an enum member takes no attributes`,\n\t\t...source.at(nodePslSpan(attribute.syntax, sources))\n\t})));\n}\n//#endregion\n//#region src/field-presets.ts\n/**\n* Pushes the canonical `PSL_EXTENSION_NAMESPACE_NOT_COMPOSED` diagnostic for a subject (attribute, model attribute, or type constructor) that references an extension namespace which is not composed in the current contract.\n*\n* The `data` payload carries the missing namespace so machine consumers (agents, IDE extensions, CLI auto-fix) don't have to parse the prose.\n*/\nfunction uncomposedNamespaceDiagnostic(input) {\n\treturn {\n\t\tcode: \"PSL_EXTENSION_NAMESPACE_NOT_COMPOSED\",\n\t\tmessage: `${input.subjectLabel} uses unrecognized namespace \"${input.namespace}\". Add extension pack \"${input.namespace}\" to extensions in prisma.config.ts.`,\n\t\t...input.source.at(input.span),\n\t\tdata: {\n\t\t\tnamespace: input.namespace,\n\t\t\tsuggestedPack: input.namespace\n\t\t}\n\t};\n}\nfunction reportUncomposedNamespace(input) {\n\tinput.diagnostics.push(uncomposedNamespaceDiagnostic({\n\t\tsubjectLabel: input.subjectLabel,\n\t\tnamespace: input.namespace,\n\t\tsource: input.source,\n\t\tspan: input.span\n\t}));\n}\n/**\n* Pushes the canonical `PSL_UNKNOWN_FIELD_PRESET` diagnostic when a typoed preset name is referenced inside a registered field-preset namespace. The `data` payload exposes the namespace and full helper path so machine consumers (agents, IDE extensions) don't have to parse the prose.\n*/\nfunction reportUnknownFieldPreset(input) {\n\tconst presets = fieldPresetSpellings(input.authoringContributions, input.namespace);\n\tconst listed = presets.length === 0 ? \"no field presets\" : presets.length === 1 ? presets.join(\"\") : `${presets.slice(0, -1).join(\", \")} and ${presets.at(-1)}`;\n\tinput.diagnostics.push({\n\t\tcode: \"PSL_UNKNOWN_FIELD_PRESET\",\n\t\tmessage: `${input.entityLabel} references unknown field preset \"${input.helperPath}\". The \"${input.namespace}\" namespace has ${listed}.`,\n\t\t...input.source.at(input.span),\n\t\tdata: {\n\t\t\tnamespace: input.namespace,\n\t\t\thelperPath: input.helperPath\n\t\t}\n\t});\n}\n/**\n* Instantiates a field-preset call against its descriptor, coercing PSL AST arguments into the descriptor's typed argument shape and returning the preset's full set of contract contributions.\n*\n* PSL → typed-args coercion happens here (via `mapPslHelperArgs`) so that `instantiateAuthoringFieldPreset` itself stays typed-input-only and TS keeps its zero-runtime-validation cost.\n*/\nfunction instantiatePslFieldPreset(input) {\n\tconst helperPath = input.call.path.join(\".\");\n\tconst args = mapPslHelperArgs({\n\t\targs: input.call.args,\n\t\tdescriptors: input.descriptor.args ?? [],\n\t\thelperLabel: `preset \"${helperPath}\"`,\n\t\tspan: input.call.span,\n\t\tdiagnostics: input.diagnostics,\n\t\tsource: input.source,\n\t\tentityLabel: input.entityLabel\n\t});\n\tif (!args) return;\n\ttry {\n\t\tvalidateAuthoringHelperArguments(helperPath, input.descriptor.args, args);\n\t\treturn instantiateAuthoringFieldPreset(input.descriptor, args);\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\tmessage: `${input.entityLabel}: ${message}`,\n\t\t\t...input.source.at(input.call.span)\n\t\t});\n\t\treturn;\n\t}\n}\n//#endregion\n//#region src/interpret.ts\n/**\n* Merges caller-side diagnostics (e.g. parse / symbol-table findings) into an\n* interpretation result. The authored headline is deliberately uniform — it\n* reports how many errors the schema has, never which pipeline stage found\n* them.\n*/\nfunction withSeedDiagnostics(result, seedDiagnostics) {\n\tif (seedDiagnostics.length === 0) return result;\n\tconst diagnostics = result.ok ? seedDiagnostics : [...seedDiagnostics, ...result.failure.diagnostics];\n\treturn notOk({\n\t\tsummary: `Schema has ${diagnostics.length} error${diagnostics.length === 1 ? \"\" : \"s\"}`,\n\t\tdiagnostics,\n\t\t...result.ok || result.failure.meta === void 0 ? {} : { meta: result.failure.meta }\n\t});\n}\n/** The single seam that narrows a contract source to the interpret capability. */\nfunction hasPslInterpreter(source) {\n\treturn source.format === \"psl\" && \"interpret\" in source && typeof source.interpret === \"function\";\n}\n//#endregion\n//#region src/relation-backrelations.ts\nfunction fkRelationPairKey(declaringModelName, targetModelName) {\n\treturn `${declaringModelName}::${targetModelName}`;\n}\n/**\n* Claims the one rejected FK side that pairs with this back-relation candidate: same model pair\n* and the same relation name, where an unnamed candidate pairs only with an unnamed FK side.\n* A claimed pairing is removed, so a second candidate on the same pair reports its own problem.\n*/\nfunction consumeInvalidFkPairing(candidate, pairKey, invalidFkPairings) {\n\tconst index = invalidFkPairings.findIndex((pairing) => pairing.pairKey === pairKey && pairing.relationName === candidate.relationName);\n\tif (index === -1) return false;\n\tinvalidFkPairings.splice(index, 1);\n\treturn true;\n}\nfunction requiredOneToOneBackrelationDiagnostic(input) {\n\tconst { modelName, field, targetModelName, sources, recordNoun } = input;\n\treturn {\n\t\tcode: \"PSL_REQUIRED_ONE_TO_ONE_BACKRELATION\",\n\t\tmessage: `Backrelation field \"${modelName}.${field.name}\" is required, but \"${targetModelName}\" holds the relation fields, so nothing in storage guarantees a \"${targetModelName}\" ${recordNoun} exists. Make it optional: \"${field.name} ${targetModelName}?\".`,\n\t\t...diagnosticSource(sources, field.node.syntax).at(field.span)\n\t};\n}\n//#endregion\n//#region src/unclaimed-blocks.ts\n/** A generic block is read only when a composed descriptor claims its keyword. */\nfunction claimedBlockKeywords(descriptors) {\n\tconst keywords = /* @__PURE__ */ new Set();\n\tfor (const [keyword, value] of Object.entries(descriptors ?? {})) if (isAuthoringPslBlockDescriptor(value)) keywords.add(keyword);\n\treturn keywords;\n}\nfunction unsupportedBlockDiagnostic(block, sources) {\n\treturn {\n\t\tcode: \"PSL_UNSUPPORTED_TOP_LEVEL_BLOCK\",\n\t\tmessage: `Unsupported top-level block \"${block.keyword}\"`,\n\t\t...diagnosticSource(sources, block.node.syntax).at(keywordPslSpan(block.node.syntax, block.keyword, sources))\n\t};\n}\n//#endregion\nexport { claimedBlockKeywords, consumeInvalidFkPairing, enumMemberAttributeDiagnostics, fkRelationPairKey, hasPslInterpreter, instantiatePslFieldPreset, mapPslHelperArgs, parsePslPositionalArgs, reportUncomposedNamespace, reportUnknownFieldPreset, requiredOneToOneBackrelationDiagnostic, uncomposedNamespaceDiagnostic, unsupportedBlockDiagnostic, withSeedDiagnostics };\n\n//# sourceMappingURL=interpret.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"psl-parser__interpret.mjs","names":[],"sources":["../../../../1-framework/2-authoring/psl-parser/dist/interpret.mjs"],"sourcesContent":["import { c as diagnosticSource, n as nodePslSpan, t as keywordPslSpan } from \"./resolve-GE34dgM6.mjs\";\nimport { instantiateAuthoringFieldPreset, isAuthoringPslBlockDescriptor, validateAuthoringHelperArguments } from \"@internal/framework-components/authoring\";\nimport { notOk } from \"@internal/utils/result\";\n//#region src/authoring-arguments.ts\nfunction unquoteStringLiteral(value) {\n\tconst trimmed = value.trim();\n\tconst match = trimmed.match(/^(['\"])(.*)\\1$/);\n\tif (!match) return trimmed;\n\treturn match[2] ?? \"\";\n}\nconst INVALID_AUTHORING_ARGUMENT = Symbol(\"invalidAuthoringArgument\");\nfunction isIdentifierStartCharacter(character) {\n\treturn character !== void 0 && /[A-Za-z_$]/.test(character);\n}\nfunction isIdentifierCharacter(character) {\n\treturn character !== void 0 && /[A-Za-z0-9_$]/.test(character);\n}\nfunction parseJsLikeLiteral(value) {\n\tlet index = 0;\n\tfunction skipWhitespace() {\n\t\twhile (/\\s/.test(value[index] ?? \"\")) index += 1;\n\t}\n\tfunction parseIdentifier() {\n\t\tconst first = value[index];\n\t\tif (!isIdentifierStartCharacter(first)) return INVALID_AUTHORING_ARGUMENT;\n\t\tlet end = index + 1;\n\t\twhile (isIdentifierCharacter(value[end])) end += 1;\n\t\tconst identifier = value.slice(index, end);\n\t\tindex = end;\n\t\treturn identifier;\n\t}\n\tfunction parseString() {\n\t\tconst quote = value[index];\n\t\tif (quote !== \"\\\"\" && quote !== \"'\") return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += 1;\n\t\tlet result = \"\";\n\t\twhile (index < value.length) {\n\t\t\tconst character = value[index];\n\t\t\tindex += 1;\n\t\t\tif (character === void 0) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tif (character === quote) return result;\n\t\t\tif (character !== \"\\\\\") {\n\t\t\t\tresult += character;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst escaped = value[index];\n\t\t\tindex += 1;\n\t\t\tif (escaped === void 0) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tswitch (escaped) {\n\t\t\t\tcase \"'\":\n\t\t\t\tcase \"\\\"\":\n\t\t\t\tcase \"\\\\\":\n\t\t\t\tcase \"/\":\n\t\t\t\t\tresult += escaped;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"b\":\n\t\t\t\t\tresult += \"\\b\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"f\":\n\t\t\t\t\tresult += \"\\f\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"n\":\n\t\t\t\t\tresult += \"\\n\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"r\":\n\t\t\t\t\tresult += \"\\r\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"t\":\n\t\t\t\t\tresult += \"\t\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"u\": {\n\t\t\t\t\tconst hex = value.slice(index, index + 4);\n\t\t\t\t\tif (!/^[0-9A-Fa-f]{4}$/.test(hex)) return INVALID_AUTHORING_ARGUMENT;\n\t\t\t\t\tresult += String.fromCharCode(Number.parseInt(hex, 16));\n\t\t\t\t\tindex += 4;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault: return INVALID_AUTHORING_ARGUMENT;\n\t\t\t}\n\t\t}\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tfunction parseNumber() {\n\t\tconst raw = value.slice(index).match(/^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/)?.[0];\n\t\tif (!raw) return INVALID_AUTHORING_ARGUMENT;\n\t\tconst parsed = Number(raw);\n\t\tif (!Number.isFinite(parsed)) return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += raw.length;\n\t\treturn parsed;\n\t}\n\tfunction parseArray() {\n\t\tif (value[index] !== \"[\") return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += 1;\n\t\tconst result = [];\n\t\tskipWhitespace();\n\t\tif (value[index] === \"]\") {\n\t\t\tindex += 1;\n\t\t\treturn result;\n\t\t}\n\t\twhile (index < value.length) {\n\t\t\tconst entry = parseValue();\n\t\t\tif (entry === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tresult.push(entry);\n\t\t\tskipWhitespace();\n\t\t\tif (value[index] === \",\") {\n\t\t\t\tindex += 1;\n\t\t\t\tskipWhitespace();\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (value[index] === \"]\") {\n\t\t\t\tindex += 1;\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tfunction parseObject() {\n\t\tif (value[index] !== \"{\") return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += 1;\n\t\tconst result = {};\n\t\tskipWhitespace();\n\t\tif (value[index] === \"}\") {\n\t\t\tindex += 1;\n\t\t\treturn result;\n\t\t}\n\t\twhile (index < value.length) {\n\t\t\tskipWhitespace();\n\t\t\tconst key = value[index] === \"\\\"\" || value[index] === \"'\" ? parseString() : parseIdentifier();\n\t\t\tif (key === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tskipWhitespace();\n\t\t\tif (value[index] !== \":\") return INVALID_AUTHORING_ARGUMENT;\n\t\t\tindex += 1;\n\t\t\tconst entry = parseValue();\n\t\t\tif (entry === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tresult[key] = entry;\n\t\t\tskipWhitespace();\n\t\t\tif (value[index] === \",\") {\n\t\t\t\tindex += 1;\n\t\t\t\tskipWhitespace();\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (value[index] === \"}\") {\n\t\t\t\tindex += 1;\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tfunction parseValue() {\n\t\tskipWhitespace();\n\t\tconst character = value[index];\n\t\tif (character === \"{\") return parseObject();\n\t\tif (character === \"[\") return parseArray();\n\t\tif (character === \"\\\"\" || character === \"'\") return parseString();\n\t\tif (character === \"-\" || /\\d/.test(character ?? \"\")) return parseNumber();\n\t\tconst identifier = parseIdentifier();\n\t\tif (identifier === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\tif (identifier === \"true\") return true;\n\t\tif (identifier === \"false\") return false;\n\t\tif (identifier === \"null\") return null;\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tskipWhitespace();\n\tconst parsed = parseValue();\n\tif (parsed === INVALID_AUTHORING_ARGUMENT) return parsed;\n\tskipWhitespace();\n\treturn index === value.length ? parsed : INVALID_AUTHORING_ARGUMENT;\n}\nfunction parseStringArrayLiteral(value) {\n\tconst parsed = parseJsLikeLiteral(value);\n\tif (parsed === INVALID_AUTHORING_ARGUMENT || !Array.isArray(parsed)) return INVALID_AUTHORING_ARGUMENT;\n\tif (!parsed.every((item) => typeof item === \"string\")) return INVALID_AUTHORING_ARGUMENT;\n\treturn parsed;\n}\nfunction isPlainObject(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\nfunction parsePslObjectLiteral(value) {\n\tconst trimmed = value.trim();\n\tif (!trimmed.startsWith(\"{\") || !trimmed.endsWith(\"}\")) return INVALID_AUTHORING_ARGUMENT;\n\tlet parsed;\n\ttry {\n\t\tparsed = JSON.parse(trimmed);\n\t} catch {\n\t\tparsed = parseJsLikeLiteral(trimmed);\n\t\tif (parsed === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t}\n\tif (!isPlainObject(parsed)) return INVALID_AUTHORING_ARGUMENT;\n\treturn parsed;\n}\nfunction parsePslAuthoringArgumentValue(descriptor, rawValue) {\n\tswitch (descriptor.kind) {\n\t\tcase \"string\": return unquoteStringLiteral(rawValue);\n\t\tcase \"boolean\": {\n\t\t\tconst trimmed = rawValue.trim();\n\t\t\tif (trimmed === \"true\") return true;\n\t\t\tif (trimmed === \"false\") return false;\n\t\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\tcase \"number\": {\n\t\t\tconst parsed = Number(unquoteStringLiteral(rawValue));\n\t\t\treturn Number.isNaN(parsed) ? INVALID_AUTHORING_ARGUMENT : parsed;\n\t\t}\n\t\tcase \"stringArray\": return parseStringArrayLiteral(rawValue);\n\t\tcase \"object\": return parsePslObjectLiteral(rawValue);\n\t\tcase \"option\": {\n\t\t\tconst trimmed = rawValue.trim();\n\t\t\treturn /^[A-Za-z_][A-Za-z0-9_]*$/.test(trimmed) ? trimmed : INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\tdefault: return INVALID_AUTHORING_ARGUMENT;\n\t}\n}\nfunction pushInvalidPslHelperArgument(input) {\n\tinput.diagnostics.push({\n\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\tmessage: `${input.entityLabel} ${input.helperLabel} ${input.message}`,\n\t\t...input.source.at(input.span)\n\t});\n}\n/**\n* The values of positional PSL arguments, each written as its PSL text in `rawArgs`, read as `descriptors` say, as the PSL reader reads a type constructor call. `undefined` when there are more arguments than descriptors or one does not parse.\n*/\nfunction parsePslPositionalArgs(descriptors, rawArgs) {\n\tif (rawArgs.length > descriptors.length) return void 0;\n\tconst values = [];\n\tfor (const [index, rawArg] of rawArgs.entries()) {\n\t\tconst descriptor = descriptors[index];\n\t\tif (descriptor === void 0) return void 0;\n\t\tconst value = parsePslAuthoringArgumentValue(descriptor, rawArg);\n\t\tif (value === INVALID_AUTHORING_ARGUMENT) return void 0;\n\t\tvalues.push(value);\n\t}\n\treturn values;\n}\nfunction mapPslHelperArgs(input) {\n\tconst mappedArgs = input.descriptors.map(() => void 0);\n\tconst positionalArgs = input.args.filter((arg) => arg.kind === \"positional\");\n\tconst namedArgs = input.args.filter((arg) => arg.kind === \"named\");\n\tif (positionalArgs.length > input.descriptors.length) return pushInvalidPslHelperArgument({\n\t\tdiagnostics: input.diagnostics,\n\t\tsource: input.source,\n\t\tspan: input.span,\n\t\tentityLabel: input.entityLabel,\n\t\thelperLabel: input.helperLabel,\n\t\tmessage: `accepts at most ${input.descriptors.length} argument(s), received ${positionalArgs.length}.`\n\t});\n\tfor (const [index, argument] of positionalArgs.entries()) {\n\t\tconst descriptor = input.descriptors[index];\n\t\tif (!descriptor) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `does not define positional argument #${index + 1}.`\n\t\t});\n\t\tconst value = parsePslAuthoringArgumentValue(descriptor, argument.value);\n\t\tif (value === INVALID_AUTHORING_ARGUMENT) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `cannot parse argument #${index + 1} for descriptor kind \"${descriptor.kind}\".`\n\t\t});\n\t\tmappedArgs[index] = value;\n\t}\n\tfor (const argument of namedArgs) {\n\t\tconst descriptorIndex = input.descriptors.findIndex((descriptor) => descriptor.name === argument.name);\n\t\tif (descriptorIndex < 0) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `received unknown named argument \"${argument.name}\".`\n\t\t});\n\t\tif (mappedArgs[descriptorIndex] !== void 0) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `received duplicate value for argument \"${argument.name}\".`\n\t\t});\n\t\tconst descriptor = input.descriptors[descriptorIndex];\n\t\tif (!descriptor) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `does not define named argument \"${argument.name}\".`\n\t\t});\n\t\tconst value = parsePslAuthoringArgumentValue(descriptor, argument.value);\n\t\tif (value === INVALID_AUTHORING_ARGUMENT) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource: input.source,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `cannot parse named argument \"${argument.name}\" for descriptor kind \"${descriptor.kind}\".`\n\t\t});\n\t\tmappedArgs[descriptorIndex] = value;\n\t}\n\treturn mappedArgs;\n}\n//#endregion\n//#region src/enum-member-attributes.ts\nfunction enumMemberAttributeDiagnostics(enumBlock, sources) {\n\tconst source = diagnosticSource(sources, enumBlock.node.syntax);\n\treturn Array.from(enumBlock.node.entries()).flatMap((member) => Array.from(member.attributes(), (attribute) => ({\n\t\tcode: \"PSL_UNSUPPORTED_ENUM_MEMBER_ATTRIBUTE\",\n\t\tmessage: `enum \"${enumBlock.name}\": member \"${member.key()?.name() ?? \"?\"}\" carries @${attribute.name()?.path().join(\".\") ?? \"?\"}, but an enum member takes no attributes`,\n\t\t...source.at(nodePslSpan(attribute.syntax, sources))\n\t})));\n}\n//#endregion\n//#region src/field-presets.ts\nfunction reportPresetNotCalled(input) {\n\tinput.diagnostics.push({\n\t\tcode: \"PSL_PRESET_NOT_CALLED\",\n\t\tmessage: `${input.entityLabel} uses field preset \"${input.presetPath}\" without calling it. Write ${input.presetPath}().`,\n\t\t...input.source.at(input.span)\n\t});\n}\n/**\n* Instantiates a field-preset call against its descriptor, coercing PSL AST arguments into the descriptor's typed argument shape and returning the preset's full set of contract contributions.\n*\n* PSL → typed-args coercion happens here (via `mapPslHelperArgs`) so that `instantiateAuthoringFieldPreset` itself stays typed-input-only and TS keeps its zero-runtime-validation cost.\n*/\nfunction instantiatePslFieldPreset(input) {\n\tconst helperPath = input.call.path.join(\".\");\n\tconst args = mapPslHelperArgs({\n\t\targs: input.call.args,\n\t\tdescriptors: input.descriptor.args ?? [],\n\t\thelperLabel: `preset \"${helperPath}\"`,\n\t\tspan: input.call.span,\n\t\tdiagnostics: input.diagnostics,\n\t\tsource: input.source,\n\t\tentityLabel: input.entityLabel\n\t});\n\tif (!args) return;\n\ttry {\n\t\tvalidateAuthoringHelperArguments(helperPath, input.descriptor.args, args);\n\t\treturn instantiateAuthoringFieldPreset(input.descriptor, args);\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\tmessage: `${input.entityLabel}: ${message}`,\n\t\t\t...input.source.at(input.call.span)\n\t\t});\n\t\treturn;\n\t}\n}\n//#endregion\n//#region src/interpret.ts\n/**\n* Merges caller-side diagnostics (e.g. parse / symbol-table findings) into an\n* interpretation result. The authored headline is deliberately uniform — it\n* reports how many errors the schema has, never which pipeline stage found\n* them.\n*/\nfunction withSeedDiagnostics(result, seedDiagnostics) {\n\tif (seedDiagnostics.length === 0) return result;\n\tconst diagnostics = result.ok ? seedDiagnostics : [...seedDiagnostics, ...result.failure.diagnostics];\n\treturn notOk({\n\t\tsummary: `Schema has ${diagnostics.length} error${diagnostics.length === 1 ? \"\" : \"s\"}`,\n\t\tdiagnostics,\n\t\t...result.ok || result.failure.meta === void 0 ? {} : { meta: result.failure.meta }\n\t});\n}\n/** The single seam that narrows a contract source to the interpret capability. */\nfunction hasPslInterpreter(source) {\n\treturn source.format === \"psl\" && \"interpret\" in source && typeof source.interpret === \"function\";\n}\n//#endregion\n//#region src/relation-backrelations.ts\nfunction fkRelationPairKey(declaringModelName, targetModelName) {\n\treturn `${declaringModelName}::${targetModelName}`;\n}\n/**\n* Claims the one rejected FK side that pairs with this back-relation candidate: same model pair\n* and the same relation name, where an unnamed candidate pairs only with an unnamed FK side.\n* A claimed pairing is removed, so a second candidate on the same pair reports its own problem.\n*/\nfunction consumeInvalidFkPairing(candidate, pairKey, invalidFkPairings) {\n\tconst index = invalidFkPairings.findIndex((pairing) => pairing.pairKey === pairKey && pairing.relationName === candidate.relationName);\n\tif (index === -1) return false;\n\tinvalidFkPairings.splice(index, 1);\n\treturn true;\n}\nfunction requiredOneToOneBackrelationDiagnostic(input) {\n\tconst { modelName, field, targetModelName, sources, recordNoun } = input;\n\treturn {\n\t\tcode: \"PSL_REQUIRED_ONE_TO_ONE_BACKRELATION\",\n\t\tmessage: `Backrelation field \"${modelName}.${field.name}\" is required, but \"${targetModelName}\" holds the relation fields, so nothing in storage guarantees a \"${targetModelName}\" ${recordNoun} exists. Make it optional: \"${field.name} ${targetModelName}?\".`,\n\t\t...diagnosticSource(sources, field.node.syntax).at(field.span)\n\t};\n}\n//#endregion\n//#region src/type-constructor-calls.ts\nfunction isBareTypeConstructor(descriptor) {\n\treturn descriptor.entityRefArg === void 0 && (descriptor.args ?? []).every((arg) => arg.optional === true);\n}\nfunction argumentSpelling(descriptor) {\n\tconst args = descriptor.args ?? [];\n\tconst reference = descriptor.entityRefArg;\n\tconst count = Math.max(args.length, (reference?.index ?? -1) + 1);\n\tconst names = [];\n\tfor (let index = 0; index < count; index++) {\n\t\tconst arg = args[index];\n\t\tif (index === reference?.index) names.push(reference.entityKind);\n\t\telse if (arg !== void 0 && arg.optional !== true) names.push(arg.name ?? `argument${index + 1}`);\n\t}\n\treturn names.join(\", \");\n}\nfunction reportTypeConstructorNotCalled(input) {\n\tinput.diagnostics.push({\n\t\tcode: \"PSL_TYPE_CONSTRUCTOR_NOT_CALLED\",\n\t\tmessage: `${input.entityLabel} uses type constructor \"${input.path}\" without arguments. Write ${input.path}(${argumentSpelling(input.descriptor)}).`,\n\t\t...input.source.at(input.span)\n\t});\n}\n//#endregion\n//#region src/unclaimed-blocks.ts\n/** A generic block is read only when a composed descriptor claims its keyword. */\nfunction claimedBlockKeywords(descriptors) {\n\tconst keywords = /* @__PURE__ */ new Set();\n\tfor (const [keyword, value] of Object.entries(descriptors ?? {})) if (isAuthoringPslBlockDescriptor(value)) keywords.add(keyword);\n\treturn keywords;\n}\nfunction unsupportedBlockDiagnostic(block, sources) {\n\treturn {\n\t\tcode: \"PSL_UNSUPPORTED_TOP_LEVEL_BLOCK\",\n\t\tmessage: `Unsupported top-level block \"${block.keyword}\"`,\n\t\t...diagnosticSource(sources, block.node.syntax).at(keywordPslSpan(block.node.syntax, block.keyword, sources))\n\t};\n}\n//#endregion\nexport { claimedBlockKeywords, consumeInvalidFkPairing, enumMemberAttributeDiagnostics, fkRelationPairKey, hasPslInterpreter, instantiatePslFieldPreset, isBareTypeConstructor, mapPslHelperArgs, parsePslPositionalArgs, reportPresetNotCalled, reportTypeConstructorNotCalled, requiredOneToOneBackrelationDiagnostic, unsupportedBlockDiagnostic, withSeedDiagnostics };\n\n//# sourceMappingURL=interpret.mjs.map"],"mappings":";;;;AAIA,SAAS,qBAAqB,OAAO;CACpC,MAAM,UAAU,MAAM,KAAK;CAC3B,MAAM,QAAQ,QAAQ,MAAM,gBAAgB;CAC5C,IAAI,CAAC,OAAO,OAAO;CACnB,OAAO,MAAM,MAAM;AACpB;AACA,MAAM,6BAA6B,OAAO,0BAA0B;AACpE,SAAS,2BAA2B,WAAW;CAC9C,OAAO,cAAc,KAAK,KAAK,aAAa,KAAK,SAAS;AAC3D;AACA,SAAS,sBAAsB,WAAW;CACzC,OAAO,cAAc,KAAK,KAAK,gBAAgB,KAAK,SAAS;AAC9D;AACA,SAAS,mBAAmB,OAAO;CAClC,IAAI,QAAQ;CACZ,SAAS,iBAAiB;EACzB,OAAO,KAAK,KAAK,MAAM,UAAU,EAAE,GAAG,SAAS;CAChD;CACA,SAAS,kBAAkB;EAC1B,MAAM,QAAQ,MAAM;EACpB,IAAI,CAAC,2BAA2B,KAAK,GAAG,OAAO;EAC/C,IAAI,MAAM,QAAQ;EAClB,OAAO,sBAAsB,MAAM,IAAI,GAAG,OAAO;EACjD,MAAM,aAAa,MAAM,MAAM,OAAO,GAAG;EACzC,QAAQ;EACR,OAAO;CACR;CACA,SAAS,cAAc;EACtB,MAAM,QAAQ,MAAM;EACpB,IAAI,UAAU,QAAQ,UAAU,KAAK,OAAO;EAC5C,SAAS;EACT,IAAI,SAAS;EACb,OAAO,QAAQ,MAAM,QAAQ;GAC5B,MAAM,YAAY,MAAM;GACxB,SAAS;GACT,IAAI,cAAc,KAAK,GAAG,OAAO;GACjC,IAAI,cAAc,OAAO,OAAO;GAChC,IAAI,cAAc,MAAM;IACvB,UAAU;IACV;GACD;GACA,MAAM,UAAU,MAAM;GACtB,SAAS;GACT,IAAI,YAAY,KAAK,GAAG,OAAO;GAC/B,QAAQ,SAAR;IACC,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;KACJ,UAAU;KACV;IACD,KAAK;KACJ,UAAU;KACV;IACD,KAAK;KACJ,UAAU;KACV;IACD,KAAK;KACJ,UAAU;KACV;IACD,KAAK;KACJ,UAAU;KACV;IACD,KAAK;KACJ,UAAU;KACV;IACD,KAAK,KAAK;KACT,MAAM,MAAM,MAAM,MAAM,OAAO,QAAQ,CAAC;KACxC,IAAI,CAAC,mBAAmB,KAAK,GAAG,GAAG,OAAO;KAC1C,UAAU,OAAO,aAAa,OAAO,SAAS,KAAK,EAAE,CAAC;KACtD,SAAS;KACT;IACD;IACA,SAAS,OAAO;GACjB;EACD;EACA,OAAO;CACR;CACA,SAAS,cAAc;EACtB,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,CAAC,MAAM,8CAA8C,CAAC,GAAG;EACvF,IAAI,CAAC,KAAK,OAAO;EACjB,MAAM,SAAS,OAAO,GAAG;EACzB,IAAI,CAAC,OAAO,SAAS,MAAM,GAAG,OAAO;EACrC,SAAS,IAAI;EACb,OAAO;CACR;CACA,SAAS,aAAa;EACrB,IAAI,MAAM,WAAW,KAAK,OAAO;EACjC,SAAS;EACT,MAAM,SAAS,CAAC;EAChB,eAAe;EACf,IAAI,MAAM,WAAW,KAAK;GACzB,SAAS;GACT,OAAO;EACR;EACA,OAAO,QAAQ,MAAM,QAAQ;GAC5B,MAAM,QAAQ,WAAW;GACzB,IAAI,UAAU,4BAA4B,OAAO;GACjD,OAAO,KAAK,KAAK;GACjB,eAAe;GACf,IAAI,MAAM,WAAW,KAAK;IACzB,SAAS;IACT,eAAe;IACf;GACD;GACA,IAAI,MAAM,WAAW,KAAK;IACzB,SAAS;IACT,OAAO;GACR;GACA,OAAO;EACR;EACA,OAAO;CACR;CACA,SAAS,cAAc;EACtB,IAAI,MAAM,WAAW,KAAK,OAAO;EACjC,SAAS;EACT,MAAM,SAAS,CAAC;EAChB,eAAe;EACf,IAAI,MAAM,WAAW,KAAK;GACzB,SAAS;GACT,OAAO;EACR;EACA,OAAO,QAAQ,MAAM,QAAQ;GAC5B,eAAe;GACf,MAAM,MAAM,MAAM,WAAW,QAAQ,MAAM,WAAW,MAAM,YAAY,IAAI,gBAAgB;GAC5F,IAAI,QAAQ,4BAA4B,OAAO;GAC/C,eAAe;GACf,IAAI,MAAM,WAAW,KAAK,OAAO;GACjC,SAAS;GACT,MAAM,QAAQ,WAAW;GACzB,IAAI,UAAU,4BAA4B,OAAO;GACjD,OAAO,OAAO;GACd,eAAe;GACf,IAAI,MAAM,WAAW,KAAK;IACzB,SAAS;IACT,eAAe;IACf;GACD;GACA,IAAI,MAAM,WAAW,KAAK;IACzB,SAAS;IACT,OAAO;GACR;GACA,OAAO;EACR;EACA,OAAO;CACR;CACA,SAAS,aAAa;EACrB,eAAe;EACf,MAAM,YAAY,MAAM;EACxB,IAAI,cAAc,KAAK,OAAO,YAAY;EAC1C,IAAI,cAAc,KAAK,OAAO,WAAW;EACzC,IAAI,cAAc,QAAQ,cAAc,KAAK,OAAO,YAAY;EAChE,IAAI,cAAc,OAAO,KAAK,KAAK,aAAa,EAAE,GAAG,OAAO,YAAY;EACxE,MAAM,aAAa,gBAAgB;EACnC,IAAI,eAAe,4BAA4B,OAAO;EACtD,IAAI,eAAe,QAAQ,OAAO;EAClC,IAAI,eAAe,SAAS,OAAO;EACnC,IAAI,eAAe,QAAQ,OAAO;EAClC,OAAO;CACR;CACA,eAAe;CACf,MAAM,SAAS,WAAW;CAC1B,IAAI,WAAW,4BAA4B,OAAO;CAClD,eAAe;CACf,OAAO,UAAU,MAAM,SAAS,SAAS;AAC1C;AACA,SAAS,wBAAwB,OAAO;CACvC,MAAM,SAAS,mBAAmB,KAAK;CACvC,IAAI,WAAW,8BAA8B,CAAC,MAAM,QAAQ,MAAM,GAAG,OAAO;CAC5E,IAAI,CAAC,OAAO,OAAO,SAAS,OAAO,SAAS,QAAQ,GAAG,OAAO;CAC9D,OAAO;AACR;AACA,SAAS,cAAc,OAAO;CAC7B,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC3E;AACA,SAAS,sBAAsB,OAAO;CACrC,MAAM,UAAU,MAAM,KAAK;CAC3B,IAAI,CAAC,QAAQ,WAAW,GAAG,KAAK,CAAC,QAAQ,SAAS,GAAG,GAAG,OAAO;CAC/D,IAAI;CACJ,IAAI;EACH,SAAS,KAAK,MAAM,OAAO;CAC5B,QAAQ;EACP,SAAS,mBAAmB,OAAO;EACnC,IAAI,WAAW,4BAA4B,OAAO;CACnD;CACA,IAAI,CAAC,cAAc,MAAM,GAAG,OAAO;CACnC,OAAO;AACR;AACA,SAAS,+BAA+B,YAAY,UAAU;CAC7D,QAAQ,WAAW,MAAnB;EACC,KAAK,UAAU,OAAO,qBAAqB,QAAQ;EACnD,KAAK,WAAW;GACf,MAAM,UAAU,SAAS,KAAK;GAC9B,IAAI,YAAY,QAAQ,OAAO;GAC/B,IAAI,YAAY,SAAS,OAAO;GAChC,OAAO;EACR;EACA,KAAK,UAAU;GACd,MAAM,SAAS,OAAO,qBAAqB,QAAQ,CAAC;GACpD,OAAO,OAAO,MAAM,MAAM,IAAI,6BAA6B;EAC5D;EACA,KAAK,eAAe,OAAO,wBAAwB,QAAQ;EAC3D,KAAK,UAAU,OAAO,sBAAsB,QAAQ;EACpD,KAAK,UAAU;GACd,MAAM,UAAU,SAAS,KAAK;GAC9B,OAAO,2BAA2B,KAAK,OAAO,IAAI,UAAU;EAC7D;EACA,SAAS,OAAO;CACjB;AACD;AACA,SAAS,6BAA6B,OAAO;CAC5C,MAAM,YAAY,KAAK;EACtB,MAAM;EACN,SAAS,GAAG,MAAM,YAAY,GAAG,MAAM,YAAY,GAAG,MAAM;EAC5D,GAAG,MAAM,OAAO,GAAG,MAAM,IAAI;CAC9B,CAAC;AACF;;;;AAIA,SAAS,uBAAuB,aAAa,SAAS;CACrD,IAAI,QAAQ,SAAS,YAAY,QAAQ,OAAO,KAAK;CACrD,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,CAAC,OAAO,WAAW,QAAQ,QAAQ,GAAG;EAChD,MAAM,aAAa,YAAY;EAC/B,IAAI,eAAe,KAAK,GAAG,OAAO,KAAK;EACvC,MAAM,QAAQ,+BAA+B,YAAY,MAAM;EAC/D,IAAI,UAAU,4BAA4B,OAAO,KAAK;EACtD,OAAO,KAAK,KAAK;CAClB;CACA,OAAO;AACR;AACA,SAAS,iBAAiB,OAAO;CAChC,MAAM,aAAa,MAAM,YAAY,UAAU,KAAK,CAAC;CACrD,MAAM,iBAAiB,MAAM,KAAK,QAAQ,QAAQ,IAAI,SAAS,YAAY;CAC3E,MAAM,YAAY,MAAM,KAAK,QAAQ,QAAQ,IAAI,SAAS,OAAO;CACjE,IAAI,eAAe,SAAS,MAAM,YAAY,QAAQ,OAAO,6BAA6B;EACzF,aAAa,MAAM;EACnB,QAAQ,MAAM;EACd,MAAM,MAAM;EACZ,aAAa,MAAM;EACnB,aAAa,MAAM;EACnB,SAAS,mBAAmB,MAAM,YAAY,OAAO,yBAAyB,eAAe,OAAO;CACrG,CAAC;CACD,KAAK,MAAM,CAAC,OAAO,aAAa,eAAe,QAAQ,GAAG;EACzD,MAAM,aAAa,MAAM,YAAY;EACrC,IAAI,CAAC,YAAY,OAAO,6BAA6B;GACpD,aAAa,MAAM;GACnB,QAAQ,MAAM;GACd,MAAM,SAAS;GACf,aAAa,MAAM;GACnB,aAAa,MAAM;GACnB,SAAS,wCAAwC,QAAQ,EAAE;EAC5D,CAAC;EACD,MAAM,QAAQ,+BAA+B,YAAY,SAAS,KAAK;EACvE,IAAI,UAAU,4BAA4B,OAAO,6BAA6B;GAC7E,aAAa,MAAM;GACnB,QAAQ,MAAM;GACd,MAAM,SAAS;GACf,aAAa,MAAM;GACnB,aAAa,MAAM;GACnB,SAAS,0BAA0B,QAAQ,EAAE,wBAAwB,WAAW,KAAK;EACtF,CAAC;EACD,WAAW,SAAS;CACrB;CACA,KAAK,MAAM,YAAY,WAAW;EACjC,MAAM,kBAAkB,MAAM,YAAY,WAAW,eAAe,WAAW,SAAS,SAAS,IAAI;EACrG,IAAI,kBAAkB,GAAG,OAAO,6BAA6B;GAC5D,aAAa,MAAM;GACnB,QAAQ,MAAM;GACd,MAAM,SAAS;GACf,aAAa,MAAM;GACnB,aAAa,MAAM;GACnB,SAAS,oCAAoC,SAAS,KAAK;EAC5D,CAAC;EACD,IAAI,WAAW,qBAAqB,KAAK,GAAG,OAAO,6BAA6B;GAC/E,aAAa,MAAM;GACnB,QAAQ,MAAM;GACd,MAAM,SAAS;GACf,aAAa,MAAM;GACnB,aAAa,MAAM;GACnB,SAAS,0CAA0C,SAAS,KAAK;EAClE,CAAC;EACD,MAAM,aAAa,MAAM,YAAY;EACrC,IAAI,CAAC,YAAY,OAAO,6BAA6B;GACpD,aAAa,MAAM;GACnB,QAAQ,MAAM;GACd,MAAM,SAAS;GACf,aAAa,MAAM;GACnB,aAAa,MAAM;GACnB,SAAS,mCAAmC,SAAS,KAAK;EAC3D,CAAC;EACD,MAAM,QAAQ,+BAA+B,YAAY,SAAS,KAAK;EACvE,IAAI,UAAU,4BAA4B,OAAO,6BAA6B;GAC7E,aAAa,MAAM;GACnB,QAAQ,MAAM;GACd,MAAM,SAAS;GACf,aAAa,MAAM;GACnB,aAAa,MAAM;GACnB,SAAS,gCAAgC,SAAS,KAAK,yBAAyB,WAAW,KAAK;EACjG,CAAC;EACD,WAAW,mBAAmB;CAC/B;CACA,OAAO;AACR;AAGA,SAAS,+BAA+B,WAAW,SAAS;CAC3D,MAAM,SAAS,iBAAiB,SAAS,UAAU,KAAK,MAAM;CAC9D,OAAO,MAAM,KAAK,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,WAAW,MAAM,KAAK,OAAO,WAAW,IAAI,eAAe;EAC/G,MAAM;EACN,SAAS,SAAS,UAAU,KAAK,aAAa,OAAO,IAAI,CAAC,EAAE,KAAK,KAAK,IAAI,aAAa,UAAU,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,GAAG,KAAK,IAAI;EACjI,GAAG,OAAO,GAAG,YAAY,UAAU,QAAQ,OAAO,CAAC;CACpD,EAAE,CAAC;AACJ;AAGA,SAAS,sBAAsB,OAAO;CACrC,MAAM,YAAY,KAAK;EACtB,MAAM;EACN,SAAS,GAAG,MAAM,YAAY,sBAAsB,MAAM,WAAW,8BAA8B,MAAM,WAAW;EACpH,GAAG,MAAM,OAAO,GAAG,MAAM,IAAI;CAC9B,CAAC;AACF;;;;;;AAMA,SAAS,0BAA0B,OAAO;CACzC,MAAM,aAAa,MAAM,KAAK,KAAK,KAAK,GAAG;CAC3C,MAAM,OAAO,iBAAiB;EAC7B,MAAM,MAAM,KAAK;EACjB,aAAa,MAAM,WAAW,QAAQ,CAAC;EACvC,aAAa,WAAW,WAAW;EACnC,MAAM,MAAM,KAAK;EACjB,aAAa,MAAM;EACnB,QAAQ,MAAM;EACd,aAAa,MAAM;CACpB,CAAC;CACD,IAAI,CAAC,MAAM;CACX,IAAI;EACH,iCAAiC,YAAY,MAAM,WAAW,MAAM,IAAI;EACxE,OAAO,gCAAgC,MAAM,YAAY,IAAI;CAC9D,SAAS,OAAO;EACf,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EACrE,MAAM,YAAY,KAAK;GACtB,MAAM;GACN,SAAS,GAAG,MAAM,YAAY,IAAI;GAClC,GAAG,MAAM,OAAO,GAAG,MAAM,KAAK,IAAI;EACnC,CAAC;EACD;CACD;AACD;;;;;;;AASA,SAAS,oBAAoB,QAAQ,iBAAiB;CACrD,IAAI,gBAAgB,WAAW,GAAG,OAAO;CACzC,MAAM,cAAc,OAAO,KAAK,kBAAkB,CAAC,GAAG,iBAAiB,GAAG,OAAO,QAAQ,WAAW;CACpG,OAAO,MAAM;EACZ,SAAS,cAAc,YAAY,OAAO,QAAQ,YAAY,WAAW,IAAI,KAAK;EAClF;EACA,GAAG,OAAO,MAAM,OAAO,QAAQ,SAAS,KAAK,IAAI,CAAC,IAAI,EAAE,MAAM,OAAO,QAAQ,KAAK;CACnF,CAAC;AACF;;AAEA,SAAS,kBAAkB,QAAQ;CAClC,OAAO,OAAO,WAAW,SAAS,eAAe,UAAU,OAAO,OAAO,cAAc;AACxF;AAGA,SAAS,kBAAkB,oBAAoB,iBAAiB;CAC/D,OAAO,GAAG,mBAAmB,IAAI;AAClC;;;;;;AAMA,SAAS,wBAAwB,WAAW,SAAS,mBAAmB;CACvE,MAAM,QAAQ,kBAAkB,WAAW,YAAY,QAAQ,YAAY,WAAW,QAAQ,iBAAiB,UAAU,YAAY;CACrI,IAAI,UAAU,IAAI,OAAO;CACzB,kBAAkB,OAAO,OAAO,CAAC;CACjC,OAAO;AACR;AACA,SAAS,uCAAuC,OAAO;CACtD,MAAM,EAAE,WAAW,OAAO,iBAAiB,SAAS,eAAe;CACnE,OAAO;EACN,MAAM;EACN,SAAS,uBAAuB,UAAU,GAAG,MAAM,KAAK,sBAAsB,gBAAgB,mEAAmE,gBAAgB,IAAI,WAAW,8BAA8B,MAAM,KAAK,GAAG,gBAAgB;EAC5P,GAAG,iBAAiB,SAAS,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI;CAC9D;AACD;AAGA,SAAS,sBAAsB,YAAY;CAC1C,OAAO,WAAW,iBAAiB,KAAK,MAAM,WAAW,QAAQ,CAAC,EAAA,CAAG,OAAO,QAAQ,IAAI,aAAa,IAAI;AAC1G;AACA,SAAS,iBAAiB,YAAY;CACrC,MAAM,OAAO,WAAW,QAAQ,CAAC;CACjC,MAAM,YAAY,WAAW;CAC7B,MAAM,QAAQ,KAAK,IAAI,KAAK,SAAS,WAAW,SAAS,MAAM,CAAC;CAChE,MAAM,QAAQ,CAAC;CACf,KAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,SAAS;EAC3C,MAAM,MAAM,KAAK;EACjB,IAAI,UAAU,WAAW,OAAO,MAAM,KAAK,UAAU,UAAU;OAC1D,IAAI,QAAQ,KAAK,KAAK,IAAI,aAAa,MAAM,MAAM,KAAK,IAAI,QAAQ,WAAW,QAAQ,GAAG;CAChG;CACA,OAAO,MAAM,KAAK,IAAI;AACvB;AACA,SAAS,+BAA+B,OAAO;CAC9C,MAAM,YAAY,KAAK;EACtB,MAAM;EACN,SAAS,GAAG,MAAM,YAAY,0BAA0B,MAAM,KAAK,6BAA6B,MAAM,KAAK,GAAG,iBAAiB,MAAM,UAAU,EAAE;EACjJ,GAAG,MAAM,OAAO,GAAG,MAAM,IAAI;CAC9B,CAAC;AACF;;AAIA,SAAS,qBAAqB,aAAa;CAC1C,MAAM,2BAA2B,IAAI,IAAI;CACzC,KAAK,MAAM,CAAC,SAAS,UAAU,OAAO,QAAQ,eAAe,CAAC,CAAC,GAAG,IAAI,8BAA8B,KAAK,GAAG,SAAS,IAAI,OAAO;CAChI,OAAO;AACR;AACA,SAAS,2BAA2B,OAAO,SAAS;CACnD,OAAO;EACN,MAAM;EACN,SAAS,gCAAgC,MAAM,QAAQ;EACvD,GAAG,iBAAiB,SAAS,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,eAAe,MAAM,KAAK,QAAQ,MAAM,SAAS,OAAO,CAAC;CAC7G;AACD"}
@@ -1,5 +1,5 @@
1
1
  import { n as TokenKind } from "./tokenizer-DW30uwhx-BHsWTwYk.mjs";
2
- import { $ as castExpression, A as ObjectFieldAst, B as Range, C as KeyValuePairAst, D as NamespaceDeclarationAst, E as NamedTypeDeclarationAst, F as Position, G as SyntaxKind, H as StringLiteralExprAst, J as TaggedLiteralExprAst, K as SyntaxNode, M as ParseDiagnostic, N as ParseResult, O as NamespaceMemberAst, P as PathExprAst, Q as any, R as PslSources, S as IdentifierAst, T as ModelDeclarationAst, U as StringLiteralQuote, V as SourceFile, W as SyntaxElement, X as TypeAnnotationAst, Y as TokenAtOffset, Z as TypesBlockAst, _ as GenericBlockDeclarationAst, a as AttributeAst, at as filterChildren, b as GreenNode, c as BracedBlock, ct as greenNode, dt as parse, f as DocumentAst, ft as printSyntax, g as FunctionCallAst, h as FieldDeclarationAst, i as AttributeArgListAst, it as dottedPathsIn, j as ObjectLiteralExprAst, k as NumberLiteralExprAst, l as CompositeTypeDeclarationAst, lt as greenToken, m as FieldAttributeAst, n as AstNode, o as BlockMemberAst, ot as findChildToken, p as ExpressionAst, q as SyntaxToken, r as AttributeArgAst, s as BooleanLiteralExprAst, st as findFirstChild, t as ArrayLiteralAst, tt as createSyntaxTree, u as DeclarationAst, v as GenericBlockMemberAst, w as ModelAttributeAst, x as GreenToken, y as GreenElement, z as QualifiedNameAst } from "./parse-DqMTVHCw-Cw1RjDIQ.mjs";
2
+ import { $ as castExpression, A as ObjectFieldAst, B as Range, C as KeyValuePairAst, D as NamespaceDeclarationAst, E as NamedTypeDeclarationAst, F as Position, G as SyntaxKind, H as StringLiteralExprAst, J as TaggedLiteralExprAst, K as SyntaxNode, M as ParseDiagnostic, N as ParseResult, O as NamespaceMemberAst, P as PathExprAst, Q as any, R as PslSources, S as IdentifierAst, T as ModelDeclarationAst, U as StringLiteralQuote, V as SourceFile, W as SyntaxElement, X as TypeAnnotationAst, Y as TokenAtOffset, Z as TypesBlockAst, _ as GenericBlockDeclarationAst, a as AttributeAst, at as filterChildren, b as GreenNode, c as BracedBlock, ct as greenNode, dt as parse, f as DocumentAst, ft as printSyntax, g as FunctionCallAst, h as FieldDeclarationAst, i as AttributeArgListAst, it as dottedPathsIn, j as ObjectLiteralExprAst, k as NumberLiteralExprAst, l as CompositeTypeDeclarationAst, lt as greenToken, m as FieldAttributeAst, n as AstNode, o as BlockMemberAst, ot as findChildToken, p as ExpressionAst, q as SyntaxToken, r as AttributeArgAst, s as BooleanLiteralExprAst, st as findFirstChild, t as ArrayLiteralAst, tt as createSyntaxTree, u as DeclarationAst, v as GenericBlockMemberAst, w as ModelAttributeAst, x as GreenToken, y as GreenElement, z as QualifiedNameAst } from "./parse-DqMTVHCw-DqqgVEUq.mjs";
3
3
  //#region ../../../1-framework/2-authoring/psl-parser/dist/syntax.d.mts
4
4
  //#region src/syntax/green-builder.d.ts
5
5
  declare class GreenNodeBuilder {
@@ -1,6 +1,6 @@
1
1
  import { a as createSyntaxTree, c as findFirstChild, i as any, l as printSyntax, n as SyntaxToken, o as filterChildren, r as TokenAtOffset, s as findChildToken, t as SyntaxNode } from "./ast-helpers-2XRnkQEO-BxG5qx3Q.mjs";
2
- import { C as TaggedLiteralExprAst, D as dottedPathsIn, E as castExpression, S as StringLiteralExprAst, T as TypesBlockAst, _ as NumberLiteralExprAst, a as CompositeTypeDeclarationAst, b as PathExprAst, c as FieldDeclarationAst, d as IdentifierAst, f as KeyValuePairAst, g as NamespaceDeclarationAst, h as NamedTypeDeclarationAst, i as BooleanLiteralExprAst, l as FunctionCallAst, m as ModelDeclarationAst, n as AttributeArgAst, o as DocumentAst, p as ModelAttributeAst, r as AttributeArgListAst, s as FieldAttributeAst, t as ArrayLiteralAst, u as GenericBlockDeclarationAst, v as ObjectFieldAst, w as TypeAnnotationAst, x as QualifiedNameAst, y as ObjectLiteralExprAst } from "./declarations-C0VwsVFX-24_6w6Lb.mjs";
3
- import { a as greenToken, i as greenNode, n as PslSources, o as parse, r as SourceFile, t as GreenNodeBuilder } from "./parse-EvT3Ac9q-j7zYLB_6.mjs";
2
+ import { C as TaggedLiteralExprAst, D as dottedPathsIn, E as castExpression, S as StringLiteralExprAst, T as TypesBlockAst, _ as NumberLiteralExprAst, a as CompositeTypeDeclarationAst, b as PathExprAst, c as FieldDeclarationAst, d as IdentifierAst, f as KeyValuePairAst, g as NamespaceDeclarationAst, h as NamedTypeDeclarationAst, i as BooleanLiteralExprAst, l as FunctionCallAst, m as ModelDeclarationAst, n as AttributeArgAst, o as DocumentAst, p as ModelAttributeAst, r as AttributeArgListAst, s as FieldAttributeAst, t as ArrayLiteralAst, u as GenericBlockDeclarationAst, v as ObjectFieldAst, w as TypeAnnotationAst, x as QualifiedNameAst, y as ObjectLiteralExprAst } from "./declarations-C0VwsVFX-BcP1Nyv4.mjs";
3
+ import { a as greenToken, i as greenNode, n as PslSources, o as parse, r as SourceFile, t as GreenNodeBuilder } from "./parse-EvT3Ac9q-B0Nxq52v.mjs";
4
4
  //#region ../../../1-framework/2-authoring/psl-parser/dist/syntax.mjs
5
5
  const TRIVIA_KINDS = /* @__PURE__ */ new Set([
6
6
  "Whitespace",
@@ -1,7 +1,7 @@
1
- import { C as AuthoringPslBlockDescriptorNamespace } from "./framework-authoring-CsVwBOxP-saf7NH7p.mjs";
2
- import "./authoring-DTZsvKV7.mjs";
3
- import { f as PslDocumentAst } from "./psl-ast-CAA6nJRp-DIk-wyX1.mjs";
4
- import "./psl-ast-irbNZ93U.mjs";
1
+ import { C as AuthoringPslBlockDescriptorNamespace } from "./framework-authoring-BLXTNi9g-CcRc8u9I.mjs";
2
+ import "./authoring-CQOFIHhF.mjs";
3
+ import { f as PslDocumentAst } from "./psl-ast-CPxYIxM1-XHoHPgRO.mjs";
4
+ import "./psl-ast-DA_tKWiL.mjs";
5
5
  //#region ../../../1-framework/2-authoring/psl-printer/dist/index.d.mts
6
6
  //#region src/print-psl.d.ts
7
7
  type PslBlockDescriptorsNamespace = AuthoringPslBlockDescriptorNamespace;
@@ -1,6 +1,6 @@
1
1
  import { t as ifDefined } from "./defined-BQWA85QH-BRSBMULx.mjs";
2
2
  import { o as structuredError } from "./structured-error-BXbihKQ-.mjs";
3
- import { S as isAuthoringPslBlockDescriptor } from "./temporal-presets-DsGuaFyT-DWzKyja_.mjs";
3
+ import { x as isAuthoringPslBlockDescriptor } from "./temporal-presets-DzBBD4St-BaL1QaZ7.mjs";
4
4
  import { a as flatPslModels, c as namespacePslExtensionBlocks } from "./psl-ast-CyvE6CR-.mjs";
5
5
  //#region ../../../1-framework/2-authoring/psl-printer/dist/index.mjs
6
6
  function contractError(code, message, options) {
@@ -1,6 +1,6 @@
1
- import { T as AuthoringStorageTypeTemplate, W as ScalarTypeConstructorOutput } from "./framework-authoring-CsVwBOxP-saf7NH7p.mjs";
2
- import { c as MutationDefaultGeneratorDescriptor } from "./mutation-default-types--XIOgxCm-B6NmSBxF.mjs";
3
- //#region ../../../1-framework/1-core/framework-components/dist/temporal-presets-UGhnJIuo.d.mts
1
+ import { T as AuthoringStorageTypeTemplate, W as ScalarTypeConstructorOutput } from "./framework-authoring-BLXTNi9g-CcRc8u9I.mjs";
2
+ import { c as MutationDefaultGeneratorDescriptor } from "./mutation-default-types-ZfKqVdmf-DATmLFpQ.mjs";
3
+ //#region ../../../1-framework/1-core/framework-components/dist/temporal-presets-DKHiZVPP.d.mts
4
4
  //#region src/shared/tagged-literal.d.ts
5
5
  /**
6
6
  * Every failure `offset` is an index into the resolved text the function was
@@ -157,4 +157,4 @@ declare function temporalCodecPreset<const Storage extends PresetStorageTemplate
157
157
  };
158
158
  //#endregion
159
159
  export { TIMESTAMP_NOW_GENERATOR_ID as a, describeTaggedLiteralFailure as c, resolveTemplateTagEscapes as d, temporalAuthoringPresets as f, timestampNowControlDescriptor as h, TEMPORAL_ON_UPDATE_ARG as i, printTaggedLiteral as l, temporalPhaseTemplate as m, TAGGED_LITERAL_MAX_BYTES as n, TaggedLiteralCanonicalization as o, temporalCodecPreset as p, TEMPORAL_ON_CREATE_ARG as r, canonicalizeTaggedLiteralBody as s, PresetStorageTemplate as t, resolvePslBacktickEscapes as u };
160
- //# sourceMappingURL=temporal-presets-UGhnJIuo-DCoJ3HJj.d.mts.map
160
+ //# sourceMappingURL=temporal-presets-DKHiZVPP-DLAr--Pb.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"temporal-presets-UGhnJIuo-DCoJ3HJj.d.mts","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/temporal-presets-UGhnJIuo.d.mts"],"mappings":";;;;;;;;KAOK;WACM;WACA;;WAEA;WACA;WACA;;cAEG;;iBAEG,6BAA6B;;iBAE7B,0BAA0B;;iBAE1B,0BAA0B;;;;;;;;iBAQ1B,8BAA8B,mBAAmB;;;;;;;iBAOjD,mBAAmB,aAAa;;;;;;KAM5C,wBAAwB,8BAA8B;;;;cAI7C;;;;;;iBAMG,iCAAiC;;;;iBAIjC,+BAA+B,gBAAgB,6BAA6B,oCAAoC,4BAA4B,OAAO;WACzJ,cAAc;;WAEd;aACE;aACA,QAAQ,KAAK;eACX,cAAc;;eAEd;iBACE;mBACE;mBACA,qBAAqB;;;;;WAK7B;aACE;aACA,QAAQ,KAAK;eACX,cAAc;;eAEd;iBACE;mBACE;mBACA,qBAAqB;;iBAEvB;mBACE;mBACA,qBAAqB;;;;;;cAM1B;WACH;WACA;WACA;WACA;;cAEG;WACH;WACA;WACA;WACA;;;;;iBAKM,4BAA4B,4BAA4B,4BAA4B,OAAO,OAAO,aAAa;WACrH;WACA,OAAO;WACP;aACE;eACE;eACA,IAAI;;;;;;;iBAOF,0BAA0B,gBAAgB,uBAAuB,SAAS;WAChF;WACA;aACE;aACA;aACA;aACA;;aAEA;aACA;aACA;aACA;;WAEF,QAAQ;aACN;eACE;iBACE;iBACA;iBACA;mBACE;qBACE;qBACA;;;;eAIN;iBACE;iBACA;iBACA;mBACE;qBACE;qBACA"}
1
+ {"version":3,"file":"temporal-presets-DKHiZVPP-DLAr--Pb.d.mts","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/temporal-presets-DKHiZVPP.d.mts"],"mappings":";;;;;;;;KAOK;WACM;WACA;;WAEA;WACA;WACA;;cAEG;;iBAEG,6BAA6B;;iBAE7B,0BAA0B;;iBAE1B,0BAA0B;;;;;;;;iBAQ1B,8BAA8B,mBAAmB;;;;;;;iBAOjD,mBAAmB,aAAa;;;;;;KAM5C,wBAAwB,8BAA8B;;;;cAI7C;;;;;;iBAMG,iCAAiC;;;;iBAIjC,+BAA+B,gBAAgB,6BAA6B,oCAAoC,4BAA4B,OAAO;WACzJ,cAAc;;WAEd;aACE;aACA,QAAQ,KAAK;eACX,cAAc;;eAEd;iBACE;mBACE;mBACA,qBAAqB;;;;;WAK7B;aACE;aACA,QAAQ,KAAK;eACX,cAAc;;eAEd;iBACE;mBACE;mBACA,qBAAqB;;iBAEvB;mBACE;mBACA,qBAAqB;;;;;;cAM1B;WACH;WACA;WACA;WACA;;cAEG;WACH;WACA;WACA;WACA;;;;;iBAKM,4BAA4B,4BAA4B,4BAA4B,OAAO,OAAO,aAAa;WACrH;WACA,OAAO;WACP;aACE;eACE;eACA,IAAI;;;;;;;iBAOF,0BAA0B,gBAAgB,uBAAuB,SAAS;WAChF;WACA;aACE;aACA;aACA;aACA;;aAEA;aACA;aACA;aACA;;WAEF,QAAQ;aACN;eACE;iBACE;iBACA;iBACA;mBACE;qBACE;qBACA;;;;eAIN;iBACE;iBACA;iBACA;mBACE;qBACE;qBACA"}
@@ -4,7 +4,7 @@ import { d as isExecutionMutationDefaultValue, u as isColumnDefaultLiteralInputV
4
4
  import { t as InternalError } from "./internal-error-ChGYPVpq-DhUD05u0.mjs";
5
5
  import { n as invariant } from "./assertions-Dw1lZz_Q.mjs";
6
6
  import { n as runtimeError } from "./runtime-error-BA9d7XjZ-BlT8t6LB.mjs";
7
- //#region ../../../1-framework/1-core/framework-components/dist/temporal-presets-DsGuaFyT.mjs
7
+ //#region ../../../1-framework/1-core/framework-components/dist/temporal-presets-DzBBD4St.mjs
8
8
  const AUTHORING_WARNING_BATCH_THRESHOLD = 5;
9
9
  /**
10
10
  * Emits collected authoring warnings once per build, grouped by `code`:
@@ -130,19 +130,6 @@ function isAuthoringPslBlockDescriptor(value) {
130
130
  function isAuthoringModelAttributeDescriptor(value) {
131
131
  return "kind" in value && value.kind === "modelAttribute";
132
132
  }
133
- /**
134
- * Returns true when `namespace` is a non-leaf key in `contributions.field`.
135
- *
136
- * `AuthoringFieldNamespace` permits a leaf descriptor at any depth — including
137
- * the root — so a top-level `field: { Foo: { kind: 'fieldPreset', ... } }`
138
- * registration must NOT be treated as a "namespace" with sub-paths. Callers
139
- * use this predicate to gate dot-namespaced lookups (e.g. PSL `@Foo.bar`).
140
- */
141
- function hasRegisteredFieldNamespace(contributions, namespace) {
142
- if (contributions?.field === void 0 || !Object.hasOwn(contributions.field, namespace)) return false;
143
- const value = contributions.field[namespace];
144
- return value !== void 0 && !isAuthoringFieldPresetDescriptor(value);
145
- }
146
133
  function isCopyableNamespaceObject(value) {
147
134
  if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
148
135
  const proto = Object.getPrototypeOf(value);
@@ -944,6 +931,6 @@ function temporalCodecPreset(storage) {
944
931
  };
945
932
  }
946
933
  //#endregion
947
- export { resolveTemplateTagEscapes as A, isAuthoringTypeConstructorDescriptor as C, resolveAuthoringTemplateValue as D, printTaggedLiteral as E, validateAuthoringHelperArguments as F, temporalCodecPreset as M, temporalPhaseTemplate as N, resolveEnumCodecId as O, timestampNowControlDescriptor as P, isAuthoringPslBlockDescriptor as S, mergeAuthoringNamespaces as T, instantiateAuthoringTypeConstructor as _, assertNoCrossRegistryCollisions as a, isAuthoringFieldPresetDescriptor as b, classifyEnumMemberType as c, describeTaggedLiteralFailure as d, flushAuthoringWarnings as f, instantiateAuthoringFieldPreset as g, instantiateAuthoringEntityType as h, TIMESTAMP_NOW_GENERATOR_ID as i, temporalAuthoringPresets as j, resolvePslBacktickEscapes as k, collectContributedDescriptorPaths as l, hasRegisteredFieldNamespace as m, TEMPORAL_ON_CREATE_ARG as n, assertResolvableTypeConstructorTemplates as o, getAuthoringTypeConstructor as p, TEMPORAL_ON_UPDATE_ARG as r, canonicalizeTaggedLiteralBody as s, TAGGED_LITERAL_MAX_BYTES as t, collectScalarTypeConstructors as u, isAuthoringArgRef as v, mergeAuthoringAttributeSpecs as w, isAuthoringModelAttributeDescriptor as x, isAuthoringEntityTypeDescriptor as y };
934
+ export { temporalAuthoringPresets as A, mergeAuthoringAttributeSpecs as C, resolveEnumCodecId as D, resolveAuthoringTemplateValue as E, temporalPhaseTemplate as M, timestampNowControlDescriptor as N, resolvePslBacktickEscapes as O, validateAuthoringHelperArguments as P, isAuthoringTypeConstructorDescriptor as S, printTaggedLiteral as T, isAuthoringArgRef as _, assertNoCrossRegistryCollisions as a, isAuthoringModelAttributeDescriptor as b, classifyEnumMemberType as c, describeTaggedLiteralFailure as d, flushAuthoringWarnings as f, instantiateAuthoringTypeConstructor as g, instantiateAuthoringFieldPreset as h, TIMESTAMP_NOW_GENERATOR_ID as i, temporalCodecPreset as j, resolveTemplateTagEscapes as k, collectContributedDescriptorPaths as l, instantiateAuthoringEntityType as m, TEMPORAL_ON_CREATE_ARG as n, assertResolvableTypeConstructorTemplates as o, getAuthoringTypeConstructor as p, TEMPORAL_ON_UPDATE_ARG as r, canonicalizeTaggedLiteralBody as s, TAGGED_LITERAL_MAX_BYTES as t, collectScalarTypeConstructors as u, isAuthoringEntityTypeDescriptor as v, mergeAuthoringNamespaces as w, isAuthoringPslBlockDescriptor as x, isAuthoringFieldPresetDescriptor as y };
948
935
 
949
- //# sourceMappingURL=temporal-presets-DsGuaFyT-DWzKyja_.mjs.map
936
+ //# sourceMappingURL=temporal-presets-DzBBD4St-BaL1QaZ7.mjs.map