@prisma/orm-family-mongo 8.0.0-rc.2-dev.3 → 8.0.0-rc.20-dev.1

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 (207) hide show
  1. package/README.md +1 -5
  2. package/dist/authoring-entity-types-UA5sY_Xm-DeYf_cYq.mjs +87 -0
  3. package/dist/authoring-entity-types-UA5sY_Xm-DeYf_cYq.mjs.map +1 -0
  4. package/dist/{canonicalization-hooks-DF3Z6sjO.mjs → canonicalization-hooks-CRVM-Kqh-Qi-VmEVg.mjs} +4 -3
  5. package/dist/canonicalization-hooks-CRVM-Kqh-Qi-VmEVg.mjs.map +1 -0
  6. package/dist/codec.d.mts +1 -1
  7. package/dist/codec.mjs +1 -1
  8. package/dist/{config-types-CFDf9ivE.mjs → config-types-DYTCUpAs.mjs} +5 -5
  9. package/dist/config-types-DYTCUpAs.mjs.map +1 -0
  10. package/dist/contract-builder-BHzQQk70.mjs +965 -0
  11. package/dist/contract-builder-BHzQQk70.mjs.map +1 -0
  12. package/dist/{contract-builder-DB8nguDE.d.mts → contract-builder-ClL-xMK2.d.mts} +271 -89
  13. package/dist/contract-builder-ClL-xMK2.d.mts.map +1 -0
  14. package/dist/contract-prisma6__provider.d.mts +35 -0
  15. package/dist/contract-prisma6__provider.d.mts.map +1 -0
  16. package/dist/contract-prisma6__provider.mjs +1202 -0
  17. package/dist/contract-prisma6__provider.mjs.map +1 -0
  18. package/dist/contract-psl.d.mts +152 -28
  19. package/dist/contract-psl.d.mts.map +1 -1
  20. package/dist/contract-psl.mjs +3 -2
  21. package/dist/contract-psl__provider.mjs +74 -44
  22. package/dist/contract-psl__provider.mjs.map +1 -1
  23. package/dist/contract-ts.d.mts +2 -2
  24. package/dist/contract-ts.mjs +2 -2
  25. package/dist/contract-ts__config-types.mjs +1 -1
  26. package/dist/contract-ts__contract-builder.d.mts +2 -2
  27. package/dist/contract-ts__contract-builder.mjs +1 -1
  28. package/dist/contract.d.mts +3 -3
  29. package/dist/contract.mjs +3 -3
  30. package/dist/contract__canonicalization-hooks.mjs +1 -1
  31. package/dist/contract__data-type.d.mts +37 -0
  32. package/dist/contract__data-type.d.mts.map +1 -0
  33. package/dist/contract__data-type.mjs +2 -0
  34. package/dist/contract__entity-kinds.d.mts +1 -1
  35. package/dist/contract__entity-kinds.mjs +1 -1
  36. package/dist/{control-C7-kthr1.d.mts → control-4pC8N2Rb.d.mts} +32 -19
  37. package/dist/control-4pC8N2Rb.d.mts.map +1 -0
  38. package/dist/{control-CClR5JMr.mjs → control-BQMBG11d.mjs} +19 -2
  39. package/dist/control-BQMBG11d.mjs.map +1 -0
  40. package/dist/{control-BbZQqmxo.mjs → control-B_pPN58L.mjs} +195 -87
  41. package/dist/control-B_pPN58L.mjs.map +1 -0
  42. package/dist/{control-Cj81sPbj.d.mts → control-CvQSMuxa.d.mts} +29 -6
  43. package/dist/control-CvQSMuxa.d.mts.map +1 -0
  44. package/dist/{control-adapter-Db5pT77b.d.mts → control-adapter-Bh_ZraGM--5JDb99k.d.mts} +48 -4
  45. package/dist/control-adapter-Bh_ZraGM--5JDb99k.d.mts.map +1 -0
  46. package/dist/control-adapter-CndDiTXW.d.mts +1 -0
  47. package/dist/dist-B8f-pfcT.mjs +1031 -0
  48. package/dist/dist-B8f-pfcT.mjs.map +1 -0
  49. package/dist/dist-Bgk36iLI.mjs +53 -0
  50. package/dist/dist-Bgk36iLI.mjs.map +1 -0
  51. package/dist/{dist-C7Ykq48Q.mjs → dist-CO2arS1K.mjs} +3 -1
  52. package/dist/dist-CO2arS1K.mjs.map +1 -0
  53. package/dist/{dist-Dyp05u64.mjs → dist-gmGbjhmk.mjs} +56 -32
  54. package/dist/dist-gmGbjhmk.mjs.map +1 -0
  55. package/dist/dist-xk_0xOR-.mjs +28 -0
  56. package/dist/dist-xk_0xOR-.mjs.map +1 -0
  57. package/dist/emitter.d.mts +2 -4
  58. package/dist/emitter.d.mts.map +1 -1
  59. package/dist/emitter.mjs +1 -1
  60. package/dist/{entity-kinds-B4KNTF8z-DPIuUuuB.mjs → entity-kinds-BQBtfVet-B-Px7NHp.mjs} +35 -18
  61. package/dist/entity-kinds-BQBtfVet-B-Px7NHp.mjs.map +1 -0
  62. package/dist/{execution-D5XyZ5XS.mjs → execution-CgP1Sdbr.mjs} +6 -3
  63. package/dist/execution-CgP1Sdbr.mjs.map +1 -0
  64. package/dist/{execution-CKnUiOfm.d.mts → execution-tPmN5pge.d.mts} +6 -2
  65. package/dist/execution-tPmN5pge.d.mts.map +1 -0
  66. package/dist/{exports-Bx-hlnZ3.mjs → exports-BAimNKOs.mjs} +31 -21
  67. package/dist/exports-BAimNKOs.mjs.map +1 -0
  68. package/dist/exports-BHQVApAg.mjs +86 -0
  69. package/dist/exports-BHQVApAg.mjs.map +1 -0
  70. package/dist/family.d.mts +11 -10
  71. package/dist/family.mjs +10 -9
  72. package/dist/family__control-adapter.d.mts +3 -2
  73. package/dist/family__control.d.mts +2 -2
  74. package/dist/family__control.mjs +3 -3
  75. package/dist/family__ir.d.mts +2 -2
  76. package/dist/family__ir.mjs +3 -3
  77. package/dist/family__migration.d.mts +1 -1
  78. package/dist/family__migration.mjs +1 -1
  79. package/dist/family__pack.d.mts +1 -1
  80. package/dist/family__pack.mjs +4 -2
  81. package/dist/family__pack.mjs.map +1 -1
  82. package/dist/family__runtime.d.mts +3 -3
  83. package/dist/family__runtime.mjs +3 -2
  84. package/dist/family__schema-verify.d.mts +1 -1
  85. package/dist/family__schema-verify.mjs +1 -1
  86. package/dist/{field-accessor-0oUt6RZC-B_Z30uAA.mjs → field-accessor-0oUt6RZC-CrJVzQiS.mjs} +2 -2
  87. package/dist/{field-accessor-0oUt6RZC-B_Z30uAA.mjs.map → field-accessor-0oUt6RZC-CrJVzQiS.mjs.map} +1 -1
  88. package/dist/{field-accessor-DHsAPiW3-BdYCspQC.d.mts → field-accessor-CmxCw9xP-C6jMngbK.d.mts} +35 -24
  89. package/dist/field-accessor-CmxCw9xP-C6jMngbK.d.mts.map +1 -0
  90. package/dist/index-9DDQlC5U.d.mts +87 -0
  91. package/dist/index-9DDQlC5U.d.mts.map +1 -0
  92. package/dist/{index-BR0ue13b.d.mts → index-BdXzdXGE.d.mts} +14 -8
  93. package/dist/index-BdXzdXGE.d.mts.map +1 -0
  94. package/dist/index-BhIiYIXu.d.mts +845 -0
  95. package/dist/index-BhIiYIXu.d.mts.map +1 -0
  96. package/dist/index-CQG5l2o9.d.mts +67 -0
  97. package/dist/index-CQG5l2o9.d.mts.map +1 -0
  98. package/dist/{index-DAOkcTCK.d.mts → index-FeVOOdZ0.d.mts} +9 -8
  99. package/dist/index-FeVOOdZ0.d.mts.map +1 -0
  100. package/dist/index-YY1SU_7o.d.mts +366 -0
  101. package/dist/index-YY1SU_7o.d.mts.map +1 -0
  102. package/dist/{index-DxoO-ywI.d.mts → index-rANtsIZG.d.mts} +9 -5
  103. package/dist/{index-DxoO-ywI.d.mts.map → index-rANtsIZG.d.mts.map} +1 -1
  104. package/dist/interpreter-BfHdPd7T-DGqi2_Um.mjs +2186 -0
  105. package/dist/interpreter-BfHdPd7T-DGqi2_Um.mjs.map +1 -0
  106. package/dist/{ir-CQrenTYt.d.mts → ir-BLC0t6_x.d.mts} +5 -27
  107. package/dist/ir-BLC0t6_x.d.mts.map +1 -0
  108. package/dist/{ir-Ch2aPr7a.mjs → ir-DGm0HXbP.mjs} +3 -8
  109. package/dist/ir-DGm0HXbP.mjs.map +1 -0
  110. package/dist/lowering.d.mts +1 -1
  111. package/dist/{migration-dcM7u4HG.mjs → migration-DnQ7_A_B.mjs} +4 -4
  112. package/dist/migration-DnQ7_A_B.mjs.map +1 -0
  113. package/dist/{migration-CNDQv5yB.d.mts → migration-YQVmgFU8.d.mts} +7 -7
  114. package/dist/{migration-CNDQv5yB.d.mts.map → migration-YQVmgFU8.d.mts.map} +1 -1
  115. package/dist/{mongo-contract-serializer-Cx7Fae8e-C8ZYPXpc.mjs → mongo-contract-serializer-Zx1rvil3-BywiKCpn.mjs} +27 -8
  116. package/dist/mongo-contract-serializer-Zx1rvil3-BywiKCpn.mjs.map +1 -0
  117. package/dist/{mongo-contract-view-AnejqfrQ-BaCFT0xm.d.mts → mongo-contract-view-AnejqfrQ-Wj_ulq2L.d.mts} +3 -3
  118. package/dist/{mongo-contract-view-AnejqfrQ-BaCFT0xm.d.mts.map → mongo-contract-view-AnejqfrQ-Wj_ulq2L.d.mts.map} +1 -1
  119. package/dist/{mongo-contract-view-rcWzby6f-wRBCUnBt.mjs → mongo-contract-view-D5yu2LrY-DCAZYJ4q.mjs} +4 -4
  120. package/dist/{mongo-contract-view-rcWzby6f-wRBCUnBt.mjs.map → mongo-contract-view-D5yu2LrY-DCAZYJ4q.mjs.map} +1 -1
  121. package/dist/mongo-data-type-DzyzU4LF-C1ydFXgE.mjs +53 -0
  122. package/dist/mongo-data-type-DzyzU4LF-C1ydFXgE.mjs.map +1 -0
  123. package/dist/{mongo-value-set-tNn9-pun-dJYx_rVD.d.mts → mongo-value-set-DEd7WLCT-B2Ar2GkJ.d.mts} +20 -4
  124. package/dist/mongo-value-set-DEd7WLCT-B2Ar2GkJ.d.mts.map +1 -0
  125. package/dist/orm.d.mts +154 -96
  126. package/dist/orm.d.mts.map +1 -1
  127. package/dist/orm.mjs +670 -148
  128. package/dist/orm.mjs.map +1 -1
  129. package/dist/pack-qw77Jt2G.d.mts +58 -0
  130. package/dist/pack-qw77Jt2G.d.mts.map +1 -0
  131. package/dist/query-ast.d.mts +5 -5
  132. package/dist/query-ast.mjs +3 -3
  133. package/dist/query-ast__control.d.mts +4 -4
  134. package/dist/query-ast__control.mjs +2 -2
  135. package/dist/query-ast__execution.d.mts +2 -2
  136. package/dist/query-ast__execution.mjs +1 -1
  137. package/dist/query-builder.d.mts +4 -836
  138. package/dist/query-builder.mjs +2 -2
  139. package/dist/query-builder__contract-free.d.mts +6 -6
  140. package/dist/query-builder__contract-free.mjs +3 -3
  141. package/dist/{query-plan-C0-Yu8hf-DdilEdW6.d.mts → query-plan-3fs1HokF-CrNsr-Wx.d.mts} +10 -4
  142. package/dist/{query-plan-C0-Yu8hf-DdilEdW6.d.mts.map → query-plan-3fs1HokF-CrNsr-Wx.d.mts.map} +1 -1
  143. package/dist/runtime-B5fNQHQZ.mjs +16 -0
  144. package/dist/runtime-B5fNQHQZ.mjs.map +1 -0
  145. package/dist/runtime-yZA30qM2.d.mts +11 -0
  146. package/dist/runtime-yZA30qM2.d.mts.map +1 -0
  147. package/dist/runtime.d.mts +74 -87
  148. package/dist/runtime.d.mts.map +1 -1
  149. package/dist/runtime.mjs +133 -67
  150. package/dist/runtime.mjs.map +1 -1
  151. package/dist/schema-ir.d.mts +2 -2
  152. package/dist/schema-ir.mjs +2 -2
  153. package/dist/{schema-verify-DJGr28XW.d.mts → schema-verify-CVOG6EZx.d.mts} +5 -5
  154. package/dist/{schema-verify-DJGr28XW.d.mts.map → schema-verify-CVOG6EZx.d.mts.map} +1 -1
  155. package/dist/value.d.mts +2 -2
  156. package/dist/value.mjs +1 -1
  157. package/dist/{verify-mongo-schema-De0FG2Rm-CCzwnNPY.mjs → verify-mongo-schema-CeQP5N4k-CNOctppM.mjs} +9 -26
  158. package/dist/verify-mongo-schema-CeQP5N4k-CNOctppM.mjs.map +1 -0
  159. package/dist/wire.d.mts +3 -3
  160. package/dist/wire.mjs +14 -2
  161. package/dist/wire.mjs.map +1 -1
  162. package/package.json +24 -21
  163. package/dist/authoring-entity-types-BGtkMyoN-D32kzx28.mjs +0 -176
  164. package/dist/authoring-entity-types-BGtkMyoN-D32kzx28.mjs.map +0 -1
  165. package/dist/canonicalization-hooks-DF3Z6sjO.mjs.map +0 -1
  166. package/dist/config-types-CFDf9ivE.mjs.map +0 -1
  167. package/dist/contract-builder-BFq0gOMV.mjs +0 -634
  168. package/dist/contract-builder-BFq0gOMV.mjs.map +0 -1
  169. package/dist/contract-builder-DB8nguDE.d.mts.map +0 -1
  170. package/dist/control-BbZQqmxo.mjs.map +0 -1
  171. package/dist/control-C7-kthr1.d.mts.map +0 -1
  172. package/dist/control-CClR5JMr.mjs.map +0 -1
  173. package/dist/control-Cj81sPbj.d.mts.map +0 -1
  174. package/dist/control-adapter-Db5pT77b.d.mts.map +0 -1
  175. package/dist/dist-C7Ykq48Q.mjs.map +0 -1
  176. package/dist/dist-Czwqx_i3.mjs +0 -58
  177. package/dist/dist-Czwqx_i3.mjs.map +0 -1
  178. package/dist/dist-DHrEJnhK.mjs +0 -236
  179. package/dist/dist-DHrEJnhK.mjs.map +0 -1
  180. package/dist/dist-Dyp05u64.mjs.map +0 -1
  181. package/dist/entity-kinds-B4KNTF8z-DPIuUuuB.mjs.map +0 -1
  182. package/dist/execution-CKnUiOfm.d.mts.map +0 -1
  183. package/dist/execution-D5XyZ5XS.mjs.map +0 -1
  184. package/dist/exports-Bx-hlnZ3.mjs.map +0 -1
  185. package/dist/exports-C4RGBGzZ.mjs +0 -156
  186. package/dist/exports-C4RGBGzZ.mjs.map +0 -1
  187. package/dist/field-accessor-DHsAPiW3-BdYCspQC.d.mts.map +0 -1
  188. package/dist/index-BR0ue13b.d.mts.map +0 -1
  189. package/dist/index-Cd2zLiU6.d.mts +0 -128
  190. package/dist/index-Cd2zLiU6.d.mts.map +0 -1
  191. package/dist/index-DAOkcTCK.d.mts.map +0 -1
  192. package/dist/index-Dv2PNMiG.d.mts +0 -53
  193. package/dist/index-Dv2PNMiG.d.mts.map +0 -1
  194. package/dist/index-wKMm41HC.d.mts +0 -30
  195. package/dist/index-wKMm41HC.d.mts.map +0 -1
  196. package/dist/interpreter-BxbUTQ3k-ClR98Ned.mjs +0 -1091
  197. package/dist/interpreter-BxbUTQ3k-ClR98Ned.mjs.map +0 -1
  198. package/dist/ir-CQrenTYt.d.mts.map +0 -1
  199. package/dist/ir-Ch2aPr7a.mjs.map +0 -1
  200. package/dist/migration-dcM7u4HG.mjs.map +0 -1
  201. package/dist/mongo-contract-serializer-Cx7Fae8e-C8ZYPXpc.mjs.map +0 -1
  202. package/dist/mongo-value-set-tNn9-pun-dJYx_rVD.d.mts.map +0 -1
  203. package/dist/pack-D9aLY50F.d.mts +0 -44
  204. package/dist/pack-D9aLY50F.d.mts.map +0 -1
  205. package/dist/query-builder.d.mts.map +0 -1
  206. package/dist/runtime-DPkRW4iu.d.mts +0 -1
  207. package/dist/verify-mongo-schema-De0FG2Rm-CCzwnNPY.mjs.map +0 -1
@@ -1,9 +1,11 @@
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-tNn9-pun-dJYx_rVD.mjs";
2
- import "./index-Cd2zLiU6.mjs";
3
- import { ContractFieldType, ControlPolicy, CrossReference, ProfileHashBase, StorageHashBase } from "@prisma/orm-framework/contract/types";
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
+ 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 { BoundEnumType, CodecTypeMap, EntityHelpersFromNamespace, EnumMember, EnumTypeHandle, ExtractAuthoringNamespaceFromPack, MergeExtensionAuthoringNamespaces, bindEnumType, enumType, isEnumTypeHandle, member } from "@prisma/orm-framework/contract-authoring";
6
- import { ExtensionPackRef, FamilyPackRef, TargetPackRef } from "@prisma/orm-framework/components/components";
5
+ import { ContractExecutionSection, ContractFieldType, ControlPolicy, CrossReference, EnumMemberValueType, ExecutionHashBase, ExecutionMutationDefault, ExecutionMutationDefaultPhases, ExecutionMutationDefaultValue, FieldTypesFromDomain, JsonValue, ProfileHashBase, StorageHashBase } from "@prisma/orm-framework/contract/types";
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
+ import { AuthoringArgumentDescriptor, AuthoringFieldPresetDescriptor } from "@prisma/orm-framework/components/authoring";
8
+ import { ExtensionPackRef, ExtensionPackValues, FamilyPackRef, GeneratorFunctionCall, GeneratorHelpersOf, GeneratorPhase, TargetPackRef } from "@prisma/orm-framework/components/components";
7
9
  //#region ../../../2-mongo-family/2-authoring/contract-ts/dist/contract-builder.d.mts
8
10
  //#region src/contract-builder.d.ts
9
11
  type VariantSpec = {
@@ -16,6 +18,7 @@ type StringListInput = string | readonly string[];
16
18
  type Present<T> = Exclude<T, undefined>;
17
19
  type EmptyObject = Record<never, never>;
18
20
  type Simplify<T> = { [K in keyof T]: T[K]; } & EmptyObject;
21
+ type Flatten<T> = { [K in keyof T]: T[K]; };
19
22
  type StrictShape<Actual, Shape> = Actual & Shape & Record<Exclude<keyof Actual, keyof Shape>, never>;
20
23
  type UnionToIntersection<Union> = (Union extends unknown ? (value: Union) => void : never) extends ((value: infer Intersection) => void) ? Intersection : never;
21
24
  type ExtractCodecTypesFromPack<P> = P extends {
@@ -27,44 +30,121 @@ type MongoCodecTypes = {
27
30
  readonly 'mongo/objectId@1': {
28
31
  readonly input: string;
29
32
  readonly output: string;
33
+ readonly traits: 'equality';
30
34
  };
31
35
  readonly 'mongo/string@1': {
32
36
  readonly input: string;
33
37
  readonly output: string;
38
+ readonly traits: 'equality' | 'order' | 'textual';
34
39
  };
35
40
  readonly 'mongo/double@1': {
36
41
  readonly input: number;
37
42
  readonly output: number;
43
+ readonly traits: 'equality' | 'order' | 'numeric';
38
44
  };
39
45
  readonly 'mongo/int32@1': {
40
46
  readonly input: number;
41
47
  readonly output: number;
48
+ readonly traits: 'equality' | 'order' | 'numeric';
42
49
  };
43
50
  readonly 'mongo/bool@1': {
44
51
  readonly input: boolean;
45
52
  readonly output: boolean;
53
+ readonly traits: 'equality' | 'boolean';
46
54
  };
47
55
  readonly 'mongo/date@1': {
48
56
  readonly input: Date;
49
57
  readonly output: Date;
58
+ readonly traits: 'equality' | 'order';
50
59
  };
51
60
  readonly 'mongo/vector@1': {
52
61
  readonly input: readonly number[];
53
62
  readonly output: readonly number[];
63
+ readonly traits: 'equality';
64
+ };
65
+ readonly 'mongo/int64@1': {
66
+ readonly input: bigint;
67
+ readonly output: bigint;
68
+ readonly traits: 'equality' | 'order' | 'numeric';
69
+ };
70
+ readonly 'mongo/int64Number@1': {
71
+ readonly input: number;
72
+ readonly output: number;
73
+ readonly traits: 'equality' | 'order' | 'numeric';
74
+ };
75
+ readonly 'mongo/decimal128@1': {
76
+ readonly input: string;
77
+ readonly output: string;
78
+ readonly traits: 'equality' | 'order' | 'numeric';
79
+ readonly keepsWrittenForm: true;
80
+ };
81
+ readonly 'mongo/binary@1': {
82
+ readonly input: Uint8Array;
83
+ readonly output: Uint8Array;
84
+ readonly traits: 'equality';
85
+ };
86
+ readonly 'mongo/json@1': {
87
+ readonly input: JsonValue;
88
+ readonly output: JsonValue;
89
+ readonly traits: never;
90
+ };
91
+ readonly 'mongo/bson@1': {
92
+ readonly input: BsonInputValue;
93
+ readonly output: BsonValue;
94
+ readonly traits: never;
54
95
  };
55
96
  };
56
97
  type MergeExtensionCodecTypes<Packs extends Record<string, unknown>> = UnionToIntersection<{ [K in keyof Packs]: ExtractCodecTypesFromPack<Packs[K]>; }[keyof Packs]>;
57
- type MergeExtensionCodecTypesSafe<Packs> = Packs extends Record<string, unknown> ? keyof Packs extends never ? Record<string, never> : MergeExtensionCodecTypes<Packs> : Record<string, never>;
58
- interface FieldBuilder<Type extends ContractFieldType = ContractFieldType, Nullable extends boolean = boolean, Many extends boolean = boolean, Handle extends EnumTypeHandle | undefined = EnumTypeHandle | undefined> {
98
+ type MergeExtensionCodecTypesSafe<Packs> = Packs extends Record<string, unknown> ? keyof Packs extends never ? Record<never, never> : MergeExtensionCodecTypes<Packs> : Record<never, never>;
99
+ interface FieldBuilder<Type extends ContractFieldType = ContractFieldType, Nullable extends boolean = boolean, Many extends false | {
100
+ readonly elementNullable: boolean;
101
+ } = false | {
102
+ readonly elementNullable: boolean;
103
+ }, Handle extends EnumTypeHandle | undefined = EnumTypeHandle | undefined, ExecutionDefaults extends ExecutionMutationDefaultPhases | undefined = undefined, StoredName extends string | undefined = string | undefined> {
59
104
  readonly __kind: 'field';
60
105
  readonly __type: Type;
61
106
  readonly __nullable: Nullable;
62
107
  readonly __many: Many;
63
108
  readonly __enumHandle: Handle;
64
- optional(): FieldBuilder<Type, true, Many, Handle>;
65
- many(): FieldBuilder<Type, Nullable, true, Handle>;
109
+ readonly __executionDefaults?: ExecutionDefaults;
110
+ readonly __storedName: StoredName;
111
+ /** The generator function calls `.onCreate(...)` and `.onUpdate(...)` give, resolved by the field's codec when the contract is built. */
112
+ readonly __generatorCalls?: FieldGeneratorCalls;
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()`. */
114
+ onCreate(call: GeneratorFunctionCall): FieldBuilder<Type, Nullable, Many, Handle, WithGeneratedPhase<ExecutionDefaults, 'onCreate'>, StoredName>;
115
+ /** Generates the field's value in the client every time a document is updated, with a call from `gen`, such as `gen.now()`. */
116
+ onUpdate(call: GeneratorFunctionCall): FieldBuilder<Type, Nullable, Many, Handle, WithGeneratedPhase<ExecutionDefaults, 'onUpdate'>, StoredName>;
117
+ readonly optional: FilledOnWrite<ExecutionDefaults> extends true ? (this: 'This field generates a value on write, so it cannot be optional') => never : () => FieldBuilder<Type, true, Many, Handle, ExecutionDefaults, StoredName>;
118
+ readonly many: FilledOnWrite<ExecutionDefaults> extends true ? (this: 'This field generates a value on write, so it cannot be a list') => never : {
119
+ (): FieldBuilder<Type, Nullable, {
120
+ readonly elementNullable: false;
121
+ }, Handle, ExecutionDefaults, StoredName>;
122
+ (options: {
123
+ readonly elementsNullable: false;
124
+ }): FieldBuilder<Type, Nullable, {
125
+ readonly elementNullable: false;
126
+ }, Handle, ExecutionDefaults, StoredName>;
127
+ (options: {
128
+ readonly elementsNullable: true;
129
+ }): FieldBuilder<Type, Nullable, {
130
+ readonly elementNullable: true;
131
+ }, Handle, ExecutionDefaults, StoredName>;
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>;
66
137
  }
67
- interface ValueObjectBuilder<Name extends string = string, Fields extends Record<string, FieldBuilder> = Record<string, FieldBuilder>> {
138
+ type FieldGeneratorCalls = {
139
+ readonly onCreate?: GeneratorFunctionCall;
140
+ readonly onUpdate?: GeneratorFunctionCall;
141
+ };
142
+ type WithGeneratedPhase<ExecutionDefaults extends ExecutionMutationDefaultPhases | undefined, Phase extends GeneratorPhase> = (ExecutionDefaults extends undefined ? unknown : ExecutionDefaults) & { readonly [Key in Phase]: ExecutionMutationDefaultValue; };
143
+ /**
144
+ * Whether a preset such as `temporal.createdAt()` fills the field on write. Distributes over a union, so the widest `FieldBuilder` constraint keeps both signatures and every field builder satisfies it.
145
+ */
146
+ type FilledOnWrite<ExecutionDefaults> = ExecutionDefaults extends undefined ? false : [keyof ExecutionDefaults] extends [never] ? false : true;
147
+ interface ValueObjectBuilder<Name extends string = string, Fields extends Record<string, AnyFieldBuilder> = Record<string, AnyFieldBuilder>> {
68
148
  readonly __kind: 'valueObject';
69
149
  readonly __name: Name;
70
150
  readonly __fields: Fields;
@@ -78,13 +158,19 @@ interface RelationOn<LocalFields extends readonly string[] = readonly string[],
78
158
  readonly localFields: LocalFields;
79
159
  readonly targetFields: TargetFields;
80
160
  }
81
- interface RelationBuilder<To extends string = string, Cardinality extends '1:1' | '1:N' | 'N:1' = '1:1' | '1:N' | 'N:1', On extends RelationOn | undefined = RelationOn | undefined> {
161
+ interface RelationBuilder<To extends string = string, Cardinality extends '1:1' | '1:N' | 'N:1' = '1:1' | '1:N' | 'N:1', On extends RelationOn | undefined = RelationOn | undefined, Nullable extends boolean | undefined = boolean | undefined> {
82
162
  readonly __kind: 'relation';
83
163
  readonly __to: To;
84
164
  readonly __cardinality: Cardinality;
85
165
  readonly __on: On;
166
+ /**
167
+ * The authored `optional` flag of a `belongsTo`; `undefined` when the author
168
+ * gave none. Always `true` for a `hasOne` reference: the side without the
169
+ * foreign key has nothing guaranteeing the related document exists.
170
+ */
171
+ readonly __nullable: Nullable;
86
172
  }
87
- interface ModelBuilder<Name extends string = string, Fields extends Record<string, FieldBuilder> = Record<string, FieldBuilder>, Relations extends Record<string, RelationBuilder> = Record<string, RelationBuilder>, Collection extends string | undefined = string | undefined, Owner extends string | undefined = string | undefined, Base extends string | undefined = string | undefined, StorageRelations extends Record<string, StorageRelationSpec> | undefined = Record<string, StorageRelationSpec> | undefined, Discriminator extends {
173
+ interface ModelBuilder<Name extends string = string, Fields extends Record<string, AnyFieldBuilder> = Record<string, AnyFieldBuilder>, Relations extends Record<string, RelationBuilder> = Record<string, RelationBuilder>, Collection extends string | undefined = string | undefined, Owner extends string | undefined = string | undefined, Base extends string | undefined = string | undefined, StorageRelations extends Record<string, StorageRelationSpec> | undefined = Record<string, StorageRelationSpec> | undefined, Discriminator extends {
88
174
  readonly field: string;
89
175
  } | undefined = {
90
176
  readonly field: string;
@@ -104,7 +190,9 @@ interface ModelBuilder<Name extends string = string, Fields extends Record<strin
104
190
  readonly __variants: Variants;
105
191
  ref<const FieldName extends keyof Fields & string>(fieldName: FieldName): FieldReference<Name, FieldName>;
106
192
  }
107
- type AnyFieldBuilder = FieldBuilder<ContractFieldType, boolean, boolean, EnumTypeHandle | undefined>;
193
+ type AnyFieldBuilder = FieldBuilder<ContractFieldType, boolean, false | {
194
+ readonly elementNullable: boolean;
195
+ }, EnumTypeHandle | undefined, ExecutionMutationDefaultPhases | undefined>;
108
196
  type AnyReferenceRelationBuilder = RelationBuilder<string, '1:1' | '1:N' | 'N:1', RelationOn>;
109
197
  type AnyEmbedRelationBuilder = RelationBuilder<string, '1:1' | '1:N', undefined>;
110
198
  type AnyRelationBuilder = AnyReferenceRelationBuilder | AnyEmbedRelationBuilder;
@@ -141,18 +229,28 @@ type NormalizeModelNameOrUndefined<T> = [T] extends [undefined] ? undefined : No
141
229
  type NormalizeValueObjectName<T> = T extends string ? T : ExtractValueObjectName<T>;
142
230
  type NormalizeStringList<T> = T extends readonly string[] ? T : T extends string ? readonly [T] : readonly string[];
143
231
  type NormalizeTargetFieldList<T> = T extends readonly AnyFieldReference[] ? { readonly [K in keyof T]: ExtractFieldReferenceName<T[K]>; } : T extends AnyFieldReference ? readonly [ExtractFieldReferenceName<T>] : NormalizeStringList<T>;
144
- type ContractFieldFromBuilder<TBuilder> = TBuilder extends FieldBuilder<infer Type extends ContractFieldType, infer Nullable extends boolean, infer Many extends boolean> ? Simplify<{
232
+ type ContractFieldFromBuilder<TBuilder> = TBuilder extends FieldBuilder<infer Type extends ContractFieldType, infer Nullable extends boolean, infer Many extends false | {
233
+ readonly elementNullable: boolean;
234
+ }, EnumTypeHandle | undefined, ExecutionMutationDefaultPhases | undefined> ? Simplify<{
145
235
  readonly type: Type;
146
236
  readonly nullable: Nullable;
147
- } & (Many extends true ? {
148
- readonly many: true;
149
- } : EmptyObject)> : never;
237
+ readonly many: Many;
238
+ }> : never;
150
239
  type ContractFieldsFromRecord<Fields extends Record<string, AnyFieldBuilder>> = Simplify<{ readonly [K in keyof Fields]: ContractFieldFromBuilder<Fields[K]>; }>;
151
240
  type ContractValueObjectFromBuilder<TBuilder> = TBuilder extends ValueObjectBuilder<string, infer Fields extends Record<string, AnyFieldBuilder>> ? Simplify<{
152
241
  readonly fields: ContractFieldsFromRecord<Fields>;
153
242
  }> : never;
154
243
  type ContractValueObjectsFromRecord<ValueObjects extends Record<string, AnyValueObjectBuilder>> = Simplify<{ readonly [K in keyof ValueObjects as ExtractValueObjectName<ValueObjects[K]>]: ContractValueObjectFromBuilder<ValueObjects[K]>; }>;
155
- type ContractRelationFromBuilder<TBuilder> = TBuilder extends RelationBuilder<infer To extends string, infer Cardinality extends '1:1' | '1:N' | 'N:1', infer On extends RelationOn | undefined> ? On extends RelationOn ? {
244
+ type AnyFieldNullable<Fields extends Record<string, AnyFieldBuilder>, FieldNames extends readonly string[]> = FieldNames[number] extends (infer Name) ? Name extends keyof Fields ? Fields[Name] extends FieldBuilder<ContractFieldType, true, false | {
245
+ readonly elementNullable: boolean;
246
+ }, EnumTypeHandle | undefined, ExecutionMutationDefaultPhases | undefined> ? true : never : never : never;
247
+ type ToOneRelationNullable<Fields extends Record<string, AnyFieldBuilder>, Cardinality extends '1:1' | 'N:1', On extends RelationOn, Nullable extends boolean | undefined> = Nullable extends boolean ? Nullable : Cardinality extends '1:1' ? true : [AnyFieldNullable<Fields, On['localFields']>] extends [never] ? false : true;
248
+ type ContractRelationFromBuilder<TBuilder, Fields extends Record<string, AnyFieldBuilder>> = TBuilder extends RelationBuilder<infer To extends string, infer Cardinality extends '1:1' | '1:N' | 'N:1', infer On extends RelationOn | undefined, infer Nullable extends boolean | undefined> ? On extends RelationOn ? Cardinality extends '1:1' | 'N:1' ? {
249
+ readonly to: CrossRefFor<To>;
250
+ readonly cardinality: Cardinality;
251
+ readonly nullable: ToOneRelationNullable<Fields, Cardinality, On, Nullable>;
252
+ readonly on: On;
253
+ } : {
156
254
  readonly to: CrossRefFor<To>;
157
255
  readonly cardinality: Cardinality;
158
256
  readonly on: On;
@@ -160,8 +258,16 @@ type ContractRelationFromBuilder<TBuilder> = TBuilder extends RelationBuilder<in
160
258
  readonly to: CrossRefFor<To>;
161
259
  readonly cardinality: Cardinality;
162
260
  } : never;
163
- type ContractRelationsFromRecord<Relations extends Record<string, AnyRelationBuilder>> = keyof Relations extends never ? Record<string, never> : Simplify<{ readonly [K in keyof Relations]: ContractRelationFromBuilder<Relations[K]>; }>;
164
- type ContractModelStorageFromBuilder<TBuilder> = ModelStorageSection<TBuilder> & ModelStorageRelationsSection<TBuilder>;
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>; }>;
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>>;
165
271
  type MaybeOwner<Owner> = [Owner] extends [undefined] ? EmptyObject : {
166
272
  readonly owner: Owner & string;
167
273
  };
@@ -174,12 +280,14 @@ type MaybeDiscriminator<Discriminator> = [Discriminator] extends [undefined] ? E
174
280
  };
175
281
  };
176
282
  type MaybeVariants<Variants> = [Variants] extends [undefined] ? EmptyObject : {
177
- readonly variants: Variants;
283
+ readonly variants: { readonly [K in keyof Variants & string as Variants[K] extends {
284
+ readonly value: infer Value extends string;
285
+ } ? Value : never]: CrossRefFor<K>; };
178
286
  };
179
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<{
180
288
  readonly fields: ContractFieldsFromRecord<Fields>;
181
- readonly relations: ContractRelationsFromRecord<Relations>;
182
- readonly storage: ContractModelStorageFromBuilder<TBuilder>;
289
+ readonly relations: ContractRelationsFromRecord<Relations, Fields>;
290
+ readonly storage: ContractModelStorageFromBuilder<TBuilder, Fields>;
183
291
  } & MaybeOwner<Owner> & MaybeBase<Base> & MaybeDiscriminator<Discriminator> & MaybeVariants<Variants>> : never;
184
292
  type ContractModelsFromRecord<Models extends Record<string, AnyModelBuilder>> = Simplify<{ readonly [K in keyof Models as ExtractModelName<Models[K]>]: ContractModelFromBuilder<Models[K]>; }>;
185
293
  type CrossRefFor<M extends string> = CrossReference & {
@@ -197,21 +305,15 @@ type DefinitionValueObjects<Definition> = Definition extends {
197
305
  type DefinitionEnums<Definition> = Definition extends {
198
306
  readonly enums?: infer E;
199
307
  } ? Present<E> extends Record<string, EnumTypeHandle> ? string extends keyof Present<E> ? Record<never, never> : Present<E> : Record<never, never> : Record<never, never>;
200
- type EnumHandleAccessorType<Handle> = Handle extends EnumTypeHandle<infer _Name, infer Values, infer Names, infer MembersMap> ? {
201
- readonly values: Values;
202
- readonly names: Names;
203
- readonly members: MembersMap;
204
- has(v: Values[number]): boolean;
205
- nameOf(v: Values[number]): string | undefined;
206
- ordinalOf(v: Values[number]): number;
207
- } : never;
208
- type BuiltEnumAccessors<Definition> = { readonly [K in keyof DefinitionEnums<Definition>]: EnumHandleAccessorType<DefinitionEnums<Definition>[K]>; };
209
308
  type DefinitionRoots<Definition> = Definition extends {
210
309
  readonly roots?: infer Roots extends Record<string, ModelNameInput>;
211
310
  } ? NormalizeRoots<Roots> : DerivedRootModels<DefinitionModels<Definition>>;
212
311
  type DefinitionExtensions<Definition> = Definition extends {
213
312
  readonly extensions?: infer Extensions extends Record<string, ExtensionPackRef<string, string>>;
214
313
  } ? Extensions : Record<never, never>;
314
+ type ScaffoldExtensions<Definition> = Definition extends {
315
+ readonly extensions?: infer Extensions extends Record<string, ExtensionPackRef<string, string>>;
316
+ } ? Extensions : undefined;
215
317
  type DefinitionFamilyId<Definition> = Definition extends {
216
318
  readonly family: FamilyPackRef<infer FamilyId>;
217
319
  } ? FamilyId : string;
@@ -225,20 +327,29 @@ type DefinitionStorage<Definition> = Simplify<MongoStorageShape & {
225
327
  type MaybeValueObjectsSection<ValueObjects extends Record<string, AnyValueObjectBuilder>> = keyof ValueObjects extends never ? EmptyObject : {
226
328
  readonly valueObjects: ContractValueObjectsFromRecord<ValueObjects>;
227
329
  };
228
- type EnumHandleToEntry<Handle> = Handle extends EnumTypeHandle<string, infer Values, infer _Names, infer _MembersMap> ? {
229
- readonly codecId: string;
230
- readonly members: readonly {
231
- readonly name: string;
232
- readonly value: Values[number];
233
- }[];
234
- } : never;
235
- type ContractEnumsFromRecord<Enums extends Record<string, EnumTypeHandle>> = { readonly [K in keyof Enums as Enums[K] extends EnumTypeHandle<infer Name> ? Name : never]: EnumHandleToEntry<Enums[K]>; };
236
- type MaybeEnumsSection<Enums extends Record<string, EnumTypeHandle>> = keyof Enums extends never ? EmptyObject : {
237
- readonly enum: ContractEnumsFromRecord<Enums>;
330
+ type HandleName<Handle> = Handle extends EnumTypeHandle<infer Name> ? Name : never;
331
+ type StoredEnumValue<Value> = Value extends JsonValue ? Value : JsonValue;
332
+ type EnumHandleMembers<Handle, Stored extends boolean> = Handle extends EnumTypeHandle<string, infer Values, infer Names> ? { readonly [I in keyof Values]: {
333
+ readonly name: I extends keyof Names ? Names[I] : never;
334
+ readonly value: Stored extends true ? StoredEnumValue<Values[I]> : Values[I];
335
+ }; } : never;
336
+ type EnumHandleEntries<Enums> = { readonly [K in keyof Enums as HandleName<Enums[K]>]: {
337
+ readonly codecId: Enums[K] extends {
338
+ readonly codecId: infer CodecId;
339
+ } ? CodecId : string;
340
+ readonly members: EnumHandleMembers<Enums[K], true>;
341
+ }; };
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 : {
347
+ readonly enum: EnumHandleEntries<Enums>;
348
+ readonly enumMemberTypes?: EnumHandleMemberTypes<Enums, CodecTypes>;
238
349
  };
239
350
  type MongoDomainNamespaceFromDefinition<Definition> = Simplify<{
240
351
  readonly models: ContractModelsFromRecord<DefinitionModels<Definition>>;
241
- } & MaybeValueObjectsSection<DefinitionValueObjects<Definition>> & MaybeEnumsSection<DefinitionEnums<Definition>>>;
352
+ } & MaybeValueObjectsSection<DefinitionValueObjects<Definition>> & MaybeEnumsSection<DefinitionEnums<Definition>, CodecTypesFromDefinition<Definition>>>;
242
353
  type MongoContractBaseFromDefinition<Definition> = Simplify<{
243
354
  readonly target: DefinitionTargetId<Definition>;
244
355
  readonly targetFamily: DefinitionFamilyId<Definition>;
@@ -252,38 +363,74 @@ type MongoContractBaseFromDefinition<Definition> = Simplify<{
252
363
  readonly profileHash: ProfileHashBase<string>;
253
364
  readonly meta: Record<string, never>;
254
365
  readonly defaultControlPolicy?: ControlPolicy;
255
- readonly enumAccessors?: BuiltEnumAccessors<Definition>;
366
+ readonly execution?: ExecutionSectionFromDefinition<Definition>;
256
367
  }>;
368
+ type ModelExecutionDefaults<TBuilder> = ExtractModelCollection<TBuilder> extends (infer Entry extends string) ? { [FieldName in keyof ExtractModelFields<TBuilder> & string]: ExtractModelFields<TBuilder>[FieldName] extends {
369
+ readonly __executionDefaults?: infer Phases extends ExecutionMutationDefaultPhases;
370
+ } ? keyof Phases extends never ? never : {
371
+ readonly ref: {
372
+ readonly namespace: typeof UNBOUND_NAMESPACE_ID;
373
+ readonly entry: Entry;
374
+ readonly field: StoredNameFromBuilder<ExtractModelFields<TBuilder>[FieldName], FieldName>;
375
+ };
376
+ } & Phases : never; }[keyof ExtractModelFields<TBuilder> & string] : never;
377
+ type ExecutionDefaultsFromDefinition<Definition> = { [ModelKey in keyof DefinitionModels<Definition>]: ModelExecutionDefaults<DefinitionModels<Definition>[ModelKey]>; }[keyof DefinitionModels<Definition>];
378
+ type ExecutionSectionFromDefinition<Definition> = [ExecutionDefaultsFromDefinition<Definition>] extends [never] ? ContractExecutionSection : {
379
+ readonly executionHash: ExecutionHashBase<string>;
380
+ readonly mutations: {
381
+ readonly defaults: ReadonlyArray<Extract<Flatten<ExecutionDefaultsFromDefinition<Definition>>, ExecutionMutationDefault>>;
382
+ };
383
+ };
257
384
  type CodecTypesFromDefinition<Definition> = MongoCodecTypes & MergeExtensionCodecTypesSafe<DefinitionExtensions<Definition>>;
258
- type BuilderEnumValueUnion<TBuilder> = TBuilder extends FieldBuilder<ContractFieldType, boolean, boolean, infer Handle extends EnumTypeHandle | undefined> ? [Handle] extends [EnumTypeHandle<string, infer Values>] ? readonly unknown[] extends Values ? never : Values[number] : never : never;
259
- type BuilderBaseChannelType<TBuilder, TValueObjects extends Record<string, AnyValueObjectBuilder>, TCodecTypes extends Record<string, {
260
- output: unknown;
261
- input: unknown;
262
- }>, Channel extends 'output' | 'input'> = TBuilder extends FieldBuilder<infer Type extends ContractFieldType, boolean, boolean, EnumTypeHandle | undefined> ? [BuilderEnumValueUnion<TBuilder>] extends [never] ? Type extends {
263
- readonly kind: 'scalar';
264
- readonly codecId: infer CId extends keyof TCodecTypes;
265
- } ? TCodecTypes[CId][Channel] : Type extends {
266
- readonly kind: 'valueObject';
267
- readonly name: infer VOName extends string;
268
- } ? VOName extends keyof TValueObjects ? { -readonly [K in keyof ExtractValueObjectFields<TValueObjects[VOName]>]: BuilderFieldChannelType<ExtractValueObjectFields<TValueObjects[VOName]>[K], TValueObjects, TCodecTypes, Channel>; } : unknown : unknown : BuilderEnumValueUnion<TBuilder> : never;
269
- type ExtractValueObjectFields<TBuilder> = TBuilder extends NamedValueObjectBuilder<string, infer Fields> ? Fields : Record<never, never>;
270
- type BuilderFieldChannelType<TBuilder, TValueObjects extends Record<string, AnyValueObjectBuilder>, TCodecTypes extends Record<string, {
271
- output: unknown;
272
- input: unknown;
273
- }>, Channel extends 'output' | 'input'> = TBuilder extends FieldBuilder<ContractFieldType, infer Nullable extends boolean, infer Many extends boolean, EnumTypeHandle | undefined> ? (Many extends true ? BuilderBaseChannelType<TBuilder, TValueObjects, TCodecTypes, Channel>[] : BuilderBaseChannelType<TBuilder, TValueObjects, TCodecTypes, Channel>) | (Nullable extends true ? null : never) : never;
385
+ type BuilderEnumValueUnion<TBuilder> = TBuilder extends FieldBuilder<ContractFieldType, boolean, false | {
386
+ readonly elementNullable: boolean;
387
+ }, infer Handle extends EnumTypeHandle | undefined, ExecutionMutationDefaultPhases | undefined> ? [Handle] extends [EnumTypeHandle<string, infer Values>] ? readonly unknown[] extends Values ? never : Values[number] : never : never;
274
388
  type ExtractModelFields<TBuilder> = TBuilder extends NamedModelBuilder<string, infer Fields> ? Fields : Record<never, never>;
275
- type FieldChannelTypesFromDefinition<Definition, Channel extends 'output' | 'input'> = { readonly [K in typeof UNBOUND_NAMESPACE_ID]: { readonly [ModelKey in keyof DefinitionModels<Definition> as ExtractModelName<DefinitionModels<Definition>[ModelKey]>]: { readonly [FieldName in keyof ExtractModelFields<DefinitionModels<Definition>[ModelKey]>]: BuilderFieldChannelType<ExtractModelFields<DefinitionModels<Definition>[ModelKey]>[FieldName], DefinitionValueObjects<Definition>, CodecTypesFromDefinition<Definition>, Channel>; }; }; };
276
- type FieldOutputTypesFromDefinition<Definition> = FieldChannelTypesFromDefinition<Definition, 'output'>;
277
- type FieldInputTypesFromDefinition<Definition> = FieldChannelTypesFromDefinition<Definition, 'input'>;
278
- type MongoContractResult<Definition> = MongoContractWithTypeMaps<MongoContractBaseFromDefinition<Definition>, MongoTypeMaps<CodecTypesFromDefinition<Definition>, FieldOutputTypesFromDefinition<Definition>, FieldInputTypesFromDefinition<Definition>>>;
389
+ type BuilderFieldTypeOverride<TBuilder> = [BuilderEnumValueUnion<TBuilder>] extends [never] ? never : {
390
+ readonly output: BuilderEnumValueUnion<TBuilder>;
391
+ readonly input: BuilderEnumValueUnion<TBuilder>;
392
+ };
393
+ type ExtractValueObjectFields<TBuilder> = TBuilder extends NamedValueObjectBuilder<string, infer Fields> ? Fields : Record<never, never>;
394
+ type FieldTypeOverridesFromDefinition<Definition> = { readonly [K in typeof UNBOUND_NAMESPACE_ID]: {
395
+ readonly models: { readonly [ModelKey in keyof DefinitionModels<Definition> as ExtractModelName<DefinitionModels<Definition>[ModelKey]>]: { readonly [FieldName in keyof ExtractModelFields<DefinitionModels<Definition>[ModelKey]>]: BuilderFieldTypeOverride<ExtractModelFields<DefinitionModels<Definition>[ModelKey]>[FieldName]>; }; };
396
+ readonly valueObjects: { readonly [Key in keyof DefinitionValueObjects<Definition> as ExtractValueObjectName<DefinitionValueObjects<Definition>[Key]>]: { readonly [FieldName in keyof ExtractValueObjectFields<DefinitionValueObjects<Definition>[Key]>]: BuilderFieldTypeOverride<ExtractValueObjectFields<DefinitionValueObjects<Definition>[Key]>[FieldName]>; }; };
397
+ }; };
398
+ type DefinitionTarget<Definition> = Definition extends {
399
+ readonly target: infer Target;
400
+ } ? Target : never;
401
+ type ParameterizedOutputTypesFromDefinition<Definition> = ExtractParameterizedOutputTypesFromPack<DefinitionTarget<Definition>> | { [K in keyof DefinitionExtensions<Definition>]: ExtractParameterizedOutputTypesFromPack<DefinitionExtensions<Definition>[K]>; }[keyof DefinitionExtensions<Definition>];
402
+ type FieldTypesFromDefinition<Definition, Side extends 'output' | 'input'> = FieldTypesFromDomain<MongoContractBaseFromDefinition<Definition>['domain']['namespaces'], CodecTypesFromDefinition<Definition>, ParameterizedOutputTypesFromDefinition<Definition>, FieldTypeOverridesFromDefinition<Definition>, Side>;
403
+ type MongoContractResult<Definition> = MongoContractWithTypeMaps<MongoContractBaseFromDefinition<Definition>, MongoTypeMaps<CodecTypesFromDefinition<Definition>, FieldTypesFromDefinition<Definition, 'output'>, FieldTypesFromDefinition<Definition, 'input'>>>;
279
404
  type ExtractEntitiesNamespaceFromPack<Pack> = ExtractAuthoringNamespaceFromPack<Pack, 'entityTypes', Record<never, never>>;
280
405
  type MergeExtensionEntityNamespaces<Extensions> = MergeExtensionAuthoringNamespaces<Extensions, 'entityTypes'>;
406
+ type ExtractFieldNamespaceFromPack<Pack> = ExtractAuthoringNamespaceFromPack<Pack, 'field', Record<never, never>>;
407
+ type MergeExtensionFieldNamespaces<Extensions> = MergeExtensionAuthoringNamespaces<Extensions, 'field'>;
408
+ type FieldBuilderFromPresetDescriptor<Descriptor extends AuthoringFieldPresetDescriptor, Args extends readonly unknown[]> = FieldBuilder<{
409
+ readonly kind: 'scalar';
410
+ readonly codecId: ResolveTemplateValue<Descriptor['output']['codecId'], Args> extends string ? ResolveTemplateValue<Descriptor['output']['codecId'], Args> : string;
411
+ }, ResolveTemplateValue<Descriptor['output']['nullable'], Args> extends true ? true : false, false, EnumTypeHandle | undefined, PresetExecutionDefaults<Descriptor, Args>>;
412
+ /**
413
+ * A phase template is either a generator value or a `select` over one option argument, which yields no phase when the argument is absent or names no case. An argument typed "the option or undefined", such as a variable of type `'now' | undefined`, gives "the phase or undefined"; such a phase becomes an optional key.
414
+ */
415
+ type ResolvePhaseTemplate<Template, Args extends readonly unknown[]> = Template extends {
416
+ readonly kind: 'select';
417
+ readonly index: infer Index extends number;
418
+ readonly cases: infer Cases;
419
+ } ? Args[Index] extends (infer Arg) ? Arg extends keyof Cases ? Cases[Arg] : undefined : never : Template;
420
+ type PresetExecutionDefaults<Descriptor extends AuthoringFieldPresetDescriptor, Args extends readonly unknown[]> = Descriptor['output'] extends {
421
+ readonly executionDefaults: infer Phases;
422
+ } ? Flatten<{ readonly [Phase in keyof Phases as undefined extends ResolvePhaseTemplate<Phases[Phase], Args> ? never : Phase]: ResolvePhaseTemplate<Phases[Phase], Args>; } & { readonly [Phase in keyof Phases as ResolvePhaseTemplate<Phases[Phase], Args> extends undefined ? never : undefined extends ResolvePhaseTemplate<Phases[Phase], Args> ? Phase : never]?: Exclude<ResolvePhaseTemplate<Phases[Phase], Args>, undefined>; }> : undefined;
423
+ type FieldPresetHelper<Descriptor extends AuthoringFieldPresetDescriptor> = Descriptor extends {
424
+ readonly args: infer Args extends readonly AuthoringArgumentDescriptor[];
425
+ } ? <const Params extends TupleFromArgumentDescriptors<Args>>(...args: Params) => FieldBuilderFromPresetDescriptor<Descriptor, Params> : () => FieldBuilderFromPresetDescriptor<Descriptor, readonly []>;
426
+ type FieldPresetHelpersFromNamespace<Namespace> = { readonly [K in keyof Namespace]: Namespace[K] extends AuthoringFieldPresetDescriptor ? FieldPresetHelper<Namespace[K]> : Namespace[K] extends Record<string, unknown> ? FieldPresetHelpersFromNamespace<Namespace[K]> : never; };
281
427
  type ContractAuthoringHelpers<Family extends FamilyPackRef<string> = FamilyPackRef<string>, Target extends TargetPackRef<string, string> = TargetPackRef<string, string>, Extensions extends Record<string, ExtensionPackRef<string, string>> | undefined = undefined> = EntityHelpersFromNamespace<ExtractEntitiesNamespaceFromPack<Family> & ExtractEntitiesNamespaceFromPack<Target> & MergeExtensionEntityNamespaces<Extensions>> & {
282
- readonly field: typeof field;
428
+ readonly field: typeof field & FieldPresetHelpersFromNamespace<ExtractFieldNamespaceFromPack<Family> & ExtractFieldNamespaceFromPack<Target> & MergeExtensionFieldNamespaces<Extensions>>;
283
429
  readonly index: typeof index;
284
430
  readonly model: typeof model;
285
431
  readonly rel: typeof rel;
286
432
  readonly valueObject: typeof valueObject;
433
+ readonly gen: GeneratorHelpersOf<Family | Target | ExtensionPackValues<Extensions>>;
287
434
  };
288
435
  type ContractScaffold<Family extends FamilyPackRef<string>, Target extends TargetPackRef<string, string>, Extensions extends Record<string, ExtensionPackRef<string, string>> | undefined = undefined, Roots extends Record<string, ModelNameInput> | undefined = undefined> = {
289
436
  readonly family: Family;
@@ -310,48 +457,75 @@ declare function createScalarFieldBuilder<CodecId extends string, TypeParams ext
310
457
  } & ([TypeParams] extends [undefined] ? EmptyObject : {
311
458
  readonly typeParams: TypeParams;
312
459
  }), false, false>;
460
+ type VectorFieldType = {
461
+ readonly kind: 'scalar';
462
+ readonly codecId: 'mongo/vector@1';
463
+ };
464
+ declare function vectorField(): FieldBuilder<VectorFieldType, false, false>;
465
+ declare function vectorField<const TypeParams extends Record<string, unknown>>(options: {
466
+ readonly typeParams: TypeParams;
467
+ }): FieldBuilder<VectorFieldType & {
468
+ readonly typeParams: TypeParams;
469
+ }, false, false>;
313
470
  declare const field: {
314
471
  readonly scalar: typeof createScalarFieldBuilder;
315
472
  readonly objectId: () => FieldBuilder<{
316
473
  readonly kind: "scalar";
317
474
  readonly codecId: "mongo/objectId@1";
318
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>> | undefined>;
475
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
319
476
  readonly string: () => FieldBuilder<{
320
477
  readonly kind: "scalar";
321
478
  readonly codecId: "mongo/string@1";
322
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>> | undefined>;
479
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
323
480
  readonly double: () => FieldBuilder<{
324
481
  readonly kind: "scalar";
325
482
  readonly codecId: "mongo/double@1";
326
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>> | undefined>;
483
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
327
484
  readonly int32: () => FieldBuilder<{
328
485
  readonly kind: "scalar";
329
486
  readonly codecId: "mongo/int32@1";
330
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>> | undefined>;
487
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
331
488
  readonly bool: () => FieldBuilder<{
332
489
  readonly kind: "scalar";
333
490
  readonly codecId: "mongo/bool@1";
334
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>> | undefined>;
491
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
335
492
  readonly date: () => FieldBuilder<{
336
493
  readonly kind: "scalar";
337
494
  readonly codecId: "mongo/date@1";
338
- } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>> | undefined>;
339
- readonly vector: <const TypeParams extends Record<string, unknown> | undefined = undefined>(options?: {
340
- readonly typeParams?: TypeParams;
341
- }) => FieldBuilder<{
495
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
496
+ readonly int64: () => FieldBuilder<{
497
+ readonly kind: "scalar";
498
+ readonly codecId: "mongo/int64@1";
499
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
500
+ readonly int64Number: () => FieldBuilder<{
342
501
  readonly kind: "scalar";
343
- readonly codecId: "mongo/vector@1";
344
- } & ([TypeParams] extends [undefined] ? EmptyObject : {
345
- readonly typeParams: TypeParams;
346
- }), false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>> | undefined>;
502
+ readonly codecId: "mongo/int64Number@1";
503
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
504
+ readonly decimal128: () => FieldBuilder<{
505
+ readonly kind: "scalar";
506
+ readonly codecId: "mongo/decimal128@1";
507
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
508
+ readonly binary: () => FieldBuilder<{
509
+ readonly kind: "scalar";
510
+ readonly codecId: "mongo/binary@1";
511
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
512
+ readonly json: () => FieldBuilder<{
513
+ readonly kind: "scalar";
514
+ readonly codecId: "mongo/json@1";
515
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
516
+ readonly bson: () => FieldBuilder<{
517
+ readonly kind: "scalar";
518
+ readonly codecId: "mongo/bson@1";
519
+ } & EmptyObject, false, false, EnumTypeHandle<string, readonly unknown[], readonly string[], Record<string, unknown>, string> | undefined, undefined, string | undefined>;
520
+ readonly vector: typeof vectorField;
347
521
  readonly valueObject: <const ValueObject extends ValueObjectNameInput>(valueObjectName: ValueObject) => FieldBuilder<{
348
522
  readonly kind: "valueObject";
349
523
  readonly name: NormalizeValueObjectName<ValueObject>;
350
- }, false, false, undefined>;
524
+ }, false, false, undefined, undefined, undefined>;
351
525
  readonly namedType: <const Handle extends EnumTypeHandle>(handle: Handle) => FieldBuilder<{
352
526
  readonly kind: "scalar";
353
527
  readonly codecId: Handle["codecId"];
354
- }, false, false, Handle>;
528
+ }, false, false, Handle, undefined, undefined>;
355
529
  };
356
530
  declare function index<const Fields extends MongoIndexFields>(fields: Fields): {
357
531
  readonly fields: Fields;
@@ -364,15 +538,23 @@ type ReferenceOptions<Target extends ModelNameInput, From extends StringListInpu
364
538
  readonly from: From;
365
539
  readonly to: To;
366
540
  };
541
+ type BelongsToOptions<Target extends ModelNameInput, From extends StringListInput, To extends RelationTargetFieldsInput<NormalizeModelName<Target>>, Nullable extends boolean> = ReferenceOptions<Target, From, To> & {
542
+ /**
543
+ * Whether the related document may be absent. Defaults to whether any `from`
544
+ * field is optional; an explicit value that contradicts them is rejected.
545
+ */
546
+ readonly optional: Nullable;
547
+ };
367
548
  type RelationOnFromOptions<From extends StringListInput, To extends RelationTargetFieldsInput<string>> = {
368
549
  readonly localFields: NormalizeStringList<From>;
369
550
  readonly targetFields: NormalizeTargetFieldList<To>;
370
551
  };
371
- declare function hasOne<const Target extends ModelNameInput>(target: Target): RelationBuilder<NormalizeModelName<Target>, '1:1', undefined>;
372
- declare function hasOne<const Target extends ModelNameInput, const From extends StringListInput, const To extends RelationTargetFieldsInput<NormalizeModelName<Target>>>(target: Target, options: ReferenceOptions<Target, From, To>): RelationBuilder<NormalizeModelName<Target>, '1:1', RelationOnFromOptions<From, To>>;
373
- declare function hasMany<const Target extends ModelNameInput>(target: Target): RelationBuilder<NormalizeModelName<Target>, '1:N', undefined>;
374
- declare function hasMany<const Target extends ModelNameInput, const From extends StringListInput, const To extends RelationTargetFieldsInput<NormalizeModelName<Target>>>(target: Target, options: ReferenceOptions<Target, From, To>): RelationBuilder<NormalizeModelName<Target>, '1:N', RelationOnFromOptions<From, To>>;
375
- declare function belongsTo<const Target extends ModelNameInput, const From extends StringListInput, const To extends RelationTargetFieldsInput<NormalizeModelName<Target>>>(target: Target, options: ReferenceOptions<Target, From, To>): RelationBuilder<NormalizeModelName<Target>, 'N:1', RelationOnFromOptions<From, To>>;
552
+ declare function hasOne<const Target extends ModelNameInput>(target: Target): RelationBuilder<NormalizeModelName<Target>, '1:1', undefined, undefined>;
553
+ declare function hasOne<const Target extends ModelNameInput, const From extends StringListInput, const To extends RelationTargetFieldsInput<NormalizeModelName<Target>>>(target: Target, options: ReferenceOptions<Target, From, To>): RelationBuilder<NormalizeModelName<Target>, '1:1', RelationOnFromOptions<From, To>, true>;
554
+ declare function hasMany<const Target extends ModelNameInput>(target: Target): RelationBuilder<NormalizeModelName<Target>, '1:N', undefined, undefined>;
555
+ declare function hasMany<const Target extends ModelNameInput, const From extends StringListInput, const To extends RelationTargetFieldsInput<NormalizeModelName<Target>>>(target: Target, options: ReferenceOptions<Target, From, To>): RelationBuilder<NormalizeModelName<Target>, '1:N', RelationOnFromOptions<From, To>, undefined>;
556
+ declare function belongsTo<const Target extends ModelNameInput, const From extends StringListInput, const To extends RelationTargetFieldsInput<NormalizeModelName<Target>>, const Nullable extends boolean>(target: Target, options: BelongsToOptions<Target, From, To, Nullable>): RelationBuilder<NormalizeModelName<Target>, 'N:1', RelationOnFromOptions<From, To>, Nullable>;
557
+ declare function belongsTo<const Target extends ModelNameInput, const From extends StringListInput, const To extends RelationTargetFieldsInput<NormalizeModelName<Target>>>(target: Target, options: ReferenceOptions<Target, From, To>): RelationBuilder<NormalizeModelName<Target>, 'N:1', RelationOnFromOptions<From, To>, undefined>;
376
558
  declare const rel: {
377
559
  readonly belongsTo: typeof belongsTo;
378
560
  readonly hasMany: typeof hasMany;
@@ -435,11 +617,11 @@ declare function buildBoundContract<const F extends FamilyPackRef<string>, const
435
617
  readonly roots?: Record<string, ModelNameInput> | undefined;
436
618
  }>(family: F, target: T, definition: Definition, factory: (helpers: ContractAuthoringHelpers<F, T, NonNullable<Definition['extensions']>>) => Built): MongoContractResult<WithFamilyTarget<Definition & Built, F, T>>;
437
619
  declare function defineContract<const Definition extends ContractDefinition<FamilyPackRef<string>, TargetPackRef<string, string>, Record<string, AnyModelBuilder>, Record<string, AnyValueObjectBuilder>, Record<string, ExtensionPackRef<string, string>> | undefined, Record<string, ModelNameInput> | undefined>>(definition: Definition): MongoContractResult<Definition>;
438
- declare function defineContract<const Definition extends ContractScaffold<Family, Target, Extensions, Record<string, ModelNameInput> | undefined>, const Built extends {
620
+ declare function defineContract<const Definition extends ContractScaffold<FamilyPackRef<string>, TargetPackRef<string, string>, Record<string, ExtensionPackRef<string, string>> | undefined, Record<string, ModelNameInput> | undefined>, const Built extends {
439
621
  readonly models?: Record<string, AnyModelBuilder>;
440
622
  readonly valueObjects?: Record<string, AnyValueObjectBuilder>;
441
623
  readonly roots?: Record<string, ModelNameInput> | undefined;
442
- }, const Family extends FamilyPackRef<string> = FamilyPackRef<string>, const Target extends TargetPackRef<string, string> = TargetPackRef<string, string>, const Extensions extends Record<string, ExtensionPackRef<string, string>> | undefined = undefined>(definition: Definition, factory: (helpers: ContractAuthoringHelpers<Family, Target, Extensions>) => Built): MongoContractResult<Definition & Built>;
624
+ }>(definition: Definition, factory: (helpers: ContractAuthoringHelpers<Definition['family'], Definition['target'], ScaffoldExtensions<Definition>>) => Built): MongoContractResult<Definition & Built>;
443
625
  //#endregion
444
- export { model as C, member as S, valueObject as T, defineContract as _, ContractScaffold as a, index as b, ExtractCodecTypesFromPack as c, ModelBuilder as d, MongoContractResult as f, buildBoundContract as g, bindEnumType as h, ContractFactory as i, FieldBuilder as l, ValueObjectBuilder as m, CodecTypeMap as n, EnumMember as o, RelationBuilder as p, ContractDefinition as r, EnumTypeHandle as s, BoundEnumType as t, FieldReference as u, enumType as v, rel as w, isEnumTypeHandle as x, field as y };
445
- //# sourceMappingURL=contract-builder-DB8nguDE.d.mts.map
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 };
627
+ //# sourceMappingURL=contract-builder-ClL-xMK2.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-builder-ClL-xMK2.d.mts","names":[],"sources":["../../../../2-mongo-family/2-authoring/contract-ts/dist/contract-builder.d.mts"],"mappings":"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"}