@prisma/orm-family-mongo 8.0.0-rc.12-dev.9 → 8.0.0-rc.12-dev.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{authoring-entity-types-DkFfee0x-1-Cz_f4r.mjs → authoring-entity-types-DkFfee0x-CRRHtwhi.mjs} +2 -2
- package/dist/{authoring-entity-types-DkFfee0x-1-Cz_f4r.mjs.map → authoring-entity-types-DkFfee0x-CRRHtwhi.mjs.map} +1 -1
- package/dist/{canonicalization-hooks-DF3Z6sjO.mjs → canonicalization-hooks-BXCTdx8s.mjs} +3 -2
- package/dist/canonicalization-hooks-BXCTdx8s.mjs.map +1 -0
- package/dist/{contract-builder-DeB13CGv.mjs → contract-builder-C0TMb001.mjs} +132 -34
- package/dist/contract-builder-C0TMb001.mjs.map +1 -0
- package/dist/{contract-builder-B171gPnd.d.mts → contract-builder-DVBFIIYp.d.mts} +103 -27
- package/dist/contract-builder-DVBFIIYp.d.mts.map +1 -0
- package/dist/contract-psl.d.mts +4 -1
- package/dist/contract-psl.d.mts.map +1 -1
- package/dist/contract-psl.mjs +1 -1
- package/dist/contract-psl__provider.mjs +4 -2
- package/dist/contract-psl__provider.mjs.map +1 -1
- package/dist/contract-ts.d.mts +1 -1
- package/dist/contract-ts.mjs +1 -1
- package/dist/contract-ts__contract-builder.d.mts +1 -1
- package/dist/contract-ts__contract-builder.mjs +1 -1
- package/dist/contract.d.mts +2 -2
- package/dist/contract.mjs +3 -3
- package/dist/contract__canonicalization-hooks.mjs +1 -1
- package/dist/contract__entity-kinds.mjs +1 -1
- package/dist/{control-CpITYpd_.d.mts → control-9Vd-XWkM.d.mts} +2 -2
- package/dist/{control-CpITYpd_.d.mts.map → control-9Vd-XWkM.d.mts.map} +1 -1
- package/dist/{control-Dr4029ZX.mjs → control-BtmriDhU.mjs} +13 -9
- package/dist/control-BtmriDhU.mjs.map +1 -0
- package/dist/{control-BOVl4EL2.d.mts → control-C6gTadl8.d.mts} +11 -4
- package/dist/control-C6gTadl8.d.mts.map +1 -0
- package/dist/{control-adapter-DLwhgMWv.d.mts → control-adapter-Bh_ZraGM-7HXImyjy.d.mts} +48 -4
- package/dist/control-adapter-Bh_ZraGM-7HXImyjy.d.mts.map +1 -0
- package/dist/control-adapter-Bjc81f8y.d.mts +1 -0
- package/dist/{dist-CihRxcZp.mjs → dist-B4a9eijw.mjs} +25 -3
- package/dist/dist-B4a9eijw.mjs.map +1 -0
- package/dist/{entity-kinds-ECKhAFXy-C28WoR6A.mjs → entity-kinds-FlR_bJNA-D4NYzPhs.mjs} +4 -3
- package/dist/entity-kinds-FlR_bJNA-D4NYzPhs.mjs.map +1 -0
- package/dist/family.d.mts +10 -9
- package/dist/family.mjs +8 -7
- package/dist/family__control-adapter.d.mts +3 -2
- package/dist/family__control.d.mts +1 -1
- package/dist/family__control.mjs +1 -1
- package/dist/family__ir.d.mts +2 -2
- package/dist/family__ir.mjs +2 -2
- package/dist/family__migration.d.mts +1 -1
- package/dist/family__migration.mjs +1 -1
- package/dist/family__pack.mjs +2 -2
- package/dist/family__runtime.d.mts +3 -3
- package/dist/family__runtime.mjs +3 -2
- package/dist/family__schema-verify.d.mts +1 -1
- package/dist/{field-accessor-DHsAPiW3-Eb0sq6UQ.d.mts → field-accessor-DHsAPiW3-iwRb2vC-.d.mts} +2 -2
- package/dist/{field-accessor-DHsAPiW3-Eb0sq6UQ.d.mts.map → field-accessor-DHsAPiW3-iwRb2vC-.d.mts.map} +1 -1
- package/dist/{index-D4qRM5-9.d.mts → index-B-iG-2je.d.mts} +2 -2
- package/dist/{index-D4qRM5-9.d.mts.map → index-B-iG-2je.d.mts.map} +1 -1
- package/dist/{index-b88CnctD.d.mts → index-BUYcBNdw.d.mts} +32 -3
- package/dist/index-BUYcBNdw.d.mts.map +1 -0
- package/dist/{index-BKUKT3Mr.d.mts → index-BfSjP_y5.d.mts} +3 -3
- package/dist/{index-BKUKT3Mr.d.mts.map → index-BfSjP_y5.d.mts.map} +1 -1
- package/dist/{index-BXl8FzP8.d.mts → index-D-8mmTbj.d.mts} +2 -2
- package/dist/{index-BXl8FzP8.d.mts.map → index-D-8mmTbj.d.mts.map} +1 -1
- package/dist/index-s1CL1J5A.d.mts +306 -0
- package/dist/index-s1CL1J5A.d.mts.map +1 -0
- package/dist/{interpreter-CxhcsNUk-DP_F0vfZ.mjs → interpreter-D1CQbops-C_hzRtYe.mjs} +269 -31
- package/dist/interpreter-D1CQbops-C_hzRtYe.mjs.map +1 -0
- package/dist/{ir-BDrbEWTc.d.mts → ir-Dun4Br3Q.d.mts} +3 -3
- package/dist/{ir-BDrbEWTc.d.mts.map → ir-Dun4Br3Q.d.mts.map} +1 -1
- package/dist/lowering.d.mts +1 -1
- package/dist/{migration-c8VhrzyG.mjs → migration-BsJgtw77.mjs} +2 -2
- package/dist/{migration-c8VhrzyG.mjs.map → migration-BsJgtw77.mjs.map} +1 -1
- package/dist/{migration-DwClgQcT.d.mts → migration-Cs9Lwv2y.d.mts} +4 -4
- package/dist/{migration-DwClgQcT.d.mts.map → migration-Cs9Lwv2y.d.mts.map} +1 -1
- package/dist/{mongo-contract-serializer-DC_DM9_Y-D13m_FBX.mjs → mongo-contract-serializer-DC_DM9_Y-MJjsJZwM.mjs} +4 -4
- package/dist/{mongo-contract-serializer-DC_DM9_Y-D13m_FBX.mjs.map → mongo-contract-serializer-DC_DM9_Y-MJjsJZwM.mjs.map} +1 -1
- package/dist/{mongo-contract-view-AnejqfrQ-DSOAJRaT.d.mts → mongo-contract-view-AnejqfrQ-nd-SP6W4.d.mts} +2 -2
- package/dist/{mongo-contract-view-AnejqfrQ-DSOAJRaT.d.mts.map → mongo-contract-view-AnejqfrQ-nd-SP6W4.d.mts.map} +1 -1
- package/dist/{mongo-contract-view-JZOa0Ry--BZsUrVN_.mjs → mongo-contract-view-JZOa0Ry--BTfPzsVC.mjs} +3 -3
- package/dist/{mongo-contract-view-JZOa0Ry--BZsUrVN_.mjs.map → mongo-contract-view-JZOa0Ry--BTfPzsVC.mjs.map} +1 -1
- package/dist/orm.d.mts +30 -4
- package/dist/orm.d.mts.map +1 -1
- package/dist/orm.mjs +57 -16
- package/dist/orm.mjs.map +1 -1
- package/dist/query-ast.d.mts +1 -1
- package/dist/query-ast__control.d.mts +1 -1
- package/dist/query-builder.d.mts +2 -2
- package/dist/query-builder__contract-free.d.mts +2 -2
- package/dist/runtime-B5fNQHQZ.mjs +16 -0
- package/dist/runtime-B5fNQHQZ.mjs.map +1 -0
- package/dist/runtime-BPRKmAdg.d.mts +11 -0
- package/dist/runtime-BPRKmAdg.d.mts.map +1 -0
- package/dist/runtime.d.mts +2 -295
- package/dist/runtime.mjs +68 -7
- package/dist/runtime.mjs.map +1 -1
- package/dist/schema-ir.d.mts +1 -1
- package/dist/{schema-verify-DLoKsxIe.d.mts → schema-verify-BQA8oyKJ.d.mts} +3 -3
- package/dist/{schema-verify-DLoKsxIe.d.mts.map → schema-verify-BQA8oyKJ.d.mts.map} +1 -1
- package/dist/wire.d.mts +1 -1
- package/package.json +19 -19
- package/dist/canonicalization-hooks-DF3Z6sjO.mjs.map +0 -1
- package/dist/contract-builder-B171gPnd.d.mts.map +0 -1
- package/dist/contract-builder-DeB13CGv.mjs.map +0 -1
- package/dist/control-BOVl4EL2.d.mts.map +0 -1
- package/dist/control-Dr4029ZX.mjs.map +0 -1
- package/dist/control-adapter-DLwhgMWv.d.mts.map +0 -1
- package/dist/dist-CihRxcZp.mjs.map +0 -1
- package/dist/entity-kinds-ECKhAFXy-C28WoR6A.mjs.map +0 -1
- package/dist/index-b88CnctD.d.mts.map +0 -1
- package/dist/interpreter-CxhcsNUk-DP_F0vfZ.mjs.map +0 -1
- package/dist/runtime-DdpOBdsJ.d.mts +0 -1
- package/dist/runtime.d.mts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "@prisma/orm-framework/contract/types";
|
|
2
2
|
import "@prisma/orm-framework/components/ir";
|
|
3
|
-
import { blindCast } from "@prisma/orm-framework/utils/casts";
|
|
4
3
|
import "@prisma/orm-framework/contract/hashing";
|
|
4
|
+
import { blindCast } from "@prisma/orm-framework/utils/casts";
|
|
5
5
|
import { enumType } from "@prisma/orm-framework/contract-authoring";
|
|
6
6
|
import "@prisma/orm-framework/errors/control";
|
|
7
7
|
import { resolveEnumCodecId } from "@prisma/orm-framework/components/authoring";
|
|
@@ -141,4 +141,4 @@ const mongoFamilyPslBlockDescriptors = { enum: {
|
|
|
141
141
|
//#endregion
|
|
142
142
|
export { mongoFamilyPslBlockDescriptors as n, mongoFamilyEntityTypes as t };
|
|
143
143
|
|
|
144
|
-
//# sourceMappingURL=authoring-entity-types-DkFfee0x-
|
|
144
|
+
//# sourceMappingURL=authoring-entity-types-DkFfee0x-CRRHtwhi.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authoring-entity-types-DkFfee0x-
|
|
1
|
+
{"version":3,"file":"authoring-entity-types-DkFfee0x-CRRHtwhi.mjs","names":[],"sources":["../../../../2-mongo-family/9-family/dist/authoring-entity-types-DkFfee0x.mjs"],"sourcesContent":["import \"@internal/utils/defined\";\nimport { resolveEnumCodecId } from \"@internal/framework-components/authoring\";\nimport \"@internal/contract/hashing\";\nimport \"@internal/contract/types\";\nimport { enumType } from \"@internal/contract-authoring\";\nimport \"@internal/errors/control\";\nimport \"@internal/framework-components/control\";\nimport \"@internal/framework-components/ir\";\nimport \"@internal/mongo-contract\";\nimport \"@internal/mongo-contract/canonicalization-hooks\";\nimport \"@internal/utils/canonical-stringify\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { blockAttribute, str } from \"@internal/psl-parser\";\nconst mongoFamilyEntityTypes = { enum: {\n\tkind: \"entity\",\n\tdiscriminator: \"enum\",\n\toutput: { factory: (block, ctx) => {\n\t\tconst sourceId = ctx.sourceId ?? \"unknown\";\n\t\tconst diagnostics = ctx.diagnostics;\n\t\tconst resolved = resolveEnumCodecId(block, ctx);\n\t\tif (resolved === void 0) return;\n\t\tconst { codecId, codecSpan } = resolved;\n\t\tconst nativeType = ctx.codecLookup?.targetTypesFor(codecId)?.[0];\n\t\tif (nativeType === void 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: \"PSL_EXTENSION_INVALID_VALUE\",\n\t\t\t\tmessage: `enum \"${block.name}\" @@type references unknown codec \"${codecId}\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: codecSpan\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst codec = ctx.codecLookup?.get(codecId);\n\t\tif (codec === void 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: \"PSL_EXTENSION_INVALID_VALUE\",\n\t\t\t\tmessage: `enum \"${block.name}\" @@type codec \"${codecId}\" resolves in targetTypesFor but is absent from codecLookup.get`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: codecSpan\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst seenValues = /* @__PURE__ */ new Set();\n\t\tconst members = [];\n\t\tlet memberError = false;\n\t\tfor (const [memberName, paramValue] of Object.entries(block.parameters)) {\n\t\t\tlet value;\n\t\t\tif (paramValue.kind === \"bare\") try {\n\t\t\t\tvalue = codec.decodeJson(memberName);\n\t\t\t} catch {\n\t\t\t\tdiagnostics?.push({\n\t\t\t\t\tcode: \"PSL_ENUM_BARE_MEMBER_NON_STRING_CODEC\",\n\t\t\t\t\tmessage: `enum \"${block.name}\" member \"${memberName}\" has no value and codec \"${codecId}\" does not accept a bare name as input`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: paramValue.span\n\t\t\t\t});\n\t\t\t\tmemberError = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (paramValue.kind === \"value\") {\n\t\t\t\tlet jsonValue;\n\t\t\t\ttry {\n\t\t\t\t\tjsonValue = JSON.parse(paramValue.raw);\n\t\t\t\t} catch {\n\t\t\t\t\tdiagnostics?.push({\n\t\t\t\t\t\tcode: \"PSL_EXTENSION_INVALID_VALUE\",\n\t\t\t\t\t\tmessage: `enum \"${block.name}\" member \"${memberName}\" value \"${paramValue.raw}\" is not valid JSON`,\n\t\t\t\t\t\tsourceId,\n\t\t\t\t\t\tspan: paramValue.span\n\t\t\t\t\t});\n\t\t\t\t\tmemberError = true;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tvalue = codec.decodeJson(blindCast(jsonValue));\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconst reason = err instanceof Error ? err.message : String(err);\n\t\t\t\t\tdiagnostics?.push({\n\t\t\t\t\t\tcode: \"PSL_EXTENSION_INVALID_VALUE\",\n\t\t\t\t\t\tmessage: `enum \"${block.name}\" member \"${memberName}\" was rejected by codec \"${codecId}\": ${reason}`,\n\t\t\t\t\t\tsourceId,\n\t\t\t\t\t\tspan: paramValue.span\n\t\t\t\t\t});\n\t\t\t\t\tmemberError = true;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t} else continue;\n\t\t\tconst valueKey = String(value);\n\t\t\tif (seenValues.has(valueKey)) {\n\t\t\t\tdiagnostics?.push({\n\t\t\t\t\tcode: \"PSL_ENUM_DUPLICATE_MEMBER_VALUE\",\n\t\t\t\t\tmessage: `enum \"${block.name}\": duplicate member value \"${valueKey}\"`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: paramValue.span\n\t\t\t\t});\n\t\t\t\tmemberError = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tseenValues.add(valueKey);\n\t\t\tmembers.push({\n\t\t\t\tname: memberName,\n\t\t\t\tvalue\n\t\t\t});\n\t\t}\n\t\tif (memberError) return void 0;\n\t\tif (members.length === 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: \"PSL_ENUM_MISSING_TYPE\",\n\t\t\t\tmessage: `enum \"${block.name}\" must have at least one member`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: block.span\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\treturn enumType(block.name, {\n\t\t\tcodecId,\n\t\t\tnativeType\n\t\t}, ...members.map((m) => ({\n\t\t\tname: m.name,\n\t\t\tvalue: m.value\n\t\t})));\n\t} }\n} };\nconst enumTypeBlockAttribute = blockAttribute(\"type\", {\n\tdocumentation: \"Selects the storage codec for this enum.\",\n\tpositional: [{\n\t\tkey: \"codecId\",\n\t\ttype: str(),\n\t\tdocumentation: \"The fully qualified codec identifier used to store enum values.\"\n\t}]\n});\nconst mongoFamilyPslBlockDescriptors = { enum: {\n\tkind: \"pslBlock\",\n\tkeyword: \"enum\",\n\tdocumentation: \"Defines an enum with named values and an inferred or explicitly selected storage codec.\",\n\tdiscriminator: \"enum\",\n\tname: { required: true },\n\tparameters: {},\n\tvariadicParameters: true,\n\tattributes: { type: () => enumTypeBlockAttribute }\n} };\n//#endregion\nexport { mongoFamilyPslBlockDescriptors as n, mongoFamilyEntityTypes as t };\n\n//# sourceMappingURL=authoring-entity-types-DkFfee0x.mjs.map"],"mappings":"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"}
|
|
@@ -14,9 +14,10 @@ const matchesPreserveEmptyPattern = createPreserveEmptyPredicate([[
|
|
|
14
14
|
"collection",
|
|
15
15
|
"*"
|
|
16
16
|
]]);
|
|
17
|
-
const
|
|
17
|
+
const isUnconstrainedFieldSchema = (path) => path.includes("jsonSchema") && (path[path.length - 2] === "properties" || path[path.length - 1] === "items");
|
|
18
|
+
const shouldPreserveEmpty = (path) => path[path.length - 1] === "additionalProperties" || isUnconstrainedFieldSchema(path) || matchesPreserveEmptyPattern(path);
|
|
18
19
|
const mongoContractCanonicalizationHooks = { shouldPreserveEmpty };
|
|
19
20
|
//#endregion
|
|
20
21
|
export { mongoContractCanonicalizationHooks as t };
|
|
21
22
|
|
|
22
|
-
//# sourceMappingURL=canonicalization-hooks-
|
|
23
|
+
//# sourceMappingURL=canonicalization-hooks-BXCTdx8s.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonicalization-hooks-BXCTdx8s.mjs","names":[],"sources":["../../../../2-mongo-family/1-foundation/mongo-contract/dist/canonicalization-hooks.mjs"],"sourcesContent":["import { createPreserveEmptyPredicate } from \"@internal/contract/hashing-utils\";\n//#region src/canonicalization-hooks.ts\nconst matchesPreserveEmptyPattern = createPreserveEmptyPredicate([[\n\t\"storage\",\n\t\"namespaces\",\n\t\"*\",\n\t\"entries\",\n\t\"collection\"\n], [\n\t\"storage\",\n\t\"namespaces\",\n\t\"*\",\n\t\"entries\",\n\t\"collection\",\n\t\"*\"\n]]);\nconst isUnconstrainedFieldSchema = (path) => path.includes(\"jsonSchema\") && (path[path.length - 2] === \"properties\" || path[path.length - 1] === \"items\");\nconst shouldPreserveEmpty = (path) => path[path.length - 1] === \"additionalProperties\" || isUnconstrainedFieldSchema(path) || matchesPreserveEmptyPattern(path);\nconst mongoContractCanonicalizationHooks = { shouldPreserveEmpty };\n//#endregion\nexport { mongoContractCanonicalizationHooks };\n\n//# sourceMappingURL=canonicalization-hooks.mjs.map"],"mappings":";;AAEA,MAAM,8BAA8B,6BAA6B,CAAC;CACjE;CACA;CACA;CACA;CACA;AACD,GAAG;CACF;CACA;CACA;CACA;CACA;CACA;AACD,CAAC,CAAC;AACF,MAAM,8BAA8B,SAAS,KAAK,SAAS,YAAY,MAAM,KAAK,KAAK,SAAS,OAAO,gBAAgB,KAAK,KAAK,SAAS,OAAO;AACjJ,MAAM,uBAAuB,SAAS,KAAK,KAAK,SAAS,OAAO,0BAA0B,2BAA2B,IAAI,KAAK,4BAA4B,IAAI;AAC9J,MAAM,qCAAqC,EAAE,oBAAoB"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { i as MongoCollectionOptions, o as MongoIndex } from "./entity-kinds-
|
|
2
|
-
import { c as buildMongoNamespace, o as applyPolymorphicScopeToMongoIndex, r as MongoStorage } from "./dist-
|
|
3
|
-
import { t as mongoContractCanonicalizationHooks } from "./canonicalization-hooks-
|
|
1
|
+
import { i as MongoCollectionOptions, o as MongoIndex } from "./entity-kinds-FlR_bJNA-D4NYzPhs.mjs";
|
|
2
|
+
import { c as buildMongoExecutionSection, l as buildMongoNamespace, o as applyPolymorphicScopeToMongoIndex, r as MongoStorage } from "./dist-B4a9eijw.mjs";
|
|
3
|
+
import { t as mongoContractCanonicalizationHooks } from "./canonicalization-hooks-BXCTdx8s.mjs";
|
|
4
4
|
import { t as contractError } from "./contract-errors-BCN6RVI5-kMurtAbI.mjs";
|
|
5
5
|
import { crossRef } from "@prisma/orm-framework/contract/types";
|
|
6
6
|
import { UNBOUND_NAMESPACE_ID } from "@prisma/orm-framework/components/ir";
|
|
7
|
-
import { blindCast } from "@prisma/orm-framework/utils/casts";
|
|
8
7
|
import { computeProfileHash, computeStorageHash } from "@prisma/orm-framework/contract/hashing";
|
|
9
|
-
import {
|
|
8
|
+
import { blindCast } from "@prisma/orm-framework/utils/casts";
|
|
9
|
+
import { bindEnumType, composePackAuthoringNamespace, createEntityHelpersFromNamespace, createFieldHelpersFromNamespace, enumType as enumType$1, isEnumTypeHandle, member, resolveToOneRelationNullable } from "@prisma/orm-framework/contract-authoring";
|
|
10
10
|
import { errorEnumCodecNotInPackStack } from "@prisma/orm-framework/errors/control";
|
|
11
|
-
import { assertNoCrossRegistryCollisions,
|
|
11
|
+
import { assertNoCrossRegistryCollisions, instantiateAuthoringFieldPreset, validateAuthoringHelperArguments } from "@prisma/orm-framework/components/authoring";
|
|
12
12
|
import { ifDefined } from "@prisma/orm-framework/utils/defined";
|
|
13
13
|
import { extractCodecLookup } from "@prisma/orm-framework/components/control";
|
|
14
14
|
import { canonicalStringify } from "@prisma/orm-framework/utils/canonical-stringify";
|
|
@@ -31,9 +31,6 @@ function stableStringify(value) {
|
|
|
31
31
|
if (value && typeof value === "object") return `{${Object.entries(value).sort(([left], [right]) => left.localeCompare(right)).map(([key, entry]) => `${JSON.stringify(key)}:${stableStringify(entry)}`).join(",")}}`;
|
|
32
32
|
return JSON.stringify(value);
|
|
33
33
|
}
|
|
34
|
-
function extractEntitiesNamespace(component) {
|
|
35
|
-
return component.authoring?.entityTypes ?? {};
|
|
36
|
-
}
|
|
37
34
|
const MONGO_RESERVED_HELPER_KEYS = [
|
|
38
35
|
"field",
|
|
39
36
|
"index",
|
|
@@ -41,31 +38,71 @@ const MONGO_RESERVED_HELPER_KEYS = [
|
|
|
41
38
|
"rel",
|
|
42
39
|
"valueObject"
|
|
43
40
|
];
|
|
44
|
-
function
|
|
41
|
+
function buildFieldPreset(helperPath, descriptor, args) {
|
|
42
|
+
validateAuthoringHelperArguments(helperPath, descriptor.args, args);
|
|
43
|
+
const preset = instantiateAuthoringFieldPreset(descriptor, args);
|
|
44
|
+
const unsupported = [
|
|
45
|
+
...preset.default !== void 0 ? ["default"] : [],
|
|
46
|
+
...preset.id ? ["id"] : [],
|
|
47
|
+
...preset.unique ? ["unique"] : []
|
|
48
|
+
];
|
|
49
|
+
if (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: {
|
|
50
|
+
helperPath,
|
|
51
|
+
reason: "preset-contribution-unsupported",
|
|
52
|
+
contribution: unsupported
|
|
53
|
+
} });
|
|
54
|
+
return createFieldBuilder({
|
|
55
|
+
type: {
|
|
56
|
+
kind: "scalar",
|
|
57
|
+
codecId: preset.descriptor.codecId,
|
|
58
|
+
...normalizeOptionalTypeParams(preset.descriptor.typeParams)
|
|
59
|
+
},
|
|
60
|
+
nullable: preset.nullable,
|
|
61
|
+
many: false
|
|
62
|
+
}, void 0, preset.executionDefaults);
|
|
63
|
+
}
|
|
64
|
+
function composeMongoFieldHelpers(fieldNamespace) {
|
|
65
|
+
const presetHelpers = createFieldHelpersFromNamespace(fieldNamespace, ({ helperPath, descriptor }) => (...args) => buildFieldPreset(helperPath, descriptor, args));
|
|
66
|
+
const collisions = Object.keys(presetHelpers).filter((name) => Object.hasOwn(field, name));
|
|
67
|
+
if (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: {
|
|
68
|
+
reason: "core-field-helper-collision",
|
|
69
|
+
contribution: collisions
|
|
70
|
+
} });
|
|
71
|
+
return {
|
|
72
|
+
...field,
|
|
73
|
+
...presetHelpers
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function composeMongoAuthoringHelpers(family, target, extensions) {
|
|
45
77
|
const components = [
|
|
46
78
|
family,
|
|
47
79
|
target,
|
|
48
80
|
...Object.values(extensions ?? {})
|
|
49
81
|
];
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
assertNoCrossRegistryCollisions({}, {}, merged);
|
|
56
|
-
const collisions = Object.keys(merged).filter((name) => MONGO_RESERVED_HELPER_KEYS.includes(name));
|
|
82
|
+
const entityNamespace = composePackAuthoringNamespace(components, "entityTypes");
|
|
83
|
+
const fieldNamespace = composePackAuthoringNamespace(components, "field");
|
|
84
|
+
assertNoCrossRegistryCollisions({}, fieldNamespace, entityNamespace);
|
|
85
|
+
const collisions = Object.keys(entityNamespace).filter((name) => MONGO_RESERVED_HELPER_KEYS.includes(name));
|
|
57
86
|
if (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: {
|
|
58
87
|
reason: "reserved-helper-key-collision",
|
|
59
88
|
contribution: collisions
|
|
60
89
|
} });
|
|
61
|
-
return
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
90
|
+
return blindCast({
|
|
91
|
+
...createEntityHelpersFromNamespace(entityNamespace, { ctx: {
|
|
92
|
+
family: family.familyId,
|
|
93
|
+
target: target.targetId
|
|
94
|
+
} }),
|
|
95
|
+
field: composeMongoFieldHelpers(fieldNamespace),
|
|
96
|
+
index,
|
|
97
|
+
model,
|
|
98
|
+
rel,
|
|
99
|
+
valueObject
|
|
100
|
+
});
|
|
65
101
|
}
|
|
66
|
-
function createFieldBuilder(spec, enumHandle) {
|
|
102
|
+
function createFieldBuilder(spec, enumHandle, executionDefaults) {
|
|
67
103
|
return {
|
|
68
104
|
__kind: "field",
|
|
105
|
+
...ifDefined("__executionDefaults", executionDefaults),
|
|
69
106
|
__type: spec.type,
|
|
70
107
|
__nullable: spec.nullable,
|
|
71
108
|
__many: spec.many,
|
|
@@ -75,14 +112,14 @@ function createFieldBuilder(spec, enumHandle) {
|
|
|
75
112
|
type: spec.type,
|
|
76
113
|
nullable: true,
|
|
77
114
|
many: spec.many
|
|
78
|
-
}, enumHandle);
|
|
115
|
+
}, enumHandle, executionDefaults);
|
|
79
116
|
},
|
|
80
117
|
many() {
|
|
81
118
|
return createFieldBuilder({
|
|
82
119
|
type: spec.type,
|
|
83
120
|
nullable: spec.nullable,
|
|
84
121
|
many: true
|
|
85
|
-
}, enumHandle);
|
|
122
|
+
}, enumHandle, executionDefaults);
|
|
86
123
|
}
|
|
87
124
|
};
|
|
88
125
|
}
|
|
@@ -121,6 +158,18 @@ const field = {
|
|
|
121
158
|
date() {
|
|
122
159
|
return createScalarFieldBuilder("mongo/date@1");
|
|
123
160
|
},
|
|
161
|
+
int64() {
|
|
162
|
+
return createScalarFieldBuilder("mongo/int64@1");
|
|
163
|
+
},
|
|
164
|
+
decimal128() {
|
|
165
|
+
return createScalarFieldBuilder("mongo/decimal128@1");
|
|
166
|
+
},
|
|
167
|
+
binary() {
|
|
168
|
+
return createScalarFieldBuilder("mongo/binary@1");
|
|
169
|
+
},
|
|
170
|
+
json() {
|
|
171
|
+
return createScalarFieldBuilder("mongo/json@1");
|
|
172
|
+
},
|
|
124
173
|
vector(options) {
|
|
125
174
|
return createScalarFieldBuilder("mongo/vector@1", options);
|
|
126
175
|
},
|
|
@@ -554,6 +603,59 @@ function buildCollections(models) {
|
|
|
554
603
|
}
|
|
555
604
|
return intermediate;
|
|
556
605
|
}
|
|
606
|
+
function executionDefaultError(modelName, fieldName, reason, message) {
|
|
607
|
+
return contractError("CONTRACT.DEFAULT_INVALID", `Field "${modelName}.${fieldName}" ${message}`, { meta: {
|
|
608
|
+
modelName,
|
|
609
|
+
fieldName,
|
|
610
|
+
reason
|
|
611
|
+
} });
|
|
612
|
+
}
|
|
613
|
+
function hasExecutionDefaults(fieldBuilder) {
|
|
614
|
+
const phases = fieldBuilder.__executionDefaults;
|
|
615
|
+
return phases?.onCreate !== void 0 || phases?.onUpdate !== void 0;
|
|
616
|
+
}
|
|
617
|
+
function assertNoValueObjectExecutionDefaults(valueObjects) {
|
|
618
|
+
for (const valueObjectBuilder of Object.values(valueObjects ?? {})) for (const [fieldName, fieldBuilder] of Object.entries(valueObjectBuilder.__fields)) if (hasExecutionDefaults(fieldBuilder)) throw executionDefaultError(valueObjectBuilder.__name, fieldName, "executionDefaults-on-value-object", "has executionDefaults, but it belongs to a value object. Generated values are only supported on model fields.");
|
|
619
|
+
}
|
|
620
|
+
function buildExecutionDefaults(models) {
|
|
621
|
+
const modelBuilders = Object.values(models ?? {});
|
|
622
|
+
const collectionByModelName = new Map(modelBuilders.map((modelBuilder) => [modelBuilder.__name, modelBuilder.__collection]));
|
|
623
|
+
const byRef = /* @__PURE__ */ new Map();
|
|
624
|
+
const defaults = [];
|
|
625
|
+
for (const modelBuilder of modelBuilders) for (const [fieldName, fieldBuilder] of Object.entries(modelBuilder.__fields)) {
|
|
626
|
+
const phases = fieldBuilder.__executionDefaults;
|
|
627
|
+
if (!phases || !hasExecutionDefaults(fieldBuilder)) continue;
|
|
628
|
+
const modelName = modelBuilder.__name;
|
|
629
|
+
if (fieldBuilder.__nullable) throw executionDefaultError(modelName, fieldName, "nullable-with-executionDefaults", "cannot be nullable when executionDefaults are present.");
|
|
630
|
+
if (fieldBuilder.__many) throw executionDefaultError(modelName, fieldName, "many-with-executionDefaults", "cannot be a list when executionDefaults are present.");
|
|
631
|
+
if (modelBuilder.__base !== void 0) {
|
|
632
|
+
const collection = modelBuilder.__collection ?? collectionByModelName.get(modelBuilder.__base);
|
|
633
|
+
throw 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.`);
|
|
634
|
+
}
|
|
635
|
+
const entry = modelBuilder.__collection;
|
|
636
|
+
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.");
|
|
637
|
+
const refKey = JSON.stringify([entry, fieldName]);
|
|
638
|
+
const phasesKey = canonicalStringify(phases);
|
|
639
|
+
const existing = byRef.get(refKey);
|
|
640
|
+
if (existing !== void 0) {
|
|
641
|
+
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.`);
|
|
642
|
+
continue;
|
|
643
|
+
}
|
|
644
|
+
byRef.set(refKey, {
|
|
645
|
+
modelName,
|
|
646
|
+
phasesKey
|
|
647
|
+
});
|
|
648
|
+
defaults.push({
|
|
649
|
+
ref: {
|
|
650
|
+
namespace: UNBOUND_NAMESPACE_ID,
|
|
651
|
+
entry,
|
|
652
|
+
field: fieldName
|
|
653
|
+
},
|
|
654
|
+
...phases
|
|
655
|
+
});
|
|
656
|
+
}
|
|
657
|
+
return defaults;
|
|
658
|
+
}
|
|
557
659
|
function buildContractFromDefinition(definition) {
|
|
558
660
|
validateTargetPackRef(definition.family, definition.target);
|
|
559
661
|
validateExtensionPackRefs(definition.target, definition.extensions);
|
|
@@ -562,6 +664,8 @@ function buildContractFromDefinition(definition) {
|
|
|
562
664
|
const roots = definition.roots ? normalizeRoots(definition.roots) : deriveRoots(definition.models);
|
|
563
665
|
const capabilities = {};
|
|
564
666
|
const collections = buildCollections(definition.models);
|
|
667
|
+
assertNoValueObjectExecutionDefaults(definition.valueObjects);
|
|
668
|
+
const execution = buildMongoExecutionSection(buildExecutionDefaults(definition.models));
|
|
565
669
|
const codecLookup = extractCodecLookup([definition.target]);
|
|
566
670
|
const storageValueSets = {};
|
|
567
671
|
for (const [enumName, handle] of Object.entries(definition.enums ?? {})) storageValueSets[enumName] = {
|
|
@@ -631,7 +735,8 @@ function buildContractFromDefinition(definition) {
|
|
|
631
735
|
targetFamily: definition.family.familyId,
|
|
632
736
|
capabilities
|
|
633
737
|
}),
|
|
634
|
-
meta: {}
|
|
738
|
+
meta: {},
|
|
739
|
+
...ifDefined("execution", execution)
|
|
635
740
|
});
|
|
636
741
|
}
|
|
637
742
|
/** Implementation. */
|
|
@@ -642,14 +747,7 @@ function buildBoundContract(family, target, definition, factory) {
|
|
|
642
747
|
target
|
|
643
748
|
};
|
|
644
749
|
if (factory !== void 0) {
|
|
645
|
-
const built = factory(
|
|
646
|
-
...composeMongoEntityHelpers(family, target, definition.extensions),
|
|
647
|
-
field,
|
|
648
|
-
index,
|
|
649
|
-
model,
|
|
650
|
-
rel,
|
|
651
|
-
valueObject
|
|
652
|
-
});
|
|
750
|
+
const built = factory(composeMongoAuthoringHelpers(family, target, definition.extensions));
|
|
653
751
|
return buildContractFromDefinition({
|
|
654
752
|
...full,
|
|
655
753
|
...ifDefined("models", built.models),
|
|
@@ -667,4 +765,4 @@ function defineContract(definition, factory) {
|
|
|
667
765
|
//#endregion
|
|
668
766
|
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 };
|
|
669
767
|
|
|
670
|
-
//# sourceMappingURL=contract-builder-
|
|
768
|
+
//# sourceMappingURL=contract-builder-C0TMb001.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract-builder-C0TMb001.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 { computeProfileHash, computeStorageHash } from \"@internal/contract/hashing\";\nimport { crossRef } from \"@internal/contract/types\";\nimport { bindEnumType, composePackAuthoringNamespace, createEntityHelpersFromNamespace, createFieldHelpersFromNamespace, enumType, isEnumTypeHandle, member, resolveToOneRelationNullable } from \"@internal/contract-authoring\";\nimport { errorEnumCodecNotInPackStack } from \"@internal/errors/control\";\nimport { assertNoCrossRegistryCollisions, instantiateAuthoringFieldPreset, validateAuthoringHelperArguments } from \"@internal/framework-components/authoring\";\nimport { extractCodecLookup } from \"@internal/framework-components/control\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { MongoCollectionOptions, MongoIndex, MongoStorage, applyPolymorphicScopeToMongoIndex, buildMongoExecutionSection, buildMongoNamespace } from \"@internal/mongo-contract\";\nimport { mongoContractCanonicalizationHooks } from \"@internal/mongo-contract/canonicalization-hooks\";\nimport { canonicalStringify } from \"@internal/utils/canonical-stringify\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\n//#region src/contract-builder.ts\n/**\n* Encode an authored enum value to its codec-encoded JSON form, mirroring SQL's `build-contract`.\n*\n* The codec is resolved by id from the lookup built from the contract's target pack, so a\n* non-identity `encodeJson` (permitted by the `mongoCodec` factory) is respected. A codecId the\n* lookup cannot resolve is a hard error: the enum uses a codec that is not part of the contract's\n* pack stack.\n*/\nfunction encodeEnumValue(value, codecId, codecLookup) {\n\tconst codec = codecLookup.get(codecId);\n\tif (!codec) throw errorEnumCodecNotInPackStack({ codecId });\n\treturn codec.encodeJson(value);\n}\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\"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} }),\n\t\tfield: composeMongoFieldHelpers(fieldNamespace),\n\t\tindex,\n\t\tmodel,\n\t\trel,\n\t\tvalueObject\n\t});\n}\nfunction createFieldBuilder(spec, enumHandle, executionDefaults) {\n\treturn {\n\t\t__kind: \"field\",\n\t\t...ifDefined(\"__executionDefaults\", executionDefaults),\n\t\t__type: spec.type,\n\t\t__nullable: spec.nullable,\n\t\t__many: spec.many,\n\t\t__enumHandle: blindCast(enumHandle),\n\t\toptional() {\n\t\t\treturn createFieldBuilder({\n\t\t\t\ttype: spec.type,\n\t\t\t\tnullable: true,\n\t\t\t\tmany: spec.many\n\t\t\t}, enumHandle, executionDefaults);\n\t\t},\n\t\tmany() {\n\t\t\treturn createFieldBuilder({\n\t\t\t\ttype: spec.type,\n\t\t\t\tnullable: spec.nullable,\n\t\t\t\tmany: true\n\t\t\t}, enumHandle, executionDefaults);\n\t\t}\n\t};\n}\nfunction normalizeOptionalTypeParams(typeParams) {\n\tif (!typeParams) return {};\n\treturn { typeParams };\n}\nfunction createScalarFieldBuilder(codecId, options) {\n\treturn createFieldBuilder({\n\t\ttype: {\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}\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\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\tvector(options) {\n\t\treturn createScalarFieldBuilder(\"mongo/vector@1\", options);\n\t},\n\tvalueObject(valueObjectName) {\n\t\treturn createFieldBuilder({\n\t\t\ttype: {\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: targetModelName,\n\t\tcardinality,\n\t\ton: {\n\t\t\tlocalFields: normalizeStringList(options.from),\n\t\t\ttargetFields: normalizeTargetFields(targetModelName, options.to)\n\t\t},\n\t\tnullable\n\t});\n}\nfunction createEmbedRelationBuilder(target, cardinality) {\n\treturn createRelationBuilder({\n\t\tto: 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: input.relations ?? {},\n\t\t__indexes: input.indexes,\n\t\t__collectionOptions: input.collectionOptions,\n\t\t__controlPolicy: input.controlPolicy,\n\t\t__collection: input.collection,\n\t\t__owner: input.owner ? resolveModelName(input.owner) : void 0,\n\t\t__base: input.base ? resolveModelName(input.base) : void 0,\n\t\t__storageRelations: input.storageRelations,\n\t\t__discriminator: input.discriminator ? { field: input.discriminator.field } : void 0,\n\t\t__variants: 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 builder.__many ? {\n\t\ttype: builder.__type,\n\t\tnullable: builder.__nullable,\n\t\tmany: true,\n\t\t...ifDefined(\"valueSet\", valueSet)\n\t} : {\n\t\ttype: builder.__type,\n\t\tnullable: builder.__nullable,\n\t\t...ifDefined(\"valueSet\", valueSet)\n\t};\n}\nfunction buildFields(fields) {\n\tconst builtFields = {};\n\tfor (const [fieldName, fieldBuilder] of Object.entries(fields)) builtFields[fieldName] = buildContractField(fieldBuilder);\n\treturn builtFields;\n}\nfunction toOneRelationNullable(modelName, relationName, relationBuilder, on, fields) {\n\tconst location = `Relation \"${modelName}.${relationName}\"`;\n\tconst ownsForeignKey = relationBuilder.__cardinality !== \"1:1\";\n\tconst localFields = ownsForeignKey ? on.localFields.map((fieldName) => {\n\t\tconst localField = fields[fieldName];\n\t\tif (localField === void 0) throw contractError(\"CONTRACT.RELATION_INVALID\", `${location} joins on local field \"${fieldName}\", which model \"${modelName}\" does not declare`, { meta: {\n\t\t\tmodelName,\n\t\t\trelationName,\n\t\t\tfieldName,\n\t\t\treason: \"local-field-unknown\"\n\t\t} });\n\t\treturn localField;\n\t}) : [];\n\tconst { nullable, contradiction } = resolveToOneRelationNullable({\n\t\tdeclaredNullable: relationBuilder.__nullable,\n\t\tlocalFieldNullability: localFields.map((localField) => localField.__nullable === true),\n\t\townsReference: ownsForeignKey\n\t});\n\tif (contradiction !== void 0) throw contractError(\"CONTRACT.RELATION_INVALID\", !ownsForeignKey ? `${location} is required but does not own the foreign key, so nothing in storage guarantees the related document exists` : contradiction === \"declared-optional\" ? `${location} is optional but every local field it joins on is required` : `${location} is required but a local field it joins on is nullable`, { meta: {\n\t\tmodelName,\n\t\trelationName,\n\t\treason: \"to-one-nullability-mismatch\"\n\t} });\n\treturn nullable;\n}\nfunction buildRelation(modelName, relationName, relationBuilder, fields) {\n\tconst to = crossRef(relationBuilder.__to, UNBOUND_NAMESPACE_ID);\n\tconst on = relationBuilder.__on;\n\tif (on === void 0) return {\n\t\tto,\n\t\tcardinality: relationBuilder.__cardinality\n\t};\n\tif (relationBuilder.__cardinality === \"1:N\") return {\n\t\tto,\n\t\tcardinality: \"1:N\",\n\t\ton\n\t};\n\treturn {\n\t\tto,\n\t\tcardinality: relationBuilder.__cardinality,\n\t\tnullable: toOneRelationNullable(modelName, relationName, relationBuilder, on, fields),\n\t\ton\n\t};\n}\nfunction buildRelations(modelName, relations, fields) {\n\tconst builtRelations = {};\n\tfor (const [relationName, relationBuilder] of Object.entries(relations)) builtRelations[relationName] = buildRelation(modelName, relationName, relationBuilder, fields);\n\treturn builtRelations;\n}\nfunction buildValueObjects(valueObjects) {\n\tconst builtValueObjects = {};\n\tfor (const valueObjectBuilder of Object.values(valueObjects ?? {})) {\n\t\tif (valueObjectBuilder.__name in builtValueObjects) throw contractError(\"CONTRACT.NAME_DUPLICATE\", `Duplicate value object name \"${valueObjectBuilder.__name}\" in defineContract().`, { meta: {\n\t\t\tkind: \"valueObject\",\n\t\t\tname: valueObjectBuilder.__name\n\t\t} });\n\t\tbuiltValueObjects[valueObjectBuilder.__name] = { fields: buildFields(valueObjectBuilder.__fields) };\n\t}\n\treturn builtValueObjects;\n}\nfunction buildModels(models) {\n\tconst builtModels = {};\n\tfor (const modelBuilder of Object.values(models ?? {})) {\n\t\tif (modelBuilder.__name in builtModels) throw contractError(\"CONTRACT.NAME_DUPLICATE\", `Duplicate model name \"${modelBuilder.__name}\" in defineContract().`, { meta: {\n\t\t\tkind: \"model\",\n\t\t\tname: modelBuilder.__name\n\t\t} });\n\t\tconst storage = {\n\t\t\t...modelBuilder.__collection ? { collection: modelBuilder.__collection } : {},\n\t\t\t...modelBuilder.__storageRelations ? { relations: modelBuilder.__storageRelations } : {}\n\t\t};\n\t\tbuiltModels[modelBuilder.__name] = {\n\t\t\tfields: buildFields(modelBuilder.__fields),\n\t\t\trelations: buildRelations(modelBuilder.__name, modelBuilder.__relations, modelBuilder.__fields),\n\t\t\tstorage,\n\t\t\t...modelBuilder.__owner ? { owner: modelBuilder.__owner } : {},\n\t\t\t...modelBuilder.__base ? { base: crossRef(modelBuilder.__base, UNBOUND_NAMESPACE_ID) } : {},\n\t\t\t...modelBuilder.__discriminator ? { discriminator: modelBuilder.__discriminator } : {},\n\t\t\t...modelBuilder.__variants ? { variants: modelBuilder.__variants } : {}\n\t\t};\n\t}\n\treturn builtModels;\n}\nfunction deriveRoots(models) {\n\tconst roots = {};\n\tfor (const modelBuilder of Object.values(models ?? {})) {\n\t\tif (!modelBuilder.__collection || modelBuilder.__owner || modelBuilder.__base) continue;\n\t\troots[modelBuilder.__collection] = crossRef(modelBuilder.__name, UNBOUND_NAMESPACE_ID);\n\t}\n\treturn roots;\n}\nfunction normalizeRoots(roots) {\n\tconst normalizedRoots = {};\n\tfor (const [rootName, rootValue] of Object.entries(roots ?? {})) normalizedRoots[rootName] = crossRef(resolveModelName(rootValue), UNBOUND_NAMESPACE_ID);\n\treturn normalizedRoots;\n}\nfunction toStorageIndex(index) {\n\tconst input = { keys: Object.entries(index.fields).map(([field, direction]) => ({\n\t\tfield,\n\t\tdirection\n\t})) };\n\tif (index.options) {\n\t\tfor (const [key, value] of Object.entries(index.options)) if (value !== void 0) input[key] = value;\n\t}\n\treturn new MongoIndex(input);\n}\nfunction toStorageCollectionOptions(opts) {\n\treturn new MongoCollectionOptions({\n\t\t...opts.capped ? { capped: {\n\t\t\tsize: opts.size ?? 0,\n\t\t\t...opts.max != null && { max: opts.max }\n\t\t} } : {},\n\t\t...ifDefined(\"storageEngine\", opts.storageEngine),\n\t\t...ifDefined(\"indexOptionDefaults\", opts.indexOptionDefaults),\n\t\t...ifDefined(\"collation\", opts.collation),\n\t\t...ifDefined(\"timeseries\", opts.timeseries),\n\t\t...opts.clusteredIndex !== void 0 && { clusteredIndex: opts.clusteredIndex.name !== void 0 ? { name: opts.clusteredIndex.name } : {} },\n\t\t...ifDefined(\"expireAfterSeconds\", opts.expireAfterSeconds),\n\t\t...ifDefined(\"changeStreamPreAndPostImages\", opts.changeStreamPreAndPostImages)\n\t});\n}\nfunction findMissingIndexField(index, modelFields) {\n\tfor (const fieldName of Object.keys(index.fields)) {\n\t\tconst wildcardMatch = fieldName.match(/^(.+)\\.\\$\\*\\*$/);\n\t\tconst lookupName = wildcardMatch ? wildcardMatch[1] : fieldName;\n\t\tif (lookupName === void 0 || lookupName.length === 0) continue;\n\t\tif (lookupName === \"$**\") continue;\n\t\tif (!Object.hasOwn(modelFields, lookupName)) return lookupName;\n\t}\n}\nfunction resolveVariantScope(modelBuilder, modelsByName) {\n\tif (!modelBuilder.__base) return void 0;\n\tconst baseBuilder = modelsByName[modelBuilder.__base];\n\tif (!baseBuilder) return void 0;\n\tconst discriminatorField = baseBuilder.__discriminator?.field;\n\tconst variantValue = baseBuilder.__variants?.[modelBuilder.__name]?.value;\n\tif (!discriminatorField || variantValue === void 0) return void 0;\n\treturn {\n\t\tdiscriminatorField,\n\t\tdiscriminatorValue: variantValue\n\t};\n}\nfunction scopeVariantIndex(storageIndex, scope, variantName, authoredIndex) {\n\tconst result = applyPolymorphicScopeToMongoIndex(storageIndex, scope);\n\tif (result.kind === \"conflict\") {\n\t\tconst indexLabel = authoredIndex ? canonicalStringify(authoredIndex) : \"<unknown>\";\n\t\tthrow contractError(\"CONTRACT.INDEX_INVALID\", `Variant model \"${variantName}\" index ${indexLabel} conflicts with discriminator scope: ${result.reason}`, { meta: {\n\t\t\tvariantName,\n\t\t\tindexLabel,\n\t\t\treason: result.reason\n\t\t} });\n\t}\n\treturn result.index;\n}\nfunction buildCollections(models) {\n\tconst intermediate = {};\n\tconst declaredIndexOwners = /* @__PURE__ */ new Map();\n\tconst modelMap = models ?? {};\n\tconst modelsByName = {};\n\tfor (const builder of Object.values(modelMap)) modelsByName[builder.__name] = builder;\n\tfor (const modelBuilder of Object.values(modelMap)) {\n\t\tif (!modelBuilder.__collection) {\n\t\t\tif (modelBuilder.__indexes && modelBuilder.__indexes.length > 0) throw contractError(\"CONTRACT.COLLECTION_INVALID\", `Model \"${modelBuilder.__name}\" defines indexes but has no collection to attach them to.`, { meta: {\n\t\t\t\tmodelName: modelBuilder.__name,\n\t\t\t\treason: \"indexes-without-collection\"\n\t\t\t} });\n\t\t\tif (modelBuilder.__collectionOptions) throw contractError(\"CONTRACT.COLLECTION_INVALID\", `Model \"${modelBuilder.__name}\" defines collectionOptions but has no collection to attach them to.`, { meta: {\n\t\t\t\tmodelName: modelBuilder.__name,\n\t\t\t\treason: \"collectionOptions-without-collection\"\n\t\t\t} });\n\t\t\tif (modelBuilder.__controlPolicy) throw contractError(\"CONTRACT.COLLECTION_INVALID\", `Model \"${modelBuilder.__name}\" defines controlPolicy but has no collection to attach it to.`, { meta: {\n\t\t\t\tmodelName: modelBuilder.__name,\n\t\t\t\treason: \"controlPolicy-without-collection\"\n\t\t\t} });\n\t\t\tcontinue;\n\t\t}\n\t\tconst existingCollection = intermediate[modelBuilder.__collection] ?? {};\n\t\tconst existingIndexes = existingCollection.indexes ?? [];\n\t\tif (existingCollection.options && modelBuilder.__collectionOptions) throw contractError(\"CONTRACT.COLLECTION_INVALID\", `Collection \"${modelBuilder.__collection}\" has collectionOptions declared by multiple models. Author collectionOptions on a single model per collection.`, { meta: {\n\t\t\tmodelName: modelBuilder.__name,\n\t\t\tcollection: modelBuilder.__collection,\n\t\t\treason: \"collectionOptions-declared-by-multiple-models\"\n\t\t} });\n\t\tif (existingCollection.control !== void 0 && modelBuilder.__controlPolicy) throw contractError(\"CONTRACT.COLLECTION_INVALID\", `Collection \"${modelBuilder.__collection}\" has controlPolicy declared by multiple models. Author controlPolicy on a single model per collection.`, { meta: {\n\t\t\tmodelName: modelBuilder.__name,\n\t\t\tcollection: modelBuilder.__collection,\n\t\t\treason: \"controlPolicy-declared-by-multiple-models\"\n\t\t} });\n\t\tfor (const collectionIndex of modelBuilder.__indexes ?? []) {\n\t\t\tconst missingField = findMissingIndexField(collectionIndex, modelBuilder.__fields);\n\t\t\tif (missingField !== void 0) {\n\t\t\t\tconst indexSignature = canonicalStringify(collectionIndex);\n\t\t\t\tthrow contractError(\"CONTRACT.FIELD_UNKNOWN\", `Model \"${modelBuilder.__name}\" index ${indexSignature} references unknown field \"${missingField}\".`, { meta: {\n\t\t\t\t\tmodelName: modelBuilder.__name,\n\t\t\t\t\tfieldName: missingField,\n\t\t\t\t\tindexSignature\n\t\t\t\t} });\n\t\t\t}\n\t\t}\n\t\tconst polymorphicScope = resolveVariantScope(modelBuilder, modelsByName);\n\t\tconst rawStorageIndexes = (modelBuilder.__indexes ?? []).map(toStorageIndex);\n\t\tconst storageIndexes = polymorphicScope ? rawStorageIndexes.map((idx, i) => scopeVariantIndex(idx, polymorphicScope, modelBuilder.__name, modelBuilder.__indexes?.[i])) : rawStorageIndexes;\n\t\tfor (let i = 0; i < storageIndexes.length; i++) {\n\t\t\tconst storageIndex = storageIndexes[i];\n\t\t\tif (storageIndex === void 0) continue;\n\t\t\tconst indexSignature = stableStringify(storageIndex);\n\t\t\tconst collectionIndexKey = `${modelBuilder.__collection}:${indexSignature}`;\n\t\t\tconst firstOwner = declaredIndexOwners.get(collectionIndexKey);\n\t\t\tif (firstOwner) {\n\t\t\t\tconst authoredIndex = modelBuilder.__indexes?.[i];\n\t\t\t\tconst reportedSignature = authoredIndex ? canonicalStringify(authoredIndex) : indexSignature;\n\t\t\t\tthrow contractError(\"CONTRACT.NAME_DUPLICATE\", `Collection \"${modelBuilder.__collection}\" defines duplicate index ${reportedSignature}. First declared on model \"${firstOwner}\" and duplicated on model \"${modelBuilder.__name}\".`, { meta: {\n\t\t\t\t\tkind: \"index\",\n\t\t\t\t\tname: reportedSignature,\n\t\t\t\t\tcollection: modelBuilder.__collection,\n\t\t\t\t\tfirst: firstOwner,\n\t\t\t\t\tsecond: modelBuilder.__name\n\t\t\t\t} });\n\t\t\t}\n\t\t\tdeclaredIndexOwners.set(collectionIndexKey, modelBuilder.__name);\n\t\t}\n\t\tconst storageOptions = modelBuilder.__collectionOptions ? toStorageCollectionOptions(modelBuilder.__collectionOptions) : void 0;\n\t\tconst controlPatch = modelBuilder.__controlPolicy !== void 0 ? { control: modelBuilder.__controlPolicy } : {};\n\t\tintermediate[modelBuilder.__collection] = storageIndexes.length > 0 ? {\n\t\t\t...existingCollection,\n\t\t\tindexes: [...existingIndexes, ...storageIndexes],\n\t\t\t...storageOptions ? { options: storageOptions } : {},\n\t\t\t...controlPatch\n\t\t} : storageOptions ? {\n\t\t\t...existingCollection,\n\t\t\toptions: storageOptions,\n\t\t\t...controlPatch\n\t\t} : Object.keys(controlPatch).length > 0 ? {\n\t\t\t...existingCollection,\n\t\t\t...controlPatch\n\t\t} : existingCollection;\n\t}\n\treturn intermediate;\n}\nfunction executionDefaultError(modelName, fieldName, reason, message) {\n\treturn contractError(\"CONTRACT.DEFAULT_INVALID\", `Field \"${modelName}.${fieldName}\" ${message}`, { meta: {\n\t\tmodelName,\n\t\tfieldName,\n\t\treason\n\t} });\n}\nfunction hasExecutionDefaults(fieldBuilder) {\n\tconst phases = fieldBuilder.__executionDefaults;\n\treturn phases?.onCreate !== void 0 || phases?.onUpdate !== void 0;\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) {\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\tconst phases = fieldBuilder.__executionDefaults;\n\t\tif (!phases || !hasExecutionDefaults(fieldBuilder)) continue;\n\t\tconst modelName = modelBuilder.__name;\n\t\tif (fieldBuilder.__nullable) throw executionDefaultError(modelName, fieldName, \"nullable-with-executionDefaults\", \"cannot be nullable when executionDefaults are present.\");\n\t\tif (fieldBuilder.__many) throw executionDefaultError(modelName, fieldName, \"many-with-executionDefaults\", \"cannot be a list when executionDefaults are present.\");\n\t\tif (modelBuilder.__base !== void 0) {\n\t\t\tconst collection = modelBuilder.__collection ?? collectionByModelName.get(modelBuilder.__base);\n\t\t\tthrow executionDefaultError(modelName, fieldName, \"executionDefaults-on-variant\", `has executionDefaults, but \"${modelName}\" is a variant of \"${modelBuilder.__base}\". Execution defaults apply to every document in collection \"${collection}\", so declare them on the base model.`);\n\t\t}\n\t\tconst entry = modelBuilder.__collection;\n\t\tif (entry === void 0) throw executionDefaultError(modelName, fieldName, \"executionDefaults-without-collection\", \"has executionDefaults, but its model has no collection. Generated values are only supported on fields of a model stored in a collection.\");\n\t\tconst refKey = JSON.stringify([entry, fieldName]);\n\t\tconst phasesKey = canonicalStringify(phases);\n\t\tconst existing = byRef.get(refKey);\n\t\tif (existing !== void 0) {\n\t\t\tif (existing.phasesKey !== phasesKey) throw executionDefaultError(modelName, fieldName, \"executionDefaults-conflict\", `has different executionDefaults than \"${existing.modelName}.${fieldName}\", which is stored in the same collection \"${entry}\". Use the same executionDefaults on both models.`);\n\t\t\tcontinue;\n\t\t}\n\t\tbyRef.set(refKey, {\n\t\t\tmodelName,\n\t\t\tphasesKey\n\t\t});\n\t\tdefaults.push({\n\t\t\tref: {\n\t\t\t\tnamespace: UNBOUND_NAMESPACE_ID,\n\t\t\t\tentry,\n\t\t\t\tfield: fieldName\n\t\t\t},\n\t\t\t...phases\n\t\t});\n\t}\n\treturn defaults;\n}\nfunction buildContractFromDefinition(definition) {\n\tvalidateTargetPackRef(definition.family, definition.target);\n\tvalidateExtensionPackRefs(definition.target, definition.extensions);\n\tconst builtModels = buildModels(definition.models);\n\tconst builtValueObjects = buildValueObjects(definition.valueObjects);\n\tconst roots = definition.roots ? normalizeRoots(definition.roots) : deriveRoots(definition.models);\n\tconst capabilities = {};\n\tconst collections = buildCollections(definition.models);\n\tassertNoValueObjectExecutionDefaults(definition.valueObjects);\n\tconst execution = buildMongoExecutionSection(buildExecutionDefaults(definition.models));\n\tconst codecLookup = extractCodecLookup([definition.target]);\n\tconst storageValueSets = {};\n\tfor (const [enumName, handle] of Object.entries(definition.enums ?? {})) storageValueSets[enumName] = {\n\t\tkind: \"valueSet\",\n\t\tvalues: handle.values.map((v) => encodeEnumValue(v, handle.codecId, codecLookup))\n\t};\n\tconst unboundNamespace = buildMongoNamespace({\n\t\tid: UNBOUND_NAMESPACE_ID,\n\t\tentries: {\n\t\t\tcollection: collections,\n\t\t\t...ifDefined(\"valueSet\", Object.keys(storageValueSets).length > 0 ? storageValueSets : void 0)\n\t\t}\n\t});\n\tconst storageBody = { namespaces: { [UNBOUND_NAMESPACE_ID]: {\n\t\tid: UNBOUND_NAMESPACE_ID,\n\t\tcollections: unboundNamespace.entries.collection,\n\t\t...ifDefined(\"valueSet\", unboundNamespace.entries.valueSet)\n\t} } };\n\tconst storage = new MongoStorage({\n\t\tstorageHash: computeStorageHash({\n\t\t\ttarget: definition.target.targetId,\n\t\t\ttargetFamily: definition.family.familyId,\n\t\t\tstorage: storageBody,\n\t\t\t...mongoContractCanonicalizationHooks\n\t\t}),\n\t\tnamespaces: { [UNBOUND_NAMESPACE_ID]: unboundNamespace }\n\t});\n\tconst builtEnums = {};\n\tfor (const [enumName, handle] of Object.entries(definition.enums ?? {})) {\n\t\tif (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\t\tenumName: handle.enumName,\n\t\t\tdeclaredKey: enumName,\n\t\t\treason: \"declaration-key-mismatch\"\n\t\t} });\n\t\tbuiltEnums[enumName] = {\n\t\t\tcodecId: handle.codecId,\n\t\t\tmembers: handle.enumMembers.map((m) => ({\n\t\t\t\tname: m.name,\n\t\t\t\tvalue: encodeEnumValue(m.value, handle.codecId, codecLookup)\n\t\t\t}))\n\t\t};\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\treturn blindCast({\n\t\ttarget: definition.target.targetId,\n\t\ttargetFamily: definition.family.familyId,\n\t\t...ifDefined(\"defaultControlPolicy\", definition.defaultControlPolicy),\n\t\troots,\n\t\tdomain: { namespaces: { [UNBOUND_NAMESPACE_ID]: {\n\t\t\tmodels: builtModels,\n\t\t\t...Object.keys(builtValueObjects).length > 0 ? { valueObjects: builtValueObjects } : {},\n\t\t\t...hasEnums ? { enum: builtEnums } : {}\n\t\t} } },\n\t\tstorage,\n\t\tcapabilities,\n\t\textensions: definition.extensions ?? {},\n\t\tprofileHash: computeProfileHash({\n\t\t\ttarget: definition.target.targetId,\n\t\t\ttargetFamily: definition.family.familyId,\n\t\t\tcapabilities\n\t\t}),\n\t\tmeta: {},\n\t\t...ifDefined(\"execution\", execution)\n\t});\n}\n/** Implementation. */\nfunction buildBoundContract(family, target, definition, factory) {\n\tconst full = {\n\t\t...definition,\n\t\tfamily,\n\t\ttarget\n\t};\n\tif (factory !== void 0) {\n\t\tconst built = factory(composeMongoAuthoringHelpers(family, target, definition.extensions));\n\t\treturn buildContractFromDefinition({\n\t\t\t...full,\n\t\t\t...ifDefined(\"models\", built.models),\n\t\t\t...ifDefined(\"valueObjects\", built.valueObjects),\n\t\t\t...ifDefined(\"roots\", built.roots)\n\t\t});\n\t}\n\treturn buildContractFromDefinition(full);\n}\nfunction defineContract(definition, factory) {\n\tif (!isContractScaffold(definition)) throw contractError(\"CONTRACT.ARGUMENT_INVALID\", \"defineContract expects a contract definition object. Define your contract with defineContract({ family, target, models, ... }).\");\n\tif (factory !== void 0) return buildBoundContract(definition.family, definition.target, definition, factory);\n\treturn buildBoundContract(definition.family, definition.target, definition);\n}\n//#endregion\nexport { bindEnumType, buildBoundContract, defineContract, enumType, field, index, isEnumTypeHandle, member, model, rel, valueObject };\n\n//# sourceMappingURL=contract-builder.mjs.map"],"mappings":"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"}
|