@prisma/orm-family-mongo 8.0.0-rc.18-dev.31 → 8.0.0-rc.18-dev.33

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 (115) hide show
  1. package/dist/{config-types-x4rKdA0F.mjs → config-types-DYTCUpAs.mjs} +2 -2
  2. package/dist/{config-types-x4rKdA0F.mjs.map → config-types-DYTCUpAs.mjs.map} +1 -1
  3. package/dist/{contract-builder-BzLDSs26.d.mts → contract-builder-Cy9EOYGm.d.mts} +49 -32
  4. package/dist/contract-builder-Cy9EOYGm.d.mts.map +1 -0
  5. package/dist/{contract-builder-BWJ5A-93.mjs → contract-builder-gSPQkPqK.mjs} +60 -15
  6. package/dist/contract-builder-gSPQkPqK.mjs.map +1 -0
  7. package/dist/contract-prisma6__provider.mjs +14 -13
  8. package/dist/contract-prisma6__provider.mjs.map +1 -1
  9. package/dist/contract-psl.mjs +1 -1
  10. package/dist/contract-psl__provider.mjs +1 -1
  11. package/dist/contract-psl__provider.mjs.map +1 -1
  12. package/dist/contract-ts.d.mts +1 -1
  13. package/dist/contract-ts.mjs +2 -2
  14. package/dist/contract-ts__config-types.mjs +1 -1
  15. package/dist/contract-ts__contract-builder.d.mts +1 -1
  16. package/dist/contract-ts__contract-builder.mjs +1 -1
  17. package/dist/contract.d.mts +3 -3
  18. package/dist/contract.mjs +3 -3
  19. package/dist/contract__entity-kinds.d.mts +1 -1
  20. package/dist/contract__entity-kinds.mjs +1 -1
  21. package/dist/{control-CGkbLODn.mjs → control-DWKLQ_YG.mjs} +6 -6
  22. package/dist/{control-CGkbLODn.mjs.map → control-DWKLQ_YG.mjs.map} +1 -1
  23. package/dist/{control-BNVd28Dc.d.mts → control-Dpj_4bQa.d.mts} +5 -5
  24. package/dist/{control-BNVd28Dc.d.mts.map → control-Dpj_4bQa.d.mts.map} +1 -1
  25. package/dist/{control-BYMT27pb.d.mts → control-UaQnR7tX.d.mts} +3 -3
  26. package/dist/{control-BYMT27pb.d.mts.map → control-UaQnR7tX.d.mts.map} +1 -1
  27. package/dist/control-adapter-BdmFIhE6.d.mts +1 -0
  28. package/dist/{control-adapter-Bh_ZraGM-BCp7NZJJ.d.mts → control-adapter-Bh_ZraGM-DPlHAStH.d.mts} +4 -4
  29. package/dist/{control-adapter-Bh_ZraGM-BCp7NZJJ.d.mts.map → control-adapter-Bh_ZraGM-DPlHAStH.d.mts.map} +1 -1
  30. package/dist/{dist-BY0Y-yqv.mjs → dist-B8f-pfcT.mjs} +152 -42
  31. package/dist/dist-B8f-pfcT.mjs.map +1 -0
  32. package/dist/{dist-ClS8s9e5.mjs → dist-gmGbjhmk.mjs} +10 -6
  33. package/dist/dist-gmGbjhmk.mjs.map +1 -0
  34. package/dist/dist-xk_0xOR-.mjs.map +1 -1
  35. package/dist/emitter.mjs +1 -1
  36. package/dist/{entity-kinds-RooUvcN8-B1AF_ppw.mjs → entity-kinds-BQBtfVet-B-Px7NHp.mjs} +7 -2
  37. package/dist/entity-kinds-BQBtfVet-B-Px7NHp.mjs.map +1 -0
  38. package/dist/{exports-W3IiuyIf.mjs → exports-BHQVApAg.mjs} +5 -2
  39. package/dist/exports-BHQVApAg.mjs.map +1 -0
  40. package/dist/family.d.mts +9 -9
  41. package/dist/family.mjs +7 -7
  42. package/dist/family__control-adapter.d.mts +2 -2
  43. package/dist/family__control.d.mts +1 -1
  44. package/dist/family__control.mjs +2 -2
  45. package/dist/family__ir.d.mts +2 -2
  46. package/dist/family__ir.mjs +3 -3
  47. package/dist/family__migration.d.mts +1 -1
  48. package/dist/family__migration.mjs +1 -1
  49. package/dist/family__pack.mjs +1 -1
  50. package/dist/family__runtime.d.mts +2 -2
  51. package/dist/family__runtime.mjs +1 -1
  52. package/dist/family__schema-verify.d.mts +1 -1
  53. package/dist/family__schema-verify.mjs +1 -1
  54. package/dist/{field-accessor-CE4JbDIa-CHZgR4TO.d.mts → field-accessor-CmxCw9xP-C6jMngbK.d.mts} +19 -12
  55. package/dist/field-accessor-CmxCw9xP-C6jMngbK.d.mts.map +1 -0
  56. package/dist/{index-DDoen8Ct.d.mts → index-BhIiYIXu.d.mts} +7 -4
  57. package/dist/{index-DDoen8Ct.d.mts.map → index-BhIiYIXu.d.mts.map} +1 -1
  58. package/dist/{index-DDAe-FtT.d.mts → index-YY1SU_7o.d.mts} +36 -18
  59. package/dist/{index-DDAe-FtT.d.mts.map → index-YY1SU_7o.d.mts.map} +1 -1
  60. package/dist/{index-YJpDjbOW.d.mts → index-qpnB3mGZ.d.mts} +3 -3
  61. package/dist/{index-YJpDjbOW.d.mts.map → index-qpnB3mGZ.d.mts.map} +1 -1
  62. package/dist/{index-D5sQv1yD.d.mts → index-rANtsIZG.d.mts} +3 -3
  63. package/dist/{index-D5sQv1yD.d.mts.map → index-rANtsIZG.d.mts.map} +1 -1
  64. package/dist/{index-Dr9_nUnD.d.mts → index-ySOJP8ac.d.mts} +3 -3
  65. package/dist/{index-Dr9_nUnD.d.mts.map → index-ySOJP8ac.d.mts.map} +1 -1
  66. package/dist/{interpreter-BkAoaKOQ-DJm6_n9S.mjs → interpreter-DErigqlz-CEuWzlzD.mjs} +51 -18
  67. package/dist/interpreter-DErigqlz-CEuWzlzD.mjs.map +1 -0
  68. package/dist/{ir-DUiJXIsl.d.mts → ir-BLC0t6_x.d.mts} +4 -4
  69. package/dist/{ir-DUiJXIsl.d.mts.map → ir-BLC0t6_x.d.mts.map} +1 -1
  70. package/dist/{ir-eoe34oId.mjs → ir-DGm0HXbP.mjs} +2 -2
  71. package/dist/{ir-eoe34oId.mjs.map → ir-DGm0HXbP.mjs.map} +1 -1
  72. package/dist/lowering.d.mts +1 -1
  73. package/dist/{migration-DbyIJhbx.d.mts → migration-DEx-V0co.d.mts} +5 -5
  74. package/dist/{migration-DbyIJhbx.d.mts.map → migration-DEx-V0co.d.mts.map} +1 -1
  75. package/dist/{migration-tlRiqq83.mjs → migration-DnQ7_A_B.mjs} +2 -2
  76. package/dist/{migration-tlRiqq83.mjs.map → migration-DnQ7_A_B.mjs.map} +1 -1
  77. package/dist/{mongo-contract-serializer-BVsamWTo-DXH0WlvH.mjs → mongo-contract-serializer-Zx1rvil3-BywiKCpn.mjs} +5 -5
  78. package/dist/mongo-contract-serializer-Zx1rvil3-BywiKCpn.mjs.map +1 -0
  79. package/dist/{mongo-contract-view-AnejqfrQ-BWrqU5Wb.d.mts → mongo-contract-view-AnejqfrQ-Wj_ulq2L.d.mts} +3 -3
  80. package/dist/{mongo-contract-view-AnejqfrQ-BWrqU5Wb.d.mts.map → mongo-contract-view-AnejqfrQ-Wj_ulq2L.d.mts.map} +1 -1
  81. package/dist/{mongo-contract-view-BNFzgwnZ-CH1SAmzW.mjs → mongo-contract-view-D5yu2LrY-DCAZYJ4q.mjs} +4 -4
  82. package/dist/{mongo-contract-view-BNFzgwnZ-CH1SAmzW.mjs.map → mongo-contract-view-D5yu2LrY-DCAZYJ4q.mjs.map} +1 -1
  83. package/dist/{mongo-value-set-BngSUlOh-BhDGXjM_.d.mts → mongo-value-set-DEd7WLCT-B2Ar2GkJ.d.mts} +19 -3
  84. package/dist/mongo-value-set-DEd7WLCT-B2Ar2GkJ.d.mts.map +1 -0
  85. package/dist/orm.d.mts +12 -7
  86. package/dist/orm.d.mts.map +1 -1
  87. package/dist/orm.mjs +259 -49
  88. package/dist/orm.mjs.map +1 -1
  89. package/dist/query-ast.d.mts +2 -2
  90. package/dist/query-ast__control.d.mts +2 -2
  91. package/dist/query-builder.d.mts +2 -2
  92. package/dist/query-builder.mjs +1 -1
  93. package/dist/query-builder__contract-free.d.mts +3 -3
  94. package/dist/{runtime-CWqMkwXI.d.mts → runtime-yZA30qM2.d.mts} +2 -2
  95. package/dist/runtime-yZA30qM2.d.mts.map +1 -0
  96. package/dist/runtime.d.mts +2 -2
  97. package/dist/schema-ir.d.mts +1 -1
  98. package/dist/{schema-verify-DQMAlWkY.d.mts → schema-verify-CVOG6EZx.d.mts} +4 -4
  99. package/dist/{schema-verify-DQMAlWkY.d.mts.map → schema-verify-CVOG6EZx.d.mts.map} +1 -1
  100. package/dist/{verify-mongo-schema-CeQP5N4k-E-HOylv3.mjs → verify-mongo-schema-CeQP5N4k-CNOctppM.mjs} +2 -2
  101. package/dist/{verify-mongo-schema-CeQP5N4k-E-HOylv3.mjs.map → verify-mongo-schema-CeQP5N4k-CNOctppM.mjs.map} +1 -1
  102. package/dist/wire.d.mts +1 -1
  103. package/package.json +20 -20
  104. package/dist/contract-builder-BWJ5A-93.mjs.map +0 -1
  105. package/dist/contract-builder-BzLDSs26.d.mts.map +0 -1
  106. package/dist/control-adapter-qe7UlBnw.d.mts +0 -1
  107. package/dist/dist-BY0Y-yqv.mjs.map +0 -1
  108. package/dist/dist-ClS8s9e5.mjs.map +0 -1
  109. package/dist/entity-kinds-RooUvcN8-B1AF_ppw.mjs.map +0 -1
  110. package/dist/exports-W3IiuyIf.mjs.map +0 -1
  111. package/dist/field-accessor-CE4JbDIa-CHZgR4TO.d.mts.map +0 -1
  112. package/dist/interpreter-BkAoaKOQ-DJm6_n9S.mjs.map +0 -1
  113. package/dist/mongo-contract-serializer-BVsamWTo-DXH0WlvH.mjs.map +0 -1
  114. package/dist/mongo-value-set-BngSUlOh-BhDGXjM_.d.mts.map +0 -1
  115. package/dist/runtime-CWqMkwXI.d.mts.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { t as contractError } from "./contract-errors-BCN6RVI5-kMurtAbI.mjs";
2
- import { applySpecifierDefaultControlPolicy } from "@prisma/orm-framework/contract/apply-specifier-default-control-policy";
3
2
  import { InternalError } from "@prisma/orm-framework/utils/internal-error";
3
+ import { applySpecifierDefaultControlPolicy } from "@prisma/orm-framework/contract/apply-specifier-default-control-policy";
4
4
  import { ok } from "@prisma/orm-framework/utils/result";
5
5
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
6
6
  import { pathToFileURL } from "node:url";
@@ -34,4 +34,4 @@ function typescriptContractFromPath(contractPath, output, options) {
34
34
  //#endregion
35
35
  export { typescriptContractFromPath as n, typescriptContract as t };
36
36
 
37
- //# sourceMappingURL=config-types-x4rKdA0F.mjs.map
37
+ //# sourceMappingURL=config-types-DYTCUpAs.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-types-x4rKdA0F.mjs","names":[],"sources":["../../../../2-mongo-family/2-authoring/contract-ts/dist/config-types.mjs"],"sourcesContent":["import { t as contractError } from \"./contract-errors-BCN6RVI5.mjs\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { pathToFileURL } from \"node:url\";\nimport { applySpecifierDefaultControlPolicy } from \"@internal/contract/apply-specifier-default-control-policy\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { ok } from \"@internal/utils/result\";\n//#region src/config-types.ts\nfunction typescriptContract(contract, output, options) {\n\treturn {\n\t\tsource: {\n\t\t\tformat: \"typescript\",\n\t\t\tload: async () => ok(applySpecifierDefaultControlPolicy(contract, options?.defaultControlPolicy))\n\t\t},\n\t\t...ifDefined(\"output\", output)\n\t};\n}\nfunction typescriptContractFromPath(contractPath, output, options) {\n\treturn {\n\t\tsource: {\n\t\t\tformat: \"typescript\",\n\t\t\tinputs: [contractPath],\n\t\t\tload: async (context) => {\n\t\t\t\tconst [absolutePath] = context.resolvedInputs;\n\t\t\t\tif (absolutePath === void 0) throw new InternalError(\"typescriptContractFromPath: context.resolvedInputs is empty. The CLI config loader should populate it from source.inputs.\");\n\t\t\t\tconst mod = await import(pathToFileURL(absolutePath).href);\n\t\t\t\tconst contract = mod.default ?? mod.contract;\n\t\t\t\tif (contract === void 0) throw contractError(\"CONTRACT.MODULE_EXPORT_MISSING\", `typescriptContractFromPath: module at \"${absolutePath}\" has no \"default\" or \"contract\" export.`, { meta: { path: absolutePath } });\n\t\t\t\treturn ok(applySpecifierDefaultControlPolicy(contract, options?.defaultControlPolicy));\n\t\t\t}\n\t\t},\n\t\t...ifDefined(\"output\", output)\n\t};\n}\n//#endregion\nexport { typescriptContract, typescriptContractFromPath };\n\n//# sourceMappingURL=config-types.mjs.map"],"mappings":";;;;;;;AAOA,SAAS,mBAAmB,UAAU,QAAQ,SAAS;CACtD,OAAO;EACN,QAAQ;GACP,QAAQ;GACR,MAAM,YAAY,GAAG,mCAAmC,UAAU,SAAS,oBAAoB,CAAC;EACjG;EACA,GAAG,UAAU,UAAU,MAAM;CAC9B;AACD;AACA,SAAS,2BAA2B,cAAc,QAAQ,SAAS;CAClE,OAAO;EACN,QAAQ;GACP,QAAQ;GACR,QAAQ,CAAC,YAAY;GACrB,MAAM,OAAO,YAAY;IACxB,MAAM,CAAC,gBAAgB,QAAQ;IAC/B,IAAI,iBAAiB,KAAK,GAAG,MAAM,IAAI,cAAc,2HAA2H;IAChL,MAAM,MAAM,MAAM,OAAO,cAAc,YAAY,CAAC,CAAC;IACrD,MAAM,WAAW,IAAI,WAAW,IAAI;IACpC,IAAI,aAAa,KAAK,GAAG,MAAM,cAAc,kCAAkC,0CAA0C,aAAa,2CAA2C,EAAE,MAAM,EAAE,MAAM,aAAa,EAAE,CAAC;IACjN,OAAO,GAAG,mCAAmC,UAAU,SAAS,oBAAoB,CAAC;GACtF;EACD;EACA,GAAG,UAAU,UAAU,MAAM;CAC9B;AACD"}
1
+ {"version":3,"file":"config-types-DYTCUpAs.mjs","names":[],"sources":["../../../../2-mongo-family/2-authoring/contract-ts/dist/config-types.mjs"],"sourcesContent":["import { t as contractError } from \"./contract-errors-BCN6RVI5.mjs\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { pathToFileURL } from \"node:url\";\nimport { applySpecifierDefaultControlPolicy } from \"@internal/contract/apply-specifier-default-control-policy\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { ok } from \"@internal/utils/result\";\n//#region src/config-types.ts\nfunction typescriptContract(contract, output, options) {\n\treturn {\n\t\tsource: {\n\t\t\tformat: \"typescript\",\n\t\t\tload: async () => ok(applySpecifierDefaultControlPolicy(contract, options?.defaultControlPolicy))\n\t\t},\n\t\t...ifDefined(\"output\", output)\n\t};\n}\nfunction typescriptContractFromPath(contractPath, output, options) {\n\treturn {\n\t\tsource: {\n\t\t\tformat: \"typescript\",\n\t\t\tinputs: [contractPath],\n\t\t\tload: async (context) => {\n\t\t\t\tconst [absolutePath] = context.resolvedInputs;\n\t\t\t\tif (absolutePath === void 0) throw new InternalError(\"typescriptContractFromPath: context.resolvedInputs is empty. The CLI config loader should populate it from source.inputs.\");\n\t\t\t\tconst mod = await import(pathToFileURL(absolutePath).href);\n\t\t\t\tconst contract = mod.default ?? mod.contract;\n\t\t\t\tif (contract === void 0) throw contractError(\"CONTRACT.MODULE_EXPORT_MISSING\", `typescriptContractFromPath: module at \"${absolutePath}\" has no \"default\" or \"contract\" export.`, { meta: { path: absolutePath } });\n\t\t\t\treturn ok(applySpecifierDefaultControlPolicy(contract, options?.defaultControlPolicy));\n\t\t\t}\n\t\t},\n\t\t...ifDefined(\"output\", output)\n\t};\n}\n//#endregion\nexport { typescriptContract, typescriptContractFromPath };\n\n//# sourceMappingURL=config-types.mjs.map"],"mappings":";;;;;;;AAOA,SAAS,mBAAmB,UAAU,QAAQ,SAAS;CACtD,OAAO;EACN,QAAQ;GACP,QAAQ;GACR,MAAM,YAAY,GAAG,mCAAmC,UAAU,SAAS,oBAAoB,CAAC;EACjG;EACA,GAAG,UAAU,UAAU,MAAM;CAC9B;AACD;AACA,SAAS,2BAA2B,cAAc,QAAQ,SAAS;CAClE,OAAO;EACN,QAAQ;GACP,QAAQ;GACR,QAAQ,CAAC,YAAY;GACrB,MAAM,OAAO,YAAY;IACxB,MAAM,CAAC,gBAAgB,QAAQ;IAC/B,IAAI,iBAAiB,KAAK,GAAG,MAAM,IAAI,cAAc,2HAA2H;IAChL,MAAM,MAAM,MAAM,OAAO,cAAc,YAAY,CAAC,CAAC;IACrD,MAAM,WAAW,IAAI,WAAW,IAAI;IACpC,IAAI,aAAa,KAAK,GAAG,MAAM,cAAc,kCAAkC,0CAA0C,aAAa,2CAA2C,EAAE,MAAM,EAAE,MAAM,aAAa,EAAE,CAAC;IACjN,OAAO,GAAG,mCAAmC,UAAU,SAAS,oBAAoB,CAAC;GACtF;EACD;EACA,GAAG,UAAU,UAAU,MAAM;CAC9B;AACD"}
@@ -1,8 +1,8 @@
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-DDAe-FtT.mjs";
1
+ import { E as MongoIndexAuthoringInput, F as MongoIndexOptionsInput, G as MongoStorageShape, O as MongoIndexFields, Y as MongoTypeMaps, v as MongoCollection, w as MongoContractWithTypeMaps, x as MongoCollectionOptionsAuthoringInput } from "./mongo-value-set-DEd7WLCT-B2Ar2GkJ.mjs";
2
+ import "./index-YY1SU_7o.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, ExecutionMutationDefaultValue, FieldTypesFromDomain, JsonValue, ProfileHashBase, StorageHashBase } from "@prisma/orm-framework/contract/types";
5
+ import { ContractExecutionSection, ContractFieldType, ControlPolicy, CrossReference, EnumMemberValueType, 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
8
  import { ExtensionPackRef, ExtensionPackValues, FamilyPackRef, GeneratorFunctionCall, GeneratorHelpersOf, GeneratorPhase, TargetPackRef } from "@prisma/orm-framework/components/components";
@@ -76,6 +76,7 @@ type MongoCodecTypes = {
76
76
  readonly input: string;
77
77
  readonly output: string;
78
78
  readonly traits: 'equality' | 'order' | 'numeric';
79
+ readonly keepsWrittenForm: true;
79
80
  };
80
81
  readonly 'mongo/binary@1': {
81
82
  readonly input: Uint8Array;
@@ -99,35 +100,40 @@ interface FieldBuilder<Type extends ContractFieldType = ContractFieldType, Nulla
99
100
  readonly elementNullable: boolean;
100
101
  } = false | {
101
102
  readonly elementNullable: boolean;
102
- }, Handle extends EnumTypeHandle | undefined = EnumTypeHandle | undefined, ExecutionDefaults extends ExecutionMutationDefaultPhases | undefined = undefined> {
103
+ }, Handle extends EnumTypeHandle | undefined = EnumTypeHandle | undefined, ExecutionDefaults extends ExecutionMutationDefaultPhases | undefined = undefined, StoredName extends string | undefined = string | undefined> {
103
104
  readonly __kind: 'field';
104
105
  readonly __type: Type;
105
106
  readonly __nullable: Nullable;
106
107
  readonly __many: Many;
107
108
  readonly __enumHandle: Handle;
108
109
  readonly __executionDefaults?: ExecutionDefaults;
110
+ readonly __storedName: StoredName;
109
111
  /** The generator function calls `.onCreate(...)` and `.onUpdate(...)` give, resolved by the field's codec when the contract is built. */
110
112
  readonly __generatorCalls?: FieldGeneratorCalls;
111
113
  /** 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'>>;
114
+ onCreate(call: GeneratorFunctionCall): FieldBuilder<Type, Nullable, Many, Handle, WithGeneratedPhase<ExecutionDefaults, 'onCreate'>, StoredName>;
113
115
  /** 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'>>;
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>;
116
+ onUpdate(call: GeneratorFunctionCall): FieldBuilder<Type, Nullable, Many, Handle, WithGeneratedPhase<ExecutionDefaults, 'onUpdate'>, StoredName>;
117
+ 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, StoredName>;
116
118
  readonly many: FilledOnWrite<ExecutionDefaults> extends true ? (this: 'A preset fills this field on write, so it cannot be a list') => never : {
117
119
  (): FieldBuilder<Type, Nullable, {
118
120
  readonly elementNullable: false;
119
- }, Handle, ExecutionDefaults>;
121
+ }, Handle, ExecutionDefaults, StoredName>;
120
122
  (options: {
121
123
  readonly elementsNullable: false;
122
124
  }): FieldBuilder<Type, Nullable, {
123
125
  readonly elementNullable: false;
124
- }, Handle, ExecutionDefaults>;
126
+ }, Handle, ExecutionDefaults, StoredName>;
125
127
  (options: {
126
128
  readonly elementsNullable: true;
127
129
  }): FieldBuilder<Type, Nullable, {
128
130
  readonly elementNullable: true;
129
- }, Handle, ExecutionDefaults>;
131
+ }, Handle, ExecutionDefaults, StoredName>;
130
132
  };
133
+ /** Store the field under `field` in its documents, as `.mongo({ field: '_id' })` stores the document id. */
134
+ readonly mongo: <const Field extends string>(spec: {
135
+ readonly field: Field;
136
+ }) => FieldBuilder<Type, Nullable, Many, Handle, ExecutionDefaults, Field>;
131
137
  }
132
138
  type FieldGeneratorCalls = {
133
139
  readonly onCreate?: GeneratorFunctionCall;
@@ -253,7 +259,15 @@ type ContractRelationFromBuilder<TBuilder, Fields extends Record<string, AnyFiel
253
259
  readonly cardinality: Cardinality;
254
260
  } : never;
255
261
  type ContractRelationsFromRecord<Relations extends Record<string, AnyRelationBuilder>, Fields extends Record<string, AnyFieldBuilder>> = keyof Relations extends never ? Record<string, never> : Simplify<{ readonly [K in keyof Relations]: ContractRelationFromBuilder<Relations[K], Fields>; }>;
256
- type ContractModelStorageFromBuilder<TBuilder> = ModelStorageSection<TBuilder> & ModelStorageRelationsSection<TBuilder>;
262
+ type StoredNameFromBuilder<TBuilder, FieldName extends string> = TBuilder extends {
263
+ readonly __storedName: infer StoredName extends string;
264
+ } ? StoredName : FieldName;
265
+ type StorageFieldsFromRecord<Fields extends Record<string, AnyFieldBuilder>> = keyof Fields extends never ? Record<string, never> : { readonly [K in keyof Fields & string]: {
266
+ readonly field: StoredNameFromBuilder<Fields[K], K>;
267
+ }; };
268
+ type ContractModelStorageFromBuilder<TBuilder, Fields extends Record<string, AnyFieldBuilder>> = Simplify<ModelStorageSection<TBuilder> & {
269
+ readonly fields: StorageFieldsFromRecord<Fields>;
270
+ } & ModelStorageRelationsSection<TBuilder>>;
257
271
  type MaybeOwner<Owner> = [Owner] extends [undefined] ? EmptyObject : {
258
272
  readonly owner: Owner & string;
259
273
  };
@@ -273,7 +287,7 @@ type MaybeVariants<Variants> = [Variants] extends [undefined] ? EmptyObject : {
273
287
  type ContractModelFromBuilder<TBuilder> = TBuilder extends NamedModelBuilder<string, infer Fields extends Record<string, AnyFieldBuilder>, infer Relations extends Record<string, AnyRelationBuilder>, string | undefined, infer Owner, infer Base, Record<string, StorageRelationSpec> | undefined, infer Discriminator, infer Variants> ? Simplify<{
274
288
  readonly fields: ContractFieldsFromRecord<Fields>;
275
289
  readonly relations: ContractRelationsFromRecord<Relations, Fields>;
276
- readonly storage: ContractModelStorageFromBuilder<TBuilder>;
290
+ readonly storage: ContractModelStorageFromBuilder<TBuilder, Fields>;
277
291
  } & MaybeOwner<Owner> & MaybeBase<Base> & MaybeDiscriminator<Discriminator> & MaybeVariants<Variants>> : never;
278
292
  type ContractModelsFromRecord<Models extends Record<string, AnyModelBuilder>> = Simplify<{ readonly [K in keyof Models as ExtractModelName<Models[K]>]: ContractModelFromBuilder<Models[K]>; }>;
279
293
  type CrossRefFor<M extends string> = CrossReference & {
@@ -325,14 +339,17 @@ type EnumHandleEntries<Enums> = { readonly [K in keyof Enums as HandleName<Enums
325
339
  } ? CodecId : string;
326
340
  readonly members: EnumHandleMembers<Enums[K], true>;
327
341
  }; };
328
- type EnumHandleMemberTypes<Enums> = { readonly [K in keyof Enums as HandleName<Enums[K]>]: EnumHandleMembers<Enums[K], false>; };
329
- type MaybeEnumsSection<Enums extends Record<string, EnumTypeHandle>> = keyof Enums extends never ? EmptyObject : {
342
+ type EnumHandleMemberTypes<Enums, CodecTypes> = { readonly [K in keyof Enums as HandleName<Enums[K]>]: Enums[K] extends EnumTypeHandle<string, infer Values, infer Names, Record<string, unknown>, infer CodecId> ? { readonly [I in keyof Values]: {
343
+ readonly name: I extends keyof Names ? Names[I] : never;
344
+ readonly value: EnumMemberValueType<CodecTypes, CodecId, Values[I]>;
345
+ }; } : never; };
346
+ type MaybeEnumsSection<Enums extends Record<string, EnumTypeHandle>, CodecTypes> = keyof Enums extends never ? EmptyObject : {
330
347
  readonly enum: EnumHandleEntries<Enums>;
331
- readonly enumMemberTypes?: EnumHandleMemberTypes<Enums>;
348
+ readonly enumMemberTypes?: EnumHandleMemberTypes<Enums, CodecTypes>;
332
349
  };
333
350
  type MongoDomainNamespaceFromDefinition<Definition> = Simplify<{
334
351
  readonly models: ContractModelsFromRecord<DefinitionModels<Definition>>;
335
- } & MaybeValueObjectsSection<DefinitionValueObjects<Definition>> & MaybeEnumsSection<DefinitionEnums<Definition>>>;
352
+ } & MaybeValueObjectsSection<DefinitionValueObjects<Definition>> & MaybeEnumsSection<DefinitionEnums<Definition>, CodecTypesFromDefinition<Definition>>>;
336
353
  type MongoContractBaseFromDefinition<Definition> = Simplify<{
337
354
  readonly target: DefinitionTargetId<Definition>;
338
355
  readonly targetFamily: DefinitionFamilyId<Definition>;
@@ -354,7 +371,7 @@ type ModelExecutionDefaults<TBuilder> = ExtractModelCollection<TBuilder> extends
354
371
  readonly ref: {
355
372
  readonly namespace: typeof UNBOUND_NAMESPACE_ID;
356
373
  readonly entry: Entry;
357
- readonly field: FieldName;
374
+ readonly field: StoredNameFromBuilder<ExtractModelFields<TBuilder>[FieldName], FieldName>;
358
375
  };
359
376
  } & Phases : never; }[keyof ExtractModelFields<TBuilder> & string] : never;
360
377
  type ExecutionDefaultsFromDefinition<Definition> = { [ModelKey in keyof DefinitionModels<Definition>]: ModelExecutionDefaults<DefinitionModels<Definition>[ModelKey]>; }[keyof DefinitionModels<Definition>];
@@ -455,60 +472,60 @@ declare const field: {
455
472
  readonly objectId: () => FieldBuilder<{
456
473
  readonly kind: "scalar";
457
474
  readonly codecId: "mongo/objectId@1";
458
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined>;
475
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
459
476
  readonly string: () => FieldBuilder<{
460
477
  readonly kind: "scalar";
461
478
  readonly codecId: "mongo/string@1";
462
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined>;
479
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
463
480
  readonly double: () => FieldBuilder<{
464
481
  readonly kind: "scalar";
465
482
  readonly codecId: "mongo/double@1";
466
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined>;
483
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
467
484
  readonly int32: () => FieldBuilder<{
468
485
  readonly kind: "scalar";
469
486
  readonly codecId: "mongo/int32@1";
470
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined>;
487
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
471
488
  readonly bool: () => FieldBuilder<{
472
489
  readonly kind: "scalar";
473
490
  readonly codecId: "mongo/bool@1";
474
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined>;
491
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
475
492
  readonly date: () => FieldBuilder<{
476
493
  readonly kind: "scalar";
477
494
  readonly codecId: "mongo/date@1";
478
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined>;
495
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
479
496
  readonly int64: () => FieldBuilder<{
480
497
  readonly kind: "scalar";
481
498
  readonly codecId: "mongo/int64@1";
482
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined>;
499
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
483
500
  readonly int64Number: () => FieldBuilder<{
484
501
  readonly kind: "scalar";
485
502
  readonly codecId: "mongo/int64Number@1";
486
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined>;
503
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
487
504
  readonly decimal128: () => FieldBuilder<{
488
505
  readonly kind: "scalar";
489
506
  readonly codecId: "mongo/decimal128@1";
490
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined>;
507
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
491
508
  readonly binary: () => FieldBuilder<{
492
509
  readonly kind: "scalar";
493
510
  readonly codecId: "mongo/binary@1";
494
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined>;
511
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
495
512
  readonly json: () => FieldBuilder<{
496
513
  readonly kind: "scalar";
497
514
  readonly codecId: "mongo/json@1";
498
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined>;
515
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
499
516
  readonly bson: () => FieldBuilder<{
500
517
  readonly kind: "scalar";
501
518
  readonly codecId: "mongo/bson@1";
502
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined>;
519
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
503
520
  readonly vector: typeof vectorField;
504
521
  readonly valueObject: <const ValueObject extends ValueObjectNameInput>(valueObjectName: ValueObject) => FieldBuilder<{
505
522
  readonly kind: "valueObject";
506
523
  readonly name: NormalizeValueObjectName<ValueObject>;
507
- }, false, false, undefined, undefined>;
524
+ }, false, false, undefined, undefined, undefined>;
508
525
  readonly namedType: <const Handle extends EnumTypeHandle>(handle: Handle) => FieldBuilder<{
509
526
  readonly kind: "scalar";
510
527
  readonly codecId: Handle["codecId"];
511
- }, false, false, Handle, undefined>;
528
+ }, false, false, Handle, undefined, undefined>;
512
529
  };
513
530
  declare function index<const Fields extends MongoIndexFields>(fields: Fields): {
514
531
  readonly fields: Fields;
@@ -607,4 +624,4 @@ declare function defineContract<const Definition extends ContractScaffold<Family
607
624
  }>(definition: Definition, factory: (helpers: ContractAuthoringHelpers<Definition['family'], Definition['target'], ScaffoldExtensions<Definition>>) => Built): MongoContractResult<Definition & Built>;
608
625
  //#endregion
609
626
  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
627
+ //# sourceMappingURL=contract-builder-Cy9EOYGm.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-builder-Cy9EOYGm.d.mts","names":[],"sources":["../../../../2-mongo-family/2-authoring/contract-ts/dist/contract-builder.d.mts"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { i as MongoCollectionOptions, o as MongoIndex } from "./entity-kinds-RooUvcN8-B1AF_ppw.mjs";
1
+ import { i as MongoCollectionOptions, o as MongoIndex } from "./entity-kinds-BQBtfVet-B-Px7NHp.mjs";
2
2
  import { t as assertMongoFieldTypeParams } from "./mongo-data-type-DzyzU4LF-C1ydFXgE.mjs";
3
- import { S as mongoValueSetsOf, g as deriveCollectionValidators, s as applyPolymorphicScopeToMongoIndex, u as buildMongoStorage, x as mongoContractRefusalsOf } from "./dist-BY0Y-yqv.mjs";
3
+ import { M as unsupportedStoredNameReason, S as mongoContractRefusalsOf, g as deriveCollectionValidators, s as applyPolymorphicScopeToMongoIndex, u as buildMongoStorage, w as mongoValueSetsOf } from "./dist-B8f-pfcT.mjs";
4
4
  import { t as contractError } from "./contract-errors-BCN6RVI5-kMurtAbI.mjs";
5
5
  import { assembleDataTypes } from "@prisma/orm-framework/components/codec";
6
6
  import { blindCast } from "@prisma/orm-framework/utils/casts";
@@ -155,20 +155,20 @@ function composeMongoAuthoringHelpers(family, target, extensions) {
155
155
  valueObject
156
156
  });
157
157
  }
158
- function createFieldBuilder(spec, enumHandle, executionDefaults, generatorCalls) {
158
+ function createFieldBuilder(spec, enumHandle, executionDefaults, storedName, generatorCalls) {
159
159
  function many(options) {
160
160
  return createFieldBuilder({
161
161
  type: spec.type,
162
162
  nullable: spec.nullable,
163
163
  many: { elementNullable: options?.elementsNullable ?? false }
164
- }, enumHandle, executionDefaults, generatorCalls);
164
+ }, enumHandle, executionDefaults, storedName, generatorCalls);
165
165
  }
166
166
  function withGeneratorCall(phase, call) {
167
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
168
  reason: "generator-phase-set-twice",
169
169
  phase
170
170
  } });
171
- return createFieldBuilder(spec, enumHandle, blindCast(executionDefaults), {
171
+ return createFieldBuilder(spec, enumHandle, blindCast(executionDefaults), storedName, {
172
172
  ...generatorCalls,
173
173
  [phase]: call
174
174
  });
@@ -183,12 +183,14 @@ function createFieldBuilder(spec, enumHandle, executionDefaults, generatorCalls)
183
183
  __nullable: spec.nullable,
184
184
  __many: spec.many,
185
185
  __enumHandle: blindCast(enumHandle),
186
+ __storedName: blindCast(storedName),
186
187
  optional: blindCast(() => createFieldBuilder({
187
188
  type: spec.type,
188
189
  nullable: true,
189
190
  many: spec.many
190
- }, enumHandle, executionDefaults, generatorCalls)),
191
- many: blindCast(many)
191
+ }, enumHandle, executionDefaults, storedName, generatorCalls)),
192
+ many: blindCast(many),
193
+ mongo: ({ field }) => createFieldBuilder(spec, enumHandle, executionDefaults, field, generatorCalls)
192
194
  };
193
195
  }
194
196
  function normalizeOptionalTypeParams(typeParams) {
@@ -430,6 +432,36 @@ function buildContractField(builder) {
430
432
  ...ifDefined("valueSet", valueSet)
431
433
  };
432
434
  }
435
+ function storedNameOf(fieldName, fieldBuilder) {
436
+ return fieldBuilder.__storedName ?? fieldName;
437
+ }
438
+ function buildStorageFields(modelName, fields) {
439
+ const storageFields = {};
440
+ const fieldsByStoredName = /* @__PURE__ */ new Map();
441
+ for (const [fieldName, fieldBuilder] of Object.entries(fields)) {
442
+ const storedName = storedNameOf(fieldName, fieldBuilder);
443
+ const unsupported = unsupportedStoredNameReason(storedName);
444
+ if (unsupported !== void 0) throw contractError("CONTRACT.ARGUMENT_INVALID", `Model "${modelName}" field "${fieldName}" ${unsupported}. Give it another stored name.`, { meta: {
445
+ modelName,
446
+ fieldName,
447
+ reason: "stored-name-unsupported"
448
+ } });
449
+ const existingField = fieldsByStoredName.get(storedName);
450
+ if (existingField !== void 0) throw contractError("CONTRACT.NAME_DUPLICATE", `Model "${modelName}" stores both "${existingField}" and "${fieldName}" as "${storedName}".`, { meta: {
451
+ kind: "field",
452
+ name: storedName,
453
+ first: existingField,
454
+ second: fieldName
455
+ } });
456
+ fieldsByStoredName.set(storedName, fieldName);
457
+ storageFields[fieldName] = { field: storedName };
458
+ }
459
+ return storageFields;
460
+ }
461
+ function storedFieldNameIn(fields, fieldName) {
462
+ const fieldBuilder = Object.hasOwn(fields, fieldName) ? fields[fieldName] : void 0;
463
+ return fieldBuilder === void 0 ? fieldName : storedNameOf(fieldName, fieldBuilder);
464
+ }
433
465
  function buildFields(fields) {
434
466
  const builtFields = {};
435
467
  for (const [fieldName, fieldBuilder] of Object.entries(fields)) builtFields[fieldName] = buildContractField(fieldBuilder);
@@ -491,6 +523,11 @@ function buildValueObjects(valueObjects) {
491
523
  kind: "valueObject",
492
524
  name: valueObjectBuilder.__name
493
525
  } });
526
+ for (const [fieldName, fieldBuilder] of Object.entries(valueObjectBuilder.__fields)) if (fieldBuilder.__storedName !== void 0) throw contractError("CONTRACT.ARGUMENT_INVALID", `Value object "${valueObjectBuilder.__name}" field "${fieldName}" sets .mongo({ field }), but a field of a value object is stored under its own name.`, { meta: {
527
+ valueObjectName: valueObjectBuilder.__name,
528
+ fieldName,
529
+ reason: "value-object-field-stored-name"
530
+ } });
494
531
  builtValueObjects[valueObjectBuilder.__name] = { fields: buildFields(valueObjectBuilder.__fields) };
495
532
  }
496
533
  return builtValueObjects;
@@ -505,6 +542,7 @@ function buildModels(models) {
505
542
  assertUniqueDiscriminatorValues(modelBuilder);
506
543
  const storage = {
507
544
  ...modelBuilder.__collection ? { collection: modelBuilder.__collection } : {},
545
+ fields: buildStorageFields(modelBuilder.__name, modelBuilder.__fields),
508
546
  ...modelBuilder.__storageRelations ? { relations: modelBuilder.__storageRelations } : {}
509
547
  };
510
548
  builtModels[modelBuilder.__name] = {
@@ -545,9 +583,14 @@ function normalizeRoots(roots) {
545
583
  for (const [rootName, rootValue] of Object.entries(roots ?? {})) normalizedRoots[rootName] = crossRef(resolveModelName(rootValue), UNBOUND_NAMESPACE_ID);
546
584
  return normalizedRoots;
547
585
  }
548
- function toStorageIndex(index) {
586
+ function storedIndexKey(fields, key) {
587
+ const scope = key.match(/^(.+)\.\$\*\*$/)?.[1];
588
+ if (scope !== void 0) return `${storedFieldNameIn(fields, scope)}.$**`;
589
+ return key === "$**" ? key : storedFieldNameIn(fields, key);
590
+ }
591
+ function toStorageIndex(index, fields) {
549
592
  const input = { keys: Object.entries(index.fields).map(([field, direction]) => ({
550
- field,
593
+ field: storedIndexKey(fields, field),
551
594
  direction
552
595
  })) };
553
596
  if (index.options) {
@@ -587,7 +630,7 @@ function resolveVariantScope(modelBuilder, modelsByName) {
587
630
  const variantValue = baseBuilder.__variants?.[modelBuilder.__name]?.value;
588
631
  if (!discriminatorField || variantValue === void 0) return void 0;
589
632
  return {
590
- discriminatorField,
633
+ discriminatorField: storedFieldNameIn(baseBuilder.__fields, discriminatorField),
591
634
  discriminatorValue: variantValue
592
635
  };
593
636
  }
@@ -649,7 +692,7 @@ function buildCollections(models) {
649
692
  }
650
693
  }
651
694
  const polymorphicScope = resolveVariantScope(modelBuilder, modelsByName);
652
- const rawStorageIndexes = (modelBuilder.__indexes ?? []).map(toStorageIndex);
695
+ const rawStorageIndexes = (modelBuilder.__indexes ?? []).map((authored) => toStorageIndex(authored, modelBuilder.__fields));
653
696
  const storageIndexes = polymorphicScope ? rawStorageIndexes.map((idx, i) => scopeVariantIndex(idx, polymorphicScope, modelBuilder.__name, modelBuilder.__indexes?.[i])) : rawStorageIndexes;
654
697
  for (let i = 0; i < storageIndexes.length; i++) {
655
698
  const storageIndex = storageIndexes[i];
@@ -758,22 +801,24 @@ function buildExecutionDefaults(models, generatorFunctions) {
758
801
  }
759
802
  const entry = modelBuilder.__collection;
760
803
  if (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.");
761
- const refKey = JSON.stringify([entry, fieldName]);
804
+ const storedName = storedNameOf(fieldName, fieldBuilder);
805
+ const refKey = JSON.stringify([entry, storedName]);
762
806
  const phasesKey = canonicalStringify(phases);
763
807
  const existing = byRef.get(refKey);
764
808
  if (existing !== void 0) {
765
- if (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.`);
809
+ if (existing.phasesKey !== phasesKey) throw executionDefaultError(modelName, fieldName, "executionDefaults-conflict", `has different executionDefaults than "${existing.modelName}.${existing.fieldName}", which is stored in the same collection "${entry}". Use the same executionDefaults on both models.`);
766
810
  continue;
767
811
  }
768
812
  byRef.set(refKey, {
769
813
  modelName,
814
+ fieldName,
770
815
  phasesKey
771
816
  });
772
817
  defaults.push({
773
818
  ref: {
774
819
  namespace: UNBOUND_NAMESPACE_ID,
775
820
  entry,
776
- field: fieldName
821
+ field: storedName
777
822
  },
778
823
  ...phases
779
824
  });
@@ -905,4 +950,4 @@ function defineContract(definition, factory) {
905
950
  //#endregion
906
951
  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 };
907
952
 
908
- //# sourceMappingURL=contract-builder-BWJ5A-93.mjs.map
953
+ //# sourceMappingURL=contract-builder-gSPQkPqK.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-builder-gSPQkPqK.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, unsupportedStoredNameReason } 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, storedName, 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, storedName, 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), storedName, {\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\t__storedName: blindCast(storedName),\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, storedName, generatorCalls)),\n\t\tmany: blindCast(many),\n\t\tmongo: ({ field }) => createFieldBuilder(spec, enumHandle, executionDefaults, field, generatorCalls)\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 storedNameOf(fieldName, fieldBuilder) {\n\treturn fieldBuilder.__storedName ?? fieldName;\n}\nfunction buildStorageFields(modelName, fields) {\n\tconst storageFields = {};\n\tconst fieldsByStoredName = /* @__PURE__ */ new Map();\n\tfor (const [fieldName, fieldBuilder] of Object.entries(fields)) {\n\t\tconst storedName = storedNameOf(fieldName, fieldBuilder);\n\t\tconst unsupported = unsupportedStoredNameReason(storedName);\n\t\tif (unsupported !== void 0) throw contractError(\"CONTRACT.ARGUMENT_INVALID\", `Model \"${modelName}\" field \"${fieldName}\" ${unsupported}. Give it another stored name.`, { meta: {\n\t\t\tmodelName,\n\t\t\tfieldName,\n\t\t\treason: \"stored-name-unsupported\"\n\t\t} });\n\t\tconst existingField = fieldsByStoredName.get(storedName);\n\t\tif (existingField !== void 0) throw contractError(\"CONTRACT.NAME_DUPLICATE\", `Model \"${modelName}\" stores both \"${existingField}\" and \"${fieldName}\" as \"${storedName}\".`, { meta: {\n\t\t\tkind: \"field\",\n\t\t\tname: storedName,\n\t\t\tfirst: existingField,\n\t\t\tsecond: fieldName\n\t\t} });\n\t\tfieldsByStoredName.set(storedName, fieldName);\n\t\tstorageFields[fieldName] = { field: storedName };\n\t}\n\treturn storageFields;\n}\nfunction storedFieldNameIn(fields, fieldName) {\n\tconst fieldBuilder = Object.hasOwn(fields, fieldName) ? fields[fieldName] : void 0;\n\treturn fieldBuilder === void 0 ? fieldName : storedNameOf(fieldName, fieldBuilder);\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\tfor (const [fieldName, fieldBuilder] of Object.entries(valueObjectBuilder.__fields)) if (fieldBuilder.__storedName !== void 0) throw contractError(\"CONTRACT.ARGUMENT_INVALID\", `Value object \"${valueObjectBuilder.__name}\" field \"${fieldName}\" sets .mongo({ field }), but a field of a value object is stored under its own name.`, { meta: {\n\t\t\tvalueObjectName: valueObjectBuilder.__name,\n\t\t\tfieldName,\n\t\t\treason: \"value-object-field-stored-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\tfields: buildStorageFields(modelBuilder.__name, modelBuilder.__fields),\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 storedIndexKey(fields, key) {\n\tconst scope = key.match(/^(.+)\\.\\$\\*\\*$/)?.[1];\n\tif (scope !== void 0) return `${storedFieldNameIn(fields, scope)}.$**`;\n\treturn key === \"$**\" ? key : storedFieldNameIn(fields, key);\n}\nfunction toStorageIndex(index, fields) {\n\tconst input = { keys: Object.entries(index.fields).map(([field, direction]) => ({\n\t\tfield: storedIndexKey(fields, field),\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: storedFieldNameIn(baseBuilder.__fields, discriminatorField),\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((authored) => toStorageIndex(authored, modelBuilder.__fields));\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 storedName = storedNameOf(fieldName, fieldBuilder);\n\t\tconst refKey = JSON.stringify([entry, storedName]);\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}.${existing.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\tfieldName,\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: storedName\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":";;;;;;;;;;;;;;;;AAeA,MAAM,sBAAsB;AAC5B,SAAS,kBAAkB,SAAS,MAAM,SAAS,SAAS;CAC3D,IAAI,QAAQ,SAAS,gBAAgB,OAAO,cAAc,qCAAqC,GAAG,QAAQ,GAAG,QAAQ,UAAU;EAC9H,KAAK;EACL,MAAM;GACL,GAAG;GACH;EACD;CACD,CAAC;CACD,OAAO,cAAc,sCAAsC,GAAG,QAAQ,GAAG,QAAQ,UAAU;EAC1F,KAAK;EACL,MAAM;GACL,GAAG;GACH;GACA,UAAU,QAAQ;GAClB,QAAQ;EACT;CACD,CAAC;AACF;AACA,SAAS,aAAa,SAAS;CAC9B,QAAQ,QAAQ,MAAhB;EACC,KAAK,4BAA4B,OAAO,cAAc,6BAA6B,aAAa,QAAQ,UAAU,GAAG,QAAQ,aAAa,IAAI,QAAQ,UAAU,EAAE,MAAM;GACvK,WAAW,QAAQ;GACnB,cAAc,QAAQ;GACtB,QAAQ;EACT,EAAE,CAAC;EACH,KAAK,gBAAgB,OAAO,kBAAkB,aAAa,QAAQ,SAAS,KAAK,EAAE,UAAU,QAAQ,SAAS,GAAG,QAAQ,SAAS,QAAQ,OAAO;EACjJ,KAAK,mBAAmB,OAAO,cAAc,yBAAyB,aAAa,QAAQ,SAAS,YAAY,QAAQ,QAAQ,IAAI,QAAQ,UAAU,EAAE,MAAM;GAC7J,UAAU,QAAQ;GAClB,SAAS,QAAQ;GACjB,QAAQ;EACT,EAAE,CAAC;EACH,KAAK,yBAAyB,OAAO,cAAc,yBAAyB,aAAa,QAAQ,SAAS,aAAa,QAAQ,OAAO,IAAI,QAAQ,UAAU,EAAE,MAAM;GACnK,UAAU,QAAQ;GAClB,QAAQ,QAAQ;GAChB,SAAS,QAAQ;GACjB,QAAQ;EACT,EAAE,CAAC;EACH,KAAK,iBAAiB;GACrB,MAAM,EAAE,UAAU;GAClB,MAAM,QAAQ,MAAM,SAAS,UAAU,UAAU;GACjD,MAAM,YAAY,MAAM,SAAS,UAAU,EAAE,WAAW,MAAM,KAAK,IAAI,EAAE,iBAAiB,MAAM,KAAK;GACrG,OAAO,kBAAkB,GAAG,MAAM,IAAI,MAAM,KAAK,WAAW,QAAQ,UAAU,IAAI;IACjF,GAAG;IACH,WAAW,QAAQ;GACpB,GAAG,QAAQ,SAAS,QAAQ,OAAO;EACpC;EACA,KAAK,cAAc,OAAO,cAAc,+BAA+B,UAAU,QAAQ,UAAU,WAAW,QAAQ,UAAU,IAAI,QAAQ,UAAU,EAAE,MAAM;GAC7J,WAAW,QAAQ;GACnB,WAAW,QAAQ;GACnB,YAAY,QAAQ;GACpB,SAAS,QAAQ;GACjB,WAAW,QAAQ;GACnB,QAAQ;EACT,EAAE,CAAC;CACJ;AACD;;;;AAIA,SAAS,iCAAiC,OAAO;CAChD,MAAM,CAAC,SAAS,wBAAwB,KAAK;CAC7C,IAAI,UAAU,KAAK,GAAG,MAAM,aAAa,KAAK;AAC/C;AAGA,SAAS,gBAAgB,OAAO;CAC/B,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO,IAAI,MAAM,IAAI,eAAe,CAAC,CAAC,KAAK,GAAG,EAAE;CAC1E,IAAI,SAAS,OAAO,UAAU,UAAU,OAAO,IAAI,OAAO,QAAQ,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,KAAK,cAAc,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,GAAG,KAAK,UAAU,GAAG,EAAE,GAAG,gBAAgB,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;CAClN,OAAO,KAAK,UAAU,KAAK;AAC5B;AACA,MAAM,6BAA6B;CAClC;CACA;CACA;CACA;CACA;CACA;AACD;AACA,SAAS,iBAAiB,YAAY,YAAY,MAAM;CACvD,iCAAiC,YAAY,WAAW,MAAM,IAAI;CAClE,MAAM,SAAS,gCAAgC,YAAY,IAAI;CAC/D,MAAM,cAAc;EACnB,GAAG,OAAO,YAAY,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC;EAC9C,GAAG,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC;EACzB,GAAG,OAAO,SAAS,CAAC,QAAQ,IAAI,CAAC;CAClC;CACA,IAAI,YAAY,SAAS,GAAG,MAAM,cAAc,sCAAsC,iBAAiB,WAAW,gBAAgB,YAAY,KAAK,IAAI,EAAE,uGAAuG,EAAE,MAAM;EACvQ;EACA,QAAQ;EACR,cAAc;CACf,EAAE,CAAC;CACH,OAAO,mBAAmB;EACzB,MAAM;GACL,MAAM;GACN,SAAS,OAAO,WAAW;GAC3B,GAAG,4BAA4B,OAAO,WAAW,UAAU;EAC5D;EACA,UAAU,OAAO;EACjB,MAAM;CACP,GAAG,KAAK,GAAG,OAAO,iBAAiB;AACpC;AACA,SAAS,yBAAyB,gBAAgB;CACjD,MAAM,gBAAgB,gCAAgC,iBAAiB,EAAE,YAAY,kBAAkB,GAAG,SAAS,iBAAiB,YAAY,YAAY,IAAI,CAAC;CACjK,MAAM,aAAa,OAAO,KAAK,aAAa,CAAC,CAAC,QAAQ,SAAS,OAAO,OAAO,OAAO,IAAI,CAAC;CACzF,IAAI,WAAW,SAAS,GAAG,MAAM,cAAc,sCAAsC,oCAAoC,WAAW,KAAK,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,qEAAqE,EAAE,MAAM;EAChP,QAAQ;EACR,cAAc;CACf,EAAE,CAAC;CACH,OAAO;EACN,GAAG;EACH,GAAG;CACJ;AACD;AACA,SAAS,6BAA6B,QAAQ,QAAQ,YAAY;CACjE,MAAM,aAAa;EAClB;EACA;EACA,GAAG,OAAO,OAAO,cAAc,CAAC,CAAC;CAClC;CACA,MAAM,kBAAkB,8BAA8B,YAAY,aAAa;CAC/E,MAAM,iBAAiB,8BAA8B,YAAY,OAAO;CACxE,gCAAgC,CAAC,GAAG,gBAAgB,eAAe;CACnE,MAAM,aAAa,OAAO,KAAK,eAAe,CAAC,CAAC,QAAQ,SAAS,2BAA2B,SAAS,IAAI,CAAC;CAC1G,IAAI,WAAW,SAAS,GAAG,MAAM,cAAc,sCAAsC,mCAAmC,WAAW,KAAK,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,0GAA0G,2BAA2B,KAAK,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,IAAI,EAAE,MAAM;EACnV,QAAQ;EACR,cAAc;CACf,EAAE,CAAC;CACH,OAAO,UAAU;EAChB,GAAG,iCAAiC,iBAAiB,EAAE,KAAK;GAC3D,QAAQ,OAAO;GACf,QAAQ,OAAO;GACf,aAAa,mBAAmB,UAAU;GAC1C,gBAAgB,kBAAkB,UAAU,CAAC,CAAC;EAC/C,EAAE,CAAC;EACH,OAAO,yBAAyB,cAAc;EAC9C,KAAK,uBAAuB,UAAU;EACtC;EACA;EACA;EACA;CACD,CAAC;AACF;AACA,SAAS,mBAAmB,MAAM,YAAY,mBAAmB,YAAY,gBAAgB;CAC5F,SAAS,KAAK,SAAS;EACtB,OAAO,mBAAmB;GACzB,MAAM,KAAK;GACX,UAAU,KAAK;GACf,MAAM,EAAE,iBAAiB,SAAS,oBAAoB,MAAM;EAC7D,GAAG,YAAY,mBAAmB,YAAY,cAAc;CAC7D;CACA,SAAS,kBAAkB,OAAO,MAAM;EACvC,IAAI,iBAAiB,WAAW,KAAK,KAAK,oBAAoB,WAAW,KAAK,GAAG,MAAM,cAAc,4BAA4B,IAAI,MAAM,yDAAyD,UAAU,aAAa,cAAc,YAAY,6CAA6C,MAAM,uCAAuC,EAAE,MAAM;GACtV,QAAQ;GACR;EACD,EAAE,CAAC;EACH,OAAO,mBAAmB,MAAM,YAAY,UAAU,iBAAiB,GAAG,YAAY;GACrF,GAAG;IACF,QAAQ;EACV,CAAC;CACF;CACA,OAAO;EACN,QAAQ;EACR,GAAG,UAAU,uBAAuB,iBAAiB;EACrD,GAAG,UAAU,oBAAoB,cAAc;EAC/C,WAAW,SAAS,kBAAkB,YAAY,IAAI;EACtD,WAAW,SAAS,kBAAkB,YAAY,IAAI;EACtD,QAAQ,KAAK;EACb,YAAY,KAAK;EACjB,QAAQ,KAAK;EACb,cAAc,UAAU,UAAU;EAClC,cAAc,UAAU,UAAU;EAClC,UAAU,gBAAgB,mBAAmB;GAC5C,MAAM,KAAK;GACX,UAAU;GACV,MAAM,KAAK;EACZ,GAAG,YAAY,mBAAmB,YAAY,cAAc,CAAC;EAC7D,MAAM,UAAU,IAAI;EACpB,QAAQ,EAAE,YAAY,mBAAmB,MAAM,YAAY,mBAAmB,OAAO,cAAc;CACpG;AACD;AACA,SAAS,4BAA4B,YAAY;CAChD,IAAI,CAAC,YAAY,OAAO,CAAC;CACzB,OAAO,EAAE,WAAW;AACrB;AACA,SAAS,yBAAyB,SAAS,SAAS;CACnD,OAAO,mBAAmB;EACzB,MAAM,UAAU;GACf,MAAM;GACN;GACA,GAAG,4BAA4B,SAAS,UAAU;EACnD,CAAC;EACD,UAAU;EACV,MAAM;CACP,CAAC;AACF;AACA,SAAS,YAAY,SAAS;CAC7B,OAAO,yBAAyB,kBAAkB,OAAO;AAC1D;AACA,MAAM,QAAQ;CACb,QAAQ;CACR,WAAW;EACV,OAAO,yBAAyB,kBAAkB;CACnD;CACA,SAAS;EACR,OAAO,yBAAyB,gBAAgB;CACjD;CACA,SAAS;EACR,OAAO,yBAAyB,gBAAgB;CACjD;CACA,QAAQ;EACP,OAAO,yBAAyB,eAAe;CAChD;CACA,OAAO;EACN,OAAO,yBAAyB,cAAc;CAC/C;CACA,OAAO;EACN,OAAO,yBAAyB,cAAc;CAC/C;CACA,QAAQ;EACP,OAAO,yBAAyB,eAAe;CAChD;CACA,cAAc;EACb,OAAO,yBAAyB,qBAAqB;CACtD;CACA,aAAa;EACZ,OAAO,yBAAyB,oBAAoB;CACrD;CACA,SAAS;EACR,OAAO,yBAAyB,gBAAgB;CACjD;CACA,OAAO;EACN,OAAO,yBAAyB,cAAc;CAC/C;CACA,OAAO;EACN,OAAO,yBAAyB,cAAc;CAC/C;CACA,QAAQ;CACR,YAAY,iBAAiB;EAC5B,OAAO,mBAAmB;GACzB,MAAM,UAAU;IACf,MAAM;IACN,MAAM,uBAAuB,eAAe;GAC7C,CAAC;GACD,UAAU;GACV,MAAM;EACP,CAAC;CACF;CACA,UAAU,QAAQ;EACjB,OAAO,mBAAmB;GACzB,MAAM,UAAU;IACf,MAAM;IACN,SAAS,OAAO;GACjB,CAAC;GACD,UAAU;GACV,MAAM;EACP,GAAG,MAAM;CACV;AACD;AACA,SAAS,MAAM,QAAQ,SAAS;CAC/B,OAAO;EACN;EACA,GAAG,UAAU,EAAE,QAAQ,IAAI,CAAC;CAC7B;AACD;AACA,SAAS,qBAAqB,WAAW,WAAW;CACnD,OAAO;EACN,QAAQ;EACR;EACA;CACD;AACD;AACA,SAAS,iBAAiB,OAAO;CAChC,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,YAAY,SAAS,MAAM,WAAW;AAC7F;AACA,SAAS,iBAAiB,OAAO;CAChC,OAAO,OAAO,UAAU,WAAW,QAAQ,MAAM;AAClD;AACA,SAAS,uBAAuB,OAAO;CACtC,OAAO,OAAO,UAAU,WAAW,QAAQ,MAAM;AAClD;AACA,SAAS,oBAAoB,OAAO;CACnC,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK;AACvD;AACA,SAAS,qBAAqB,iBAAiB,OAAO;CACrD,IAAI,CAAC,iBAAiB,KAAK,GAAG,OAAO;CACrC,IAAI,MAAM,cAAc,iBAAiB,MAAM,cAAc,6BAA6B,oBAAoB,gBAAgB,4BAA4B,MAAM,UAAU,GAAG,MAAM,UAAU,KAAK,EAAE,MAAM;EACzM,WAAW;EACX,QAAQ;EACR,iBAAiB,MAAM;EACvB,iBAAiB,MAAM;CACxB,EAAE,CAAC;CACH,OAAO,MAAM;AACd;AACA,SAAS,sBAAsB,iBAAiB,OAAO;CACtD,IAAI,OAAO,UAAU,UAAU,OAAO,CAAC,KAAK;CAC5C,IAAI,iBAAiB,KAAK,GAAG,OAAO,CAAC,qBAAqB,iBAAiB,KAAK,CAAC;CACjF,OAAO,MAAM,KAAK,UAAU,qBAAqB,iBAAiB,KAAK,CAAC;AACzE;AACA,SAAS,sBAAsB,MAAM;CACpC,OAAO;EACN,QAAQ;EACR,MAAM,KAAK;EACX,eAAe,KAAK;EACpB,MAAM,KAAK;EACX,YAAY,KAAK;CAClB;AACD;AACA,SAAS,+BAA+B,QAAQ,aAAa,SAAS,UAAU;CAC/E,MAAM,kBAAkB,iBAAiB,MAAM;CAC/C,OAAO,sBAAsB;EAC5B,IAAI,UAAU,eAAe;EAC7B;EACA,IAAI;GACH,aAAa,UAAU,oBAAoB,QAAQ,IAAI,CAAC;GACxD,cAAc,UAAU,sBAAsB,iBAAiB,QAAQ,EAAE,CAAC;EAC3E;EACA;CACD,CAAC;AACF;AACA,SAAS,2BAA2B,QAAQ,aAAa;CACxD,OAAO,sBAAsB;EAC5B,IAAI,UAAU,iBAAiB,MAAM,CAAC;EACtC;EACA,IAAI,KAAK;EACT,UAAU,KAAK;CAChB,CAAC;AACF;AACA,SAAS,OAAO,QAAQ,SAAS;CAChC,IAAI,CAAC,SAAS,OAAO,2BAA2B,QAAQ,KAAK;CAC7D,OAAO,+BAA+B,QAAQ,OAAO,SAAS,IAAI;AACnE;AACA,SAAS,QAAQ,QAAQ,SAAS;CACjC,IAAI,CAAC,SAAS,OAAO,2BAA2B,QAAQ,KAAK;CAC7D,OAAO,+BAA+B,QAAQ,OAAO,SAAS,KAAK,CAAC;AACrE;AACA,SAAS,UAAU,QAAQ,SAAS;CACnC,OAAO,+BAA+B,QAAQ,OAAO,SAAS,QAAQ,QAAQ;AAC/E;AACA,MAAM,MAAM;CACX;CACA;CACA;AACD;AACA,SAAS,YAAY,MAAM,OAAO;CACjC,OAAO;EACN,QAAQ;EACR,QAAQ;EACR,UAAU,MAAM;CACjB;AACD;AACA,SAAS,MAAM,MAAM,OAAO;CAC3B,OAAO;EACN,QAAQ;EACR,QAAQ;EACR,UAAU,MAAM;EAChB,aAAa,UAAU,MAAM,aAAa,CAAC,CAAC;EAC5C,WAAW,MAAM;EACjB,qBAAqB,MAAM;EAC3B,iBAAiB,MAAM;EACvB,cAAc,UAAU,MAAM,UAAU;EACxC,SAAS,UAAU,MAAM,QAAQ,iBAAiB,MAAM,KAAK,IAAI,KAAK,CAAC;EACvE,QAAQ,UAAU,MAAM,OAAO,iBAAiB,MAAM,IAAI,IAAI,KAAK,CAAC;EACpE,oBAAoB,UAAU,MAAM,gBAAgB;EACpD,iBAAiB,UAAU,MAAM,gBAAgB,EAAE,OAAO,MAAM,cAAc,MAAM,IAAI,KAAK,CAAC;EAC9F,YAAY,UAAU,MAAM,eAAe,QAAQ;EACnD,IAAI,WAAW;GACd,OAAO,qBAAqB,MAAM,SAAS;EAC5C;CACD;AACD;AACA,SAAS,sBAAsB,QAAQ,QAAQ;CAC9C,IAAI,OAAO,aAAa,SAAS,MAAM,cAAc,iCAAiC,oEAAoE,OAAO,SAAS,KAAK,EAAE,MAAM;EACtL,QAAQ,OAAO;EACf,cAAc,OAAO;EACrB,kBAAkB;CACnB,EAAE,CAAC;CACH,IAAI,OAAO,aAAa,OAAO,UAAU,MAAM,cAAc,iCAAiC,gBAAgB,OAAO,GAAG,oBAAoB,OAAO,SAAS,4BAA4B,OAAO,SAAS,KAAK,EAAE,MAAM;EACpN,QAAQ,OAAO;EACf,cAAc,OAAO;EACrB,kBAAkB,OAAO;CAC1B,EAAE,CAAC;AACJ;AACA,SAAS,0BAA0B,QAAQ,YAAY;CACtD,IAAI,CAAC,YAAY;CACjB,KAAK,MAAM,WAAW,OAAO,OAAO,UAAU,GAAG;EAChD,IAAI,QAAQ,SAAS,aAAa,MAAM,cAAc,6BAA6B,iFAAiF,QAAQ,KAAK,KAAK,EAAE,MAAM;GAC7L,QAAQ,QAAQ;GAChB,MAAM,QAAQ;EACf,EAAE,CAAC;EACH,IAAI,QAAQ,aAAa,OAAO,UAAU,MAAM,cAAc,iCAAiC,mBAAmB,QAAQ,GAAG,oBAAoB,QAAQ,SAAS,mCAAmC,OAAO,SAAS,KAAK,EAAE,MAAM;GACjO,QAAQ,QAAQ;GAChB,cAAc,QAAQ;GACtB,kBAAkB,OAAO;EAC1B,EAAE,CAAC;EACH,IAAI,QAAQ,YAAY,QAAQ,aAAa,OAAO,UAAU,MAAM,cAAc,iCAAiC,mBAAmB,QAAQ,GAAG,aAAa,QAAQ,SAAS,4BAA4B,OAAO,SAAS,KAAK,EAAE,MAAM;GACvO,QAAQ,QAAQ;GAChB,cAAc,QAAQ;GACtB,kBAAkB,OAAO;EAC1B,EAAE,CAAC;CACJ;AACD;AACA,SAAS,mBAAmB,OAAO;CAClC,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM,OAAO;CACxD,OAAO,YAAY,SAAS,YAAY;AACzC;AACA,SAAS,mBAAmB,SAAS;CACpC,MAAM,WAAW,QAAQ,eAAe;EACvC,OAAO;EACP,YAAY;EACZ,aAAa;EACb,YAAY,QAAQ,aAAa;CAClC,IAAI,KAAK;CACT,OAAO;EACN,MAAM,QAAQ;EACd,UAAU,QAAQ;EAClB,MAAM,QAAQ;EACd,GAAG,UAAU,YAAY,QAAQ;CAClC;AACD;AACA,SAAS,aAAa,WAAW,cAAc;CAC9C,OAAO,aAAa,gBAAgB;AACrC;AACA,SAAS,mBAAmB,WAAW,QAAQ;CAC9C,MAAM,gBAAgB,CAAC;CACvB,MAAM,qCAAqC,IAAI,IAAI;CACnD,KAAK,MAAM,CAAC,WAAW,iBAAiB,OAAO,QAAQ,MAAM,GAAG;EAC/D,MAAM,aAAa,aAAa,WAAW,YAAY;EACvD,MAAM,cAAc,4BAA4B,UAAU;EAC1D,IAAI,gBAAgB,KAAK,GAAG,MAAM,cAAc,6BAA6B,UAAU,UAAU,WAAW,UAAU,IAAI,YAAY,iCAAiC,EAAE,MAAM;GAC9K;GACA;GACA,QAAQ;EACT,EAAE,CAAC;EACH,MAAM,gBAAgB,mBAAmB,IAAI,UAAU;EACvD,IAAI,kBAAkB,KAAK,GAAG,MAAM,cAAc,2BAA2B,UAAU,UAAU,iBAAiB,cAAc,SAAS,UAAU,QAAQ,WAAW,KAAK,EAAE,MAAM;GAClL,MAAM;GACN,MAAM;GACN,OAAO;GACP,QAAQ;EACT,EAAE,CAAC;EACH,mBAAmB,IAAI,YAAY,SAAS;EAC5C,cAAc,aAAa,EAAE,OAAO,WAAW;CAChD;CACA,OAAO;AACR;AACA,SAAS,kBAAkB,QAAQ,WAAW;CAC7C,MAAM,eAAe,OAAO,OAAO,QAAQ,SAAS,IAAI,OAAO,aAAa,KAAK;CACjF,OAAO,iBAAiB,KAAK,IAAI,YAAY,aAAa,WAAW,YAAY;AAClF;AACA,SAAS,YAAY,QAAQ;CAC5B,MAAM,cAAc,CAAC;CACrB,KAAK,MAAM,CAAC,WAAW,iBAAiB,OAAO,QAAQ,MAAM,GAAG,YAAY,aAAa,mBAAmB,YAAY;CACxH,OAAO;AACR;AACA,SAAS,sBAAsB,WAAW,cAAc,iBAAiB,IAAI,QAAQ;CACpF,MAAM,WAAW,aAAa,UAAU,GAAG,aAAa;CACxD,MAAM,iBAAiB,gBAAgB,kBAAkB;CACzD,MAAM,cAAc,iBAAiB,GAAG,YAAY,KAAK,cAAc;EACtE,MAAM,aAAa,OAAO;EAC1B,IAAI,eAAe,KAAK,GAAG,MAAM,cAAc,6BAA6B,GAAG,SAAS,yBAAyB,UAAU,kBAAkB,UAAU,qBAAqB,EAAE,MAAM;GACnL;GACA;GACA;GACA,QAAQ;EACT,EAAE,CAAC;EACH,OAAO;CACR,CAAC,IAAI,CAAC;CACN,MAAM,EAAE,UAAU,kBAAkB,6BAA6B;EAChE,kBAAkB,gBAAgB;EAClC,uBAAuB,YAAY,KAAK,eAAe,WAAW,eAAe,IAAI;EACrF,eAAe;CAChB,CAAC;CACD,IAAI,kBAAkB,KAAK,GAAG,MAAM,cAAc,6BAA6B,CAAC,iBAAiB,GAAG,SAAS,+GAA+G,kBAAkB,sBAAsB,GAAG,SAAS,8DAA8D,GAAG,SAAS,yDAAyD,EAAE,MAAM;EAC1Z;EACA;EACA,QAAQ;CACT,EAAE,CAAC;CACH,OAAO;AACR;AACA,SAAS,cAAc,WAAW,cAAc,iBAAiB,QAAQ;CACxE,MAAM,KAAK,SAAS,gBAAgB,MAAM,oBAAoB;CAC9D,MAAM,KAAK,gBAAgB;CAC3B,IAAI,OAAO,KAAK,GAAG,OAAO;EACzB;EACA,aAAa,gBAAgB;CAC9B;CACA,IAAI,gBAAgB,kBAAkB,OAAO,OAAO;EACnD;EACA,aAAa;EACb;CACD;CACA,OAAO;EACN;EACA,aAAa,gBAAgB;EAC7B,UAAU,sBAAsB,WAAW,cAAc,iBAAiB,IAAI,MAAM;EACpF;CACD;AACD;AACA,SAAS,eAAe,WAAW,WAAW,QAAQ;CACrD,MAAM,iBAAiB,CAAC;CACxB,KAAK,MAAM,CAAC,cAAc,oBAAoB,OAAO,QAAQ,SAAS,GAAG,eAAe,gBAAgB,cAAc,WAAW,cAAc,iBAAiB,MAAM;CACtK,OAAO;AACR;AACA,SAAS,kBAAkB,cAAc;CACxC,MAAM,oBAAoB,CAAC;CAC3B,KAAK,MAAM,sBAAsB,OAAO,OAAO,gBAAgB,CAAC,CAAC,GAAG;EACnE,IAAI,mBAAmB,UAAU,mBAAmB,MAAM,cAAc,2BAA2B,gCAAgC,mBAAmB,OAAO,yBAAyB,EAAE,MAAM;GAC7L,MAAM;GACN,MAAM,mBAAmB;EAC1B,EAAE,CAAC;EACH,KAAK,MAAM,CAAC,WAAW,iBAAiB,OAAO,QAAQ,mBAAmB,QAAQ,GAAG,IAAI,aAAa,iBAAiB,KAAK,GAAG,MAAM,cAAc,6BAA6B,iBAAiB,mBAAmB,OAAO,WAAW,UAAU,wFAAwF,EAAE,MAAM;GAC/U,iBAAiB,mBAAmB;GACpC;GACA,QAAQ;EACT,EAAE,CAAC;EACH,kBAAkB,mBAAmB,UAAU,EAAE,QAAQ,YAAY,mBAAmB,QAAQ,EAAE;CACnG;CACA,OAAO;AACR;AACA,SAAS,YAAY,QAAQ;CAC5B,MAAM,cAAc,CAAC;CACrB,KAAK,MAAM,gBAAgB,OAAO,OAAO,UAAU,CAAC,CAAC,GAAG;EACvD,IAAI,aAAa,UAAU,aAAa,MAAM,cAAc,2BAA2B,yBAAyB,aAAa,OAAO,yBAAyB,EAAE,MAAM;GACpK,MAAM;GACN,MAAM,aAAa;EACpB,EAAE,CAAC;EACH,gCAAgC,YAAY;EAC5C,MAAM,UAAU;GACf,GAAG,aAAa,eAAe,EAAE,YAAY,aAAa,aAAa,IAAI,CAAC;GAC5E,QAAQ,mBAAmB,aAAa,QAAQ,aAAa,QAAQ;GACrE,GAAG,aAAa,qBAAqB,EAAE,WAAW,aAAa,mBAAmB,IAAI,CAAC;EACxF;EACA,YAAY,aAAa,UAAU;GAClC,QAAQ,YAAY,aAAa,QAAQ;GACzC,WAAW,eAAe,aAAa,QAAQ,aAAa,aAAa,aAAa,QAAQ;GAC9F;GACA,GAAG,aAAa,UAAU,EAAE,OAAO,aAAa,QAAQ,IAAI,CAAC;GAC7D,GAAG,aAAa,SAAS,EAAE,MAAM,SAAS,aAAa,QAAQ,oBAAoB,EAAE,IAAI,CAAC;GAC1F,GAAG,aAAa,kBAAkB,EAAE,eAAe,aAAa,gBAAgB,IAAI,CAAC;GACrF,GAAG,aAAa,aAAa,EAAE,UAAU,OAAO,YAAY,OAAO,QAAQ,aAAa,UAAU,CAAC,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,SAAS,aAAa,oBAAoB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;EACnM;CACD;CACA,OAAO;AACR;AACA,SAAS,gCAAgC,cAAc;CACtD,MAAM,sCAAsC,IAAI,IAAI;CACpD,KAAK,MAAM,CAAC,aAAa,EAAE,YAAY,OAAO,QAAQ,aAAa,cAAc,CAAC,CAAC,GAAG;EACrF,MAAM,kBAAkB,oBAAoB,IAAI,KAAK;EACrD,IAAI,oBAAoB,KAAK,GAAG,MAAM,cAAc,6BAA6B,wBAAwB,MAAM,qBAAqB,gBAAgB,SAAS,YAAY,mBAAmB,aAAa,OAAO,KAAK,EAAE,MAAM;GAC5N,WAAW,aAAa;GACxB;GACA,UAAU,CAAC,iBAAiB,WAAW;GACvC,QAAQ;EACT,EAAE,CAAC;EACH,oBAAoB,IAAI,OAAO,WAAW;CAC3C;AACD;AACA,SAAS,YAAY,QAAQ;CAC5B,MAAM,QAAQ,CAAC;CACf,KAAK,MAAM,gBAAgB,OAAO,OAAO,UAAU,CAAC,CAAC,GAAG;EACvD,IAAI,CAAC,aAAa,gBAAgB,aAAa,WAAW,aAAa,QAAQ;EAC/E,MAAM,aAAa,gBAAgB,SAAS,aAAa,QAAQ,oBAAoB;CACtF;CACA,OAAO;AACR;AACA,SAAS,eAAe,OAAO;CAC9B,MAAM,kBAAkB,CAAC;CACzB,KAAK,MAAM,CAAC,UAAU,cAAc,OAAO,QAAQ,SAAS,CAAC,CAAC,GAAG,gBAAgB,YAAY,SAAS,iBAAiB,SAAS,GAAG,oBAAoB;CACvJ,OAAO;AACR;AACA,SAAS,eAAe,QAAQ,KAAK;CACpC,MAAM,QAAQ,IAAI,MAAM,gBAAgB,CAAC,GAAG;CAC5C,IAAI,UAAU,KAAK,GAAG,OAAO,GAAG,kBAAkB,QAAQ,KAAK,EAAE;CACjE,OAAO,QAAQ,QAAQ,MAAM,kBAAkB,QAAQ,GAAG;AAC3D;AACA,SAAS,eAAe,OAAO,QAAQ;CACtC,MAAM,QAAQ,EAAE,MAAM,OAAO,QAAQ,MAAM,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB;EAC/E,OAAO,eAAe,QAAQ,KAAK;EACnC;CACD,EAAE,EAAE;CACJ,IAAI,MAAM,SACJ;OAAA,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,OAAO,GAAG,IAAI,UAAU,KAAK,GAAG,MAAM,OAAO;CAAA;CAE9F,OAAO,IAAI,WAAW,UAAU,KAAK,CAAC;AACvC;AACA,SAAS,2BAA2B,MAAM;CACzC,OAAO,IAAI,uBAAuB;EACjC,GAAG,KAAK,SAAS,EAAE,QAAQ;GAC1B,MAAM,KAAK,QAAQ;GACnB,GAAG,KAAK,OAAO,QAAQ,EAAE,KAAK,KAAK,IAAI;EACxC,EAAE,IAAI,CAAC;EACP,GAAG,UAAU,iBAAiB,KAAK,aAAa;EAChD,GAAG,UAAU,uBAAuB,KAAK,mBAAmB;EAC5D,GAAG,UAAU,aAAa,KAAK,SAAS;EACxC,GAAG,UAAU,cAAc,KAAK,UAAU;EAC1C,GAAG,KAAK,mBAAmB,KAAK,KAAK,EAAE,gBAAgB,KAAK,eAAe,SAAS,KAAK,IAAI,EAAE,MAAM,KAAK,eAAe,KAAK,IAAI,CAAC,EAAE;EACrI,GAAG,UAAU,sBAAsB,KAAK,kBAAkB;EAC1D,GAAG,UAAU,gCAAgC,KAAK,4BAA4B;CAC/E,CAAC;AACF;AACA,SAAS,sBAAsB,OAAO,aAAa;CAClD,KAAK,MAAM,aAAa,OAAO,KAAK,MAAM,MAAM,GAAG;EAClD,MAAM,gBAAgB,UAAU,MAAM,gBAAgB;EACtD,MAAM,aAAa,gBAAgB,cAAc,KAAK;EACtD,IAAI,eAAe,KAAK,KAAK,WAAW,WAAW,GAAG;EACtD,IAAI,eAAe,OAAO;EAC1B,IAAI,CAAC,OAAO,OAAO,aAAa,UAAU,GAAG,OAAO;CACrD;AACD;AACA,SAAS,oBAAoB,cAAc,cAAc;CACxD,IAAI,CAAC,aAAa,QAAQ,OAAO,KAAK;CACtC,MAAM,cAAc,aAAa,aAAa;CAC9C,IAAI,CAAC,aAAa,OAAO,KAAK;CAC9B,MAAM,qBAAqB,YAAY,iBAAiB;CACxD,MAAM,eAAe,YAAY,aAAa,aAAa,OAAO,EAAE;CACpE,IAAI,CAAC,sBAAsB,iBAAiB,KAAK,GAAG,OAAO,KAAK;CAChE,OAAO;EACN,oBAAoB,kBAAkB,YAAY,UAAU,kBAAkB;EAC9E,oBAAoB;CACrB;AACD;AACA,SAAS,kBAAkB,cAAc,OAAO,aAAa,eAAe;CAC3E,MAAM,SAAS,kCAAkC,cAAc,KAAK;CACpE,IAAI,OAAO,SAAS,YAAY;EAC/B,MAAM,aAAa,gBAAgB,mBAAmB,aAAa,IAAI;EACvE,MAAM,cAAc,0BAA0B,kBAAkB,YAAY,UAAU,WAAW,uCAAuC,OAAO,UAAU,EAAE,MAAM;GAChK;GACA;GACA,QAAQ,OAAO;EAChB,EAAE,CAAC;CACJ;CACA,OAAO,OAAO;AACf;AACA,SAAS,iBAAiB,QAAQ;CACjC,MAAM,eAAe,CAAC;CACtB,MAAM,sCAAsC,IAAI,IAAI;CACpD,MAAM,WAAW,UAAU,CAAC;CAC5B,MAAM,eAAe,CAAC;CACtB,KAAK,MAAM,WAAW,OAAO,OAAO,QAAQ,GAAG,aAAa,QAAQ,UAAU;CAC9E,KAAK,MAAM,gBAAgB,OAAO,OAAO,QAAQ,GAAG;EACnD,IAAI,CAAC,aAAa,cAAc;GAC/B,IAAI,aAAa,aAAa,aAAa,UAAU,SAAS,GAAG,MAAM,cAAc,+BAA+B,UAAU,aAAa,OAAO,6DAA6D,EAAE,MAAM;IACtN,WAAW,aAAa;IACxB,QAAQ;GACT,EAAE,CAAC;GACH,IAAI,aAAa,qBAAqB,MAAM,cAAc,+BAA+B,UAAU,aAAa,OAAO,uEAAuE,EAAE,MAAM;IACrM,WAAW,aAAa;IACxB,QAAQ;GACT,EAAE,CAAC;GACH,IAAI,aAAa,iBAAiB,MAAM,cAAc,+BAA+B,UAAU,aAAa,OAAO,iEAAiE,EAAE,MAAM;IAC3L,WAAW,aAAa;IACxB,QAAQ;GACT,EAAE,CAAC;GACH;EACD;EACA,MAAM,qBAAqB,aAAa,aAAa,iBAAiB,CAAC;EACvE,MAAM,kBAAkB,mBAAmB,WAAW,CAAC;EACvD,IAAI,mBAAmB,WAAW,aAAa,qBAAqB,MAAM,cAAc,+BAA+B,eAAe,aAAa,aAAa,kHAAkH,EAAE,MAAM;GACzR,WAAW,aAAa;GACxB,YAAY,aAAa;GACzB,QAAQ;EACT,EAAE,CAAC;EACH,IAAI,mBAAmB,YAAY,KAAK,KAAK,aAAa,iBAAiB,MAAM,cAAc,+BAA+B,eAAe,aAAa,aAAa,0GAA0G,EAAE,MAAM;GACxR,WAAW,aAAa;GACxB,YAAY,aAAa;GACzB,QAAQ;EACT,EAAE,CAAC;EACH,KAAK,MAAM,mBAAmB,aAAa,aAAa,CAAC,GAAG;GAC3D,MAAM,eAAe,sBAAsB,iBAAiB,aAAa,QAAQ;GACjF,IAAI,iBAAiB,KAAK,GAAG;IAC5B,MAAM,iBAAiB,mBAAmB,eAAe;IACzD,MAAM,cAAc,0BAA0B,UAAU,aAAa,OAAO,UAAU,eAAe,6BAA6B,aAAa,KAAK,EAAE,MAAM;KAC3J,WAAW,aAAa;KACxB,WAAW;KACX;IACD,EAAE,CAAC;GACJ;EACD;EACA,MAAM,mBAAmB,oBAAoB,cAAc,YAAY;EACvE,MAAM,qBAAqB,aAAa,aAAa,CAAC,EAAA,CAAG,KAAK,aAAa,eAAe,UAAU,aAAa,QAAQ,CAAC;EAC1H,MAAM,iBAAiB,mBAAmB,kBAAkB,KAAK,KAAK,MAAM,kBAAkB,KAAK,kBAAkB,aAAa,QAAQ,aAAa,YAAY,EAAE,CAAC,IAAI;EAC1K,KAAK,IAAI,IAAI,GAAG,IAAI,eAAe,QAAQ,KAAK;GAC/C,MAAM,eAAe,eAAe;GACpC,IAAI,iBAAiB,KAAK,GAAG;GAC7B,MAAM,iBAAiB,gBAAgB,YAAY;GACnD,MAAM,qBAAqB,GAAG,aAAa,aAAa,GAAG;GAC3D,MAAM,aAAa,oBAAoB,IAAI,kBAAkB;GAC7D,IAAI,YAAY;IACf,MAAM,gBAAgB,aAAa,YAAY;IAC/C,MAAM,oBAAoB,gBAAgB,mBAAmB,aAAa,IAAI;IAC9E,MAAM,cAAc,2BAA2B,eAAe,aAAa,aAAa,4BAA4B,kBAAkB,6BAA6B,WAAW,6BAA6B,aAAa,OAAO,KAAK,EAAE,MAAM;KAC3O,MAAM;KACN,MAAM;KACN,YAAY,aAAa;KACzB,OAAO;KACP,QAAQ,aAAa;IACtB,EAAE,CAAC;GACJ;GACA,oBAAoB,IAAI,oBAAoB,aAAa,MAAM;EAChE;EACA,MAAM,iBAAiB,aAAa,sBAAsB,2BAA2B,aAAa,mBAAmB,IAAI,KAAK;EAC9H,MAAM,eAAe,aAAa,oBAAoB,KAAK,IAAI,EAAE,SAAS,aAAa,gBAAgB,IAAI,CAAC;EAC5G,aAAa,aAAa,gBAAgB,eAAe,SAAS,IAAI;GACrE,GAAG;GACH,SAAS,CAAC,GAAG,iBAAiB,GAAG,cAAc;GAC/C,GAAG,iBAAiB,EAAE,SAAS,eAAe,IAAI,CAAC;GACnD,GAAG;EACJ,IAAI,iBAAiB;GACpB,GAAG;GACH,SAAS;GACT,GAAG;EACJ,IAAI,OAAO,KAAK,YAAY,CAAC,CAAC,SAAS,IAAI;GAC1C,GAAG;GACH,GAAG;EACJ,IAAI;CACL;CACA,OAAO;AACR;AACA,SAAS,sBAAsB,WAAW,WAAW,QAAQ,SAAS;CACrE,OAAO,cAAc,4BAA4B,UAAU,UAAU,GAAG,UAAU,IAAI,WAAW,EAAE,MAAM;EACxG;EACA;EACA;CACD,EAAE,CAAC;AACJ;AACA,SAAS,qBAAqB,cAAc;CAC3C,MAAM,SAAS,aAAa;CAC5B,MAAM,QAAQ,aAAa;CAC3B,OAAO,QAAQ,aAAa,KAAK,KAAK,QAAQ,aAAa,KAAK,KAAK,OAAO,aAAa,KAAK,KAAK,OAAO,aAAa,KAAK;AAC7H;;;;AAIA,SAAS,oBAAoB,cAAc,WAAW,WAAW,oBAAoB;CACpF,MAAM,QAAQ,aAAa;CAC3B,IAAI,UAAU,KAAK,GAAG,OAAO,aAAa;CAC1C,MAAM,OAAO,aAAa;CAC1B,MAAM,UAAU,KAAK,SAAS,WAAW,KAAK,UAAU,KAAK;CAC7D,MAAM,SAAS,EAAE,GAAG,aAAa,oBAAoB;CACrD,KAAK,MAAM,SAAS,CAAC,YAAY,UAAU,GAAG;EAC7C,MAAM,OAAO,MAAM;EACnB,IAAI,SAAS,KAAK,GAAG;EACrB,MAAM,aAAa,KAAK,SAAS,WAAW,mBAAmB,QAAQ,MAAM;GAC5E,SAAS,KAAK;GACd,YAAY,KAAK;EAClB,CAAC,IAAI,KAAK;EACV,IAAI,YAAY,OAAO,MAAM;GAC5B,OAAO,SAAS,WAAW;GAC3B;EACD;EACA,MAAM,OAAO;GACZ;GACA;GACA;GACA,UAAU,KAAK;EAChB;EACA,IAAI,YAAY,WAAW,oBAAoB,MAAM,cAAc,4BAA4B,UAAU,UAAU,GAAG,UAAU,8DAA8D,KAAK,KAAK,KAAK,EAAE,MAAM;GACpN,GAAG;GACH,QAAQ;EACT,EAAE,CAAC;EACH,MAAM,cAAc,4BAA4B,YAAY,WAAW,YAAY,UAAU,UAAU,GAAG,UAAU,KAAK,WAAW,YAAY,UAAU,UAAU,GAAG,UAAU,KAAK,KAAK,KAAK,uBAAuB,YAAY,KAAK,IAAI,qBAAqB,UAAU,QAAQ,GAAG,IAAI,EAAE,MAAM;GACjS,GAAG;GACH,QAAQ;EACT,EAAE,CAAC;CACJ;CACA,OAAO;AACR;AACA,SAAS,qCAAqC,cAAc;CAC3D,KAAK,MAAM,sBAAsB,OAAO,OAAO,gBAAgB,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,WAAW,iBAAiB,OAAO,QAAQ,mBAAmB,QAAQ,GAAG,IAAI,qBAAqB,YAAY,GAAG,MAAM,sBAAsB,mBAAmB,QAAQ,WAAW,qCAAqC,+GAA+G;AACxZ;AACA,SAAS,uBAAuB,QAAQ,oBAAoB;CAC3D,MAAM,gBAAgB,OAAO,OAAO,UAAU,CAAC,CAAC;CAChD,MAAM,wBAAwB,IAAI,IAAI,cAAc,KAAK,iBAAiB,CAAC,aAAa,QAAQ,aAAa,YAAY,CAAC,CAAC;CAC3H,MAAM,wBAAwB,IAAI,IAAI;CACtC,MAAM,WAAW,CAAC;CAClB,KAAK,MAAM,gBAAgB,eAAe,KAAK,MAAM,CAAC,WAAW,iBAAiB,OAAO,QAAQ,aAAa,QAAQ,GAAG;EACxH,IAAI,CAAC,qBAAqB,YAAY,GAAG;EACzC,MAAM,YAAY,aAAa;EAC/B,MAAM,SAAS,oBAAoB,cAAc,WAAW,WAAW,kBAAkB;EACzF,IAAI,WAAW,KAAK,GAAG;EACvB,IAAI,aAAa,YAAY,MAAM,sBAAsB,WAAW,WAAW,mCAAmC,4GAA4G;EAC9N,IAAI,aAAa,QAAQ,MAAM,sBAAsB,WAAW,WAAW,+BAA+B,sGAAsG;EAChN,IAAI,aAAa,WAAW,KAAK,GAAG;GACnC,MAAM,aAAa,aAAa,gBAAgB,sBAAsB,IAAI,aAAa,MAAM;GAC7F,MAAM,sBAAsB,WAAW,WAAW,gCAAgC,+BAA+B,UAAU,qBAAqB,aAAa,OAAO,+DAA+D,WAAW,sCAAsC;EACrR;EACA,MAAM,QAAQ,aAAa;EAC3B,IAAI,UAAU,KAAK,GAAG,MAAM,sBAAsB,WAAW,WAAW,wCAAwC,0IAA0I;EAC1P,MAAM,aAAa,aAAa,WAAW,YAAY;EACvD,MAAM,SAAS,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC;EACjD,MAAM,YAAY,mBAAmB,MAAM;EAC3C,MAAM,WAAW,MAAM,IAAI,MAAM;EACjC,IAAI,aAAa,KAAK,GAAG;GACxB,IAAI,SAAS,cAAc,WAAW,MAAM,sBAAsB,WAAW,WAAW,8BAA8B,yCAAyC,SAAS,UAAU,GAAG,SAAS,UAAU,6CAA6C,MAAM,kDAAkD;GAC7S;EACD;EACA,MAAM,IAAI,QAAQ;GACjB;GACA;GACA;EACD,CAAC;EACD,SAAS,KAAK;GACb,KAAK;IACJ,WAAW;IACX;IACA,OAAO;GACR;GACA,GAAG;EACJ,CAAC;CACF;CACA,OAAO;AACR;AACA,SAAS,4BAA4B,YAAY;CAChD,sBAAsB,WAAW,QAAQ,WAAW,MAAM;CAC1D,0BAA0B,WAAW,QAAQ,WAAW,UAAU;CAClE,MAAM,cAAc,YAAY,WAAW,MAAM;CACjD,MAAM,oBAAoB,kBAAkB,WAAW,YAAY;CACnE,MAAM,QAAQ,WAAW,QAAQ,eAAe,WAAW,KAAK,IAAI,YAAY,WAAW,MAAM;CACjG,MAAM,eAAe,CAAC;CACtB,MAAM,cAAc,iBAAiB,WAAW,MAAM;CACtD,qCAAqC,WAAW,YAAY;CAC5D,MAAM,YAAY,sBAAsB;EACvC,QAAQ,WAAW,OAAO;EAC1B,cAAc,WAAW,OAAO;EAChC,UAAU,uBAAuB,WAAW,QAAQ,2BAA2B;GAC9E,WAAW;GACX,WAAW;GACX,GAAG,OAAO,OAAO,WAAW,cAAc,CAAC,CAAC;EAC7C,CAAC,CAAC;CACH,CAAC;CACD,MAAM,aAAa;EAClB,WAAW;EACX,WAAW;EACX,GAAG,OAAO,OAAO,WAAW,cAAc,CAAC,CAAC;CAC7C;CACA,MAAM,cAAc,mBAAmB,UAAU;CACjD,MAAM,UAAU;EACf;EACA,gBAAgB,kBAAkB,UAAU,CAAC,CAAC;CAC/C;CACA,2BAA2B,GAAG,uBAAuB;EACpD,QAAQ;EACR,cAAc;CACf,EAAE,GAAG,OAAO;CACZ,MAAM,aAAa,CAAC;CACpB,KAAK,MAAM,CAAC,UAAU,WAAW,OAAO,QAAQ,WAAW,SAAS,CAAC,CAAC,GAAG,WAAW,YAAY;EAC/F,SAAS,OAAO;EAChB,SAAS,sBAAsB,QAAQ,aAAa,WAAW;CAChE;CACA,MAAM,mBAAmB,iBAAiB,UAAU;CACpD,KAAK,MAAM,CAAC,UAAU,WAAW,OAAO,QAAQ,WAAW,SAAS,CAAC,CAAC,GAAG,IAAI,aAAa,OAAO,UAAU,MAAM,cAAc,yBAAyB,yBAAyB,SAAS,8BAA8B,OAAO,SAAS,gCAAgC,EAAE,MAAM;EAC/Q,UAAU,OAAO;EACjB,aAAa;EACb,QAAQ;CACT,EAAE,CAAC;CACH,MAAM,WAAW,OAAO,KAAK,UAAU,CAAC,CAAC,SAAS;CAClD,KAAK,MAAM,CAAC,WAAW,iBAAiB,OAAO,QAAQ,WAAW,UAAU,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,WAAW,iBAAiB,OAAO,QAAQ,aAAa,QAAQ,GAAG;EAC/J,MAAM,SAAS,aAAa;EAC5B,IAAI,UAAU,EAAE,OAAO,YAAY,aAAa,MAAM,cAAc,yBAAyB,UAAU,UAAU,WAAW,UAAU,qBAAqB,OAAO,SAAS,iEAAiE,EAAE,MAAM;GACnP;GACA;GACA,UAAU,OAAO;EAClB,EAAE,CAAC;CACJ;CACA,MAAM,kBAAkB;EACvB,aAAa,OAAO,YAAY,OAAO,QAAQ,WAAW,CAAC,CAAC,KAAK,CAAC,MAAM,gBAAgB,CAAC,MAAM,WAAW,OAAO,CAAC,CAAC;EACnH,sBAAsB,WAAW;CAClC;CACA,iCAAiC;EAChC,QAAQ;EACR,cAAc;EACd,OAAO;EACP;EACA;CACD,CAAC;CACD,MAAM,aAAa,2BAA2B;EAC7C,QAAQ;EACR;EACA,cAAc;EACd,WAAW;EACX;CACD,CAAC;CACD,MAAM,UAAU,kBAAkB;EACjC,aAAa,OAAO,YAAY,OAAO,QAAQ,WAAW,CAAC,CAAC,KAAK,CAAC,MAAM,gBAAgB,CAAC,MAAM;GAC9F,GAAG;GACH,GAAG,UAAU,aAAa,WAAW,KAAK;EAC3C,CAAC,CAAC,CAAC;EACH,WAAW;CACZ,CAAC;CACD,OAAO,UAAU;EAChB,QAAQ,WAAW,OAAO;EAC1B,cAAc,WAAW,OAAO;EAChC,GAAG,UAAU,wBAAwB,WAAW,oBAAoB;EACpE;EACA,QAAQ,EAAE,YAAY,GAAG,uBAAuB;GAC/C,QAAQ;GACR,GAAG,OAAO,KAAK,iBAAiB,CAAC,CAAC,SAAS,IAAI,EAAE,cAAc,kBAAkB,IAAI,CAAC;GACtF,GAAG,WAAW,EAAE,MAAM,WAAW,IAAI,CAAC;EACvC,EAAE,EAAE;EACJ;EACA;EACA,YAAY,WAAW,cAAc,CAAC;EACtC,aAAa,mBAAmB;GAC/B,QAAQ,WAAW,OAAO;GAC1B,cAAc,WAAW,OAAO;GAChC;EACD,CAAC;EACD,MAAM,CAAC;EACP,GAAG,UAAU,aAAa,SAAS;CACpC,CAAC;AACF;;AAEA,SAAS,mBAAmB,QAAQ,QAAQ,YAAY,SAAS;CAChE,MAAM,OAAO;EACZ,GAAG;EACH;EACA;CACD;CACA,IAAI,YAAY,KAAK,GAAG;EACvB,MAAM,QAAQ,QAAQ,6BAA6B,QAAQ,QAAQ,WAAW,UAAU,CAAC;EACzF,OAAO,4BAA4B;GAClC,GAAG;GACH,GAAG,UAAU,UAAU,MAAM,MAAM;GACnC,GAAG,UAAU,gBAAgB,MAAM,YAAY;GAC/C,GAAG,UAAU,SAAS,MAAM,KAAK;EAClC,CAAC;CACF;CACA,OAAO,4BAA4B,IAAI;AACxC;AACA,SAAS,eAAe,YAAY,SAAS;CAC5C,IAAI,CAAC,mBAAmB,UAAU,GAAG,MAAM,cAAc,6BAA6B,iIAAiI;CACvN,IAAI,YAAY,KAAK,GAAG,OAAO,mBAAmB,WAAW,QAAQ,WAAW,QAAQ,YAAY,OAAO;CAC3G,OAAO,mBAAmB,WAAW,QAAQ,WAAW,QAAQ,UAAU;AAC3E"}