@prisma/orm-family-mongo 8.0.0-rc.18-dev.28 → 8.0.0-rc.18-dev.30

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 (107) hide show
  1. package/dist/{authoring-entity-types-C4WFd_RV-Dk_MsSD8.mjs → authoring-entity-types-CvqTq1Za-KBOkOZYm.mjs} +3 -40
  2. package/dist/authoring-entity-types-CvqTq1Za-KBOkOZYm.mjs.map +1 -0
  3. package/dist/{contract-builder-BEuM9D-R.mjs → contract-builder-BWJ5A-93.mjs} +165 -38
  4. package/dist/contract-builder-BWJ5A-93.mjs.map +1 -0
  5. package/dist/{contract-builder-BoGTe-yx.d.mts → contract-builder-BzLDSs26.d.mts} +17 -5
  6. package/dist/contract-builder-BzLDSs26.d.mts.map +1 -0
  7. package/dist/contract-prisma6__provider.d.mts +1 -3
  8. package/dist/contract-prisma6__provider.d.mts.map +1 -1
  9. package/dist/contract-prisma6__provider.mjs +20 -8
  10. package/dist/contract-prisma6__provider.mjs.map +1 -1
  11. package/dist/contract-psl.d.mts +10 -1
  12. package/dist/contract-psl.d.mts.map +1 -1
  13. package/dist/contract-psl.mjs +1 -1
  14. package/dist/contract-psl__provider.mjs +2 -1
  15. package/dist/contract-psl__provider.mjs.map +1 -1
  16. package/dist/contract-ts.d.mts +2 -2
  17. package/dist/contract-ts.mjs +1 -1
  18. package/dist/contract-ts__contract-builder.d.mts +2 -2
  19. package/dist/contract-ts__contract-builder.mjs +1 -1
  20. package/dist/contract.d.mts +2 -2
  21. package/dist/contract.mjs +2 -2
  22. package/dist/{control-Ba-q3B_X.d.mts → control-BNVd28Dc.d.mts} +4 -4
  23. package/dist/{control-Ba-q3B_X.d.mts.map → control-BNVd28Dc.d.mts.map} +1 -1
  24. package/dist/{control-BZanBCP6.d.mts → control-BYMT27pb.d.mts} +2 -2
  25. package/dist/{control-BZanBCP6.d.mts.map → control-BYMT27pb.d.mts.map} +1 -1
  26. package/dist/{control-narTPLUn.mjs → control-CGkbLODn.mjs} +22 -12
  27. package/dist/control-CGkbLODn.mjs.map +1 -0
  28. package/dist/{control-adapter-Bh_ZraGM-CiR-XlhU.d.mts → control-adapter-Bh_ZraGM-BCp7NZJJ.d.mts} +4 -4
  29. package/dist/{control-adapter-Bh_ZraGM-CiR-XlhU.d.mts.map → control-adapter-Bh_ZraGM-BCp7NZJJ.d.mts.map} +1 -1
  30. package/dist/control-adapter-qe7UlBnw.d.mts +1 -0
  31. package/dist/{dist-Dc7ucQHb.mjs → dist-BY0Y-yqv.mjs} +389 -97
  32. package/dist/dist-BY0Y-yqv.mjs.map +1 -0
  33. package/dist/dist-xk_0xOR-.mjs.map +1 -1
  34. package/dist/family.d.mts +10 -10
  35. package/dist/family.mjs +8 -8
  36. package/dist/family__control-adapter.d.mts +2 -2
  37. package/dist/family__control.d.mts +1 -1
  38. package/dist/family__control.mjs +2 -2
  39. package/dist/family__ir.d.mts +2 -2
  40. package/dist/family__ir.mjs +3 -3
  41. package/dist/family__migration.d.mts +1 -1
  42. package/dist/family__migration.mjs +1 -1
  43. package/dist/family__pack.d.mts +1 -1
  44. package/dist/family__pack.mjs +2 -2
  45. package/dist/family__pack.mjs.map +1 -1
  46. package/dist/family__runtime.d.mts +2 -2
  47. package/dist/family__runtime.mjs +1 -1
  48. package/dist/family__schema-verify.d.mts +1 -1
  49. package/dist/family__schema-verify.mjs +1 -1
  50. package/dist/{field-accessor-CE4JbDIa-GYjJ2kDS.d.mts → field-accessor-CE4JbDIa-CHZgR4TO.d.mts} +2 -2
  51. package/dist/{field-accessor-CE4JbDIa-GYjJ2kDS.d.mts.map → field-accessor-CE4JbDIa-CHZgR4TO.d.mts.map} +1 -1
  52. package/dist/{index-CAQ09hXM.d.mts → index-D5sQv1yD.d.mts} +2 -2
  53. package/dist/{index-CAQ09hXM.d.mts.map → index-D5sQv1yD.d.mts.map} +1 -1
  54. package/dist/{index-BfdyDSte.d.mts → index-DDAe-FtT.d.mts} +152 -17
  55. package/dist/index-DDAe-FtT.d.mts.map +1 -0
  56. package/dist/{index-Hc3ivsbv.d.mts → index-DDoen8Ct.d.mts} +3 -3
  57. package/dist/{index-Hc3ivsbv.d.mts.map → index-DDoen8Ct.d.mts.map} +1 -1
  58. package/dist/{index-CydMaVkr.d.mts → index-Dr9_nUnD.d.mts} +2 -2
  59. package/dist/{index-CydMaVkr.d.mts.map → index-Dr9_nUnD.d.mts.map} +1 -1
  60. package/dist/{index-BIECHOLq.d.mts → index-YJpDjbOW.d.mts} +3 -3
  61. package/dist/{index-BIECHOLq.d.mts.map → index-YJpDjbOW.d.mts.map} +1 -1
  62. package/dist/{interpreter-C0x7PZIS-CmH4DKLL.mjs → interpreter-BkAoaKOQ-DJm6_n9S.mjs} +212 -40
  63. package/dist/interpreter-BkAoaKOQ-DJm6_n9S.mjs.map +1 -0
  64. package/dist/{ir-B6WTBX9p.d.mts → ir-DUiJXIsl.d.mts} +4 -5
  65. package/dist/{ir-B6WTBX9p.d.mts.map → ir-DUiJXIsl.d.mts.map} +1 -1
  66. package/dist/{ir-vZWjElPY.mjs → ir-eoe34oId.mjs} +3 -8
  67. package/dist/ir-eoe34oId.mjs.map +1 -0
  68. package/dist/lowering.d.mts +1 -1
  69. package/dist/{migration-B-SoB9Na.d.mts → migration-DbyIJhbx.d.mts} +4 -4
  70. package/dist/{migration-B-SoB9Na.d.mts.map → migration-DbyIJhbx.d.mts.map} +1 -1
  71. package/dist/{migration-C7tnv18O.mjs → migration-tlRiqq83.mjs} +2 -2
  72. package/dist/{migration-C7tnv18O.mjs.map → migration-tlRiqq83.mjs.map} +1 -1
  73. package/dist/{mongo-contract-serializer-5OphMWx2-DaklzH_L.mjs → mongo-contract-serializer-BVsamWTo-DXH0WlvH.mjs} +3 -3
  74. package/dist/{mongo-contract-serializer-5OphMWx2-DaklzH_L.mjs.map → mongo-contract-serializer-BVsamWTo-DXH0WlvH.mjs.map} +1 -1
  75. package/dist/{mongo-contract-view-AnejqfrQ-Nh3M1PfW.d.mts → mongo-contract-view-AnejqfrQ-BWrqU5Wb.d.mts} +2 -2
  76. package/dist/{mongo-contract-view-AnejqfrQ-Nh3M1PfW.d.mts.map → mongo-contract-view-AnejqfrQ-BWrqU5Wb.d.mts.map} +1 -1
  77. package/dist/{mongo-contract-view-OSrxTeL0-BYgPDLlk.mjs → mongo-contract-view-BNFzgwnZ-CH1SAmzW.mjs} +4 -4
  78. package/dist/{mongo-contract-view-OSrxTeL0-BYgPDLlk.mjs.map → mongo-contract-view-BNFzgwnZ-CH1SAmzW.mjs.map} +1 -1
  79. package/dist/orm.d.mts +2 -2
  80. package/dist/{pack-CgZhQ0_G.d.mts → pack-B4ZrD2Fu.d.mts} +2 -1
  81. package/dist/pack-B4ZrD2Fu.d.mts.map +1 -0
  82. package/dist/query-ast.d.mts +1 -1
  83. package/dist/query-ast__control.d.mts +1 -1
  84. package/dist/query-builder.d.mts +2 -2
  85. package/dist/query-builder__contract-free.d.mts +2 -2
  86. package/dist/{runtime-DUuK57X3.d.mts → runtime-CWqMkwXI.d.mts} +2 -2
  87. package/dist/runtime-CWqMkwXI.d.mts.map +1 -0
  88. package/dist/runtime.d.mts +2 -2
  89. package/dist/schema-ir.d.mts +1 -1
  90. package/dist/{schema-verify-DPqGia9M.d.mts → schema-verify-DQMAlWkY.d.mts} +4 -4
  91. package/dist/{schema-verify-DPqGia9M.d.mts.map → schema-verify-DQMAlWkY.d.mts.map} +1 -1
  92. package/dist/{verify-mongo-schema-BTj4mddD-75_ALNmN.mjs → verify-mongo-schema-CeQP5N4k-E-HOylv3.mjs} +5 -7
  93. package/dist/verify-mongo-schema-CeQP5N4k-E-HOylv3.mjs.map +1 -0
  94. package/dist/wire.d.mts +1 -1
  95. package/package.json +20 -20
  96. package/dist/authoring-entity-types-C4WFd_RV-Dk_MsSD8.mjs.map +0 -1
  97. package/dist/contract-builder-BEuM9D-R.mjs.map +0 -1
  98. package/dist/contract-builder-BoGTe-yx.d.mts.map +0 -1
  99. package/dist/control-adapter-E3TfenTr.d.mts +0 -1
  100. package/dist/control-narTPLUn.mjs.map +0 -1
  101. package/dist/dist-Dc7ucQHb.mjs.map +0 -1
  102. package/dist/index-BfdyDSte.d.mts.map +0 -1
  103. package/dist/interpreter-C0x7PZIS-CmH4DKLL.mjs.map +0 -1
  104. package/dist/ir-vZWjElPY.mjs.map +0 -1
  105. package/dist/pack-CgZhQ0_G.d.mts.map +0 -1
  106. package/dist/runtime-DUuK57X3.d.mts.map +0 -1
  107. package/dist/verify-mongo-schema-BTj4mddD-75_ALNmN.mjs.map +0 -1
@@ -1,18 +1,16 @@
1
- import { i as isMongoDataType } from "./mongo-data-type-DzyzU4LF-C1ydFXgE.mjs";
2
- import { _ as validatorEnumMemberRefusalOf, v as validatorEnumRefusalOf } from "./dist-Dc7ucQHb.mjs";
3
1
  import { enumRefusalOf } from "@prisma/orm-framework/components/codec";
4
2
  import "@prisma/orm-framework/utils/casts";
5
3
  import "@prisma/orm-framework/components/ir";
6
4
  import "@prisma/orm-framework/contract/types";
7
5
  import "@prisma/orm-framework/contract/hashing";
8
- import { InternalError } from "@prisma/orm-framework/utils/internal-error";
9
6
  import { enumType } from "@prisma/orm-framework/contract-authoring";
10
7
  import { readEnumBlockMembers, resolveEnumCodecId } from "@prisma/orm-framework/components/authoring";
11
8
  import { blockAttribute, jsonValue, mapBlock, str } from "@prisma/orm-framework/psl-parser";
12
9
  import "@prisma/orm-framework/utils/defined";
10
+ import "@prisma/orm-framework/components/components";
13
11
  import "@prisma/orm-framework/components/control";
14
12
  import "@prisma/orm-framework/utils/canonical-stringify";
15
- //#region ../../../2-mongo-family/9-family/dist/authoring-entity-types-C4WFd_RV.mjs
13
+ //#region ../../../2-mongo-family/9-family/dist/authoring-entity-types-CvqTq1Za.mjs
16
14
  function mongoFamilyEnumSpec() {
17
15
  return mapBlock({
18
16
  value: {
@@ -41,28 +39,6 @@ const mongoFamilyEntityTypes = { enum: {
41
39
  });
42
40
  return;
43
41
  }
44
- const dataType = ctx.dataTypeLookup.get(descriptor.dataType);
45
- if (dataType === void 0) {
46
- diagnostics?.push({
47
- code: "PSL_EXTENSION_INVALID_VALUE",
48
- message: `enum "${block.name}" @@type codec "${codecId}" represents data type "${descriptor.dataType}", which no component registers`,
49
- sourceId,
50
- span: codecSpan
51
- });
52
- return;
53
- }
54
- if (!isMongoDataType(dataType)) throw new InternalError(`Data type ${dataType.id} is not a Mongo data type.`);
55
- const { bsonTypes } = dataType.mongo;
56
- const validatorRefusal = validatorEnumRefusalOf(bsonTypes);
57
- if (validatorRefusal !== void 0) {
58
- diagnostics?.push({
59
- code: "PSL_EXTENSION_INVALID_VALUE",
60
- message: `enum "${block.name}" @@type codec "${codecId}" ${validatorRefusal}`,
61
- sourceId,
62
- span: codecSpan
63
- });
64
- return;
65
- }
66
42
  const enumRefusal = enumRefusalOf(descriptor);
67
43
  if (enumRefusal !== void 0) {
68
44
  diagnostics?.push({
@@ -85,19 +61,6 @@ const mongoFamilyEntityTypes = { enum: {
85
61
  }
86
62
  const members = readEnumBlockMembers(block, codecId, codec, ctx);
87
63
  if (members === void 0) return void 0;
88
- let unlistedMember = false;
89
- for (const member of members) {
90
- const refusal = validatorEnumMemberRefusalOf(bsonTypes, codec.dataType.toContract(codec.toDataTypeValue(member.value)));
91
- if (refusal === void 0) continue;
92
- diagnostics?.push({
93
- code: "PSL_EXTENSION_INVALID_VALUE",
94
- message: `enum "${block.name}" member "${member.name}" ${refusal}`,
95
- sourceId,
96
- span: block.parameterSpans[member.name] ?? block.span
97
- });
98
- unlistedMember = true;
99
- }
100
- if (unlistedMember) return void 0;
101
64
  return enumType(block.name, { codecId }, ...members);
102
65
  } }
103
66
  } };
@@ -121,4 +84,4 @@ const mongoFamilyPslBlockDescriptors = { enum: {
121
84
  //#endregion
122
85
  export { mongoFamilyPslBlockDescriptors as n, mongoFamilyEntityTypes as t };
123
86
 
124
- //# sourceMappingURL=authoring-entity-types-C4WFd_RV-Dk_MsSD8.mjs.map
87
+ //# sourceMappingURL=authoring-entity-types-CvqTq1Za-KBOkOZYm.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authoring-entity-types-CvqTq1Za-KBOkOZYm.mjs","names":[],"sources":["../../../../2-mongo-family/9-family/dist/authoring-entity-types-CvqTq1Za.mjs"],"sourcesContent":["import \"@internal/utils/defined\";\nimport { readEnumBlockMembers, resolveEnumCodecId } from \"@internal/framework-components/authoring\";\nimport { enumRefusalOf } from \"@internal/framework-components/codec\";\nimport \"@internal/contract/hashing\";\nimport \"@internal/contract/types\";\nimport { enumType } from \"@internal/contract-authoring\";\nimport \"@internal/framework-components/components\";\nimport \"@internal/framework-components/control\";\nimport \"@internal/framework-components/ir\";\nimport \"@internal/mongo-contract\";\nimport \"@internal/mongo-contract/data-type\";\nimport \"@internal/utils/canonical-stringify\";\nimport \"@internal/utils/casts\";\nimport { blockAttribute, jsonValue, mapBlock, str } from \"@internal/psl-parser\";\n//#region src/core/authoring-entity-types.ts\nfunction mongoFamilyEnumSpec() {\n\treturn mapBlock({\n\t\tvalue: {\n\t\t\ttype: jsonValue(),\n\t\t\tdocumentation: \"The stored member value; a bare member stores its own name.\"\n\t\t},\n\t\tallowBare: true\n\t});\n}\nconst mongoFamilyEntityTypes = { enum: {\n\tkind: \"entity\",\n\tdiscriminator: \"enum\",\n\toutput: { factory: (block, ctx) => {\n\t\tconst sourceId = ctx.sourceId ?? \"unknown\";\n\t\tconst diagnostics = ctx.diagnostics;\n\t\tconst resolved = resolveEnumCodecId(block, ctx);\n\t\tif (resolved === void 0) return;\n\t\tconst { codecId, codecSpan } = resolved;\n\t\tconst descriptor = ctx.codecLookup.descriptorFor(codecId);\n\t\tif (descriptor === void 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: \"PSL_EXTENSION_INVALID_VALUE\",\n\t\t\t\tmessage: `enum \"${block.name}\" @@type references unknown codec \"${codecId}\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: codecSpan\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst enumRefusal = enumRefusalOf(descriptor);\n\t\tif (enumRefusal !== void 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: \"PSL_EXTENSION_INVALID_VALUE\",\n\t\t\t\tmessage: `enum \"${block.name}\" cannot use the codec \"${codecId}\". ${enumRefusal}`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: codecSpan\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst codec = ctx.codecLookup.get(codecId);\n\t\tif (codec === void 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: \"PSL_EXTENSION_INVALID_VALUE\",\n\t\t\t\tmessage: `enum \"${block.name}\" @@type codec \"${codecId}\" is registered but codecLookup.get has no codec for it`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: codecSpan\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst members = readEnumBlockMembers(block, codecId, codec, ctx);\n\t\tif (members === void 0) return void 0;\n\t\treturn enumType(block.name, { codecId }, ...members);\n\t} }\n} };\nconst enumTypeBlockAttribute = blockAttribute(\"type\", {\n\tdocumentation: \"Selects the storage codec for this enum.\",\n\tpositional: [{\n\t\tkey: \"codecId\",\n\t\ttype: str(),\n\t\tdocumentation: \"The fully qualified codec identifier used to store enum values.\"\n\t}]\n});\nconst mongoFamilyPslBlockDescriptors = { enum: {\n\tkind: \"pslBlock\",\n\tkeyword: \"enum\",\n\tdocumentation: \"Defines an enum with named values and an inferred or explicitly selected storage codec.\",\n\tdiscriminator: \"enum\",\n\tname: { required: true },\n\tspec: mongoFamilyEnumSpec,\n\tattributes: { type: () => enumTypeBlockAttribute }\n} };\n//#endregion\nexport { mongoFamilyPslBlockDescriptors as n, mongoFamilyEntityTypes as t };\n\n//# sourceMappingURL=authoring-entity-types-CvqTq1Za.mjs.map"],"mappings":";;;;;;;;;;;;;AAeA,SAAS,sBAAsB;CAC9B,OAAO,SAAS;EACf,OAAO;GACN,MAAM,UAAU;GAChB,eAAe;EAChB;EACA,WAAW;CACZ,CAAC;AACF;AACA,MAAM,yBAAyB,EAAE,MAAM;CACtC,MAAM;CACN,eAAe;CACf,QAAQ,EAAE,UAAU,OAAO,QAAQ;EAClC,MAAM,WAAW,IAAI,YAAY;EACjC,MAAM,cAAc,IAAI;EACxB,MAAM,WAAW,mBAAmB,OAAO,GAAG;EAC9C,IAAI,aAAa,KAAK,GAAG;EACzB,MAAM,EAAE,SAAS,cAAc;EAC/B,MAAM,aAAa,IAAI,YAAY,cAAc,OAAO;EACxD,IAAI,eAAe,KAAK,GAAG;GAC1B,aAAa,KAAK;IACjB,MAAM;IACN,SAAS,SAAS,MAAM,KAAK,qCAAqC,QAAQ;IAC1E;IACA,MAAM;GACP,CAAC;GACD;EACD;EACA,MAAM,cAAc,cAAc,UAAU;EAC5C,IAAI,gBAAgB,KAAK,GAAG;GAC3B,aAAa,KAAK;IACjB,MAAM;IACN,SAAS,SAAS,MAAM,KAAK,0BAA0B,QAAQ,KAAK;IACpE;IACA,MAAM;GACP,CAAC;GACD;EACD;EACA,MAAM,QAAQ,IAAI,YAAY,IAAI,OAAO;EACzC,IAAI,UAAU,KAAK,GAAG;GACrB,aAAa,KAAK;IACjB,MAAM;IACN,SAAS,SAAS,MAAM,KAAK,kBAAkB,QAAQ;IACvD;IACA,MAAM;GACP,CAAC;GACD;EACD;EACA,MAAM,UAAU,qBAAqB,OAAO,SAAS,OAAO,GAAG;EAC/D,IAAI,YAAY,KAAK,GAAG,OAAO,KAAK;EACpC,OAAO,SAAS,MAAM,MAAM,EAAE,QAAQ,GAAG,GAAG,OAAO;CACpD,EAAE;AACH,EAAE;AACF,MAAM,yBAAyB,eAAe,QAAQ;CACrD,eAAe;CACf,YAAY,CAAC;EACZ,KAAK;EACL,MAAM,IAAI;EACV,eAAe;CAChB,CAAC;AACF,CAAC;AACD,MAAM,iCAAiC,EAAE,MAAM;CAC9C,MAAM;CACN,SAAS;CACT,eAAe;CACf,eAAe;CACf,MAAM,EAAE,UAAU,KAAK;CACvB,MAAM;CACN,YAAY,EAAE,YAAY,uBAAuB;AAClD,EAAE"}
@@ -1,19 +1,83 @@
1
- import { t as mongoContractCanonicalizationHooks } from "./canonicalization-hooks-CRVM-Kqh-Qi-VmEVg.mjs";
2
1
  import { i as MongoCollectionOptions, o as MongoIndex } from "./entity-kinds-RooUvcN8-B1AF_ppw.mjs";
3
2
  import { t as assertMongoFieldTypeParams } from "./mongo-data-type-DzyzU4LF-C1ydFXgE.mjs";
4
- import { c as buildMongoNamespace, m as mongoValueSetsOf, o as applyPolymorphicScopeToMongoIndex, r as MongoStorage } from "./dist-Dc7ucQHb.mjs";
3
+ import { S as mongoValueSetsOf, g as deriveCollectionValidators, s as applyPolymorphicScopeToMongoIndex, u as buildMongoStorage, x as mongoContractRefusalsOf } from "./dist-BY0Y-yqv.mjs";
5
4
  import { t as contractError } from "./contract-errors-BCN6RVI5-kMurtAbI.mjs";
6
5
  import { assembleDataTypes } from "@prisma/orm-framework/components/codec";
7
6
  import { blindCast } from "@prisma/orm-framework/utils/casts";
8
7
  import { UNBOUND_NAMESPACE_ID } from "@prisma/orm-framework/components/ir";
9
8
  import { crossRef } from "@prisma/orm-framework/contract/types";
10
- import { buildExecutionSection, computeProfileHash, computeStorageHash } from "@prisma/orm-framework/contract/hashing";
9
+ import { buildExecutionSection, computeProfileHash } from "@prisma/orm-framework/contract/hashing";
11
10
  import { bindEnumType, composePackAuthoringNamespace, createEntityHelpersFromNamespace, createFieldHelpersFromNamespace, encodeEnumTypeMembers, enumType as enumType$1, isEnumTypeHandle, member, resolveToOneRelationNullable } from "@prisma/orm-framework/contract-authoring";
12
11
  import { assertNoCrossRegistryCollisions, instantiateAuthoringFieldPreset, validateAuthoringHelperArguments } from "@prisma/orm-framework/components/authoring";
13
12
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
13
+ import { assembleGeneratorFunctions, createGeneratorHelpers } from "@prisma/orm-framework/components/components";
14
14
  import { extractCodecLookup } from "@prisma/orm-framework/components/control";
15
15
  import { canonicalStringify } from "@prisma/orm-framework/utils/canonical-stringify";
16
16
  //#region ../../../2-mongo-family/2-authoring/contract-ts/dist/contract-builder.mjs
17
+ const LIST_THE_CODEC_PACK = "List the pack that provides the codec in `extensions` in defineContract.";
18
+ function codecRefusalError(subject, meta, codecId, refusal) {
19
+ if (refusal.kind === "unknownCodec") return contractError("CONTRACT.CODEC_DESCRIPTOR_MISSING", `${subject} ${refusal.reason}`, {
20
+ fix: LIST_THE_CODEC_PACK,
21
+ meta: {
22
+ ...meta,
23
+ codecId
24
+ }
25
+ });
26
+ return contractError("CONTRACT.PACK_CONTRIBUTION_INVALID", `${subject} ${refusal.reason}`, {
27
+ fix: "Use a codec whose data type is a MongoDB data type, declared with mongoDataType.",
28
+ meta: {
29
+ ...meta,
30
+ codecId,
31
+ dataType: refusal.dataType,
32
+ reason: "data-type-not-mongo"
33
+ }
34
+ });
35
+ }
36
+ function refusalError(refusal) {
37
+ switch (refusal.kind) {
38
+ case "embeddedModelHasVariants": return contractError("CONTRACT.RELATION_INVALID", `Relation "${refusal.modelName}.${refusal.relationName}" ${refusal.reason}`, { meta: {
39
+ modelName: refusal.modelName,
40
+ relationName: refusal.relationName,
41
+ reason: "embedded-model-has-variants"
42
+ } });
43
+ case "enumBsonType": return codecRefusalError(`enumType("${refusal.enumName}")`, { enumName: refusal.enumName }, refusal.codecId, refusal.refusal);
44
+ case "enumNotListable": return contractError("CONTRACT.ENUM_INVALID", `enumType("${refusal.enumName}") codec "${refusal.codecId}" ${refusal.reason}`, { meta: {
45
+ enumName: refusal.enumName,
46
+ codecId: refusal.codecId,
47
+ reason: "not-listable-by-validator"
48
+ } });
49
+ case "enumMemberNotListable": return contractError("CONTRACT.ENUM_INVALID", `enumType("${refusal.enumName}") member "${refusal.member}" ${refusal.reason}`, { meta: {
50
+ enumName: refusal.enumName,
51
+ member: refusal.member,
52
+ codecId: refusal.codecId,
53
+ reason: "member-not-listable-by-validator"
54
+ } });
55
+ case "fieldBsonType": {
56
+ const { owner } = refusal;
57
+ const label = owner.kind === "model" ? "Model" : "Value object";
58
+ const ownerMeta = owner.kind === "model" ? { modelName: owner.name } : { valueObjectName: owner.name };
59
+ return codecRefusalError(`${label} "${owner.name}" field "${refusal.fieldName}"`, {
60
+ ...ownerMeta,
61
+ fieldName: refusal.fieldName
62
+ }, refusal.codecId, refusal.refusal);
63
+ }
64
+ case "documentId": return contractError("CONTRACT.COLLECTION_INVALID", `Model "${refusal.modelName}" field "${refusal.fieldName}" ${refusal.reason}`, { meta: {
65
+ modelName: refusal.modelName,
66
+ fieldName: refusal.fieldName,
67
+ collection: refusal.collection,
68
+ codecId: refusal.codecId,
69
+ bsonTypes: refusal.forbidden,
70
+ reason: "document-id-bson-type"
71
+ } });
72
+ }
73
+ }
74
+ /**
75
+ * Throws the first part of the built contract that its collection validators cannot describe, as decided by `mongoContractRefusalsOf`.
76
+ */
77
+ function assertCollectionValidatorSources(input) {
78
+ const [first] = mongoContractRefusalsOf(input);
79
+ if (first !== void 0) throw refusalError(first);
80
+ }
17
81
  function stableStringify(value) {
18
82
  if (Array.isArray(value)) return `[${value.map(stableStringify).join(",")}]`;
19
83
  if (value && typeof value === "object") return `{${Object.entries(value).sort(([left], [right]) => left.localeCompare(right)).map(([key, entry]) => `${JSON.stringify(key)}:${stableStringify(entry)}`).join(",")}}`;
@@ -21,6 +85,7 @@ function stableStringify(value) {
21
85
  }
22
86
  const MONGO_RESERVED_HELPER_KEYS = [
23
87
  "field",
88
+ "gen",
24
89
  "index",
25
90
  "model",
26
91
  "rel",
@@ -83,23 +148,37 @@ function composeMongoAuthoringHelpers(family, target, extensions) {
83
148
  dataTypeLookup: assembleDataTypes(components).lookup
84
149
  } }),
85
150
  field: composeMongoFieldHelpers(fieldNamespace),
151
+ gen: createGeneratorHelpers(components),
86
152
  index,
87
153
  model,
88
154
  rel,
89
155
  valueObject
90
156
  });
91
157
  }
92
- function createFieldBuilder(spec, enumHandle, executionDefaults) {
158
+ function createFieldBuilder(spec, enumHandle, executionDefaults, generatorCalls) {
93
159
  function many(options) {
94
160
  return createFieldBuilder({
95
161
  type: spec.type,
96
162
  nullable: spec.nullable,
97
163
  many: { elementNullable: options?.elementsNullable ?? false }
98
- }, enumHandle, executionDefaults);
164
+ }, enumHandle, executionDefaults, generatorCalls);
165
+ }
166
+ function withGeneratorCall(phase, call) {
167
+ if (generatorCalls?.[phase] !== void 0 || executionDefaults?.[phase] !== void 0) throw contractError("CONTRACT.DEFAULT_INVALID", `.${phase}() is called on a field that already generates a value ${phase === "onCreate" ? "on create" : "on update"}. Set each phase once, and do not combine .${phase}() with a field preset that sets it.`, { meta: {
168
+ reason: "generator-phase-set-twice",
169
+ phase
170
+ } });
171
+ return createFieldBuilder(spec, enumHandle, blindCast(executionDefaults), {
172
+ ...generatorCalls,
173
+ [phase]: call
174
+ });
99
175
  }
100
176
  return {
101
177
  __kind: "field",
102
178
  ...ifDefined("__executionDefaults", executionDefaults),
179
+ ...ifDefined("__generatorCalls", generatorCalls),
180
+ onCreate: (call) => withGeneratorCall("onCreate", call),
181
+ onUpdate: (call) => withGeneratorCall("onUpdate", call),
103
182
  __type: spec.type,
104
183
  __nullable: spec.nullable,
105
184
  __many: spec.many,
@@ -108,7 +187,7 @@ function createFieldBuilder(spec, enumHandle, executionDefaults) {
108
187
  type: spec.type,
109
188
  nullable: true,
110
189
  many: spec.many
111
- }, enumHandle, executionDefaults)),
190
+ }, enumHandle, executionDefaults, generatorCalls)),
112
191
  many: blindCast(many)
113
192
  };
114
193
  }
@@ -618,20 +697,59 @@ function executionDefaultError(modelName, fieldName, reason, message) {
618
697
  }
619
698
  function hasExecutionDefaults(fieldBuilder) {
620
699
  const phases = fieldBuilder.__executionDefaults;
621
- return phases?.onCreate !== void 0 || phases?.onUpdate !== void 0;
700
+ const calls = fieldBuilder.__generatorCalls;
701
+ return phases?.onCreate !== void 0 || phases?.onUpdate !== void 0 || calls?.onCreate !== void 0 || calls?.onUpdate !== void 0;
702
+ }
703
+ /**
704
+ * The phases a field generates: a preset's, with the generators its `.onCreate(...)` and `.onUpdate(...)` calls resolve to for its codec.
705
+ */
706
+ function executionDefaultsOf(fieldBuilder, modelName, fieldName, generatorFunctions) {
707
+ const calls = fieldBuilder.__generatorCalls;
708
+ if (calls === void 0) return fieldBuilder.__executionDefaults;
709
+ const type = fieldBuilder.__type;
710
+ const codecId = type.kind === "scalar" ? type.codecId : void 0;
711
+ const phases = { ...fieldBuilder.__executionDefaults };
712
+ for (const phase of ["onCreate", "onUpdate"]) {
713
+ const call = calls[phase];
714
+ if (call === void 0) continue;
715
+ const resolution = type.kind === "scalar" ? generatorFunctions.resolve(call, {
716
+ codecId: type.codecId,
717
+ typeParams: type.typeParams
718
+ }) : void 0;
719
+ if (resolution?.ok === true) {
720
+ phases[phase] = resolution.generator;
721
+ continue;
722
+ }
723
+ const meta = {
724
+ modelName,
725
+ fieldName,
726
+ codecId,
727
+ function: call.name
728
+ };
729
+ if (resolution?.reason === "unknown-function") throw contractError("CONTRACT.DEFAULT_INVALID", `Field "${modelName}.${fieldName}": no pack in the contract declares the generator function "${call.name}".`, { meta: {
730
+ ...meta,
731
+ reason: "generator-unknown"
732
+ } });
733
+ throw contractError("CONTRACT.DEFAULT_INVALID", resolution?.reason === "refused" ? `Field "${modelName}.${fieldName}": ${resolution.message}` : `Field "${modelName}.${fieldName}": ${call.name}() does not apply to ${codecId === void 0 ? "the field's type" : `codec "${codecId}"`}.`, { meta: {
734
+ ...meta,
735
+ reason: "generator-not-applicable"
736
+ } });
737
+ }
738
+ return phases;
622
739
  }
623
740
  function assertNoValueObjectExecutionDefaults(valueObjects) {
624
741
  for (const valueObjectBuilder of Object.values(valueObjects ?? {})) for (const [fieldName, fieldBuilder] of Object.entries(valueObjectBuilder.__fields)) if (hasExecutionDefaults(fieldBuilder)) throw executionDefaultError(valueObjectBuilder.__name, fieldName, "executionDefaults-on-value-object", "has executionDefaults, but it belongs to a value object. Generated values are only supported on model fields.");
625
742
  }
626
- function buildExecutionDefaults(models) {
743
+ function buildExecutionDefaults(models, generatorFunctions) {
627
744
  const modelBuilders = Object.values(models ?? {});
628
745
  const collectionByModelName = new Map(modelBuilders.map((modelBuilder) => [modelBuilder.__name, modelBuilder.__collection]));
629
746
  const byRef = /* @__PURE__ */ new Map();
630
747
  const defaults = [];
631
748
  for (const modelBuilder of modelBuilders) for (const [fieldName, fieldBuilder] of Object.entries(modelBuilder.__fields)) {
632
- const phases = fieldBuilder.__executionDefaults;
633
- if (!phases || !hasExecutionDefaults(fieldBuilder)) continue;
749
+ if (!hasExecutionDefaults(fieldBuilder)) continue;
634
750
  const modelName = modelBuilder.__name;
751
+ const phases = executionDefaultsOf(fieldBuilder, modelName, fieldName, generatorFunctions);
752
+ if (phases === void 0) continue;
635
753
  if (fieldBuilder.__nullable) throw executionDefaultError(modelName, fieldName, "nullable-with-executionDefaults", "is filled on write by a preset such as temporal.createdAt(), so it cannot be optional; remove .optional().");
636
754
  if (fieldBuilder.__many) throw executionDefaultError(modelName, fieldName, "many-with-executionDefaults", "is filled on write by a preset such as temporal.createdAt(), so it cannot be a list; remove .many().");
637
755
  if (modelBuilder.__base !== void 0) {
@@ -674,48 +792,32 @@ function buildContractFromDefinition(definition) {
674
792
  const execution = buildExecutionSection({
675
793
  target: definition.target.targetId,
676
794
  targetFamily: definition.family.familyId,
677
- defaults: buildExecutionDefaults(definition.models)
795
+ defaults: buildExecutionDefaults(definition.models, assembleGeneratorFunctions([
796
+ definition.family,
797
+ definition.target,
798
+ ...Object.values(definition.extensions ?? {})
799
+ ]))
678
800
  });
679
- const codecLookup = extractCodecLookup([definition.target]);
680
801
  const components = [
681
802
  definition.family,
682
803
  definition.target,
683
804
  ...Object.values(definition.extensions ?? {})
684
805
  ];
806
+ const codecLookup = extractCodecLookup(components);
807
+ const lookups = {
808
+ codecLookup,
809
+ dataTypeLookup: assembleDataTypes(components).lookup
810
+ };
685
811
  assertMongoFieldTypeParams({ [UNBOUND_NAMESPACE_ID]: {
686
812
  models: builtModels,
687
813
  valueObjects: builtValueObjects
688
- } }, {
689
- codecLookup: extractCodecLookup(components),
690
- dataTypeLookup: assembleDataTypes(components).lookup
691
- });
814
+ } }, lookups);
692
815
  const builtEnums = {};
693
816
  for (const [enumName, handle] of Object.entries(definition.enums ?? {})) builtEnums[enumName] = {
694
817
  codecId: handle.codecId,
695
818
  members: encodeEnumTypeMembers(handle, codecLookup, "the field")
696
819
  };
697
820
  const storageValueSets = mongoValueSetsOf(builtEnums);
698
- const unboundNamespace = buildMongoNamespace({
699
- id: UNBOUND_NAMESPACE_ID,
700
- entries: {
701
- collection: collections,
702
- ...ifDefined("valueSet", Object.keys(storageValueSets).length > 0 ? storageValueSets : void 0)
703
- }
704
- });
705
- const storageBody = { namespaces: { [UNBOUND_NAMESPACE_ID]: {
706
- id: UNBOUND_NAMESPACE_ID,
707
- collections: unboundNamespace.entries.collection,
708
- ...ifDefined("valueSet", unboundNamespace.entries.valueSet)
709
- } } };
710
- const storage = new MongoStorage({
711
- storageHash: computeStorageHash({
712
- target: definition.target.targetId,
713
- targetFamily: definition.family.familyId,
714
- storage: storageBody,
715
- ...mongoContractCanonicalizationHooks
716
- }),
717
- namespaces: { [UNBOUND_NAMESPACE_ID]: unboundNamespace }
718
- });
719
821
  for (const [enumName, handle] of Object.entries(definition.enums ?? {})) if (enumName !== handle.enumName) throw contractError("CONTRACT.ENUM_INVALID", `enum declaration key "${enumName}" must match enumType name "${handle.enumName}". Aliases are not supported.`, { meta: {
720
822
  enumName: handle.enumName,
721
823
  declaredKey: enumName,
@@ -730,6 +832,31 @@ function buildContractFromDefinition(definition) {
730
832
  enumName: handle.enumName
731
833
  } });
732
834
  }
835
+ const controlPolicies = {
836
+ collections: Object.fromEntries(Object.entries(collections).map(([name, collection]) => [name, collection.control])),
837
+ defaultControlPolicy: definition.defaultControlPolicy
838
+ };
839
+ assertCollectionValidatorSources({
840
+ models: builtModels,
841
+ valueObjects: builtValueObjects,
842
+ enums: builtEnums,
843
+ lookups,
844
+ controlPolicies
845
+ });
846
+ const validators = deriveCollectionValidators({
847
+ models: builtModels,
848
+ lookups,
849
+ valueObjects: builtValueObjects,
850
+ valueSets: storageValueSets,
851
+ controlPolicies
852
+ });
853
+ const storage = buildMongoStorage({
854
+ collections: Object.fromEntries(Object.entries(collections).map(([name, collection]) => [name, {
855
+ ...collection,
856
+ ...ifDefined("validator", validators[name])
857
+ }])),
858
+ valueSets: storageValueSets
859
+ });
733
860
  return blindCast({
734
861
  target: definition.target.targetId,
735
862
  targetFamily: definition.family.familyId,
@@ -778,4 +905,4 @@ function defineContract(definition, factory) {
778
905
  //#endregion
779
906
  export { field as a, member as c, valueObject as d, enumType$1 as i, model as l, buildBoundContract as n, index as o, defineContract as r, isEnumTypeHandle as s, bindEnumType as t, rel as u };
780
907
 
781
- //# sourceMappingURL=contract-builder-BEuM9D-R.mjs.map
908
+ //# sourceMappingURL=contract-builder-BWJ5A-93.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-builder-BWJ5A-93.mjs","names":[],"sources":["../../../../2-mongo-family/2-authoring/contract-ts/dist/contract-builder.mjs"],"sourcesContent":["import { t as contractError } from \"./contract-errors-BCN6RVI5.mjs\";\nimport { buildExecutionSection, computeProfileHash } from \"@internal/contract/hashing\";\nimport { crossRef } from \"@internal/contract/types\";\nimport { bindEnumType, composePackAuthoringNamespace, createEntityHelpersFromNamespace, createFieldHelpersFromNamespace, encodeEnumTypeMembers, enumType, isEnumTypeHandle, member, resolveToOneRelationNullable } from \"@internal/contract-authoring\";\nimport { assertNoCrossRegistryCollisions, instantiateAuthoringFieldPreset, validateAuthoringHelperArguments } from \"@internal/framework-components/authoring\";\nimport { assembleDataTypes } from \"@internal/framework-components/codec\";\nimport { assembleGeneratorFunctions, createGeneratorHelpers } from \"@internal/framework-components/components\";\nimport { extractCodecLookup } from \"@internal/framework-components/control\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { MongoCollectionOptions, MongoIndex, applyPolymorphicScopeToMongoIndex, buildMongoStorage, deriveCollectionValidators, mongoContractRefusalsOf, mongoValueSetsOf } from \"@internal/mongo-contract\";\nimport { assertMongoFieldTypeParams } from \"@internal/mongo-contract/data-type\";\nimport { canonicalStringify } from \"@internal/utils/canonical-stringify\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\n//#region src/collection-validator-checks.ts\nconst LIST_THE_CODEC_PACK = \"List the pack that provides the codec in `extensions` in defineContract.\";\nfunction codecRefusalError(subject, meta, codecId, refusal) {\n\tif (refusal.kind === \"unknownCodec\") return contractError(\"CONTRACT.CODEC_DESCRIPTOR_MISSING\", `${subject} ${refusal.reason}`, {\n\t\tfix: LIST_THE_CODEC_PACK,\n\t\tmeta: {\n\t\t\t...meta,\n\t\t\tcodecId\n\t\t}\n\t});\n\treturn contractError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `${subject} ${refusal.reason}`, {\n\t\tfix: \"Use a codec whose data type is a MongoDB data type, declared with mongoDataType.\",\n\t\tmeta: {\n\t\t\t...meta,\n\t\t\tcodecId,\n\t\t\tdataType: refusal.dataType,\n\t\t\treason: \"data-type-not-mongo\"\n\t\t}\n\t});\n}\nfunction refusalError(refusal) {\n\tswitch (refusal.kind) {\n\t\tcase \"embeddedModelHasVariants\": return contractError(\"CONTRACT.RELATION_INVALID\", `Relation \"${refusal.modelName}.${refusal.relationName}\" ${refusal.reason}`, { meta: {\n\t\t\tmodelName: refusal.modelName,\n\t\t\trelationName: refusal.relationName,\n\t\t\treason: \"embedded-model-has-variants\"\n\t\t} });\n\t\tcase \"enumBsonType\": return codecRefusalError(`enumType(\"${refusal.enumName}\")`, { enumName: refusal.enumName }, refusal.codecId, refusal.refusal);\n\t\tcase \"enumNotListable\": return contractError(\"CONTRACT.ENUM_INVALID\", `enumType(\"${refusal.enumName}\") codec \"${refusal.codecId}\" ${refusal.reason}`, { meta: {\n\t\t\tenumName: refusal.enumName,\n\t\t\tcodecId: refusal.codecId,\n\t\t\treason: \"not-listable-by-validator\"\n\t\t} });\n\t\tcase \"enumMemberNotListable\": return contractError(\"CONTRACT.ENUM_INVALID\", `enumType(\"${refusal.enumName}\") member \"${refusal.member}\" ${refusal.reason}`, { meta: {\n\t\t\tenumName: refusal.enumName,\n\t\t\tmember: refusal.member,\n\t\t\tcodecId: refusal.codecId,\n\t\t\treason: \"member-not-listable-by-validator\"\n\t\t} });\n\t\tcase \"fieldBsonType\": {\n\t\t\tconst { owner } = refusal;\n\t\t\tconst label = owner.kind === \"model\" ? \"Model\" : \"Value object\";\n\t\t\tconst ownerMeta = owner.kind === \"model\" ? { modelName: owner.name } : { valueObjectName: owner.name };\n\t\t\treturn codecRefusalError(`${label} \"${owner.name}\" field \"${refusal.fieldName}\"`, {\n\t\t\t\t...ownerMeta,\n\t\t\t\tfieldName: refusal.fieldName\n\t\t\t}, refusal.codecId, refusal.refusal);\n\t\t}\n\t\tcase \"documentId\": return contractError(\"CONTRACT.COLLECTION_INVALID\", `Model \"${refusal.modelName}\" field \"${refusal.fieldName}\" ${refusal.reason}`, { meta: {\n\t\t\tmodelName: refusal.modelName,\n\t\t\tfieldName: refusal.fieldName,\n\t\t\tcollection: refusal.collection,\n\t\t\tcodecId: refusal.codecId,\n\t\t\tbsonTypes: refusal.forbidden,\n\t\t\treason: \"document-id-bson-type\"\n\t\t} });\n\t}\n}\n/**\n* Throws the first part of the built contract that its collection validators cannot describe, as decided by `mongoContractRefusalsOf`.\n*/\nfunction assertCollectionValidatorSources(input) {\n\tconst [first] = mongoContractRefusalsOf(input);\n\tif (first !== void 0) throw refusalError(first);\n}\n//#endregion\n//#region src/contract-builder.ts\nfunction stableStringify(value) {\n\tif (Array.isArray(value)) return `[${value.map(stableStringify).join(\",\")}]`;\n\tif (value && typeof value === \"object\") return `{${Object.entries(value).sort(([left], [right]) => left.localeCompare(right)).map(([key, entry]) => `${JSON.stringify(key)}:${stableStringify(entry)}`).join(\",\")}}`;\n\treturn JSON.stringify(value);\n}\nconst MONGO_RESERVED_HELPER_KEYS = [\n\t\"field\",\n\t\"gen\",\n\t\"index\",\n\t\"model\",\n\t\"rel\",\n\t\"valueObject\"\n];\nfunction buildFieldPreset(helperPath, descriptor, args) {\n\tvalidateAuthoringHelperArguments(helperPath, descriptor.args, args);\n\tconst preset = instantiateAuthoringFieldPreset(descriptor, args);\n\tconst unsupported = [\n\t\t...preset.default !== void 0 ? [\"default\"] : [],\n\t\t...preset.id ? [\"id\"] : [],\n\t\t...preset.unique ? [\"unique\"] : []\n\t];\n\tif (unsupported.length > 0) throw contractError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `Field preset \"${helperPath}\" contributes ${unsupported.join(\", \")}, which Mongo does not support. Mongo supports presets that set a codec and execution defaults only.`, { meta: {\n\t\thelperPath,\n\t\treason: \"preset-contribution-unsupported\",\n\t\tcontribution: unsupported\n\t} });\n\treturn createFieldBuilder({\n\t\ttype: {\n\t\t\tkind: \"scalar\",\n\t\t\tcodecId: preset.descriptor.codecId,\n\t\t\t...normalizeOptionalTypeParams(preset.descriptor.typeParams)\n\t\t},\n\t\tnullable: preset.nullable,\n\t\tmany: false\n\t}, void 0, preset.executionDefaults);\n}\nfunction composeMongoFieldHelpers(fieldNamespace) {\n\tconst presetHelpers = createFieldHelpersFromNamespace(fieldNamespace, ({ helperPath, descriptor }) => (...args) => buildFieldPreset(helperPath, descriptor, args));\n\tconst collisions = Object.keys(presetHelpers).filter((name) => Object.hasOwn(field, name));\n\tif (collisions.length > 0) throw contractError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `Pack-contributed field preset(s) ${collisions.map((c) => `\"${c}\"`).join(\", \")} collide with the built-in Mongo field helper(s) of the same name.`, { meta: {\n\t\treason: \"core-field-helper-collision\",\n\t\tcontribution: collisions\n\t} });\n\treturn {\n\t\t...field,\n\t\t...presetHelpers\n\t};\n}\nfunction composeMongoAuthoringHelpers(family, target, extensions) {\n\tconst components = [\n\t\tfamily,\n\t\ttarget,\n\t\t...Object.values(extensions ?? {})\n\t];\n\tconst entityNamespace = composePackAuthoringNamespace(components, \"entityTypes\");\n\tconst fieldNamespace = composePackAuthoringNamespace(components, \"field\");\n\tassertNoCrossRegistryCollisions({}, fieldNamespace, entityNamespace);\n\tconst collisions = Object.keys(entityNamespace).filter((name) => MONGO_RESERVED_HELPER_KEYS.includes(name));\n\tif (collisions.length > 0) throw contractError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `Pack-contributed entity type(s) ${collisions.map((c) => `\"${c}\"`).join(\", \")} collide with the reserved built-in helper key(s) on the Mongo composed helpers surface. Reserved keys: ${MONGO_RESERVED_HELPER_KEYS.map((k) => `\"${k}\"`).join(\", \")}.`, { meta: {\n\t\treason: \"reserved-helper-key-collision\",\n\t\tcontribution: collisions\n\t} });\n\treturn blindCast({\n\t\t...createEntityHelpersFromNamespace(entityNamespace, { ctx: {\n\t\t\tfamily: family.familyId,\n\t\t\ttarget: target.targetId,\n\t\t\tcodecLookup: extractCodecLookup(components),\n\t\t\tdataTypeLookup: assembleDataTypes(components).lookup\n\t\t} }),\n\t\tfield: composeMongoFieldHelpers(fieldNamespace),\n\t\tgen: createGeneratorHelpers(components),\n\t\tindex,\n\t\tmodel,\n\t\trel,\n\t\tvalueObject\n\t});\n}\nfunction createFieldBuilder(spec, enumHandle, executionDefaults, generatorCalls) {\n\tfunction many(options) {\n\t\treturn createFieldBuilder({\n\t\t\ttype: spec.type,\n\t\t\tnullable: spec.nullable,\n\t\t\tmany: { elementNullable: options?.elementsNullable ?? false }\n\t\t}, enumHandle, executionDefaults, generatorCalls);\n\t}\n\tfunction withGeneratorCall(phase, call) {\n\t\tif (generatorCalls?.[phase] !== void 0 || executionDefaults?.[phase] !== void 0) throw contractError(\"CONTRACT.DEFAULT_INVALID\", `.${phase}() is called on a field that already generates a value ${phase === \"onCreate\" ? \"on create\" : \"on update\"}. Set each phase once, and do not combine .${phase}() with a field preset that sets it.`, { meta: {\n\t\t\treason: \"generator-phase-set-twice\",\n\t\t\tphase\n\t\t} });\n\t\treturn createFieldBuilder(spec, enumHandle, blindCast(executionDefaults), {\n\t\t\t...generatorCalls,\n\t\t\t[phase]: call\n\t\t});\n\t}\n\treturn {\n\t\t__kind: \"field\",\n\t\t...ifDefined(\"__executionDefaults\", executionDefaults),\n\t\t...ifDefined(\"__generatorCalls\", generatorCalls),\n\t\tonCreate: (call) => withGeneratorCall(\"onCreate\", call),\n\t\tonUpdate: (call) => withGeneratorCall(\"onUpdate\", call),\n\t\t__type: spec.type,\n\t\t__nullable: spec.nullable,\n\t\t__many: spec.many,\n\t\t__enumHandle: blindCast(enumHandle),\n\t\toptional: blindCast(() => createFieldBuilder({\n\t\t\ttype: spec.type,\n\t\t\tnullable: true,\n\t\t\tmany: spec.many\n\t\t}, enumHandle, executionDefaults, generatorCalls)),\n\t\tmany: blindCast(many)\n\t};\n}\nfunction normalizeOptionalTypeParams(typeParams) {\n\tif (!typeParams) return {};\n\treturn { typeParams };\n}\nfunction createScalarFieldBuilder(codecId, options) {\n\treturn createFieldBuilder({\n\t\ttype: blindCast({\n\t\t\tkind: \"scalar\",\n\t\t\tcodecId,\n\t\t\t...normalizeOptionalTypeParams(options?.typeParams)\n\t\t}),\n\t\tnullable: false,\n\t\tmany: false\n\t});\n}\nfunction vectorField(options) {\n\treturn createScalarFieldBuilder(\"mongo/vector@1\", options);\n}\nconst field = {\n\tscalar: createScalarFieldBuilder,\n\tobjectId() {\n\t\treturn createScalarFieldBuilder(\"mongo/objectId@1\");\n\t},\n\tstring() {\n\t\treturn createScalarFieldBuilder(\"mongo/string@1\");\n\t},\n\tdouble() {\n\t\treturn createScalarFieldBuilder(\"mongo/double@1\");\n\t},\n\tint32() {\n\t\treturn createScalarFieldBuilder(\"mongo/int32@1\");\n\t},\n\tbool() {\n\t\treturn createScalarFieldBuilder(\"mongo/bool@1\");\n\t},\n\tdate() {\n\t\treturn createScalarFieldBuilder(\"mongo/date@1\");\n\t},\n\tint64() {\n\t\treturn createScalarFieldBuilder(\"mongo/int64@1\");\n\t},\n\tint64Number() {\n\t\treturn createScalarFieldBuilder(\"mongo/int64Number@1\");\n\t},\n\tdecimal128() {\n\t\treturn createScalarFieldBuilder(\"mongo/decimal128@1\");\n\t},\n\tbinary() {\n\t\treturn createScalarFieldBuilder(\"mongo/binary@1\");\n\t},\n\tjson() {\n\t\treturn createScalarFieldBuilder(\"mongo/json@1\");\n\t},\n\tbson() {\n\t\treturn createScalarFieldBuilder(\"mongo/bson@1\");\n\t},\n\tvector: vectorField,\n\tvalueObject(valueObjectName) {\n\t\treturn createFieldBuilder({\n\t\t\ttype: blindCast({\n\t\t\t\tkind: \"valueObject\",\n\t\t\t\tname: resolveValueObjectName(valueObjectName)\n\t\t\t}),\n\t\t\tnullable: false,\n\t\t\tmany: false\n\t\t});\n\t},\n\tnamedType(handle) {\n\t\treturn createFieldBuilder({\n\t\t\ttype: blindCast({\n\t\t\t\tkind: \"scalar\",\n\t\t\t\tcodecId: handle.codecId\n\t\t\t}),\n\t\t\tnullable: false,\n\t\t\tmany: false\n\t\t}, handle);\n\t}\n};\nfunction index(fields, options) {\n\treturn {\n\t\tfields,\n\t\t...options ? { options } : {}\n\t};\n}\nfunction createFieldReference(modelName, fieldName) {\n\treturn {\n\t\t__kind: \"fieldRef\",\n\t\tmodelName,\n\t\tfieldName\n\t};\n}\nfunction isFieldReference(value) {\n\treturn typeof value === \"object\" && value !== null && \"__kind\" in value && value.__kind === \"fieldRef\";\n}\nfunction resolveModelName(value) {\n\treturn typeof value === \"string\" ? value : value.__name;\n}\nfunction resolveValueObjectName(value) {\n\treturn typeof value === \"string\" ? value : value.__name;\n}\nfunction normalizeStringList(value) {\n\treturn typeof value === \"string\" ? [value] : [...value];\n}\nfunction normalizeTargetField(targetModelName, value) {\n\tif (!isFieldReference(value)) return value;\n\tif (value.modelName !== targetModelName) throw contractError(\"CONTRACT.RELATION_INVALID\", `Relation target \"${targetModelName}\" cannot reference field \"${value.modelName}.${value.fieldName}\".`, { meta: {\n\t\tmodelName: targetModelName,\n\t\treason: \"cross-model-field-reference\",\n\t\treferencedModel: value.modelName,\n\t\treferencedField: value.fieldName\n\t} });\n\treturn value.fieldName;\n}\nfunction normalizeTargetFields(targetModelName, value) {\n\tif (typeof value === \"string\") return [value];\n\tif (isFieldReference(value)) return [normalizeTargetField(targetModelName, value)];\n\treturn value.map((entry) => normalizeTargetField(targetModelName, entry));\n}\nfunction createRelationBuilder(spec) {\n\treturn {\n\t\t__kind: \"relation\",\n\t\t__to: spec.to,\n\t\t__cardinality: spec.cardinality,\n\t\t__on: spec.on,\n\t\t__nullable: spec.nullable\n\t};\n}\nfunction createReferenceRelationBuilder(target, cardinality, options, nullable) {\n\tconst targetModelName = resolveModelName(target);\n\treturn createRelationBuilder({\n\t\tto: blindCast(targetModelName),\n\t\tcardinality,\n\t\ton: {\n\t\t\tlocalFields: blindCast(normalizeStringList(options.from)),\n\t\t\ttargetFields: blindCast(normalizeTargetFields(targetModelName, options.to))\n\t\t},\n\t\tnullable\n\t});\n}\nfunction createEmbedRelationBuilder(target, cardinality) {\n\treturn createRelationBuilder({\n\t\tto: blindCast(resolveModelName(target)),\n\t\tcardinality,\n\t\ton: void 0,\n\t\tnullable: void 0\n\t});\n}\nfunction hasOne(target, options) {\n\tif (!options) return createEmbedRelationBuilder(target, \"1:1\");\n\treturn createReferenceRelationBuilder(target, \"1:1\", options, true);\n}\nfunction hasMany(target, options) {\n\tif (!options) return createEmbedRelationBuilder(target, \"1:N\");\n\treturn createReferenceRelationBuilder(target, \"1:N\", options, void 0);\n}\nfunction belongsTo(target, options) {\n\treturn createReferenceRelationBuilder(target, \"N:1\", options, options.optional);\n}\nconst rel = {\n\tbelongsTo,\n\thasMany,\n\thasOne\n};\nfunction valueObject(name, input) {\n\treturn {\n\t\t__kind: \"valueObject\",\n\t\t__name: name,\n\t\t__fields: input.fields\n\t};\n}\nfunction model(name, input) {\n\treturn {\n\t\t__kind: \"model\",\n\t\t__name: name,\n\t\t__fields: input.fields,\n\t\t__relations: blindCast(input.relations ?? {}),\n\t\t__indexes: input.indexes,\n\t\t__collectionOptions: input.collectionOptions,\n\t\t__controlPolicy: input.controlPolicy,\n\t\t__collection: blindCast(input.collection),\n\t\t__owner: blindCast(input.owner ? resolveModelName(input.owner) : void 0),\n\t\t__base: blindCast(input.base ? resolveModelName(input.base) : void 0),\n\t\t__storageRelations: blindCast(input.storageRelations),\n\t\t__discriminator: blindCast(input.discriminator ? { field: input.discriminator.field } : void 0),\n\t\t__variants: blindCast(input.discriminator?.variants),\n\t\tref(fieldName) {\n\t\t\treturn createFieldReference(name, fieldName);\n\t\t}\n\t};\n}\nfunction validateTargetPackRef(family, target) {\n\tif (family.familyId !== \"mongo\") throw contractError(\"CONTRACT.PACK_FAMILY_MISMATCH\", `defineContract only accepts Mongo family packs. Received family \"${family.familyId}\".`, { meta: {\n\t\tpackId: family.id,\n\t\tpackFamilyId: family.familyId,\n\t\tcontractFamilyId: \"mongo\"\n\t} });\n\tif (target.familyId !== family.familyId) throw contractError(\"CONTRACT.PACK_FAMILY_MISMATCH\", `target pack \"${target.id}\" targets family \"${target.familyId}\" but contract family is \"${family.familyId}\".`, { meta: {\n\t\tpackId: target.id,\n\t\tpackFamilyId: target.familyId,\n\t\tcontractFamilyId: family.familyId\n\t} });\n}\nfunction validateExtensionPackRefs(target, extensions) {\n\tif (!extensions) return;\n\tfor (const packRef of Object.values(extensions)) {\n\t\tif (packRef.kind !== \"extension\") throw contractError(\"CONTRACT.PACK_REF_INVALID\", `defineContract only accepts extension pack refs in extensions. Received kind \"${packRef.kind}\".`, { meta: {\n\t\t\tpackId: packRef.id,\n\t\t\tkind: packRef.kind\n\t\t} });\n\t\tif (packRef.familyId !== target.familyId) throw contractError(\"CONTRACT.PACK_FAMILY_MISMATCH\", `extension pack \"${packRef.id}\" targets family \"${packRef.familyId}\" but contract target family is \"${target.familyId}\".`, { meta: {\n\t\t\tpackId: packRef.id,\n\t\t\tpackFamilyId: packRef.familyId,\n\t\t\tcontractFamilyId: target.familyId\n\t\t} });\n\t\tif (packRef.targetId && packRef.targetId !== target.targetId) throw contractError(\"CONTRACT.PACK_TARGET_MISMATCH\", `extension pack \"${packRef.id}\" targets \"${packRef.targetId}\" but contract target is \"${target.targetId}\".`, { meta: {\n\t\t\tpackId: packRef.id,\n\t\t\tpackTargetId: packRef.targetId,\n\t\t\tcontractTargetId: target.targetId\n\t\t} });\n\t}\n}\nfunction isContractScaffold(value) {\n\tif (typeof value !== \"object\" || value === null) return false;\n\treturn \"family\" in value && \"target\" in value;\n}\nfunction buildContractField(builder) {\n\tconst valueSet = builder.__enumHandle ? {\n\t\tplane: \"domain\",\n\t\tentityKind: \"enum\",\n\t\tnamespaceId: UNBOUND_NAMESPACE_ID,\n\t\tentityName: builder.__enumHandle.enumName\n\t} : void 0;\n\treturn {\n\t\ttype: builder.__type,\n\t\tnullable: builder.__nullable,\n\t\tmany: builder.__many,\n\t\t...ifDefined(\"valueSet\", valueSet)\n\t};\n}\nfunction buildFields(fields) {\n\tconst builtFields = {};\n\tfor (const [fieldName, fieldBuilder] of Object.entries(fields)) builtFields[fieldName] = buildContractField(fieldBuilder);\n\treturn builtFields;\n}\nfunction toOneRelationNullable(modelName, relationName, relationBuilder, on, fields) {\n\tconst location = `Relation \"${modelName}.${relationName}\"`;\n\tconst ownsForeignKey = relationBuilder.__cardinality !== \"1:1\";\n\tconst localFields = ownsForeignKey ? on.localFields.map((fieldName) => {\n\t\tconst localField = fields[fieldName];\n\t\tif (localField === void 0) throw contractError(\"CONTRACT.RELATION_INVALID\", `${location} joins on local field \"${fieldName}\", which model \"${modelName}\" does not declare`, { meta: {\n\t\t\tmodelName,\n\t\t\trelationName,\n\t\t\tfieldName,\n\t\t\treason: \"local-field-unknown\"\n\t\t} });\n\t\treturn localField;\n\t}) : [];\n\tconst { nullable, contradiction } = resolveToOneRelationNullable({\n\t\tdeclaredNullable: relationBuilder.__nullable,\n\t\tlocalFieldNullability: localFields.map((localField) => localField.__nullable === true),\n\t\townsReference: ownsForeignKey\n\t});\n\tif (contradiction !== void 0) throw contractError(\"CONTRACT.RELATION_INVALID\", !ownsForeignKey ? `${location} is required but does not own the foreign key, so nothing in storage guarantees the related document exists` : contradiction === \"declared-optional\" ? `${location} is optional but every local field it joins on is required` : `${location} is required but a local field it joins on is nullable`, { meta: {\n\t\tmodelName,\n\t\trelationName,\n\t\treason: \"to-one-nullability-mismatch\"\n\t} });\n\treturn nullable;\n}\nfunction buildRelation(modelName, relationName, relationBuilder, fields) {\n\tconst to = crossRef(relationBuilder.__to, UNBOUND_NAMESPACE_ID);\n\tconst on = relationBuilder.__on;\n\tif (on === void 0) return {\n\t\tto,\n\t\tcardinality: relationBuilder.__cardinality\n\t};\n\tif (relationBuilder.__cardinality === \"1:N\") return {\n\t\tto,\n\t\tcardinality: \"1:N\",\n\t\ton\n\t};\n\treturn {\n\t\tto,\n\t\tcardinality: relationBuilder.__cardinality,\n\t\tnullable: toOneRelationNullable(modelName, relationName, relationBuilder, on, fields),\n\t\ton\n\t};\n}\nfunction buildRelations(modelName, relations, fields) {\n\tconst builtRelations = {};\n\tfor (const [relationName, relationBuilder] of Object.entries(relations)) builtRelations[relationName] = buildRelation(modelName, relationName, relationBuilder, fields);\n\treturn builtRelations;\n}\nfunction buildValueObjects(valueObjects) {\n\tconst builtValueObjects = {};\n\tfor (const valueObjectBuilder of Object.values(valueObjects ?? {})) {\n\t\tif (valueObjectBuilder.__name in builtValueObjects) throw contractError(\"CONTRACT.NAME_DUPLICATE\", `Duplicate value object name \"${valueObjectBuilder.__name}\" in defineContract().`, { meta: {\n\t\t\tkind: \"valueObject\",\n\t\t\tname: valueObjectBuilder.__name\n\t\t} });\n\t\tbuiltValueObjects[valueObjectBuilder.__name] = { fields: buildFields(valueObjectBuilder.__fields) };\n\t}\n\treturn builtValueObjects;\n}\nfunction buildModels(models) {\n\tconst builtModels = {};\n\tfor (const modelBuilder of Object.values(models ?? {})) {\n\t\tif (modelBuilder.__name in builtModels) throw contractError(\"CONTRACT.NAME_DUPLICATE\", `Duplicate model name \"${modelBuilder.__name}\" in defineContract().`, { meta: {\n\t\t\tkind: \"model\",\n\t\t\tname: modelBuilder.__name\n\t\t} });\n\t\tassertUniqueDiscriminatorValues(modelBuilder);\n\t\tconst storage = {\n\t\t\t...modelBuilder.__collection ? { collection: modelBuilder.__collection } : {},\n\t\t\t...modelBuilder.__storageRelations ? { relations: modelBuilder.__storageRelations } : {}\n\t\t};\n\t\tbuiltModels[modelBuilder.__name] = {\n\t\t\tfields: buildFields(modelBuilder.__fields),\n\t\t\trelations: buildRelations(modelBuilder.__name, modelBuilder.__relations, modelBuilder.__fields),\n\t\t\tstorage,\n\t\t\t...modelBuilder.__owner ? { owner: modelBuilder.__owner } : {},\n\t\t\t...modelBuilder.__base ? { base: crossRef(modelBuilder.__base, UNBOUND_NAMESPACE_ID) } : {},\n\t\t\t...modelBuilder.__discriminator ? { discriminator: modelBuilder.__discriminator } : {},\n\t\t\t...modelBuilder.__variants ? { variants: Object.fromEntries(Object.entries(modelBuilder.__variants).map(([variantName, { value }]) => [value, crossRef(variantName, UNBOUND_NAMESPACE_ID)])) } : {}\n\t\t};\n\t}\n\treturn builtModels;\n}\nfunction assertUniqueDiscriminatorValues(modelBuilder) {\n\tconst variantNamesByValue = /* @__PURE__ */ new Map();\n\tfor (const [variantName, { value }] of Object.entries(modelBuilder.__variants ?? {})) {\n\t\tconst existingVariant = variantNamesByValue.get(value);\n\t\tif (existingVariant !== void 0) throw contractError(\"CONTRACT.ARGUMENT_INVALID\", `Discriminator value \"${value}\" is used by both \"${existingVariant}\" and \"${variantName}\" on base model \"${modelBuilder.__name}\".`, { meta: {\n\t\t\tmodelName: modelBuilder.__name,\n\t\t\tvalue,\n\t\t\tvariants: [existingVariant, variantName],\n\t\t\treason: \"duplicate-discriminator-value\"\n\t\t} });\n\t\tvariantNamesByValue.set(value, variantName);\n\t}\n}\nfunction deriveRoots(models) {\n\tconst roots = {};\n\tfor (const modelBuilder of Object.values(models ?? {})) {\n\t\tif (!modelBuilder.__collection || modelBuilder.__owner || modelBuilder.__base) continue;\n\t\troots[modelBuilder.__collection] = crossRef(modelBuilder.__name, UNBOUND_NAMESPACE_ID);\n\t}\n\treturn roots;\n}\nfunction normalizeRoots(roots) {\n\tconst normalizedRoots = {};\n\tfor (const [rootName, rootValue] of Object.entries(roots ?? {})) normalizedRoots[rootName] = crossRef(resolveModelName(rootValue), UNBOUND_NAMESPACE_ID);\n\treturn normalizedRoots;\n}\nfunction toStorageIndex(index) {\n\tconst input = { keys: Object.entries(index.fields).map(([field, direction]) => ({\n\t\tfield,\n\t\tdirection\n\t})) };\n\tif (index.options) {\n\t\tfor (const [key, value] of Object.entries(index.options)) if (value !== void 0) input[key] = value;\n\t}\n\treturn new MongoIndex(blindCast(input));\n}\nfunction toStorageCollectionOptions(opts) {\n\treturn new MongoCollectionOptions({\n\t\t...opts.capped ? { capped: {\n\t\t\tsize: opts.size ?? 0,\n\t\t\t...opts.max != null && { max: opts.max }\n\t\t} } : {},\n\t\t...ifDefined(\"storageEngine\", opts.storageEngine),\n\t\t...ifDefined(\"indexOptionDefaults\", opts.indexOptionDefaults),\n\t\t...ifDefined(\"collation\", opts.collation),\n\t\t...ifDefined(\"timeseries\", opts.timeseries),\n\t\t...opts.clusteredIndex !== void 0 && { clusteredIndex: opts.clusteredIndex.name !== void 0 ? { name: opts.clusteredIndex.name } : {} },\n\t\t...ifDefined(\"expireAfterSeconds\", opts.expireAfterSeconds),\n\t\t...ifDefined(\"changeStreamPreAndPostImages\", opts.changeStreamPreAndPostImages)\n\t});\n}\nfunction findMissingIndexField(index, modelFields) {\n\tfor (const fieldName of Object.keys(index.fields)) {\n\t\tconst wildcardMatch = fieldName.match(/^(.+)\\.\\$\\*\\*$/);\n\t\tconst lookupName = wildcardMatch ? wildcardMatch[1] : fieldName;\n\t\tif (lookupName === void 0 || lookupName.length === 0) continue;\n\t\tif (lookupName === \"$**\") continue;\n\t\tif (!Object.hasOwn(modelFields, lookupName)) return lookupName;\n\t}\n}\nfunction resolveVariantScope(modelBuilder, modelsByName) {\n\tif (!modelBuilder.__base) return void 0;\n\tconst baseBuilder = modelsByName[modelBuilder.__base];\n\tif (!baseBuilder) return void 0;\n\tconst discriminatorField = baseBuilder.__discriminator?.field;\n\tconst variantValue = baseBuilder.__variants?.[modelBuilder.__name]?.value;\n\tif (!discriminatorField || variantValue === void 0) return void 0;\n\treturn {\n\t\tdiscriminatorField,\n\t\tdiscriminatorValue: variantValue\n\t};\n}\nfunction scopeVariantIndex(storageIndex, scope, variantName, authoredIndex) {\n\tconst result = applyPolymorphicScopeToMongoIndex(storageIndex, scope);\n\tif (result.kind === \"conflict\") {\n\t\tconst indexLabel = authoredIndex ? canonicalStringify(authoredIndex) : \"<unknown>\";\n\t\tthrow contractError(\"CONTRACT.INDEX_INVALID\", `Variant model \"${variantName}\" index ${indexLabel} conflicts with discriminator scope: ${result.reason}`, { meta: {\n\t\t\tvariantName,\n\t\t\tindexLabel,\n\t\t\treason: result.reason\n\t\t} });\n\t}\n\treturn result.index;\n}\nfunction buildCollections(models) {\n\tconst intermediate = {};\n\tconst declaredIndexOwners = /* @__PURE__ */ new Map();\n\tconst modelMap = models ?? {};\n\tconst modelsByName = {};\n\tfor (const builder of Object.values(modelMap)) modelsByName[builder.__name] = builder;\n\tfor (const modelBuilder of Object.values(modelMap)) {\n\t\tif (!modelBuilder.__collection) {\n\t\t\tif (modelBuilder.__indexes && modelBuilder.__indexes.length > 0) throw contractError(\"CONTRACT.COLLECTION_INVALID\", `Model \"${modelBuilder.__name}\" defines indexes but has no collection to attach them to.`, { meta: {\n\t\t\t\tmodelName: modelBuilder.__name,\n\t\t\t\treason: \"indexes-without-collection\"\n\t\t\t} });\n\t\t\tif (modelBuilder.__collectionOptions) throw contractError(\"CONTRACT.COLLECTION_INVALID\", `Model \"${modelBuilder.__name}\" defines collectionOptions but has no collection to attach them to.`, { meta: {\n\t\t\t\tmodelName: modelBuilder.__name,\n\t\t\t\treason: \"collectionOptions-without-collection\"\n\t\t\t} });\n\t\t\tif (modelBuilder.__controlPolicy) throw contractError(\"CONTRACT.COLLECTION_INVALID\", `Model \"${modelBuilder.__name}\" defines controlPolicy but has no collection to attach it to.`, { meta: {\n\t\t\t\tmodelName: modelBuilder.__name,\n\t\t\t\treason: \"controlPolicy-without-collection\"\n\t\t\t} });\n\t\t\tcontinue;\n\t\t}\n\t\tconst existingCollection = intermediate[modelBuilder.__collection] ?? {};\n\t\tconst existingIndexes = existingCollection.indexes ?? [];\n\t\tif (existingCollection.options && modelBuilder.__collectionOptions) throw contractError(\"CONTRACT.COLLECTION_INVALID\", `Collection \"${modelBuilder.__collection}\" has collectionOptions declared by multiple models. Author collectionOptions on a single model per collection.`, { meta: {\n\t\t\tmodelName: modelBuilder.__name,\n\t\t\tcollection: modelBuilder.__collection,\n\t\t\treason: \"collectionOptions-declared-by-multiple-models\"\n\t\t} });\n\t\tif (existingCollection.control !== void 0 && modelBuilder.__controlPolicy) throw contractError(\"CONTRACT.COLLECTION_INVALID\", `Collection \"${modelBuilder.__collection}\" has controlPolicy declared by multiple models. Author controlPolicy on a single model per collection.`, { meta: {\n\t\t\tmodelName: modelBuilder.__name,\n\t\t\tcollection: modelBuilder.__collection,\n\t\t\treason: \"controlPolicy-declared-by-multiple-models\"\n\t\t} });\n\t\tfor (const collectionIndex of modelBuilder.__indexes ?? []) {\n\t\t\tconst missingField = findMissingIndexField(collectionIndex, modelBuilder.__fields);\n\t\t\tif (missingField !== void 0) {\n\t\t\t\tconst indexSignature = canonicalStringify(collectionIndex);\n\t\t\t\tthrow contractError(\"CONTRACT.FIELD_UNKNOWN\", `Model \"${modelBuilder.__name}\" index ${indexSignature} references unknown field \"${missingField}\".`, { meta: {\n\t\t\t\t\tmodelName: modelBuilder.__name,\n\t\t\t\t\tfieldName: missingField,\n\t\t\t\t\tindexSignature\n\t\t\t\t} });\n\t\t\t}\n\t\t}\n\t\tconst polymorphicScope = resolveVariantScope(modelBuilder, modelsByName);\n\t\tconst rawStorageIndexes = (modelBuilder.__indexes ?? []).map(toStorageIndex);\n\t\tconst storageIndexes = polymorphicScope ? rawStorageIndexes.map((idx, i) => scopeVariantIndex(idx, polymorphicScope, modelBuilder.__name, modelBuilder.__indexes?.[i])) : rawStorageIndexes;\n\t\tfor (let i = 0; i < storageIndexes.length; i++) {\n\t\t\tconst storageIndex = storageIndexes[i];\n\t\t\tif (storageIndex === void 0) continue;\n\t\t\tconst indexSignature = stableStringify(storageIndex);\n\t\t\tconst collectionIndexKey = `${modelBuilder.__collection}:${indexSignature}`;\n\t\t\tconst firstOwner = declaredIndexOwners.get(collectionIndexKey);\n\t\t\tif (firstOwner) {\n\t\t\t\tconst authoredIndex = modelBuilder.__indexes?.[i];\n\t\t\t\tconst reportedSignature = authoredIndex ? canonicalStringify(authoredIndex) : indexSignature;\n\t\t\t\tthrow contractError(\"CONTRACT.NAME_DUPLICATE\", `Collection \"${modelBuilder.__collection}\" defines duplicate index ${reportedSignature}. First declared on model \"${firstOwner}\" and duplicated on model \"${modelBuilder.__name}\".`, { meta: {\n\t\t\t\t\tkind: \"index\",\n\t\t\t\t\tname: reportedSignature,\n\t\t\t\t\tcollection: modelBuilder.__collection,\n\t\t\t\t\tfirst: firstOwner,\n\t\t\t\t\tsecond: modelBuilder.__name\n\t\t\t\t} });\n\t\t\t}\n\t\t\tdeclaredIndexOwners.set(collectionIndexKey, modelBuilder.__name);\n\t\t}\n\t\tconst storageOptions = modelBuilder.__collectionOptions ? toStorageCollectionOptions(modelBuilder.__collectionOptions) : void 0;\n\t\tconst controlPatch = modelBuilder.__controlPolicy !== void 0 ? { control: modelBuilder.__controlPolicy } : {};\n\t\tintermediate[modelBuilder.__collection] = storageIndexes.length > 0 ? {\n\t\t\t...existingCollection,\n\t\t\tindexes: [...existingIndexes, ...storageIndexes],\n\t\t\t...storageOptions ? { options: storageOptions } : {},\n\t\t\t...controlPatch\n\t\t} : storageOptions ? {\n\t\t\t...existingCollection,\n\t\t\toptions: storageOptions,\n\t\t\t...controlPatch\n\t\t} : Object.keys(controlPatch).length > 0 ? {\n\t\t\t...existingCollection,\n\t\t\t...controlPatch\n\t\t} : existingCollection;\n\t}\n\treturn intermediate;\n}\nfunction executionDefaultError(modelName, fieldName, reason, message) {\n\treturn contractError(\"CONTRACT.DEFAULT_INVALID\", `Field \"${modelName}.${fieldName}\" ${message}`, { meta: {\n\t\tmodelName,\n\t\tfieldName,\n\t\treason\n\t} });\n}\nfunction hasExecutionDefaults(fieldBuilder) {\n\tconst phases = fieldBuilder.__executionDefaults;\n\tconst calls = fieldBuilder.__generatorCalls;\n\treturn phases?.onCreate !== void 0 || phases?.onUpdate !== void 0 || calls?.onCreate !== void 0 || calls?.onUpdate !== void 0;\n}\n/**\n* The phases a field generates: a preset's, with the generators its `.onCreate(...)` and `.onUpdate(...)` calls resolve to for its codec.\n*/\nfunction executionDefaultsOf(fieldBuilder, modelName, fieldName, generatorFunctions) {\n\tconst calls = fieldBuilder.__generatorCalls;\n\tif (calls === void 0) return fieldBuilder.__executionDefaults;\n\tconst type = fieldBuilder.__type;\n\tconst codecId = type.kind === \"scalar\" ? type.codecId : void 0;\n\tconst phases = { ...fieldBuilder.__executionDefaults };\n\tfor (const phase of [\"onCreate\", \"onUpdate\"]) {\n\t\tconst call = calls[phase];\n\t\tif (call === void 0) continue;\n\t\tconst resolution = type.kind === \"scalar\" ? generatorFunctions.resolve(call, {\n\t\t\tcodecId: type.codecId,\n\t\t\ttypeParams: type.typeParams\n\t\t}) : void 0;\n\t\tif (resolution?.ok === true) {\n\t\t\tphases[phase] = resolution.generator;\n\t\t\tcontinue;\n\t\t}\n\t\tconst meta = {\n\t\t\tmodelName,\n\t\t\tfieldName,\n\t\t\tcodecId,\n\t\t\tfunction: call.name\n\t\t};\n\t\tif (resolution?.reason === \"unknown-function\") throw contractError(\"CONTRACT.DEFAULT_INVALID\", `Field \"${modelName}.${fieldName}\": no pack in the contract declares the generator function \"${call.name}\".`, { meta: {\n\t\t\t...meta,\n\t\t\treason: \"generator-unknown\"\n\t\t} });\n\t\tthrow contractError(\"CONTRACT.DEFAULT_INVALID\", resolution?.reason === \"refused\" ? `Field \"${modelName}.${fieldName}\": ${resolution.message}` : `Field \"${modelName}.${fieldName}\": ${call.name}() does not apply to ${codecId === void 0 ? \"the field's type\" : `codec \"${codecId}\"`}.`, { meta: {\n\t\t\t...meta,\n\t\t\treason: \"generator-not-applicable\"\n\t\t} });\n\t}\n\treturn phases;\n}\nfunction assertNoValueObjectExecutionDefaults(valueObjects) {\n\tfor (const valueObjectBuilder of Object.values(valueObjects ?? {})) for (const [fieldName, fieldBuilder] of Object.entries(valueObjectBuilder.__fields)) if (hasExecutionDefaults(fieldBuilder)) throw executionDefaultError(valueObjectBuilder.__name, fieldName, \"executionDefaults-on-value-object\", \"has executionDefaults, but it belongs to a value object. Generated values are only supported on model fields.\");\n}\nfunction buildExecutionDefaults(models, generatorFunctions) {\n\tconst modelBuilders = Object.values(models ?? {});\n\tconst collectionByModelName = new Map(modelBuilders.map((modelBuilder) => [modelBuilder.__name, modelBuilder.__collection]));\n\tconst byRef = /* @__PURE__ */ new Map();\n\tconst defaults = [];\n\tfor (const modelBuilder of modelBuilders) for (const [fieldName, fieldBuilder] of Object.entries(modelBuilder.__fields)) {\n\t\tif (!hasExecutionDefaults(fieldBuilder)) continue;\n\t\tconst modelName = modelBuilder.__name;\n\t\tconst phases = executionDefaultsOf(fieldBuilder, modelName, fieldName, generatorFunctions);\n\t\tif (phases === void 0) continue;\n\t\tif (fieldBuilder.__nullable) throw executionDefaultError(modelName, fieldName, \"nullable-with-executionDefaults\", \"is filled on write by a preset such as temporal.createdAt(), so it cannot be optional; remove .optional().\");\n\t\tif (fieldBuilder.__many) throw executionDefaultError(modelName, fieldName, \"many-with-executionDefaults\", \"is filled on write by a preset such as temporal.createdAt(), so it cannot be a list; remove .many().\");\n\t\tif (modelBuilder.__base !== void 0) {\n\t\t\tconst collection = modelBuilder.__collection ?? collectionByModelName.get(modelBuilder.__base);\n\t\t\tthrow executionDefaultError(modelName, fieldName, \"executionDefaults-on-variant\", `has executionDefaults, but \"${modelName}\" is a variant of \"${modelBuilder.__base}\". Execution defaults apply to every document in collection \"${collection}\", so declare them on the base model.`);\n\t\t}\n\t\tconst entry = modelBuilder.__collection;\n\t\tif (entry === void 0) throw executionDefaultError(modelName, fieldName, \"executionDefaults-without-collection\", \"has executionDefaults, but its model has no collection. Generated values are only supported on fields of a model stored in a collection.\");\n\t\tconst refKey = JSON.stringify([entry, fieldName]);\n\t\tconst phasesKey = canonicalStringify(phases);\n\t\tconst existing = byRef.get(refKey);\n\t\tif (existing !== void 0) {\n\t\t\tif (existing.phasesKey !== phasesKey) throw executionDefaultError(modelName, fieldName, \"executionDefaults-conflict\", `has different executionDefaults than \"${existing.modelName}.${fieldName}\", which is stored in the same collection \"${entry}\". Use the same executionDefaults on both models.`);\n\t\t\tcontinue;\n\t\t}\n\t\tbyRef.set(refKey, {\n\t\t\tmodelName,\n\t\t\tphasesKey\n\t\t});\n\t\tdefaults.push({\n\t\t\tref: {\n\t\t\t\tnamespace: UNBOUND_NAMESPACE_ID,\n\t\t\t\tentry,\n\t\t\t\tfield: fieldName\n\t\t\t},\n\t\t\t...phases\n\t\t});\n\t}\n\treturn defaults;\n}\nfunction buildContractFromDefinition(definition) {\n\tvalidateTargetPackRef(definition.family, definition.target);\n\tvalidateExtensionPackRefs(definition.target, definition.extensions);\n\tconst builtModels = buildModels(definition.models);\n\tconst builtValueObjects = buildValueObjects(definition.valueObjects);\n\tconst roots = definition.roots ? normalizeRoots(definition.roots) : deriveRoots(definition.models);\n\tconst capabilities = {};\n\tconst collections = buildCollections(definition.models);\n\tassertNoValueObjectExecutionDefaults(definition.valueObjects);\n\tconst execution = buildExecutionSection({\n\t\ttarget: definition.target.targetId,\n\t\ttargetFamily: definition.family.familyId,\n\t\tdefaults: buildExecutionDefaults(definition.models, assembleGeneratorFunctions([\n\t\t\tdefinition.family,\n\t\t\tdefinition.target,\n\t\t\t...Object.values(definition.extensions ?? {})\n\t\t]))\n\t});\n\tconst components = [\n\t\tdefinition.family,\n\t\tdefinition.target,\n\t\t...Object.values(definition.extensions ?? {})\n\t];\n\tconst codecLookup = extractCodecLookup(components);\n\tconst lookups = {\n\t\tcodecLookup,\n\t\tdataTypeLookup: assembleDataTypes(components).lookup\n\t};\n\tassertMongoFieldTypeParams({ [UNBOUND_NAMESPACE_ID]: {\n\t\tmodels: builtModels,\n\t\tvalueObjects: builtValueObjects\n\t} }, lookups);\n\tconst builtEnums = {};\n\tfor (const [enumName, handle] of Object.entries(definition.enums ?? {})) builtEnums[enumName] = {\n\t\tcodecId: handle.codecId,\n\t\tmembers: encodeEnumTypeMembers(handle, codecLookup, \"the field\")\n\t};\n\tconst storageValueSets = mongoValueSetsOf(builtEnums);\n\tfor (const [enumName, handle] of Object.entries(definition.enums ?? {})) if (enumName !== handle.enumName) throw contractError(\"CONTRACT.ENUM_INVALID\", `enum declaration key \"${enumName}\" must match enumType name \"${handle.enumName}\". Aliases are not supported.`, { meta: {\n\t\tenumName: handle.enumName,\n\t\tdeclaredKey: enumName,\n\t\treason: \"declaration-key-mismatch\"\n\t} });\n\tconst hasEnums = Object.keys(builtEnums).length > 0;\n\tfor (const [modelName, modelBuilder] of Object.entries(definition.models ?? {})) for (const [fieldName, fieldBuilder] of Object.entries(modelBuilder.__fields)) {\n\t\tconst handle = fieldBuilder.__enumHandle;\n\t\tif (handle && !(handle.enumName in builtEnums)) throw contractError(\"CONTRACT.ENUM_UNKNOWN\", `Model \"${modelName}\" field \"${fieldName}\" references enum \"${handle.enumName}\" which is not declared in defineContract({ enums: { ... } }).`, { meta: {\n\t\t\tmodelName,\n\t\t\tfieldName,\n\t\t\tenumName: handle.enumName\n\t\t} });\n\t}\n\tconst controlPolicies = {\n\t\tcollections: Object.fromEntries(Object.entries(collections).map(([name, collection]) => [name, collection.control])),\n\t\tdefaultControlPolicy: definition.defaultControlPolicy\n\t};\n\tassertCollectionValidatorSources({\n\t\tmodels: builtModels,\n\t\tvalueObjects: builtValueObjects,\n\t\tenums: builtEnums,\n\t\tlookups,\n\t\tcontrolPolicies\n\t});\n\tconst validators = deriveCollectionValidators({\n\t\tmodels: builtModels,\n\t\tlookups,\n\t\tvalueObjects: builtValueObjects,\n\t\tvalueSets: storageValueSets,\n\t\tcontrolPolicies\n\t});\n\tconst storage = buildMongoStorage({\n\t\tcollections: Object.fromEntries(Object.entries(collections).map(([name, collection]) => [name, {\n\t\t\t...collection,\n\t\t\t...ifDefined(\"validator\", validators[name])\n\t\t}])),\n\t\tvalueSets: storageValueSets\n\t});\n\treturn blindCast({\n\t\ttarget: definition.target.targetId,\n\t\ttargetFamily: definition.family.familyId,\n\t\t...ifDefined(\"defaultControlPolicy\", definition.defaultControlPolicy),\n\t\troots,\n\t\tdomain: { namespaces: { [UNBOUND_NAMESPACE_ID]: {\n\t\t\tmodels: builtModels,\n\t\t\t...Object.keys(builtValueObjects).length > 0 ? { valueObjects: builtValueObjects } : {},\n\t\t\t...hasEnums ? { enum: builtEnums } : {}\n\t\t} } },\n\t\tstorage,\n\t\tcapabilities,\n\t\textensions: definition.extensions ?? {},\n\t\tprofileHash: computeProfileHash({\n\t\t\ttarget: definition.target.targetId,\n\t\t\ttargetFamily: definition.family.familyId,\n\t\t\tcapabilities\n\t\t}),\n\t\tmeta: {},\n\t\t...ifDefined(\"execution\", execution)\n\t});\n}\n/** Implementation. */\nfunction buildBoundContract(family, target, definition, factory) {\n\tconst full = {\n\t\t...definition,\n\t\tfamily,\n\t\ttarget\n\t};\n\tif (factory !== void 0) {\n\t\tconst built = factory(composeMongoAuthoringHelpers(family, target, definition.extensions));\n\t\treturn buildContractFromDefinition({\n\t\t\t...full,\n\t\t\t...ifDefined(\"models\", built.models),\n\t\t\t...ifDefined(\"valueObjects\", built.valueObjects),\n\t\t\t...ifDefined(\"roots\", built.roots)\n\t\t});\n\t}\n\treturn buildContractFromDefinition(full);\n}\nfunction defineContract(definition, factory) {\n\tif (!isContractScaffold(definition)) throw contractError(\"CONTRACT.ARGUMENT_INVALID\", \"defineContract expects a contract definition object. Define your contract with defineContract({ family, target, models, ... }).\");\n\tif (factory !== void 0) return buildBoundContract(definition.family, definition.target, definition, factory);\n\treturn buildBoundContract(definition.family, definition.target, definition);\n}\n//#endregion\nexport { bindEnumType, buildBoundContract, defineContract, enumType, field, index, isEnumTypeHandle, member, model, rel, valueObject };\n\n//# sourceMappingURL=contract-builder.mjs.map"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { E as MongoIndexAuthoringInput, F as MongoIndexOptionsInput, J as MongoTypeMaps, O as MongoIndexFields, W as MongoStorageShape, v as MongoCollection, w as MongoContractWithTypeMaps, x as MongoCollectionOptionsAuthoringInput } from "./mongo-value-set-BngSUlOh-BhDGXjM_.mjs";
2
- import "./index-BfdyDSte.mjs";
2
+ import "./index-DDAe-FtT.mjs";
3
3
  import { r as BsonValue, t as BsonInputValue } from "./index-9DDQlC5U.mjs";
4
4
  import { UNBOUND_NAMESPACE_ID } from "@prisma/orm-framework/components/ir";
5
- import { ContractExecutionSection, ContractFieldType, ControlPolicy, CrossReference, ExecutionHashBase, ExecutionMutationDefault, ExecutionMutationDefaultPhases, FieldTypesFromDomain, JsonValue, ProfileHashBase, StorageHashBase } from "@prisma/orm-framework/contract/types";
5
+ import { ContractExecutionSection, ContractFieldType, ControlPolicy, CrossReference, ExecutionHashBase, ExecutionMutationDefault, ExecutionMutationDefaultPhases, ExecutionMutationDefaultValue, FieldTypesFromDomain, JsonValue, ProfileHashBase, StorageHashBase } from "@prisma/orm-framework/contract/types";
6
6
  import { BoundEnumType, CodecTypeMap, EntityHelpersFromNamespace, EnumMember, EnumTypeHandle, ExtractAuthoringNamespaceFromPack, ExtractParameterizedOutputTypesFromPack, MergeExtensionAuthoringNamespaces, ResolveTemplateValue, TupleFromArgumentDescriptors, bindEnumType, enumType as enumType$1, isEnumTypeHandle, member } from "@prisma/orm-framework/contract-authoring";
7
7
  import { AuthoringArgumentDescriptor, AuthoringFieldPresetDescriptor } from "@prisma/orm-framework/components/authoring";
8
- import { ExtensionPackRef, FamilyPackRef, TargetPackRef } from "@prisma/orm-framework/components/components";
8
+ import { ExtensionPackRef, ExtensionPackValues, FamilyPackRef, GeneratorFunctionCall, GeneratorHelpersOf, GeneratorPhase, TargetPackRef } from "@prisma/orm-framework/components/components";
9
9
  //#region ../../../2-mongo-family/2-authoring/contract-ts/dist/contract-builder.d.mts
10
10
  //#region src/contract-builder.d.ts
11
11
  type VariantSpec = {
@@ -106,6 +106,12 @@ interface FieldBuilder<Type extends ContractFieldType = ContractFieldType, Nulla
106
106
  readonly __many: Many;
107
107
  readonly __enumHandle: Handle;
108
108
  readonly __executionDefaults?: ExecutionDefaults;
109
+ /** The generator function calls `.onCreate(...)` and `.onUpdate(...)` give, resolved by the field's codec when the contract is built. */
110
+ readonly __generatorCalls?: FieldGeneratorCalls;
111
+ /** Generates the field's value in the client when a document is created without one, with a call from `gen`, such as `gen.now()`. */
112
+ onCreate(call: GeneratorFunctionCall): FieldBuilder<Type, Nullable, Many, Handle, WithGeneratedPhase<ExecutionDefaults, 'onCreate'>>;
113
+ /** Generates the field's value in the client every time a document is updated, with a call from `gen`, such as `gen.now()`. */
114
+ onUpdate(call: GeneratorFunctionCall): FieldBuilder<Type, Nullable, Many, Handle, WithGeneratedPhase<ExecutionDefaults, 'onUpdate'>>;
109
115
  readonly optional: FilledOnWrite<ExecutionDefaults> extends true ? (this: 'A preset fills this field on write, so it cannot be optional') => never : () => FieldBuilder<Type, true, Many, Handle, ExecutionDefaults>;
110
116
  readonly many: FilledOnWrite<ExecutionDefaults> extends true ? (this: 'A preset fills this field on write, so it cannot be a list') => never : {
111
117
  (): FieldBuilder<Type, Nullable, {
@@ -123,6 +129,11 @@ interface FieldBuilder<Type extends ContractFieldType = ContractFieldType, Nulla
123
129
  }, Handle, ExecutionDefaults>;
124
130
  };
125
131
  }
132
+ type FieldGeneratorCalls = {
133
+ readonly onCreate?: GeneratorFunctionCall;
134
+ readonly onUpdate?: GeneratorFunctionCall;
135
+ };
136
+ type WithGeneratedPhase<ExecutionDefaults extends ExecutionMutationDefaultPhases | undefined, Phase extends GeneratorPhase> = (ExecutionDefaults extends undefined ? unknown : ExecutionDefaults) & { readonly [Key in Phase]: ExecutionMutationDefaultValue; };
126
137
  /**
127
138
  * Whether a preset such as `temporal.createdAt()` fills the field on write. Distributes over a union, so the widest `FieldBuilder` constraint keeps both signatures and every field builder satisfies it.
128
139
  */
@@ -402,6 +413,7 @@ type ContractAuthoringHelpers<Family extends FamilyPackRef<string> = FamilyPackR
402
413
  readonly model: typeof model;
403
414
  readonly rel: typeof rel;
404
415
  readonly valueObject: typeof valueObject;
416
+ readonly gen: GeneratorHelpersOf<Family | Target | ExtensionPackValues<Extensions>>;
405
417
  };
406
418
  type ContractScaffold<Family extends FamilyPackRef<string>, Target extends TargetPackRef<string, string>, Extensions extends Record<string, ExtensionPackRef<string, string>> | undefined = undefined, Roots extends Record<string, ModelNameInput> | undefined = undefined> = {
407
419
  readonly family: Family;
@@ -594,5 +606,5 @@ declare function defineContract<const Definition extends ContractScaffold<Family
594
606
  readonly roots?: Record<string, ModelNameInput> | undefined;
595
607
  }>(definition: Definition, factory: (helpers: ContractAuthoringHelpers<Definition['family'], Definition['target'], ScaffoldExtensions<Definition>>) => Built): MongoContractResult<Definition & Built>;
596
608
  //#endregion
597
- export { model as C, member as S, valueObject as T, defineContract as _, ContractScaffold as a, index as b, ExtractCodecTypesFromPack as c, ModelBuilder as d, MongoContractResult as f, buildBoundContract as g, bindEnumType as h, ContractFactory as i, FieldBuilder as l, ValueObjectBuilder as m, CodecTypeMap as n, EnumMember as o, RelationBuilder as p, ContractDefinition as r, EnumTypeHandle as s, BoundEnumType as t, FieldReference as u, enumType$1 as v, rel as w, isEnumTypeHandle as x, field as y };
598
- //# sourceMappingURL=contract-builder-BoGTe-yx.d.mts.map
609
+ export { member as C, valueObject as E, isEnumTypeHandle as S, rel as T, buildBoundContract as _, ContractFactory as a, field as b, EnumTypeHandle as c, FieldReference as d, ModelBuilder as f, bindEnumType as g, ValueObjectBuilder as h, ContractDefinition as i, ExtractCodecTypesFromPack as l, RelationBuilder as m, CodecTypeMap as n, ContractScaffold as o, MongoContractResult as p, ContractAuthoringHelpers as r, EnumMember as s, BoundEnumType as t, FieldBuilder as u, defineContract as v, model as w, index as x, enumType$1 as y };
610
+ //# sourceMappingURL=contract-builder-BzLDSs26.d.mts.map