@prisma/orm-target-mongo 8.0.0-rc.19-dev.9 → 8.0.0-rc.19-dev.10

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 (109) hide show
  1. package/dist/adapter.d.mts +2 -2
  2. package/dist/adapter.d.mts.map +1 -1
  3. package/dist/adapter.mjs +3 -3
  4. package/dist/adapter.mjs.map +1 -1
  5. package/dist/adapter__control.d.mts +8 -8
  6. package/dist/adapter__control.d.mts.map +1 -1
  7. package/dist/adapter__control.mjs +28 -27
  8. package/dist/adapter__control.mjs.map +1 -1
  9. package/dist/adapter__runtime.d.mts +1 -1
  10. package/dist/adapter__runtime.d.mts.map +1 -1
  11. package/dist/adapter__runtime.mjs +3 -3
  12. package/dist/adapter__runtime.mjs.map +1 -1
  13. package/dist/{codec-ids-PSU05uwH.d.mts → codec-ids-BKQbXhZt.d.mts} +2 -2
  14. package/dist/codec-ids-BKQbXhZt.d.mts.map +1 -0
  15. package/dist/{codec-ids-WdrumsYA-BkQfspmL.mjs → codec-ids-WdrumsYA-CZVjuKW8.mjs} +2 -2
  16. package/dist/codec-ids-WdrumsYA-CZVjuKW8.mjs.map +1 -0
  17. package/dist/{codec-types-Daq7xQEA.d.mts → codec-types-oKxM85p-.d.mts} +2 -2
  18. package/dist/codec-types-oKxM85p-.d.mts.map +1 -0
  19. package/dist/{codecs-B1ab7vfj-DncFJY2Q.mjs → codecs-B1ab7vfj-QL33tkm2.mjs} +5 -5
  20. package/dist/codecs-B1ab7vfj-QL33tkm2.mjs.map +1 -0
  21. package/dist/{codecs-DBvHcdHp.d.mts → codecs-Y5GYsLPj.d.mts} +2 -2
  22. package/dist/codecs-Y5GYsLPj.d.mts.map +1 -0
  23. package/dist/{control-DRifdPhB.mjs → control-Cq6qWohQ.mjs} +5 -5
  24. package/dist/control-Cq6qWohQ.mjs.map +1 -0
  25. package/dist/{control-BjaiAXAN.d.mts → control-CrFS8bqh.d.mts} +3 -3
  26. package/dist/control-CrFS8bqh.d.mts.map +1 -0
  27. package/dist/{data-types-BUXk_WEa.d.mts → data-types-LShlnAUM.d.mts} +2 -2
  28. package/dist/data-types-LShlnAUM.d.mts.map +1 -0
  29. package/dist/{data-types-hoKLBrYZ-CkFtgHfm.mjs → data-types-hoKLBrYZ-h9cAgbOy.mjs} +4 -4
  30. package/dist/data-types-hoKLBrYZ-h9cAgbOy.mjs.map +1 -0
  31. package/dist/{descriptor-meta-DTj807jv-C0Hq7wyV.mjs → descriptor-meta-DTj807jv-CjvK2XDD.mjs} +5 -5
  32. package/dist/descriptor-meta-DTj807jv-CjvK2XDD.mjs.map +1 -0
  33. package/dist/{descriptor-meta-runtime-BaRbjvD7-MOhJcdky.mjs → descriptor-meta-runtime-BaRbjvD7-D0786_Lv.mjs} +4 -4
  34. package/dist/descriptor-meta-runtime-BaRbjvD7-D0786_Lv.mjs.map +1 -0
  35. package/dist/driver.d.mts +1 -1
  36. package/dist/driver.mjs +1 -1
  37. package/dist/driver__control.d.mts +2 -2
  38. package/dist/driver__control.d.mts.map +1 -1
  39. package/dist/driver__control.mjs +2 -2
  40. package/dist/driver__control.mjs.map +1 -1
  41. package/dist/{migration-DKoUk2CF.d.mts → migration-C4m4Uj8E.d.mts} +3 -3
  42. package/dist/migration-C4m4Uj8E.d.mts.map +1 -0
  43. package/dist/{migration-factories-BqROEHRs-C4K_DHy7.mjs → migration-factories-BqROEHRs-CfExMr9r.mjs} +3 -3
  44. package/dist/migration-factories-BqROEHRs-CfExMr9r.mjs.map +1 -0
  45. package/dist/{mongo-adapter-Bo6ciURK-CGfjLOPh.mjs → mongo-adapter-Bo6ciURK-DIMJdC7y.mjs} +3 -3
  46. package/dist/mongo-adapter-Bo6ciURK-DIMJdC7y.mjs.map +1 -0
  47. package/dist/{mongo-adapter-wvK2fQOZ-BXo5NxEB.d.mts → mongo-adapter-wvK2fQOZ-FswLS-PJ.d.mts} +2 -2
  48. package/dist/mongo-adapter-wvK2fQOZ-FswLS-PJ.d.mts.map +1 -0
  49. package/dist/{mongo-driver-CTyvKDUg-bwRH7EDL.d.mts → mongo-driver-CTyvKDUg-Bm9sBrfs.d.mts} +2 -2
  50. package/dist/mongo-driver-CTyvKDUg-Bm9sBrfs.d.mts.map +1 -0
  51. package/dist/{mongo-driver-q-IqfhuV-CouLzDHp.mjs → mongo-driver-_Pn5rQ9m-Bh4cHp2m.mjs} +3 -3
  52. package/dist/mongo-driver-_Pn5rQ9m-Bh4cHp2m.mjs.map +1 -0
  53. package/dist/{mongo-target-errors-Btf3ML1w-B5EMYbz1.mjs → mongo-target-errors-Btf3ML1w-QOtEG7EX.mjs} +2 -2
  54. package/dist/mongo-target-errors-Btf3ML1w-QOtEG7EX.mjs.map +1 -0
  55. package/dist/{op-factory-call-BoYr7vvM-PXfT4zvm.d.mts → op-factory-call-BoYr7vvM-CjA8nx36.d.mts} +2 -2
  56. package/dist/op-factory-call-BoYr7vvM-CjA8nx36.d.mts.map +1 -0
  57. package/dist/{pack-DYR2mrvW.d.mts → pack-CIfujQmd.d.mts} +3 -3
  58. package/dist/pack-CIfujQmd.d.mts.map +1 -0
  59. package/dist/{prisma6-binding-DRM8QnmA.d.mts → prisma6-binding-DhnqslLT.d.mts} +2 -2
  60. package/dist/prisma6-binding-DhnqslLT.d.mts.map +1 -0
  61. package/dist/{prisma6-binding-WOZ8vURx.mjs → prisma6-binding-vt4tbT-Z.mjs} +4 -4
  62. package/dist/prisma6-binding-vt4tbT-Z.mjs.map +1 -0
  63. package/dist/{runtime-B9_-kjBX.d.mts → runtime-DbFgyDql.d.mts} +2 -2
  64. package/dist/runtime-DbFgyDql.d.mts.map +1 -0
  65. package/dist/target.d.mts +10 -10
  66. package/dist/target.mjs +6 -6
  67. package/dist/target__codec-ids.d.mts +1 -1
  68. package/dist/target__codec-ids.mjs +1 -1
  69. package/dist/target__codec-types.d.mts +1 -1
  70. package/dist/target__codecs.d.mts +1 -1
  71. package/dist/target__codecs.mjs +1 -1
  72. package/dist/target__control.d.mts +2 -2
  73. package/dist/target__control.mjs +1 -1
  74. package/dist/target__data-types.d.mts +1 -1
  75. package/dist/target__data-types.mjs +1 -1
  76. package/dist/target__migration.d.mts +1 -1
  77. package/dist/target__migration.mjs +1 -1
  78. package/dist/target__pack.d.mts +2 -2
  79. package/dist/target__pack.mjs +2 -2
  80. package/dist/target__pack.mjs.map +1 -1
  81. package/dist/target__prisma6-binding.d.mts +1 -1
  82. package/dist/target__prisma6-binding.mjs +1 -1
  83. package/dist/target__runtime.d.mts +1 -1
  84. package/dist/target__runtime.mjs +2 -2
  85. package/dist/target__runtime.mjs.map +1 -1
  86. package/package.json +9 -9
  87. package/dist/codec-ids-PSU05uwH.d.mts.map +0 -1
  88. package/dist/codec-ids-WdrumsYA-BkQfspmL.mjs.map +0 -1
  89. package/dist/codec-types-Daq7xQEA.d.mts.map +0 -1
  90. package/dist/codecs-B1ab7vfj-DncFJY2Q.mjs.map +0 -1
  91. package/dist/codecs-DBvHcdHp.d.mts.map +0 -1
  92. package/dist/control-BjaiAXAN.d.mts.map +0 -1
  93. package/dist/control-DRifdPhB.mjs.map +0 -1
  94. package/dist/data-types-BUXk_WEa.d.mts.map +0 -1
  95. package/dist/data-types-hoKLBrYZ-CkFtgHfm.mjs.map +0 -1
  96. package/dist/descriptor-meta-DTj807jv-C0Hq7wyV.mjs.map +0 -1
  97. package/dist/descriptor-meta-runtime-BaRbjvD7-MOhJcdky.mjs.map +0 -1
  98. package/dist/migration-DKoUk2CF.d.mts.map +0 -1
  99. package/dist/migration-factories-BqROEHRs-C4K_DHy7.mjs.map +0 -1
  100. package/dist/mongo-adapter-Bo6ciURK-CGfjLOPh.mjs.map +0 -1
  101. package/dist/mongo-adapter-wvK2fQOZ-BXo5NxEB.d.mts.map +0 -1
  102. package/dist/mongo-driver-CTyvKDUg-bwRH7EDL.d.mts.map +0 -1
  103. package/dist/mongo-driver-q-IqfhuV-CouLzDHp.mjs.map +0 -1
  104. package/dist/mongo-target-errors-Btf3ML1w-B5EMYbz1.mjs.map +0 -1
  105. package/dist/op-factory-call-BoYr7vvM-PXfT4zvm.d.mts.map +0 -1
  106. package/dist/pack-DYR2mrvW.d.mts.map +0 -1
  107. package/dist/prisma6-binding-DRM8QnmA.d.mts.map +0 -1
  108. package/dist/prisma6-binding-WOZ8vURx.mjs.map +0 -1
  109. package/dist/runtime-B9_-kjBX.d.mts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"control-DRifdPhB.mjs","names":[],"sources":["../../../../3-mongo-target/1-mongo-target/dist/control.mjs"],"sourcesContent":["import { t as mongoTargetDescriptorMeta } from \"./descriptor-meta-DTj807jv.mjs\";\nimport { t as mongoTargetError } from \"./mongo-target-errors-Btf3ML1w.mjs\";\nimport { a as dropCollection, c as renameField, d as unsetField, n as createCollection, o as dropIndex, r as createIndex, s as renameCollection, t as collMod, u as unrewritableFieldNameReason } from \"./migration-factories-BqROEHRs.mjs\";\nimport { type } from \"arktype\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { NamespaceBase, UNBOUND_NAMESPACE_ID, elementCoordinates, freezeNode, hydrateNamespaceEntities } from \"@internal/framework-components/ir\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { canonicalizeSchemasForVerification, contractToMongoSchemaIR, diffMongoSchemas, fieldRewriteOf } from \"@internal/family-mongo/control\";\nimport { APP_SPACE_ID, VERIFY_CODE_SCHEMA_FAILURE, contractSnapshotJsonSpecifier, contractSnapshotTypesSpecifier, describeMigrationStatement, expectAbsent, expectPresent, failedPostcheckWhy, failedPrecheckWhy, issueOutcome, migrationRunnerFailure, modelDisplayName, schemaCheckWhy, withDatabaseUnchanged, withFailingSpace } from \"@internal/framework-components/control\";\nimport { notOk, ok } from \"@internal/utils/result\";\nimport { MongoContractSerializerBase, MongoSchemaVerifierBase } from \"@internal/family-mongo/ir\";\nimport { MongoCollection, MongoStorage, collectionControlPoliciesOf, collectionControlPolicyOf, collectionRootModelsOf, hasOwnFieldStoredAs, modelAndBasesOf, mongoModelsOf, ownEmbedStoredNamesOf, ownStoredNameOf, ownStoredNamesOf, validatorFieldNamesOf, validatorRootShapesOf } from \"@internal/mongo-contract\";\nimport { composeMongoEntityKinds } from \"@internal/mongo-contract/entity-kinds\";\nimport { asNamespaceId, governingControlPolicy } from \"@internal/contract/types\";\nimport { MongoSchemaCollection, MongoSchemaIR, canonicalize, deepEqual, indexLookupKey } from \"@internal/mongo-schema-ir\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { CollModCommand, CreateCollectionCommand, CreateIndexCommand, DropCollectionCommand, DropIndexCommand, ListCollectionsCommand, ListIndexesCommand, MongoAndExpr, MongoExistsExpr, MongoFieldFilter, MongoNotExpr, MongoOrExpr, RenameCollectionCommand, isMongoDmlOperation } from \"@internal/mongo-query-ast/control\";\nimport { AggregateCommand, MongoAddFieldsStage, MongoLimitStage, MongoLookupStage, MongoMatchStage, MongoMergeStage, MongoProjectStage, MongoSortStage, RawAggregateCommand, RawDeleteManyCommand, RawDeleteOneCommand, RawFindOneAndDeleteCommand, RawFindOneAndUpdateCommand, RawInsertManyCommand, RawInsertOneCommand, RawUpdateManyCommand, RawUpdateOneCommand } from \"@internal/mongo-query-ast/execution\";\nimport { TsExpression, jsonToTsSource, renderImports } from \"@internal/ts-render\";\nimport { Migration } from \"@internal/migration-tools/migration\";\nimport { resolveRequirementSpecifiers } from \"@internal/framework-components/emission\";\nimport { detectScaffoldRuntime, shebangLineFor } from \"@internal/migration-tools/migration-ts\";\nimport { verifyMongoSchema } from \"@internal/family-mongo/schema-verify\";\n//#region src/core/mongo-target-database.ts\n/**\n* Mongo target `Namespace` concretion. In Mongo the \"namespace\" concept\n* binds to the connection's `db` field — a `MongoTargetDatabase` instance\n* names the database the collections live under. `entries['collection']`\n* holds collection IR. The unbound singleton (below) is the late-bound\n* namespace whose binding the connection's `db` resolves at runtime rather\n* than at authoring time.\n*\n* Qualifier emission is the rendering seam: query / DDL emission asks the\n* namespace for its qualifier (e.g. `\"<db>.<collection>\"`) and consumes\n* the result polymorphically. The unbound singleton overrides these\n* methods to elide the prefix entirely — call sites stay polymorphic and\n* never branch on `id === UNBOUND_NAMESPACE_ID`.\n*/\nvar MongoTargetDatabase = class extends NamespaceBase {\n\tid;\n\tentries;\n\tconstructor(input) {\n\t\tsuper();\n\t\tthis.id = input.id;\n\t\tconst rawEntries = {\n\t\t\tcollection: {},\n\t\t\t...input.entries\n\t\t};\n\t\tthis.entries = Object.freeze(blindCast(hydrateNamespaceEntities(rawEntries, composeMongoEntityKinds(), \"carry\")));\n\t\tObject.defineProperty(this, \"kind\", {\n\t\t\tvalue: \"database\",\n\t\t\twritable: false,\n\t\t\tenumerable: false,\n\t\t\tconfigurable: true\n\t\t});\n\t\tfreezeNode(this);\n\t}\n\tget collection() {\n\t\treturn this.entries.collection ?? Object.freeze({});\n\t}\n\t/**\n\t* The bare qualifier as it would appear in a rendered string. The\n\t* unbound-database singleton overrides this to return `''`.\n\t*/\n\tqualifier() {\n\t\treturn this.id;\n\t}\n\t/**\n\t* Qualify a collection name with the database prefix. The\n\t* unbound-database singleton overrides this to emit just the\n\t* collection name. Used by emission/introspection paths that need a\n\t* fully-qualified reference.\n\t*/\n\tqualifyCollection(collectionName) {\n\t\treturn `${this.id}.${collectionName}`;\n\t}\n};\n/**\n* Singleton subclass for the reserved sentinel namespace id\n* (`UNBOUND_NAMESPACE_ID`) — the late-bound namespace whose binding the\n* connection's `db` resolves at runtime. Overrides qualifier emission\n* to elide the database prefix; call sites that consume `qualifier()`\n* / `qualifyCollection()` get unqualified output without branching on\n* the namespace id.\n*\n* This is the target-side materialization of \"the framework provides\n* affordances; targets implement specifics\": the framework names the\n* sentinel; Mongo decides what late-bound means here (the collection\n* name, naked — the database is supplied by the live connection).\n*/\nvar MongoTargetUnboundDatabase = class MongoTargetUnboundDatabase extends MongoTargetDatabase {\n\tstatic instance = new MongoTargetUnboundDatabase();\n\tconstructor() {\n\t\tsuper({ id: UNBOUND_NAMESPACE_ID });\n\t}\n\tqualifier() {\n\t\treturn \"\";\n\t}\n\tqualifyCollection(collectionName) {\n\t\treturn collectionName;\n\t}\n};\n//#endregion\n//#region src/core/mongo-target-contract-serializer.ts\nvar MongoTargetContractSerializer = class extends MongoContractSerializerBase {\n\tconstructTargetContract(validated) {\n\t\tconst { storage, ...rest } = validated;\n\t\tconst namespaces = Object.fromEntries(Object.entries(storage.namespaces).map(([nsId, nsData]) => {\n\t\t\tconst collectionCount = Object.keys(nsData.entries.collection ?? {}).length;\n\t\t\tconst valueSetCount = Object.keys(nsData.entries[\"valueSet\"] ?? {}).length;\n\t\t\tif (nsId === UNBOUND_NAMESPACE_ID && collectionCount === 0 && valueSetCount === 0) return [nsId, MongoTargetUnboundDatabase.instance];\n\t\t\tconst dbInput = { id: nsData.id };\n\t\t\tif (nsData.entries[\"collection\"] !== void 0 || nsData.entries[\"valueSet\"] !== void 0) dbInput.entries = {\n\t\t\t\tcollection: blindCast(nsData.entries[\"collection\"] ?? {}),\n\t\t\t\t...ifDefined(\"valueSet\", blindCast(nsData.entries[\"valueSet\"]))\n\t\t\t};\n\t\t\treturn [nsId, new MongoTargetDatabase(dbInput)];\n\t\t}));\n\t\tconst targetStorage = new MongoStorage({\n\t\t\tstorageHash: storage.storageHash,\n\t\t\tnamespaces\n\t\t});\n\t\treturn {\n\t\t\t...rest,\n\t\t\tstorage: targetStorage\n\t\t};\n\t}\n\tserializeContract(contract) {\n\t\tconst { storage, ...rest } = contract;\n\t\tconst namespacesJson = {};\n\t\tfor (const [nsId, ns] of Object.entries(storage.namespaces)) {\n\t\t\tconst collectionsOut = {};\n\t\t\tfor (const [collName, coll] of Object.entries(ns.entries.collection ?? {})) collectionsOut[collName] = blindCast(JSON.parse(JSON.stringify(coll)));\n\t\t\tconst valueSetOut = {};\n\t\t\tfor (const [vsName, vs] of Object.entries(ns.entries.valueSet ?? {})) valueSetOut[vsName] = blindCast(JSON.parse(JSON.stringify(vs)));\n\t\t\tnamespacesJson[nsId] = {\n\t\t\t\tid: ns.id,\n\t\t\t\tkind: \"mongo-database\",\n\t\t\t\tentries: {\n\t\t\t\t\tcollection: collectionsOut,\n\t\t\t\t\t...ifDefined(\"valueSet\", Object.keys(valueSetOut).length > 0 ? valueSetOut : void 0)\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\treturn blindCast({\n\t\t\t...rest,\n\t\t\tstorage: {\n\t\t\t\tstorageHash: String(storage.storageHash),\n\t\t\t\tnamespaces: namespacesJson\n\t\t\t}\n\t\t});\n\t}\n};\n//#endregion\n//#region src/core/migrations/op-factory-call.ts\n/**\n* The single module a scaffolded Mongo `migration.ts` imports from: the\n* operation factories below, plus the `Migration` base and `MigrationCLI`\n* that `render-typescript.ts` adds. The authored name; `render-typescript.ts`\n* maps it to whatever the consuming application's import root calls it,\n* once over the whole assembled import list.\n*/\nconst TARGET_MIGRATION_MODULE = \"@internal/target-mongo/migration\";\nvar OpFactoryCallNode = class extends TsExpression {\n\timportRequirements() {\n\t\treturn [{\n\t\t\tmoduleSpecifier: TARGET_MIGRATION_MODULE,\n\t\t\tsymbol: this.factoryName\n\t\t}];\n\t}\n\tfreeze() {\n\t\tObject.freeze(this);\n\t}\n};\nfunction formatKeys(keys) {\n\treturn keys.map((k) => `${k.field}:${k.direction}`).join(\", \");\n}\nvar CreateIndexCall = class extends OpFactoryCallNode {\n\tfactoryName = \"createIndex\";\n\toperationClass = \"additive\";\n\tcollection;\n\tkeys;\n\toptions;\n\tlabel;\n\tconstructor(collection, keys, options) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.keys = keys;\n\t\tthis.options = options;\n\t\tthis.label = `Create index on ${collection} (${formatKeys(keys)})`;\n\t\tthis.freeze();\n\t}\n\ttoOp() {\n\t\treturn createIndex(this.collection, this.keys, this.options);\n\t}\n\trenderTypeScript() {\n\t\treturn this.options ? `createIndex(${jsonToTsSource(this.collection)}, ${jsonToTsSource(this.keys)}, ${jsonToTsSource(this.options)})` : `createIndex(${jsonToTsSource(this.collection)}, ${jsonToTsSource(this.keys)})`;\n\t}\n};\nvar DropIndexCall = class extends OpFactoryCallNode {\n\tfactoryName = \"dropIndex\";\n\toperationClass = \"widening\";\n\tcollection;\n\tkeys;\n\tlabel;\n\tconstructor(collection, keys) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.keys = keys;\n\t\tthis.label = `Drop index on ${collection} (${formatKeys(keys)})`;\n\t\tthis.freeze();\n\t}\n\ttoOp() {\n\t\treturn dropIndex(this.collection, this.keys);\n\t}\n\trenderTypeScript() {\n\t\treturn `dropIndex(${jsonToTsSource(this.collection)}, ${jsonToTsSource(this.keys)})`;\n\t}\n};\nvar CreateCollectionCall = class extends OpFactoryCallNode {\n\tfactoryName = \"createCollection\";\n\toperationClass = \"additive\";\n\tcollection;\n\toptions;\n\tlabel;\n\tconstructor(collection, options) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.options = options;\n\t\tthis.label = `Create collection ${collection}`;\n\t\tthis.freeze();\n\t}\n\ttoOp() {\n\t\treturn createCollection(this.collection, this.options);\n\t}\n\trenderTypeScript() {\n\t\treturn this.options ? `createCollection(${jsonToTsSource(this.collection)}, ${jsonToTsSource(this.options)})` : `createCollection(${jsonToTsSource(this.collection)})`;\n\t}\n};\nvar DropCollectionCall = class extends OpFactoryCallNode {\n\tfactoryName = \"dropCollection\";\n\toperationClass = \"destructive\";\n\tcollection;\n\tlabel;\n\tconstructor(collection) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.label = `Drop collection ${collection}`;\n\t\tthis.freeze();\n\t}\n\ttoOp() {\n\t\treturn dropCollection(this.collection);\n\t}\n\trenderTypeScript() {\n\t\treturn `dropCollection(${jsonToTsSource(this.collection)})`;\n\t}\n};\nvar RenameCollectionCall = class extends OpFactoryCallNode {\n\tfactoryName = \"renameCollection\";\n\toperationClass = \"widening\";\n\tfrom;\n\tto;\n\tlabel;\n\tconstructor(from, to) {\n\t\tsuper();\n\t\tthis.from = from;\n\t\tthis.to = to;\n\t\tthis.label = `Rename collection ${from} to ${to}`;\n\t\tthis.freeze();\n\t}\n\ttoOp() {\n\t\treturn renameCollection(this.from, this.to);\n\t}\n\trenderTypeScript() {\n\t\treturn `renameCollection(${jsonToTsSource(this.from)}, ${jsonToTsSource(this.to)})`;\n\t}\n};\nfunction renderFilterOption(filter) {\n\treturn filter === void 0 ? \"\" : `, ${jsonToTsSource({ filter })}`;\n}\nvar RenameFieldCall = class extends OpFactoryCallNode {\n\tfactoryName = \"renameField\";\n\toperationClass = \"widening\";\n\tcollection;\n\tfrom;\n\tto;\n\tfilter;\n\tlabel;\n\tconstructor(collection, from, to, filter) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.from = from;\n\t\tthis.to = to;\n\t\tthis.filter = filter;\n\t\tthis.label = this.toOp().label;\n\t\tthis.freeze();\n\t}\n\ttoOp() {\n\t\treturn renameField(this.collection, this.from, this.to, ifDefined(\"filter\", this.filter));\n\t}\n\trenderTypeScript() {\n\t\treturn `renameField(${jsonToTsSource(this.collection)}, ${jsonToTsSource(this.from)}, ${jsonToTsSource(this.to)}${renderFilterOption(this.filter)})`;\n\t}\n};\nvar UnsetFieldCall = class extends OpFactoryCallNode {\n\tfactoryName = \"unsetField\";\n\toperationClass = \"destructive\";\n\tcollection;\n\tfield;\n\tfilter;\n\tlabel;\n\tconstructor(collection, field, filter) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.field = field;\n\t\tthis.filter = filter;\n\t\tthis.label = this.toOp().label;\n\t\tthis.freeze();\n\t}\n\ttoOp() {\n\t\treturn unsetField(this.collection, this.field, ifDefined(\"filter\", this.filter));\n\t}\n\trenderTypeScript() {\n\t\treturn `unsetField(${jsonToTsSource(this.collection)}, ${jsonToTsSource(this.field)}${renderFilterOption(this.filter)})`;\n\t}\n};\nvar CollModCall = class extends OpFactoryCallNode {\n\tfactoryName = \"collMod\";\n\tcollection;\n\toptions;\n\tmeta;\n\toperationClass;\n\tlabel;\n\tconstructor(collection, options, meta) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.options = options;\n\t\tthis.meta = meta;\n\t\tthis.operationClass = meta?.operationClass ?? \"widening\";\n\t\tthis.label = meta?.label ?? `Modify collection ${collection}`;\n\t\tthis.freeze();\n\t}\n\ttoOp() {\n\t\treturn collMod(this.collection, this.options, this.meta);\n\t}\n\trenderTypeScript() {\n\t\treturn this.meta ? `collMod(${jsonToTsSource(this.collection)}, ${jsonToTsSource(this.options)}, ${jsonToTsSource(this.meta)})` : `collMod(${jsonToTsSource(this.collection)}, ${jsonToTsSource(this.options)})`;\n\t}\n};\nfunction schemaIndexToCreateIndexOptions(index) {\n\treturn {\n\t\t...index.unique ? { unique: true } : {},\n\t\t...ifDefined(\"sparse\", index.sparse),\n\t\t...ifDefined(\"expireAfterSeconds\", index.expireAfterSeconds),\n\t\t...ifDefined(\"partialFilterExpression\", index.partialFilterExpression),\n\t\t...ifDefined(\"wildcardProjection\", index.wildcardProjection),\n\t\t...ifDefined(\"collation\", index.collation),\n\t\t...ifDefined(\"weights\", index.weights),\n\t\t...ifDefined(\"default_language\", index.default_language),\n\t\t...ifDefined(\"language_override\", index.language_override)\n\t};\n}\nfunction schemaCollectionToCreateCollectionOptions(coll) {\n\tconst opts = coll.options;\n\tconst validator = coll.validator;\n\tif (!opts && !validator) return void 0;\n\treturn {\n\t\t...opts?.capped ? { capped: true } : {},\n\t\t...ifDefined(\"size\", opts?.capped?.size),\n\t\t...ifDefined(\"max\", opts?.capped?.max),\n\t\t...ifDefined(\"timeseries\", opts?.timeseries),\n\t\t...ifDefined(\"collation\", opts?.collation),\n\t\t...opts?.clusteredIndex ? { clusteredIndex: {\n\t\t\tkey: { _id: 1 },\n\t\t\tunique: true,\n\t\t\t...opts.clusteredIndex.name != null ? { name: opts.clusteredIndex.name } : {}\n\t\t} } : {},\n\t\t...validator ? { validator: { $jsonSchema: validator.jsonSchema } } : {},\n\t\t...ifDefined(\"validationLevel\", validator?.validationLevel),\n\t\t...ifDefined(\"validationAction\", validator?.validationAction),\n\t\t...ifDefined(\"changeStreamPreAndPostImages\", opts?.changeStreamPreAndPostImages)\n\t};\n}\n//#endregion\n//#region src/core/migrations/mongo-statement-planning.ts\n/** The collection a model stores its documents in; a model without `@@map` names it verbatim. */\nfunction collectionOf(contract, coordinate) {\n\tconst collection = contract?.domain.namespaces[coordinate.namespaceId]?.models[coordinate.model]?.storage[\"collection\"];\n\treturn typeof collection === \"string\" ? collection : coordinate.model;\n}\nfunction modelAt(contract, coordinate) {\n\tconst models = mongoModelsOf(contract.domain, coordinate.namespaceId);\n\treturn Object.hasOwn(models, coordinate.model) ? models[coordinate.model] : void 0;\n}\n/** The stored name of `field` of the model at `coordinate`, or undefined when the model does not declare it. */\nfunction storedFieldNameAt(contract, coordinate) {\n\tconst model = modelAt(contract, coordinate);\n\treturn model === void 0 || !Object.hasOwn(model.fields, coordinate.field) ? void 0 : ownStoredNameOf(model, coordinate.field);\n}\n/** The stored name of a field the statement's resolution found on the model at `coordinate`. */\nfunction resolvedStoredNameAt(contract, coordinate) {\n\tconst storedName = storedFieldNameAt(contract, coordinate);\n\tif (storedName === void 0) throw new InternalError(`Field \"${coordinate.model}.${coordinate.field}\" a statement names has no stored name`);\n\treturn storedName;\n}\n/**\n* The condition that selects a variant's documents in the collection it shares with its base: the\n* base's discriminator field holding the variant's value. A model that is not a variant has none.\n*/\nfunction variantFilter(contract, coordinate) {\n\tconst base = modelAt(contract, coordinate)?.base;\n\tif (base === void 0) return void 0;\n\tconst baseModel = modelAt(contract, {\n\t\tnamespaceId: asNamespaceId(base.namespace),\n\t\tmodel: base.model\n\t});\n\tconst field = baseModel?.discriminator?.field;\n\tconst value = Object.entries(baseModel?.variants ?? {}).find(([, variant]) => variant.namespace === coordinate.namespaceId && variant.model === coordinate.model)?.[0];\n\treturn baseModel === void 0 || field === void 0 || value === void 0 ? void 0 : { [ownStoredNameOf(baseModel, field)]: value };\n}\nfunction declaredCollection(contract, collection) {\n\treturn Object.values(contract.storage.namespaces).map((namespace) => namespace.entries[\"collection\"]?.[collection]).find((entry) => entry instanceof MongoCollection);\n}\n/**\n* The control policy of `collection`. A collection the contract leaves out keeps the policy `fromContract` gave it, when that was not `managed`, so leaving an `external` collection out of the contract does not drop it.\n*/\nfunction collectionControlOf(contract, fromContract, collection) {\n\tconst declared = declaredCollection(contract, collection);\n\tconst original = declared === void 0 && fromContract !== null ? declaredCollection(fromContract, collection) : void 0;\n\tconst policy = collectionControlPolicyOf(collection, collectionControlPoliciesOf(contract));\n\tif (original === void 0 || fromContract === null) return {\n\t\tpolicy,\n\t\tdeclared: declared?.control\n\t};\n\tconst originalPolicy = governingControlPolicy({ explicitNodeControlPolicy: original.control }, fromContract.defaultControlPolicy);\n\treturn {\n\t\tpolicy: originalPolicy === \"managed\" ? policy : originalPolicy,\n\t\tdeclared: original.control\n\t};\n}\nfunction collectionControlPolicy(contract, collection) {\n\treturn collectionControlOf(contract, null, collection).policy;\n}\n/** Why MongoDB would refuse a collection name, if it would. */\nfunction invalidCollectionNameReason(name) {\n\tif (name === \"\") return \"it is empty\";\n\tif (name.includes(\"$\")) return \"it contains \\\"$\\\"\";\n\tif (name.includes(\"\\0\")) return \"it contains a null character\";\n\tif (name.startsWith(\"system.\")) return \"it starts with \\\"system.\\\", which MongoDB reserves\";\n}\nfunction isEmbedRelation(relation) {\n\treturn !(\"on\" in relation) && !(\"through\" in relation);\n}\nfunction storedField(model, field) {\n\tif (model === void 0) return { kind: \"absent\" };\n\tif (Object.hasOwn(model.fields, field)) return { kind: \"field\" };\n\tconst relation = Object.hasOwn(model.relations, field) ? model.relations[field] : void 0;\n\tif (relation === void 0) return { kind: \"absent\" };\n\treturn isEmbedRelation(relation) ? { kind: \"embed\" } : { kind: \"reference\" };\n}\nfunction refused(statement, label, reason, why) {\n\treturn {\n\t\tkind: \"statementRefused\",\n\t\tsummary: `${label}: ${reason}`,\n\t\twhy,\n\t\trefusedStatement: statement\n\t};\n}\nconst LEAVE_OUT = \"Leave out this statement.\";\nconst SEPARATE_THE_MODELS = \"move the models to separate collections, or carry out the change in a dataTransform operation of a migration.ts, with a filter that selects only their documents\";\n/**\n* The discriminator field and value a variant's filter selects, or `undefined` for a filter that selects by anything else, or no filter.\n*/\nfunction discriminatorValueOf(filter) {\n\tconst entries = Object.entries(filter ?? {});\n\tif (entries.length !== 1) return void 0;\n\tconst [entry] = entries;\n\tif (entry === void 0) return void 0;\n\tconst [field, value] = entry;\n\treturn typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\" ? {\n\t\tfield,\n\t\tvalue\n\t} : void 0;\n}\n/**\n* The other models stored in `collection`, root models and their variants, whose documents a change of `storedName` with `filter` reaches, and which store the field themselves or through their base. No discriminator tells the documents of several root models apart, so without a filter, or with a base model's filter, every other root model's documents are reached. A variant's filter, one discriminator value, reaches a model only when its documents can hold that value: a variant of another root model with the same discriminator field and value, or a model that declares the discriminator field itself.\n*/\nfunction otherModelsReached(contract, model, collection, filter, storedName) {\n\tconst models = mongoModelsOf(contract.domain, model.namespaceId);\n\tconst baseOf = (name) => {\n\t\tconst base = models[name]?.base;\n\t\treturn base === void 0 ? void 0 : models[base.model];\n\t};\n\tconst storesOrInherits = (name, storedName) => modelAndBasesOf(models, name).some((each) => ownStores(each, storedName));\n\tconst selected = discriminatorValueOf(filter);\n\tconst canHold = (name) => {\n\t\tif (selected === void 0) return true;\n\t\tconst base = baseOf(name);\n\t\tconst discriminator = base?.discriminator?.field;\n\t\tif (base !== void 0 && discriminator !== void 0 && ownStoredNameOf(base, discriminator) === selected.field) return Object.entries(base.variants ?? {}).some(([value, variant]) => variant.model === name && value === selected.value);\n\t\treturn storesOrInherits(name, selected.field);\n\t};\n\tconst subjectRoot = modelAt(contract, model)?.base?.model ?? model.model;\n\treturn (collectionRootModelsOf(models)[collection] ?? []).filter((name) => name !== subjectRoot).flatMap((name) => [name, ...Object.values(models[name]?.variants ?? {}).map((variant) => variant.model)]).filter((name) => canHold(name) && storesOrInherits(name, storedName));\n}\nfunction sharedCollectionWhy(collection, others, change) {\n\tconst names = others.map((name) => JSON.stringify(name)).join(\", \");\n\treturn `Collection ${JSON.stringify(collection)} stores several models and no discriminator tells their documents apart, so ${change} of ${names} too.`;\n}\n/**\n* A removal the plan cannot carry out because another root model stored in the same collection still stores the field, and no discriminator selects the documents of the model that loses it.\n*/\nfunction sharedCollectionRemovalRefusals(removals, contract) {\n\treturn removals.flatMap((removal) => {\n\t\tconst { subject, call } = removal;\n\t\tif (subject.kind !== \"field\") return [];\n\t\tconst others = otherModelsReached(contract, subject, call.collection, call.filter, call.field);\n\t\tif (others.length === 0) return [];\n\t\treturn [{\n\t\t\tkind: \"fieldRemovalRefused\",\n\t\t\tsummary: `Cannot remove field ${JSON.stringify(call.field)} of model ${JSON.stringify(subject.model)} from collection ${JSON.stringify(call.collection)}: model ${others.map((name) => JSON.stringify(name)).join(\", \")} stores it in the same collection`,\n\t\t\twhy: `${sharedCollectionWhy(call.collection, others, \"removing the field would remove it from the documents\")} To keep it in ${others.map((name) => JSON.stringify(name)).join(\", \")} documents only, ${SEPARATE_THE_MODELS}.`\n\t\t}];\n\t});\n}\nconst TIME_SERIES_UPDATES = \"MongoDB updates the documents of a time-series collection only through its metaField\";\n/**\n* A removal the plan cannot carry out because its collection is a time-series collection, whose\n* documents MongoDB does not let an update change except through the metaField.\n*/\nfunction timeSeriesRemovalRefusals(removals, schema) {\n\treturn removals.filter((removal) => schema.collection(removal.call.collection)?.options?.timeseries !== void 0).map((removal) => ({\n\t\tkind: \"fieldRemovalRefused\",\n\t\tsummary: `Cannot remove field ${JSON.stringify(removal.call.field)} from collection ${JSON.stringify(removal.call.collection)}: it is a time-series collection`,\n\t\twhy: `${TIME_SERIES_UPDATES}, so the field cannot be removed from the documents that hold it. Keep the field in the contract, as an optional field if new documents leave it out, then run this command again.`\n\t}));\n}\n/**\n* Plans the rename each statement states, in order: a model statement whose collection changes renames the\n* collection in the schema the diff then starts from, and a field statement whose stored name\n* changes renames the field in the documents that hold it.\n*/\nfunction planStatements(input) {\n\tlet schema = input.schema;\n\tconst collectionRenames = [];\n\tconst fieldRenames = [];\n\tconst callOfStatement = [];\n\tconst conflicts = [];\n\tconst renamedCollections = /* @__PURE__ */ new Map();\n\tfor (const statement of input.statements) {\n\t\tconst label = `Cannot ${describeMigrationStatement(statement, input.fromContract, input.contract)}`;\n\t\tconst outcome = statement.entity === \"namespace\" ? {\n\t\t\tkind: \"refused\",\n\t\t\tconflict: refused(statement, label, \"MongoDB does not rename namespaces in this release\", LEAVE_OUT)\n\t\t} : statement.entity === \"model\" ? planModelStatement(statement, label, schema, input) : planFieldStatement(statement, label, renamedCollections, schema, input);\n\t\tif (outcome.kind === \"refused\") {\n\t\t\tconflicts.push(outcome.conflict);\n\t\t\tcallOfStatement.push(void 0);\n\t\t\tcontinue;\n\t\t}\n\t\tif (outcome.kind === \"renameCollection\") {\n\t\t\tschema = renameInSchema(schema, outcome.call.from, outcome.call.to);\n\t\t\trenamedCollections.set(outcome.call.from, outcome.call.to);\n\t\t\tcollectionRenames.push(outcome.call);\n\t\t}\n\t\tif (outcome.kind === \"renameField\") {\n\t\t\tconst same = fieldRenames.find((call) => sameFieldRename(call, outcome.call));\n\t\t\tif (same !== void 0) {\n\t\t\t\tcallOfStatement.push(same);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfieldRenames.push(outcome.call);\n\t\t}\n\t\tcallOfStatement.push(outcome.kind === \"unchanged\" ? void 0 : outcome.call);\n\t}\n\treturn conflicts.length > 0 ? notOk(conflicts) : ok({\n\t\tschema,\n\t\tcollectionRenames,\n\t\tfieldRenames,\n\t\tcallOfStatement\n\t});\n}\n/** Whether two field renames rewrite the same documents the same way, as when every root model of a shared collection renames a field together. */\nfunction sameFieldRename(a, b) {\n\treturn a.collection === b.collection && a.from === b.from && a.to === b.to && JSON.stringify(a.filter) === JSON.stringify(b.filter);\n}\nfunction renameInSchema(schema, from, to) {\n\treturn new MongoSchemaIR(schema.collections.map((collection) => collection.name === from ? new MongoSchemaCollection({\n\t\tname: to,\n\t\tindexes: collection.indexes,\n\t\t...collection.validator === void 0 ? {} : { validator: collection.validator },\n\t\t...collection.options === void 0 ? {} : { options: collection.options }\n\t}) : collection));\n}\nfunction controlPolicyRefusal(statement, label, contract, collection) {\n\tconst policy = collectionControlPolicy(contract, collection);\n\tif (policy === \"managed\") return void 0;\n\treturn {\n\t\tkind: \"refused\",\n\t\tconflict: refused(statement, label, `collection \"${collection}\" has control policy \"${policy}\"`, `Statements rename only collections, and fields of collections, whose control policy is \"managed\". Make the change in the database yourself and leave out this statement.`)\n\t};\n}\n/**\n* The reason and advice when a statement renames a variant whose discriminator value changes: its\n* documents keep the old value, which the new validator does not accept.\n*/\nfunction discriminatorValueChange(statement, input) {\n\tconst before = variantFilter(input.fromContract, statement.from);\n\tconst after = variantFilter(input.contract, statement.to);\n\tconst base = modelAt(input.contract, statement.to)?.base;\n\tif (before === void 0 || after === void 0 || base === void 0) return void 0;\n\tconst [field, oldValue] = Object.entries(before)[0] ?? [];\n\tconst newValue = Object.values(after)[0];\n\tif (field === void 0 || oldValue === newValue) return void 0;\n\tconst fromName = modelDisplayName(statement.from);\n\tconst toName = modelDisplayName(statement.to);\n\treturn [`its discriminator value changes from ${JSON.stringify(oldValue)} to ${JSON.stringify(newValue)}`, `The documents of \"${fromName}\" hold ${field} ${JSON.stringify(oldValue)}, and this release does not rewrite a discriminator value, so they would no longer match \"${toName}\" and would fail validation. Keep the value: declare \"${toName}\" with @@base(${base.model}, ${JSON.stringify(oldValue)}). A later release changes a stored value with --convert.`];\n}\nfunction planModelStatement(statement, label, schema, input) {\n\tconst discriminatorChange = discriminatorValueChange(statement, input);\n\tif (discriminatorChange !== void 0) return {\n\t\tkind: \"refused\",\n\t\tconflict: refused(statement, label, ...discriminatorChange)\n\t};\n\tconst from = collectionOf(input.fromContract, statement.from);\n\tconst to = collectionOf(input.contract, statement.to);\n\tif (from === to) return { kind: \"unchanged\" };\n\tconst policyRefusal = controlPolicyRefusal(statement, label, input.contract, to);\n\tif (policyRefusal !== void 0) return policyRefusal;\n\tconst refuse = (reason, why) => ({\n\t\tkind: \"refused\",\n\t\tconflict: refused(statement, label, reason, why)\n\t});\n\tconst source = schema.collection(from);\n\tif (source === void 0) return refuse(`the schema being planned from has no collection \"${from}\"`, `The database has no collection \"${from}\", or \"${from}\" is a view, which MongoDB cannot rename. Inspect it with prisma db schema, or ${LEAVE_OUT.toLowerCase()}`);\n\tif (source.options?.timeseries !== void 0) return refuse(`collection \"${from}\" is a time-series collection`, `MongoDB cannot rename a time-series collection. Leave out this statement. To keep the documents, first create collection \"${to}\" yourself with the same time-series options and copy them into it; the plan then drops \"${from}\" once --delete names the model.`);\n\tconst invalid = invalidCollectionNameReason(to);\n\tif (invalid !== void 0) return refuse(`MongoDB does not accept the collection name \"${to}\": ${invalid}`, \"Give the model a collection name MongoDB accepts with @@map, then run this command again.\");\n\tif (schema.collection(to) !== void 0) return refuse(`the schema being planned from already has a collection \"${to}\"`, `A rename cannot replace a collection that already exists. Rename or drop collection \"${to}\" first, or ${LEAVE_OUT.toLowerCase()}`);\n\treturn {\n\t\tkind: \"renameCollection\",\n\t\tcall: new RenameCollectionCall(from, to)\n\t};\n}\nfunction planFieldStatement(statement, label, renamedCollections, schema, input) {\n\tconst refuse = (reason, why) => ({\n\t\tkind: \"refused\",\n\t\tconflict: refused(statement, label, reason, why)\n\t});\n\tconst fromField = storedField(modelAt(input.fromContract, statement.from), statement.from.field);\n\tconst toField = storedField(modelAt(input.contract, statement.to), statement.to.field);\n\tif (fromField.kind === \"embed\" || toField.kind === \"embed\") return refuse(\"the field is an embedded relation\", `Renaming an embedded relation is not supported in this release. ${LEAVE_OUT}`);\n\tif (fromField.kind !== \"field\" && toField.kind !== \"field\") return { kind: \"unchanged\" };\n\tif (fromField.kind !== \"field\" || toField.kind !== \"field\") return refuse(\"the field is stored in documents on one side of the statement only\", `A relation is not stored in documents, so a statement cannot rename a field to or from one. ${LEAVE_OUT}`);\n\tconst fromStored = resolvedStoredNameAt(input.fromContract, statement.from);\n\tconst toStored = resolvedStoredNameAt(input.contract, statement.to);\n\tconst originCollection = collectionOf(input.fromContract, statement.from);\n\tconst collection = renamedCollections.get(originCollection) ?? originCollection;\n\tconst destinationCollection = collectionOf(input.contract, statement.to);\n\tif (fromStored === toStored && collection === destinationCollection) return { kind: \"unchanged\" };\n\tif (fromStored === \"_id\" || toStored === \"_id\") return refuse(\"it renames _id\", `MongoDB does not let a document change its _id. ${LEAVE_OUT}`);\n\tconst unsafeFrom = unrewritableFieldNameReason(fromStored);\n\tif (unsafeFrom !== void 0) return refuse(`the stored name \"${fromStored}\" cannot be rewritten`, `${unsafeFrom}, so a statement cannot move its values. Rename it in the database yourself, or ${LEAVE_OUT.toLowerCase()}`);\n\tconst unsafeTo = unrewritableFieldNameReason(toStored);\n\tif (unsafeTo !== void 0) return refuse(`the stored name \"${toStored}\" cannot be written`, `${unsafeTo}. Give the field a stored name without \".\" that does not start with \"$\" (with @map), or ${LEAVE_OUT.toLowerCase()}`);\n\tif (collection !== destinationCollection) return refuse(`the model's collection changes from \"${originCollection}\" to \"${destinationCollection}\", and no statement renames it`, collectionChangeAdvice(statement, originCollection, destinationCollection));\n\tif (schema.collection(collection)?.options?.timeseries !== void 0) return refuse(`collection \"${collection}\" is a time-series collection`, `${TIME_SERIES_UPDATES}, so a statement cannot move the values of a field in them. Keep the stored name: store the field as ${JSON.stringify(fromStored)} (with @map(${JSON.stringify(fromStored)}) in PSL), then run this command again without this statement.`);\n\tconst policyRefusal = controlPolicyRefusal(statement, label, input.contract, collection);\n\tif (policyRefusal !== void 0) return policyRefusal;\n\tconst variant = variantFilter(input.fromContract, statement.from);\n\tconst renamedTogether = new Set(input.statements.flatMap((other) => other.entity === \"field\" && other.from.namespaceId === statement.from.namespaceId && storedFieldNameAt(input.fromContract, other.from) === fromStored && storedFieldNameAt(input.contract, other.to) === toStored ? [other.from.model] : []));\n\tconst others = otherModelsReached(input.fromContract, statement.from, originCollection, variant, fromStored).filter((name) => !renamedTogether.has(name));\n\tif (others.length > 0) return refuse(`model ${others.map((name) => JSON.stringify(name)).join(\", \")} stores field ${JSON.stringify(fromStored)} in the same collection, ${JSON.stringify(collection)}`, `${sharedCollectionWhy(collection, others, \"renaming the field would rename it in the documents\")} To change it, ${SEPARATE_THE_MODELS}.`);\n\treturn {\n\t\tkind: \"renameField\",\n\t\tcall: new RenameFieldCall(collection, fromStored, toStored, variant ?? rootDocumentsLosing(input.contract, statement.to, fromStored)?.filter)\n\t};\n}\nfunction collectionChangeAdvice(statement, from, to) {\n\tif (!sameModel(statement.from, statement.to)) return `Add --rename ${modelDisplayName(statement.from)}:${modelDisplayName(statement.to)} before this statement, so the collection is renamed with its documents.`;\n\treturn `A statement cannot rename the collection of a model that keeps its name. Rename the collection in a step of its own first: change only @@map and emit the contract. ${renameCollectionByHandSteps(statement.from, from, to)} Then change the field and run this statement again.`;\n}\nfunction renameCollectionByHandSteps(model, from, to) {\n\treturn `With db update, rename the collection in the database yourself, for example db.getCollection(${JSON.stringify(from)}).renameCollection(${JSON.stringify(to)}) in mongosh, then run db update. With migration plan, plan it, passing --delete ${modelDisplayName(model)} to answer its question; in its migration.ts make renameCollection(${JSON.stringify(from)}, ${JSON.stringify(to)}) the first operation, imported with the other operations, delete the drop of \"${from}\", and delete the create of \"${to}\" if there is one; run node on that migration.ts so it writes ops.json again; then apply it with prisma db migrate.`;\n}\n/**\n* How to keep the documents of a model that keeps its name while its collection changes from\n* `from` to `to`: no statement can rename that collection, so the user renames it by hand.\n*/\nfunction keepCollectionByHandAdvice(model, from, to) {\n\treturn `To keep its documents, rename collection \"${from}\" to \"${to}\" instead; a statement cannot rename the collection of a model that keeps its name. ${renameCollectionByHandSteps(model, from, to)}`;\n}\nfunction modelCoordinates(contract) {\n\treturn Object.entries(contract.domain?.namespaces ?? {}).flatMap(([namespaceId, namespace]) => Object.keys(namespace.models).map((model) => ({\n\t\tnamespaceId: asNamespaceId(namespaceId),\n\t\tmodel\n\t})));\n}\nfunction sameModel(a, b) {\n\treturn a.namespaceId === b.namespaceId && a.model === b.model;\n}\n/**\n* The destination model an origin model became: the one a statement renamed it to, else the one of\n* the same name, else the only one stored the same way (same collection, same variant value).\n*/\nfunction destinationModelOf(origin, input) {\n\tconst renamed = input.statements.find((statement) => statement.entity === \"model\" && sameModel(statement.from, origin));\n\tif (renamed !== void 0) return renamed.to;\n\tif (modelAt(input.contract, origin) !== void 0) return origin;\n\tconst collection = input.collectionAfterRenames(collectionOf(input.fromContract, origin));\n\tconst filter = JSON.stringify(variantFilter(input.fromContract, origin) ?? null);\n\tconst stored = modelCoordinates(input.contract).filter((candidate) => collectionOf(input.contract, candidate) === collection && JSON.stringify(variantFilter(input.contract, candidate) ?? null) === filter);\n\tconst [only] = stored;\n\treturn stored.length === 1 ? only : void 0;\n}\nfunction renamedByStatement(input, field) {\n\treturn input.statements.some((statement) => statement.entity === \"field\" && sameModel(statement.from, field) && statement.from.field === field.field);\n}\n/** Whether one of `model`'s own fields or embed relations is stored under `storedName`. */\nfunction ownStores(model, storedName) {\n\treturn hasOwnFieldStoredAs(model, storedName) || Object.values(ownEmbedStoredNamesOf(model)).includes(storedName);\n}\n/** The stored names of the documents of the model at `coordinate`: its fields and embed relations, its own and those it inherits. */\nfunction storedFieldsOf(contract, coordinate) {\n\tconst models = mongoModelsOf(contract.domain, coordinate.namespaceId);\n\treturn new Set(modelAndBasesOf(models, coordinate.model).flatMap((model) => [...Object.values(ownStoredNamesOf(model)), ...Object.values(ownEmbedStoredNamesOf(model))]));\n}\n/**\n* The documents of a root model that lose `field`: all of them, or, when some of its destination\n* variants now store the field themselves, those whose discriminator value is none of theirs.\n* `undefined` when the root model itself still stores it.\n*/\nfunction rootDocumentsLosing(contract, root, storedName) {\n\tconst model = modelAt(contract, root);\n\tif (model === void 0 || ownStores(model, storedName)) return void 0;\n\tconst discriminator = model.discriminator?.field;\n\tconst keeping = Object.entries(model.variants ?? {}).filter(([, variant]) => {\n\t\tconst variantModel = modelAt(contract, {\n\t\t\tnamespaceId: variant.namespace,\n\t\t\tmodel: variant.model\n\t\t});\n\t\treturn variantModel !== void 0 && ownStores(variantModel, storedName);\n\t}).map(([value]) => value).sort();\n\tif (discriminator === void 0 || keeping.length === 0) return { filter: void 0 };\n\treturn { filter: { [ownStoredNameOf(model, discriminator)]: { $nin: keeping } } };\n}\n/**\n* Each field an origin model stores that its destination model no longer stores, in a collection\n* the plan keeps: removing it is data loss, carried out by unsetting it from the documents that\n* hold it, in a collection whose control policy is `managed`. A variant's field is unset only from that variant's documents, unless its destination\n* base now stores it. A base field is unset from the documents of every variant that does not now\n* store it itself.\n*/\nfunction planFieldRemovals(input) {\n\treturn modelCoordinates(input.fromContract).flatMap((origin) => {\n\t\tconst collection = input.collectionAfterRenames(collectionOf(input.fromContract, origin));\n\t\tif (!input.keptCollections.has(collection)) return [];\n\t\tif (collectionControlPolicy(input.contract, collection) !== \"managed\") return [];\n\t\tconst destination = destinationModelOf(origin, input);\n\t\tif (destination === void 0) return [];\n\t\tconst model = modelAt(input.fromContract, origin);\n\t\tif (model === void 0) return [];\n\t\tconst variant = variantFilter(input.fromContract, origin);\n\t\tconst losing = (storedName) => {\n\t\t\tif (variant !== void 0) return storedFieldsOf(input.contract, destination).has(storedName) ? void 0 : { filter: variant };\n\t\t\treturn rootDocumentsLosing(input.contract, destination, storedName);\n\t\t};\n\t\treturn Object.entries(ownStoredNamesOf(model)).filter(([field, storedName]) => unrewritableFieldNameReason(storedName) === void 0 && !renamedByStatement(input, {\n\t\t\t...origin,\n\t\t\tfield\n\t\t})).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0).flatMap(([field, storedName]) => {\n\t\t\tconst lost = losing(storedName);\n\t\t\treturn lost === void 0 ? [] : [{\n\t\t\t\tcall: new UnsetFieldCall(collection, storedName, lost.filter),\n\t\t\t\tsubject: {\n\t\t\t\t\tkind: \"field\",\n\t\t\t\t\t...origin,\n\t\t\t\t\tfield\n\t\t\t\t}\n\t\t\t}];\n\t\t});\n\t});\n}\n/**\n* Without an origin contract, a field is known removed when the origin validator declares it for a\n* root model and the destination validator declares it nowhere. It is named by its storage name.\n*/\nfunction planValidatorFieldRemovals(input) {\n\treturn input.origin.collections.flatMap((originCollection) => {\n\t\tif (collectionControlPolicy(input.contract, originCollection.name) !== \"managed\") return [];\n\t\tconst destination = input.destination.collection(originCollection.name);\n\t\tif (destination?.validator === void 0 || originCollection.validator === void 0) return [];\n\t\tconst kept = validatorFieldNamesOf(destination.validator.jsonSchema);\n\t\treturn [...new Set(validatorRootShapesOf(originCollection.validator.jsonSchema).flatMap((root) => Object.keys(root.properties)))].filter((field) => unrewritableFieldNameReason(field) === void 0 && !kept.has(field)).sort().map((field) => ({\n\t\t\tcall: new UnsetFieldCall(originCollection.name, field),\n\t\t\tsubject: {\n\t\t\t\tkind: \"storage\",\n\t\t\t\tname: `${originCollection.name}.${field}`\n\t\t\t}\n\t\t}));\n\t});\n}\n//#endregion\n//#region src/core/migrations/render-ops.ts\nfunction renderOps(calls) {\n\treturn calls.map((call) => call.toOp());\n}\n//#endregion\n//#region src/core/migrations/render-typescript.ts\n/**\n* Always-present base imports for the rendered scaffold, both from the\n* target's own `migration` entry:\n*\n* - `Migration` — the user-facing Mongo `Migration` base, forwarded from\n* `@internal/family-mongo`; subclasses don't need to redeclare\n* `targetId` or thread family/target generics.\n* - `MigrationCLI` — the migration-file CLI entrypoint that loads\n* `prisma.config.ts`, assembles a `ControlStack`, and instantiates\n* the migration class. The migration file owns this dependency directly:\n* pulling CLI machinery in at script run time is acceptable because the\n* script's whole purpose is to be invoked from the project that owns the\n* config.\n*\n* Naming one package rather than three is what lets an application that\n* installed only `@prisma/orm-mongo` run a scaffolded migration: emitted\n* code may name only a direct dependency (ADR 242), and the facade carries\n* the target's `migration` entry but neither the family base nor the CLI.\n*/\nconst BASE_IMPORTS = [{\n\tmoduleSpecifier: TARGET_MIGRATION_MODULE,\n\tsymbol: \"Migration\"\n}, {\n\tmoduleSpecifier: TARGET_MIGRATION_MODULE,\n\tsymbol: \"MigrationCLI\"\n}];\n/**\n* Render a list of Mongo `OpFactoryCall`s as a `migration.ts` source string.\n* The result is shebanged, imports the contract JSON from the shared\n* snapshot store (the destination contract, plus the source contract for a\n* non-baseline migration), extends `Migration<Start, End>` (or\n* `Migration<never, End>` for a baseline) from\n* `@internal/target-mongo/migration`,\n* assigns the JSON to `endContractJson` / `startContractJson`, and implements\n* `operations`. The `Migration` base derives `describe()` from those fields.\n*\n* The walk is polymorphic: each call node contributes its own\n* `renderTypeScript()` expression and declares its own `importRequirements()`.\n* The top-level renderer aggregates imports across all nodes and emits one\n* `import { … } from \"…\"` line per module. The `Migration` / `MigrationCLI`\n* base imports and the contract-JSON imports are always emitted, independent\n* of the call nodes.\n*/\nfunction renderCallsToTypeScript(calls, meta) {\n\tconst imports = buildImports(calls, meta);\n\tconst operationsBody = calls.map((c) => c.renderTypeScript()).join(\",\\n\");\n\tconst hasStart = meta.from !== null;\n\tconst startField = hasStart ? [\" override readonly startContractJson = startContract;\"] : [];\n\treturn [\n\t\tshebangLineFor(detectScaffoldRuntime()),\n\t\timports,\n\t\t\"\",\n\t\t`class M extends Migration<${hasStart ? \"Start\" : \"never\"}, End> {`,\n\t\t...startField,\n\t\t\" override readonly endContractJson = endContract;\",\n\t\t\"\",\n\t\t\" override get operations() {\",\n\t\t\" return [\",\n\t\tindent(operationsBody, 6),\n\t\t\" ];\",\n\t\t\" }\",\n\t\t\"}\",\n\t\t\"\",\n\t\t\"export default M;\",\n\t\t\"MigrationCLI.run(import.meta.url, M);\",\n\t\t\"\"\n\t].join(\"\\n\");\n}\nfunction buildImports(calls, meta) {\n\tconst requirements = [...BASE_IMPORTS, ...contractImports(meta)];\n\tfor (const call of calls) for (const req of call.importRequirements()) requirements.push(req);\n\treturn renderImports(resolveRequirementSpecifiers(requirements, meta.resolveImportSpecifier));\n}\n/**\n* The committed contract-JSON imports the scaffold reads its from/to identity\n* from, resolved to the deduplicated snapshot store under\n* `meta.snapshotsImportPath`. The end snapshot is always present; the start\n* snapshot is added only for a non-baseline migration (`meta.from !== null`).\n* The matching `Contract` type imports (aliased `Start`/`End`) feed the\n* `Migration<Start, End>` generics. Baseline emits `Migration<never, End>` with\n* no start imports — `never` is the honest \"no prior contract\" Start.\n*/\nfunction contractImports(meta) {\n\tconst reqs = [{\n\t\tmoduleSpecifier: contractSnapshotJsonSpecifier(meta.snapshotsImportPath, meta.to),\n\t\tsymbol: \"endContract\",\n\t\tkind: \"default\",\n\t\tattributes: { type: \"json\" }\n\t}, {\n\t\tmoduleSpecifier: contractSnapshotTypesSpecifier(meta.snapshotsImportPath, meta.to),\n\t\tsymbol: \"Contract\",\n\t\talias: \"End\",\n\t\ttypeOnly: true\n\t}];\n\tif (meta.from !== null) {\n\t\treqs.push({\n\t\t\tmoduleSpecifier: contractSnapshotJsonSpecifier(meta.snapshotsImportPath, meta.from),\n\t\t\tsymbol: \"startContract\",\n\t\t\tkind: \"default\",\n\t\t\tattributes: { type: \"json\" }\n\t\t});\n\t\treqs.push({\n\t\t\tmoduleSpecifier: contractSnapshotTypesSpecifier(meta.snapshotsImportPath, meta.from),\n\t\t\tsymbol: \"Contract\",\n\t\t\talias: \"Start\",\n\t\t\ttypeOnly: true\n\t\t});\n\t}\n\treturn reqs;\n}\nfunction indent(text, spaces) {\n\tconst pad = \" \".repeat(spaces);\n\treturn text.split(\"\\n\").map((line) => line.trim() ? `${pad}${line}` : line).join(\"\\n\");\n}\n//#endregion\n//#region src/core/migrations/planner-produced-migration.ts\n/**\n* Planner-produced Mongo migration, returned by `MongoMigrationPlanner.plan(...)`\n* and `MongoMigrationPlanner.emptyMigration(...)`.\n*\n* Unlike user-authored migrations (which extend `MongoMigration` from\n* `@internal/family-mongo`), this class lives inside the target and holds\n* the richer authoring IR (`OpFactoryCall[]`) needed to render itself back to\n* TypeScript source. It implements `MigrationPlanWithAuthoringSurface` so\n* that the CLI can uniformly ask any planner result to serialize itself to a\n* `migration.ts`.\n*\n* It extends the framework `Migration` base directly and declares its own\n* `targetId` rather than inheriting `MongoMigration`, whose added value is\n* the lazily-built contract views a planner result never reads.\n*/\nvar PlannerProducedMongoMigration = class extends Migration {\n\tcalls;\n\tmeta;\n\tsnapshotsImportPath;\n\ttargetId = \"mongo\";\n\tconstructor(calls, meta, snapshotsImportPath) {\n\t\tsuper();\n\t\tthis.calls = calls;\n\t\tthis.meta = meta;\n\t\tthis.snapshotsImportPath = snapshotsImportPath;\n\t}\n\tget operations() {\n\t\treturn renderOps(this.calls);\n\t}\n\tdescribe() {\n\t\treturn this.meta;\n\t}\n\trenderTypeScript(resolveImportSpecifier) {\n\t\treturn renderCallsToTypeScript(this.calls, {\n\t\t\tfrom: this.meta.from,\n\t\t\tto: this.meta.to,\n\t\t\tsnapshotsImportPath: this.snapshotsImportPath,\n\t\t\tresolveImportSpecifier\n\t\t});\n\t}\n};\n//#endregion\n//#region src/core/migrations/mongo-planner.ts\nfunction validatorsEqual(a, b) {\n\tif (!a && !b) return true;\n\tif (!a || !b) return false;\n\treturn a.validationLevel === b.validationLevel && a.validationAction === b.validationAction && canonicalize(a.jsonSchema) === canonicalize(b.jsonSchema);\n}\nfunction isPlainObject(v) {\n\treturn typeof v === \"object\" && v !== null && !Array.isArray(v);\n}\n/** Each field a root model of the validator declares, with the distinct schemas the root models give it, in canonical form. */\nfunction propertiesOf(schema) {\n\tconst schemas = /* @__PURE__ */ new Map();\n\tfor (const root of validatorRootShapesOf(schema)) for (const [field, fieldSchema] of Object.entries(root.properties)) schemas.set(field, (schemas.get(field) ?? /* @__PURE__ */ new Set()).add(canonicalize(fieldSchema)));\n\treturn Object.fromEntries([...schemas].map(([field, distinct]) => [field, [...distinct].sort().join(\"|\")]));\n}\n/**\n* A label naming the properties whose schema changed, so a dry run shows what a validator update does: `Update validator on items (changed: meta; added: note)`.\n*/\nfunction validatorUpdateLabel(collName, origin, dest) {\n\tconst originProps = propertiesOf(origin.jsonSchema);\n\tconst destProps = propertiesOf(dest.jsonSchema);\n\tconst changed = Object.keys(destProps).filter((field) => Object.hasOwn(originProps, field) && originProps[field] !== destProps[field]);\n\tconst added = Object.keys(destProps).filter((field) => !Object.hasOwn(originProps, field));\n\tconst removed = Object.keys(originProps).filter((field) => !Object.hasOwn(destProps, field));\n\tconst parts = [\n\t\t...changed.length > 0 ? [`changed: ${changed.join(\", \")}`] : [],\n\t\t...added.length > 0 ? [`added: ${added.join(\", \")}`] : [],\n\t\t...removed.length > 0 ? [`removed: ${removed.join(\", \")}`] : []\n\t];\n\treturn parts.length === 0 ? `Update validator on ${collName}` : `Update validator on ${collName} (${parts.join(\"; \")})`;\n}\n/**\n* The keys of an option MongoDB fills in when a collection is created without them, each with a\n* test for the value it fills in. `listCollections` reports a time-series collection's granularity\n* as \"seconds\" and its bucketMaxSpanSeconds when they were not given, and bucketRoundingSeconds only\n* for custom bucketing, which a contract cannot state; and a clustered index's v, key and unique, and\n* its name as \"_id_\".\n*/\nconst SERVER_FILLED = {\n\ttimeseries: {\n\t\tgranularity: (value) => value === \"seconds\",\n\t\tbucketMaxSpanSeconds: () => true,\n\t\tbucketRoundingSeconds: () => true\n\t},\n\tclusteredIndex: {\n\t\tv: () => true,\n\t\tkey: () => true,\n\t\tunique: () => true,\n\t\tname: (value) => value === \"_id_\"\n\t}\n};\n/** The origin's value of an option without the keys the server filled in and the destination leaves out. */\nfunction withoutServerFilled(option, origin, dest) {\n\tif (!isPlainObject(origin)) return origin;\n\tconst filled = SERVER_FILLED[option];\n\treturn Object.fromEntries(Object.entries(origin).filter(([key, value]) => isPlainObject(dest) && Object.hasOwn(dest, key) || !filled[key]?.(value)));\n}\nfunction hasImmutableOptionChange(origin, dest) {\n\tif (canonicalize(origin?.capped) !== canonicalize(dest?.capped)) return \"capped\";\n\tif (canonicalize(withoutServerFilled(\"timeseries\", origin?.timeseries, dest?.timeseries)) !== canonicalize(dest?.timeseries)) return \"timeseries\";\n\tif (canonicalize(origin?.collation) !== canonicalize(dest?.collation)) return \"collation\";\n\tif (canonicalize(withoutServerFilled(\"clusteredIndex\", origin?.clusteredIndex, dest?.clusteredIndex)) !== canonicalize(dest?.clusteredIndex)) return \"clusteredIndex\";\n}\nfunction collectionHasOptions(coll) {\n\treturn !!(coll.options || coll.validator);\n}\n/**\n* The model of `fromContract` that stores its documents in `collection`, if any: the root model\n* when variants share the collection with it.\n*/\nfunction modelStoredIn(fromContract, collection) {\n\tconst storing = Object.entries(fromContract.domain.namespaces).flatMap(([namespaceId, namespace]) => Object.entries(namespace.models).flatMap(([model, definition]) => {\n\t\tconst coordinate = {\n\t\t\tnamespaceId: asNamespaceId(namespaceId),\n\t\t\tmodel\n\t\t};\n\t\treturn collectionOf(fromContract, coordinate) === collection ? [{\n\t\t\tcoordinate,\n\t\t\tisRoot: definition.base === void 0\n\t\t}] : [];\n\t}));\n\treturn (storing.find(({ isRoot }) => isRoot) ?? storing[0])?.coordinate;\n}\n/** A convert or backfill statement, which this release cannot carry out on MongoDB. */\nfunction unsupportedStatementConflict(statement, fromContract, contract) {\n\treturn {\n\t\tkind: \"statementRefused\",\n\t\tsummary: `MongoDB does not apply ${statement.kind} statements in this release, so nothing was planned: ${describeMigrationStatement(statement, fromContract, contract)}`,\n\t\twhy: `MongoDB cannot carry out ${statement.kind} statements in this release. Leave out the statement.`,\n\t\trefusedStatement: statement\n\t};\n}\n/**\n* Each collection drop of the plan, with the model whose documents it loses. When that model keeps\n* its name and the plan brings its new collection into existence, the drop says how to rename the\n* collection by hand instead.\n*/\nfunction collectionDrops(calls, fromContract, contract, collections) {\n\tconst created = (collection) => collections.origin.collection(collection) === void 0 && collections.destination.collection(collection) !== void 0;\n\treturn calls.flatMap((call, operationIndex) => {\n\t\tif (!(call instanceof DropCollectionCall)) return [];\n\t\tconst model = fromContract === null ? void 0 : modelStoredIn(fromContract, call.collection);\n\t\tconst lost = {\n\t\t\toperationIndex,\n\t\t\tloss: \"drop\",\n\t\t\tlabel: call.label\n\t\t};\n\t\tif (model === void 0) return [{\n\t\t\t...lost,\n\t\t\tsubject: {\n\t\t\t\tkind: \"storage\",\n\t\t\t\tname: call.collection\n\t\t\t}\n\t\t}];\n\t\tconst subject = {\n\t\t\tkind: \"model\",\n\t\t\t...model\n\t\t};\n\t\tconst destinationCollection = modelStoredInDestination(contract, model);\n\t\treturn [destinationCollection !== void 0 && created(destinationCollection) ? {\n\t\t\t...lost,\n\t\t\tsubject,\n\t\t\tkeepDataAdvice: keepCollectionByHandAdvice(model, call.collection, destinationCollection)\n\t\t} : {\n\t\t\t...lost,\n\t\t\tsubject\n\t\t}];\n\t});\n}\n/** The collection the destination stores `model` in, when the destination still has that model. */\nfunction modelStoredInDestination(contract, model) {\n\tconst namespace = contract.domain.namespaces[model.namespaceId];\n\treturn namespace !== void 0 && Object.hasOwn(namespace.models, model.model) ? collectionOf(contract, model) : void 0;\n}\nfunction callsOf(diff) {\n\treturn [\n\t\t...diff.collCreates,\n\t\t...diff.drops,\n\t\t...diff.creates,\n\t\t...diff.validatorOps,\n\t\t...diff.mutableOptionOps,\n\t\t...diff.collDrops\n\t];\n}\nfunction planCollectionDiff(collName, originColl, destColl) {\n\tconst collCreates = [];\n\tconst drops = [];\n\tconst creates = [];\n\tconst validatorOps = [];\n\tconst mutableOptionOps = [];\n\tconst collDrops = [];\n\tconst conflicts = [];\n\tif (!originColl) {\n\t\tif (destColl && (collectionHasOptions(destColl) || destColl.indexes.length === 0)) {\n\t\t\tconst opts = collectionHasOptions(destColl) ? schemaCollectionToCreateCollectionOptions(destColl) : void 0;\n\t\t\tcollCreates.push(new CreateCollectionCall(collName, opts));\n\t\t}\n\t} else if (!destColl) collDrops.push(new DropCollectionCall(collName));\n\telse {\n\t\tconst immutableChange = hasImmutableOptionChange(originColl.options, destColl.options);\n\t\tif (immutableChange) conflicts.push({\n\t\t\tkind: \"policy-violation\",\n\t\t\tsummary: `Cannot change immutable collection option '${immutableChange}' on ${collName}`,\n\t\t\twhy: `MongoDB does not support modifying the '${immutableChange}' option after collection creation`\n\t\t});\n\t\tconst mutableCall = planMutableOptionsDiffCall(collName, originColl.options, destColl.options);\n\t\tif (mutableCall) mutableOptionOps.push(mutableCall);\n\t\tconst validatorCall = planValidatorDiffCall(collName, originColl.validator, destColl.validator);\n\t\tif (validatorCall) validatorOps.push(validatorCall);\n\t}\n\tconst originLookup = /* @__PURE__ */ new Map();\n\tif (originColl) for (const idx of originColl.indexes) originLookup.set(indexLookupKey(idx), idx);\n\tconst destLookup = /* @__PURE__ */ new Map();\n\tif (destColl) for (const idx of destColl.indexes) destLookup.set(indexLookupKey(idx), idx);\n\tfor (const [lookupKey, idx] of originLookup) if (!destLookup.has(lookupKey)) drops.push(new DropIndexCall(collName, idx.keys));\n\tfor (const [lookupKey, idx] of destLookup) if (!originLookup.has(lookupKey)) creates.push(new CreateIndexCall(collName, idx.keys, schemaIndexToCreateIndexOptions(idx)));\n\treturn {\n\t\tcollCreates,\n\t\tdrops,\n\t\tcreates,\n\t\tvalidatorOps,\n\t\tmutableOptionOps,\n\t\tcollDrops,\n\t\tconflicts\n\t};\n}\n/**\n* The warning for a change a collection's control policy left out of the plan, worded as the Postgres planner words a suppressed call.\n*/\nfunction suppressedCallWarning(call, collection, control) {\n\tconst declared = control.declared !== void 0 && control.declared !== control.policy ? ` but declared '${control.declared}'` : \"\";\n\treturn {\n\t\tkind: \"controlPolicySuppressedCall\",\n\t\tsummary: `control policy suppressed: ${call.label} — collection \"${collection}\" has effective control '${control.policy}'${declared}`,\n\t\tmeta: {\n\t\t\tcontrolPolicy: control.policy,\n\t\t\t...ifDefined(\"declaredControlPolicy\", control.declared)\n\t\t}\n\t};\n}\nvar MongoMigrationPlanner = class {\n\tplanCalls(options) {\n\t\tconst contract = blindCast(options.contract);\n\t\tconst originIR = options.statementCalls?.schema ?? blindCast(options.schema);\n\t\tconst destinationIR = contractToMongoSchemaIR(contract);\n\t\tconst collCreates = [];\n\t\tconst drops = [];\n\t\tconst creates = [];\n\t\tconst validatorOps = [];\n\t\tconst mutableOptionOps = [];\n\t\tconst collDrops = [];\n\t\tconst conflicts = [];\n\t\tconst warnings = [];\n\t\tconst allCollectionNames = /* @__PURE__ */ new Set([...originIR.collectionNames, ...destinationIR.collectionNames]);\n\t\tfor (const collName of [...allCollectionNames].sort()) {\n\t\t\tconst originColl = originIR.collection(collName);\n\t\t\tconst planned = planCollectionDiff(collName, originColl, destinationIR.collection(collName));\n\t\t\tconst control = collectionControlOf(contract, options.fromContract, collName);\n\t\t\tif (!plansChangesTo(control.policy, originColl !== void 0)) {\n\t\t\t\twarnings.push(...callsOf(planned).map((call) => suppressedCallWarning(call, collName, control)));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcollCreates.push(...planned.collCreates);\n\t\t\tdrops.push(...planned.drops);\n\t\t\tcreates.push(...planned.creates);\n\t\t\tvalidatorOps.push(...planned.validatorOps);\n\t\t\tmutableOptionOps.push(...planned.mutableOptionOps);\n\t\t\tcollDrops.push(...planned.collDrops);\n\t\t\tconflicts.push(...planned.conflicts);\n\t\t}\n\t\tif (conflicts.length > 0) return {\n\t\t\tkind: \"failure\",\n\t\t\tconflicts\n\t\t};\n\t\tconst allCalls = [\n\t\t\t...options.statementCalls?.collectionRenames ?? [],\n\t\t\t...collCreates,\n\t\t\t...drops,\n\t\t\t...options.statementCalls?.rewrites ?? [],\n\t\t\t...creates,\n\t\t\t...validatorOps,\n\t\t\t...mutableOptionOps,\n\t\t\t...collDrops\n\t\t];\n\t\tfor (const call of allCalls) if (!options.policy.allowedOperationClasses.includes(call.operationClass)) conflicts.push({\n\t\t\tkind: \"policy-violation\",\n\t\t\tsummary: `${call.operationClass} operation disallowed: ${call.label}`,\n\t\t\twhy: `Policy does not allow '${call.operationClass}' operations`,\n\t\t\trefusedOperationClass: call.operationClass\n\t\t});\n\t\tif (conflicts.length > 0) return {\n\t\t\tkind: \"failure\",\n\t\t\tconflicts\n\t\t};\n\t\treturn {\n\t\t\tkind: \"success\",\n\t\t\tcalls: allCalls,\n\t\t\twarnings\n\t\t};\n\t}\n\tplan(options) {\n\t\tconst contract = blindCast(options.contract);\n\t\tconst originIR = blindCast(options.schema);\n\t\tconst fromContract = options.fromContract;\n\t\tconst unsupported = options.statements.find((statement) => statement.kind !== \"rename\");\n\t\tif (unsupported !== void 0) return {\n\t\t\tkind: \"failure\",\n\t\t\tconflicts: [unsupportedStatementConflict(unsupported, fromContract ?? contract, contract)]\n\t\t};\n\t\tconst renames = options.statements.filter((statement) => statement.kind === \"rename\");\n\t\tconst statementPlan = planStatements({\n\t\t\tstatements: renames,\n\t\t\tfromContract: fromContract ?? contract,\n\t\t\tcontract,\n\t\t\tschema: originIR\n\t\t});\n\t\tif (!statementPlan.ok) return {\n\t\t\tkind: \"failure\",\n\t\t\tconflicts: statementPlan.failure\n\t\t};\n\t\tconst { schema, collectionRenames, fieldRenames, callOfStatement } = statementPlan.value;\n\t\tconst destinationIR = contractToMongoSchemaIR(contract);\n\t\tconst renamedTo = new Map(collectionRenames.map((call) => [call.from, call.to]));\n\t\tconst removals = fromContract === null ? planValidatorFieldRemovals({\n\t\t\torigin: schema,\n\t\t\tdestination: destinationIR,\n\t\t\tcontract\n\t\t}) : planFieldRemovals({\n\t\t\tstatements: renames,\n\t\t\tfromContract,\n\t\t\tcontract,\n\t\t\tcollectionAfterRenames: (collection) => renamedTo.get(collection) ?? collection,\n\t\t\tkeptCollections: new Set(schema.collectionNames.filter((name) => destinationIR.collection(name) !== void 0))\n\t\t});\n\t\tconst removalRefusals = [...timeSeriesRemovalRefusals(removals, schema), ...sharedCollectionRemovalRefusals(removals, contract)];\n\t\tif (removalRefusals.length > 0) return {\n\t\t\tkind: \"failure\",\n\t\t\tconflicts: removalRefusals\n\t\t};\n\t\tconst result = this.planCalls({\n\t\t\t...options,\n\t\t\tstatementCalls: {\n\t\t\t\tschema,\n\t\t\t\tcollectionRenames,\n\t\t\t\trewrites: [...fieldRenames, ...removals.map((removal) => removal.call)]\n\t\t\t}\n\t\t});\n\t\tif (result.kind === \"failure\") return result;\n\t\tconst { calls, warnings } = result;\n\t\tconst fieldLoss = removals.map((removal) => ({\n\t\t\toperationIndex: calls.indexOf(removal.call),\n\t\t\tsubject: removal.subject,\n\t\t\tloss: \"drop\",\n\t\t\tlabel: removal.call.label\n\t\t}));\n\t\treturn {\n\t\t\tkind: \"success\",\n\t\t\tplan: new PlannerProducedMongoMigration(calls, {\n\t\t\t\tfrom: options.origin?.storageHash ?? null,\n\t\t\t\tto: contract.storage.storageHash\n\t\t\t}, options.snapshotsImportPath),\n\t\t\tappliedStatements: options.statements.map((statement, index) => {\n\t\t\t\tconst call = callOfStatement[index];\n\t\t\t\treturn {\n\t\t\t\t\tstatement,\n\t\t\t\t\toperationIndexes: call === void 0 ? [] : [calls.indexOf(call)]\n\t\t\t\t};\n\t\t\t}),\n\t\t\tdataLoss: [...collectionDrops(calls, fromContract, contract, {\n\t\t\t\torigin: schema,\n\t\t\t\tdestination: destinationIR\n\t\t\t}), ...fieldLoss].sort((a, b) => a.operationIndex - b.operationIndex),\n\t\t\taccessChanges: [],\n\t\t\ttemporaryValues: [],\n\t\t\t...warnings.length > 0 ? { warnings } : {}\n\t\t};\n\t}\n\t/**\n\t* Produce an empty `migration.ts` authoring surface for `migration new`.\n\t*\n\t* The \"empty migration\" is a `PlannerProducedMongoMigration` with no\n\t* operations; `renderTypeScript()` emits a stub class with the correct\n\t* `from`/`to` metadata that the user then fills in with operations. The\n\t* contract path on the context is unused — Mongo's emitted source does\n\t* not import from the generated contract `.d.ts`.\n\t*/\n\temptyMigration(context) {\n\t\treturn new PlannerProducedMongoMigration([], {\n\t\t\tfrom: context.fromHash,\n\t\t\tto: context.toHash\n\t\t}, context.snapshotsImportPath);\n\t}\n};\nfunction plansChangesTo(policy, collectionExists) {\n\tswitch (policy) {\n\t\tcase \"managed\": return true;\n\t\tcase \"tolerated\": return !collectionExists;\n\t\tcase \"external\":\n\t\tcase \"observed\": return false;\n\t}\n}\nfunction planValidatorDiffCall(collName, originValidator, destValidator) {\n\tif (validatorsEqual(originValidator, destValidator)) return void 0;\n\tif (destValidator) return new CollModCall(collName, {\n\t\tvalidator: { $jsonSchema: destValidator.jsonSchema },\n\t\tvalidationLevel: destValidator.validationLevel,\n\t\tvalidationAction: destValidator.validationAction\n\t}, {\n\t\tid: `validator.${collName}.${originValidator ? \"update\" : \"add\"}`,\n\t\tlabel: originValidator ? validatorUpdateLabel(collName, originValidator, destValidator) : `Add validator on ${collName}`,\n\t\toperationClass: \"widening\"\n\t});\n\treturn new CollModCall(collName, {\n\t\tvalidator: {},\n\t\tvalidationLevel: \"strict\",\n\t\tvalidationAction: \"error\"\n\t}, {\n\t\tid: `validator.${collName}.remove`,\n\t\tlabel: `Remove validator on ${collName}`,\n\t\toperationClass: \"widening\"\n\t});\n}\nfunction planMutableOptionsDiffCall(collName, origin, dest) {\n\tconst originCSPPI = origin?.changeStreamPreAndPostImages;\n\tconst destCSPPI = dest?.changeStreamPreAndPostImages;\n\tif (deepEqual(originCSPPI, destCSPPI)) return void 0;\n\treturn new CollModCall(collName, { changeStreamPreAndPostImages: destCSPPI ?? { enabled: false } }, {\n\t\tid: `options.${collName}.update`,\n\t\tlabel: `Update mutable options on ${collName}`,\n\t\toperationClass: \"widening\"\n\t});\n}\n//#endregion\n//#region src/core/migrations/filter-evaluator.ts\nfunction isRecord(value) {\n\treturn value !== null && typeof value === \"object\";\n}\nfunction getNestedField(doc, path) {\n\tconst parts = path.split(\".\");\n\tlet current = doc;\n\tfor (const part of parts) {\n\t\tif (!isRecord(current)) return;\n\t\tconst record = current;\n\t\tif (!Object.hasOwn(record, part)) return;\n\t\tcurrent = record[part];\n\t}\n\treturn blindCast(current);\n}\nfunction evaluateFieldOp(op, actual, expected) {\n\tswitch (op) {\n\t\tcase \"$eq\": return deepEqual(actual, expected);\n\t\tcase \"$ne\": return !deepEqual(actual, expected);\n\t\tcase \"$gt\": return typeof actual === typeof expected && blindCast(actual) > blindCast(expected);\n\t\tcase \"$gte\": return typeof actual === typeof expected && blindCast(actual) >= blindCast(expected);\n\t\tcase \"$lt\": return typeof actual === typeof expected && blindCast(actual) < blindCast(expected);\n\t\tcase \"$lte\": return typeof actual === typeof expected && blindCast(actual) <= blindCast(expected);\n\t\tcase \"$in\": return Array.isArray(expected) && expected.some((v) => deepEqual(actual, v));\n\t\tdefault: throw mongoTargetError(\"MIGRATION.OPERATION_UNSUPPORTED\", `Unsupported filter operator in migration check: ${op}`, { meta: { operator: op } });\n\t}\n}\nvar FilterEvaluator = class {\n\tdoc = {};\n\tevaluate(filter, doc) {\n\t\tthis.doc = doc;\n\t\treturn filter.accept(this);\n\t}\n\tfield(expr) {\n\t\tconst value = getNestedField(this.doc, expr.field);\n\t\treturn evaluateFieldOp(expr.op, value, expr.value);\n\t}\n\tand(expr) {\n\t\treturn expr.exprs.every((child) => child.accept(this));\n\t}\n\tor(expr) {\n\t\treturn expr.exprs.some((child) => child.accept(this));\n\t}\n\tnot(expr) {\n\t\treturn !expr.expr.accept(this);\n\t}\n\texists(expr) {\n\t\tconst has = getNestedField(this.doc, expr.field) !== void 0;\n\t\treturn expr.exists ? has : !has;\n\t}\n\texpr(_expr) {\n\t\tthrow mongoTargetError(\"MIGRATION.OPERATION_UNSUPPORTED\", \"Aggregation expression filters are not supported in migration checks\", { meta: { operator: \"$expr\" } });\n\t}\n};\n//#endregion\n//#region src/core/migrations/mongo-ops-serializer.ts\nconst IndexKeyJson = type({\n\tfield: \"string\",\n\tdirection: type(\"1 | -1 | \\\"text\\\" | \\\"2dsphere\\\" | \\\"2d\\\" | \\\"hashed\\\"\")\n});\nconst CollationJson = type({\n\tlocale: \"string\",\n\t\"caseLevel?\": \"boolean\",\n\t\"caseFirst?\": \"string\",\n\t\"strength?\": \"number\",\n\t\"numericOrdering?\": \"boolean\",\n\t\"alternate?\": \"string\",\n\t\"maxVariable?\": \"string\",\n\t\"backwards?\": \"boolean\",\n\t\"normalization?\": \"boolean\"\n});\nconst CreateIndexJson = type({\n\tkind: \"\\\"createIndex\\\"\",\n\tcollection: \"string\",\n\tkeys: IndexKeyJson.array().atLeastLength(1),\n\t\"unique?\": \"boolean\",\n\t\"sparse?\": \"boolean\",\n\t\"expireAfterSeconds?\": \"number\",\n\t\"partialFilterExpression?\": \"Record<string, unknown>\",\n\t\"name?\": \"string\",\n\t\"wildcardProjection?\": \"Record<string, 0 | 1>\",\n\t\"collation?\": CollationJson,\n\t\"weights?\": \"Record<string, number>\",\n\t\"default_language?\": \"string\",\n\t\"language_override?\": \"string\"\n});\nconst DropIndexJson = type({\n\tkind: \"\\\"dropIndex\\\"\",\n\tcollection: \"string\",\n\tname: \"string\"\n});\nconst CreateCollectionJson = type({\n\tkind: \"\\\"createCollection\\\"\",\n\tcollection: \"string\",\n\t\"validator?\": \"Record<string, unknown>\",\n\t\"validationLevel?\": \"\\\"strict\\\" | \\\"moderate\\\"\",\n\t\"validationAction?\": \"\\\"error\\\" | \\\"warn\\\"\",\n\t\"capped?\": \"boolean\",\n\t\"size?\": \"number\",\n\t\"max?\": \"number\",\n\t\"timeseries?\": {\n\t\ttimeField: \"string\",\n\t\t\"metaField?\": \"string\",\n\t\t\"granularity?\": \"\\\"seconds\\\" | \\\"minutes\\\" | \\\"hours\\\"\"\n\t},\n\t\"collation?\": CollationJson,\n\t\"changeStreamPreAndPostImages?\": { enabled: \"boolean\" },\n\t\"clusteredIndex?\": {\n\t\tkey: \"Record<string, number>\",\n\t\tunique: \"boolean\",\n\t\t\"name?\": \"string\"\n\t}\n});\nconst DropCollectionJson = type({\n\tkind: \"\\\"dropCollection\\\"\",\n\tcollection: \"string\"\n});\nconst RenameCollectionJson = type({\n\tkind: \"\\\"renameCollection\\\"\",\n\tcollection: \"string\",\n\tto: \"string\"\n});\nconst CollModJson = type({\n\tkind: \"\\\"collMod\\\"\",\n\tcollection: \"string\",\n\t\"validator?\": \"Record<string, unknown>\",\n\t\"validationLevel?\": \"\\\"strict\\\" | \\\"moderate\\\"\",\n\t\"validationAction?\": \"\\\"error\\\" | \\\"warn\\\"\",\n\t\"changeStreamPreAndPostImages?\": { enabled: \"boolean\" }\n});\nconst ListIndexesJson = type({\n\tkind: \"\\\"listIndexes\\\"\",\n\tcollection: \"string\"\n});\nconst ListCollectionsJson = type({ kind: \"\\\"listCollections\\\"\" });\nconst FieldFilterJson = type({\n\tkind: \"\\\"field\\\"\",\n\tfield: \"string\",\n\top: \"string\",\n\tvalue: \"unknown\"\n});\nconst AndFilterJson = type({\n\tkind: \"\\\"and\\\"\",\n\texprs: \"Record<string, unknown>[]\"\n});\nconst OrFilterJson = type({\n\tkind: \"\\\"or\\\"\",\n\texprs: \"Record<string, unknown>[]\"\n});\nconst NotFilterJson = type({\n\tkind: \"\\\"not\\\"\",\n\texpr: \"Record<string, unknown>\"\n});\nconst ExistsFilterJson = type({\n\tkind: \"\\\"exists\\\"\",\n\tfield: \"string\",\n\texists: \"boolean\"\n});\nconst RawInsertOneJson = type({\n\tkind: \"\\\"rawInsertOne\\\"\",\n\tcollection: \"string\",\n\tdocument: \"Record<string, unknown>\"\n});\nconst RawInsertManyJson = type({\n\tkind: \"\\\"rawInsertMany\\\"\",\n\tcollection: \"string\",\n\tdocuments: \"Record<string, unknown>[]\"\n});\nconst RawUpdateOneJson = type({\n\tkind: \"\\\"rawUpdateOne\\\"\",\n\tcollection: \"string\",\n\tfilter: \"Record<string, unknown>\",\n\tupdate: \"Record<string, unknown> | Record<string, unknown>[]\"\n});\nconst RawUpdateManyJson = type({\n\tkind: \"\\\"rawUpdateMany\\\"\",\n\tcollection: \"string\",\n\tfilter: \"Record<string, unknown>\",\n\tupdate: \"Record<string, unknown> | Record<string, unknown>[]\",\n\t\"bypassDocumentValidation?\": \"boolean\"\n});\nconst RawDeleteOneJson = type({\n\tkind: \"\\\"rawDeleteOne\\\"\",\n\tcollection: \"string\",\n\tfilter: \"Record<string, unknown>\"\n});\nconst RawDeleteManyJson = type({\n\tkind: \"\\\"rawDeleteMany\\\"\",\n\tcollection: \"string\",\n\tfilter: \"Record<string, unknown>\"\n});\nconst RawAggregateJson = type({\n\tkind: \"\\\"rawAggregate\\\"\",\n\tcollection: \"string\",\n\tpipeline: \"Record<string, unknown>[]\"\n});\nconst RawFindOneAndUpdateJson = type({\n\tkind: \"\\\"rawFindOneAndUpdate\\\"\",\n\tcollection: \"string\",\n\tfilter: \"Record<string, unknown>\",\n\tupdate: \"Record<string, unknown> | Record<string, unknown>[]\",\n\tupsert: \"boolean\"\n});\nconst RawFindOneAndDeleteJson = type({\n\tkind: \"\\\"rawFindOneAndDelete\\\"\",\n\tcollection: \"string\",\n\tfilter: \"Record<string, unknown>\"\n});\nconst TypedAggregateJson = type({\n\tkind: \"\\\"aggregate\\\"\",\n\tcollection: \"string\",\n\tpipeline: \"Record<string, unknown>[]\"\n});\nconst QueryPlanJson = type({\n\tcollection: \"string\",\n\tcommand: \"Record<string, unknown>\",\n\tmeta: type({\n\t\ttarget: \"string\",\n\t\tstorageHash: \"string\",\n\t\tlane: \"string\",\n\t\t\"targetFamily?\": \"string\",\n\t\t\"profileHash?\": \"string\",\n\t\t\"annotations?\": \"Record<string, unknown>\"\n\t})\n});\nconst MatchStageJson = type({\n\tkind: \"\\\"match\\\"\",\n\tfilter: \"Record<string, unknown>\"\n});\nconst LimitStageJson = type({\n\tkind: \"\\\"limit\\\"\",\n\tlimit: \"number\"\n});\nconst SortStageJson = type({\n\tkind: \"\\\"sort\\\"\",\n\tsort: \"Record<string, 1 | -1>\"\n});\nconst ProjectStageJson = type({\n\tkind: \"\\\"project\\\"\",\n\tprojection: \"Record<string, 0 | 1>\"\n});\nconst AddFieldsStageJson = type({\n\tkind: \"\\\"addFields\\\"\",\n\tfields: \"Record<string, unknown>\"\n});\nconst LookupStageJson = type({\n\tkind: \"\\\"lookup\\\"\",\n\tfrom: \"string\",\n\tas: \"string\",\n\t\"localField?\": \"string\",\n\t\"foreignField?\": \"string\",\n\t\"pipeline?\": \"Record<string, unknown>[]\",\n\t\"let_?\": \"Record<string, unknown>\"\n});\nconst CheckJson = type({\n\tdescription: \"string\",\n\tsource: \"Record<string, unknown>\",\n\tfilter: \"Record<string, unknown>\",\n\texpect: \"\\\"exists\\\" | \\\"notExists\\\"\",\n\t\"object?\": \"string > 0\"\n});\nconst StepJson = type({\n\tdescription: \"string\",\n\tcommand: \"Record<string, unknown>\"\n});\nconst DdlOperationJson = type({\n\tid: \"string\",\n\tlabel: \"string\",\n\toperationClass: \"\\\"additive\\\" | \\\"widening\\\" | \\\"destructive\\\"\",\n\tprecheck: \"Record<string, unknown>[]\",\n\texecute: \"Record<string, unknown>[]\",\n\tpostcheck: \"Record<string, unknown>[]\"\n});\nconst DmlCheckJson = type({\n\tdescription: \"string\",\n\tsource: \"Record<string, unknown>\",\n\tfilter: \"Record<string, unknown>\",\n\texpect: \"\\\"exists\\\" | \\\"notExists\\\"\"\n});\nconst DmlOperationJson = type({\n\tid: \"string\",\n\tlabel: \"string\",\n\toperationClass: \"\\\"additive\\\" | \\\"widening\\\" | \\\"destructive\\\" | \\\"data\\\"\",\n\tname: \"string\",\n\tprecheck: \"Record<string, unknown>[]\",\n\trun: \"Record<string, unknown>[]\",\n\tpostcheck: \"Record<string, unknown>[]\"\n});\nfunction recordValue(json, key, context) {\n\tif (json === null || typeof json !== \"object\") throw mongoTargetError(\"MIGRATION.INVALID_OPERATION_ENTRY\", `Invalid ${context}: expected object`, { meta: { context } });\n\treturn blindCast(Reflect.get(json, key));\n}\nfunction recordKind(json, context) {\n\tconst kind = recordValue(json, \"kind\", context);\n\treturn typeof kind === \"string\" ? kind : \"\";\n}\nfunction validate(schema, data, context) {\n\ttry {\n\t\treturn schema.assert(stripUndefinedDeep(data));\n\t} catch (error) {\n\t\t/* v8 ignore stop */\n\t\tthrow mongoTargetError(\"MIGRATION.INVALID_OPERATION_ENTRY\", `Invalid ${context}: ${error instanceof Error ? error.message : String(error)}`, {\n\t\t\tmeta: { context },\n\t\t\tcause: error\n\t\t});\n\t}\n}\n/**\n* Strip `undefined`-valued properties before they reach arktype's optional-key\n* assertions.\n*\n* Op IRs (e.g. `CreateCollectionCommand`) assign every optional field on\n* every instance — fields the caller did not provide land as\n* `undefined`-valued properties. arktype treats `{ foo?: 'boolean' }` as\n* \"key may be absent, but if present must be boolean\", so the bare instance\n* fails validation when it crosses the deserialize boundary in-process\n* (no JSON round-trip happens between planner → runner). This helper\n* recovers the JSON-round-tripped shape (undefined keys absent) without\n* forcing every caller to round-trip.\n*\n* Returns the original value reference whenever no change is needed.\n* That preserves prototype-bound payload values such as BSON wrappers\n* (`ObjectId`, `Decimal128`, `Binary`, …) which embed no `undefined`\n* own-enumerable properties and therefore never trigger a rebuild.\n* Top-level op IRs (class instances with `undefined` optional fields)\n* still get flattened to plain records as required by arktype.\n*/\nfunction stripUndefinedDeep(value) {\n\tif (Array.isArray(value)) {\n\t\tlet changed = false;\n\t\tconst next = value.map((item) => {\n\t\t\tconst stripped = stripUndefinedDeep(item);\n\t\t\tif (stripped !== item) changed = true;\n\t\t\treturn stripped;\n\t\t});\n\t\treturn changed ? next : value;\n\t}\n\tif (value === null || typeof value !== \"object\") return blindCast(value);\n\tconst entries = Object.entries(value);\n\tconst out = {};\n\tlet changed = false;\n\tfor (const [key, val] of entries) {\n\t\tif (val === void 0) {\n\t\t\tchanged = true;\n\t\t\tcontinue;\n\t\t}\n\t\tconst stripped = stripUndefinedDeep(val);\n\t\tif (stripped !== val) changed = true;\n\t\tout[key] = stripped;\n\t}\n\treturn changed ? out : blindCast(value);\n}\nfunction deserializeFilterExpr(json) {\n\tconst kind = recordKind(json, \"filter expression\");\n\tswitch (kind) {\n\t\tcase \"field\": {\n\t\t\tconst data = validate(FieldFilterJson, json, \"field filter\");\n\t\t\treturn MongoFieldFilter.of(data.field, data.op, blindCast(data.value));\n\t\t}\n\t\tcase \"and\": {\n\t\t\tconst data = validate(AndFilterJson, json, \"and filter\");\n\t\t\treturn MongoAndExpr.of(data.exprs.map(deserializeFilterExpr));\n\t\t}\n\t\tcase \"or\": {\n\t\t\tconst data = validate(OrFilterJson, json, \"or filter\");\n\t\t\treturn MongoOrExpr.of(data.exprs.map(deserializeFilterExpr));\n\t\t}\n\t\tcase \"not\": return new MongoNotExpr(deserializeFilterExpr(validate(NotFilterJson, json, \"not filter\").expr));\n\t\tcase \"exists\": {\n\t\t\tconst data = validate(ExistsFilterJson, json, \"exists filter\");\n\t\t\treturn new MongoExistsExpr(data.field, data.exists);\n\t\t}\n\t\tdefault: throw mongoTargetError(\"MIGRATION.INVALID_OPERATION_ENTRY\", `Unknown filter expression kind: ${kind}`, { meta: {\n\t\t\tcontext: \"filter expression\",\n\t\t\tkind\n\t\t} });\n\t}\n}\nfunction deserializePipelineStage(json) {\n\tconst kind = recordKind(json, \"pipeline stage\");\n\tswitch (kind) {\n\t\tcase \"match\": return new MongoMatchStage(deserializeFilterExpr(validate(MatchStageJson, json, \"match stage\").filter));\n\t\tcase \"limit\": return new MongoLimitStage(validate(LimitStageJson, json, \"limit stage\").limit);\n\t\tcase \"sort\": return new MongoSortStage(validate(SortStageJson, json, \"sort stage\").sort);\n\t\tcase \"project\": return new MongoProjectStage(validate(ProjectStageJson, json, \"project stage\").projection);\n\t\tcase \"addFields\": return new MongoAddFieldsStage(blindCast(validate(AddFieldsStageJson, json, \"addFields stage\").fields));\n\t\tcase \"lookup\": {\n\t\t\tconst data = validate(LookupStageJson, json, \"lookup stage\");\n\t\t\tconst opts = {\n\t\t\t\tfrom: data.from,\n\t\t\t\tas: data.as\n\t\t\t};\n\t\t\tif (data.localField !== void 0) opts.localField = data.localField;\n\t\t\tif (data.foreignField !== void 0) opts.foreignField = data.foreignField;\n\t\t\tif (data.pipeline !== void 0) opts.pipeline = data.pipeline.map(deserializePipelineStage);\n\t\t\tif (data.let_ !== void 0) opts.let_ = blindCast(data.let_);\n\t\t\treturn new MongoLookupStage(opts);\n\t\t}\n\t\tcase \"merge\": {\n\t\t\tconst whenMatched = recordValue(json, \"whenMatched\", \"merge stage\");\n\t\t\tconst opts = { into: blindCast(recordValue(json, \"into\", \"merge stage\")) };\n\t\t\tconst on = recordValue(json, \"on\", \"merge stage\");\n\t\t\tif (on !== void 0) opts.on = blindCast(on);\n\t\t\tif (whenMatched !== void 0) opts.whenMatched = typeof whenMatched === \"string\" ? whenMatched : blindCast(blindCast(whenMatched).map(deserializePipelineStage));\n\t\t\tconst whenNotMatched = recordValue(json, \"whenNotMatched\", \"merge stage\");\n\t\t\tif (whenNotMatched !== void 0) opts.whenNotMatched = blindCast(whenNotMatched);\n\t\t\treturn new MongoMergeStage(opts);\n\t\t}\n\t\tdefault: throw mongoTargetError(\"MIGRATION.INVALID_OPERATION_ENTRY\", `Unknown pipeline stage kind: ${kind}`, { meta: {\n\t\t\tcontext: \"pipeline stage\",\n\t\t\tkind\n\t\t} });\n\t}\n}\nfunction deserializeDmlCommand(json) {\n\tconst kind = recordKind(json, \"DML command\");\n\tswitch (kind) {\n\t\tcase \"rawInsertOne\": {\n\t\t\tconst data = validate(RawInsertOneJson, json, \"rawInsertOne command\");\n\t\t\treturn new RawInsertOneCommand(data.collection, data.document);\n\t\t}\n\t\tcase \"rawInsertMany\": {\n\t\t\tconst data = validate(RawInsertManyJson, json, \"rawInsertMany command\");\n\t\t\treturn new RawInsertManyCommand(data.collection, data.documents);\n\t\t}\n\t\tcase \"rawUpdateOne\": {\n\t\t\tconst data = validate(RawUpdateOneJson, json, \"rawUpdateOne command\");\n\t\t\treturn new RawUpdateOneCommand(data.collection, data.filter, data.update);\n\t\t}\n\t\tcase \"rawUpdateMany\": {\n\t\t\tconst data = validate(RawUpdateManyJson, json, \"rawUpdateMany command\");\n\t\t\treturn new RawUpdateManyCommand(data.collection, data.filter, data.update, ifDefined(\"bypassDocumentValidation\", data.bypassDocumentValidation));\n\t\t}\n\t\tcase \"rawDeleteOne\": {\n\t\t\tconst data = validate(RawDeleteOneJson, json, \"rawDeleteOne command\");\n\t\t\treturn new RawDeleteOneCommand(data.collection, data.filter);\n\t\t}\n\t\tcase \"rawDeleteMany\": {\n\t\t\tconst data = validate(RawDeleteManyJson, json, \"rawDeleteMany command\");\n\t\t\treturn new RawDeleteManyCommand(data.collection, data.filter);\n\t\t}\n\t\tcase \"rawAggregate\": {\n\t\t\tconst data = validate(RawAggregateJson, json, \"rawAggregate command\");\n\t\t\treturn new RawAggregateCommand(data.collection, data.pipeline);\n\t\t}\n\t\tcase \"rawFindOneAndUpdate\": {\n\t\t\tconst data = validate(RawFindOneAndUpdateJson, json, \"rawFindOneAndUpdate command\");\n\t\t\treturn new RawFindOneAndUpdateCommand(data.collection, data.filter, data.update, data.upsert);\n\t\t}\n\t\tcase \"rawFindOneAndDelete\": {\n\t\t\tconst data = validate(RawFindOneAndDeleteJson, json, \"rawFindOneAndDelete command\");\n\t\t\treturn new RawFindOneAndDeleteCommand(data.collection, data.filter);\n\t\t}\n\t\tcase \"aggregate\": {\n\t\t\tconst data = validate(TypedAggregateJson, json, \"aggregate command\");\n\t\t\tconst pipeline = data.pipeline.map(deserializePipelineStage);\n\t\t\treturn new AggregateCommand(data.collection, pipeline);\n\t\t}\n\t\tdefault: throw mongoTargetError(\"MIGRATION.INVALID_OPERATION_ENTRY\", `Unknown DML command kind: ${kind}`, { meta: {\n\t\t\tcontext: \"DML command\",\n\t\t\tkind\n\t\t} });\n\t}\n}\nfunction deserializeMongoQueryPlan(json) {\n\tconst data = validate(QueryPlanJson, json, \"Mongo query plan\");\n\tconst command = deserializeDmlCommand(data.command);\n\tconst m = data.meta;\n\tconst meta = {\n\t\ttarget: m.target,\n\t\tstorageHash: m.storageHash,\n\t\tlane: m.lane,\n\t\t...ifDefined(\"targetFamily\", m.targetFamily),\n\t\t...ifDefined(\"profileHash\", m.profileHash),\n\t\t...ifDefined(\"annotations\", m.annotations)\n\t};\n\treturn {\n\t\tcollection: data.collection,\n\t\tcommand,\n\t\tmeta\n\t};\n}\nfunction deserializeDdlCommand(json) {\n\tconst kind = recordKind(json, \"DDL command\");\n\tswitch (kind) {\n\t\tcase \"createIndex\": {\n\t\t\tconst data = validate(CreateIndexJson, json, \"createIndex command\");\n\t\t\treturn new CreateIndexCommand(data.collection, data.keys, {\n\t\t\t\t...ifDefined(\"unique\", data.unique),\n\t\t\t\t...ifDefined(\"sparse\", data.sparse),\n\t\t\t\t...ifDefined(\"expireAfterSeconds\", data.expireAfterSeconds),\n\t\t\t\t...ifDefined(\"partialFilterExpression\", data.partialFilterExpression),\n\t\t\t\t...ifDefined(\"name\", data.name),\n\t\t\t\t...ifDefined(\"wildcardProjection\", data.wildcardProjection),\n\t\t\t\t...ifDefined(\"collation\", data.collation),\n\t\t\t\t...ifDefined(\"weights\", data.weights),\n\t\t\t\t...ifDefined(\"default_language\", data.default_language),\n\t\t\t\t...ifDefined(\"language_override\", data.language_override)\n\t\t\t});\n\t\t}\n\t\tcase \"dropIndex\": {\n\t\t\tconst data = validate(DropIndexJson, json, \"dropIndex command\");\n\t\t\treturn new DropIndexCommand(data.collection, data.name);\n\t\t}\n\t\tcase \"createCollection\": {\n\t\t\tconst data = validate(CreateCollectionJson, json, \"createCollection command\");\n\t\t\treturn new CreateCollectionCommand(data.collection, {\n\t\t\t\t...ifDefined(\"validator\", data.validator),\n\t\t\t\t...ifDefined(\"validationLevel\", data.validationLevel),\n\t\t\t\t...ifDefined(\"validationAction\", data.validationAction),\n\t\t\t\t...ifDefined(\"capped\", data.capped),\n\t\t\t\t...ifDefined(\"size\", data.size),\n\t\t\t\t...ifDefined(\"max\", data.max),\n\t\t\t\t...ifDefined(\"timeseries\", data.timeseries),\n\t\t\t\t...ifDefined(\"collation\", data.collation),\n\t\t\t\t...ifDefined(\"changeStreamPreAndPostImages\", data.changeStreamPreAndPostImages),\n\t\t\t\t...ifDefined(\"clusteredIndex\", data.clusteredIndex)\n\t\t\t});\n\t\t}\n\t\tcase \"dropCollection\": return new DropCollectionCommand(validate(DropCollectionJson, json, \"dropCollection command\").collection);\n\t\tcase \"renameCollection\": {\n\t\t\tconst data = validate(RenameCollectionJson, json, \"renameCollection command\");\n\t\t\treturn new RenameCollectionCommand(data.collection, data.to);\n\t\t}\n\t\tcase \"collMod\": {\n\t\t\tconst data = validate(CollModJson, json, \"collMod command\");\n\t\t\treturn new CollModCommand(data.collection, {\n\t\t\t\t...ifDefined(\"validator\", data.validator),\n\t\t\t\t...ifDefined(\"validationLevel\", data.validationLevel),\n\t\t\t\t...ifDefined(\"validationAction\", data.validationAction),\n\t\t\t\t...ifDefined(\"changeStreamPreAndPostImages\", data.changeStreamPreAndPostImages)\n\t\t\t});\n\t\t}\n\t\tdefault: throw mongoTargetError(\"MIGRATION.INVALID_OPERATION_ENTRY\", `Unknown DDL command kind: ${kind}`, { meta: {\n\t\t\tcontext: \"DDL command\",\n\t\t\tkind\n\t\t} });\n\t}\n}\nfunction deserializeInspectionCommand(json) {\n\tconst kind = recordKind(json, \"inspection command\");\n\tswitch (kind) {\n\t\tcase \"listIndexes\": return new ListIndexesCommand(validate(ListIndexesJson, json, \"listIndexes command\").collection);\n\t\tcase \"listCollections\":\n\t\t\tvalidate(ListCollectionsJson, json, \"listCollections command\");\n\t\t\treturn new ListCollectionsCommand();\n\t\tdefault: throw mongoTargetError(\"MIGRATION.INVALID_OPERATION_ENTRY\", `Unknown inspection command kind: ${kind}`, { meta: {\n\t\t\tcontext: \"inspection command\",\n\t\t\tkind\n\t\t} });\n\t}\n}\nfunction deserializeCheck(json) {\n\tconst data = validate(CheckJson, json, \"migration check\");\n\treturn {\n\t\tdescription: data.description,\n\t\tsource: deserializeInspectionCommand(data.source),\n\t\tfilter: deserializeFilterExpr(data.filter),\n\t\texpect: data.expect,\n\t\t...ifDefined(\"object\", data.object)\n\t};\n}\nfunction deserializeStep(json) {\n\tconst data = validate(StepJson, json, \"migration step\");\n\treturn {\n\t\tdescription: data.description,\n\t\tcommand: deserializeDdlCommand(data.command)\n\t};\n}\nfunction isDmlOperationJson(json) {\n\treturn Array.isArray(recordValue(json, \"run\", \"migration operation\"));\n}\nfunction deserializeDdlOp(json) {\n\tconst data = validate(DdlOperationJson, json, \"migration operation\");\n\treturn {\n\t\tid: data.id,\n\t\tlabel: data.label,\n\t\toperationClass: data.operationClass,\n\t\tprecheck: data.precheck.map(deserializeCheck),\n\t\texecute: data.execute.map(deserializeStep),\n\t\tpostcheck: data.postcheck.map(deserializeCheck)\n\t};\n}\nfunction deserializeDmlCheck(json) {\n\tconst data = validate(DmlCheckJson, json, \"DML operation check\");\n\treturn {\n\t\tdescription: data.description,\n\t\tsource: deserializeMongoQueryPlan(data.source),\n\t\tfilter: deserializeFilterExpr(data.filter),\n\t\texpect: data.expect\n\t};\n}\nfunction deserializeDmlOp(json) {\n\tconst data = validate(DmlOperationJson, json, \"DML operation\");\n\treturn {\n\t\tid: data.id,\n\t\tlabel: data.label,\n\t\toperationClass: data.operationClass,\n\t\tname: data.name,\n\t\tprecheck: data.precheck.map(deserializeDmlCheck),\n\t\trun: data.run.map(deserializeMongoQueryPlan),\n\t\tpostcheck: data.postcheck.map(deserializeDmlCheck)\n\t};\n}\nfunction deserializeMongoOp(json) {\n\tif (isDmlOperationJson(json)) return deserializeDmlOp(json);\n\treturn deserializeDdlOp(json);\n}\nfunction deserializeMongoOps(json) {\n\treturn json.map(deserializeMongoOp);\n}\nfunction serializeMongoOps(ops) {\n\treturn JSON.stringify(ops, null, 2);\n}\n//#endregion\n//#region src/core/migrations/mongo-runner.ts\nconst READ_ONLY_CHECK_COMMAND_KINDS = /* @__PURE__ */ new Set([\"aggregate\", \"rawAggregate\"]);\nconst CHANGED_DOCUMENT_COUNTS = [\n\t\"insertedCount\",\n\t\"modifiedCount\",\n\t\"upsertedCount\",\n\t\"deletedCount\"\n];\n/** Whether a write command's result row says it changed no document: every count it carries is zero. */\nfunction reportsNoChangedDocuments(row) {\n\tif (typeof row !== \"object\" || row === null) return false;\n\tconst counts = CHANGED_DOCUMENT_COUNTS.map((field) => Reflect.get(row, field)).filter((count) => count !== void 0);\n\treturn counts.length > 0 && counts.every((count) => count === 0);\n}\nfunction failedCheckOf(operationId, phase, check) {\n\treturn {\n\t\toperationId,\n\t\tphase,\n\t\tdescription: check.description,\n\t\t...ifDefined(\"expectation\", check.object === void 0 ? void 0 : check.expect === \"exists\" ? expectPresent(check.object) : expectAbsent(check.object))\n\t};\n}\nfunction runnerFailure(code, summary, options) {\n\treturn notOk(migrationRunnerFailure(code, summary, options));\n}\n/**\n* The failure when a field rename's before-check finds documents that already hold the new name,\n* which `$rename` would overwrite: what to look for and fix, and that the plan resumes.\n*/\nfunction renameOverwriteRefusal(op) {\n\tconst rewrite = fieldRewriteOf(op);\n\tif (rewrite === void 0) return void 0;\n\tconst renames = Reflect.get(rewrite.command.update, \"$rename\");\n\tconst to = typeof renames === \"object\" && renames !== null ? Reflect.get(renames, rewrite.field) : void 0;\n\tif (typeof to !== \"string\") return void 0;\n\tconst [check] = op.precheck;\n\tconst source = check?.source.command;\n\tconst match = source instanceof RawAggregateCommand ? Reflect.get(source.pipeline[0] ?? {}, \"$match\") : void 0;\n\tconst find = `db.getCollection(${JSON.stringify(rewrite.collection)}).find(${JSON.stringify(match ?? {})})`;\n\treturn runnerFailure(\"MIGRATION.PRECHECK_FAILED\", `Operation ${op.id} stopped: some documents in collection ${rewrite.collection} already hold ${to} as well as ${rewrite.field}`, {\n\t\twhy: `Renaming ${rewrite.field} to ${to} would overwrite their ${to}. Find them with ${find} in mongosh, and move or remove one of the two values in each. Nothing was renamed. Once the documents are fixed, run the command again; operations that already ran are skipped.`,\n\t\tmeta: {\n\t\t\toperationId: op.id,\n\t\t\tname: op.name\n\t\t}\n\t});\n}\n/**\n* The failure when a collection rename's before-check finds that the new collection already exists.\n*/\nfunction renameTargetExistsRefusal(op, failed) {\n\tconst rename = op.execute.find((step) => step.command instanceof RenameCollectionCommand)?.command;\n\tif (!(rename instanceof RenameCollectionCommand) || failed.expect !== \"notExists\") return;\n\tconst { collection: from, to } = rename;\n\treturn runnerFailure(\"MIGRATION.PRECHECK_FAILED\", `Operation ${op.id} stopped: collection ${to} already exists, so collection ${from} cannot be renamed to it`, {\n\t\twhy: `Nothing was renamed. If ${to} holds nothing you need, drop it, then run the command again; operations that already ran are skipped. If an earlier operation of the same migration created ${to}, as a createIndex on ${to} does, make renameCollection(${JSON.stringify(from)}, ${JSON.stringify(to)}) the first operation of its migration.ts, run node on that migration.ts, and then drop ${to} and run the command again.`,\n\t\tmeta: { operationId: op.id }\n\t});\n}\nconst MONGO_UNAUTHORIZED = 13;\n/**\n* The failure for a rewrite that skips validation when the database user lacks the\n* `bypassDocumentValidation` action, as a `readWrite` user on a hosted cluster does.\n*/\nfunction bypassValidationRefusal(op, plan, error) {\n\tif (!(plan.command instanceof RawUpdateManyCommand) || !plan.command.bypassDocumentValidation) return;\n\tif (typeof error !== \"object\" || error === null) return void 0;\n\tif (Reflect.get(error, \"code\") !== MONGO_UNAUTHORIZED) return void 0;\n\tconst codeName = Reflect.get(error, \"codeName\");\n\treturn runnerFailure(\"MIGRATION.EXECUTION_FAILED\", `Operation ${op.id} failed: the database user may not skip document validation`, {\n\t\twhy: `Renaming or removing a field rewrites documents with bypassDocumentValidation, because the old validator requires the old field. MongoDB refused it with error ${MONGO_UNAUTHORIZED} (${String(codeName)}). Grant the user the bypassDocumentValidation action on the database, for example with the dbAdmin or restore role, then run the command again; operations that already ran are skipped.`,\n\t\tmeta: {\n\t\t\toperationId: op.id,\n\t\t\tmongoCode: MONGO_UNAUTHORIZED,\n\t\t\tcodeName\n\t\t}\n\t});\n}\nvar MongoMigrationRunner = class {\n\tdeps;\n\tconstructor(deps) {\n\t\tthis.deps = deps;\n\t}\n\tasync execute(options) {\n\t\tlet changedDatabase = false;\n\t\tconst result = await this.apply(options, () => {\n\t\t\tchangedDatabase = true;\n\t\t});\n\t\treturn result.ok ? ok({\n\t\t\t...result.value,\n\t\t\tchangedDatabase\n\t\t}) : notOk(withDatabaseUnchanged(result.failure, options.databaseChangedBefore !== true && !changedDatabase));\n\t}\n\t/** Applies the plan, calling `wrote` after each command that changes the database. */\n\tasync apply(options, wrote) {\n\t\tconst { inspectionExecutor, adapter, driver, executeDdl, markerOps } = this.deps;\n\t\tconst operations = deserializeMongoOps(blindCast(options.plan.operations));\n\t\tconst space = options.plan.spaceId ?? APP_SPACE_ID;\n\t\tconst policyCheck = this.enforcePolicyCompatibility(options.policy, operations);\n\t\tif (policyCheck) return policyCheck;\n\t\tconst existingMarker = await markerOps.readMarker(space);\n\t\tconst markerCheck = this.ensureMarkerCompatibility(existingMarker, options.plan);\n\t\tif (markerCheck) return markerCheck;\n\t\tconst checks = options.executionChecks;\n\t\tconst runPrechecks = checks?.prechecks !== false;\n\t\tconst runPostchecks = checks?.postchecks !== false;\n\t\tconst runIdempotency = checks?.idempotencyChecks !== false;\n\t\tconst filterEvaluator = new FilterEvaluator();\n\t\tlet operationsExecuted = 0;\n\t\tfor (const operation of operations) {\n\t\t\toptions.callbacks?.onOperationStart?.(operation);\n\t\t\ttry {\n\t\t\t\tif (isMongoDmlOperation(operation)) {\n\t\t\t\t\tconst result = await this.executeDmlOperation(operation, adapter, driver, filterEvaluator, runIdempotency, runPrechecks, runPostchecks, wrote);\n\t\t\t\t\tif (result.failure) return result.failure;\n\t\t\t\t\tif (result.executed) operationsExecuted += 1;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (runPostchecks && runIdempotency) {\n\t\t\t\t\tif (await this.allChecksSatisfied(operation.postcheck, inspectionExecutor, filterEvaluator)) continue;\n\t\t\t\t}\n\t\t\t\tif (runPrechecks) {\n\t\t\t\t\tconst failing = await this.firstFailingCheck(operation.precheck, inspectionExecutor, filterEvaluator);\n\t\t\t\t\tif (failing !== void 0) {\n\t\t\t\t\t\tconst failedCheck = failedCheckOf(operation.id, \"precheck\", failing);\n\t\t\t\t\t\treturn renameTargetExistsRefusal(operation, failing) ?? runnerFailure(\"MIGRATION.PRECHECK_FAILED\", `Operation ${operation.id} failed during precheck: ${failing.description}`, {\n\t\t\t\t\t\t\twhy: failedPrecheckWhy(failedCheck),\n\t\t\t\t\t\t\tmeta: { failedCheck }\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (const step of operation.execute) {\n\t\t\t\t\tawait executeDdl(step.command);\n\t\t\t\t\twrote();\n\t\t\t\t}\n\t\t\t\tif (runPostchecks) {\n\t\t\t\t\tconst failing = await this.firstFailingCheck(operation.postcheck, inspectionExecutor, filterEvaluator);\n\t\t\t\t\tif (failing !== void 0) {\n\t\t\t\t\t\tconst failedCheck = failedCheckOf(operation.id, \"postcheck\", failing);\n\t\t\t\t\t\treturn runnerFailure(\"MIGRATION.POSTCHECK_FAILED\", `Operation ${operation.id} failed during postcheck: ${failing.description}`, {\n\t\t\t\t\t\t\twhy: failedPostcheckWhy(failedCheck),\n\t\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\t\toperationId: operation.id,\n\t\t\t\t\t\t\t\tfailedCheck\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\toperationsExecuted += 1;\n\t\t\t} finally {\n\t\t\t\toptions.callbacks?.onOperationComplete?.(operation);\n\t\t\t}\n\t\t}\n\t\tconst destination = options.plan.destination;\n\t\tconst profileHash = options.destinationContract.profileHash ?? destination.storageHash;\n\t\tconst incomingInvariants = options.plan.providedInvariants ?? [];\n\t\tconst existingInvariantSet = new Set(existingMarker?.invariants ?? []);\n\t\tconst incomingIsSubsetOfExisting = incomingInvariants.every((id) => existingInvariantSet.has(id));\n\t\tconst markerAlreadyAtDestination = existingMarker !== null && existingMarker.storageHash === destination.storageHash && existingMarker.profileHash === profileHash;\n\t\tif (!(operationsExecuted === 0 && markerAlreadyAtDestination && incomingIsSubsetOfExisting)) {\n\t\t\tconst liveSchema = await this.deps.introspectSchema();\n\t\t\tconst rawVerifyResult = verifyMongoSchema({\n\t\t\t\tcontract: options.destinationContract,\n\t\t\t\tschema: liveSchema,\n\t\t\t\tstrict: options.strictVerification ?? true,\n\t\t\t\tframeworkComponents: options.frameworkComponents,\n\t\t\t\t...options.context ? { context: options.context } : {}\n\t\t\t});\n\t\t\tconst verifyResult = options.scopeVerifyResult ? options.scopeVerifyResult(rawVerifyResult) : rawVerifyResult;\n\t\t\tif (!verifyResult.ok) return runnerFailure(\"MIGRATION.SCHEMA_VERIFY_FAILED\", verifyResult.summary, {\n\t\t\t\twhy: schemaCheckWhy(verifyResult.schema.issues),\n\t\t\t\tmeta: { schemaIssues: verifyResult.schema.issues }\n\t\t\t});\n\t\t\tif (existingMarker) {\n\t\t\t\tif (!await markerOps.updateMarker(space, existingMarker.storageHash, {\n\t\t\t\t\tstorageHash: destination.storageHash,\n\t\t\t\t\tprofileHash,\n\t\t\t\t\tinvariants: incomingInvariants\n\t\t\t\t})) {\n\t\t\t\t\tconst found = await markerOps.readMarker(space);\n\t\t\t\t\treturn runnerFailure(\"MIGRATION.MARKER_CAS_FAILURE\", \"Marker was modified by another process during migration execution.\", { meta: {\n\t\t\t\t\t\tspace,\n\t\t\t\t\t\texpectedStorageHash: existingMarker.storageHash,\n\t\t\t\t\t\tfoundStorageHash: found?.storageHash ?? null,\n\t\t\t\t\t\tdestinationStorageHash: destination.storageHash\n\t\t\t\t\t} });\n\t\t\t\t}\n\t\t\t} else await markerOps.initMarker(space, {\n\t\t\t\tstorageHash: destination.storageHash,\n\t\t\t\tprofileHash,\n\t\t\t\tinvariants: incomingInvariants\n\t\t\t});\n\t\t\twrote();\n\t\t\tawait this.recordLedgerEntries(markerOps, space, options);\n\t\t}\n\t\treturn ok({\n\t\t\toperationsPlanned: operations.length,\n\t\t\toperationsExecuted\n\t\t});\n\t}\n\tasync recordLedgerEntries(markerOps, space, options) {\n\t\tconst plan = options.plan;\n\t\tconst edges = options.migrationEdges;\n\t\tconst totalEdgeOps = edges.reduce((sum, edge) => sum + edge.operationCount, 0);\n\t\tif (totalEdgeOps !== plan.operations.length) throw new InternalError(`Ledger write: plan.operations length (${plan.operations.length}) does not match sum of migrationEdges operationCount (${totalEdgeOps})`);\n\t\tlet offset = 0;\n\t\tfor (const edge of edges) {\n\t\t\tconst edgeOps = plan.operations.slice(offset, offset + edge.operationCount);\n\t\t\toffset += edge.operationCount;\n\t\t\tawait markerOps.writeLedgerEntry(space, {\n\t\t\t\tedgeId: `${edge.from}->${edge.to}`,\n\t\t\t\tfrom: edge.from,\n\t\t\t\tto: edge.to,\n\t\t\t\tmigrationName: edge.dirName,\n\t\t\t\tmigrationHash: edge.migrationHash,\n\t\t\t\toperations: edgeOps\n\t\t\t});\n\t\t}\n\t}\n\tasync executeDmlOperation(op, adapter, driver, filterEvaluator, runIdempotency, runPrechecks, runPostchecks, wrote) {\n\t\tif (runPostchecks && runIdempotency && op.postcheck.length > 0) {\n\t\t\tif (await this.evaluateDmlChecks(op.postcheck, adapter, driver, filterEvaluator)) return { executed: false };\n\t\t}\n\t\tif (runPrechecks && op.precheck.length > 0) {\n\t\t\tif (!await this.evaluateDmlChecks(op.precheck, adapter, driver, filterEvaluator)) return {\n\t\t\t\texecuted: false,\n\t\t\t\tfailure: renameOverwriteRefusal(op) ?? runnerFailure(\"MIGRATION.PRECHECK_FAILED\", `Operation ${op.id} failed during precheck`, { meta: {\n\t\t\t\t\toperationId: op.id,\n\t\t\t\t\tname: op.name\n\t\t\t\t} })\n\t\t\t};\n\t\t}\n\t\tfor (const plan of op.run) {\n\t\t\tconst wireCommand = await adapter.lower(plan, {});\n\t\t\ttry {\n\t\t\t\tlet reportedNoChange = false;\n\t\t\t\tlet reportedChange = false;\n\t\t\t\tfor await (const row of driver.execute(wireCommand)) if (reportsNoChangedDocuments(row)) reportedNoChange = true;\n\t\t\t\telse reportedChange = true;\n\t\t\t\tif (reportedChange || !reportedNoChange) wrote();\n\t\t\t} catch (error) {\n\t\t\t\tconst refusal = bypassValidationRefusal(op, plan, error);\n\t\t\t\tif (refusal === void 0) throw error;\n\t\t\t\treturn {\n\t\t\t\t\texecuted: false,\n\t\t\t\t\tfailure: refusal\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tif (runPostchecks && op.postcheck.length > 0) {\n\t\t\tif (!await this.evaluateDmlChecks(op.postcheck, adapter, driver, filterEvaluator)) return {\n\t\t\t\texecuted: false,\n\t\t\t\tfailure: runnerFailure(\"MIGRATION.POSTCHECK_FAILED\", `Operation ${op.id} failed during postcheck`, { meta: {\n\t\t\t\t\toperationId: op.id,\n\t\t\t\t\tname: op.name\n\t\t\t\t} })\n\t\t\t};\n\t\t}\n\t\treturn { executed: true };\n\t}\n\tasync evaluateDmlChecks(checks, adapter, driver, filterEvaluator) {\n\t\tfor (const check of checks) {\n\t\t\tconst commandKind = check.source.command.kind;\n\t\t\tif (!READ_ONLY_CHECK_COMMAND_KINDS.has(commandKind)) throw mongoTargetError(\"MIGRATION.DATA_TRANSFORM_CHECK_NOT_READ_ONLY\", `Data-transform check rejected: command kind \"${commandKind}\" is not read-only`, {\n\t\t\t\twhy: \"Data-transform checks must use aggregate or rawAggregate commands so the pre/postcheck path cannot mutate the database.\",\n\t\t\t\tfix: \"Author the check.source as an aggregate pipeline (or rawAggregate) rather than a DML write command.\",\n\t\t\t\tmeta: {\n\t\t\t\t\tcheckDescription: check.description,\n\t\t\t\t\tcommandKind,\n\t\t\t\t\tcollection: check.source.collection\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst wireCommand = await adapter.lower(check.source, {});\n\t\t\tlet matchFound = false;\n\t\t\tfor await (const row of driver.execute(wireCommand)) if (filterEvaluator.evaluate(check.filter, row)) {\n\t\t\t\tmatchFound = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (!(check.expect === \"exists\" ? matchFound : !matchFound)) return false;\n\t\t}\n\t\treturn true;\n\t}\n\tasync evaluateChecks(checks, inspectionExecutor, filterEvaluator) {\n\t\treturn await this.firstFailingCheck(checks, inspectionExecutor, filterEvaluator) === void 0;\n\t}\n\tasync firstFailingCheck(checks, inspectionExecutor, filterEvaluator) {\n\t\tfor (const check of checks) {\n\t\t\tconst matchFound = (await check.source.accept(inspectionExecutor)).some((doc) => filterEvaluator.evaluate(check.filter, doc));\n\t\t\tif (!(check.expect === \"exists\" ? matchFound : !matchFound)) return check;\n\t\t}\n\t}\n\tasync allChecksSatisfied(checks, inspectionExecutor, filterEvaluator) {\n\t\tif (checks.length === 0) return false;\n\t\treturn this.evaluateChecks(checks, inspectionExecutor, filterEvaluator);\n\t}\n\tenforcePolicyCompatibility(policy, operations) {\n\t\tconst allowedClasses = new Set(policy.allowedOperationClasses);\n\t\tfor (const operation of operations) if (!allowedClasses.has(operation.operationClass)) return runnerFailure(\"MIGRATION.POLICY_VIOLATION\", `Operation ${operation.id} has class \"${operation.operationClass}\" which is not allowed by policy.`, {\n\t\t\twhy: `Policy only allows: ${[...allowedClasses].join(\", \")}.`,\n\t\t\tmeta: {\n\t\t\t\toperationId: operation.id,\n\t\t\t\toperationClass: operation.operationClass\n\t\t\t}\n\t\t});\n\t}\n\tensureMarkerCompatibility(marker, plan) {\n\t\tconst origin = plan.origin ?? null;\n\t\tif (!origin) return;\n\t\tif (!marker) return runnerFailure(\"MIGRATION.MARKER_ORIGIN_MISMATCH\", `Missing contract marker: expected origin storage hash ${origin.storageHash}.`, { meta: { expectedOriginStorageHash: origin.storageHash } });\n\t\tif (marker.storageHash !== origin.storageHash) return runnerFailure(\"MIGRATION.MARKER_ORIGIN_MISMATCH\", `Existing contract marker (${marker.storageHash}) does not match plan origin (${origin.storageHash}).`, { meta: {\n\t\t\tmarkerStorageHash: marker.storageHash,\n\t\t\texpectedOriginStorageHash: origin.storageHash\n\t\t} });\n\t}\n};\n//#endregion\n//#region src/core/migrations/mongo-target-schema-verifier.ts\n/**\n* Mongo target `SchemaVerifier` concretion. Extends the family base's\n* namespace-walk scaffolding and contributes the per-namespace diff via\n* `verifyNamespace`; the diff body reuses the existing target-side\n* helpers (`contractToMongoSchemaIR`, `canonicalizeSchemasForVerification`,\n* `diffMongoSchemas`) so production verification behaviour is unchanged.\n*\n* Today's invariant: every Mongo contract carries exactly one\n* namespace (the unbound singleton, materialised as\n* `MongoTargetUnboundDatabase`), so the family-base namespace walk\n* dispatches exactly once and the per-namespace body runs the existing\n* whole-schema diff. Future per-collection namespace assignment will\n* have this hook project the diff to the namespace's owned collections.\n*\n* `verifyTargetExtensions` returns the empty list — Mongo has no\n* target-only kinds today.\n*\n* Strict diff mode is `false` for SPI-routed calls; production\n* verification today still goes through `verifyMongoSchema` which\n* receives strict from the CLI.\n*/\nvar MongoTargetSchemaVerifier = class extends MongoSchemaVerifierBase {\n\tverifyNamespace(options) {\n\t\tconst expectedIR = contractToMongoSchemaIR(options.contract);\n\t\tconst { live, expected } = canonicalizeSchemasForVerification(options.schema, expectedIR);\n\t\tconst collectionControlPolicy = (name) => this.collectionControlPolicyForName(options.contract, name);\n\t\tconst { failures, warnings } = diffMongoSchemas(live, expected, false, collectionControlPolicy);\n\t\treturn [...failures, ...warnings];\n\t}\n\tverifyTargetExtensions(_options) {\n\t\treturn [];\n\t}\n};\n//#endregion\n//#region src/core/migrations/scope-verify-result.ts\n/**\n* The bare entity names the given contracts declare, unioned. The Mongo runner\n* asks this of every OTHER contract space in a multi-space apply, so each\n* space's post-apply verify can drop the extras those siblings claim.\n*/\nfunction entityNamesDeclaredBy(contracts) {\n\tconst owned = /* @__PURE__ */ new Set();\n\tfor (const contract of contracts) for (const { entityName } of elementCoordinates(contract.storage)) owned.add(entityName);\n\treturn owned;\n}\n/**\n* True when an issue reports a whole collection present in the database but\n* declared by no contract (an extra) — its path is exactly the collection\n* name, never a deeper index/validator/options auxiliary.\n*/\nfunction extraCollectionName(issue) {\n\tif (issueOutcome(issue) !== \"not-expected\" || issue.path.length !== 1) return void 0;\n\treturn issue.path[0];\n}\n/**\n* Scope a per-space post-apply verify result to the contract space's own\n* elements: drop the `extra` findings for collections another contract space\n* claims. The runner verifies the destination contract against the full live\n* database, which holds sibling spaces' collections — without the scoping a\n* multi-space apply could never pass strict verify. Extras claimed by NO space\n* survive, so genuine drift still fails the runner's verdict.\n*\n* The result is issue-based, so the verdict recomputes directly from the\n* surviving list: `ok` holds exactly when it is empty.\n*/\nfunction scopeVerifyResultToSpace(result, ownedByOtherSpaces) {\n\tif (ownedByOtherSpaces.size === 0) return result;\n\tconst issues = result.schema.issues.filter((issue) => {\n\t\tconst name = extraCollectionName(issue);\n\t\treturn name === void 0 || !ownedByOtherSpaces.has(name);\n\t});\n\tif (issues.length === result.schema.issues.length) return result;\n\tconst ok = issues.length === 0;\n\tconst { code: staleCode, ...envelope } = result;\n\treturn {\n\t\t...envelope,\n\t\tok,\n\t\t...ok ? {} : { code: result.code ?? VERIFY_CODE_SCHEMA_FAILURE },\n\t\tsummary: ok ? \"Database schema satisfies contract\" : result.summary,\n\t\tschema: {\n\t\t\t...result.schema,\n\t\t\tissues\n\t\t}\n\t};\n}\n//#endregion\n//#region src/core/migrations/control-target.ts\n/**\n* `migration.ts` default-exports a `Migration` subclass whose `operations`\n* getter returns the ordered list of operations and whose `describe()`\n* returns the manifest identity metadata. `MongoMigrationPlanner.plan()`\n* returns a `MigrationPlanWithAuthoringSurface` that knows how to render\n* itself back to such a file; `MongoMigrationPlanner.emptyMigration()`\n* returns the same shape for `migration new`. Users run the scaffolded\n* `migration.ts` directly (via `node migration.ts`) to self-emit\n* `ops.json` and attest the `migrationHash`.\n*/\nconst mongoTargetDescriptor = {\n\t...mongoTargetDescriptorMeta,\n\tcontractSerializer: new MongoTargetContractSerializer(),\n\tschemaVerifier: new MongoTargetSchemaVerifier(),\n\tmigrations: {\n\t\tcreatePlanner(_adapter) {\n\t\t\treturn new MongoMigrationPlanner();\n\t\t},\n\t\tcreateRunner(family) {\n\t\t\tlet cachedDeps;\n\t\t\tconst runMongo = async (driver, runnerOptions) => {\n\t\t\t\tcachedDeps ??= family.createRunnerDependencies({ driver });\n\t\t\t\treturn new MongoMigrationRunner(cachedDeps).execute({\n\t\t\t\t\t...runnerOptions,\n\t\t\t\t\tdestinationContract: blindCast(runnerOptions.destinationContract)\n\t\t\t\t});\n\t\t\t};\n\t\t\treturn { async execute({ driver, perSpaceOptions }) {\n\t\t\t\tconst contracts = perSpaceOptions.map((opts) => blindCast(opts.destinationContract));\n\t\t\t\tconst perSpaceResults = [];\n\t\t\t\tlet changedDatabase = false;\n\t\t\t\tfor (let i = 0; i < perSpaceOptions.length; i++) {\n\t\t\t\t\tconst spaceOptions = perSpaceOptions[i];\n\t\t\t\t\tif (!spaceOptions) continue;\n\t\t\t\t\tconst ownedByOtherSpaces = entityNamesDeclaredBy(contracts.filter((_, j) => j !== i));\n\t\t\t\t\tconst scopeVerifyResult = (result) => scopeVerifyResultToSpace(result, ownedByOtherSpaces);\n\t\t\t\t\tconst { space, ...runnerOptions } = spaceOptions;\n\t\t\t\t\tconst result = await runMongo(driver, {\n\t\t\t\t\t\t...runnerOptions,\n\t\t\t\t\t\tscopeVerifyResult,\n\t\t\t\t\t\tdatabaseChangedBefore: changedDatabase\n\t\t\t\t\t});\n\t\t\t\t\tif (!result.ok) return notOk(withFailingSpace(result.failure, space));\n\t\t\t\t\tconst { changedDatabase: spaceChanged, ...value } = result.value;\n\t\t\t\t\tchangedDatabase ||= spaceChanged;\n\t\t\t\t\tperSpaceResults.push({\n\t\t\t\t\t\tspace,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn ok({ perSpaceResults });\n\t\t\t} };\n\t\t},\n\t\tcontractToSchema(contract) {\n\t\t\treturn contractToMongoSchemaIR(blindCast(contract));\n\t\t}\n\t},\n\tcreate() {\n\t\treturn {\n\t\t\tfamilyId: \"mongo\",\n\t\t\ttargetId: \"mongo\"\n\t\t};\n\t}\n};\n//#endregion\nexport { CollModCall, CreateCollectionCall, CreateIndexCall, DropCollectionCall, DropIndexCall, FilterEvaluator, MongoMigrationPlanner, MongoMigrationRunner, MongoTargetContractSerializer, MongoTargetDatabase, MongoTargetSchemaVerifier, MongoTargetUnboundDatabase, PlannerProducedMongoMigration, RenameCollectionCall, RenameFieldCall, UnsetFieldCall, deserializeMongoOp, deserializeMongoOps, mongoTargetDescriptor, renderCallsToTypeScript, renderOps, schemaCollectionToCreateCollectionOptions, schemaIndexToCreateIndexOptions, serializeMongoOps };\n\n//# sourceMappingURL=control.mjs.map"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-types-BUXk_WEa.d.mts","names":[],"sources":["../../../../3-mongo-target/1-mongo-target/dist/data-types.d.mts"],"mappings":";;;;cAGc,iEAAiE;EAC7E;;cAEY,0DAA0D;cAC1D,yDAAyD;cACzD,yDAAyD;cACzD,8DAA8D;cAC9D,0DAA0D;cAC1D,4DAA4D;cAC5D,wDAAwD;cACxD,wDAAwD;cACxD,0DAA0D;cAC1D,0DAA0D;cAC1D,wDAAwD;cACxD,wDAAwD;cACxD,yBAAyB;;cAEzB,6BAA6B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-types-hoKLBrYZ-CkFtgHfm.mjs","names":[],"sources":["../../../../3-mongo-target/1-mongo-target/dist/data-types-hoKLBrYZ.mjs"],"sourcesContent":["import { r as MONGO_BSON_CODEC_ID } from \"./codec-ids-WdrumsYA.mjs\";\nimport { t as mongoTargetError } from \"./mongo-target-errors-Btf3ML1w.mjs\";\nimport { INT32_RANGE, INT64_RANGE, SAFE_INTEGER_BIGINT_RANGE, SAFE_INTEGER_RANGE, asFloat, asNumeralText, castUnchanged, decimalTextEqualityKey, isIntegerIn, readJsonBoolean, readJsonFloat, readJsonInteger, readJsonIntegerText, readJsonMatching, readJsonString, refuseJsonValue, refuseWrongShape } from \"@internal/framework-components/codec\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { counted } from \"@internal/utils/text\";\nimport { Binary, Code, Decimal128, Double, EJSON, Long, MinKey, ObjectId } from \"bson\";\nimport { mongoDataType } from \"@internal/mongo-contract/data-type\";\nimport { type } from \"arktype\";\nimport { isDeepStrictEqual } from \"node:util\";\nimport { blindCast } from \"@internal/utils/casts\";\n//#region src/core/bson-scalar-helpers.ts\nconst STORED_DECIMAL_TEXT = /^(?:-?\\d+(?:\\.\\d+)?|NaN|-?Infinity)$/;\nconst DECIMAL128_TEXT = /^(-?)(\\d+)(?:\\.(\\d+))?(?:E([+-]\\d+))?$/;\nconst BASE64_TEXT = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;\n/**\n* Checks the BSON type tag rather than `instanceof`: the driver deserialises with its own load of `bson` (CommonJS, where this module may be loaded as ESM), so a value read from the database need not be an instance of the class imported here.\n*/\nfunction hasBsonTypeTag(value, tag) {\n\treturn typeof value === \"object\" && value !== null && \"_bsontype\" in value && value._bsontype === tag;\n}\nfunction isLong(value) {\n\treturn hasBsonTypeTag(value, \"Long\");\n}\nfunction isDecimal128(value) {\n\treturn hasBsonTypeTag(value, \"Decimal128\");\n}\nfunction isBinary(value) {\n\treturn hasBsonTypeTag(value, \"Binary\");\n}\nfunction decodeFailed(codecId, message, received) {\n\tthrow mongoTargetError(\"RUNTIME.DECODE_FAILED\", `${codecId} ${message}`, { meta: {\n\t\tcodecId,\n\t\treceived: typeof received\n\t} });\n}\nconst RECEIVED_PREVIEW_LIMIT = 100;\nfunction encodeFailed(codecId, message, received) {\n\tthrow mongoTargetError(\"RUNTIME.ENCODE_FAILED\", `${codecId} ${message}`, { meta: {\n\t\tcodecId,\n\t\treceived: String(received).slice(0, RECEIVED_PREVIEW_LIMIT)\n\t} });\n}\nfunction describeReceived(value) {\n\tif (typeof value === \"number\") return String(value);\n\tif (typeof value === \"bigint\") return `${value}n`;\n\tif (typeof value === \"string\") return `string ${JSON.stringify(value.slice(0, RECEIVED_PREVIEW_LIMIT))}`;\n\tif (value === null) return \"null\";\n\tif (value instanceof Date) return Number.isNaN(value.getTime()) ? \"an invalid Date\" : \"a Date\";\n\tif (Array.isArray(value)) return \"an array\";\n\treturn typeof value;\n}\nfunction refuseType(codecId, expected, value, received = describeReceived(value)) {\n\treturn encodeFailed(codecId, `value must be ${expected}; received ${received}`, value);\n}\nfunction stringEncode(codecId, value) {\n\tif (typeof value !== \"string\") refuseType(codecId, \"a string\", value);\n\treturn value;\n}\nfunction booleanEncode(codecId, value) {\n\tif (typeof value !== \"boolean\") refuseType(codecId, \"a boolean\", value);\n\treturn value;\n}\n/**\n* The driver writes an invalid `Date` as the epoch, so one is refused with any other non-`Date` value.\n*/\nfunction dateEncode(codecId, value) {\n\tif (!(value instanceof Date) || Number.isNaN(value.getTime())) refuseType(codecId, \"a valid Date\", value);\n\treturn value;\n}\nconst OBJECT_ID_TEXT = /^[0-9a-fA-F]{24}$/;\nfunction hexStringOf(value) {\n\tconst toHexString = Reflect.get(value, \"toHexString\");\n\tif (typeof toHexString !== \"function\") return void 0;\n\tconst hex = Reflect.apply(toHexString, value, []);\n\treturn typeof hex === \"string\" && OBJECT_ID_TEXT.test(hex) ? hex : void 0;\n}\n/**\n* `new ObjectId(...)` makes a fresh id from `null` or `undefined` and reads a number as a timestamp, so only a string, which the constructor accepts only as 24 hex digits, or an `ObjectId` is passed to it. An `ObjectId` is rebuilt from its hex string, so one from any major version of `bson` works.\n*/\nfunction objectIdEncode(codecId, value) {\n\tconst expected = \"a 24-digit hex string or an ObjectId\";\n\tif (typeof value === \"string\") try {\n\t\treturn new ObjectId(value);\n\t} catch {\n\t\treturn refuseType(codecId, expected, value);\n\t}\n\tif (typeof value !== \"object\" || value === null || !hasBsonTypeTag(value, \"ObjectId\")) return refuseType(codecId, expected, value);\n\tconst hex = hexStringOf(value);\n\tif (hex === void 0) return refuseType(codecId, expected, value, \"an object tagged ObjectId whose toHexString() does not return 24 hex digits\");\n\treturn new ObjectId(hex);\n}\nfunction vectorEncode(codecId, value) {\n\tif (!Array.isArray(value) || !value.every((element) => typeof element === \"number\")) refuseType(codecId, \"an array of numbers\", value);\n\treturn value;\n}\n/**\n* Wraps the number in the driver's `Double`, because the driver writes a whole JavaScript number in the int32 range as a BSON `int`, which a `double` validator refuses.\n*/\nfunction doubleEncode(codecId, value) {\n\tif (typeof value !== \"number\") encodeFailed(codecId, `value must be a number; received ${describeReceived(value)}`, value);\n\treturn new Double(value);\n}\nfunction int32Encode(codecId, value) {\n\tif (!isIntegerIn(value, INT32_RANGE)) encodeFailed(codecId, `value must be an integer from ${INT32_RANGE.min} to ${INT32_RANGE.max}; received ${describeReceived(value)}`, value);\n\treturn value;\n}\nfunction objectIdToJson(codecId, value) {\n\tif (typeof value !== \"string\" || !OBJECT_ID_TEXT.test(value)) encodeFailed(codecId, \"value must be 24 hexadecimal digits\", value);\n\treturn value;\n}\n/** Whether `text` is an ObjectId's 24 hexadecimal digits, in either case. */\nfunction isObjectIdText(text) {\n\treturn OBJECT_ID_TEXT.test(text);\n}\n/** Reads ObjectId hex in either case; {@link spellObjectIdJson} writes the lower case the type stores. */\nfunction readObjectIdJson(owner, json) {\n\treturn readJsonMatching(owner, json, OBJECT_ID_TEXT, \"24 hexadecimal digits\");\n}\n/** The ObjectId hex in lower case, as the driver's `toHexString` writes it. */\nfunction spellObjectIdJson(json) {\n\treturn typeof json === \"string\" ? json.toLowerCase() : json;\n}\nfunction int32ToJson(codecId, value) {\n\tif (!isIntegerIn(value, INT32_RANGE)) encodeFailed(codecId, `value must be an integer from ${INT32_RANGE.min} to ${INT32_RANGE.max}`, value);\n\treturn value;\n}\nfunction readInt32Json(owner, json) {\n\treturn readJsonInteger(owner, json, INT32_RANGE);\n}\nfunction dateToJson(codecId, value) {\n\tif (!(value instanceof Date) || Number.isNaN(value.getTime())) encodeFailed(codecId, \"value must be a valid Date\", value);\n\treturn value.toISOString();\n}\n/**\n* The JSON form is the text `Date.toISOString()` writes, so a string that does not read back to that same text is refused.\n*/\nfunction readDateJson(owner, json) {\n\tconst date = typeof json === \"string\" ? new Date(json) : void 0;\n\tif (date === void 0 || Number.isNaN(date.getTime()) || date.toISOString() !== json) return refuseJsonValue(owner, \"a date and time in UTC as Date.toISOString writes it\", json);\n\treturn json;\n}\n/** Reads an array of numbers, of exactly `length` numbers when the column sets one. */\nfunction readVectorJson(owner, json, length) {\n\tconst expected = length === void 0 ? \"an array of numbers\" : `an array of ${counted(length, \"number\")}`;\n\tif (!Array.isArray(json) || length !== void 0 && json.length !== length) return refuseJsonValue(owner, expected, json);\n\tconst numbers = [];\n\tfor (const element of json) {\n\t\tif (typeof element !== \"number\") return refuseJsonValue(owner, expected, element);\n\t\tif (!Number.isFinite(element)) return refuseJsonValue(owner, \"an array of finite numbers\", json);\n\t\tnumbers.push(element);\n\t}\n\treturn numbers;\n}\n/**\n* `Long.fromBigInt` keeps the low 64 bits of any bigint, so an out-of-range value would be stored as a different number without error.\n*/\nfunction isInt64(value) {\n\treturn value >= INT64_RANGE.min && value <= INT64_RANGE.max;\n}\nfunction requireInt64(codecId, value) {\n\tif (!isInt64(value)) encodeFailed(codecId, \"value is outside the signed 64-bit range\", value);\n\treturn value;\n}\nfunction int64Encode(codecId, value) {\n\tif (typeof value !== \"bigint\") encodeFailed(codecId, \"value must be a bigint\", value);\n\treturn Long.fromBigInt(requireInt64(codecId, value));\n}\n/**\n* A stored double with a fraction, which a 64-bit integer codec cannot read. Such values were written through a Prisma 6 `Int` while its contract used the 32-bit codec, which took any number.\n*/\nfunction refuseFractionalDouble(codecId, wire) {\n\treturn decodeFailed(codecId, `wire value is the fractional double ${wire}, and a 64-bit integer holds whole numbers only. Rewrite each such stored value as a long, rounded or cut off ({ $toLong: { $round: [<value>, 0] } }, or $trunc in place of $round), mapping over the list when the value sits in one. The upgrade guide step prisma6-int-written-as-long has the queries for a plain field, a list and a list of composite values.`, wire);\n}\n/**\n* The driver promotes a stored `long` that fits in 53 bits to a `number`, and hands larger ones over as `Long`, so both arrive here.\n*/\nfunction int64Decode(codecId, wire) {\n\tif (typeof wire === \"bigint\") return wire;\n\tif (isLong(wire)) return wire.toBigInt();\n\tif (typeof wire === \"number\" && Number.isSafeInteger(wire)) return BigInt(wire);\n\tif (typeof wire === \"number\" && Number.isFinite(wire) && !Number.isInteger(wire)) return refuseFractionalDouble(codecId, wire);\n\treturn decodeFailed(codecId, \"wire value must be a Long or a safe integer\", wire);\n}\n/**\n* A schema-written default arrives as a `number`; one that is a safe integer names its value exactly, so it is accepted like `pg/int8@1` accepts it.\n*/\nfunction int64ToJson(codecId, value) {\n\tif (typeof value === \"bigint\") return requireInt64(codecId, value).toString();\n\tif (typeof value === \"number\" && Number.isSafeInteger(value)) return BigInt(value).toString();\n\treturn encodeFailed(codecId, \"value must be a bigint or a safe integer\", value);\n}\nfunction readInt64Json(owner, json) {\n\treadJsonIntegerText(owner, json, INT64_RANGE);\n\treturn json;\n}\nconst SAFE_INTEGERS = `from ${SAFE_INTEGER_RANGE.min} to ${SAFE_INTEGER_RANGE.max}`;\nfunction int64NumberEncode(codecId, value) {\n\tif (!isIntegerIn(value, SAFE_INTEGER_RANGE)) encodeFailed(codecId, `value must be an integer ${SAFE_INTEGERS}; received ${describeReceived(value)}`, value);\n\treturn Long.fromNumber(value);\n}\nfunction safeIntegerOf(codecId, value) {\n\tif (value < SAFE_INTEGER_BIGINT_RANGE.min || value > SAFE_INTEGER_BIGINT_RANGE.max) decodeFailed(codecId, `wire value must be a whole number ${SAFE_INTEGERS}; received ${value}`, value);\n\treturn Number(value);\n}\n/**\n* The driver hands a stored `long` over as a `number` when it fits in 53 bits (the default `promoteLongs`), as a `Long` otherwise or with `promoteLongs: false`, and as a `bigint` with `useBigInt64`.\n*/\nfunction int64NumberDecode(codecId, wire) {\n\tif (typeof wire === \"bigint\") return safeIntegerOf(codecId, wire);\n\tif (isLong(wire)) return safeIntegerOf(codecId, wire.toBigInt());\n\tif (isIntegerIn(wire, SAFE_INTEGER_RANGE)) return wire;\n\tif (typeof wire === \"number\" && Number.isFinite(wire) && !Number.isInteger(wire)) return refuseFractionalDouble(codecId, wire);\n\treturn decodeFailed(codecId, `wire value must be a whole number ${SAFE_INTEGERS}; received ${describeReceived(wire)}`, wire);\n}\nfunction int64NumberToJson(codecId, value) {\n\treturn int64NumberEncode(codecId, value).toString();\n}\n/** A `number` holds an integer exactly only within the safe integer range, so digit text past it is refused. */\nfunction int64NumberFromDigits(codecId, digits) {\n\treturn Number(readJsonIntegerText(codecId, digits, SAFE_INTEGER_BIGINT_RANGE));\n}\n/**\n* `Decimal128.toString()` writes some values with an exponent (`1E+3`, `1.23E+40`). The application value is decimal text without one, as for Postgres `numeric`: the point moves to where the exponent puts it, trailing zeros stay, and the sign of zero goes.\n*/\nfunction decimalTextWithoutExponent(text) {\n\tif (text === \"NaN\" || text === \"Infinity\" || text === \"-Infinity\") return text;\n\tconst match = DECIMAL128_TEXT.exec(text);\n\tif (match === null) return void 0;\n\tconst [, sign = \"\", whole = \"\", fraction = \"\", exponent = \"0\"] = match;\n\tconst digits = `${whole}${fraction}`;\n\tconst point = whole.length + Number(exponent);\n\tlet integerPart;\n\tlet fractionPart;\n\tif (point <= 0) {\n\t\tintegerPart = \"0\";\n\t\tfractionPart = `${\"0\".repeat(-point)}${digits}`;\n\t} else if (point >= digits.length) {\n\t\tintegerPart = `${digits}${\"0\".repeat(point - digits.length)}`;\n\t\tfractionPart = \"\";\n\t} else {\n\t\tintegerPart = digits.slice(0, point);\n\t\tfractionPart = digits.slice(point);\n\t}\n\tconst trimmedInteger = integerPart.replace(/^0+(?=\\d)/, \"\");\n\tconst unsigned = fractionPart === \"\" ? trimmedInteger : `${trimmedInteger}.${fractionPart}`;\n\treturn /^[0.]+$/.test(unsigned) ? unsigned : `${sign}${unsigned}`;\n}\nfunction requireStoredDecimalText(codecId, value) {\n\tif (typeof value !== \"string\" || !STORED_DECIMAL_TEXT.test(value)) encodeFailed(codecId, \"value must be decimal text without an exponent, or NaN, Infinity or -Infinity\", value);\n\treturn value;\n}\nfunction decimal128Encode(codecId, value) {\n\trequireStoredDecimalText(codecId, value);\n\ttry {\n\t\treturn Decimal128.fromString(value);\n\t} catch (error) {\n\t\treturn encodeFailed(codecId, `value cannot be stored as a Decimal128 exactly: ${error instanceof Error ? error.message : String(error)}`, value);\n\t}\n}\nfunction decimal128Decode(codecId, wire) {\n\tif (!isDecimal128(wire)) return decodeFailed(codecId, \"wire value must be a Decimal128\", wire);\n\tconst text = decimalTextWithoutExponent(wire.toString());\n\tif (text === void 0) return decodeFailed(codecId, \"wire value is not decimal text\", wire);\n\treturn text;\n}\nfunction decimal128ToJson(codecId, value) {\n\treturn requireStoredDecimalText(codecId, value);\n}\n/** Decimal text without its leading zeros, as MongoDB writes it; the sign of zero and trailing zeros stay. */\nfunction decimalTextWithoutLeadingZeros(text) {\n\treturn text.replace(/^(-?)0+(?=\\d)/, \"$1\");\n}\nfunction withoutSignOfZero(text) {\n\treturn /^-[0.]+$/.test(text) ? text.slice(1) : text;\n}\n/** Whether a Decimal128 holds the decimal text exactly: the text it writes back is the same number, digit for digit. */\nfunction decimal128HoldsExactly(text) {\n\tlet written;\n\ttry {\n\t\twritten = Decimal128.fromString(text).toString();\n\t} catch {\n\t\treturn false;\n\t}\n\treturn decimalTextWithoutExponent(written) === withoutSignOfZero(decimalTextWithoutLeadingZeros(text));\n}\n/**\n* The stored form is what the codec writes, so it follows the encode rule: decimal text without an exponent, or `NaN`, `Infinity` or `-Infinity`, that a Decimal128 holds exactly. A value a Decimal128 would round is refused.\n*/\nfunction readDecimal128Json(owner, json) {\n\tconst expected = \"decimal text without an exponent that a Decimal128 holds exactly, or NaN, Infinity or -Infinity\";\n\tconst text = readJsonMatching(owner, json, STORED_DECIMAL_TEXT, expected);\n\treturn decimal128HoldsExactly(text) ? text : refuseJsonValue(owner, expected, json);\n}\n/** The decimal text without leading zeros, as MongoDB writes it, keeping negative zero. */\nfunction spellDecimal128Json(json) {\n\treturn typeof json === \"string\" ? decimalTextWithoutLeadingZeros(json) : json;\n}\nfunction binaryEncode(codecId, value) {\n\tif (!(value instanceof Uint8Array)) encodeFailed(codecId, \"value must be a Uint8Array\", value);\n\treturn new Binary(value);\n}\n/**\n* The driver reads binData as a `Binary`, or as a `Buffer` with `promoteBuffers: true`; either becomes a plain `Uint8Array` copy of the bytes.\n*/\nfunction binaryDecode(codecId, wire) {\n\tif (wire instanceof Uint8Array) return new Uint8Array(wire);\n\tif (!isBinary(wire)) return decodeFailed(codecId, \"wire value must be a Binary or a Uint8Array\", wire);\n\treturn new Uint8Array(wire.value());\n}\nfunction binaryToBase64(value) {\n\treturn Buffer.from(value).toString(\"base64\");\n}\n/** Whether `text` is base64, with or without padding bits set. */\nfunction isBase64Text(text) {\n\treturn BASE64_TEXT.test(text);\n}\n/** Reads base64 with or without padding bits set; {@link spellBase64Json} writes the base64 the type stores. */\nfunction readBinaryJson(owner, json) {\n\treturn readJsonMatching(owner, json, BASE64_TEXT, \"base64 text\");\n}\n/** The base64 of the same bytes with padding bits zero, as `Buffer` writes it. */\nfunction spellBase64Json(json) {\n\treturn typeof json === \"string\" ? Buffer.from(json, \"base64\").toString(\"base64\") : json;\n}\nfunction binaryFromBase64(base64) {\n\treturn new Uint8Array(Buffer.from(base64, \"base64\"));\n}\n//#endregion\n//#region src/core/bson-walk.ts\nfunction where(path) {\n\treturn path === \"\" ? \"the root\" : path;\n}\nfunction child(path, key) {\n\treturn path === \"\" ? String(key) : `${path}.${key}`;\n}\nfunction isPlainObject(value) {\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === Object.prototype || prototype === null;\n}\nfunction isPlainArray(value) {\n\treturn Array.isArray(value) && Object.getPrototypeOf(value) === Array.prototype;\n}\nconst BSON_VERSION = Symbol.for(\"@@mdb.bson.version\");\n/** The major version of the `bson` this package loads, which every `bson` class instance it can serialise carries. */\nconst BSON_MAJOR = Reflect.get(new MinKey(), BSON_VERSION);\n/** Whether a `bson` class instance comes from the same major version of `bson`, rather than being a look-alike or from another version. */\nfunction createdByBsonMajor(value) {\n\treturn Reflect.get(value, BSON_VERSION) === BSON_MAJOR;\n}\nfunction bsonTypeTag(value) {\n\tconst tag = Reflect.get(value, \"_bsontype\");\n\treturn typeof tag === \"string\" ? tag : void 0;\n}\n/**\n* The `_bsontype` tag of a `bson` class instance. A stored subdocument is read as a plain object even when it has a `_bsontype` key, so a plain object has no tag.\n*/\nfunction bsonClassTag(value) {\n\treturn isPlainObject(value) ? void 0 : bsonTypeTag(value);\n}\nfunction constructorName(value) {\n\tconst name = Reflect.get(value, \"constructor\")?.name;\n\treturn typeof name === \"string\" && name !== \"\" ? name : \"object\";\n}\n/**\n* The `bson` library reads any subdocument with a string `$ref` and an `$id` as a `DBRef`. It was stored as a plain object; these are its entries in stored order, `$ref`, `$id`, `$db` when present, then the other fields.\n*/\nfunction dbRefEntries(value) {\n\tconst ref = blindCast(value);\n\tconst entries = [[\"$ref\", ref.collection], [\"$id\", ref.oid]];\n\tif (ref.db !== void 0) entries.push([\"$db\", ref.db]);\n\tentries.push(...Object.entries(ref.fields));\n\treturn entries;\n}\n//#endregion\n//#region src/core/bson-codec-helpers.ts\nconst BSON_VALUE_TAGS = /* @__PURE__ */ new Set([\n\t\"ObjectId\",\n\t\"Long\",\n\t\"Decimal128\",\n\t\"Binary\",\n\t\"BSONRegExp\",\n\t\"Timestamp\",\n\t\"Int32\",\n\t\"Double\",\n\t\"Code\",\n\t\"MinKey\",\n\t\"MaxKey\",\n\t\"BSONSymbol\"\n]);\nconst ENCODE_FIX_BY_RECEIVED = { DBRef: \"Write it as a { $ref, $id } document instead.\" };\nfunction encodeRefused(received, path) {\n\tconst fix = ENCODE_FIX_BY_RECEIVED[received];\n\tthrow mongoTargetError(\"RUNTIME.ENCODE_FAILED\", `${MONGO_BSON_CODEC_ID} value must be a BSON value; received ${received} at ${where(path)}${fix === void 0 ? \"\" : `. ${fix}`}`, { meta: {\n\t\tcodecId: MONGO_BSON_CODEC_ID,\n\t\treceived,\n\t\tvaluePath: path\n\t} });\n}\nfunction assertBsonValue(value, path, ancestors) {\n\tif (value === null || typeof value === \"string\" || typeof value === \"boolean\" || typeof value === \"number\") return;\n\tif (typeof value !== \"object\") {\n\t\tencodeRefused(typeof value, path);\n\t\treturn;\n\t}\n\tconst tag = bsonTypeTag(value);\n\tif (tag !== void 0) {\n\t\tif (!BSON_VALUE_TAGS.has(tag)) encodeRefused(tag, path);\n\t\tif (!createdByBsonMajor(value)) encodeRefused(`${tag} not created by bson ${String(BSON_MAJOR)}`, path);\n\t\treturn;\n\t}\n\tif (value instanceof Date || value instanceof RegExp || value instanceof Uint8Array) return;\n\tif (!isPlainArray(value) && !isPlainObject(value)) {\n\t\tencodeRefused(constructorName(value), path);\n\t\treturn;\n\t}\n\tif (ancestors.has(value)) encodeRefused(\"circular reference\", path);\n\tancestors.add(value);\n\tif (Array.isArray(value)) for (let index = 0; index < value.length; index++) {\n\t\tif (!(index in value)) encodeRefused(\"sparse array hole\", child(path, index));\n\t\tassertBsonValue(value[index], child(path, index), ancestors);\n\t}\n\telse for (const [key, entry] of Object.entries(value)) assertBsonValue(entry, child(path, key), ancestors);\n\tancestors.delete(value);\n}\n/**\n* Returns `value` unchanged when it is a BSON value at every depth, and throws `RUNTIME.ENCODE_FAILED` naming the first value that is not, with its path.\n*/\nfunction encodeBsonValue(value) {\n\tassertBsonValue(value, \"\", /* @__PURE__ */ new Set());\n\treturn value;\n}\n/**\n* A `Code` value with a scope, recognised by its tag: the driver reads with its own load of `bson`, so its `Code` is not an instance of the class imported here.\n*/\nfunction codeWithScope(value) {\n\tif (bsonClassTag(value) !== \"Code\") return void 0;\n\tconst code = Reflect.get(value, \"code\");\n\tconst scope = Reflect.get(value, \"scope\");\n\treturn typeof code === \"string\" && typeof scope === \"object\" && scope !== null ? {\n\t\tcode,\n\t\tscope\n\t} : void 0;\n}\nfunction decodeEntries(entries) {\n\treturn Object.fromEntries(entries.map(([key, entry]) => [key, decodeValue(entry)]));\n}\nfunction decodeValue(value) {\n\tif (typeof value !== \"object\" || value === null) return value;\n\tif (bsonClassTag(value) === \"DBRef\") return decodeEntries(dbRefEntries(value));\n\tif (Array.isArray(value)) {\n\t\tconst decoded = value.map(decodeValue);\n\t\treturn decoded.some((entry, index) => entry !== value[index]) ? decoded : value;\n\t}\n\tconst code = codeWithScope(value);\n\tif (code !== void 0) {\n\t\tconst scope = decodeValue(code.scope);\n\t\treturn scope === code.scope ? value : new Code(code.code, blindCast(scope));\n\t}\n\tif (!isPlainObject(value)) return value;\n\tconst entries = Object.entries(value);\n\tconst decoded = decodeEntries(entries);\n\treturn entries.some(([key, entry]) => decoded[key] !== entry) ? decoded : value;\n}\n/**\n* Returns the wire value as the driver produced it, except that a `DBRef` the `bson` library read from a `{ $ref, $id }` subdocument becomes that document again, `{ $ref, $id[, $db], ...fields }`, with its members' BSON types kept, at any depth and inside a `Code` scope. A value holding no `DBRef` is returned as the same object.\n*/\nfunction decodeBsonValue(wire) {\n\treturn blindCast(decodeValue(wire));\n}\nfunction asDriverWrites(value) {\n\tif (typeof value === \"number\") return Number.isInteger(value) && (value < INT32_RANGE.min || value > INT32_RANGE.max) ? new Double(value) : value;\n\tif (typeof value !== \"object\" || value === null) return value;\n\tif (value instanceof Uint8Array) return new Binary(value);\n\tif (Array.isArray(value)) return value.map(asDriverWrites);\n\tif (isPlainObject(value)) return Object.fromEntries(Object.entries(value).map(([key, entry]) => [key, asDriverWrites(entry)]));\n\tconst code = codeWithScope(value);\n\tif (code !== void 0) return new Code(code.code, blindCast(asDriverWrites(code.scope)));\n\treturn value;\n}\n/**\n* Canonical Extended JSON for a BSON value, recording each JavaScript number and `Uint8Array` as the BSON type the driver writes for it: an integer outside the int32 range as a `double`, and bytes as `binData`.\n*/\nfunction bsonToJson(value) {\n\treturn blindCast(EJSON.serialize(asDriverWrites(value), { relaxed: false }));\n}\n/**\n* Reads the canonical Extended JSON `bsonToJson` writes. The `bson` reader also takes forms that are not canonical, some of them silently wrong (`{ \"$numberInt\": \"abc\" }` reads as 0), so a value that does not write back to the same JSON is refused, naming `owner`.\n*/\nfunction readBsonJson(owner, json) {\n\tlet value;\n\ttry {\n\t\tvalue = EJSON.deserialize(blindCast(json), { relaxed: false });\n\t} catch {\n\t\treturn refuseJsonValue(owner, \"canonical Extended JSON\", json);\n\t}\n\tif (!isDeepStrictEqual(EJSON.serialize(value, { relaxed: false }), json)) return refuseJsonValue(owner, \"canonical Extended JSON\", json);\n\treturn value;\n}\n//#endregion\n//#region src/core/data-types.ts\n/** The vector's dimension: the TypeScript type `Vector<n>` and the type's reader read it. */\nconst mongoVectorParams = type({ \"length?\": \"number.integer >= 1\" });\n/** Text as the ObjectId it names; {@link spellObjectIdJson} gives it the lower case the type stores. */\nconst asObjectId = (value) => {\n\tif (typeof value !== \"string\") return refuseWrongShape(value, \"text\");\n\tif (isObjectIdText(value)) return value;\n\tthrow structuredError(\"CONTRACT.CAST_REFUSED\", `\"${value}\" is not an ObjectId: write 24 hexadecimal digits.`, {\n\t\twhy: \"An ObjectId is 12 bytes, written as 24 hexadecimal digits.\",\n\t\tfix: \"Write the ObjectId as 24 hexadecimal digits, as in \\\"507f1f77bcf86cd799439011\\\".\"\n\t});\n};\n/** The numbers of a written list as a vector stores them, each finite. */\nfunction vectorElements(elements) {\n\treturn elements.map((element, index) => {\n\t\tconst number = Number(element);\n\t\tif (Number.isFinite(number)) return number;\n\t\tthrow structuredError(\"CONTRACT.CAST_REFUSED\", `a vector element is a finite number, and element ${index + 1} is ${String(element)}.`, {\n\t\t\twhy: \"A vector holds finite numbers, as a vector search index reads them.\",\n\t\t\tfix: \"Write each element as a finite number.\"\n\t\t});\n\t});\n}\nconst mongoString = mongoDataType(\"mongo/string\", {\n\tread: (json) => readJsonString(\"mongo/string\", json),\n\tbsonTypes: [\"string\"]\n});\nconst mongoInt32 = mongoDataType(\"mongo/int32\", {\n\tread: (json) => readInt32Json(\"mongo/int32\", json),\n\tbsonTypes: [\"int\"]\n});\nconst mongoInt64 = mongoDataType(\"mongo/int64\", {\n\tread: (json) => readInt64Json(\"mongo/int64\", json),\n\tbsonTypes: [\"long\"],\n\tcasts: { [mongoInt32.id]: asNumeralText }\n});\nconst mongoDecimal128 = mongoDataType(\"mongo/decimal128\", {\n\tread: (json) => readDecimal128Json(\"mongo/decimal128\", json),\n\tspell: spellDecimal128Json,\n\tequalityKey: decimalTextEqualityKey,\n\tbsonTypes: [\"decimal\"],\n\tcasts: {\n\t\t[mongoInt32.id]: asNumeralText,\n\t\t[mongoInt64.id]: castUnchanged\n\t}\n});\nconst mongoDouble = mongoDataType(\"mongo/double\", {\n\tread: (json) => {\n\t\treadJsonFloat(\"mongo/double\", json);\n\t\treturn json;\n\t},\n\tbsonTypes: [\"double\"],\n\tcasts: {\n\t\t[mongoInt32.id]: asFloat,\n\t\t[mongoInt64.id]: asFloat,\n\t\t[mongoDecimal128.id]: asFloat\n\t}\n});\nconst mongoObjectId = mongoDataType(\"mongo/objectid\", {\n\tread: (json) => readObjectIdJson(\"mongo/objectid\", json),\n\tspell: spellObjectIdJson,\n\tbsonTypes: [\"objectId\"],\n\tcasts: { [mongoString.id]: asObjectId }\n});\nconst mongoBool = mongoDataType(\"mongo/bool\", {\n\tread: (json) => readJsonBoolean(\"mongo/bool\", json),\n\tbsonTypes: [\"bool\"]\n});\nconst mongoDate = mongoDataType(\"mongo/date\", {\n\tread: (json) => readDateJson(\"mongo/date\", json),\n\tbsonTypes: [\"date\"]\n});\nconst mongoVector = mongoDataType(\"mongo/vector\", {\n\tread: (json, params) => readVectorJson(\"mongo/vector\", json, typeof params[\"length\"] === \"number\" ? params[\"length\"] : void 0),\n\tbsonTypes: [\"array\"],\n\tparams: mongoVectorParams,\n\tlistCast: {\n\t\tof: [\n\t\t\tmongoInt32.id,\n\t\t\tmongoInt64.id,\n\t\t\tmongoDecimal128.id,\n\t\t\tmongoDouble.id\n\t\t],\n\t\tcast: vectorElements\n\t}\n});\nconst mongoBinary = mongoDataType(\"mongo/binary\", {\n\tread: (json) => readBinaryJson(\"mongo/binary\", json),\n\tspell: spellBase64Json,\n\tbsonTypes: [\"binData\"]\n});\nconst mongoJson = mongoDataType(\"mongo/json\", {\n\tread: (json) => json,\n\tbsonTypes: [\n\t\t\"object\",\n\t\t\"array\",\n\t\t\"string\",\n\t\t\"double\",\n\t\t\"int\",\n\t\t\"long\",\n\t\t\"bool\",\n\t\t\"null\"\n\t]\n});\nconst mongoBson = mongoDataType(\"mongo/bson\", {\n\tread: (json) => {\n\t\treadBsonJson(\"mongo/bson\", json);\n\t\treturn json;\n\t},\n\tbsonTypes: []\n});\nconst mongoDataTypes = [\n\tmongoObjectId,\n\tmongoString,\n\tmongoDouble,\n\tmongoInt32,\n\tmongoBool,\n\tmongoDate,\n\tmongoVector,\n\tmongoInt64,\n\tmongoDecimal128,\n\tmongoBinary,\n\tmongoJson,\n\tmongoBson\n];\n/** MongoDB's text data type: `string`. */\nconst mongoTextDataTypes = [mongoString.id];\n//#endregion\nexport { vectorEncode as $, binaryFromBase64 as A, int32Encode as B, constructorName as C, where as D, isPlainObject as E, decimal128Decode as F, int64NumberEncode as G, int64Decode as H, decimal128Encode as I, int64ToJson as J, int64NumberFromDigits as K, decimal128HoldsExactly as L, booleanEncode as M, dateEncode as N, binaryDecode as O, dateToJson as P, stringEncode as Q, decimal128ToJson as R, child as S, isPlainArray as T, int64Encode as U, int32ToJson as V, int64NumberDecode as W, objectIdEncode as X, isBase64Text as Y, objectIdToJson as Z, decodeBsonValue as _, mongoDate as a, bsonClassTag as b, mongoInt32 as c, mongoObjectId as d, mongoString as f, bsonToJson as g, mongoVectorParams as h, mongoDataTypes as i, binaryToBase64 as j, binaryEncode as k, mongoInt64 as l, mongoVector as m, mongoBool as n, mongoDecimal128 as o, mongoTextDataTypes as p, int64NumberToJson as q, mongoBson as r, mongoDouble as s, mongoBinary as t, mongoJson as u, encodeBsonValue as v, dbRefEntries as w, bsonTypeTag as x, readBsonJson as y, doubleEncode as z };\n\n//# sourceMappingURL=data-types-hoKLBrYZ.mjs.map"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"descriptor-meta-DTj807jv-C0Hq7wyV.mjs","names":[],"sources":["../../../../3-mongo-target/1-mongo-target/dist/descriptor-meta-DTj807jv.mjs"],"sourcesContent":["import { i as MONGO_DATE_CODEC_ID } from \"./codec-ids-WdrumsYA.mjs\";\nimport { L as decimal128HoldsExactly, Y as isBase64Text, a as mongoDate, c as mongoInt32, f as mongoString, l as mongoInt64, n as mongoBool, o as mongoDecimal128, p as mongoTextDataTypes, s as mongoDouble, t as mongoBinary, u as mongoJson } from \"./data-types-hoKLBrYZ.mjs\";\nimport { t as mongoTargetDescriptorMetaRuntime } from \"./descriptor-meta-runtime-BaRbjvD7.mjs\";\nimport { TIMESTAMP_NOW_GENERATOR_ID, temporalAuthoringPresets, temporalCodecPreset, temporalTypeAliases } from \"@internal/framework-components/authoring\";\nimport { singleGeneratorBinding } from \"@internal/framework-components/components\";\nimport { createNumberClassifier, isoDateStringText, numeralText, parseJsonText, printJsonText, signedRange } from \"@internal/framework-components/codec\";\nimport { structuredError } from \"@internal/utils/structured-error\";\n//#region src/core/authoring.ts\nconst mongoDateStorage = { codecId: MONGO_DATE_CODEC_ID };\nconst mongoAuthoringFieldPresets = { temporal: {\n\t...temporalAuthoringPresets(mongoDateStorage),\n\ttimestamp: temporalCodecPreset(mongoDateStorage)\n} };\nconst mongoAuthoringTypes = { temporal: temporalTypeAliases(mongoDateStorage, \"a JavaScript Date\") };\n//#endregion\n//#region src/core/data-type-entries.ts\nconst classifyAsDecimal = createNumberClassifier({\n\tintegers: [{\n\t\ttype: mongoInt32.id,\n\t\tform: \"number\",\n\t\t...signedRange(32)\n\t}, {\n\t\ttype: mongoInt64.id,\n\t\tform: \"text\",\n\t\t...signedRange(64)\n\t}],\n\tlargerWhole: {\n\t\ttype: mongoDecimal128.id,\n\t\tform: \"text\"\n\t},\n\tfraction: {\n\t\ttype: mongoDecimal128.id,\n\t\tform: \"text\"\n\t},\n\twords: {\n\t\ttype: mongoDecimal128.id,\n\t\tform: \"text\"\n\t}\n});\n/** The type of a written number: a `decimal` only when a Decimal128 holds it exactly, else the `double` nearest it. */\nfunction classifyMongoNumber(text) {\n\tconst classified = classifyAsDecimal(text);\n\tif (classified?.type !== mongoDecimal128.id || decimal128HoldsExactly(String(classified.value))) return classified;\n\tconst double = Number(text);\n\treturn Number.isFinite(double) ? {\n\t\ttype: mongoDouble.id,\n\t\tvalue: double\n\t} : void 0;\n}\nfunction printNumber(value) {\n\treturn typeof value === \"number\" ? numeralText(value) : String(value);\n}\nfunction base64Text(text) {\n\tif (isBase64Text(text)) return text;\n\tthrow structuredError(\"CONTRACT.CAST_REFUSED\", `\"${text}\" is not base64 text: write the bytes in base64, as in binary\\`aGVsbG8=\\`.`, {\n\t\twhy: \"The binary tag reads bytes as base64, as MongoDB prints them.\",\n\t\tfix: \"Write the bytes in base64, as in binary`aGVsbG8=`.\"\n\t});\n}\nfunction mongoDataTypeEntries() {\n\treturn {\n\t\t[mongoString.id]: {\n\t\t\twritten: {\n\t\t\t\tkind: \"plain\",\n\t\t\t\tsyntax: \"string\",\n\t\t\t\tparse: (text) => text\n\t\t\t},\n\t\t\tprint: (value) => String(value),\n\t\t\tdocumentation: \"Text.\"\n\t\t},\n\t\t[mongoBool.id]: {\n\t\t\twritten: {\n\t\t\t\tkind: \"plain\",\n\t\t\t\tsyntax: \"boolean\",\n\t\t\t\tparse: (text) => text === \"true\"\n\t\t\t},\n\t\t\tprint: (value) => String(value),\n\t\t\tdocumentation: \"A boolean, written true or false.\"\n\t\t},\n\t\t[mongoDouble.id]: {\n\t\t\twritten: {\n\t\t\t\tkind: \"plain\",\n\t\t\t\tsyntax: \"number\",\n\t\t\t\ttypes: [\n\t\t\t\t\tmongoInt32.id,\n\t\t\t\t\tmongoInt64.id,\n\t\t\t\t\tmongoDecimal128.id,\n\t\t\t\t\tmongoDouble.id\n\t\t\t\t],\n\t\t\t\tclassify: classifyMongoNumber\n\t\t\t},\n\t\t\tprint: printNumber,\n\t\t\tdocumentation: \"A number: an int in 32 bits, a long in 64, a decimal when a Decimal128 holds it exactly, NaN and the infinities included, and a double otherwise.\"\n\t\t},\n\t\t[mongoDate.id]: {\n\t\t\twritten: {\n\t\t\t\tkind: \"tag\",\n\t\t\t\ttag: \"date\",\n\t\t\t\tparse: (text) => isoDateStringText(text, mongoDate.id)\n\t\t\t},\n\t\t\tprint: (value) => String(value),\n\t\t\tdocumentation: \"An instant, as in date`2024-01-01T00:00:00Z`. Reads ISO 8601 with a UTC offset and stores the instant in UTC with three fraction digits, as Date.toISOString() writes it.\"\n\t\t},\n\t\t[mongoBinary.id]: {\n\t\t\twritten: {\n\t\t\t\tkind: \"tag\",\n\t\t\t\ttag: \"binary\",\n\t\t\t\tparse: base64Text\n\t\t\t},\n\t\t\tprint: (value) => String(value),\n\t\t\tdocumentation: \"Bytes, written in base64 as MongoDB prints them, as in binary`aGVsbG8=`.\"\n\t\t},\n\t\t[mongoJson.id]: {\n\t\t\twritten: {\n\t\t\t\tkind: \"tag\",\n\t\t\t\ttag: \"json\",\n\t\t\t\tparse: parseJsonText\n\t\t\t},\n\t\t\tprint: printJsonText,\n\t\t\tdocumentation: \"Reads the text as a JSON document and stores it as the value.\"\n\t\t}\n\t};\n}\nconst mongoTargetDescriptorMeta = {\n\t...mongoTargetDescriptorMetaRuntime,\n\tauthoring: {\n\t\ttype: mongoAuthoringTypes,\n\t\tfield: mongoAuthoringFieldPresets,\n\t\tdataTypes: mongoDataTypeEntries(),\n\t\ttextDataTypes: mongoTextDataTypes\n\t},\n\tcontrolMutationDefaults: {\n\t\tdefaultFunctionRegistry: /* @__PURE__ */ new Map(),\n\t\tgeneratorDescriptors: [{ id: TIMESTAMP_NOW_GENERATOR_ID }]\n\t},\n\tgeneratorFunctions: [{\n\t\tname: \"now\",\n\t\tsignature: { documentation: \"Writes the current time.\" },\n\t\tbindings: [singleGeneratorBinding({\n\t\t\tcodecIds: [MONGO_DATE_CODEC_ID],\n\t\t\tgeneratorId: TIMESTAMP_NOW_GENERATOR_ID\n\t\t})]\n\t}]\n};\n//#endregion\nexport { mongoTargetDescriptorMeta as t };\n\n//# sourceMappingURL=descriptor-meta-DTj807jv.mjs.map"],"mappings":";;;;;;;;AAQA,MAAM,mBAAmB,EAAE,SAAS,oBAAoB;AACxD,MAAM,6BAA6B,EAAE,UAAU;CAC9C,GAAG,yBAAyB,gBAAgB;CAC5C,WAAW,oBAAoB,gBAAgB;AAChD,EAAE;AACF,MAAM,sBAAsB,EAAE,UAAU,oBAAoB,kBAAkB,mBAAmB,EAAE;AAGnG,MAAM,oBAAoB,uBAAuB;CAChD,UAAU,CAAC;EACV,MAAM,WAAW;EACjB,MAAM;EACN,GAAG,YAAY,EAAE;CAClB,GAAG;EACF,MAAM,WAAW;EACjB,MAAM;EACN,GAAG,YAAY,EAAE;CAClB,CAAC;CACD,aAAa;EACZ,MAAM,gBAAgB;EACtB,MAAM;CACP;CACA,UAAU;EACT,MAAM,gBAAgB;EACtB,MAAM;CACP;CACA,OAAO;EACN,MAAM,gBAAgB;EACtB,MAAM;CACP;AACD,CAAC;;AAED,SAAS,oBAAoB,MAAM;CAClC,MAAM,aAAa,kBAAkB,IAAI;CACzC,IAAI,YAAY,SAAS,gBAAgB,MAAM,uBAAuB,OAAO,WAAW,KAAK,CAAC,GAAG,OAAO;CACxG,MAAM,SAAS,OAAO,IAAI;CAC1B,OAAO,OAAO,SAAS,MAAM,IAAI;EAChC,MAAM,YAAY;EAClB,OAAO;CACR,IAAI,KAAK;AACV;AACA,SAAS,YAAY,OAAO;CAC3B,OAAO,OAAO,UAAU,WAAW,YAAY,KAAK,IAAI,OAAO,KAAK;AACrE;AACA,SAAS,WAAW,MAAM;CACzB,IAAI,aAAa,IAAI,GAAG,OAAO;CAC/B,MAAM,gBAAgB,yBAAyB,IAAI,KAAK,6EAA6E;EACpI,KAAK;EACL,KAAK;CACN,CAAC;AACF;AACA,SAAS,uBAAuB;CAC/B,OAAO;GACL,YAAY,KAAK;GACjB,SAAS;IACR,MAAM;IACN,QAAQ;IACR,QAAQ,SAAS;GAClB;GACA,QAAQ,UAAU,OAAO,KAAK;GAC9B,eAAe;EAChB;GACC,UAAU,KAAK;GACf,SAAS;IACR,MAAM;IACN,QAAQ;IACR,QAAQ,SAAS,SAAS;GAC3B;GACA,QAAQ,UAAU,OAAO,KAAK;GAC9B,eAAe;EAChB;GACC,YAAY,KAAK;GACjB,SAAS;IACR,MAAM;IACN,QAAQ;IACR,OAAO;KACN,WAAW;KACX,WAAW;KACX,gBAAgB;KAChB,YAAY;IACb;IACA,UAAU;GACX;GACA,OAAO;GACP,eAAe;EAChB;GACC,UAAU,KAAK;GACf,SAAS;IACR,MAAM;IACN,KAAK;IACL,QAAQ,SAAS,kBAAkB,MAAM,UAAU,EAAE;GACtD;GACA,QAAQ,UAAU,OAAO,KAAK;GAC9B,eAAe;EAChB;GACC,YAAY,KAAK;GACjB,SAAS;IACR,MAAM;IACN,KAAK;IACL,OAAO;GACR;GACA,QAAQ,UAAU,OAAO,KAAK;GAC9B,eAAe;EAChB;GACC,UAAU,KAAK;GACf,SAAS;IACR,MAAM;IACN,KAAK;IACL,OAAO;GACR;GACA,OAAO;GACP,eAAe;EAChB;CACD;AACD;AACA,MAAM,4BAA4B;CACjC,GAAG;CACH,WAAW;EACV,MAAM;EACN,OAAO;EACP,WAAW,qBAAqB;EAChC,eAAe;CAChB;CACA,yBAAyB;EACxB,yCAAyC,IAAI,IAAI;EACjD,sBAAsB,CAAC,EAAE,IAAI,2BAA2B,CAAC;CAC1D;CACA,oBAAoB,CAAC;EACpB,MAAM;EACN,WAAW,EAAE,eAAe,2BAA2B;EACvD,UAAU,CAAC,uBAAuB;GACjC,UAAU,CAAC,mBAAmB;GAC9B,aAAa;EACd,CAAC,CAAC;CACH,CAAC;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"descriptor-meta-runtime-BaRbjvD7-MOhJcdky.mjs","names":[],"sources":["../../../../3-mongo-target/1-mongo-target/dist/descriptor-meta-runtime-BaRbjvD7.mjs"],"sourcesContent":["import { i as mongoDataTypes } from \"./data-types-hoKLBrYZ.mjs\";\nimport { n as mongoCodecDescriptors } from \"./codecs-B1ab7vfj.mjs\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nconst mongoTargetDescriptorMetaRuntime = {\n\tkind: \"target\",\n\tfamilyId: \"mongo\",\n\ttargetId: \"mongo\",\n\tid: \"mongo\",\n\tversion: \"0.0.1\",\n\tcapabilities: {},\n\tdefaultNamespaceId: UNBOUND_NAMESPACE_ID,\n\tsupportsNamespaces: true,\n\tdataTypes: mongoDataTypes,\n\ttypes: { codecTypes: { codecDescriptors: mongoCodecDescriptors } }\n};\n//#endregion\nexport { mongoTargetDescriptorMetaRuntime as t };\n\n//# sourceMappingURL=descriptor-meta-runtime-BaRbjvD7.mjs.map"],"mappings":";;;;AAGA,MAAM,mCAAmC;CACxC,MAAM;CACN,UAAU;CACV,UAAU;CACV,IAAI;CACJ,SAAS;CACT,cAAc,CAAC;CACf,oBAAoB;CACpB,oBAAoB;CACpB,WAAW;CACX,OAAO,EAAE,YAAY,EAAE,kBAAkB,sBAAsB,EAAE;AAClE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration-DKoUk2CF.d.mts","names":[],"sources":["../../../../3-mongo-target/1-mongo-target/dist/migration.d.mts"],"mappings":";;;;;;;;;;UASU;EACR,SAAS;;iBAEM,cAAc,cAAc;;;;;;EAM3C;EACA;IACE,cAAc,iBAAiB;IAC/B,SAAS;IACT;IACA;;EAEF,WAAW,iBAAiB;IAC1B;UACM;WACC,SAAS;;iBAEH,YAAY,wBAAwB,cAAc,YAAY,UAAU,sBAAsB;iBAC9F,WAAW,wBAAwB,eAAe,UAAU,sBAAsB;iBAClF,YAAY,wBAAwB,MAAM,cAAc,gBAAgB,UAAU,qBAAqB;iBACvG,UAAU,wBAAwB,MAAM,cAAc,iBAAiB;iBACvE,iBAAiB,wBAAwB,UAAU,0BAA0B;iBAC7E,eAAe,yBAAyB;iBACxC,iBAAiB,cAAc,aAAa;iBAC5C,cAAc,wBAAwB,QAAQ,yBAAyB;EACtF;EACA;IACE;iBACa,QAAQ,wBAAwB,SAAS,gBAAgB,OAAO,cAAc;iBAC9E,oBAAoB,cAAc,QAAQ,yBAAyB,SAAS;EAC3F,MAAM;EACN;KACG"}