@prisma/orm-family-sql 8.0.0-rc.12-dev.9 → 8.0.0-rc.12-dev.11

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 (143) hide show
  1. package/dist/{aggregate-descriptor-registry-BaMSvS82.mjs → aggregate-descriptor-registry-CJF2KxUb.mjs} +2 -2
  2. package/dist/{aggregate-descriptor-registry-BaMSvS82.mjs.map → aggregate-descriptor-registry-CJF2KxUb.mjs.map} +1 -1
  3. package/dist/{ast-Cl_w2lbg.d.mts → ast-B9jF6tRJ.d.mts} +3 -3
  4. package/dist/{ast-Cl_w2lbg.d.mts.map → ast-B9jF6tRJ.d.mts.map} +1 -1
  5. package/dist/{ast--wLzFkbt.mjs → ast-Bhj549wG.mjs} +2 -2
  6. package/dist/ast-Bhj549wG.mjs.map +1 -0
  7. package/dist/{authoring-type-constructors-C1ogrr_x-D8KVlpwM.mjs → authoring-type-constructors-C1ogrr_x-ChQC5e1v.mjs} +2 -2
  8. package/dist/{authoring-type-constructors-C1ogrr_x-D8KVlpwM.mjs.map → authoring-type-constructors-C1ogrr_x-ChQC5e1v.mjs.map} +1 -1
  9. package/dist/builder.d.mts +2 -2
  10. package/dist/builder__runtime.d.mts +6 -6
  11. package/dist/builder__runtime.mjs +9 -7
  12. package/dist/builder__runtime.mjs.map +1 -1
  13. package/dist/builder__types.d.mts +2 -2
  14. package/dist/{config-types-BFnBqnfx.mjs → config-types-Dqe0LWuW.mjs} +2 -2
  15. package/dist/{config-types-BFnBqnfx.mjs.map → config-types-Dqe0LWuW.mjs.map} +1 -1
  16. package/dist/{contract-builder-tTGQ_MGg.d.mts → contract-builder-C2VKBKK5.d.mts} +4 -53
  17. package/dist/contract-builder-C2VKBKK5.d.mts.map +1 -0
  18. package/dist/{contract-builder-Vu-9o_FQ.mjs → contract-builder-CojarVwS.mjs} +9 -60
  19. package/dist/contract-builder-CojarVwS.mjs.map +1 -0
  20. package/dist/contract-prisma7__provider.mjs +3 -3
  21. package/dist/contract-psl.d.mts +1 -1
  22. package/dist/contract-psl.mjs +1 -1
  23. package/dist/contract-psl__provider.mjs +2 -2
  24. package/dist/contract-psl__provider.mjs.map +1 -1
  25. package/dist/contract-ts.d.mts +1 -1
  26. package/dist/contract-ts.mjs +3 -3
  27. package/dist/contract-ts__config-types.mjs +1 -1
  28. package/dist/contract-ts__contract-builder.d.mts +1 -1
  29. package/dist/contract-ts__contract-builder.mjs +2 -2
  30. package/dist/contract.mjs +1 -1
  31. package/dist/contract__validators.mjs +1 -1
  32. package/dist/{control-BS-GfNP5.d.mts → control-BLOiyNq-.d.mts} +19 -139
  33. package/dist/{control-BS-GfNP5.d.mts.map → control-BLOiyNq-.d.mts.map} +1 -1
  34. package/dist/{control-DTKBQtcA.mjs → control-BynSKZfp.mjs} +53 -5
  35. package/dist/control-BynSKZfp.mjs.map +1 -0
  36. package/dist/{control-adapter-C99J7aEF-jlK7uZyJ.d.mts → control-adapter-C99J7aEF-Bu-VCRbv.d.mts} +4 -4
  37. package/dist/{control-adapter-C99J7aEF-jlK7uZyJ.d.mts.map → control-adapter-C99J7aEF-Bu-VCRbv.d.mts.map} +1 -1
  38. package/dist/control-adapter-D4_Oipv6.d.mts +1 -0
  39. package/dist/{db-BhQdL6Za-C0DS91Ec.d.mts → db-DLjWu9-f-6BG2QArC.d.mts} +7 -8
  40. package/dist/db-DLjWu9-f-6BG2QArC.d.mts.map +1 -0
  41. package/dist/{ddl-types-DrK8E0jL-Cz06w-Hd.d.mts → ddl-types-DD-i-Uj9-D99heD5Z.d.mts} +3 -3
  42. package/dist/{ddl-types-DrK8E0jL-Cz06w-Hd.d.mts.map → ddl-types-DD-i-Uj9-D99heD5Z.d.mts.map} +1 -1
  43. package/dist/{derived-checks-BiClpWj6-chqISMq1.mjs → derived-checks-BiClpWj6-Czjj2esH.mjs} +2 -2
  44. package/dist/{derived-checks-BiClpWj6-chqISMq1.mjs.map → derived-checks-BiClpWj6-Czjj2esH.mjs.map} +1 -1
  45. package/dist/{diff-B7HTKtCK.d.mts → diff-CHX4XHhC.d.mts} +3 -3
  46. package/dist/{diff-B7HTKtCK.d.mts.map → diff-CHX4XHhC.d.mts.map} +1 -1
  47. package/dist/{expression-DV56tQtp.d.mts → expression-BPoA5eEl.d.mts} +3 -3
  48. package/dist/{expression-DV56tQtp.d.mts.map → expression-BPoA5eEl.d.mts.map} +1 -1
  49. package/dist/{expression-CrGD_4do.mjs → expression-vAEOvq7J.mjs} +2 -2
  50. package/dist/{expression-CrGD_4do.mjs.map → expression-vAEOvq7J.mjs.map} +1 -1
  51. package/dist/family.d.mts +8 -8
  52. package/dist/family.mjs +6 -7
  53. package/dist/family__control-adapter.d.mts +2 -2
  54. package/dist/family__control.d.mts +3 -3
  55. package/dist/family__control.mjs +3 -4
  56. package/dist/family__diff.d.mts +2 -2
  57. package/dist/family__ir.mjs +1 -1
  58. package/dist/family__migration.d.mts +1 -1
  59. package/dist/family__pack.mjs +1 -1
  60. package/dist/family__psl-infer.mjs +1 -1
  61. package/dist/family__runtime.d.mts +1 -1
  62. package/dist/family__runtime.mjs +1 -1
  63. package/dist/{index-DTvblzjn.d.mts → index-C10GDLBQ.d.mts} +9 -9
  64. package/dist/{index-DTvblzjn.d.mts.map → index-C10GDLBQ.d.mts.map} +1 -1
  65. package/dist/{interpreter-CYD009gd-KeytabKd.mjs → interpreter-Cy7S6Jh9-BIa0lyc-.mjs} +6 -407
  66. package/dist/interpreter-Cy7S6Jh9-BIa0lyc-.mjs.map +1 -0
  67. package/dist/{middleware-CHg6zJkn-BXbPG5gs.d.mts → middleware-CuGBptK0-C88HCnh5.d.mts} +3 -3
  68. package/dist/{middleware-CHg6zJkn-BXbPG5gs.d.mts.map → middleware-CuGBptK0-C88HCnh5.d.mts.map} +1 -1
  69. package/dist/middleware-aoqicpDI.d.mts +1 -0
  70. package/dist/{migration-9HfBKBhT.d.mts → migration-BwA1d1OP.d.mts} +2 -2
  71. package/dist/{migration-9HfBKBhT.d.mts.map → migration-BwA1d1OP.d.mts.map} +1 -1
  72. package/dist/orm-client.d.mts +38 -17
  73. package/dist/orm-client.d.mts.map +1 -1
  74. package/dist/orm-client.mjs +160 -45
  75. package/dist/orm-client.mjs.map +1 -1
  76. package/dist/{plan-DVkrl9Pq-CUhH48Gt.d.mts → plan-B7g2kDfQ-Bw0784x6.d.mts} +3 -3
  77. package/dist/plan-B7g2kDfQ-Bw0784x6.d.mts.map +1 -0
  78. package/dist/plan-DiT00Rg8.d.mts +2 -0
  79. package/dist/{prepared-statement-B6zvhJej-CAzfySgB.d.mts → prepared-statement-B6zvhJej-Dl488oBR.d.mts} +13 -13
  80. package/dist/{prepared-statement-B6zvhJej-CAzfySgB.d.mts.map → prepared-statement-B6zvhJej-Dl488oBR.d.mts.map} +1 -1
  81. package/dist/{psl-infer-C06FXwvC.mjs → psl-infer-Df2DrvP-.mjs} +2 -2
  82. package/dist/{psl-infer-C06FXwvC.mjs.map → psl-infer-Df2DrvP-.mjs.map} +1 -1
  83. package/dist/{query-lane-context-BUNC86DS-554MXNHX.d.mts → query-lane-context-Bi1GUXHp-Bo4OTjhW.d.mts} +3 -3
  84. package/dist/{query-lane-context-BUNC86DS-554MXNHX.d.mts.map → query-lane-context-Bi1GUXHp-Bo4OTjhW.d.mts.map} +1 -1
  85. package/dist/query-lane-context-CJNBt8cm.d.mts +1 -0
  86. package/dist/relational-core.d.mts +12 -12
  87. package/dist/relational-core.mjs +4 -4
  88. package/dist/relational-core__aggregate-descriptor-registry.d.mts +1 -1
  89. package/dist/relational-core__aggregate-descriptor-registry.mjs +1 -1
  90. package/dist/relational-core__ast.d.mts +4 -4
  91. package/dist/relational-core__ast.mjs +3 -3
  92. package/dist/relational-core__codec-descriptor-registry.d.mts +2 -2
  93. package/dist/relational-core__contract-free.d.mts +2 -2
  94. package/dist/relational-core__contract-free.mjs +1 -1
  95. package/dist/relational-core__contract-free.mjs.map +1 -1
  96. package/dist/relational-core__expression.d.mts +1 -1
  97. package/dist/relational-core__expression.mjs +1 -1
  98. package/dist/relational-core__middleware.d.mts +2 -2
  99. package/dist/relational-core__plan.d.mts +3 -3
  100. package/dist/relational-core__query-lane-context.d.mts +2 -2
  101. package/dist/relational-core__types.d.mts +2 -2
  102. package/dist/{runtime-BETVTTvU.d.mts → runtime-DYpzLADy.d.mts} +3 -3
  103. package/dist/{runtime-BETVTTvU.d.mts.map → runtime-DYpzLADy.d.mts.map} +1 -1
  104. package/dist/{runtime-DfvE_FqD.mjs → runtime-DzmRvRj_.mjs} +2 -2
  105. package/dist/runtime-DzmRvRj_.mjs.map +1 -0
  106. package/dist/runtime.d.mts +4 -4
  107. package/dist/runtime.mjs +2 -2
  108. package/dist/runtime__internal__prepared-query.d.mts +1 -1
  109. package/dist/{sql-contract-serializer-0a4k494z-ClMyRBHo.mjs → sql-contract-serializer-0a4k494z-tI6ajwvm.mjs} +2 -2
  110. package/dist/{sql-contract-serializer-0a4k494z-ClMyRBHo.mjs.map → sql-contract-serializer-0a4k494z-tI6ajwvm.mjs.map} +1 -1
  111. package/dist/{sql-execution-plan-DBvAsaOB-CJwz206K.d.mts → sql-execution-plan-Db0j752I-CI5WbdLi.d.mts} +3 -3
  112. package/dist/sql-execution-plan-Db0j752I-CI5WbdLi.d.mts.map +1 -0
  113. package/dist/{types-BFPRCYGW-DeB_n96N.d.mts → types-BFPRCYGW-BheztqYQ.d.mts} +2 -2
  114. package/dist/{types-BFPRCYGW-DeB_n96N.d.mts.map → types-BFPRCYGW-BheztqYQ.d.mts.map} +1 -1
  115. package/dist/{types-BAhLyUFj-3TARSz8c.mjs → types-BPi4d3WI-D8PIEqBU.mjs} +31 -13
  116. package/dist/types-BPi4d3WI-D8PIEqBU.mjs.map +1 -0
  117. package/dist/{types-_3eY-tTq-DY2fDu2J.d.mts → types-Bcujdkdw-2SDajXRo.d.mts} +6 -6
  118. package/dist/{types-_3eY-tTq-DY2fDu2J.d.mts.map → types-Bcujdkdw-2SDajXRo.d.mts.map} +1 -1
  119. package/dist/{types-YGX78yVc-LY1JQLED.d.mts → types-Yui2yFf6-TP-oRDTX.d.mts} +17 -9
  120. package/dist/types-Yui2yFf6-TP-oRDTX.d.mts.map +1 -0
  121. package/dist/types-nNy0nND_.d.mts +1 -0
  122. package/dist/{validators-CSjiy5BN.mjs → validators-DecqO0rE.mjs} +3 -30
  123. package/dist/validators-DecqO0rE.mjs.map +1 -0
  124. package/package.json +18 -18
  125. package/dist/ast--wLzFkbt.mjs.map +0 -1
  126. package/dist/contract-builder-Vu-9o_FQ.mjs.map +0 -1
  127. package/dist/contract-builder-tTGQ_MGg.d.mts.map +0 -1
  128. package/dist/control-DTKBQtcA.mjs.map +0 -1
  129. package/dist/control-adapter-fsjgABHQ.d.mts +0 -1
  130. package/dist/db-BhQdL6Za-C0DS91Ec.d.mts.map +0 -1
  131. package/dist/interpreter-CYD009gd-KeytabKd.mjs.map +0 -1
  132. package/dist/middleware-nbYXEk2K.d.mts +0 -1
  133. package/dist/plan-DVkrl9Pq-CUhH48Gt.d.mts.map +0 -1
  134. package/dist/plan-Dh-FnySu.d.mts +0 -2
  135. package/dist/query-lane-context-Cj8AWGMg.d.mts +0 -1
  136. package/dist/runtime-DfvE_FqD.mjs.map +0 -1
  137. package/dist/sql-execution-plan-DBvAsaOB-CJwz206K.d.mts.map +0 -1
  138. package/dist/timestamp-now-generator-CVrEeaJp-Bt_PHBSf.mjs +0 -181
  139. package/dist/timestamp-now-generator-CVrEeaJp-Bt_PHBSf.mjs.map +0 -1
  140. package/dist/types-BAhLyUFj-3TARSz8c.mjs.map +0 -1
  141. package/dist/types-BvpZI6y1.d.mts +0 -1
  142. package/dist/types-YGX78yVc-LY1JQLED.d.mts.map +0 -1
  143. package/dist/validators-CSjiy5BN.mjs.map +0 -1
@@ -1,10 +1,10 @@
1
1
  import { n as isAuthoredIndexInput } from "./index-naming-Cj1Anq-T-w1JL7-EM.mjs";
2
2
  import { t as deriveValueSetFromEntity } from "./value-set-derivation-hook-Di9JZ0X7.mjs";
3
- import { n as buildSqlContractFromDefinition } from "./derived-checks-BiClpWj6-chqISMq1.mjs";
3
+ import { n as buildSqlContractFromDefinition } from "./derived-checks-BiClpWj6-Czjj2esH.mjs";
4
4
  import { a as findModelAttributeNode, c as lowerDefaultFunctionWithRegistry, i as findFieldAttributeNode, l as modelAttributeSpecsFrom, n as createSqlBinder, o as interpretFieldAttribute, r as fieldSpecContext, s as interpretModelAttribute, t as PSL_CHECK_ON_STI_VARIANT, u as sqlAttributeSpecs } from "./sql-attribute-specs-DH3Yxb21-CZV-L28L.mjs";
5
5
  import { t as defaultTableName } from "./default-table-name-BfFY8qYR-lHNcVmY5.mjs";
6
6
  import { isStructuredError, structuredError } from "@prisma/orm-framework/utils/structured-error";
7
- import { hasRegisteredFieldNamespace, instantiateAuthoringEntityType, instantiateAuthoringFieldPreset, instantiateAuthoringTypeConstructor, isAuthoringEntityTypeDescriptor, isAuthoringFieldPresetDescriptor, isAuthoringModelAttributeDescriptor, isAuthoringPslBlockDescriptor, isAuthoringTypeConstructorDescriptor, isDataTypeLoweringEntry, loweringEntryKey, validateAuthoringHelperArguments } from "@prisma/orm-framework/components/authoring";
7
+ import { checkUncomposedNamespace, getAuthoringFieldPreset, hasRegisteredFieldNamespace, instantiateAuthoringEntityType, instantiateAuthoringTypeConstructor, isAuthoringEntityTypeDescriptor, isAuthoringModelAttributeDescriptor, isAuthoringPslBlockDescriptor, isAuthoringTypeConstructorDescriptor, isDataTypeLoweringEntry, loweringEntryKey, validateAuthoringHelperArguments } from "@prisma/orm-framework/components/authoring";
8
8
  import { UNBOUND_NAMESPACE_ID } from "@prisma/orm-framework/components/ir";
9
9
  import { InternalError } from "@prisma/orm-framework/utils/internal-error";
10
10
  import { crossRef } from "@prisma/orm-framework/contract/types";
@@ -16,8 +16,8 @@ import { assertDefined, invariant } from "@prisma/orm-framework/utils/assertions
16
16
  import { describeTaggedLiteralFailure } from "@prisma/orm-framework/components/control";
17
17
  import { notOk, ok } from "@prisma/orm-framework/utils/result";
18
18
  import { createPslDiagnosticCollector, diagnosticSource, findBlockDescriptor, keywordPslSpan, nodePslSpan } from "@prisma/orm-framework/psl-parser";
19
- import { consumeInvalidFkPairing, fkRelationPairKey, requiredOneToOneBackrelationDiagnostic } from "@prisma/orm-framework/psl-parser/interpret";
20
- //#region ../../../2-sql/2-authoring/contract-psl/dist/interpreter-CYD009gd.mjs
19
+ import { consumeInvalidFkPairing, fkRelationPairKey, instantiatePslFieldPreset, mapPslHelperArgs, reportUncomposedNamespace, reportUnknownFieldPreset, requiredOneToOneBackrelationDiagnostic, uncomposedNamespaceDiagnostic } from "@prisma/orm-framework/psl-parser/interpret";
20
+ //#region ../../../2-sql/2-authoring/contract-psl/dist/interpreter-Cy7S6Jh9.mjs
21
21
  function contractError(code, message, options) {
22
22
  return structuredError(code, message, options);
23
23
  }
@@ -35,12 +35,6 @@ function getNamedArgument(attribute, name) {
35
35
  if (entry?.kind !== "named") return;
36
36
  return entry.value;
37
37
  }
38
- function unquoteStringLiteral(value) {
39
- const trimmed = value.trim();
40
- const match = trimmed.match(/^(['"])(.*)\1$/);
41
- if (!match) return trimmed;
42
- return match[2] ?? "";
43
- }
44
38
  function mapFieldNamesToColumns(input) {
45
39
  const columns = [];
46
40
  for (const fieldName of input.fieldNames) {
@@ -367,290 +361,6 @@ function lowerDataTypeDefault(input) {
367
361
  function describeCasts(casts) {
368
362
  return casts.length === 0 ? "it casts from nothing" : `it casts from ${casts.join(", ")}`;
369
363
  }
370
- const INVALID_AUTHORING_ARGUMENT = Symbol("invalidAuthoringArgument");
371
- function isIdentifierStartCharacter(character) {
372
- return character !== void 0 && /[A-Za-z_$]/.test(character);
373
- }
374
- function isIdentifierCharacter(character) {
375
- return character !== void 0 && /[A-Za-z0-9_$]/.test(character);
376
- }
377
- function parseJsLikeLiteral(value) {
378
- let index = 0;
379
- function skipWhitespace() {
380
- while (/\s/.test(value[index] ?? "")) index += 1;
381
- }
382
- function parseIdentifier() {
383
- const first = value[index];
384
- if (!isIdentifierStartCharacter(first)) return INVALID_AUTHORING_ARGUMENT;
385
- let end = index + 1;
386
- while (isIdentifierCharacter(value[end])) end += 1;
387
- const identifier = value.slice(index, end);
388
- index = end;
389
- return identifier;
390
- }
391
- function parseString() {
392
- const quote = value[index];
393
- if (quote !== "\"" && quote !== "'") return INVALID_AUTHORING_ARGUMENT;
394
- index += 1;
395
- let result = "";
396
- while (index < value.length) {
397
- const character = value[index];
398
- index += 1;
399
- if (character === void 0) return INVALID_AUTHORING_ARGUMENT;
400
- if (character === quote) return result;
401
- if (character !== "\\") {
402
- result += character;
403
- continue;
404
- }
405
- const escaped = value[index];
406
- index += 1;
407
- if (escaped === void 0) return INVALID_AUTHORING_ARGUMENT;
408
- switch (escaped) {
409
- case "'":
410
- case "\"":
411
- case "\\":
412
- case "/":
413
- result += escaped;
414
- break;
415
- case "b":
416
- result += "\b";
417
- break;
418
- case "f":
419
- result += "\f";
420
- break;
421
- case "n":
422
- result += "\n";
423
- break;
424
- case "r":
425
- result += "\r";
426
- break;
427
- case "t":
428
- result += " ";
429
- break;
430
- case "u": {
431
- const hex = value.slice(index, index + 4);
432
- if (!/^[0-9A-Fa-f]{4}$/.test(hex)) return INVALID_AUTHORING_ARGUMENT;
433
- result += String.fromCharCode(Number.parseInt(hex, 16));
434
- index += 4;
435
- break;
436
- }
437
- default: return INVALID_AUTHORING_ARGUMENT;
438
- }
439
- }
440
- return INVALID_AUTHORING_ARGUMENT;
441
- }
442
- function parseNumber() {
443
- const raw = value.slice(index).match(/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/)?.[0];
444
- if (!raw) return INVALID_AUTHORING_ARGUMENT;
445
- const parsed = Number(raw);
446
- if (!Number.isFinite(parsed)) return INVALID_AUTHORING_ARGUMENT;
447
- index += raw.length;
448
- return parsed;
449
- }
450
- function parseArray() {
451
- if (value[index] !== "[") return INVALID_AUTHORING_ARGUMENT;
452
- index += 1;
453
- const result = [];
454
- skipWhitespace();
455
- if (value[index] === "]") {
456
- index += 1;
457
- return result;
458
- }
459
- while (index < value.length) {
460
- const entry = parseValue();
461
- if (entry === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;
462
- result.push(entry);
463
- skipWhitespace();
464
- if (value[index] === ",") {
465
- index += 1;
466
- skipWhitespace();
467
- continue;
468
- }
469
- if (value[index] === "]") {
470
- index += 1;
471
- return result;
472
- }
473
- return INVALID_AUTHORING_ARGUMENT;
474
- }
475
- return INVALID_AUTHORING_ARGUMENT;
476
- }
477
- function parseObject() {
478
- if (value[index] !== "{") return INVALID_AUTHORING_ARGUMENT;
479
- index += 1;
480
- const result = {};
481
- skipWhitespace();
482
- if (value[index] === "}") {
483
- index += 1;
484
- return result;
485
- }
486
- while (index < value.length) {
487
- skipWhitespace();
488
- const key = value[index] === "\"" || value[index] === "'" ? parseString() : parseIdentifier();
489
- if (key === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;
490
- skipWhitespace();
491
- if (value[index] !== ":") return INVALID_AUTHORING_ARGUMENT;
492
- index += 1;
493
- const entry = parseValue();
494
- if (entry === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;
495
- result[key] = entry;
496
- skipWhitespace();
497
- if (value[index] === ",") {
498
- index += 1;
499
- skipWhitespace();
500
- continue;
501
- }
502
- if (value[index] === "}") {
503
- index += 1;
504
- return result;
505
- }
506
- return INVALID_AUTHORING_ARGUMENT;
507
- }
508
- return INVALID_AUTHORING_ARGUMENT;
509
- }
510
- function parseValue() {
511
- skipWhitespace();
512
- const character = value[index];
513
- if (character === "{") return parseObject();
514
- if (character === "[") return parseArray();
515
- if (character === "\"" || character === "'") return parseString();
516
- if (character === "-" || /\d/.test(character ?? "")) return parseNumber();
517
- const identifier = parseIdentifier();
518
- if (identifier === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;
519
- if (identifier === "true") return true;
520
- if (identifier === "false") return false;
521
- if (identifier === "null") return null;
522
- return INVALID_AUTHORING_ARGUMENT;
523
- }
524
- skipWhitespace();
525
- const parsed = parseValue();
526
- if (parsed === INVALID_AUTHORING_ARGUMENT) return parsed;
527
- skipWhitespace();
528
- return index === value.length ? parsed : INVALID_AUTHORING_ARGUMENT;
529
- }
530
- function parseStringArrayLiteral(value) {
531
- const parsed = parseJsLikeLiteral(value);
532
- if (parsed === INVALID_AUTHORING_ARGUMENT || !Array.isArray(parsed)) return INVALID_AUTHORING_ARGUMENT;
533
- if (!parsed.every((item) => typeof item === "string")) return INVALID_AUTHORING_ARGUMENT;
534
- return parsed;
535
- }
536
- function isPlainObject(value) {
537
- return typeof value === "object" && value !== null && !Array.isArray(value);
538
- }
539
- function parsePslObjectLiteral(value) {
540
- const trimmed = value.trim();
541
- if (!trimmed.startsWith("{") || !trimmed.endsWith("}")) return INVALID_AUTHORING_ARGUMENT;
542
- let parsed;
543
- try {
544
- parsed = JSON.parse(trimmed);
545
- } catch {
546
- parsed = parseJsLikeLiteral(trimmed);
547
- if (parsed === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;
548
- }
549
- if (!isPlainObject(parsed)) return INVALID_AUTHORING_ARGUMENT;
550
- return parsed;
551
- }
552
- function parsePslAuthoringArgumentValue(descriptor, rawValue) {
553
- switch (descriptor.kind) {
554
- case "string": return unquoteStringLiteral(rawValue);
555
- case "boolean": {
556
- const trimmed = rawValue.trim();
557
- if (trimmed === "true") return true;
558
- if (trimmed === "false") return false;
559
- return INVALID_AUTHORING_ARGUMENT;
560
- }
561
- case "number": {
562
- const parsed = Number(unquoteStringLiteral(rawValue));
563
- return Number.isNaN(parsed) ? INVALID_AUTHORING_ARGUMENT : parsed;
564
- }
565
- case "stringArray": return parseStringArrayLiteral(rawValue);
566
- case "object": return parsePslObjectLiteral(rawValue);
567
- case "option": {
568
- const trimmed = rawValue.trim();
569
- return /^[A-Za-z_][A-Za-z0-9_]*$/.test(trimmed) ? trimmed : INVALID_AUTHORING_ARGUMENT;
570
- }
571
- default: return INVALID_AUTHORING_ARGUMENT;
572
- }
573
- }
574
- function pushInvalidPslHelperArgument(input) {
575
- input.diagnostics.push({
576
- code: "PSL_INVALID_ATTRIBUTE_ARGUMENT",
577
- message: `${input.entityLabel} ${input.helperLabel} ${input.message}`,
578
- ...input.source.at(input.span)
579
- });
580
- }
581
- function mapPslHelperArgs(input) {
582
- const mappedArgs = input.descriptors.map(() => void 0);
583
- const positionalArgs = input.args.filter((arg) => arg.kind === "positional");
584
- const namedArgs = input.args.filter((arg) => arg.kind === "named");
585
- if (positionalArgs.length > input.descriptors.length) return pushInvalidPslHelperArgument({
586
- diagnostics: input.diagnostics,
587
- source: input.source,
588
- span: input.span,
589
- entityLabel: input.entityLabel,
590
- helperLabel: input.helperLabel,
591
- message: `accepts at most ${input.descriptors.length} argument(s), received ${positionalArgs.length}.`
592
- });
593
- for (const [index, argument] of positionalArgs.entries()) {
594
- const descriptor = input.descriptors[index];
595
- if (!descriptor) return pushInvalidPslHelperArgument({
596
- diagnostics: input.diagnostics,
597
- source: input.source,
598
- span: argument.span,
599
- entityLabel: input.entityLabel,
600
- helperLabel: input.helperLabel,
601
- message: `does not define positional argument #${index + 1}.`
602
- });
603
- const value = parsePslAuthoringArgumentValue(descriptor, argument.value);
604
- if (value === INVALID_AUTHORING_ARGUMENT) return pushInvalidPslHelperArgument({
605
- diagnostics: input.diagnostics,
606
- source: input.source,
607
- span: argument.span,
608
- entityLabel: input.entityLabel,
609
- helperLabel: input.helperLabel,
610
- message: `cannot parse argument #${index + 1} for descriptor kind "${descriptor.kind}".`
611
- });
612
- mappedArgs[index] = value;
613
- }
614
- for (const argument of namedArgs) {
615
- const descriptorIndex = input.descriptors.findIndex((descriptor) => descriptor.name === argument.name);
616
- if (descriptorIndex < 0) return pushInvalidPslHelperArgument({
617
- diagnostics: input.diagnostics,
618
- source: input.source,
619
- span: argument.span,
620
- entityLabel: input.entityLabel,
621
- helperLabel: input.helperLabel,
622
- message: `received unknown named argument "${argument.name}".`
623
- });
624
- if (mappedArgs[descriptorIndex] !== void 0) return pushInvalidPslHelperArgument({
625
- diagnostics: input.diagnostics,
626
- source: input.source,
627
- span: argument.span,
628
- entityLabel: input.entityLabel,
629
- helperLabel: input.helperLabel,
630
- message: `received duplicate value for argument "${argument.name}".`
631
- });
632
- const descriptor = input.descriptors[descriptorIndex];
633
- if (!descriptor) return pushInvalidPslHelperArgument({
634
- diagnostics: input.diagnostics,
635
- source: input.source,
636
- span: argument.span,
637
- entityLabel: input.entityLabel,
638
- helperLabel: input.helperLabel,
639
- message: `does not define named argument "${argument.name}".`
640
- });
641
- const value = parsePslAuthoringArgumentValue(descriptor, argument.value);
642
- if (value === INVALID_AUTHORING_ARGUMENT) return pushInvalidPslHelperArgument({
643
- diagnostics: input.diagnostics,
644
- source: input.source,
645
- span: argument.span,
646
- entityLabel: input.entityLabel,
647
- helperLabel: input.helperLabel,
648
- message: `cannot parse named argument "${argument.name}" for descriptor kind "${descriptor.kind}".`
649
- });
650
- mappedArgs[descriptorIndex] = value;
651
- }
652
- return mappedArgs;
653
- }
654
364
  function toNamedTypeFieldDescriptor(typeRef, descriptor) {
655
365
  return {
656
366
  codecId: descriptor.codecId,
@@ -685,75 +395,6 @@ function getAuthoringEntity(contributions, path) {
685
395
  }
686
396
  return current !== void 0 && isAuthoringEntityTypeDescriptor(current) ? current : void 0;
687
397
  }
688
- /**
689
- * Walks `authoringContributions.field` segment-by-segment and returns the field-preset descriptor at the resolved path, or `undefined` if no descriptor is registered.
690
- *
691
- * Symmetric with `getAuthoringTypeConstructor`. Field presets are strictly richer than type constructors — they can contribute `default` / `executionDefaults` / `id` / `unique` / `nullable` in addition to the `codecId` / `nativeType` / `typeParams` triple. PSL resolution tries field presets first, then falls back to type constructors on miss (see `resolveFieldTypeDescriptor`).
692
- */
693
- function getAuthoringFieldPreset(contributions, path) {
694
- let current = contributions?.field;
695
- for (const segment of path) {
696
- if (typeof current !== "object" || current === null || "kind" in current) return;
697
- current = current[segment];
698
- }
699
- return current !== void 0 && isAuthoringFieldPresetDescriptor(current) ? current : void 0;
700
- }
701
- /**
702
- * Returns the namespace prefix of `attributeName` if it references an unrecognized extension namespace, otherwise `undefined`. A namespace is considered recognized when it is:
703
- *
704
- * - `db` (native-type spec, always allowed),
705
- * - the active family id (e.g. `sql`),
706
- * - the active target id (e.g. `postgres`),
707
- * - a registered field-preset namespace (e.g. `temporal`),
708
- * - present in `composedExtensions`.
709
- *
710
- * Family/target/field-preset namespaces are exempted so that e.g. `@sql.foo` surfaces as PSL_UNSUPPORTED_*_ATTRIBUTE (the attribute isn't defined) rather than PSL_EXTENSION_NAMESPACE_NOT_COMPOSED (the namespace is already composed).
711
- */
712
- function checkUncomposedNamespace(attributeName, composedExtensions, context) {
713
- const dotIndex = attributeName.indexOf(".");
714
- if (dotIndex <= 0 || dotIndex === attributeName.length - 1) return;
715
- const namespace = attributeName.slice(0, dotIndex);
716
- if (namespace === "db" || namespace === context?.familyId || namespace === context?.targetId || hasRegisteredFieldNamespace(context?.authoringContributions, namespace) || composedExtensions.has(namespace)) return;
717
- return namespace;
718
- }
719
- /**
720
- * 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.
721
- *
722
- * The `data` payload carries the missing namespace so machine consumers (agents, IDE extensions, CLI auto-fix) don't have to parse the prose.
723
- */
724
- function uncomposedNamespaceDiagnostic(input) {
725
- return {
726
- code: "PSL_EXTENSION_NAMESPACE_NOT_COMPOSED",
727
- message: `${input.subjectLabel} uses unrecognized namespace "${input.namespace}". Add extension pack "${input.namespace}" to extensions in prisma.config.ts.`,
728
- ...input.source.at(input.span),
729
- data: {
730
- namespace: input.namespace,
731
- suggestedPack: input.namespace
732
- }
733
- };
734
- }
735
- function reportUncomposedNamespace(input) {
736
- input.diagnostics.push(uncomposedNamespaceDiagnostic({
737
- subjectLabel: input.subjectLabel,
738
- namespace: input.namespace,
739
- source: input.source,
740
- span: input.span
741
- }));
742
- }
743
- /**
744
- * 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.
745
- */
746
- function reportUnknownFieldPreset(input) {
747
- input.diagnostics.push({
748
- code: "PSL_UNKNOWN_FIELD_PRESET",
749
- message: `${input.entityLabel} references unknown field preset "${input.helperPath}". Check the spelling against the available presets in the "${input.namespace}" namespace.`,
750
- ...input.source.at(input.span),
751
- data: {
752
- namespace: input.namespace,
753
- helperPath: input.helperPath
754
- }
755
- });
756
- }
757
398
  function instantiatePslTypeConstructor(input) {
758
399
  const helperPath = input.call.path.join(".");
759
400
  const args = mapPslHelperArgs({
@@ -813,48 +454,6 @@ function resolvePslTypeConstructorDescriptor(input) {
813
454
  });
814
455
  }
815
456
  /**
816
- * 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.
817
- *
818
- * Symmetric with `instantiatePslTypeConstructor` but richer: a field preset can contribute `default`, `executionDefaults`, `id`, `unique`, and `nullable` in addition to the storage-type triple. PSL → typed-args coercion happens here (via `mapPslHelperArgs`) so that `instantiateAuthoringFieldPreset` itself stays typed-input-only and TS keeps its zero-runtime-validation cost.
819
- */
820
- function instantiateFieldPreset(input) {
821
- const helperPath = input.call.path.join(".");
822
- const args = mapPslHelperArgs({
823
- args: input.call.args,
824
- descriptors: input.descriptor.args ?? [],
825
- helperLabel: `preset "${helperPath}"`,
826
- span: input.call.span,
827
- diagnostics: input.diagnostics,
828
- source: input.source,
829
- entityLabel: input.entityLabel
830
- });
831
- if (!args) return;
832
- try {
833
- validateAuthoringHelperArguments(helperPath, input.descriptor.args, args);
834
- const instantiated = instantiateAuthoringFieldPreset(input.descriptor, args);
835
- return {
836
- descriptor: {
837
- codecId: instantiated.descriptor.codecId,
838
- nativeType: instantiated.descriptor.nativeType,
839
- ...instantiated.descriptor.typeParams !== void 0 ? { typeParams: instantiated.descriptor.typeParams } : {}
840
- },
841
- nullable: instantiated.nullable,
842
- ...instantiated.default !== void 0 ? { default: instantiated.default } : {},
843
- ...instantiated.executionDefaults !== void 0 ? { executionDefaults: instantiated.executionDefaults } : {},
844
- id: instantiated.id,
845
- unique: instantiated.unique
846
- };
847
- } catch (error) {
848
- const message = error instanceof Error ? error.message : String(error);
849
- input.diagnostics.push({
850
- code: "PSL_INVALID_ATTRIBUTE_ARGUMENT",
851
- message: `${input.entityLabel} preset "${helperPath}" ${message}`,
852
- ...input.source.at(input.call.span)
853
- });
854
- return;
855
- }
856
- }
857
- /**
858
457
  * Structural check for a codec descriptor exposing the authoring-time
859
458
  * `columnFromEntity` hook a type constructor's `entityRefArg` resolves
860
459
  * through (e.g. the `pg/enum@1` codec descriptor). No casts.
@@ -952,7 +551,7 @@ function resolveFieldTypeDescriptor(input) {
952
551
  if (input.field.typeConstructor) {
953
552
  const presetDescriptor = getAuthoringFieldPreset(input.authoringContributions, input.field.typeConstructor.path);
954
553
  if (presetDescriptor) {
955
- const instantiated = instantiateFieldPreset({
554
+ const instantiated = instantiatePslFieldPreset({
956
555
  call: input.field.typeConstructor,
957
556
  descriptor: presetDescriptor,
958
557
  diagnostics: input.diagnostics,
@@ -3933,4 +3532,4 @@ function interpretPslDocumentToSqlContract(input) {
3933
3532
  //#endregion
3934
3533
  export { interpretPslDocumentToSqlContract as a, resolveFieldTypeDescriptor as c, indexFkRelations as i, buildEntityTypesByDiscriminator as n, normalizeReferentialAction as o, entryForTag as r, readDataTypeDefault as s, applyBackrelationCandidates as t };
3935
3534
 
3936
- //# sourceMappingURL=interpreter-CYD009gd-KeytabKd.mjs.map
3535
+ //# sourceMappingURL=interpreter-Cy7S6Jh9-BIa0lyc-.mjs.map