@prisma/orm-family-mongo 0.16.0-dev.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +27 -0
- package/dist/authoring-entity-types-BGtkMyoN-D32kzx28.mjs +176 -0
- package/dist/authoring-entity-types-BGtkMyoN-D32kzx28.mjs.map +1 -0
- package/dist/canonicalization-hooks-DF3Z6sjO.mjs +22 -0
- package/dist/canonicalization-hooks-DF3Z6sjO.mjs.map +1 -0
- package/dist/codec.d.mts +2 -0
- package/dist/codec.mjs +2 -0
- package/dist/config-types-CFDf9ivE.mjs +37 -0
- package/dist/config-types-CFDf9ivE.mjs.map +1 -0
- package/dist/config-types-CQOf5N7R.d.mts +12 -0
- package/dist/config-types-CQOf5N7R.d.mts.map +1 -0
- package/dist/contract-builder-BFq0gOMV.mjs +634 -0
- package/dist/contract-builder-BFq0gOMV.mjs.map +1 -0
- package/dist/contract-builder-DB8nguDE.d.mts +445 -0
- package/dist/contract-builder-DB8nguDE.d.mts.map +1 -0
- package/dist/contract-errors-BCN6RVI5-kMurtAbI.mjs +9 -0
- package/dist/contract-errors-BCN6RVI5-kMurtAbI.mjs.map +1 -0
- package/dist/contract-psl.d.mts +45 -0
- package/dist/contract-psl.d.mts.map +1 -0
- package/dist/contract-psl.mjs +2 -0
- package/dist/contract-psl__provider.d.mts +15 -0
- package/dist/contract-psl__provider.d.mts.map +1 -0
- package/dist/contract-psl__provider.mjs +82 -0
- package/dist/contract-psl__provider.mjs.map +1 -0
- package/dist/contract-ts.d.mts +3 -0
- package/dist/contract-ts.mjs +3 -0
- package/dist/contract-ts__config-types.d.mts +2 -0
- package/dist/contract-ts__config-types.mjs +2 -0
- package/dist/contract-ts__contract-builder.d.mts +2 -0
- package/dist/contract-ts__contract-builder.mjs +2 -0
- package/dist/contract.d.mts +3 -0
- package/dist/contract.mjs +3 -0
- package/dist/contract__canonicalization-hooks.d.mts +9 -0
- package/dist/contract__canonicalization-hooks.d.mts.map +1 -0
- package/dist/contract__canonicalization-hooks.mjs +2 -0
- package/dist/contract__entity-kinds.d.mts +17 -0
- package/dist/contract__entity-kinds.d.mts.map +1 -0
- package/dist/contract__entity-kinds.mjs +2 -0
- package/dist/control-C7-kthr1.d.mts +193 -0
- package/dist/control-C7-kthr1.d.mts.map +1 -0
- package/dist/control-CClR5JMr.mjs +127 -0
- package/dist/control-CClR5JMr.mjs.map +1 -0
- package/dist/control-CFr3tYsg.mjs +398 -0
- package/dist/control-CFr3tYsg.mjs.map +1 -0
- package/dist/control-Cj81sPbj.d.mts +101 -0
- package/dist/control-Cj81sPbj.d.mts.map +1 -0
- package/dist/control-adapter-Db5pT77b.d.mts +83 -0
- package/dist/control-adapter-Db5pT77b.d.mts.map +1 -0
- package/dist/dist-C7Ykq48Q.mjs +19 -0
- package/dist/dist-C7Ykq48Q.mjs.map +1 -0
- package/dist/dist-Czwqx_i3.mjs +58 -0
- package/dist/dist-Czwqx_i3.mjs.map +1 -0
- package/dist/dist-DHrEJnhK.mjs +236 -0
- package/dist/dist-DHrEJnhK.mjs.map +1 -0
- package/dist/dist-Dyp05u64.mjs +1546 -0
- package/dist/dist-Dyp05u64.mjs.map +1 -0
- package/dist/emitter.d.mts +22 -0
- package/dist/emitter.d.mts.map +1 -0
- package/dist/emitter.mjs +2 -0
- package/dist/entity-kinds-B4KNTF8z-DPIuUuuB.mjs +603 -0
- package/dist/entity-kinds-B4KNTF8z-DPIuUuuB.mjs.map +1 -0
- package/dist/execution-CKnUiOfm.d.mts +48 -0
- package/dist/execution-CKnUiOfm.d.mts.map +1 -0
- package/dist/execution-D5XyZ5XS.mjs +1269 -0
- package/dist/execution-D5XyZ5XS.mjs.map +1 -0
- package/dist/exports-Bx-hlnZ3.mjs +209 -0
- package/dist/exports-Bx-hlnZ3.mjs.map +1 -0
- package/dist/exports-CJMh0VTU.mjs +156 -0
- package/dist/exports-CJMh0VTU.mjs.map +1 -0
- package/dist/family.d.mts +10 -0
- package/dist/family.mjs +9 -0
- package/dist/family__control-adapter.d.mts +2 -0
- package/dist/family__control-adapter.mjs +1 -0
- package/dist/family__control.d.mts +2 -0
- package/dist/family__control.mjs +3 -0
- package/dist/family__ir.d.mts +3 -0
- package/dist/family__ir.mjs +4 -0
- package/dist/family__migration.d.mts +2 -0
- package/dist/family__migration.mjs +2 -0
- package/dist/family__pack.d.mts +2 -0
- package/dist/family__pack.mjs +16 -0
- package/dist/family__pack.mjs.map +1 -0
- package/dist/family__runtime.d.mts +3 -0
- package/dist/family__runtime.mjs +2 -0
- package/dist/family__schema-verify.d.mts +2 -0
- package/dist/family__schema-verify.mjs +2 -0
- package/dist/field-accessor-0oUt6RZC-B_Z30uAA.mjs +234 -0
- package/dist/field-accessor-0oUt6RZC-B_Z30uAA.mjs.map +1 -0
- package/dist/field-accessor-DHsAPiW3-BdYCspQC.d.mts +588 -0
- package/dist/field-accessor-DHsAPiW3-BdYCspQC.d.mts.map +1 -0
- package/dist/filter-expressions-Uo8ZdzwB-53qnqceS.mjs +181 -0
- package/dist/filter-expressions-Uo8ZdzwB-53qnqceS.mjs.map +1 -0
- package/dist/index-BR0ue13b.d.mts +136 -0
- package/dist/index-BR0ue13b.d.mts.map +1 -0
- package/dist/index-Cd2zLiU6.d.mts +128 -0
- package/dist/index-Cd2zLiU6.d.mts.map +1 -0
- package/dist/index-DAOkcTCK.d.mts +151 -0
- package/dist/index-DAOkcTCK.d.mts.map +1 -0
- package/dist/index-Dv2PNMiG.d.mts +53 -0
- package/dist/index-Dv2PNMiG.d.mts.map +1 -0
- package/dist/index-DxoO-ywI.d.mts +178 -0
- package/dist/index-DxoO-ywI.d.mts.map +1 -0
- package/dist/index-wKMm41HC.d.mts +30 -0
- package/dist/index-wKMm41HC.d.mts.map +1 -0
- package/dist/interpreter-BxbUTQ3k-ClR98Ned.mjs +1091 -0
- package/dist/interpreter-BxbUTQ3k-ClR98Ned.mjs.map +1 -0
- package/dist/ir-CQrenTYt.d.mts +147 -0
- package/dist/ir-CQrenTYt.d.mts.map +1 -0
- package/dist/ir-Ch2aPr7a.mjs +62 -0
- package/dist/ir-Ch2aPr7a.mjs.map +1 -0
- package/dist/lowering.d.mts +2 -0
- package/dist/lowering.mjs +1 -0
- package/dist/migration-CNDQv5yB.d.mts +50 -0
- package/dist/migration-CNDQv5yB.d.mts.map +1 -0
- package/dist/migration-dcM7u4HG.mjs +52 -0
- package/dist/migration-dcM7u4HG.mjs.map +1 -0
- package/dist/mongo-contract-serializer-Cx7Fae8e-C8ZYPXpc.mjs +119 -0
- package/dist/mongo-contract-serializer-Cx7Fae8e-C8ZYPXpc.mjs.map +1 -0
- package/dist/mongo-contract-view-AnejqfrQ-BaCFT0xm.d.mts +27 -0
- package/dist/mongo-contract-view-AnejqfrQ-BaCFT0xm.d.mts.map +1 -0
- package/dist/mongo-contract-view-rcWzby6f-wRBCUnBt.mjs +17 -0
- package/dist/mongo-contract-view-rcWzby6f-wRBCUnBt.mjs.map +1 -0
- package/dist/mongo-value-set-tNn9-pun-dJYx_rVD.d.mts +536 -0
- package/dist/mongo-value-set-tNn9-pun-dJYx_rVD.d.mts.map +1 -0
- package/dist/mongodb-types-B4HmhF1S.d.mts +2 -0
- package/dist/orm.d.mts +311 -0
- package/dist/orm.d.mts.map +1 -0
- package/dist/orm.mjs +664 -0
- package/dist/orm.mjs.map +1 -0
- package/dist/pack-D9aLY50F.d.mts +44 -0
- package/dist/pack-D9aLY50F.d.mts.map +1 -0
- package/dist/query-ast.d.mts +5 -0
- package/dist/query-ast.mjs +4 -0
- package/dist/query-ast__control.d.mts +4 -0
- package/dist/query-ast__control.mjs +3 -0
- package/dist/query-ast__execution.d.mts +3 -0
- package/dist/query-ast__execution.mjs +3 -0
- package/dist/query-builder.d.mts +836 -0
- package/dist/query-builder.d.mts.map +1 -0
- package/dist/query-builder.mjs +3 -0
- package/dist/query-builder__contract-free.d.mts +83 -0
- package/dist/query-builder__contract-free.d.mts.map +1 -0
- package/dist/query-builder__contract-free.mjs +107 -0
- package/dist/query-builder__contract-free.mjs.map +1 -0
- package/dist/query-plan-C0-Yu8hf-DdilEdW6.d.mts +822 -0
- package/dist/query-plan-C0-Yu8hf-DdilEdW6.d.mts.map +1 -0
- package/dist/runtime-DPkRW4iu.d.mts +1 -0
- package/dist/runtime.d.mts +286 -0
- package/dist/runtime.d.mts.map +1 -0
- package/dist/runtime.mjs +532 -0
- package/dist/runtime.mjs.map +1 -0
- package/dist/schema-ir.d.mts +2 -0
- package/dist/schema-ir.mjs +2 -0
- package/dist/schema-verify-DJGr28XW.d.mts +23 -0
- package/dist/schema-verify-DJGr28XW.d.mts.map +1 -0
- package/dist/value.d.mts +2 -0
- package/dist/value.mjs +2 -0
- package/dist/value__mongodb-types.d.mts +2 -0
- package/dist/value__mongodb-types.mjs +1 -0
- package/dist/verify-mongo-schema-De0FG2Rm-CCzwnNPY.mjs +447 -0
- package/dist/verify-mongo-schema-De0FG2Rm-CCzwnNPY.mjs.map +1 -0
- package/dist/wire.d.mts +3 -0
- package/dist/wire.mjs +190 -0
- package/dist/wire.mjs.map +1 -0
- package/package.json +89 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-D5XyZ5XS.mjs","names":[],"sources":["../../../../2-mongo-family/4-query/query-ast/dist/exports/execution.mjs"],"sourcesContent":["import { a as MongoNotExpr, c as ormError, i as MongoFieldFilter, l as MongoAstNode, n as MongoExistsExpr, o as MongoOrExpr, r as MongoExprFilter, s as isMongoFilterExpr, t as MongoAndExpr } from \"../filter-expressions-Uo8ZdzwB.mjs\";\n//#region src/aggregation-expressions.ts\nfunction isExprArray(args) {\n\treturn Array.isArray(args);\n}\nfunction isRecordArgs(args) {\n\treturn !Array.isArray(args) && typeof args === \"object\" && !(\"accept\" in args);\n}\nfunction freezeRecordArgs(record) {\n\tconst frozen = {};\n\tfor (const [key, val] of Object.entries(record)) frozen[key] = Array.isArray(val) ? Object.freeze([...val]) : val;\n\treturn Object.freeze(frozen);\n}\nfunction rewriteRecordArgs(record, rewriter) {\n\tconst result = {};\n\tfor (const [key, val] of Object.entries(record)) if (Array.isArray(val)) result[key] = val.map((v) => v.rewrite(rewriter));\n\telse result[key] = val.rewrite(rewriter);\n\treturn result;\n}\nvar MongoAggExprNode = class extends MongoAstNode {};\nvar MongoAggFieldRef = class MongoAggFieldRef extends MongoAggExprNode {\n\tkind = \"fieldRef\";\n\tpath;\n\tconstructor(path) {\n\t\tsuper();\n\t\tif (!path) throw ormError(\"ORM.ARGUMENT_INVALID\", \"Field path must not be empty\");\n\t\tthis.path = path;\n\t\tthis.freeze();\n\t}\n\tstatic of(path) {\n\t\treturn new MongoAggFieldRef(path);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.fieldRef(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.fieldRef ? rewriter.fieldRef(this) : this;\n\t}\n};\nvar MongoAggLiteral = class MongoAggLiteral extends MongoAggExprNode {\n\tkind = \"literal\";\n\tvalue;\n\tconstructor(value) {\n\t\tsuper();\n\t\tthis.value = value;\n\t\tthis.freeze();\n\t}\n\tstatic of(value) {\n\t\treturn new MongoAggLiteral(value);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.literal(this);\n\t}\n\trewrite(rewriter) {\n\t\treturn rewriter.literal ? rewriter.literal(this) : this;\n\t}\n};\nvar MongoAggOperator = class MongoAggOperator extends MongoAggExprNode {\n\tkind = \"operator\";\n\top;\n\targs;\n\tconstructor(op, args) {\n\t\tsuper();\n\t\tthis.op = op;\n\t\tif (Array.isArray(args)) this.args = Object.freeze([...args]);\n\t\telse if (isRecordArgs(args)) this.args = freezeRecordArgs(args);\n\t\telse this.args = args;\n\t\tthis.freeze();\n\t}\n\tstatic of(op, args) {\n\t\treturn new MongoAggOperator(op, args);\n\t}\n\tstatic add(...args) {\n\t\treturn new MongoAggOperator(\"$add\", args);\n\t}\n\tstatic subtract(left, right) {\n\t\treturn new MongoAggOperator(\"$subtract\", [left, right]);\n\t}\n\tstatic multiply(...args) {\n\t\treturn new MongoAggOperator(\"$multiply\", args);\n\t}\n\tstatic divide(dividend, divisor) {\n\t\treturn new MongoAggOperator(\"$divide\", [dividend, divisor]);\n\t}\n\tstatic concat(...args) {\n\t\treturn new MongoAggOperator(\"$concat\", args);\n\t}\n\tstatic toLower(expr) {\n\t\treturn new MongoAggOperator(\"$toLower\", expr);\n\t}\n\tstatic toUpper(expr) {\n\t\treturn new MongoAggOperator(\"$toUpper\", expr);\n\t}\n\tstatic size(expr) {\n\t\treturn new MongoAggOperator(\"$size\", expr);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.operator(this);\n\t}\n\trewrite(rewriter) {\n\t\tconst { args } = this;\n\t\tlet rewrittenArgs;\n\t\tif (isExprArray(args)) rewrittenArgs = args.map((a) => a.rewrite(rewriter));\n\t\telse if (isRecordArgs(args)) rewrittenArgs = rewriteRecordArgs(args, rewriter);\n\t\telse rewrittenArgs = args.rewrite(rewriter);\n\t\tconst rebuilt = new MongoAggOperator(this.op, rewrittenArgs);\n\t\treturn rewriter.operator ? rewriter.operator(rebuilt) : rebuilt;\n\t}\n};\nvar MongoAggAccumulator = class MongoAggAccumulator extends MongoAggExprNode {\n\tkind = \"accumulator\";\n\top;\n\targ;\n\tconstructor(op, arg) {\n\t\tsuper();\n\t\tthis.op = op;\n\t\tif (arg !== null && isRecordArgs(arg)) this.arg = freezeRecordArgs(arg);\n\t\telse this.arg = arg;\n\t\tthis.freeze();\n\t}\n\tstatic of(op, arg) {\n\t\treturn new MongoAggAccumulator(op, arg);\n\t}\n\tstatic sum(expr) {\n\t\treturn new MongoAggAccumulator(\"$sum\", expr);\n\t}\n\tstatic avg(expr) {\n\t\treturn new MongoAggAccumulator(\"$avg\", expr);\n\t}\n\tstatic min(expr) {\n\t\treturn new MongoAggAccumulator(\"$min\", expr);\n\t}\n\tstatic max(expr) {\n\t\treturn new MongoAggAccumulator(\"$max\", expr);\n\t}\n\tstatic first(expr) {\n\t\treturn new MongoAggAccumulator(\"$first\", expr);\n\t}\n\tstatic last(expr) {\n\t\treturn new MongoAggAccumulator(\"$last\", expr);\n\t}\n\tstatic push(expr) {\n\t\treturn new MongoAggAccumulator(\"$push\", expr);\n\t}\n\tstatic addToSet(expr) {\n\t\treturn new MongoAggAccumulator(\"$addToSet\", expr);\n\t}\n\tstatic count() {\n\t\treturn new MongoAggAccumulator(\"$count\", null);\n\t}\n\tstatic stdDevPop(expr) {\n\t\treturn new MongoAggAccumulator(\"$stdDevPop\", expr);\n\t}\n\tstatic stdDevSamp(expr) {\n\t\treturn new MongoAggAccumulator(\"$stdDevSamp\", expr);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.accumulator(this);\n\t}\n\trewrite(rewriter) {\n\t\tlet rewrittenArg;\n\t\tif (this.arg === null) rewrittenArg = null;\n\t\telse if (isRecordArgs(this.arg)) rewrittenArg = rewriteRecordArgs(this.arg, rewriter);\n\t\telse rewrittenArg = this.arg.rewrite(rewriter);\n\t\tconst rebuilt = new MongoAggAccumulator(this.op, rewrittenArg);\n\t\treturn rewriter.accumulator ? rewriter.accumulator(rebuilt) : rebuilt;\n\t}\n};\nvar MongoAggCond = class MongoAggCond extends MongoAggExprNode {\n\tkind = \"cond\";\n\tcondition;\n\tthen_;\n\telse_;\n\tconstructor(condition, then_, else_) {\n\t\tsuper();\n\t\tthis.condition = condition;\n\t\tthis.then_ = then_;\n\t\tthis.else_ = else_;\n\t\tthis.freeze();\n\t}\n\tstatic of(condition, then_, else_) {\n\t\treturn new MongoAggCond(condition, then_, else_);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.cond(this);\n\t}\n\trewrite(rewriter) {\n\t\tconst rebuilt = new MongoAggCond(this.condition.rewrite(rewriter), this.then_.rewrite(rewriter), this.else_.rewrite(rewriter));\n\t\treturn rewriter.cond ? rewriter.cond(rebuilt) : rebuilt;\n\t}\n};\nvar MongoAggSwitch = class MongoAggSwitch extends MongoAggExprNode {\n\tkind = \"switch\";\n\tbranches;\n\tdefault_;\n\tconstructor(branches, default_) {\n\t\tsuper();\n\t\tthis.branches = Object.freeze(branches.map((b) => Object.freeze({\n\t\t\tcase_: b.case_,\n\t\t\tthen_: b.then_\n\t\t})));\n\t\tthis.default_ = default_;\n\t\tthis.freeze();\n\t}\n\tstatic of(branches, default_) {\n\t\treturn new MongoAggSwitch(branches, default_);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.switch_(this);\n\t}\n\trewrite(rewriter) {\n\t\tconst rebuilt = new MongoAggSwitch(this.branches.map((b) => ({\n\t\t\tcase_: b.case_.rewrite(rewriter),\n\t\t\tthen_: b.then_.rewrite(rewriter)\n\t\t})), this.default_.rewrite(rewriter));\n\t\treturn rewriter.switch_ ? rewriter.switch_(rebuilt) : rebuilt;\n\t}\n};\nvar MongoAggArrayFilter = class MongoAggArrayFilter extends MongoAggExprNode {\n\tkind = \"filter\";\n\tinput;\n\tcond;\n\tas;\n\tconstructor(input, cond, as) {\n\t\tsuper();\n\t\tthis.input = input;\n\t\tthis.cond = cond;\n\t\tthis.as = as;\n\t\tthis.freeze();\n\t}\n\tstatic of(input, cond, as) {\n\t\treturn new MongoAggArrayFilter(input, cond, as);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.filter(this);\n\t}\n\trewrite(rewriter) {\n\t\tconst rebuilt = new MongoAggArrayFilter(this.input.rewrite(rewriter), this.cond.rewrite(rewriter), this.as);\n\t\treturn rewriter.filter ? rewriter.filter(rebuilt) : rebuilt;\n\t}\n};\nvar MongoAggMap = class MongoAggMap extends MongoAggExprNode {\n\tkind = \"map\";\n\tinput;\n\tin_;\n\tas;\n\tconstructor(input, in_, as) {\n\t\tsuper();\n\t\tthis.input = input;\n\t\tthis.in_ = in_;\n\t\tthis.as = as;\n\t\tthis.freeze();\n\t}\n\tstatic of(input, in_, as) {\n\t\treturn new MongoAggMap(input, in_, as);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.map(this);\n\t}\n\trewrite(rewriter) {\n\t\tconst rebuilt = new MongoAggMap(this.input.rewrite(rewriter), this.in_.rewrite(rewriter), this.as);\n\t\treturn rewriter.map ? rewriter.map(rebuilt) : rebuilt;\n\t}\n};\nvar MongoAggReduce = class MongoAggReduce extends MongoAggExprNode {\n\tkind = \"reduce\";\n\tinput;\n\tinitialValue;\n\tin_;\n\tconstructor(input, initialValue, in_) {\n\t\tsuper();\n\t\tthis.input = input;\n\t\tthis.initialValue = initialValue;\n\t\tthis.in_ = in_;\n\t\tthis.freeze();\n\t}\n\tstatic of(input, initialValue, in_) {\n\t\treturn new MongoAggReduce(input, initialValue, in_);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.reduce(this);\n\t}\n\trewrite(rewriter) {\n\t\tconst rebuilt = new MongoAggReduce(this.input.rewrite(rewriter), this.initialValue.rewrite(rewriter), this.in_.rewrite(rewriter));\n\t\treturn rewriter.reduce ? rewriter.reduce(rebuilt) : rebuilt;\n\t}\n};\nvar MongoAggLet = class MongoAggLet extends MongoAggExprNode {\n\tkind = \"let\";\n\tvars;\n\tin_;\n\tconstructor(vars, in_) {\n\t\tsuper();\n\t\tthis.vars = Object.freeze({ ...vars });\n\t\tthis.in_ = in_;\n\t\tthis.freeze();\n\t}\n\tstatic of(vars, in_) {\n\t\treturn new MongoAggLet(vars, in_);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.let_(this);\n\t}\n\trewrite(rewriter) {\n\t\tconst rewrittenVars = {};\n\t\tfor (const [key, val] of Object.entries(this.vars)) rewrittenVars[key] = val.rewrite(rewriter);\n\t\tconst rebuilt = new MongoAggLet(rewrittenVars, this.in_.rewrite(rewriter));\n\t\treturn rewriter.let_ ? rewriter.let_(rebuilt) : rebuilt;\n\t}\n};\nvar MongoAggMergeObjects = class MongoAggMergeObjects extends MongoAggExprNode {\n\tkind = \"mergeObjects\";\n\texprs;\n\tconstructor(exprs) {\n\t\tsuper();\n\t\tthis.exprs = Object.freeze([...exprs]);\n\t\tthis.freeze();\n\t}\n\tstatic of(exprs) {\n\t\treturn new MongoAggMergeObjects(exprs);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.mergeObjects(this);\n\t}\n\trewrite(rewriter) {\n\t\tconst rebuilt = new MongoAggMergeObjects(this.exprs.map((e) => e.rewrite(rewriter)));\n\t\treturn rewriter.mergeObjects ? rewriter.mergeObjects(rebuilt) : rebuilt;\n\t}\n};\n//#endregion\n//#region src/commands.ts\nvar InsertOneCommand = class extends MongoAstNode {\n\tkind = \"insertOne\";\n\tcollection;\n\tdocument;\n\tconstructor(collection, document) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.document = document;\n\t\tthis.freeze();\n\t}\n};\nvar UpdateOneCommand = class extends MongoAstNode {\n\tkind = \"updateOne\";\n\tcollection;\n\tfilter;\n\tupdate;\n\t/**\n\t* When true, the wire command becomes an upsert: if no document matches\n\t* `filter`, a new document is inserted, derived from the filter's\n\t* equality fields plus the update spec. Defaults to false.\n\t*/\n\tupsert;\n\tconstructor(collection, filter, update, upsert = false) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.filter = filter;\n\t\tthis.update = update;\n\t\tthis.upsert = upsert;\n\t\tthis.freeze();\n\t}\n};\nvar DeleteOneCommand = class extends MongoAstNode {\n\tkind = \"deleteOne\";\n\tcollection;\n\tfilter;\n\tconstructor(collection, filter) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.filter = filter;\n\t\tthis.freeze();\n\t}\n};\nvar InsertManyCommand = class extends MongoAstNode {\n\tkind = \"insertMany\";\n\tcollection;\n\tdocuments;\n\tconstructor(collection, documents) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.documents = documents;\n\t\tthis.freeze();\n\t}\n};\nvar UpdateManyCommand = class extends MongoAstNode {\n\tkind = \"updateMany\";\n\tcollection;\n\tfilter;\n\tupdate;\n\t/**\n\t* Upsert flag — see `UpdateOneCommand.upsert`. For `updateMany`, Mongo\n\t* inserts at most one document when no match exists (driver-side\n\t* constraint).\n\t*/\n\tupsert;\n\tconstructor(collection, filter, update, upsert = false) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.filter = filter;\n\t\tthis.update = update;\n\t\tthis.upsert = upsert;\n\t\tthis.freeze();\n\t}\n};\nvar DeleteManyCommand = class extends MongoAstNode {\n\tkind = \"deleteMany\";\n\tcollection;\n\tfilter;\n\tconstructor(collection, filter) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.filter = filter;\n\t\tthis.freeze();\n\t}\n};\nvar FindOneAndUpdateCommand = class extends MongoAstNode {\n\tkind = \"findOneAndUpdate\";\n\tcollection;\n\tfilter;\n\tupdate;\n\tupsert;\n\tsort;\n\treturnDocument;\n\tconstructor(collection, filter, update, upsert = false, sort, returnDocument = \"after\") {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.filter = filter;\n\t\tthis.update = update;\n\t\tthis.upsert = upsert;\n\t\tthis.sort = sort;\n\t\tthis.returnDocument = returnDocument;\n\t\tthis.freeze();\n\t}\n};\nvar FindOneAndDeleteCommand = class extends MongoAstNode {\n\tkind = \"findOneAndDelete\";\n\tcollection;\n\tfilter;\n\tsort;\n\tconstructor(collection, filter, sort) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.filter = filter;\n\t\tthis.sort = sort;\n\t\tthis.freeze();\n\t}\n};\nvar AggregateCommand = class extends MongoAstNode {\n\tkind = \"aggregate\";\n\tcollection;\n\tpipeline;\n\tconstructor(collection, pipeline) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.pipeline = pipeline;\n\t\tthis.freeze();\n\t}\n};\n//#endregion\n//#region src/raw-commands.ts\nvar RawAggregateCommand = class extends MongoAstNode {\n\tkind = \"rawAggregate\";\n\tcollection;\n\tpipeline;\n\tconstructor(collection, pipeline) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.pipeline = pipeline;\n\t\tthis.freeze();\n\t}\n};\nvar RawInsertOneCommand = class extends MongoAstNode {\n\tkind = \"rawInsertOne\";\n\tcollection;\n\tdocument;\n\tconstructor(collection, document) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.document = document;\n\t\tthis.freeze();\n\t}\n};\nvar RawInsertManyCommand = class extends MongoAstNode {\n\tkind = \"rawInsertMany\";\n\tcollection;\n\tdocuments;\n\tconstructor(collection, documents) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.documents = documents;\n\t\tthis.freeze();\n\t}\n};\nvar RawUpdateOneCommand = class extends MongoAstNode {\n\tkind = \"rawUpdateOne\";\n\tcollection;\n\tfilter;\n\tupdate;\n\tconstructor(collection, filter, update) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.filter = filter;\n\t\tthis.update = update;\n\t\tthis.freeze();\n\t}\n};\nvar RawUpdateManyCommand = class extends MongoAstNode {\n\tkind = \"rawUpdateMany\";\n\tcollection;\n\tfilter;\n\tupdate;\n\tconstructor(collection, filter, update) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.filter = filter;\n\t\tthis.update = update;\n\t\tthis.freeze();\n\t}\n};\nvar RawDeleteOneCommand = class extends MongoAstNode {\n\tkind = \"rawDeleteOne\";\n\tcollection;\n\tfilter;\n\tconstructor(collection, filter) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.filter = filter;\n\t\tthis.freeze();\n\t}\n};\nvar RawDeleteManyCommand = class extends MongoAstNode {\n\tkind = \"rawDeleteMany\";\n\tcollection;\n\tfilter;\n\tconstructor(collection, filter) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.filter = filter;\n\t\tthis.freeze();\n\t}\n};\nvar RawFindOneAndUpdateCommand = class extends MongoAstNode {\n\tkind = \"rawFindOneAndUpdate\";\n\tcollection;\n\tfilter;\n\tupdate;\n\tupsert;\n\tsort;\n\t/**\n\t* When `undefined`, the option is omitted from the wire command and the\n\t* MongoDB driver applies its documented default (return the pre-image\n\t* document). Set explicitly to `'before'` or `'after'` to override.\n\t*/\n\treturnDocument;\n\tconstructor(collection, filter, update, upsert = false, sort, returnDocument) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.filter = filter;\n\t\tthis.update = update;\n\t\tthis.upsert = upsert;\n\t\tthis.sort = sort;\n\t\tthis.returnDocument = returnDocument;\n\t\tthis.freeze();\n\t}\n};\nvar RawFindOneAndDeleteCommand = class extends MongoAstNode {\n\tkind = \"rawFindOneAndDelete\";\n\tcollection;\n\tfilter;\n\tsort;\n\tconstructor(collection, filter, sort) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.filter = filter;\n\t\tthis.sort = sort;\n\t\tthis.freeze();\n\t}\n};\n//#endregion\n//#region src/result-shape.ts\nfunction freezeMongoFieldShape(shape) {\n\tswitch (shape.kind) {\n\t\tcase \"unknown\": return Object.freeze({ kind: \"unknown\" });\n\t\tcase \"leaf\": return Object.freeze({\n\t\t\tkind: \"leaf\",\n\t\t\tcodecId: shape.codecId,\n\t\t\tnullable: shape.nullable\n\t\t});\n\t\tcase \"document\": {\n\t\t\tconst fields = {};\n\t\t\tfor (const [k, v] of Object.entries(shape.fields)) fields[k] = freezeMongoFieldShape(v);\n\t\t\treturn Object.freeze({\n\t\t\t\tkind: \"document\",\n\t\t\t\tnullable: shape.nullable,\n\t\t\t\tfields: Object.freeze(fields)\n\t\t\t});\n\t\t}\n\t\tcase \"array\": return Object.freeze({\n\t\t\tkind: \"array\",\n\t\t\tnullable: shape.nullable,\n\t\t\telement: freezeMongoFieldShape(shape.element)\n\t\t});\n\t\tdefault: return shape;\n\t}\n}\nfunction freezeMongoResultShape(shape) {\n\tif (shape.kind === \"unknown\") return Object.freeze({ kind: \"unknown\" });\n\tconst fields = {};\n\tfor (const [k, v] of Object.entries(shape.fields)) fields[k] = freezeMongoFieldShape(v);\n\treturn Object.freeze({\n\t\tkind: \"document\",\n\t\tfields: Object.freeze(fields)\n\t});\n}\n//#endregion\n//#region src/stages.ts\nfunction isAggExpr(value) {\n\treturn typeof value === \"object\" && value !== null && \"kind\" in value;\n}\nfunction isAggExprNode(value) {\n\treturn \"accept\" in value && typeof value.accept === \"function\";\n}\nfunction rewriteGroupId(groupId, rewriter) {\n\tif (groupId === null) return null;\n\tif (isAggExprNode(groupId)) return groupId.rewrite(rewriter);\n\tconst result = {};\n\tfor (const [key, val] of Object.entries(groupId)) result[key] = val.rewrite(rewriter);\n\treturn result;\n}\nfunction rewriteExprRecord(fields, rewriter) {\n\tconst result = {};\n\tfor (const [key, val] of Object.entries(fields)) result[key] = val.rewrite(rewriter);\n\treturn result;\n}\nfunction rewriteAccumulatorRecord(accumulators, rewriter) {\n\tconst result = {};\n\tfor (const [key, acc] of Object.entries(accumulators)) result[key] = acc.rewrite(rewriter);\n\treturn result;\n}\nvar MongoStageNode = class extends MongoAstNode {};\nvar MongoMatchStage = class MongoMatchStage extends MongoStageNode {\n\tkind = \"match\";\n\tfilter;\n\tconstructor(filter) {\n\t\tsuper();\n\t\tthis.filter = filter;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.match(this);\n\t}\n\trewrite(context) {\n\t\treturn new MongoMatchStage(this.filter.rewrite(context.filter ?? {}));\n\t}\n};\nvar MongoProjectStage = class MongoProjectStage extends MongoStageNode {\n\tkind = \"project\";\n\tprojection;\n\tconstructor(projection) {\n\t\tsuper();\n\t\tthis.projection = Object.freeze({ ...projection });\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.project(this);\n\t}\n\trewrite(context) {\n\t\tconst rewriter = context.aggExpr;\n\t\tif (!rewriter) return this;\n\t\tlet hasExpr = false;\n\t\tfor (const val of Object.values(this.projection)) if (isAggExpr(val)) {\n\t\t\thasExpr = true;\n\t\t\tbreak;\n\t\t}\n\t\tif (!hasExpr) return this;\n\t\tconst newProjection = {};\n\t\tfor (const [key, val] of Object.entries(this.projection)) newProjection[key] = isAggExpr(val) ? val.rewrite(rewriter) : val;\n\t\treturn new MongoProjectStage(newProjection);\n\t}\n};\nvar MongoSortStage = class extends MongoStageNode {\n\tkind = \"sort\";\n\tsort;\n\tconstructor(sort) {\n\t\tsuper();\n\t\tthis.sort = Object.freeze({ ...sort });\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.sort(this);\n\t}\n\trewrite(_context) {\n\t\treturn this;\n\t}\n};\nvar MongoLimitStage = class extends MongoStageNode {\n\tkind = \"limit\";\n\tlimit;\n\tconstructor(limit) {\n\t\tsuper();\n\t\tif (!Number.isInteger(limit) || limit < 0) throw ormError(\"ORM.ARGUMENT_INVALID\", \"limit must be a non-negative integer\");\n\t\tthis.limit = limit;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.limit(this);\n\t}\n\trewrite(_context) {\n\t\treturn this;\n\t}\n};\nvar MongoSkipStage = class extends MongoStageNode {\n\tkind = \"skip\";\n\tskip;\n\tconstructor(skip) {\n\t\tsuper();\n\t\tif (!Number.isInteger(skip) || skip < 0) throw ormError(\"ORM.ARGUMENT_INVALID\", \"skip must be a non-negative integer\");\n\t\tthis.skip = skip;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.skip(this);\n\t}\n\trewrite(_context) {\n\t\treturn this;\n\t}\n};\nvar MongoLookupStage = class MongoLookupStage extends MongoStageNode {\n\tkind = \"lookup\";\n\tfrom;\n\tlocalField;\n\tforeignField;\n\tas;\n\tpipeline;\n\tlet_;\n\tconstructor(options) {\n\t\tsuper();\n\t\tconst hasLocalField = options.localField !== void 0;\n\t\tconst hasForeignField = options.foreignField !== void 0;\n\t\tconst hasPipeline = !!options.pipeline;\n\t\tif (hasLocalField !== hasForeignField) throw ormError(\"ORM.ARGUMENT_INVALID\", \"MongoLookupStage requires both localField and foreignField together\");\n\t\tif (!hasLocalField && !hasPipeline) throw ormError(\"ORM.ARGUMENT_INVALID\", \"MongoLookupStage requires either equality fields (localField/foreignField) or a pipeline\");\n\t\tif (options.let_ && !hasPipeline) throw ormError(\"ORM.ARGUMENT_INVALID\", \"MongoLookupStage let_ requires a pipeline\");\n\t\tthis.from = options.from;\n\t\tthis.localField = options.localField;\n\t\tthis.foreignField = options.foreignField;\n\t\tthis.as = options.as;\n\t\tthis.pipeline = options.pipeline ? Object.freeze([...options.pipeline]) : void 0;\n\t\tthis.let_ = options.let_ ? Object.freeze({ ...options.let_ }) : void 0;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.lookup(this);\n\t}\n\trewrite(context) {\n\t\tif (!this.pipeline && !this.let_) return this;\n\t\tconst rewrittenLet = this.let_ && context.aggExpr ? rewriteExprRecord(this.let_, context.aggExpr) : this.let_;\n\t\tconst options = {\n\t\t\tfrom: this.from,\n\t\t\tas: this.as\n\t\t};\n\t\tif (this.localField !== void 0) options.localField = this.localField;\n\t\tif (this.foreignField !== void 0) options.foreignField = this.foreignField;\n\t\tif (this.pipeline) options.pipeline = this.pipeline.map((stage) => stage.rewrite(context));\n\t\tif (rewrittenLet) options.let_ = { ...rewrittenLet };\n\t\treturn new MongoLookupStage(options);\n\t}\n};\nvar MongoUnwindStage = class extends MongoStageNode {\n\tkind = \"unwind\";\n\tpath;\n\tpreserveNullAndEmptyArrays;\n\tincludeArrayIndex;\n\tconstructor(path, preserveNullAndEmptyArrays, includeArrayIndex) {\n\t\tsuper();\n\t\tthis.path = path;\n\t\tthis.preserveNullAndEmptyArrays = preserveNullAndEmptyArrays;\n\t\tthis.includeArrayIndex = includeArrayIndex;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.unwind(this);\n\t}\n\trewrite(_context) {\n\t\treturn this;\n\t}\n};\nvar MongoGroupStage = class MongoGroupStage extends MongoStageNode {\n\tkind = \"group\";\n\tgroupId;\n\taccumulators;\n\tconstructor(groupId, accumulators) {\n\t\tsuper();\n\t\tthis.groupId = groupId;\n\t\tthis.accumulators = Object.freeze({ ...accumulators });\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.group(this);\n\t}\n\trewrite(context) {\n\t\tconst rewriter = context.aggExpr;\n\t\tif (!rewriter) return this;\n\t\tconst newAccumulators = {};\n\t\tfor (const [key, acc] of Object.entries(this.accumulators)) newAccumulators[key] = acc.rewrite(rewriter);\n\t\treturn new MongoGroupStage(rewriteGroupId(this.groupId, rewriter), newAccumulators);\n\t}\n};\nvar MongoAddFieldsStage = class MongoAddFieldsStage extends MongoStageNode {\n\tkind = \"addFields\";\n\tfields;\n\tconstructor(fields) {\n\t\tsuper();\n\t\tthis.fields = Object.freeze({ ...fields });\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.addFields(this);\n\t}\n\trewrite(context) {\n\t\tconst rewriter = context.aggExpr;\n\t\tif (!rewriter) return this;\n\t\treturn new MongoAddFieldsStage(rewriteExprRecord(this.fields, rewriter));\n\t}\n};\nvar MongoReplaceRootStage = class MongoReplaceRootStage extends MongoStageNode {\n\tkind = \"replaceRoot\";\n\tnewRoot;\n\tconstructor(newRoot) {\n\t\tsuper();\n\t\tthis.newRoot = newRoot;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.replaceRoot(this);\n\t}\n\trewrite(context) {\n\t\tconst rewriter = context.aggExpr;\n\t\tif (!rewriter) return this;\n\t\treturn new MongoReplaceRootStage(this.newRoot.rewrite(rewriter));\n\t}\n};\nvar MongoCountStage = class extends MongoStageNode {\n\tkind = \"count\";\n\tfield;\n\tconstructor(field) {\n\t\tsuper();\n\t\tthis.field = field;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.count(this);\n\t}\n\trewrite(_context) {\n\t\treturn this;\n\t}\n};\nvar MongoSortByCountStage = class MongoSortByCountStage extends MongoStageNode {\n\tkind = \"sortByCount\";\n\texpr;\n\tconstructor(expr) {\n\t\tsuper();\n\t\tthis.expr = expr;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.sortByCount(this);\n\t}\n\trewrite(context) {\n\t\tconst rewriter = context.aggExpr;\n\t\tif (!rewriter) return this;\n\t\treturn new MongoSortByCountStage(this.expr.rewrite(rewriter));\n\t}\n};\nvar MongoSampleStage = class extends MongoStageNode {\n\tkind = \"sample\";\n\tsize;\n\tconstructor(size) {\n\t\tsuper();\n\t\tif (!Number.isInteger(size) || size < 0) throw ormError(\"ORM.ARGUMENT_INVALID\", \"size must be a non-negative integer\");\n\t\tthis.size = size;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.sample(this);\n\t}\n\trewrite(_context) {\n\t\treturn this;\n\t}\n};\nvar MongoRedactStage = class MongoRedactStage extends MongoStageNode {\n\tkind = \"redact\";\n\texpr;\n\tconstructor(expr) {\n\t\tsuper();\n\t\tthis.expr = expr;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.redact(this);\n\t}\n\trewrite(context) {\n\t\tconst rewriter = context.aggExpr;\n\t\tif (!rewriter) return this;\n\t\treturn new MongoRedactStage(this.expr.rewrite(rewriter));\n\t}\n};\nvar MongoOutStage = class extends MongoStageNode {\n\tkind = \"out\";\n\tcollection;\n\tdb;\n\tconstructor(collection, db) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.db = db;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.out(this);\n\t}\n\trewrite(_context) {\n\t\treturn this;\n\t}\n};\nvar MongoUnionWithStage = class MongoUnionWithStage extends MongoStageNode {\n\tkind = \"unionWith\";\n\tcollection;\n\tpipeline;\n\tconstructor(collection, pipeline) {\n\t\tsuper();\n\t\tthis.collection = collection;\n\t\tthis.pipeline = pipeline ? Object.freeze([...pipeline]) : void 0;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.unionWith(this);\n\t}\n\trewrite(context) {\n\t\tif (!this.pipeline) return this;\n\t\treturn new MongoUnionWithStage(this.collection, this.pipeline.map((stage) => stage.rewrite(context)));\n\t}\n};\nvar MongoBucketStage = class MongoBucketStage extends MongoStageNode {\n\tkind = \"bucket\";\n\tgroupBy;\n\tboundaries;\n\tdefault_;\n\toutput;\n\tconstructor(options) {\n\t\tsuper();\n\t\tif (options.boundaries.length < 2) throw ormError(\"ORM.ARGUMENT_INVALID\", \"boundaries must contain at least 2 values\");\n\t\tthis.groupBy = options.groupBy;\n\t\tthis.boundaries = Object.freeze([...options.boundaries]);\n\t\tthis.default_ = options.default_;\n\t\tthis.output = options.output ? Object.freeze({ ...options.output }) : void 0;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.bucket(this);\n\t}\n\trewrite(context) {\n\t\tconst rewriter = context.aggExpr;\n\t\tif (!rewriter) return this;\n\t\tconst opts = {\n\t\t\tgroupBy: this.groupBy.rewrite(rewriter),\n\t\t\tboundaries: this.boundaries\n\t\t};\n\t\tif (this.default_ !== void 0) opts.default_ = this.default_;\n\t\tif (this.output) opts.output = rewriteAccumulatorRecord(this.output, rewriter);\n\t\treturn new MongoBucketStage(opts);\n\t}\n};\nvar MongoBucketAutoStage = class MongoBucketAutoStage extends MongoStageNode {\n\tkind = \"bucketAuto\";\n\tgroupBy;\n\tbuckets;\n\toutput;\n\tgranularity;\n\tconstructor(options) {\n\t\tsuper();\n\t\tif (!Number.isInteger(options.buckets) || options.buckets < 1) throw ormError(\"ORM.ARGUMENT_INVALID\", \"buckets must be a positive integer\");\n\t\tthis.groupBy = options.groupBy;\n\t\tthis.buckets = options.buckets;\n\t\tthis.output = options.output ? Object.freeze({ ...options.output }) : void 0;\n\t\tthis.granularity = options.granularity;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.bucketAuto(this);\n\t}\n\trewrite(context) {\n\t\tconst rewriter = context.aggExpr;\n\t\tif (!rewriter) return this;\n\t\tconst opts = {\n\t\t\tgroupBy: this.groupBy.rewrite(rewriter),\n\t\t\tbuckets: this.buckets\n\t\t};\n\t\tif (this.output) opts.output = rewriteAccumulatorRecord(this.output, rewriter);\n\t\tif (this.granularity !== void 0) opts.granularity = this.granularity;\n\t\treturn new MongoBucketAutoStage(opts);\n\t}\n};\nvar MongoGeoNearStage = class MongoGeoNearStage extends MongoStageNode {\n\tkind = \"geoNear\";\n\tnear;\n\tdistanceField;\n\tspherical;\n\tmaxDistance;\n\tminDistance;\n\tquery;\n\tkey;\n\tdistanceMultiplier;\n\tincludeLocs;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.near = options.near;\n\t\tthis.distanceField = options.distanceField;\n\t\tthis.spherical = options.spherical;\n\t\tthis.maxDistance = options.maxDistance;\n\t\tthis.minDistance = options.minDistance;\n\t\tthis.query = options.query;\n\t\tthis.key = options.key;\n\t\tthis.distanceMultiplier = options.distanceMultiplier;\n\t\tthis.includeLocs = options.includeLocs;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.geoNear(this);\n\t}\n\trewrite(context) {\n\t\tif (!this.query || !context.filter) return this;\n\t\tconst opts = {\n\t\t\tnear: this.near,\n\t\t\tdistanceField: this.distanceField\n\t\t};\n\t\tif (this.spherical !== void 0) opts.spherical = this.spherical;\n\t\tif (this.maxDistance !== void 0) opts.maxDistance = this.maxDistance;\n\t\tif (this.minDistance !== void 0) opts.minDistance = this.minDistance;\n\t\topts.query = this.query.rewrite(context.filter);\n\t\tif (this.key !== void 0) opts.key = this.key;\n\t\tif (this.distanceMultiplier !== void 0) opts.distanceMultiplier = this.distanceMultiplier;\n\t\tif (this.includeLocs !== void 0) opts.includeLocs = this.includeLocs;\n\t\treturn new MongoGeoNearStage(opts);\n\t}\n};\nvar MongoFacetStage = class MongoFacetStage extends MongoStageNode {\n\tkind = \"facet\";\n\tfacets;\n\tconstructor(facets) {\n\t\tsuper();\n\t\tconst frozen = {};\n\t\tfor (const [key, pipeline] of Object.entries(facets)) frozen[key] = Object.freeze([...pipeline]);\n\t\tthis.facets = Object.freeze(frozen);\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.facet(this);\n\t}\n\trewrite(context) {\n\t\tconst newFacets = {};\n\t\tfor (const [key, pipeline] of Object.entries(this.facets)) newFacets[key] = pipeline.map((stage) => stage.rewrite(context));\n\t\treturn new MongoFacetStage(newFacets);\n\t}\n};\nvar MongoGraphLookupStage = class MongoGraphLookupStage extends MongoStageNode {\n\tkind = \"graphLookup\";\n\tfrom;\n\tstartWith;\n\tconnectFromField;\n\tconnectToField;\n\tas;\n\tmaxDepth;\n\tdepthField;\n\trestrictSearchWithMatch;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.from = options.from;\n\t\tthis.startWith = options.startWith;\n\t\tthis.connectFromField = options.connectFromField;\n\t\tthis.connectToField = options.connectToField;\n\t\tthis.as = options.as;\n\t\tthis.maxDepth = options.maxDepth;\n\t\tthis.depthField = options.depthField;\n\t\tthis.restrictSearchWithMatch = options.restrictSearchWithMatch;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.graphLookup(this);\n\t}\n\trewrite(context) {\n\t\tconst rewrittenStartWith = context.aggExpr ? this.startWith.rewrite(context.aggExpr) : this.startWith;\n\t\tconst rewrittenMatch = this.restrictSearchWithMatch && context.filter ? this.restrictSearchWithMatch.rewrite(context.filter) : this.restrictSearchWithMatch;\n\t\tif (rewrittenStartWith === this.startWith && rewrittenMatch === this.restrictSearchWithMatch) return this;\n\t\tconst opts = {\n\t\t\tfrom: this.from,\n\t\t\tstartWith: rewrittenStartWith,\n\t\t\tconnectFromField: this.connectFromField,\n\t\t\tconnectToField: this.connectToField,\n\t\t\tas: this.as\n\t\t};\n\t\tif (this.maxDepth !== void 0) opts.maxDepth = this.maxDepth;\n\t\tif (this.depthField !== void 0) opts.depthField = this.depthField;\n\t\tif (rewrittenMatch) opts.restrictSearchWithMatch = rewrittenMatch;\n\t\treturn new MongoGraphLookupStage(opts);\n\t}\n};\nvar MongoMergeStage = class MongoMergeStage extends MongoStageNode {\n\tkind = \"merge\";\n\tinto;\n\ton;\n\twhenMatched;\n\twhenNotMatched;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.into = typeof options.into === \"string\" ? options.into : Object.freeze({ ...options.into });\n\t\tthis.on = options.on === void 0 ? void 0 : typeof options.on === \"string\" ? options.on : Object.freeze([...options.on]);\n\t\tthis.whenMatched = options.whenMatched === void 0 ? void 0 : typeof options.whenMatched === \"string\" ? options.whenMatched : Object.freeze([...options.whenMatched]);\n\t\tthis.whenNotMatched = options.whenNotMatched;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.merge(this);\n\t}\n\trewrite(context) {\n\t\tif (!Array.isArray(this.whenMatched)) return this;\n\t\tconst opts = { into: this.into };\n\t\tif (this.on !== void 0) opts.on = this.on;\n\t\topts.whenMatched = this.whenMatched.map((stage) => stage.rewrite(context));\n\t\tif (this.whenNotMatched !== void 0) opts.whenNotMatched = this.whenNotMatched;\n\t\treturn new MongoMergeStage(opts);\n\t}\n};\nvar MongoSetWindowFieldsStage = class MongoSetWindowFieldsStage extends MongoStageNode {\n\tkind = \"setWindowFields\";\n\tpartitionBy;\n\tsortBy;\n\toutput;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.partitionBy = options.partitionBy;\n\t\tthis.sortBy = options.sortBy ? Object.freeze({ ...options.sortBy }) : void 0;\n\t\tthis.output = Object.freeze({ ...options.output });\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.setWindowFields(this);\n\t}\n\trewrite(context) {\n\t\tconst rewriter = context.aggExpr;\n\t\tif (!rewriter) return this;\n\t\tconst newOutput = {};\n\t\tfor (const [key, wf] of Object.entries(this.output)) newOutput[key] = {\n\t\t\t...wf,\n\t\t\toperator: wf.operator.rewrite(rewriter)\n\t\t};\n\t\tconst opts = { output: newOutput };\n\t\tif (this.partitionBy) opts.partitionBy = this.partitionBy.rewrite(rewriter);\n\t\tif (this.sortBy) opts.sortBy = { ...this.sortBy };\n\t\treturn new MongoSetWindowFieldsStage(opts);\n\t}\n};\nvar MongoDensifyStage = class extends MongoStageNode {\n\tkind = \"densify\";\n\tfield;\n\tpartitionByFields;\n\trange;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.field = options.field;\n\t\tthis.partitionByFields = options.partitionByFields ? Object.freeze([...options.partitionByFields]) : void 0;\n\t\tthis.range = Object.freeze({ ...options.range });\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.densify(this);\n\t}\n\trewrite(_context) {\n\t\treturn this;\n\t}\n};\nvar MongoFillStage = class MongoFillStage extends MongoStageNode {\n\tkind = \"fill\";\n\tpartitionBy;\n\tpartitionByFields;\n\tsortBy;\n\toutput;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.partitionBy = options.partitionBy;\n\t\tthis.partitionByFields = options.partitionByFields ? Object.freeze([...options.partitionByFields]) : void 0;\n\t\tthis.sortBy = options.sortBy ? Object.freeze({ ...options.sortBy }) : void 0;\n\t\tthis.output = Object.freeze({ ...options.output });\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.fill(this);\n\t}\n\trewrite(context) {\n\t\tconst rewriter = context.aggExpr;\n\t\tif (!rewriter) return this;\n\t\tconst newOutput = {};\n\t\tfor (const [key, fo] of Object.entries(this.output)) newOutput[key] = fo.value ? {\n\t\t\t...fo,\n\t\t\tvalue: fo.value.rewrite(rewriter)\n\t\t} : fo;\n\t\tconst opts = { output: newOutput };\n\t\tif (this.partitionBy) opts.partitionBy = this.partitionBy.rewrite(rewriter);\n\t\tif (this.partitionByFields) opts.partitionByFields = [...this.partitionByFields];\n\t\tif (this.sortBy) opts.sortBy = { ...this.sortBy };\n\t\treturn new MongoFillStage(opts);\n\t}\n};\nvar MongoSearchStage = class extends MongoStageNode {\n\tkind = \"search\";\n\tindex;\n\tconfig;\n\tconstructor(config, index) {\n\t\tsuper();\n\t\tthis.config = Object.freeze({ ...config });\n\t\tthis.index = index;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.search(this);\n\t}\n\trewrite(_context) {\n\t\treturn this;\n\t}\n};\nvar MongoSearchMetaStage = class extends MongoStageNode {\n\tkind = \"searchMeta\";\n\tindex;\n\tconfig;\n\tconstructor(config, index) {\n\t\tsuper();\n\t\tthis.config = Object.freeze({ ...config });\n\t\tthis.index = index;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.searchMeta(this);\n\t}\n\trewrite(_context) {\n\t\treturn this;\n\t}\n};\nvar MongoVectorSearchStage = class extends MongoStageNode {\n\tkind = \"vectorSearch\";\n\tindex;\n\tpath;\n\tqueryVector;\n\tnumCandidates;\n\tlimit;\n\tfilter;\n\tconstructor(options) {\n\t\tsuper();\n\t\tif (!Number.isInteger(options.limit) || options.limit < 1) throw ormError(\"ORM.ARGUMENT_INVALID\", \"limit must be a positive integer\");\n\t\tif (!Number.isInteger(options.numCandidates) || options.numCandidates < options.limit) throw ormError(\"ORM.ARGUMENT_INVALID\", \"numCandidates must be an integer >= limit\");\n\t\tthis.index = options.index;\n\t\tthis.path = options.path;\n\t\tthis.queryVector = Object.freeze([...options.queryVector]);\n\t\tthis.numCandidates = options.numCandidates;\n\t\tthis.limit = options.limit;\n\t\tthis.filter = options.filter ? Object.freeze({ ...options.filter }) : void 0;\n\t\tthis.freeze();\n\t}\n\taccept(visitor) {\n\t\treturn visitor.vectorSearch(this);\n\t}\n\trewrite(_context) {\n\t\treturn this;\n\t}\n};\n//#endregion\nexport { AggregateCommand, DeleteManyCommand, DeleteOneCommand, FindOneAndDeleteCommand, FindOneAndUpdateCommand, InsertManyCommand, InsertOneCommand, MongoAddFieldsStage, MongoAggAccumulator, MongoAggArrayFilter, MongoAggCond, MongoAggFieldRef, MongoAggLet, MongoAggLiteral, MongoAggMap, MongoAggMergeObjects, MongoAggOperator, MongoAggReduce, MongoAggSwitch, MongoAndExpr, MongoBucketAutoStage, MongoBucketStage, MongoCountStage, MongoDensifyStage, MongoExistsExpr, MongoExprFilter, MongoFacetStage, MongoFieldFilter, MongoFillStage, MongoGeoNearStage, MongoGraphLookupStage, MongoGroupStage, MongoLimitStage, MongoLookupStage, MongoMatchStage, MongoMergeStage, MongoNotExpr, MongoOrExpr, MongoOutStage, MongoProjectStage, MongoRedactStage, MongoReplaceRootStage, MongoSampleStage, MongoSearchMetaStage, MongoSearchStage, MongoSetWindowFieldsStage, MongoSkipStage, MongoSortByCountStage, MongoSortStage, MongoUnionWithStage, MongoUnwindStage, MongoVectorSearchStage, RawAggregateCommand, RawDeleteManyCommand, RawDeleteOneCommand, RawFindOneAndDeleteCommand, RawFindOneAndUpdateCommand, RawInsertManyCommand, RawInsertOneCommand, RawUpdateManyCommand, RawUpdateOneCommand, UpdateManyCommand, UpdateOneCommand, freezeMongoFieldShape, freezeMongoResultShape, isExprArray, isMongoFilterExpr, isRecordArgs };\n\n//# sourceMappingURL=execution.mjs.map"],"mappings":"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"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { IRNodeBase, freezeNode } from "@prisma/orm-framework/components/ir";
|
|
2
|
+
//#region ../../../2-mongo-family/3-tooling/mongo-schema-ir/dist/exports/index.mjs
|
|
3
|
+
function canonicalize(obj) {
|
|
4
|
+
if (obj === null) return "null";
|
|
5
|
+
if (obj === void 0) return "undefined";
|
|
6
|
+
if (typeof obj !== "object") return JSON.stringify(obj);
|
|
7
|
+
if (Array.isArray(obj)) return `[${obj.map(canonicalize).join(",")}]`;
|
|
8
|
+
const record = obj;
|
|
9
|
+
return `{${Object.keys(record).sort().map((k) => `${JSON.stringify(k)}:${canonicalize(record[k])}`).join(",")}}`;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Key-order-sensitive structural comparison. For key-order-independent
|
|
13
|
+
* comparison (e.g. lookup key construction), use {@link canonicalize}.
|
|
14
|
+
*/
|
|
15
|
+
function deepEqual(a, b) {
|
|
16
|
+
if (a === b) return true;
|
|
17
|
+
if (a === null || b === null) return false;
|
|
18
|
+
if (a === void 0 || b === void 0) return false;
|
|
19
|
+
if (typeof a !== typeof b) return false;
|
|
20
|
+
if (Array.isArray(a)) {
|
|
21
|
+
if (!Array.isArray(b)) return false;
|
|
22
|
+
if (a.length !== b.length) return false;
|
|
23
|
+
for (let i = 0; i < a.length; i++) if (!deepEqual(a[i], b[i])) return false;
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
if (typeof a === "object" && typeof b === "object") {
|
|
27
|
+
const aObj = a;
|
|
28
|
+
const bObj = b;
|
|
29
|
+
const aKeys = Object.keys(aObj);
|
|
30
|
+
const bKeys = Object.keys(bObj);
|
|
31
|
+
if (aKeys.length !== bKeys.length) return false;
|
|
32
|
+
for (let i = 0; i < aKeys.length; i++) {
|
|
33
|
+
if (aKeys[i] !== bKeys[i]) return false;
|
|
34
|
+
const key = aKeys[i];
|
|
35
|
+
if (!deepEqual(aObj[key], bObj[key])) return false;
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
function indexesEquivalent(a, b) {
|
|
42
|
+
if (a.keys.length !== b.keys.length) return false;
|
|
43
|
+
for (let i = 0; i < a.keys.length; i++) {
|
|
44
|
+
const aKey = a.keys[i];
|
|
45
|
+
const bKey = b.keys[i];
|
|
46
|
+
if (!aKey || !bKey) return false;
|
|
47
|
+
if (aKey.field !== bKey.field) return false;
|
|
48
|
+
if (aKey.direction !== bKey.direction) return false;
|
|
49
|
+
}
|
|
50
|
+
if (a.unique !== b.unique) return false;
|
|
51
|
+
if (a.sparse !== b.sparse) return false;
|
|
52
|
+
if (a.expireAfterSeconds !== b.expireAfterSeconds) return false;
|
|
53
|
+
if (canonicalize(a.partialFilterExpression) !== canonicalize(b.partialFilterExpression)) return false;
|
|
54
|
+
if (canonicalize(a.wildcardProjection) !== canonicalize(b.wildcardProjection)) return false;
|
|
55
|
+
if (canonicalize(a.collation) !== canonicalize(b.collation)) return false;
|
|
56
|
+
if (canonicalize(a.weights) !== canonicalize(b.weights)) return false;
|
|
57
|
+
if (a.default_language !== b.default_language) return false;
|
|
58
|
+
if (a.language_override !== b.language_override) return false;
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Every concrete Mongo schema-IR node also implements the framework's
|
|
63
|
+
* `DiffableNode` interface, so a node can be carried as the `expected`/
|
|
64
|
+
* `actual` payload of a `SchemaDiffIssue`. Mongo's own diff (`diffMongoSchemas`)
|
|
65
|
+
* still hand-rolls its comparisons and never calls `isEqualTo`/`children` —
|
|
66
|
+
* this conformance exists so an issue can carry the real collection/index/
|
|
67
|
+
* validator/options node it concerns, not a coordinate string.
|
|
68
|
+
*
|
|
69
|
+
* Follow-up: `isEqualTo`/`children` are dead weight on every Mongo node
|
|
70
|
+
* (nothing calls them). The honest fix is splitting `DiffableNode` into a
|
|
71
|
+
* narrower "issue payload" bound (just `id`) that this class implements,
|
|
72
|
+
* separate from the full walkable `DiffableNode` (`id` + `isEqualTo` +
|
|
73
|
+
* `children`) the generic differ actually pairs and recurses over.
|
|
74
|
+
*/
|
|
75
|
+
var MongoSchemaIRNode = class extends IRNodeBase {
|
|
76
|
+
constructor() {
|
|
77
|
+
super();
|
|
78
|
+
Object.defineProperty(this, "kind", {
|
|
79
|
+
value: "mongo-schema-ir",
|
|
80
|
+
writable: false,
|
|
81
|
+
enumerable: false,
|
|
82
|
+
configurable: false
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
isEqualTo(other) {
|
|
86
|
+
return this.id === other.id;
|
|
87
|
+
}
|
|
88
|
+
children() {
|
|
89
|
+
return [];
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
var MongoSchemaCollection = class extends MongoSchemaIRNode {
|
|
93
|
+
nodeKind = "collection";
|
|
94
|
+
id;
|
|
95
|
+
name;
|
|
96
|
+
indexes;
|
|
97
|
+
validator;
|
|
98
|
+
options;
|
|
99
|
+
constructor(options) {
|
|
100
|
+
super();
|
|
101
|
+
this.id = options.name;
|
|
102
|
+
this.name = options.name;
|
|
103
|
+
this.indexes = options.indexes ?? [];
|
|
104
|
+
this.validator = options.validator;
|
|
105
|
+
this.options = options.options;
|
|
106
|
+
freezeNode(this);
|
|
107
|
+
}
|
|
108
|
+
accept(visitor) {
|
|
109
|
+
return visitor.collection(this);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
var MongoSchemaCollectionOptions = class extends MongoSchemaIRNode {
|
|
113
|
+
nodeKind = "collectionOptions";
|
|
114
|
+
/** Fixed sentinel: at most one options node exists per collection. */
|
|
115
|
+
id = "options";
|
|
116
|
+
capped;
|
|
117
|
+
timeseries;
|
|
118
|
+
collation;
|
|
119
|
+
changeStreamPreAndPostImages;
|
|
120
|
+
clusteredIndex;
|
|
121
|
+
constructor(options) {
|
|
122
|
+
super();
|
|
123
|
+
this.capped = options.capped;
|
|
124
|
+
this.timeseries = options.timeseries;
|
|
125
|
+
this.collation = options.collation;
|
|
126
|
+
this.changeStreamPreAndPostImages = options.changeStreamPreAndPostImages;
|
|
127
|
+
this.clusteredIndex = options.clusteredIndex;
|
|
128
|
+
freezeNode(this);
|
|
129
|
+
}
|
|
130
|
+
accept(visitor) {
|
|
131
|
+
return visitor.collectionOptions(this);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
var MongoSchemaIndex = class extends MongoSchemaIRNode {
|
|
135
|
+
nodeKind = "index";
|
|
136
|
+
id;
|
|
137
|
+
keys;
|
|
138
|
+
unique;
|
|
139
|
+
sparse;
|
|
140
|
+
expireAfterSeconds;
|
|
141
|
+
partialFilterExpression;
|
|
142
|
+
wildcardProjection;
|
|
143
|
+
collation;
|
|
144
|
+
weights;
|
|
145
|
+
default_language;
|
|
146
|
+
language_override;
|
|
147
|
+
constructor(options) {
|
|
148
|
+
super();
|
|
149
|
+
this.id = options.keys.map((k) => `${k.field}:${k.direction}`).join(",");
|
|
150
|
+
this.keys = options.keys;
|
|
151
|
+
this.unique = options.unique ?? false;
|
|
152
|
+
this.sparse = options.sparse;
|
|
153
|
+
this.expireAfterSeconds = options.expireAfterSeconds;
|
|
154
|
+
this.partialFilterExpression = options.partialFilterExpression;
|
|
155
|
+
this.wildcardProjection = options.wildcardProjection;
|
|
156
|
+
this.collation = options.collation;
|
|
157
|
+
this.weights = options.weights;
|
|
158
|
+
this.default_language = options.default_language;
|
|
159
|
+
this.language_override = options.language_override;
|
|
160
|
+
freezeNode(this);
|
|
161
|
+
}
|
|
162
|
+
accept(visitor) {
|
|
163
|
+
return visitor.index(this);
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
var MongoSchemaIR = class extends MongoSchemaIRNode {
|
|
167
|
+
nodeKind = "schema";
|
|
168
|
+
/** Fixed sentinel: the schema is always the diff tree's single root. */
|
|
169
|
+
id = "schema";
|
|
170
|
+
collections;
|
|
171
|
+
collectionNames;
|
|
172
|
+
_byName;
|
|
173
|
+
constructor(collections) {
|
|
174
|
+
super();
|
|
175
|
+
const sorted = [...collections].sort((a, b) => a.name.localeCompare(b.name));
|
|
176
|
+
this.collections = sorted;
|
|
177
|
+
this._byName = new Map(sorted.map((c) => [c.name, c]));
|
|
178
|
+
this.collectionNames = sorted.map((c) => c.name);
|
|
179
|
+
freezeNode(this);
|
|
180
|
+
}
|
|
181
|
+
accept(visitor) {
|
|
182
|
+
return visitor.schema(this);
|
|
183
|
+
}
|
|
184
|
+
collection(name) {
|
|
185
|
+
return this._byName.get(name);
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
var MongoSchemaValidator = class extends MongoSchemaIRNode {
|
|
189
|
+
nodeKind = "validator";
|
|
190
|
+
/** Fixed sentinel: at most one validator exists per collection. */
|
|
191
|
+
id = "validator";
|
|
192
|
+
jsonSchema;
|
|
193
|
+
validationLevel;
|
|
194
|
+
validationAction;
|
|
195
|
+
constructor(options) {
|
|
196
|
+
super();
|
|
197
|
+
this.jsonSchema = options.jsonSchema;
|
|
198
|
+
this.validationLevel = options.validationLevel;
|
|
199
|
+
this.validationAction = options.validationAction;
|
|
200
|
+
freezeNode(this);
|
|
201
|
+
}
|
|
202
|
+
accept(visitor) {
|
|
203
|
+
return visitor.validator(this);
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
//#endregion
|
|
207
|
+
export { MongoSchemaIndex as a, deepEqual as c, MongoSchemaIRNode as i, indexesEquivalent as l, MongoSchemaCollectionOptions as n, MongoSchemaValidator as o, MongoSchemaIR as r, canonicalize as s, MongoSchemaCollection as t };
|
|
208
|
+
|
|
209
|
+
//# sourceMappingURL=exports-Bx-hlnZ3.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exports-Bx-hlnZ3.mjs","names":[],"sources":["../../../../2-mongo-family/3-tooling/mongo-schema-ir/dist/exports/index.mjs"],"sourcesContent":["import { IRNodeBase, freezeNode } from \"@internal/framework-components/ir\";\n//#region src/canonicalize.ts\nfunction canonicalize(obj) {\n\tif (obj === null) return \"null\";\n\tif (obj === void 0) return \"undefined\";\n\tif (typeof obj !== \"object\") return JSON.stringify(obj);\n\tif (Array.isArray(obj)) return `[${obj.map(canonicalize).join(\",\")}]`;\n\tconst record = obj;\n\treturn `{${Object.keys(record).sort().map((k) => `${JSON.stringify(k)}:${canonicalize(record[k])}`).join(\",\")}}`;\n}\n//#endregion\n//#region src/index-equivalence.ts\n/**\n* Key-order-sensitive structural comparison. For key-order-independent\n* comparison (e.g. lookup key construction), use {@link canonicalize}.\n*/\nfunction deepEqual(a, b) {\n\tif (a === b) return true;\n\tif (a === null || b === null) return false;\n\tif (a === void 0 || b === void 0) return false;\n\tif (typeof a !== typeof b) return false;\n\tif (Array.isArray(a)) {\n\t\tif (!Array.isArray(b)) return false;\n\t\tif (a.length !== b.length) return false;\n\t\tfor (let i = 0; i < a.length; i++) if (!deepEqual(a[i], b[i])) return false;\n\t\treturn true;\n\t}\n\tif (typeof a === \"object\" && typeof b === \"object\") {\n\t\tconst aObj = a;\n\t\tconst bObj = b;\n\t\tconst aKeys = Object.keys(aObj);\n\t\tconst bKeys = Object.keys(bObj);\n\t\tif (aKeys.length !== bKeys.length) return false;\n\t\tfor (let i = 0; i < aKeys.length; i++) {\n\t\t\tif (aKeys[i] !== bKeys[i]) return false;\n\t\t\tconst key = aKeys[i];\n\t\t\tif (!deepEqual(aObj[key], bObj[key])) return false;\n\t\t}\n\t\treturn true;\n\t}\n\treturn false;\n}\nfunction indexesEquivalent(a, b) {\n\tif (a.keys.length !== b.keys.length) return false;\n\tfor (let i = 0; i < a.keys.length; i++) {\n\t\tconst aKey = a.keys[i];\n\t\tconst bKey = b.keys[i];\n\t\tif (!aKey || !bKey) return false;\n\t\tif (aKey.field !== bKey.field) return false;\n\t\tif (aKey.direction !== bKey.direction) return false;\n\t}\n\tif (a.unique !== b.unique) return false;\n\tif (a.sparse !== b.sparse) return false;\n\tif (a.expireAfterSeconds !== b.expireAfterSeconds) return false;\n\tif (canonicalize(a.partialFilterExpression) !== canonicalize(b.partialFilterExpression)) return false;\n\tif (canonicalize(a.wildcardProjection) !== canonicalize(b.wildcardProjection)) return false;\n\tif (canonicalize(a.collation) !== canonicalize(b.collation)) return false;\n\tif (canonicalize(a.weights) !== canonicalize(b.weights)) return false;\n\tif (a.default_language !== b.default_language) return false;\n\tif (a.language_override !== b.language_override) return false;\n\treturn true;\n}\n//#endregion\n//#region src/schema-node.ts\n/**\n* Every concrete Mongo schema-IR node also implements the framework's\n* `DiffableNode` interface, so a node can be carried as the `expected`/\n* `actual` payload of a `SchemaDiffIssue`. Mongo's own diff (`diffMongoSchemas`)\n* still hand-rolls its comparisons and never calls `isEqualTo`/`children` —\n* this conformance exists so an issue can carry the real collection/index/\n* validator/options node it concerns, not a coordinate string.\n*\n* Follow-up: `isEqualTo`/`children` are dead weight on every Mongo node\n* (nothing calls them). The honest fix is splitting `DiffableNode` into a\n* narrower \"issue payload\" bound (just `id`) that this class implements,\n* separate from the full walkable `DiffableNode` (`id` + `isEqualTo` +\n* `children`) the generic differ actually pairs and recurses over.\n*/\nvar MongoSchemaIRNode = class extends IRNodeBase {\n\tconstructor() {\n\t\tsuper();\n\t\tObject.defineProperty(this, \"kind\", {\n\t\t\tvalue: \"mongo-schema-ir\",\n\t\t\twritable: false,\n\t\t\tenumerable: false,\n\t\t\tconfigurable: false\n\t\t});\n\t}\n\tisEqualTo(other) {\n\t\treturn this.id === other.id;\n\t}\n\tchildren() {\n\t\treturn [];\n\t}\n};\n//#endregion\n//#region src/schema-collection.ts\nvar MongoSchemaCollection = class extends MongoSchemaIRNode {\n\tnodeKind = \"collection\";\n\tid;\n\tname;\n\tindexes;\n\tvalidator;\n\toptions;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.id = options.name;\n\t\tthis.name = options.name;\n\t\tthis.indexes = options.indexes ?? [];\n\t\tthis.validator = options.validator;\n\t\tthis.options = options.options;\n\t\tfreezeNode(this);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.collection(this);\n\t}\n};\n//#endregion\n//#region src/schema-collection-options.ts\nvar MongoSchemaCollectionOptions = class extends MongoSchemaIRNode {\n\tnodeKind = \"collectionOptions\";\n\t/** Fixed sentinel: at most one options node exists per collection. */\n\tid = \"options\";\n\tcapped;\n\ttimeseries;\n\tcollation;\n\tchangeStreamPreAndPostImages;\n\tclusteredIndex;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.capped = options.capped;\n\t\tthis.timeseries = options.timeseries;\n\t\tthis.collation = options.collation;\n\t\tthis.changeStreamPreAndPostImages = options.changeStreamPreAndPostImages;\n\t\tthis.clusteredIndex = options.clusteredIndex;\n\t\tfreezeNode(this);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.collectionOptions(this);\n\t}\n};\n//#endregion\n//#region src/schema-index.ts\nvar MongoSchemaIndex = class extends MongoSchemaIRNode {\n\tnodeKind = \"index\";\n\tid;\n\tkeys;\n\tunique;\n\tsparse;\n\texpireAfterSeconds;\n\tpartialFilterExpression;\n\twildcardProjection;\n\tcollation;\n\tweights;\n\tdefault_language;\n\tlanguage_override;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.id = options.keys.map((k) => `${k.field}:${k.direction}`).join(\",\");\n\t\tthis.keys = options.keys;\n\t\tthis.unique = options.unique ?? false;\n\t\tthis.sparse = options.sparse;\n\t\tthis.expireAfterSeconds = options.expireAfterSeconds;\n\t\tthis.partialFilterExpression = options.partialFilterExpression;\n\t\tthis.wildcardProjection = options.wildcardProjection;\n\t\tthis.collation = options.collation;\n\t\tthis.weights = options.weights;\n\t\tthis.default_language = options.default_language;\n\t\tthis.language_override = options.language_override;\n\t\tfreezeNode(this);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.index(this);\n\t}\n};\n//#endregion\n//#region src/schema-ir.ts\nvar MongoSchemaIR = class extends MongoSchemaIRNode {\n\tnodeKind = \"schema\";\n\t/** Fixed sentinel: the schema is always the diff tree's single root. */\n\tid = \"schema\";\n\tcollections;\n\tcollectionNames;\n\t_byName;\n\tconstructor(collections) {\n\t\tsuper();\n\t\tconst sorted = [...collections].sort((a, b) => a.name.localeCompare(b.name));\n\t\tthis.collections = sorted;\n\t\tthis._byName = new Map(sorted.map((c) => [c.name, c]));\n\t\tthis.collectionNames = sorted.map((c) => c.name);\n\t\tfreezeNode(this);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.schema(this);\n\t}\n\tcollection(name) {\n\t\treturn this._byName.get(name);\n\t}\n};\n//#endregion\n//#region src/schema-validator.ts\nvar MongoSchemaValidator = class extends MongoSchemaIRNode {\n\tnodeKind = \"validator\";\n\t/** Fixed sentinel: at most one validator exists per collection. */\n\tid = \"validator\";\n\tjsonSchema;\n\tvalidationLevel;\n\tvalidationAction;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.jsonSchema = options.jsonSchema;\n\t\tthis.validationLevel = options.validationLevel;\n\t\tthis.validationAction = options.validationAction;\n\t\tfreezeNode(this);\n\t}\n\taccept(visitor) {\n\t\treturn visitor.validator(this);\n\t}\n};\n//#endregion\nexport { MongoSchemaCollection, MongoSchemaCollectionOptions, MongoSchemaIR, MongoSchemaIRNode, MongoSchemaIndex, MongoSchemaValidator, canonicalize, deepEqual, indexesEquivalent };\n\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { structuredError } from "@prisma/orm-framework/utils/structured-error";
|
|
2
|
+
import { blindCast } from "@prisma/orm-framework/utils/casts";
|
|
3
|
+
import { serializeObjectKey, serializeValue } from "@prisma/orm-toolchain/emitter/domain-type-generation";
|
|
4
|
+
//#region ../../../2-mongo-family/3-tooling/emitter/dist/exports/index.mjs
|
|
5
|
+
function validationError(message, model) {
|
|
6
|
+
return structuredError("CONTRACT.VALIDATION_FAILED", message, model === void 0 ? void 0 : { meta: { model } });
|
|
7
|
+
}
|
|
8
|
+
const MONGO_NAMESPACE_KIND_FALLBACK = "mongo-namespace";
|
|
9
|
+
function mongoNamespaceSerializedKind(ns) {
|
|
10
|
+
const kind = ns.kind;
|
|
11
|
+
if (typeof kind === "string") return `readonly kind: ${serializeValue(kind)}`;
|
|
12
|
+
return `readonly kind: '${MONGO_NAMESPACE_KIND_FALLBACK}'`;
|
|
13
|
+
}
|
|
14
|
+
function assertUniqueMongoCollectionNames(storage) {
|
|
15
|
+
const seen = /* @__PURE__ */ new Map();
|
|
16
|
+
for (const [namespaceId, ns] of Object.entries(storage.namespaces)) for (const coll of Object.keys(ns.entries.collection ?? {})) {
|
|
17
|
+
const existing = seen.get(coll);
|
|
18
|
+
if (existing !== void 0 && existing !== namespaceId) throw structuredError("CONTRACT.NAME_DUPLICATE", `Duplicate collection name "${coll}" in namespaces "${existing}" and "${namespaceId}"`);
|
|
19
|
+
seen.set(coll, namespaceId);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function generateMongoCollectionEntryType(coll) {
|
|
23
|
+
if (Object.entries(coll).filter(([key, v]) => v !== void 0 && key !== "kind").length === 0) return "MongoCollection";
|
|
24
|
+
return serializeValue(coll);
|
|
25
|
+
}
|
|
26
|
+
function generateMongoNamespaceCollectionsType(collections) {
|
|
27
|
+
const entries = [];
|
|
28
|
+
for (const [collName, coll] of Object.entries(collections).sort(([a], [b]) => a.localeCompare(b))) entries.push(`readonly ${serializeObjectKey(collName)}: ${generateMongoCollectionEntryType(coll)}`);
|
|
29
|
+
if (entries.length === 0) return "Record<string, never>";
|
|
30
|
+
return `{ ${entries.join("; ")} }`;
|
|
31
|
+
}
|
|
32
|
+
function generateMongoNamespacesType(namespaces) {
|
|
33
|
+
const sorted = Object.entries(namespaces ?? {}).sort(([a], [b]) => a.localeCompare(b));
|
|
34
|
+
if (sorted.length === 0) return "Record<string, never>";
|
|
35
|
+
const parts = [];
|
|
36
|
+
for (const [name, ns] of sorted) {
|
|
37
|
+
const collectionsType = generateMongoNamespaceCollectionsType(ns.entries.collection ?? {});
|
|
38
|
+
parts.push(`readonly ${serializeObjectKey(name)}: { readonly id: ${serializeValue(ns.id)}; ${mongoNamespaceSerializedKind(ns)}; readonly entries: { readonly collection: ${collectionsType} } }`);
|
|
39
|
+
}
|
|
40
|
+
return `{ ${parts.join("; ")} }`;
|
|
41
|
+
}
|
|
42
|
+
const mongoEmission = {
|
|
43
|
+
id: "mongo",
|
|
44
|
+
validateTypes(contract, _ctx) {
|
|
45
|
+
const typeIdRegex = /^([^/]+)\/([^@]+)@(\d+)$/;
|
|
46
|
+
for (const [namespaceId, domainNs] of Object.entries(contract.domain.namespaces)) {
|
|
47
|
+
const models = domainNs.models;
|
|
48
|
+
for (const [modelName, model] of Object.entries(models)) {
|
|
49
|
+
const qualifiedName = `${namespaceId}:${modelName}`;
|
|
50
|
+
for (const [fieldName, field] of Object.entries(model.fields)) {
|
|
51
|
+
const fieldType = field.type;
|
|
52
|
+
if (!fieldType) continue;
|
|
53
|
+
const scalarTypes = fieldType.kind === "scalar" ? [fieldType] : fieldType.kind === "union" && fieldType.members ? fieldType.members.filter((m) => m.kind === "scalar") : [];
|
|
54
|
+
for (const scalarType of scalarTypes) {
|
|
55
|
+
const { codecId } = scalarType;
|
|
56
|
+
if (!codecId) throw validationError(`Field "${fieldName}" on model "${qualifiedName}" is missing codecId`, qualifiedName);
|
|
57
|
+
if (!codecId.match(typeIdRegex)?.[1]) throw validationError(`Field "${fieldName}" on model "${qualifiedName}" has invalid codec ID format "${codecId}". Expected format: ns/name@version`, qualifiedName);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
validateStructure(contract) {
|
|
64
|
+
if (contract.targetFamily !== "mongo") throw validationError(`Expected targetFamily "mongo", got "${contract.targetFamily}"`);
|
|
65
|
+
const storage = contract.storage;
|
|
66
|
+
if (!storage?.namespaces || typeof storage.namespaces !== "object") throw validationError("Mongo contract must have storage.namespaces");
|
|
67
|
+
assertUniqueMongoCollectionNames(storage);
|
|
68
|
+
const collectionNames = /* @__PURE__ */ new Set();
|
|
69
|
+
for (const ns of Object.values(storage.namespaces)) for (const c of Object.keys(ns.entries.collection ?? {})) collectionNames.add(c);
|
|
70
|
+
for (const [namespaceId, domainNs] of Object.entries(contract.domain.namespaces)) {
|
|
71
|
+
const models = domainNs.models;
|
|
72
|
+
if (Object.keys(models).length === 0) continue;
|
|
73
|
+
for (const [modelName, model] of Object.entries(models)) {
|
|
74
|
+
const qualifiedName = `${namespaceId}:${modelName}`;
|
|
75
|
+
if (!model.fields || typeof model.fields !== "object") throw validationError(`Model "${qualifiedName}" is missing required field "fields"`, qualifiedName);
|
|
76
|
+
if (!model.relations || typeof model.relations !== "object") throw validationError(`Model "${qualifiedName}" is missing required field "relations" (must be an object)`, qualifiedName);
|
|
77
|
+
if (!model.storage || typeof model.storage !== "object") throw validationError(`Model "${qualifiedName}" is missing required field "storage" (must be an object)`, qualifiedName);
|
|
78
|
+
const collectionValue = model.storage["collection"];
|
|
79
|
+
const collection = typeof collectionValue === "string" ? collectionValue : void 0;
|
|
80
|
+
if (model.owner) {
|
|
81
|
+
if (collection) throw validationError(`Owned model "${qualifiedName}" must not have storage.collection (embedded models are stored within their owner)`, qualifiedName);
|
|
82
|
+
if (!models[model.owner]) throw validationError(`Model "${qualifiedName}" declares owner "${model.owner}" which does not exist in models`, qualifiedName);
|
|
83
|
+
} else if (collection) {
|
|
84
|
+
if (!collectionNames.has(collection)) throw validationError(`Model "${qualifiedName}" references collection "${collection}" which is not in storage.namespaces[..].entries.collection`, qualifiedName);
|
|
85
|
+
}
|
|
86
|
+
if (model.base) {
|
|
87
|
+
const baseModel = models[model.base.model];
|
|
88
|
+
if (!baseModel) throw validationError(`Model "${qualifiedName}" declares base "${model.base.namespace}:${model.base.model}" which does not exist in models`, qualifiedName);
|
|
89
|
+
const variantCollection = collection;
|
|
90
|
+
const baseCollection = baseModel.storage["collection"];
|
|
91
|
+
if (variantCollection !== baseCollection) throw validationError(`Variant "${qualifiedName}" must share its base's collection ("${baseCollection ?? "(none)"}"), but has "${variantCollection ?? "(none)"}"`, qualifiedName);
|
|
92
|
+
}
|
|
93
|
+
const storageRelations = model.storage["relations"];
|
|
94
|
+
if (storageRelations) {
|
|
95
|
+
for (const relName of Object.keys(storageRelations)) if (!model.relations[relName]) throw validationError(`Model "${qualifiedName}" has storage.relations.${relName} but no matching domain-level relation`, qualifiedName);
|
|
96
|
+
}
|
|
97
|
+
for (const [relName, rel] of Object.entries(model.relations)) {
|
|
98
|
+
const targetModelName = rel["to"]?.model;
|
|
99
|
+
if (targetModelName) {
|
|
100
|
+
if (models[targetModelName]?.owner === modelName && !storageRelations?.[relName]) throw validationError(`Model "${qualifiedName}" has embed relation "${relName}" to owned model "${targetModelName}" but no matching storage.relations entry`, qualifiedName);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
generateStorageType(contract, storageHashTypeName) {
|
|
107
|
+
const storage = contract.storage;
|
|
108
|
+
return `{ readonly namespaces: ${generateMongoNamespacesType(storage.namespaces)}; readonly storageHash: ${storageHashTypeName} }`;
|
|
109
|
+
},
|
|
110
|
+
generateModelStorageType(_modelName, model) {
|
|
111
|
+
const parts = [];
|
|
112
|
+
const collection = model.storage["collection"];
|
|
113
|
+
if (collection) parts.push(`readonly collection: ${serializeValue(collection)}`);
|
|
114
|
+
const storageRelations = model.storage["relations"];
|
|
115
|
+
if (storageRelations && Object.keys(storageRelations).length > 0) {
|
|
116
|
+
const relEntries = [];
|
|
117
|
+
for (const [relName, relVal] of Object.entries(storageRelations)) relEntries.push(`readonly ${serializeObjectKey(relName)}: ${serializeValue(relVal)}`);
|
|
118
|
+
parts.push(`readonly relations: { ${relEntries.join("; ")} }`);
|
|
119
|
+
}
|
|
120
|
+
return parts.length > 0 ? `{ ${parts.join("; ")} }` : "Record<string, never>";
|
|
121
|
+
},
|
|
122
|
+
resolveFieldValueSet(_modelName, fieldName, model, contract) {
|
|
123
|
+
const field = model.fields[fieldName];
|
|
124
|
+
if (field === void 0 || field.type.kind !== "scalar") return void 0;
|
|
125
|
+
const ref = field.valueSet;
|
|
126
|
+
if (ref === void 0) return void 0;
|
|
127
|
+
const valueSet = blindCast(contract.storage).namespaces[ref.namespaceId]?.entries.valueSet?.[ref.entityName];
|
|
128
|
+
if (valueSet === void 0) return void 0;
|
|
129
|
+
return {
|
|
130
|
+
encodedValues: valueSet.values,
|
|
131
|
+
codecId: field.type.codecId
|
|
132
|
+
};
|
|
133
|
+
},
|
|
134
|
+
getFamilyImports(resolveImportSpecifier) {
|
|
135
|
+
return [
|
|
136
|
+
"import type {",
|
|
137
|
+
" MongoCollection,",
|
|
138
|
+
" MongoContractWithTypeMaps,",
|
|
139
|
+
" MongoTypeMaps,",
|
|
140
|
+
`} from '${resolveImportSpecifier("@internal/mongo-contract")}';`
|
|
141
|
+
];
|
|
142
|
+
},
|
|
143
|
+
getFamilyTypeAliases() {
|
|
144
|
+
return "";
|
|
145
|
+
},
|
|
146
|
+
getTypeMapsExpression() {
|
|
147
|
+
return "MongoTypeMaps<CodecTypes, FieldOutputTypes, FieldInputTypes>";
|
|
148
|
+
},
|
|
149
|
+
getContractWrapper(contractBaseName, typeMapsName) {
|
|
150
|
+
return `export type Contract = MongoContractWithTypeMaps<${contractBaseName}, ${typeMapsName}>;`;
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
//#endregion
|
|
154
|
+
export { mongoEmission as t };
|
|
155
|
+
|
|
156
|
+
//# sourceMappingURL=exports-CJMh0VTU.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exports-CJMh0VTU.mjs","names":[],"sources":["../../../../2-mongo-family/3-tooling/emitter/dist/exports/index.mjs"],"sourcesContent":["import { serializeObjectKey, serializeValue } from \"@internal/emitter/domain-type-generation\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { structuredError } from \"@internal/utils/structured-error\";\n//#region src/index.ts\nfunction validationError(message, model) {\n\treturn structuredError(\"CONTRACT.VALIDATION_FAILED\", message, model === void 0 ? void 0 : { meta: { model } });\n}\nconst MONGO_NAMESPACE_KIND_FALLBACK = \"mongo-namespace\";\nfunction mongoNamespaceSerializedKind(ns) {\n\tconst kind = ns.kind;\n\tif (typeof kind === \"string\") return `readonly kind: ${serializeValue(kind)}`;\n\treturn `readonly kind: '${MONGO_NAMESPACE_KIND_FALLBACK}'`;\n}\nfunction assertUniqueMongoCollectionNames(storage) {\n\tconst seen = /* @__PURE__ */ new Map();\n\tfor (const [namespaceId, ns] of Object.entries(storage.namespaces)) for (const coll of Object.keys(ns.entries.collection ?? {})) {\n\t\tconst existing = seen.get(coll);\n\t\tif (existing !== void 0 && existing !== namespaceId) throw structuredError(\"CONTRACT.NAME_DUPLICATE\", `Duplicate collection name \"${coll}\" in namespaces \"${existing}\" and \"${namespaceId}\"`);\n\t\tseen.set(coll, namespaceId);\n\t}\n}\nfunction generateMongoCollectionEntryType(coll) {\n\tif (Object.entries(coll).filter(([key, v]) => v !== void 0 && key !== \"kind\").length === 0) return \"MongoCollection\";\n\treturn serializeValue(coll);\n}\nfunction generateMongoNamespaceCollectionsType(collections) {\n\tconst entries = [];\n\tfor (const [collName, coll] of Object.entries(collections).sort(([a], [b]) => a.localeCompare(b))) entries.push(`readonly ${serializeObjectKey(collName)}: ${generateMongoCollectionEntryType(coll)}`);\n\tif (entries.length === 0) return \"Record<string, never>\";\n\treturn `{ ${entries.join(\"; \")} }`;\n}\nfunction generateMongoNamespacesType(namespaces) {\n\tconst sorted = Object.entries(namespaces ?? {}).sort(([a], [b]) => a.localeCompare(b));\n\tif (sorted.length === 0) return \"Record<string, never>\";\n\tconst parts = [];\n\tfor (const [name, ns] of sorted) {\n\t\tconst collectionsType = generateMongoNamespaceCollectionsType(ns.entries.collection ?? {});\n\t\tparts.push(`readonly ${serializeObjectKey(name)}: { readonly id: ${serializeValue(ns.id)}; ${mongoNamespaceSerializedKind(ns)}; readonly entries: { readonly collection: ${collectionsType} } }`);\n\t}\n\treturn `{ ${parts.join(\"; \")} }`;\n}\nconst mongoEmission = {\n\tid: \"mongo\",\n\tvalidateTypes(contract, _ctx) {\n\t\tconst typeIdRegex = /^([^/]+)\\/([^@]+)@(\\d+)$/;\n\t\tfor (const [namespaceId, domainNs] of Object.entries(contract.domain.namespaces)) {\n\t\t\tconst models = domainNs.models;\n\t\t\tfor (const [modelName, model] of Object.entries(models)) {\n\t\t\t\tconst qualifiedName = `${namespaceId}:${modelName}`;\n\t\t\t\tfor (const [fieldName, field] of Object.entries(model.fields)) {\n\t\t\t\t\tconst fieldType = field.type;\n\t\t\t\t\tif (!fieldType) continue;\n\t\t\t\t\tconst scalarTypes = fieldType.kind === \"scalar\" ? [fieldType] : fieldType.kind === \"union\" && fieldType.members ? fieldType.members.filter((m) => m.kind === \"scalar\") : [];\n\t\t\t\t\tfor (const scalarType of scalarTypes) {\n\t\t\t\t\t\tconst { codecId } = scalarType;\n\t\t\t\t\t\tif (!codecId) throw validationError(`Field \"${fieldName}\" on model \"${qualifiedName}\" is missing codecId`, qualifiedName);\n\t\t\t\t\t\tif (!codecId.match(typeIdRegex)?.[1]) throw validationError(`Field \"${fieldName}\" on model \"${qualifiedName}\" has invalid codec ID format \"${codecId}\". Expected format: ns/name@version`, qualifiedName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tvalidateStructure(contract) {\n\t\tif (contract.targetFamily !== \"mongo\") throw validationError(`Expected targetFamily \"mongo\", got \"${contract.targetFamily}\"`);\n\t\tconst storage = contract.storage;\n\t\tif (!storage?.namespaces || typeof storage.namespaces !== \"object\") throw validationError(\"Mongo contract must have storage.namespaces\");\n\t\tassertUniqueMongoCollectionNames(storage);\n\t\tconst collectionNames = /* @__PURE__ */ new Set();\n\t\tfor (const ns of Object.values(storage.namespaces)) for (const c of Object.keys(ns.entries.collection ?? {})) collectionNames.add(c);\n\t\tfor (const [namespaceId, domainNs] of Object.entries(contract.domain.namespaces)) {\n\t\t\tconst models = domainNs.models;\n\t\t\tif (Object.keys(models).length === 0) continue;\n\t\t\tfor (const [modelName, model] of Object.entries(models)) {\n\t\t\t\tconst qualifiedName = `${namespaceId}:${modelName}`;\n\t\t\t\tif (!model.fields || typeof model.fields !== \"object\") throw validationError(`Model \"${qualifiedName}\" is missing required field \"fields\"`, qualifiedName);\n\t\t\t\tif (!model.relations || typeof model.relations !== \"object\") throw validationError(`Model \"${qualifiedName}\" is missing required field \"relations\" (must be an object)`, qualifiedName);\n\t\t\t\tif (!model.storage || typeof model.storage !== \"object\") throw validationError(`Model \"${qualifiedName}\" is missing required field \"storage\" (must be an object)`, qualifiedName);\n\t\t\t\tconst collectionValue = model.storage[\"collection\"];\n\t\t\t\tconst collection = typeof collectionValue === \"string\" ? collectionValue : void 0;\n\t\t\t\tif (model.owner) {\n\t\t\t\t\tif (collection) throw validationError(`Owned model \"${qualifiedName}\" must not have storage.collection (embedded models are stored within their owner)`, qualifiedName);\n\t\t\t\t\tif (!models[model.owner]) throw validationError(`Model \"${qualifiedName}\" declares owner \"${model.owner}\" which does not exist in models`, qualifiedName);\n\t\t\t\t} else if (collection) {\n\t\t\t\t\tif (!collectionNames.has(collection)) throw validationError(`Model \"${qualifiedName}\" references collection \"${collection}\" which is not in storage.namespaces[..].entries.collection`, qualifiedName);\n\t\t\t\t}\n\t\t\t\tif (model.base) {\n\t\t\t\t\tconst baseModel = models[model.base.model];\n\t\t\t\t\tif (!baseModel) throw validationError(`Model \"${qualifiedName}\" declares base \"${model.base.namespace}:${model.base.model}\" which does not exist in models`, qualifiedName);\n\t\t\t\t\tconst variantCollection = collection;\n\t\t\t\t\tconst baseCollection = baseModel.storage[\"collection\"];\n\t\t\t\t\tif (variantCollection !== baseCollection) throw validationError(`Variant \"${qualifiedName}\" must share its base's collection (\"${baseCollection ?? \"(none)\"}\"), but has \"${variantCollection ?? \"(none)\"}\"`, qualifiedName);\n\t\t\t\t}\n\t\t\t\tconst storageRelations = model.storage[\"relations\"];\n\t\t\t\tif (storageRelations) {\n\t\t\t\t\tfor (const relName of Object.keys(storageRelations)) if (!model.relations[relName]) throw validationError(`Model \"${qualifiedName}\" has storage.relations.${relName} but no matching domain-level relation`, qualifiedName);\n\t\t\t\t}\n\t\t\t\tfor (const [relName, rel] of Object.entries(model.relations)) {\n\t\t\t\t\tconst targetModelName = rel[\"to\"]?.model;\n\t\t\t\t\tif (targetModelName) {\n\t\t\t\t\t\tif (models[targetModelName]?.owner === modelName && !storageRelations?.[relName]) throw validationError(`Model \"${qualifiedName}\" has embed relation \"${relName}\" to owned model \"${targetModelName}\" but no matching storage.relations entry`, qualifiedName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tgenerateStorageType(contract, storageHashTypeName) {\n\t\tconst storage = contract.storage;\n\t\treturn `{ readonly namespaces: ${generateMongoNamespacesType(storage.namespaces)}; readonly storageHash: ${storageHashTypeName} }`;\n\t},\n\tgenerateModelStorageType(_modelName, model) {\n\t\tconst parts = [];\n\t\tconst collection = model.storage[\"collection\"];\n\t\tif (collection) parts.push(`readonly collection: ${serializeValue(collection)}`);\n\t\tconst storageRelations = model.storage[\"relations\"];\n\t\tif (storageRelations && Object.keys(storageRelations).length > 0) {\n\t\t\tconst relEntries = [];\n\t\t\tfor (const [relName, relVal] of Object.entries(storageRelations)) relEntries.push(`readonly ${serializeObjectKey(relName)}: ${serializeValue(relVal)}`);\n\t\t\tparts.push(`readonly relations: { ${relEntries.join(\"; \")} }`);\n\t\t}\n\t\treturn parts.length > 0 ? `{ ${parts.join(\"; \")} }` : \"Record<string, never>\";\n\t},\n\tresolveFieldValueSet(_modelName, fieldName, model, contract) {\n\t\tconst field = model.fields[fieldName];\n\t\tif (field === void 0 || field.type.kind !== \"scalar\") return void 0;\n\t\tconst ref = field.valueSet;\n\t\tif (ref === void 0) return void 0;\n\t\tconst valueSet = blindCast(contract.storage).namespaces[ref.namespaceId]?.entries.valueSet?.[ref.entityName];\n\t\tif (valueSet === void 0) return void 0;\n\t\treturn {\n\t\t\tencodedValues: valueSet.values,\n\t\t\tcodecId: field.type.codecId\n\t\t};\n\t},\n\tgetFamilyImports(resolveImportSpecifier) {\n\t\treturn [\n\t\t\t\"import type {\",\n\t\t\t\" MongoCollection,\",\n\t\t\t\" MongoContractWithTypeMaps,\",\n\t\t\t\" MongoTypeMaps,\",\n\t\t\t`} from '${resolveImportSpecifier(\"@internal/mongo-contract\")}';`\n\t\t];\n\t},\n\tgetFamilyTypeAliases() {\n\t\treturn \"\";\n\t},\n\tgetTypeMapsExpression() {\n\t\treturn \"MongoTypeMaps<CodecTypes, FieldOutputTypes, FieldInputTypes>\";\n\t},\n\tgetContractWrapper(contractBaseName, typeMapsName) {\n\t\treturn `export type Contract = MongoContractWithTypeMaps<${contractBaseName}, ${typeMapsName}>;`;\n\t}\n};\n//#endregion\nexport { mongoEmission };\n\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { _ as defaultMongoDomainNamespaceId, v as defaultMongoStorageNamespaceId } from "./index-Cd2zLiU6.mjs";
|
|
2
|
+
import { a as contractToMongoSchemaIR, c as formatMongoOperations, i as canonicalizeSchemasForVerification, l as mongoFamilyDescriptor, n as MongoControlFamilyInstance, o as createMongoFamilyInstance, r as MongoControlTargetDescriptor, s as diffMongoSchemas, t as MongoControlExtensionDescriptor, u as mongoOperationsToPreview } from "./control-Cj81sPbj.mjs";
|
|
3
|
+
import { n as MongoControlAdapterDescriptor, t as MongoControlAdapter } from "./control-adapter-Db5pT77b.mjs";
|
|
4
|
+
import { t as MongoContractView$1 } from "./mongo-contract-view-AnejqfrQ-BaCFT0xm.mjs";
|
|
5
|
+
import { n as MongoContractSerializerBase, r as MongoSchemaVerifierBase, t as MongoContractSerializer } from "./ir-CQrenTYt.mjs";
|
|
6
|
+
import { t as MongoMigration } from "./migration-CNDQv5yB.mjs";
|
|
7
|
+
import { r as mongoFamilyPslBlockDescriptors, t as mongoFamilyEntityTypes } from "./pack-D9aLY50F.mjs";
|
|
8
|
+
import "./runtime-DPkRW4iu.mjs";
|
|
9
|
+
import { n as verifyMongoSchema, t as VerifyMongoSchemaOptions } from "./schema-verify-DJGr28XW.mjs";
|
|
10
|
+
export { MongoMigration as Migration, MongoContractSerializer, MongoContractSerializerBase, MongoContractView$1 as MongoContractView, type MongoControlAdapter, type MongoControlAdapterDescriptor, type MongoControlExtensionDescriptor, type MongoControlFamilyInstance, type MongoControlTargetDescriptor, MongoSchemaVerifierBase, type VerifyMongoSchemaOptions, canonicalizeSchemasForVerification, contractToMongoSchemaIR, createMongoFamilyInstance, defaultMongoDomainNamespaceId, defaultMongoStorageNamespaceId, diffMongoSchemas, formatMongoOperations, mongoFamilyDescriptor, mongoFamilyEntityTypes, mongoFamilyPslBlockDescriptors, mongoOperationsToPreview, verifyMongoSchema };
|
package/dist/family.mjs
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { c as defaultMongoDomainNamespaceId, l as defaultMongoStorageNamespaceId } from "./dist-DHrEJnhK.mjs";
|
|
2
|
+
import { i as verifyMongoSchema, n as contractToMongoSchemaIR, r as diffMongoSchemas, t as canonicalizeSchemasForVerification } from "./verify-mongo-schema-De0FG2Rm-CCzwnNPY.mjs";
|
|
3
|
+
import { n as mongoFamilyPslBlockDescriptors, t as mongoFamilyEntityTypes } from "./authoring-entity-types-BGtkMyoN-D32kzx28.mjs";
|
|
4
|
+
import { n as MongoContractSerializerBase, t as MongoContractSerializer } from "./mongo-contract-serializer-Cx7Fae8e-C8ZYPXpc.mjs";
|
|
5
|
+
import { i as mongoOperationsToPreview, n as formatMongoOperations, r as mongoFamilyDescriptor, t as createMongoFamilyInstance } from "./control-CFr3tYsg.mjs";
|
|
6
|
+
import { t as MongoContractView$1 } from "./mongo-contract-view-rcWzby6f-wRBCUnBt.mjs";
|
|
7
|
+
import { t as MongoSchemaVerifierBase } from "./ir-Ch2aPr7a.mjs";
|
|
8
|
+
import { t as MongoMigration } from "./migration-dcM7u4HG.mjs";
|
|
9
|
+
export { MongoMigration as Migration, MongoContractSerializer, MongoContractSerializerBase, MongoContractView$1 as MongoContractView, MongoSchemaVerifierBase, canonicalizeSchemasForVerification, contractToMongoSchemaIR, createMongoFamilyInstance, defaultMongoDomainNamespaceId, defaultMongoStorageNamespaceId, diffMongoSchemas, formatMongoOperations, mongoFamilyDescriptor, mongoFamilyEntityTypes, mongoFamilyPslBlockDescriptors, mongoOperationsToPreview, verifyMongoSchema };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as contractToMongoSchemaIR, c as formatMongoOperations, i as canonicalizeSchemasForVerification, l as mongoFamilyDescriptor, n as MongoControlFamilyInstance, o as createMongoFamilyInstance, r as MongoControlTargetDescriptor, s as diffMongoSchemas, t as MongoControlExtensionDescriptor, u as mongoOperationsToPreview } from "./control-Cj81sPbj.mjs";
|
|
2
|
+
export { type MongoControlExtensionDescriptor, type MongoControlFamilyInstance, type MongoControlTargetDescriptor, canonicalizeSchemasForVerification, contractToMongoSchemaIR, createMongoFamilyInstance, diffMongoSchemas, formatMongoOperations, mongoFamilyDescriptor, mongoOperationsToPreview };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { n as contractToMongoSchemaIR, r as diffMongoSchemas, t as canonicalizeSchemasForVerification } from "./verify-mongo-schema-De0FG2Rm-CCzwnNPY.mjs";
|
|
2
|
+
import { i as mongoOperationsToPreview, n as formatMongoOperations, r as mongoFamilyDescriptor, t as createMongoFamilyInstance } from "./control-CFr3tYsg.mjs";
|
|
3
|
+
export { canonicalizeSchemasForVerification, contractToMongoSchemaIR, createMongoFamilyInstance, diffMongoSchemas, formatMongoOperations, mongoFamilyDescriptor, mongoOperationsToPreview };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { t as MongoContractView$1 } from "./mongo-contract-view-AnejqfrQ-BaCFT0xm.mjs";
|
|
2
|
+
import { n as MongoContractSerializerBase, r as MongoSchemaVerifierBase, t as MongoContractSerializer } from "./ir-CQrenTYt.mjs";
|
|
3
|
+
export { MongoContractSerializer, MongoContractSerializerBase, MongoContractView$1 as MongoContractView, MongoSchemaVerifierBase };
|