@prisma/orm-family-mongo 8.0.0-rc.16-dev.4 → 8.0.0-rc.16-dev.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/orm.d.mts CHANGED
@@ -6,6 +6,7 @@ import "./execution-p8UbRaQp.mjs";
6
6
  import { u as MongoValueObjects } from "./index-BjgY1VnS.mjs";
7
7
  import { ContractField, ContractReferenceRelation, ContractValueObject, ContractValueObjectDefinitions } from "@prisma/orm-framework/contract/types";
8
8
  import { AsyncIterableResult, MutationDefaults, RuntimeStatementStats } from "@prisma/orm-framework/components/runtime";
9
+ import { EnumAccessor } from "@prisma/orm-framework/contract/enum-accessor";
9
10
  import { SimplifyDeep, SimplifyDeep as SimplifyDeep$1 } from "@prisma/orm-framework/utils/simplify-deep";
10
11
  //#region ../../../2-mongo-family/5-query-builders/orm/dist/index.d.mts
11
12
  //#region src/executor.d.ts
@@ -331,7 +332,11 @@ interface MongoCollection<TContract extends MongoContractWithTypeMaps<MongoContr
331
332
  update: (u: FieldAccessor<TContract, ModelName>) => FieldOperation[];
332
333
  }): Promise<IncludedRow<TContract, ModelName, TIncludes>>;
333
334
  }
334
- declare function createMongoCollection<TContract extends MongoContractWithTypeMaps<MongoContract, AnyMongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>>(contract: TContract, modelName: ModelName, executor: MongoQueryExecutor, mutationDefaults?: MutationDefaults): MongoCollection<TContract, ModelName>;
335
+ /**
336
+ * The contract's enum accessors by namespace and enum name, as `db.enums` holds them. The ORM checks a written enum value against them.
337
+ */
338
+ type MongoOrmEnums = Readonly<Record<string, Readonly<Record<string, Pick<EnumAccessor, 'has' | 'values'>>>>>;
339
+ declare function createMongoCollection<TContract extends MongoContractWithTypeMaps<MongoContract, AnyMongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>>(contract: TContract, modelName: ModelName, executor: MongoQueryExecutor, enums: MongoOrmEnums, mutationDefaults?: MutationDefaults): MongoCollection<TContract, ModelName>;
335
340
  //#endregion
336
341
  //#region src/collection-state.d.ts
337
342
  interface MongoIncludeExpr {
@@ -360,6 +365,8 @@ interface MongoOrmOptions<TContract extends MongoContract> {
360
365
  readonly executor: MongoQueryExecutor;
361
366
  /** Fills the contract's execution defaults on writes. Without it, no generated values are applied. */
362
367
  readonly mutationDefaults?: MutationDefaults;
368
+ /** The contract's enum accessors, which a written enum value is checked against: `buildMongoEnums(contract, context.codecs)`, the accessors `db.enums` holds. */
369
+ readonly enums: MongoOrmEnums;
363
370
  }
364
371
  type MongoOrmClient<TContract extends MongoContractWithTypeMaps<MongoContract, AnyMongoTypeMaps>> = { readonly [K in keyof TContract['roots'] & string]: MongoCollection<TContract, RootModelName<TContract, K>>; };
365
372
  declare function mongoOrm<TContract extends MongoContractWithTypeMaps<MongoContract, AnyMongoTypeMaps>>(options: MongoOrmOptions<TContract>): MongoOrmClient<TContract>;
@@ -390,5 +397,5 @@ declare function mongoRaw<TContract extends MongoContract>(options: {
390
397
  contract: TContract;
391
398
  }): MongoRawClient<TContract>;
392
399
  //#endregion
393
- export { type CreateInput, type DefaultModelRow, type DiscriminatorValues, type DotPath, type FieldAccessor, type FieldExpression, type FieldOperation, type IncludeResultFields, type IncludedRow, type InferFullRow, type InferRootRow, type MongoCollection, type MongoIncludeSpec, type MongoOrmClient, type MongoOrmOptions, type MongoQueryExecutor, type MongoQueryPlan, type MongoRawClient, type MongoWhereFilter, type NoIncludes, type RawMongoCollection, type ResolveDotPathType, type ResolvedCreateInput, type SimplifyDeep, type UpdateOperator, type VariantCreateInput, type VariantModelRow, type VariantNameForValue, type VariantNames, type VariantSelectable, compileMongoQuery, createFieldAccessor, createMongoCollection, mongoOrm, mongoRaw };
400
+ export { type CreateInput, type DefaultModelRow, type DiscriminatorValues, type DotPath, type FieldAccessor, type FieldExpression, type FieldOperation, type IncludeResultFields, type IncludedRow, type InferFullRow, type InferRootRow, type MongoCollection, type MongoIncludeSpec, type MongoOrmClient, type MongoOrmEnums, type MongoOrmOptions, type MongoQueryExecutor, type MongoQueryPlan, type MongoRawClient, type MongoWhereFilter, type NoIncludes, type RawMongoCollection, type ResolveDotPathType, type ResolvedCreateInput, type SimplifyDeep, type UpdateOperator, type VariantCreateInput, type VariantModelRow, type VariantNameForValue, type VariantNames, type VariantSelectable, compileMongoQuery, createFieldAccessor, createMongoCollection, mongoOrm, mongoRaw };
394
401
  //# sourceMappingURL=orm.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orm.d.mts","names":[],"sources":["../../../../2-mongo-family/5-query-builders/orm/dist/index.d.mts"],"mappings":"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"}
1
+ {"version":3,"file":"orm.d.mts","names":[],"sources":["../../../../2-mongo-family/5-query-builders/orm/dist/index.d.mts"],"mappings":"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"}
package/dist/orm.mjs CHANGED
@@ -259,6 +259,14 @@ function topLevelUpdateFields(updateDoc) {
259
259
  for (const operatorGroup of Object.values(updateDoc)) for (const fieldPath of Object.keys(operatorGroup)) fields.add(fieldPath.split(".")[0] ?? fieldPath);
260
260
  return fields;
261
261
  }
262
+ function describeValue(value) {
263
+ if (typeof value === "bigint") return `${value}n`;
264
+ try {
265
+ return JSON.stringify(value) ?? String(value);
266
+ } catch {
267
+ return String(value);
268
+ }
269
+ }
262
270
  function isUnknownRecord(value) {
263
271
  return typeof value === "object" && value !== null && !Array.isArray(value);
264
272
  }
@@ -267,14 +275,16 @@ var MongoCollectionImpl = class MongoCollectionImpl {
267
275
  #modelName;
268
276
  #executor;
269
277
  #mutationDefaults;
278
+ #enums;
270
279
  #collectionName;
271
280
  #state;
272
281
  #variantName;
273
- constructor(contract, modelName, executor, mutationDefaults) {
282
+ constructor(contract, modelName, executor, mutationDefaults, enums) {
274
283
  this.#contract = contract;
275
284
  this.#modelName = modelName;
276
285
  this.#executor = executor;
277
286
  this.#mutationDefaults = mutationDefaults;
287
+ this.#enums = enums;
278
288
  const model = blindCast(domainModelsAtDefaultNamespace(contract.domain)[modelName]);
279
289
  this.#collectionName = resolveCollectionName(model, modelName);
280
290
  this.#state = emptyCollectionState();
@@ -686,16 +696,22 @@ var MongoCollectionImpl = class MongoCollectionImpl {
686
696
  if (valueSet === void 0 || valueSet.entityKind !== "enum" || value === null) return;
687
697
  const contractEnum = this.#contract.domain.namespaces[valueSet.namespaceId]?.enum?.[valueSet.entityName];
688
698
  if (contractEnum === void 0) return;
689
- const allowed = contractEnum.members.map((member) => member.value);
690
- const outside = (field.many && Array.isArray(value) ? value : [value]).find((entry) => entry !== null && !allowed.includes(entry));
691
- if (outside === void 0) return;
692
- const quoted = allowed.map((entry) => JSON.stringify(entry));
693
- const list = quoted.length > 1 ? `${quoted.slice(0, -1).join(", ")} and ${quoted.at(-1)}` : quoted.join("");
694
- throw runtimeError("RUNTIME.ENCODE_FAILED", `Failed to encode field ${path} in collection '${this.#collectionName}': ${JSON.stringify(outside)} is not a value of enum ${valueSet.entityName}; the values are ${list}`, {
699
+ const accessor = this.#enums[valueSet.namespaceId]?.[valueSet.entityName];
700
+ if (accessor === void 0) throw ormError("ORM.ARGUMENT_INVALID", `The ORM has no accessor for enum ${valueSet.entityName}, so it cannot check the value written to ${path} in collection '${this.#collectionName}'. Pass the contract's enum accessors: enums: buildMongoEnums(contract, context.codecs).`, { meta: {
701
+ argument: "enums",
702
+ enum: valueSet.entityName
703
+ } });
704
+ const values = field.many && Array.isArray(value) ? value : [value];
705
+ const outside = values.findIndex((entry) => entry !== null && !accessor.has(entry));
706
+ if (outside === -1) return;
707
+ const received = values[outside];
708
+ const described = accessor.values.map(describeValue);
709
+ const list = described.length > 1 ? `${described.slice(0, -1).join(", ")} and ${described.at(-1)}` : described.join("");
710
+ throw runtimeError("RUNTIME.ENCODE_FAILED", `Failed to encode field ${path} in collection '${this.#collectionName}': ${describeValue(received)} is not a value of enum ${valueSet.entityName}; the values are ${list}`, {
695
711
  label: path,
696
712
  collection: this.#collectionName,
697
- received: outside,
698
- allowed
713
+ received,
714
+ allowed: contractEnum.members.map((member) => member.value)
699
715
  });
700
716
  }
701
717
  /**
@@ -845,7 +861,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
845
861
  };
846
862
  }
847
863
  #clone(overrides) {
848
- const instance = new MongoCollectionImpl(this.#contract, this.#modelName, this.#executor, this.#mutationDefaults);
864
+ const instance = new MongoCollectionImpl(this.#contract, this.#modelName, this.#executor, this.#mutationDefaults, this.#enums);
849
865
  instance.#state = {
850
866
  ...this.#state,
851
867
  ...overrides
@@ -855,7 +871,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
855
871
  return instance;
856
872
  }
857
873
  #cloneWithVariant(overrides, variantName) {
858
- const instance = new MongoCollectionImpl(this.#contract, this.#modelName, this.#executor, this.#mutationDefaults);
874
+ const instance = new MongoCollectionImpl(this.#contract, this.#modelName, this.#executor, this.#mutationDefaults, this.#enums);
859
875
  instance.#state = {
860
876
  ...this.#state,
861
877
  ...overrides
@@ -865,15 +881,29 @@ var MongoCollectionImpl = class MongoCollectionImpl {
865
881
  return instance;
866
882
  }
867
883
  };
868
- function createMongoCollection(contract, modelName, executor, mutationDefaults) {
869
- return new MongoCollectionImpl(contract, modelName, executor, mutationDefaults);
884
+ function createMongoCollection(contract, modelName, executor, enums, mutationDefaults) {
885
+ return new MongoCollectionImpl(contract, modelName, executor, mutationDefaults, enums);
886
+ }
887
+ function assertEnumsComplete(contract, enums) {
888
+ for (const [namespaceId, namespace] of Object.entries(contract.domain.namespaces)) {
889
+ const accessors = enums[namespaceId] ?? {};
890
+ for (const enumName of Object.keys(namespace.enum ?? {})) {
891
+ if (enumName in accessors) continue;
892
+ throw ormError("ORM.ARGUMENT_INVALID", `mongoOrm() has no accessor for enum ${enumName} in namespace ${namespaceId}, so it cannot check a value written to a field of that enum. Pass the contract's enum accessors: enums: buildMongoEnums(contract, context.codecs).`, { meta: {
893
+ argument: "enums",
894
+ namespace: namespaceId,
895
+ enum: enumName
896
+ } });
897
+ }
898
+ }
870
899
  }
871
900
  function mongoOrm(options) {
872
- const { contract, executor, mutationDefaults } = options;
901
+ const { contract, executor, mutationDefaults, enums } = options;
873
902
  const executionDefaults = contract.execution?.mutations.defaults ?? [];
874
903
  if (executionDefaults.length > 0 && mutationDefaults === void 0) throw ormError("ORM.MUTATION_DEFAULTS_MISSING", "The contract has execution defaults (fields such as temporal.createdAt() that the ORM fills on write), but mongoOrm() was built without mutationDefaults, so those fields would never be written. Pass the execution context: mongoOrm({ contract, executor, mutationDefaults: context }), or create the client with mongo().", { meta: { fields: executionDefaults.map((d) => `${d.ref.entry}.${d.ref.field}`) } });
904
+ assertEnumsComplete(contract, enums);
875
905
  const client = {};
876
- for (const [rootName, rootRef] of Object.entries(contract.roots)) client[rootName] = createMongoCollection(contract, blindCast(rootRef.model), executor, mutationDefaults);
906
+ for (const [rootName, rootRef] of Object.entries(contract.roots)) client[rootName] = createMongoCollection(contract, blindCast(rootRef.model), executor, enums, mutationDefaults);
877
907
  return blindCast(client);
878
908
  }
879
909
  function createRawMongoCollection(collectionName, meta) {
package/dist/orm.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"orm.mjs","names":["#contract","#modelName","#executor","#mutationDefaults","#collectionName","#state","#variantName","#cloneWithVariant","#encodeFieldFilter","#clone","#compileWhereObject","#query","#rejectIncludes","#withCreateDefaults","#injectDiscriminator","#stripUndefined","#toDocument","#drainPlan","#insertOneResultShape","#insertManyResultShape","#requireFilters","#rejectWindowing","#mergeFilters","#withUpdateDefaults","#resolveUpdateDoc","#modelResultShape","#readMatchingIds","#executePlan","#wrapFieldOpValue","#toSetFields","#upsertCommand","#compile","#modelWithVariantFields","#valueObjects","#planMeta","#wrapCommand","#modelFields","#idFieldShape","#documentShape","#wrapFieldValue","#fieldAtPath","#nullParam","#assertEnumValues","#scalarParam","#wrapValueObject","#fieldParam","#appliedDefaults","#toUpdateDocument"],"sources":["../../../../2-mongo-family/5-query-builders/orm/dist/index.mjs"],"sourcesContent":["import { domainModelsAtDefaultNamespace, domainValueObjectsAtDefaultNamespace } from \"@internal/contract/types\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { AsyncIterableResult, runtimeError } from \"@internal/framework-components/runtime\";\nimport { AggregateCommand, DeleteManyCommand, FindOneAndDeleteCommand, FindOneAndUpdateCommand, InsertManyCommand, InsertOneCommand, MongoAddFieldsStage, MongoAggArrayFilter, MongoAggCond, MongoAggFieldRef, MongoAggLiteral, MongoAggMap, MongoAggOperator, MongoAndExpr, MongoFieldFilter, MongoLimitStage, MongoLookupStage, MongoMatchStage, MongoProjectStage, MongoSkipStage, MongoSortStage, MongoUnwindStage, RawAggregateCommand, RawDeleteManyCommand, RawDeleteOneCommand, RawFindOneAndDeleteCommand, RawFindOneAndUpdateCommand, RawInsertManyCommand, RawInsertOneCommand, RawUpdateManyCommand, RawUpdateOneCommand, UpdateManyCommand, freezeMongoResultShape, isMongoFilterExpr } from \"@internal/mongo-query-ast/execution\";\nimport { contractFieldToMongoFieldShape, contractModelToMongoResultShape } from \"@internal/mongo-query-builder\";\nimport { MongoParamRef } from \"@internal/mongo-value\";\nimport { blindCast, castAs } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { structuredError } from \"@internal/utils/structured-error\";\n//#region src/collection-state.ts\nfunction emptyCollectionState() {\n\treturn {\n\t\tfilters: [],\n\t\tincludes: [],\n\t\torderBy: void 0,\n\t\tselectedFields: void 0,\n\t\tlimit: void 0,\n\t\toffset: void 0\n\t};\n}\n//#endregion\n//#region src/compile.ts\nfunction isToOne(include) {\n\treturn include.cardinality === \"N:1\" || include.cardinality === \"1:1\";\n}\n/**\n* An included document is decoded through the related model's codecs, like the root document. A to-one include with no related document reads as `null`.\n*/\nfunction includeShape(include, valueObjects) {\n\tconst target = contractModelToMongoResultShape(include.targetModel, { valueObjects });\n\tconst fields = target.kind === \"document\" ? target.fields : {};\n\treturn isToOne(include) ? {\n\t\tkind: \"document\",\n\t\tnullable: true,\n\t\tfields\n\t} : {\n\t\tkind: \"array\",\n\t\tnullable: false,\n\t\telement: {\n\t\t\tkind: \"document\",\n\t\t\tnullable: false,\n\t\t\tfields\n\t\t}\n\t};\n}\nfunction compileIncludes(includes) {\n\tconst stages = [];\n\tfor (const inc of includes) {\n\t\tstages.push(new MongoLookupStage({\n\t\t\tfrom: inc.from,\n\t\t\tlocalField: inc.localField,\n\t\t\tforeignField: inc.foreignField,\n\t\t\tas: inc.relationName\n\t\t}));\n\t\tif (isToOne(inc)) stages.push(new MongoUnwindStage(`$${inc.relationName}`, true));\n\t}\n\treturn stages;\n}\nfunction compileMongoQuery(collection, state, storageHash, model, valueObjects) {\n\tconst stages = [];\n\tconst singleFilter = state.filters.length === 1 ? state.filters[0] : void 0;\n\tif (singleFilter) stages.push(new MongoMatchStage(singleFilter));\n\telse if (state.filters.length > 1) stages.push(new MongoMatchStage(MongoAndExpr.of([...state.filters])));\n\tif (state.includes.length > 0) stages.push(...compileIncludes(state.includes));\n\tif (state.orderBy) stages.push(new MongoSortStage(state.orderBy));\n\tif (state.offset !== void 0) stages.push(new MongoSkipStage(state.offset));\n\tif (state.limit !== void 0) stages.push(new MongoLimitStage(state.limit));\n\tif (state.selectedFields && state.selectedFields.length > 0) {\n\t\tconst projection = {};\n\t\tfor (const field of state.selectedFields) projection[field] = 1;\n\t\tfor (const inc of state.includes) projection[inc.relationName] = 1;\n\t\tif (!Object.hasOwn(projection, \"_id\")) projection[\"_id\"] = 0;\n\t\tstages.push(new MongoProjectStage(projection));\n\t}\n\tconst meta = {\n\t\ttarget: \"mongo\",\n\t\tstorageHash,\n\t\tlane: \"mongo-orm\"\n\t};\n\treturn {\n\t\tcollection,\n\t\tcommand: new AggregateCommand(collection, stages),\n\t\tmeta,\n\t\tresultShape: contractModelToMongoResultShape(model, {\n\t\t\t...ifDefined(\"selection\", state.selectedFields !== void 0 && state.selectedFields.length > 0 ? state.selectedFields : void 0),\n\t\t\tincludes: Object.fromEntries(state.includes.map((inc) => [inc.relationName, includeShape(inc, valueObjects)])),\n\t\t\tvalueObjects\n\t\t})\n\t};\n}\n//#endregion\n//#region src/field-accessor.ts\nfunction createFieldExpression(fieldPath) {\n\treturn {\n\t\tset(value) {\n\t\t\treturn {\n\t\t\t\toperator: \"$set\",\n\t\t\t\tfield: fieldPath,\n\t\t\t\tvalue: new MongoParamRef(value)\n\t\t\t};\n\t\t},\n\t\tunset() {\n\t\t\treturn {\n\t\t\t\toperator: \"$unset\",\n\t\t\t\tfield: fieldPath,\n\t\t\t\tvalue: new MongoParamRef(\"\")\n\t\t\t};\n\t\t},\n\t\tinc(value) {\n\t\t\treturn {\n\t\t\t\toperator: \"$inc\",\n\t\t\t\tfield: fieldPath,\n\t\t\t\tvalue: new MongoParamRef(value)\n\t\t\t};\n\t\t},\n\t\tmul(value) {\n\t\t\treturn {\n\t\t\t\toperator: \"$mul\",\n\t\t\t\tfield: fieldPath,\n\t\t\t\tvalue: new MongoParamRef(value)\n\t\t\t};\n\t\t},\n\t\tpush(value) {\n\t\t\treturn {\n\t\t\t\toperator: \"$push\",\n\t\t\t\tfield: fieldPath,\n\t\t\t\tvalue: new MongoParamRef(value)\n\t\t\t};\n\t\t},\n\t\tpull(match) {\n\t\t\treturn {\n\t\t\t\toperator: \"$pull\",\n\t\t\t\tfield: fieldPath,\n\t\t\t\tvalue: new MongoParamRef(match)\n\t\t\t};\n\t\t},\n\t\taddToSet(value) {\n\t\t\treturn {\n\t\t\t\toperator: \"$addToSet\",\n\t\t\t\tfield: fieldPath,\n\t\t\t\tvalue: new MongoParamRef(value)\n\t\t\t};\n\t\t},\n\t\tpop(end) {\n\t\t\treturn {\n\t\t\t\toperator: \"$pop\",\n\t\t\t\tfield: fieldPath,\n\t\t\t\tvalue: new MongoParamRef(end)\n\t\t\t};\n\t\t}\n\t};\n}\nfunction createFieldAccessor() {\n\treturn new Proxy((() => {}), {\n\t\tget(_target, prop) {\n\t\t\treturn createFieldExpression(prop);\n\t\t},\n\t\tapply(_target, _thisArg, args) {\n\t\t\treturn createFieldExpression(args[0]);\n\t\t}\n\t});\n}\nfunction compileFieldOperations(ops, wrapValue) {\n\tconst grouped = {};\n\tfor (const op of ops) {\n\t\tlet group = grouped[op.operator];\n\t\tif (!group) {\n\t\t\tgroup = {};\n\t\t\tgrouped[op.operator] = group;\n\t\t}\n\t\tgroup[op.field] = wrapValue(op.field, op.value, op.operator);\n\t}\n\treturn grouped;\n}\n//#endregion\n//#region src/orm-errors.ts\nfunction ormError(code, message, options) {\n\treturn structuredError(code, message, options);\n}\n//#endregion\n//#region src/upsert-pipeline.ts\nfunction fieldNamesIn(filter) {\n\tswitch (filter.kind) {\n\t\tcase \"field\":\n\t\tcase \"exists\": return [filter.field.split(\".\")[0] ?? filter.field];\n\t\tcase \"and\":\n\t\tcase \"or\": return filter.exprs.flatMap(fieldNamesIn);\n\t\tcase \"not\": return fieldNamesIn(filter.expr);\n\t\tcase \"expr\": return [];\n\t}\n}\n/**\n* True while the pipeline runs on the document an upsert is inserting. That document starts with only the equality fields the server copies from the filter, so every one of its keys is a field the filter names; a matched document always has an `_id` the filter does not name, or, when the filter names `_id`, fields besides the filter's.\n*/\nfunction isInsert(filter) {\n\tconst keys = new MongoAggMap(MongoAggOperator.of(\"$objectToArray\", MongoAggFieldRef.of(\"$ROOT\")), MongoAggFieldRef.of(\"$this.k\"), \"this\");\n\treturn MongoAggOperator.of(\"$setIsSubset\", [keys, MongoAggLiteral.of([...new Set(fieldNamesIn(filter))])]);\n}\nfunction orEmptyList(field) {\n\treturn MongoAggOperator.of(\"$ifNull\", [MongoAggFieldRef.of(field), MongoAggLiteral.of([])]);\n}\nfunction whenList(field, expr) {\n\treturn MongoAggCond.of(MongoAggOperator.of(\"$isArray\", MongoAggFieldRef.of(field)), expr, MongoAggFieldRef.of(field));\n}\nfunction popped(field, end) {\n\tconst size = MongoAggOperator.size(MongoAggFieldRef.of(field));\n\tconst rest = MongoAggOperator.subtract(size, MongoAggLiteral.of(1));\n\tconst kept = MongoAggOperator.of(\"$slice\", [\n\t\tMongoAggFieldRef.of(field),\n\t\tMongoAggLiteral.of(end === -1 ? 1 : 0),\n\t\trest\n\t]);\n\treturn whenList(field, MongoAggCond.of(MongoAggOperator.of(\"$lte\", [size, MongoAggLiteral.of(1)]), MongoAggLiteral.of([]), kept));\n}\nfunction operatorExpression(operator, field, value) {\n\tswitch (operator) {\n\t\tcase \"$set\": return MongoAggLiteral.of(value);\n\t\tcase \"$unset\": return MongoAggFieldRef.of(\"$REMOVE\");\n\t\tcase \"$inc\": return MongoAggOperator.add(MongoAggOperator.of(\"$ifNull\", [MongoAggFieldRef.of(field), MongoAggLiteral.of(0)]), MongoAggLiteral.of(value));\n\t\tcase \"$mul\": return MongoAggOperator.multiply(MongoAggOperator.of(\"$ifNull\", [MongoAggFieldRef.of(field), MongoAggLiteral.of(0)]), MongoAggLiteral.of(value));\n\t\tcase \"$push\": return MongoAggOperator.of(\"$concatArrays\", [orEmptyList(field), MongoAggLiteral.of([value])]);\n\t\tcase \"$addToSet\": return MongoAggCond.of(MongoAggOperator.of(\"$in\", [MongoAggLiteral.of(value), orEmptyList(field)]), orEmptyList(field), MongoAggOperator.of(\"$concatArrays\", [orEmptyList(field), MongoAggLiteral.of([value])]));\n\t\tcase \"$pull\":\n\t\t\tif (typeof value === \"object\" && value !== null && !(value instanceof MongoParamRef)) throw ormError(\"ORM.OPERATION_UNSUPPORTED\", `upsert() cannot pull by a match document from \"${field}\" when create sets a field that has an update default. Pull a single value, or leave that field out of create.`, { meta: {\n\t\t\t\tmethod: \"upsert\",\n\t\t\t\tfield\n\t\t\t} });\n\t\t\treturn whenList(field, MongoAggArrayFilter.of(MongoAggFieldRef.of(field), MongoAggOperator.of(\"$ne\", [MongoAggFieldRef.of(\"$this\"), MongoAggLiteral.of(value)]), \"this\"));\n\t\tcase \"$pop\": return popped(field, value instanceof MongoParamRef ? value.value : value);\n\t\tdefault: throw ormError(\"ORM.OPERATION_UNSUPPORTED\", `upsert() cannot apply ${operator} to \"${field}\" when create sets a field that has an update default.`, { meta: {\n\t\t\tmethod: \"upsert\",\n\t\t\tfield,\n\t\t\toperator\n\t\t} });\n\t}\n}\n/**\n* The one-command form of an upsert whose `create` sets a field that also has an update default: an update pipeline that, on insert, writes every `create` value, including those fields, and on update applies the update and its defaults. Every value is a `$literal`, so a string such as `'$x'` is not read as a field path.\n*/\nfunction upsertPipeline(input) {\n\tconst inserting = isInsert(input.filter);\n\tconst fields = {};\n\tfor (const [operator, group] of Object.entries(input.update)) for (const [field, value] of Object.entries(group)) {\n\t\tconst onUpdate = operatorExpression(operator, field, value);\n\t\tconst created = input.create[field];\n\t\tfields[field] = operator === \"$set\" && input.createWins.has(field) && created !== void 0 ? MongoAggCond.of(inserting, MongoAggLiteral.of(created), onUpdate) : onUpdate;\n\t}\n\tfor (const [field, value] of Object.entries(input.create)) if (!Object.hasOwn(fields, field)) fields[field] = MongoAggCond.of(inserting, MongoAggLiteral.of(value), MongoAggFieldRef.of(field));\n\treturn [new MongoAddFieldsStage(fields)];\n}\n//#endregion\n//#region src/collection.ts\nconst COMPARISON_OPERATORS = /* @__PURE__ */ new Set([\n\t\"$eq\",\n\t\"$ne\",\n\t\"$gt\",\n\t\"$gte\",\n\t\"$lt\",\n\t\"$lte\"\n]);\nconst MEMBERSHIP_OPERATORS = /* @__PURE__ */ new Set([\"$in\", \"$nin\"]);\nfunction resolveCollectionName(model, modelName) {\n\treturn model.storage.collection ?? modelName;\n}\nfunction topLevelUpdateFields(updateDoc) {\n\tconst fields = /* @__PURE__ */ new Set();\n\tfor (const operatorGroup of Object.values(updateDoc)) for (const fieldPath of Object.keys(operatorGroup)) fields.add(fieldPath.split(\".\")[0] ?? fieldPath);\n\treturn fields;\n}\nfunction isUnknownRecord(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\nvar MongoCollectionImpl = class MongoCollectionImpl {\n\t#contract;\n\t#modelName;\n\t#executor;\n\t#mutationDefaults;\n\t#collectionName;\n\t#state;\n\t#variantName;\n\tconstructor(contract, modelName, executor, mutationDefaults) {\n\t\tthis.#contract = contract;\n\t\tthis.#modelName = modelName;\n\t\tthis.#executor = executor;\n\t\tthis.#mutationDefaults = mutationDefaults;\n\t\tconst model = blindCast(domainModelsAtDefaultNamespace(contract.domain)[modelName]);\n\t\tthis.#collectionName = resolveCollectionName(model, modelName);\n\t\tthis.#state = emptyCollectionState();\n\t}\n\tvariant(value) {\n\t\tconst model = blindCast(domainModelsAtDefaultNamespace(this.#contract.domain)[this.#modelName]);\n\t\tconst discriminator = model?.discriminator;\n\t\tconst selectedVariantName = this.#variantName;\n\t\tif (selectedVariantName !== void 0) {\n\t\t\tconst selectedValue = model?.variants?.[selectedVariantName]?.value;\n\t\t\tthrow ormError(\"ORM.OPERATION_UNSUPPORTED\", `variant(\"${value}\") cannot be called on model \"${this.#modelName}\" because variant(\"${selectedValue}\") is already selected; call variant() on the base collection instead`, { meta: {\n\t\t\t\tmethod: \"variant\",\n\t\t\t\tmodel: this.#modelName,\n\t\t\t\tvariant: selectedVariantName,\n\t\t\t\tselectedValue,\n\t\t\t\treason: \"variant-already-selected\"\n\t\t\t} });\n\t\t}\n\t\tconst variantEntries = Object.entries(model?.variants ?? {});\n\t\tconst variantName = discriminator ? variantEntries.find(([, entry]) => entry.value === value)?.[0] : void 0;\n\t\tif (!discriminator || variantName === void 0) {\n\t\t\tconst declaredValues = discriminator ? variantEntries.map(([, entry]) => entry.value) : [];\n\t\t\tthrow ormError(\"ORM.ARGUMENT_INVALID\", declaredValues.length === 0 ? `variant(\"${value}\") cannot narrow model \"${this.#modelName}\": it declares no discriminator values` : `variant(\"${value}\") cannot narrow model \"${this.#modelName}\": the declared discriminator values are ${declaredValues.map((declared) => `\"${declared}\"`).join(\", \")}`, { meta: {\n\t\t\t\tmethod: \"variant\",\n\t\t\t\targument: \"value\",\n\t\t\t\tmodel: this.#modelName,\n\t\t\t\tvalue,\n\t\t\t\tdeclaredValues\n\t\t\t} });\n\t\t}\n\t\tconst filter = MongoFieldFilter.eq(discriminator.field, new MongoParamRef(value));\n\t\treturn this.#cloneWithVariant({ filters: [...this.#state.filters, filter] }, variantName);\n\t}\n\twhere(filter) {\n\t\tif (isMongoFilterExpr(filter)) {\n\t\t\tconst encoded = filter.rewrite({ field: (fieldFilter) => this.#encodeFieldFilter(fieldFilter) });\n\t\t\treturn this.#clone({ filters: [...this.#state.filters, encoded] });\n\t\t}\n\t\tconst compiled = this.#compileWhereObject(blindCast(filter));\n\t\treturn this.#clone({ filters: [...this.#state.filters, ...compiled] });\n\t}\n\tselect(...fields) {\n\t\treturn this.#clone({ selectedFields: [...this.#state.selectedFields ?? [], ...fields] });\n\t}\n\tinclude(relationName) {\n\t\tconst relation = blindCast(domainModelsAtDefaultNamespace(this.#contract.domain)[this.#modelName]).relations?.[relationName];\n\t\tif (!relation) throw ormError(\"ORM.RELATION_UNKNOWN\", `Unknown relation \"${relationName}\" on model \"${this.#modelName}\"`, { meta: {\n\t\t\tmodel: this.#modelName,\n\t\t\trelation: relationName\n\t\t} });\n\t\tif (!(\"on\" in relation)) throw ormError(\"ORM.INCLUDE_UNSUPPORTED\", `Relation \"${relationName}\" is an embed relation — only reference relations can be included`, { meta: {\n\t\t\tmodel: this.#modelName,\n\t\t\trelation: relationName\n\t\t} });\n\t\tconst ref = relation;\n\t\tconst localField = ref.on.localFields[0];\n\t\tconst foreignField = ref.on.targetFields[0];\n\t\tif (!localField || !foreignField || ref.on.localFields.length !== 1 || ref.on.targetFields.length !== 1) throw ormError(\"ORM.INCLUDE_UNSUPPORTED\", `Compound references are not yet supported: relation \"${relationName}\"`, { meta: {\n\t\t\tmodel: this.#modelName,\n\t\t\trelation: relationName\n\t\t} });\n\t\tconst targetModelName = ref.to.model;\n\t\tconst targetModel = castAs(domainModelsAtDefaultNamespace(this.#contract.domain)[targetModelName]);\n\t\tif (!targetModel) throw new InternalError(`Target model \"${targetModelName}\" not found for relation \"${relationName}\"`);\n\t\tconst includeExpr = {\n\t\t\trelationName,\n\t\t\ttargetModel,\n\t\t\tfrom: resolveCollectionName(targetModel, targetModelName),\n\t\t\tlocalField,\n\t\t\tforeignField,\n\t\t\tcardinality: ref.cardinality\n\t\t};\n\t\treturn blindCast(this.#clone({ includes: [...this.#state.includes, includeExpr] }));\n\t}\n\torderBy(spec) {\n\t\tconst merged = {\n\t\t\t...this.#state.orderBy,\n\t\t\t...spec\n\t\t};\n\t\treturn this.#clone({ orderBy: merged });\n\t}\n\tlimit(n) {\n\t\treturn this.#clone({ limit: n });\n\t}\n\toffset(n) {\n\t\treturn this.#clone({ offset: n });\n\t}\n\tall() {\n\t\treturn this.#query();\n\t}\n\tasync first() {\n\t\tconst result = this.#clone({ limit: 1 }).#query();\n\t\tfor await (const row of result) return row;\n\t\treturn null;\n\t}\n\tasync create(data) {\n\t\tthis.#rejectIncludes(\"create\");\n\t\tconst normalized = this.#withCreateDefaults(this.#injectDiscriminator(this.#stripUndefined(blindCast(data))), /* @__PURE__ */ new Map());\n\t\tconst document = this.#toDocument(normalized);\n\t\tconst command = new InsertOneCommand(this.#collectionName, document);\n\t\treturn blindCast(blindCast((await this.#drainPlan(command, this.#insertOneResultShape()))[0]).document);\n\t}\n\tcreateAll(data) {\n\t\tthis.#rejectIncludes(\"createAll\");\n\t\tconst self = this;\n\t\tasync function* gen() {\n\t\t\tconst defaultValueCache = /* @__PURE__ */ new Map();\n\t\t\tconst normalizedRows = data.map((d) => self.#withCreateDefaults(self.#injectDiscriminator(self.#stripUndefined(blindCast(d))), defaultValueCache));\n\t\t\tconst command = new InsertManyCommand(self.#collectionName, normalizedRows.map((d) => self.#toDocument(d)));\n\t\t\tconst { documents } = blindCast((await self.#drainPlan(command, self.#insertManyResultShape()))[0]);\n\t\t\tfor (const document of documents) yield blindCast(document);\n\t\t}\n\t\treturn new AsyncIterableResult(gen());\n\t}\n\tasync createAndCount(data) {\n\t\tthis.#rejectIncludes(\"createAndCount\");\n\t\tconst defaultValueCache = /* @__PURE__ */ new Map();\n\t\tconst documents = data.map((d) => this.#toDocument(this.#withCreateDefaults(this.#injectDiscriminator(this.#stripUndefined(blindCast(d))), defaultValueCache)));\n\t\tconst command = new InsertManyCommand(this.#collectionName, documents);\n\t\treturn blindCast((await this.#drainPlan(command))[0]).insertedCount;\n\t}\n\tasync update(dataOrCallback) {\n\t\tthis.#requireFilters(\"update\");\n\t\tthis.#rejectWindowing(\"update\");\n\t\tthis.#rejectIncludes(\"update\");\n\t\tconst filter = this.#mergeFilters();\n\t\tconst updateDoc = this.#withUpdateDefaults(this.#resolveUpdateDoc(dataOrCallback), /* @__PURE__ */ new Map());\n\t\tconst command = new FindOneAndUpdateCommand(this.#collectionName, filter, updateDoc, false);\n\t\tconst result = (await this.#drainPlan(command, this.#modelResultShape()))[0];\n\t\treturn result === void 0 ? null : blindCast(result);\n\t}\n\tupdateAll(dataOrCallback) {\n\t\tthis.#requireFilters(\"updateAll\");\n\t\tthis.#rejectWindowing(\"updateAll\");\n\t\tconst self = this;\n\t\tasync function* gen() {\n\t\t\tconst ids = await self.#readMatchingIds();\n\t\t\tif (ids.length === 0) return;\n\t\t\tconst filter = self.#mergeFilters();\n\t\t\tconst updateDoc = self.#withUpdateDefaults(self.#resolveUpdateDoc(dataOrCallback), /* @__PURE__ */ new Map());\n\t\t\tconst command = new UpdateManyCommand(self.#collectionName, filter, updateDoc);\n\t\t\tawait self.#drainPlan(command);\n\t\t\tconst idFilter = MongoFieldFilter.in(\"_id\", ids.map((id) => new MongoParamRef(id)));\n\t\t\tyield* self.#clone({ filters: [idFilter] }).#query();\n\t\t}\n\t\treturn new AsyncIterableResult(gen());\n\t}\n\tasync updateAndCount(dataOrCallback) {\n\t\tthis.#requireFilters(\"updateAndCount\");\n\t\tthis.#rejectWindowing(\"updateAndCount\");\n\t\tthis.#rejectIncludes(\"updateAndCount\");\n\t\tconst filter = this.#mergeFilters();\n\t\tconst updateDoc = this.#withUpdateDefaults(this.#resolveUpdateDoc(dataOrCallback), /* @__PURE__ */ new Map());\n\t\tconst command = new UpdateManyCommand(this.#collectionName, filter, updateDoc);\n\t\treturn (await this.#executePlan(command)).affectedRows;\n\t}\n\tasync delete() {\n\t\tthis.#requireFilters(\"delete\");\n\t\tthis.#rejectWindowing(\"delete\");\n\t\tthis.#rejectIncludes(\"delete\");\n\t\tconst filter = this.#mergeFilters();\n\t\tconst command = new FindOneAndDeleteCommand(this.#collectionName, filter);\n\t\tconst result = (await this.#drainPlan(command, this.#modelResultShape()))[0];\n\t\treturn result === void 0 ? null : blindCast(result);\n\t}\n\tdeleteAll() {\n\t\tthis.#requireFilters(\"deleteAll\");\n\t\tthis.#rejectWindowing(\"deleteAll\");\n\t\tconst self = this;\n\t\tasync function* gen() {\n\t\t\tconst docs = [];\n\t\t\tfor await (const row of self.#query()) docs.push(row);\n\t\t\tconst filter = self.#mergeFilters();\n\t\t\tconst command = new DeleteManyCommand(self.#collectionName, filter);\n\t\t\tawait self.#drainPlan(command);\n\t\t\tyield* docs;\n\t\t}\n\t\treturn new AsyncIterableResult(gen());\n\t}\n\tasync deleteAndCount() {\n\t\tthis.#requireFilters(\"deleteAndCount\");\n\t\tthis.#rejectWindowing(\"deleteAndCount\");\n\t\tthis.#rejectIncludes(\"deleteAndCount\");\n\t\tconst filter = this.#mergeFilters();\n\t\tconst command = new DeleteManyCommand(this.#collectionName, filter);\n\t\treturn (await this.#executePlan(command)).affectedRows;\n\t}\n\tasync upsert(input) {\n\t\tthis.#requireFilters(\"upsert\");\n\t\tthis.#rejectWindowing(\"upsert\");\n\t\tthis.#rejectIncludes(\"upsert\");\n\t\tconst filter = this.#mergeFilters();\n\t\tconst defaultValueCache = /* @__PURE__ */ new Map();\n\t\tconst explicitCreate = this.#injectDiscriminator(this.#stripUndefined(blindCast(input.create)));\n\t\tconst allCreateFields = this.#toDocument(this.#withCreateDefaults(explicitCreate, defaultValueCache));\n\t\tlet updateDoc;\n\t\tif (typeof input.update === \"function\") {\n\t\t\tconst accessor = createFieldAccessor();\n\t\t\tconst ops = input.update(accessor);\n\t\t\tif (ops.find((op) => op.field === \"_id\")) throw ormError(\"ORM.FIELD_IMMUTABLE\", \"Mutation payloads cannot modify `_id`\", { meta: { field: \"_id\" } });\n\t\t\tconst dotPathOp = ops.find((op) => op.field.includes(\".\"));\n\t\t\tif (dotPathOp) throw ormError(\"ORM.OPERATION_UNSUPPORTED\", `upsert() does not support dot-path field operations (found \"${dotPathOp.field}\"). Dot-path updates conflict with \\$setOnInsert on the insert path, producing incomplete documents. Use top-level field operations instead.`, { meta: {\n\t\t\t\tmethod: \"upsert\",\n\t\t\t\tfield: dotPathOp.field\n\t\t\t} });\n\t\t\tupdateDoc = compileFieldOperations(ops, (field, value, operator) => this.#wrapFieldOpValue(field, value, operator));\n\t\t} else {\n\t\t\tconst setFields = this.#toSetFields(blindCast(input.update));\n\t\t\tupdateDoc = {};\n\t\t\tif (Object.keys(setFields).length > 0) updateDoc[\"$set\"] = setFields;\n\t\t}\n\t\tconst explicitUpdateFields = topLevelUpdateFields(updateDoc);\n\t\tconst withUpdateDefaults = this.#withUpdateDefaults(updateDoc, defaultValueCache);\n\t\tconst generatedSetByCreate = Object.keys(withUpdateDefaults[\"$set\"] ?? {}).filter((field) => !explicitUpdateFields.has(field) && Object.hasOwn(explicitCreate, field));\n\t\tif (generatedSetByCreate.length === 0) return this.#upsertCommand(filter, withUpdateDefaults, allCreateFields);\n\t\treturn blindCast((await this.#drainPlan(new FindOneAndUpdateCommand(this.#collectionName, filter, upsertPipeline({\n\t\t\tfilter,\n\t\t\tupdate: withUpdateDefaults,\n\t\t\tcreate: allCreateFields,\n\t\t\tcreateWins: new Set(generatedSetByCreate)\n\t\t}), true), this.#modelResultShape()))[0]);\n\t}\n\tasync #upsertCommand(filter, updateDoc, allCreateFields) {\n\t\tconst updatedFields = topLevelUpdateFields(updateDoc);\n\t\tconst insertOnlyFields = {};\n\t\tfor (const [key, value] of Object.entries(allCreateFields)) if (!updatedFields.has(key)) insertOnlyFields[key] = value;\n\t\tconst command = new FindOneAndUpdateCommand(this.#collectionName, filter, Object.keys(insertOnlyFields).length > 0 ? {\n\t\t\t...updateDoc,\n\t\t\t$setOnInsert: insertOnlyFields\n\t\t} : updateDoc, true);\n\t\treturn blindCast((await this.#drainPlan(command, this.#modelResultShape()))[0]);\n\t}\n\tasync #readMatchingIds() {\n\t\tconst idQuery = this.#clone({\n\t\t\tincludes: [],\n\t\t\tselectedFields: [\"_id\"],\n\t\t\torderBy: void 0,\n\t\t\tlimit: void 0,\n\t\t\toffset: void 0\n\t\t});\n\t\tconst ids = [];\n\t\tconst { resultShape: _rs, ...planWithoutShape } = idQuery.#compile();\n\t\tfor await (const row of this.#executor.query(planWithoutShape)) {\n\t\t\tconst storageRow = blindCast(row);\n\t\t\tids.push(storageRow[\"_id\"]);\n\t\t}\n\t\treturn ids;\n\t}\n\t#query() {\n\t\tconst plan = this.#compile();\n\t\treturn this.#executor.query(plan);\n\t}\n\t#compile() {\n\t\tconst model = this.#modelWithVariantFields();\n\t\tif (!model) throw ormError(\"ORM.MODEL_UNKNOWN\", `Unknown model: \"${this.#modelName}\".`, { meta: { model: this.#modelName } });\n\t\treturn compileMongoQuery(this.#collectionName, this.#state, this.#contract.storage.storageHash, model, this.#valueObjects());\n\t}\n\t#wrapCommand(command, resultShape) {\n\t\treturn {\n\t\t\tcollection: this.#collectionName,\n\t\t\tcommand,\n\t\t\tmeta: this.#planMeta(),\n\t\t\t...ifDefined(\"resultShape\", resultShape)\n\t\t};\n\t}\n\t#executePlan(command) {\n\t\treturn this.#executor.execute(this.#wrapCommand(command));\n\t}\n\tasync #drainPlan(command, resultShape) {\n\t\tconst plan = this.#wrapCommand(command, resultShape);\n\t\tconst result = this.#executor.query(plan);\n\t\tconst rows = [];\n\t\tfor await (const row of result) rows.push(row);\n\t\treturn rows;\n\t}\n\t#modelFields() {\n\t\treturn this.#modelWithVariantFields()?.fields ?? {};\n\t}\n\t#modelWithVariantFields() {\n\t\tconst models = domainModelsAtDefaultNamespace(this.#contract.domain);\n\t\tconst model = blindCast(models[this.#modelName]);\n\t\tif (model === void 0 || this.#variantName === void 0) return model;\n\t\tconst variant = blindCast(models[this.#variantName]);\n\t\treturn variant === void 0 ? model : {\n\t\t\t...model,\n\t\t\tfields: {\n\t\t\t\t...model.fields,\n\t\t\t\t...variant.fields\n\t\t\t}\n\t\t};\n\t}\n\t#idFieldShape() {\n\t\tconst idField = this.#modelFields()[\"_id\"];\n\t\treturn idField ? contractFieldToMongoFieldShape(idField) : Object.freeze({ kind: \"unknown\" });\n\t}\n\t#insertOneResultShape() {\n\t\treturn freezeMongoResultShape({\n\t\t\tkind: \"document\",\n\t\t\tfields: {\n\t\t\t\tinsertedId: this.#idFieldShape(),\n\t\t\t\tdocument: this.#documentShape()\n\t\t\t}\n\t\t});\n\t}\n\t#insertManyResultShape() {\n\t\treturn freezeMongoResultShape({\n\t\t\tkind: \"document\",\n\t\t\tfields: {\n\t\t\t\tinsertedIds: {\n\t\t\t\t\tkind: \"array\",\n\t\t\t\t\tnullable: false,\n\t\t\t\t\telement: this.#idFieldShape()\n\t\t\t\t},\n\t\t\t\tdocuments: {\n\t\t\t\t\tkind: \"array\",\n\t\t\t\t\tnullable: false,\n\t\t\t\t\telement: this.#documentShape()\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t#documentShape() {\n\t\tconst shape = this.#modelResultShape();\n\t\treturn shape.kind === \"document\" ? {\n\t\t\tkind: \"document\",\n\t\t\tnullable: false,\n\t\t\tfields: shape.fields,\n\t\t\trow: true\n\t\t} : { kind: \"unknown\" };\n\t}\n\t#modelResultShape() {\n\t\tconst model = this.#modelWithVariantFields();\n\t\tif (!model) return Object.freeze({ kind: \"unknown\" });\n\t\treturn contractModelToMongoResultShape(model, { valueObjects: this.#valueObjects() });\n\t}\n\t#valueObjects() {\n\t\treturn domainValueObjectsAtDefaultNamespace(this.#contract.domain) ?? {};\n\t}\n\t#compileWhereObject(data) {\n\t\tconst fields = this.#modelFields();\n\t\tconst filters = [];\n\t\tfor (const [key, value] of Object.entries(data)) {\n\t\t\tif (value === void 0) continue;\n\t\t\tconst wrapped = this.#wrapFieldValue(value, fields[key], key, \"filter\");\n\t\t\tfilters.push(MongoFieldFilter.eq(key, wrapped));\n\t\t}\n\t\treturn filters;\n\t}\n\t/**\n\t* Encodes the comparison values of a filter on a scalar field through the field's codec, as the object form of `where` and every update does. Without it a driver class such as an `ObjectId` would be copied into a plain object and match nothing.\n\t*/\n\t#encodeFieldFilter(filter) {\n\t\tconst field = this.#fieldAtPath(filter.field);\n\t\tif (field?.type.kind !== \"scalar\") return filter;\n\t\tconst encode = (value) => {\n\t\t\tif (value === null) return null;\n\t\t\tif (value instanceof MongoParamRef) return value.codecId === void 0 ? this.#wrapFieldValue(value.value, field, filter.field, \"filter\") : value;\n\t\t\tif (field.many && Array.isArray(value)) return value.map(encode);\n\t\t\treturn this.#wrapFieldValue(value, field, filter.field, \"filter\");\n\t\t};\n\t\tif (COMPARISON_OPERATORS.has(filter.op)) return MongoFieldFilter.of(filter.field, filter.op, encode(filter.value));\n\t\tif (MEMBERSHIP_OPERATORS.has(filter.op) && Array.isArray(filter.value)) {\n\t\t\tconst values = filter.value;\n\t\t\tconst encoded = values.map(encode);\n\t\t\treturn encoded.every((value, index) => value === values[index]) ? filter : MongoFieldFilter.of(filter.field, filter.op, encoded);\n\t\t}\n\t\treturn filter;\n\t}\n\t#fieldAtPath(path) {\n\t\tconst [head, ...rest] = path.split(\".\");\n\t\tlet field = head === void 0 ? void 0 : this.#modelFields()[head];\n\t\tfor (const segment of rest) {\n\t\t\tif (field?.type.kind !== \"valueObject\") return void 0;\n\t\t\tfield = domainValueObjectsAtDefaultNamespace(this.#contract.domain)?.[field.type.name]?.fields[segment];\n\t\t}\n\t\treturn field;\n\t}\n\t/**\n\t* A value written to a field is checked against the field's enum and must not be `null` unless the field is nullable; a value compared in a filter is not, so a filter can find stored values the contract does not allow.\n\t*/\n\t#wrapFieldValue(value, field, path, purpose) {\n\t\tif (field === void 0) return new MongoParamRef(value);\n\t\tif (value === null) return this.#nullParam(field, path, purpose);\n\t\tif (field.type.kind === \"scalar\") {\n\t\t\tif (purpose === \"write\") this.#assertEnumValues(field, value, path);\n\t\t\treturn this.#scalarParam(value, field, path, purpose);\n\t\t}\n\t\tif (field.type.kind === \"valueObject\") {\n\t\t\tconst voName = field.type.name;\n\t\t\tconst voDef = domainValueObjectsAtDefaultNamespace(this.#contract.domain)?.[voName];\n\t\t\tif (!voDef) return new MongoParamRef(value);\n\t\t\tif (field.many && Array.isArray(value)) return value.map((item, index) => item === null ? null : this.#wrapValueObject(blindCast(item), voDef, `${path}.${index}`, purpose));\n\t\t\treturn this.#wrapValueObject(blindCast(value), voDef, path, purpose);\n\t\t}\n\t\treturn new MongoParamRef(value);\n\t}\n\t#nullParam(field, path, purpose) {\n\t\tif (purpose === \"write\" && !field.nullable) throw runtimeError(\"RUNTIME.ENCODE_FAILED\", `Failed to encode field ${path} in collection '${this.#collectionName}': the field is required and cannot be null`, {\n\t\t\tlabel: path,\n\t\t\tcollection: this.#collectionName\n\t\t});\n\t\treturn null;\n\t}\n\t/**\n\t* A contract without a collection validator (TypeScript builder, Prisma 6 schema) stores whatever reaches the driver, so a value outside the field's enum is refused here.\n\t*/\n\t#assertEnumValues(field, value, path) {\n\t\tconst valueSet = field.valueSet;\n\t\tif (valueSet === void 0 || valueSet.entityKind !== \"enum\" || value === null) return;\n\t\tconst contractEnum = this.#contract.domain.namespaces[valueSet.namespaceId]?.enum?.[valueSet.entityName];\n\t\tif (contractEnum === void 0) return;\n\t\tconst allowed = contractEnum.members.map((member) => member.value);\n\t\tconst outside = (field.many && Array.isArray(value) ? value : [value]).find((entry) => entry !== null && !allowed.includes(entry));\n\t\tif (outside === void 0) return;\n\t\tconst quoted = allowed.map((entry) => JSON.stringify(entry));\n\t\tconst list = quoted.length > 1 ? `${quoted.slice(0, -1).join(\", \")} and ${quoted.at(-1)}` : quoted.join(\"\");\n\t\tthrow runtimeError(\"RUNTIME.ENCODE_FAILED\", `Failed to encode field ${path} in collection '${this.#collectionName}': ${JSON.stringify(outside)} is not a value of enum ${valueSet.entityName}; the values are ${list}`, {\n\t\t\tlabel: path,\n\t\t\tcollection: this.#collectionName,\n\t\t\treceived: outside,\n\t\t\tallowed\n\t\t});\n\t}\n\t/**\n\t* A scalar field's value as parameters: a list field's array is encoded element by element through the element codec, so the codec never sees the whole list.\n\t*/\n\t#scalarParam(value, field, path, purpose) {\n\t\tif (field.type.kind !== \"scalar\") return new MongoParamRef(value);\n\t\tconst codecId = field.type.codecId;\n\t\tif (field.many && Array.isArray(value)) {\n\t\t\tconst acceptsNull = field.many.elementNullable || purpose === \"filter\";\n\t\t\treturn value.map((element, index) => element === null && acceptsNull ? null : this.#fieldParam(element, codecId, `${path}.${index}`));\n\t\t}\n\t\treturn this.#fieldParam(value, codecId, path);\n\t}\n\t#fieldParam(value, codecId, path) {\n\t\treturn new MongoParamRef(value, {\n\t\t\tcodecId,\n\t\t\tname: path,\n\t\t\tcollection: this.#collectionName\n\t\t});\n\t}\n\t#wrapValueObject(data, voDef, path, purpose) {\n\t\tconst doc = {};\n\t\tfor (const [key, value] of Object.entries(data)) {\n\t\t\tif (value === void 0) continue;\n\t\t\tconst fieldDef = voDef.fields[key];\n\t\t\tdoc[key] = this.#wrapFieldValue(value, fieldDef, `${path}.${key}`, purpose);\n\t\t}\n\t\treturn doc;\n\t}\n\t#toDocument(data) {\n\t\tconst fields = this.#modelFields();\n\t\tconst doc = {};\n\t\tfor (const [key, value] of Object.entries(data)) if (value !== void 0) doc[key] = this.#wrapFieldValue(value, fields[key], key, \"write\");\n\t\treturn doc;\n\t}\n\t#toSetFields(data) {\n\t\tconst fields = this.#modelFields();\n\t\tconst result = {};\n\t\tfor (const [key, value] of Object.entries(data)) {\n\t\t\tif (key === \"_id\" && value !== void 0) throw ormError(\"ORM.FIELD_IMMUTABLE\", \"Mutation payloads cannot modify `_id`\", { meta: { field: \"_id\" } });\n\t\t\tif (value !== void 0) result[key] = this.#wrapFieldValue(value, fields[key], key, \"write\");\n\t\t}\n\t\treturn result;\n\t}\n\t#appliedDefaults(op, values, defaultValueCache) {\n\t\tconst applied = this.#mutationDefaults?.applyMutationDefaults({\n\t\t\top,\n\t\t\tnamespace: UNBOUND_NAMESPACE_ID,\n\t\t\tentry: this.#collectionName,\n\t\t\tvalues,\n\t\t\tdefaultValueCache\n\t\t}) ?? [];\n\t\treturn Object.fromEntries(applied.map(({ field, value }) => [field, value]));\n\t}\n\t#withCreateDefaults(values, defaultValueCache) {\n\t\treturn {\n\t\t\t...values,\n\t\t\t...this.#appliedDefaults(\"create\", values, defaultValueCache)\n\t\t};\n\t}\n\t#withUpdateDefaults(updateDoc, defaultValueCache) {\n\t\tconst explicit = Object.fromEntries([...topLevelUpdateFields(updateDoc)].map((field) => [field, true]));\n\t\tconst generated = this.#appliedDefaults(\"update\", explicit, defaultValueCache);\n\t\tif (Object.keys(generated).length === 0) return updateDoc;\n\t\treturn {\n\t\t\t...updateDoc,\n\t\t\t$set: {\n\t\t\t\t...updateDoc[\"$set\"],\n\t\t\t\t...this.#toSetFields(generated)\n\t\t\t}\n\t\t};\n\t}\n\t#stripUndefined(data) {\n\t\tconst result = {};\n\t\tfor (const [key, value] of Object.entries(data)) if (value !== void 0) result[key] = value;\n\t\treturn result;\n\t}\n\t#toUpdateDocument(data) {\n\t\treturn { $set: this.#toSetFields(data) };\n\t}\n\t#resolveUpdateDoc(dataOrCallback) {\n\t\tif (typeof dataOrCallback === \"function\") {\n\t\t\tconst ops = dataOrCallback(createFieldAccessor());\n\t\t\tif (ops.find((op) => op.field === \"_id\")) throw ormError(\"ORM.FIELD_IMMUTABLE\", \"Mutation payloads cannot modify `_id`\", { meta: { field: \"_id\" } });\n\t\t\tif (ops.length === 0) return { $set: {} };\n\t\t\treturn compileFieldOperations(ops, (field, value, operator) => this.#wrapFieldOpValue(field, value, operator));\n\t\t}\n\t\treturn this.#toUpdateDocument(blindCast(dataOrCallback));\n\t}\n\t/**\n\t* `$set` carries the field's whole value; `$push`, `$addToSet`, `$pull`, `$inc` and `$mul` carry one element or number; `$pop` and `$unset` carry no field value and are not encoded.\n\t*/\n\t#wrapFieldOpValue(path, value, operator) {\n\t\tif (operator === \"$unset\" || operator === \"$pop\" || !(value instanceof MongoParamRef)) return value;\n\t\tconst field = this.#fieldAtPath(path);\n\t\tif (field === void 0) return value;\n\t\tif (operator === \"$set\") return this.#wrapFieldValue(value.value, field, path, \"write\");\n\t\tif (value.value === null && field.many && (field.many.elementNullable || operator === \"$pull\")) return null;\n\t\tif (operator === \"$pull\") return this.#wrapFieldValue(value.value, field, path, \"filter\");\n\t\tif (field.type.kind === \"scalar\") {\n\t\t\tthis.#assertEnumValues(field, field.many ? [value.value] : value.value, path);\n\t\t\treturn this.#fieldParam(value.value, field.type.codecId, path);\n\t\t}\n\t\tif (field.type.kind === \"valueObject\" && isUnknownRecord(value.value)) {\n\t\t\tconst voDef = domainValueObjectsAtDefaultNamespace(this.#contract.domain)?.[field.type.name];\n\t\t\tif (voDef) return this.#wrapValueObject(value.value, voDef, path, \"write\");\n\t\t}\n\t\treturn value;\n\t}\n\t#mergeFilters() {\n\t\tconst [single] = this.#state.filters;\n\t\tif (this.#state.filters.length === 1 && single) return single;\n\t\treturn MongoAndExpr.of([...this.#state.filters]);\n\t}\n\t#requireFilters(methodName) {\n\t\tif (this.#state.filters.length === 0) throw ormError(\"ORM.WHERE_MISSING\", `${methodName}() requires a .where() filter. Call .where() before .${methodName}()`, { meta: { method: methodName } });\n\t}\n\t#rejectWindowing(methodName) {\n\t\tif (this.#state.orderBy !== void 0 || this.#state.limit !== void 0 || this.#state.offset !== void 0) throw ormError(\"ORM.OPERATION_UNSUPPORTED\", `${methodName}() does not support orderBy/offset/limit. Remove windowing before calling .${methodName}()`, { meta: {\n\t\t\tmethod: methodName,\n\t\t\treason: \"windowing\"\n\t\t} });\n\t}\n\t#rejectIncludes(methodName) {\n\t\tif (this.#state.includes.length > 0) throw ormError(\"ORM.OPERATION_UNSUPPORTED\", `${methodName}() does not support .include(). Remove includes before calling .${methodName}()`, { meta: {\n\t\t\tmethod: methodName,\n\t\t\treason: \"includes\"\n\t\t} });\n\t}\n\t#planMeta() {\n\t\treturn {\n\t\t\ttarget: \"mongo\",\n\t\t\tstorageHash: this.#contract.storage.storageHash,\n\t\t\tlane: \"mongo-orm\"\n\t\t};\n\t}\n\t#injectDiscriminator(data) {\n\t\tif (!this.#variantName) return data;\n\t\tconst model = blindCast(domainModelsAtDefaultNamespace(this.#contract.domain)[this.#modelName]);\n\t\tif (!model?.discriminator || !model.variants) return data;\n\t\tconst variantEntry = model.variants[this.#variantName];\n\t\tif (!variantEntry) return data;\n\t\treturn {\n\t\t\t...data,\n\t\t\t[model.discriminator.field]: variantEntry.value\n\t\t};\n\t}\n\t#clone(overrides) {\n\t\tconst instance = new MongoCollectionImpl(this.#contract, this.#modelName, this.#executor, this.#mutationDefaults);\n\t\tinstance.#state = {\n\t\t\t...this.#state,\n\t\t\t...overrides\n\t\t};\n\t\tinstance.#collectionName = this.#collectionName;\n\t\tinstance.#variantName = this.#variantName;\n\t\treturn instance;\n\t}\n\t#cloneWithVariant(overrides, variantName) {\n\t\tconst instance = new MongoCollectionImpl(this.#contract, this.#modelName, this.#executor, this.#mutationDefaults);\n\t\tinstance.#state = {\n\t\t\t...this.#state,\n\t\t\t...overrides\n\t\t};\n\t\tinstance.#collectionName = this.#collectionName;\n\t\tinstance.#variantName = variantName;\n\t\treturn instance;\n\t}\n};\nfunction createMongoCollection(contract, modelName, executor, mutationDefaults) {\n\treturn new MongoCollectionImpl(contract, modelName, executor, mutationDefaults);\n}\n//#endregion\n//#region src/mongo-orm.ts\nfunction mongoOrm(options) {\n\tconst { contract, executor, mutationDefaults } = options;\n\tconst executionDefaults = contract.execution?.mutations.defaults ?? [];\n\tif (executionDefaults.length > 0 && mutationDefaults === void 0) throw ormError(\"ORM.MUTATION_DEFAULTS_MISSING\", \"The contract has execution defaults (fields such as temporal.createdAt() that the ORM fills on write), but mongoOrm() was built without mutationDefaults, so those fields would never be written. Pass the execution context: mongoOrm({ contract, executor, mutationDefaults: context }), or create the client with mongo().\", { meta: { fields: executionDefaults.map((d) => `${d.ref.entry}.${d.ref.field}`) } });\n\tconst client = {};\n\tfor (const [rootName, rootRef] of Object.entries(contract.roots)) client[rootName] = createMongoCollection(contract, blindCast(rootRef.model), executor, mutationDefaults);\n\treturn blindCast(client);\n}\n//#endregion\n//#region src/raw-collection.ts\nfunction createRawMongoCollection(collectionName, meta) {\n\tfunction buildable(command) {\n\t\treturn { build: () => ({\n\t\t\tcollection: collectionName,\n\t\t\tcommand,\n\t\t\tmeta\n\t\t}) };\n\t}\n\treturn {\n\t\taggregate(pipeline) {\n\t\t\treturn buildable(new RawAggregateCommand(collectionName, pipeline));\n\t\t},\n\t\tinsertOne(document) {\n\t\t\treturn buildable(new RawInsertOneCommand(collectionName, document));\n\t\t},\n\t\tinsertMany(documents) {\n\t\t\treturn buildable(new RawInsertManyCommand(collectionName, documents));\n\t\t},\n\t\tupdateOne(filter, update) {\n\t\t\treturn buildable(new RawUpdateOneCommand(collectionName, filter, update));\n\t\t},\n\t\tupdateMany(filter, update) {\n\t\t\treturn buildable(new RawUpdateManyCommand(collectionName, filter, update));\n\t\t},\n\t\tdeleteOne(filter) {\n\t\t\treturn buildable(new RawDeleteOneCommand(collectionName, filter));\n\t\t},\n\t\tdeleteMany(filter) {\n\t\t\treturn buildable(new RawDeleteManyCommand(collectionName, filter));\n\t\t},\n\t\tfindOneAndUpdate(filter, update, options) {\n\t\t\treturn buildable(new RawFindOneAndUpdateCommand(collectionName, filter, update, options?.upsert ?? false));\n\t\t},\n\t\tfindOneAndDelete(filter) {\n\t\t\treturn buildable(new RawFindOneAndDeleteCommand(collectionName, filter));\n\t\t}\n\t};\n}\n//#endregion\n//#region src/mongo-raw.ts\nfunction mongoRaw(options) {\n\tconst { contract } = options;\n\treturn { collection(rootName) {\n\t\tconst modelName = contract.roots[rootName]?.model;\n\t\tconst models = domainModelsAtDefaultNamespace(contract.domain);\n\t\tif (!modelName || !Object.hasOwn(models, modelName)) throw ormError(\"ORM.MODEL_UNKNOWN\", `Unknown model \"${modelName ?? \"\"}\" for root \"${rootName}\"`, { meta: {\n\t\t\tmodel: modelName ?? \"\",\n\t\t\troot: rootName\n\t\t} });\n\t\treturn createRawMongoCollection(models[modelName].storage.collection ?? modelName, {\n\t\t\ttarget: \"mongo\",\n\t\t\tstorageHash: contract.storage.storageHash,\n\t\t\tlane: \"mongo-raw\"\n\t\t});\n\t} };\n}\n//#endregion\nexport { compileMongoQuery, createFieldAccessor, createMongoCollection, mongoOrm, mongoRaw };\n\n//# sourceMappingURL=index.mjs.map"],"mappings":";;;;;;;;;;;;AAWA,SAAS,uBAAuB;CAC/B,OAAO;EACN,SAAS,CAAC;EACV,UAAU,CAAC;EACX,SAAS,KAAK;EACd,gBAAgB,KAAK;EACrB,OAAO,KAAK;EACZ,QAAQ,KAAK;CACd;AACD;AAGA,SAAS,QAAQ,SAAS;CACzB,OAAO,QAAQ,gBAAgB,SAAS,QAAQ,gBAAgB;AACjE;;;;AAIA,SAAS,aAAa,SAAS,cAAc;CAC5C,MAAM,SAAS,gCAAgC,QAAQ,aAAa,EAAE,aAAa,CAAC;CACpF,MAAM,SAAS,OAAO,SAAS,aAAa,OAAO,SAAS,CAAC;CAC7D,OAAO,QAAQ,OAAO,IAAI;EACzB,MAAM;EACN,UAAU;EACV;CACD,IAAI;EACH,MAAM;EACN,UAAU;EACV,SAAS;GACR,MAAM;GACN,UAAU;GACV;EACD;CACD;AACD;AACA,SAAS,gBAAgB,UAAU;CAClC,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,OAAO,UAAU;EAC3B,OAAO,KAAK,IAAI,iBAAiB;GAChC,MAAM,IAAI;GACV,YAAY,IAAI;GAChB,cAAc,IAAI;GAClB,IAAI,IAAI;EACT,CAAC,CAAC;EACF,IAAI,QAAQ,GAAG,GAAG,OAAO,KAAK,IAAI,iBAAiB,IAAI,IAAI,gBAAgB,IAAI,CAAC;CACjF;CACA,OAAO;AACR;AACA,SAAS,kBAAkB,YAAY,OAAO,aAAa,OAAO,cAAc;CAC/E,MAAM,SAAS,CAAC;CAChB,MAAM,eAAe,MAAM,QAAQ,WAAW,IAAI,MAAM,QAAQ,KAAK,KAAK;CAC1E,IAAI,cAAc,OAAO,KAAK,IAAI,gBAAgB,YAAY,CAAC;MAC1D,IAAI,MAAM,QAAQ,SAAS,GAAG,OAAO,KAAK,IAAI,gBAAgB,aAAa,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC;CACvG,IAAI,MAAM,SAAS,SAAS,GAAG,OAAO,KAAK,GAAG,gBAAgB,MAAM,QAAQ,CAAC;CAC7E,IAAI,MAAM,SAAS,OAAO,KAAK,IAAI,eAAe,MAAM,OAAO,CAAC;CAChE,IAAI,MAAM,WAAW,KAAK,GAAG,OAAO,KAAK,IAAI,eAAe,MAAM,MAAM,CAAC;CACzE,IAAI,MAAM,UAAU,KAAK,GAAG,OAAO,KAAK,IAAI,gBAAgB,MAAM,KAAK,CAAC;CACxE,IAAI,MAAM,kBAAkB,MAAM,eAAe,SAAS,GAAG;EAC5D,MAAM,aAAa,CAAC;EACpB,KAAK,MAAM,SAAS,MAAM,gBAAgB,WAAW,SAAS;EAC9D,KAAK,MAAM,OAAO,MAAM,UAAU,WAAW,IAAI,gBAAgB;EACjE,IAAI,CAAC,OAAO,OAAO,YAAY,KAAK,GAAG,WAAW,SAAS;EAC3D,OAAO,KAAK,IAAI,kBAAkB,UAAU,CAAC;CAC9C;CACA,MAAM,OAAO;EACZ,QAAQ;EACR;EACA,MAAM;CACP;CACA,OAAO;EACN;EACA,SAAS,IAAI,iBAAiB,YAAY,MAAM;EAChD;EACA,aAAa,gCAAgC,OAAO;GACnD,GAAG,UAAU,aAAa,MAAM,mBAAmB,KAAK,KAAK,MAAM,eAAe,SAAS,IAAI,MAAM,iBAAiB,KAAK,CAAC;GAC5H,UAAU,OAAO,YAAY,MAAM,SAAS,KAAK,QAAQ,CAAC,IAAI,cAAc,aAAa,KAAK,YAAY,CAAC,CAAC,CAAC;GAC7G;EACD,CAAC;CACF;AACD;AAGA,SAAS,sBAAsB,WAAW;CACzC,OAAO;EACN,IAAI,OAAO;GACV,OAAO;IACN,UAAU;IACV,OAAO;IACP,OAAO,IAAI,cAAc,KAAK;GAC/B;EACD;EACA,QAAQ;GACP,OAAO;IACN,UAAU;IACV,OAAO;IACP,OAAO,IAAI,cAAc,EAAE;GAC5B;EACD;EACA,IAAI,OAAO;GACV,OAAO;IACN,UAAU;IACV,OAAO;IACP,OAAO,IAAI,cAAc,KAAK;GAC/B;EACD;EACA,IAAI,OAAO;GACV,OAAO;IACN,UAAU;IACV,OAAO;IACP,OAAO,IAAI,cAAc,KAAK;GAC/B;EACD;EACA,KAAK,OAAO;GACX,OAAO;IACN,UAAU;IACV,OAAO;IACP,OAAO,IAAI,cAAc,KAAK;GAC/B;EACD;EACA,KAAK,OAAO;GACX,OAAO;IACN,UAAU;IACV,OAAO;IACP,OAAO,IAAI,cAAc,KAAK;GAC/B;EACD;EACA,SAAS,OAAO;GACf,OAAO;IACN,UAAU;IACV,OAAO;IACP,OAAO,IAAI,cAAc,KAAK;GAC/B;EACD;EACA,IAAI,KAAK;GACR,OAAO;IACN,UAAU;IACV,OAAO;IACP,OAAO,IAAI,cAAc,GAAG;GAC7B;EACD;CACD;AACD;AACA,SAAS,sBAAsB;CAC9B,OAAO,IAAI,aAAa,CAAC,IAAI;EAC5B,IAAI,SAAS,MAAM;GAClB,OAAO,sBAAsB,IAAI;EAClC;EACA,MAAM,SAAS,UAAU,MAAM;GAC9B,OAAO,sBAAsB,KAAK,EAAE;EACrC;CACD,CAAC;AACF;AACA,SAAS,uBAAuB,KAAK,WAAW;CAC/C,MAAM,UAAU,CAAC;CACjB,KAAK,MAAM,MAAM,KAAK;EACrB,IAAI,QAAQ,QAAQ,GAAG;EACvB,IAAI,CAAC,OAAO;GACX,QAAQ,CAAC;GACT,QAAQ,GAAG,YAAY;EACxB;EACA,MAAM,GAAG,SAAS,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ;CAC5D;CACA,OAAO;AACR;AAGA,SAAS,SAAS,MAAM,SAAS,SAAS;CACzC,OAAO,gBAAgB,MAAM,SAAS,OAAO;AAC9C;AAGA,SAAS,aAAa,QAAQ;CAC7B,QAAQ,OAAO,MAAf;EACC,KAAK;EACL,KAAK,UAAU,OAAO,CAAC,OAAO,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,OAAO,KAAK;EACjE,KAAK;EACL,KAAK,MAAM,OAAO,OAAO,MAAM,QAAQ,YAAY;EACnD,KAAK,OAAO,OAAO,aAAa,OAAO,IAAI;EAC3C,KAAK,QAAQ,OAAO,CAAC;CACtB;AACD;;;;AAIA,SAAS,SAAS,QAAQ;CACzB,MAAM,OAAO,IAAI,YAAY,iBAAiB,GAAG,kBAAkB,iBAAiB,GAAG,OAAO,CAAC,GAAG,iBAAiB,GAAG,SAAS,GAAG,MAAM;CACxI,OAAO,iBAAiB,GAAG,gBAAgB,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI,IAAI,aAAa,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1G;AACA,SAAS,YAAY,OAAO;CAC3B,OAAO,iBAAiB,GAAG,WAAW,CAAC,iBAAiB,GAAG,KAAK,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3F;AACA,SAAS,SAAS,OAAO,MAAM;CAC9B,OAAO,aAAa,GAAG,iBAAiB,GAAG,YAAY,iBAAiB,GAAG,KAAK,CAAC,GAAG,MAAM,iBAAiB,GAAG,KAAK,CAAC;AACrH;AACA,SAAS,OAAO,OAAO,KAAK;CAC3B,MAAM,OAAO,iBAAiB,KAAK,iBAAiB,GAAG,KAAK,CAAC;CAC7D,MAAM,OAAO,iBAAiB,SAAS,MAAM,gBAAgB,GAAG,CAAC,CAAC;CAClE,MAAM,OAAO,iBAAiB,GAAG,UAAU;EAC1C,iBAAiB,GAAG,KAAK;EACzB,gBAAgB,GAAG,QAAQ,KAAK,IAAI,CAAC;EACrC;CACD,CAAC;CACD,OAAO,SAAS,OAAO,aAAa,GAAG,iBAAiB,GAAG,QAAQ,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,GAAG,gBAAgB,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACjI;AACA,SAAS,mBAAmB,UAAU,OAAO,OAAO;CACnD,QAAQ,UAAR;EACC,KAAK,QAAQ,OAAO,gBAAgB,GAAG,KAAK;EAC5C,KAAK,UAAU,OAAO,iBAAiB,GAAG,SAAS;EACnD,KAAK,QAAQ,OAAO,iBAAiB,IAAI,iBAAiB,GAAG,WAAW,CAAC,iBAAiB,GAAG,KAAK,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,GAAG,gBAAgB,GAAG,KAAK,CAAC;EACvJ,KAAK,QAAQ,OAAO,iBAAiB,SAAS,iBAAiB,GAAG,WAAW,CAAC,iBAAiB,GAAG,KAAK,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,GAAG,gBAAgB,GAAG,KAAK,CAAC;EAC5J,KAAK,SAAS,OAAO,iBAAiB,GAAG,iBAAiB,CAAC,YAAY,KAAK,GAAG,gBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;EAC3G,KAAK,aAAa,OAAO,aAAa,GAAG,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,GAAG,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,GAAG,YAAY,KAAK,GAAG,iBAAiB,GAAG,iBAAiB,CAAC,YAAY,KAAK,GAAG,gBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;EACjO,KAAK;GACJ,IAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,EAAE,iBAAiB,gBAAgB,MAAM,SAAS,6BAA6B,kDAAkD,MAAM,iHAAiH,EAAE,MAAM;IAClT,QAAQ;IACR;GACD,EAAE,CAAC;GACH,OAAO,SAAS,OAAO,oBAAoB,GAAG,iBAAiB,GAAG,KAAK,GAAG,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,GAAG,OAAO,GAAG,gBAAgB,GAAG,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;EACzK,KAAK,QAAQ,OAAO,OAAO,OAAO,iBAAiB,gBAAgB,MAAM,QAAQ,KAAK;EACtF,SAAS,MAAM,SAAS,6BAA6B,yBAAyB,SAAS,OAAO,MAAM,yDAAyD,EAAE,MAAM;GACpK,QAAQ;GACR;GACA;EACD,EAAE,CAAC;CACJ;AACD;;;;AAIA,SAAS,eAAe,OAAO;CAC9B,MAAM,YAAY,SAAS,MAAM,MAAM;CACvC,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,CAAC,UAAU,UAAU,OAAO,QAAQ,MAAM,MAAM,GAAG,KAAK,MAAM,CAAC,OAAO,UAAU,OAAO,QAAQ,KAAK,GAAG;EACjH,MAAM,WAAW,mBAAmB,UAAU,OAAO,KAAK;EAC1D,MAAM,UAAU,MAAM,OAAO;EAC7B,OAAO,SAAS,aAAa,UAAU,MAAM,WAAW,IAAI,KAAK,KAAK,YAAY,KAAK,IAAI,aAAa,GAAG,WAAW,gBAAgB,GAAG,OAAO,GAAG,QAAQ,IAAI;CAChK;CACA,KAAK,MAAM,CAAC,OAAO,UAAU,OAAO,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,OAAO,QAAQ,KAAK,GAAG,OAAO,SAAS,aAAa,GAAG,WAAW,gBAAgB,GAAG,KAAK,GAAG,iBAAiB,GAAG,KAAK,CAAC;CAC9L,OAAO,CAAC,IAAI,oBAAoB,MAAM,CAAC;AACxC;AAGA,MAAM,uCAAuC,IAAI,IAAI;CACpD;CACA;CACA;CACA;CACA;CACA;AACD,CAAC;AACD,MAAM,uCAAuC,IAAI,IAAI,CAAC,OAAO,MAAM,CAAC;AACpE,SAAS,sBAAsB,OAAO,WAAW;CAChD,OAAO,MAAM,QAAQ,cAAc;AACpC;AACA,SAAS,qBAAqB,WAAW;CACxC,MAAM,yBAAyB,IAAI,IAAI;CACvC,KAAK,MAAM,iBAAiB,OAAO,OAAO,SAAS,GAAG,KAAK,MAAM,aAAa,OAAO,KAAK,aAAa,GAAG,OAAO,IAAI,UAAU,MAAM,GAAG,CAAC,CAAC,MAAM,SAAS;CACzJ,OAAO;AACR;AACA,SAAS,gBAAgB,OAAO;CAC/B,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC3E;AACA,IAAI,sBAAsB,MAAM,oBAAoB;CACnD;CACA;CACA;CACA;CACA;CACA;CACA;CACA,YAAY,UAAU,WAAW,UAAU,kBAAkB;EAC5D,KAAKA,YAAY;EACjB,KAAKC,aAAa;EAClB,KAAKC,YAAY;EACjB,KAAKC,oBAAoB;EACzB,MAAM,QAAQ,UAAU,+BAA+B,SAAS,MAAM,CAAC,CAAC,UAAU;EAClF,KAAKC,kBAAkB,sBAAsB,OAAO,SAAS;EAC7D,KAAKC,SAAS,qBAAqB;CACpC;CACA,QAAQ,OAAO;EACd,MAAM,QAAQ,UAAU,+BAA+B,KAAKL,UAAU,MAAM,CAAC,CAAC,KAAKC,WAAW;EAC9F,MAAM,gBAAgB,OAAO;EAC7B,MAAM,sBAAsB,KAAKK;EACjC,IAAI,wBAAwB,KAAK,GAAG;GACnC,MAAM,gBAAgB,OAAO,WAAW,oBAAoB,EAAE;GAC9D,MAAM,SAAS,6BAA6B,YAAY,MAAM,gCAAgC,KAAKL,WAAW,qBAAqB,cAAc,wEAAwE,EAAE,MAAM;IAChO,QAAQ;IACR,OAAO,KAAKA;IACZ,SAAS;IACT;IACA,QAAQ;GACT,EAAE,CAAC;EACJ;EACA,MAAM,iBAAiB,OAAO,QAAQ,OAAO,YAAY,CAAC,CAAC;EAC3D,MAAM,cAAc,gBAAgB,eAAe,MAAM,GAAG,WAAW,MAAM,UAAU,KAAK,CAAC,GAAG,KAAK,KAAK;EAC1G,IAAI,CAAC,iBAAiB,gBAAgB,KAAK,GAAG;GAC7C,MAAM,iBAAiB,gBAAgB,eAAe,KAAK,GAAG,WAAW,MAAM,KAAK,IAAI,CAAC;GACzF,MAAM,SAAS,wBAAwB,eAAe,WAAW,IAAI,YAAY,MAAM,0BAA0B,KAAKA,WAAW,0CAA0C,YAAY,MAAM,0BAA0B,KAAKA,WAAW,2CAA2C,eAAe,KAAK,aAAa,IAAI,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,EAAE,MAAM;IACzV,QAAQ;IACR,UAAU;IACV,OAAO,KAAKA;IACZ;IACA;GACD,EAAE,CAAC;EACJ;EACA,MAAM,SAAS,iBAAiB,GAAG,cAAc,OAAO,IAAI,cAAc,KAAK,CAAC;EAChF,OAAO,KAAKM,kBAAkB,EAAE,SAAS,CAAC,GAAG,KAAKF,OAAO,SAAS,MAAM,EAAE,GAAG,WAAW;CACzF;CACA,MAAM,QAAQ;EACb,IAAI,kBAAkB,MAAM,GAAG;GAC9B,MAAM,UAAU,OAAO,QAAQ,EAAE,QAAQ,gBAAgB,KAAKG,mBAAmB,WAAW,EAAE,CAAC;GAC/F,OAAO,KAAKC,OAAO,EAAE,SAAS,CAAC,GAAG,KAAKJ,OAAO,SAAS,OAAO,EAAE,CAAC;EAClE;EACA,MAAM,WAAW,KAAKK,oBAAoB,UAAU,MAAM,CAAC;EAC3D,OAAO,KAAKD,OAAO,EAAE,SAAS,CAAC,GAAG,KAAKJ,OAAO,SAAS,GAAG,QAAQ,EAAE,CAAC;CACtE;CACA,OAAO,GAAG,QAAQ;EACjB,OAAO,KAAKI,OAAO,EAAE,gBAAgB,CAAC,GAAG,KAAKJ,OAAO,kBAAkB,CAAC,GAAG,GAAG,MAAM,EAAE,CAAC;CACxF;CACA,QAAQ,cAAc;EACrB,MAAM,WAAW,UAAU,+BAA+B,KAAKL,UAAU,MAAM,CAAC,CAAC,KAAKC,WAAW,CAAC,CAAC,YAAY;EAC/G,IAAI,CAAC,UAAU,MAAM,SAAS,wBAAwB,qBAAqB,aAAa,cAAc,KAAKA,WAAW,IAAI,EAAE,MAAM;GACjI,OAAO,KAAKA;GACZ,UAAU;EACX,EAAE,CAAC;EACH,IAAI,EAAE,QAAQ,WAAW,MAAM,SAAS,2BAA2B,aAAa,aAAa,oEAAoE,EAAE,MAAM;GACxK,OAAO,KAAKA;GACZ,UAAU;EACX,EAAE,CAAC;EACH,MAAM,MAAM;EACZ,MAAM,aAAa,IAAI,GAAG,YAAY;EACtC,MAAM,eAAe,IAAI,GAAG,aAAa;EACzC,IAAI,CAAC,cAAc,CAAC,gBAAgB,IAAI,GAAG,YAAY,WAAW,KAAK,IAAI,GAAG,aAAa,WAAW,GAAG,MAAM,SAAS,2BAA2B,wDAAwD,aAAa,IAAI,EAAE,MAAM;GACnO,OAAO,KAAKA;GACZ,UAAU;EACX,EAAE,CAAC;EACH,MAAM,kBAAkB,IAAI,GAAG;EAC/B,MAAM,cAAc,OAAO,+BAA+B,KAAKD,UAAU,MAAM,CAAC,CAAC,gBAAgB;EACjG,IAAI,CAAC,aAAa,MAAM,IAAI,cAAc,iBAAiB,gBAAgB,4BAA4B,aAAa,EAAE;EACtH,MAAM,cAAc;GACnB;GACA;GACA,MAAM,sBAAsB,aAAa,eAAe;GACxD;GACA;GACA,aAAa,IAAI;EAClB;EACA,OAAO,UAAU,KAAKS,OAAO,EAAE,UAAU,CAAC,GAAG,KAAKJ,OAAO,UAAU,WAAW,EAAE,CAAC,CAAC;CACnF;CACA,QAAQ,MAAM;EACb,MAAM,SAAS;GACd,GAAG,KAAKA,OAAO;GACf,GAAG;EACJ;EACA,OAAO,KAAKI,OAAO,EAAE,SAAS,OAAO,CAAC;CACvC;CACA,MAAM,GAAG;EACR,OAAO,KAAKA,OAAO,EAAE,OAAO,EAAE,CAAC;CAChC;CACA,OAAO,GAAG;EACT,OAAO,KAAKA,OAAO,EAAE,QAAQ,EAAE,CAAC;CACjC;CACA,MAAM;EACL,OAAO,KAAKE,OAAO;CACpB;CACA,MAAM,QAAQ;EACb,MAAM,SAAS,KAAKF,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAACE,OAAO;EAChD,WAAW,MAAM,OAAO,QAAQ,OAAO;EACvC,OAAO;CACR;CACA,MAAM,OAAO,MAAM;EAClB,KAAKC,gBAAgB,QAAQ;EAC7B,MAAM,aAAa,KAAKC,oBAAoB,KAAKC,qBAAqB,KAAKC,gBAAgB,UAAU,IAAI,CAAC,CAAC,mBAAmB,IAAI,IAAI,CAAC;EACvI,MAAM,WAAW,KAAKC,YAAY,UAAU;EAC5C,MAAM,UAAU,IAAI,iBAAiB,KAAKZ,iBAAiB,QAAQ;EACnE,OAAO,UAAU,WAAW,MAAM,KAAKa,WAAW,SAAS,KAAKC,sBAAsB,CAAC,EAAA,CAAG,EAAE,CAAC,CAAC,QAAQ;CACvG;CACA,UAAU,MAAM;EACf,KAAKN,gBAAgB,WAAW;EAChC,MAAM,OAAO;EACb,gBAAgB,MAAM;GACrB,MAAM,oCAAoC,IAAI,IAAI;GAClD,MAAM,iBAAiB,KAAK,KAAK,MAAM,KAAKC,oBAAoB,KAAKC,qBAAqB,KAAKC,gBAAgB,UAAU,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC;GACjJ,MAAM,UAAU,IAAI,kBAAkB,KAAKX,iBAAiB,eAAe,KAAK,MAAM,KAAKY,YAAY,CAAC,CAAC,CAAC;GAC1G,MAAM,EAAE,cAAc,WAAW,MAAM,KAAKC,WAAW,SAAS,KAAKE,uBAAuB,CAAC,EAAA,CAAG,EAAE;GAClG,KAAK,MAAM,YAAY,WAAW,MAAM,UAAU,QAAQ;EAC3D;EACA,OAAO,IAAI,oBAAoB,IAAI,CAAC;CACrC;CACA,MAAM,eAAe,MAAM;EAC1B,KAAKP,gBAAgB,gBAAgB;EACrC,MAAM,oCAAoC,IAAI,IAAI;EAClD,MAAM,YAAY,KAAK,KAAK,MAAM,KAAKI,YAAY,KAAKH,oBAAoB,KAAKC,qBAAqB,KAAKC,gBAAgB,UAAU,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC;EAC9J,MAAM,UAAU,IAAI,kBAAkB,KAAKX,iBAAiB,SAAS;EACrE,OAAO,WAAW,MAAM,KAAKa,WAAW,OAAO,EAAA,CAAG,EAAE,CAAC,CAAC;CACvD;CACA,MAAM,OAAO,gBAAgB;EAC5B,KAAKG,gBAAgB,QAAQ;EAC7B,KAAKC,iBAAiB,QAAQ;EAC9B,KAAKT,gBAAgB,QAAQ;EAC7B,MAAM,SAAS,KAAKU,cAAc;EAClC,MAAM,YAAY,KAAKC,oBAAoB,KAAKC,kBAAkB,cAAc,mBAAmB,IAAI,IAAI,CAAC;EAC5G,MAAM,UAAU,IAAI,wBAAwB,KAAKpB,iBAAiB,QAAQ,WAAW,KAAK;EAC1F,MAAM,UAAU,MAAM,KAAKa,WAAW,SAAS,KAAKQ,kBAAkB,CAAC,EAAA,CAAG;EAC1E,OAAO,WAAW,KAAK,IAAI,OAAO,UAAU,MAAM;CACnD;CACA,UAAU,gBAAgB;EACzB,KAAKL,gBAAgB,WAAW;EAChC,KAAKC,iBAAiB,WAAW;EACjC,MAAM,OAAO;EACb,gBAAgB,MAAM;GACrB,MAAM,MAAM,MAAM,KAAKK,iBAAiB;GACxC,IAAI,IAAI,WAAW,GAAG;GACtB,MAAM,SAAS,KAAKJ,cAAc;GAClC,MAAM,YAAY,KAAKC,oBAAoB,KAAKC,kBAAkB,cAAc,mBAAmB,IAAI,IAAI,CAAC;GAC5G,MAAM,UAAU,IAAI,kBAAkB,KAAKpB,iBAAiB,QAAQ,SAAS;GAC7E,MAAM,KAAKa,WAAW,OAAO;GAC7B,MAAM,WAAW,iBAAiB,GAAG,OAAO,IAAI,KAAK,OAAO,IAAI,cAAc,EAAE,CAAC,CAAC;GAClF,OAAO,KAAKR,OAAO,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAACE,OAAO;EACpD;EACA,OAAO,IAAI,oBAAoB,IAAI,CAAC;CACrC;CACA,MAAM,eAAe,gBAAgB;EACpC,KAAKS,gBAAgB,gBAAgB;EACrC,KAAKC,iBAAiB,gBAAgB;EACtC,KAAKT,gBAAgB,gBAAgB;EACrC,MAAM,SAAS,KAAKU,cAAc;EAClC,MAAM,YAAY,KAAKC,oBAAoB,KAAKC,kBAAkB,cAAc,mBAAmB,IAAI,IAAI,CAAC;EAC5G,MAAM,UAAU,IAAI,kBAAkB,KAAKpB,iBAAiB,QAAQ,SAAS;EAC7E,QAAQ,MAAM,KAAKuB,aAAa,OAAO,EAAA,CAAG;CAC3C;CACA,MAAM,SAAS;EACd,KAAKP,gBAAgB,QAAQ;EAC7B,KAAKC,iBAAiB,QAAQ;EAC9B,KAAKT,gBAAgB,QAAQ;EAC7B,MAAM,SAAS,KAAKU,cAAc;EAClC,MAAM,UAAU,IAAI,wBAAwB,KAAKlB,iBAAiB,MAAM;EACxE,MAAM,UAAU,MAAM,KAAKa,WAAW,SAAS,KAAKQ,kBAAkB,CAAC,EAAA,CAAG;EAC1E,OAAO,WAAW,KAAK,IAAI,OAAO,UAAU,MAAM;CACnD;CACA,YAAY;EACX,KAAKL,gBAAgB,WAAW;EAChC,KAAKC,iBAAiB,WAAW;EACjC,MAAM,OAAO;EACb,gBAAgB,MAAM;GACrB,MAAM,OAAO,CAAC;GACd,WAAW,MAAM,OAAO,KAAKV,OAAO,GAAG,KAAK,KAAK,GAAG;GACpD,MAAM,SAAS,KAAKW,cAAc;GAClC,MAAM,UAAU,IAAI,kBAAkB,KAAKlB,iBAAiB,MAAM;GAClE,MAAM,KAAKa,WAAW,OAAO;GAC7B,OAAO;EACR;EACA,OAAO,IAAI,oBAAoB,IAAI,CAAC;CACrC;CACA,MAAM,iBAAiB;EACtB,KAAKG,gBAAgB,gBAAgB;EACrC,KAAKC,iBAAiB,gBAAgB;EACtC,KAAKT,gBAAgB,gBAAgB;EACrC,MAAM,SAAS,KAAKU,cAAc;EAClC,MAAM,UAAU,IAAI,kBAAkB,KAAKlB,iBAAiB,MAAM;EAClE,QAAQ,MAAM,KAAKuB,aAAa,OAAO,EAAA,CAAG;CAC3C;CACA,MAAM,OAAO,OAAO;EACnB,KAAKP,gBAAgB,QAAQ;EAC7B,KAAKC,iBAAiB,QAAQ;EAC9B,KAAKT,gBAAgB,QAAQ;EAC7B,MAAM,SAAS,KAAKU,cAAc;EAClC,MAAM,oCAAoC,IAAI,IAAI;EAClD,MAAM,iBAAiB,KAAKR,qBAAqB,KAAKC,gBAAgB,UAAU,MAAM,MAAM,CAAC,CAAC;EAC9F,MAAM,kBAAkB,KAAKC,YAAY,KAAKH,oBAAoB,gBAAgB,iBAAiB,CAAC;EACpG,IAAI;EACJ,IAAI,OAAO,MAAM,WAAW,YAAY;GACvC,MAAM,WAAW,oBAAoB;GACrC,MAAM,MAAM,MAAM,OAAO,QAAQ;GACjC,IAAI,IAAI,MAAM,OAAO,GAAG,UAAU,KAAK,GAAG,MAAM,SAAS,uBAAuB,yCAAyC,EAAE,MAAM,EAAE,OAAO,MAAM,EAAE,CAAC;GACnJ,MAAM,YAAY,IAAI,MAAM,OAAO,GAAG,MAAM,SAAS,GAAG,CAAC;GACzD,IAAI,WAAW,MAAM,SAAS,6BAA6B,+DAA+D,UAAU,MAAM,+IAA+I,EAAE,MAAM;IAChS,QAAQ;IACR,OAAO,UAAU;GAClB,EAAE,CAAC;GACH,YAAY,uBAAuB,MAAM,OAAO,OAAO,aAAa,KAAKe,kBAAkB,OAAO,OAAO,QAAQ,CAAC;EACnH,OAAO;GACN,MAAM,YAAY,KAAKC,aAAa,UAAU,MAAM,MAAM,CAAC;GAC3D,YAAY,CAAC;GACb,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,SAAS,GAAG,UAAU,UAAU;EAC5D;EACA,MAAM,uBAAuB,qBAAqB,SAAS;EAC3D,MAAM,qBAAqB,KAAKN,oBAAoB,WAAW,iBAAiB;EAChF,MAAM,uBAAuB,OAAO,KAAK,mBAAmB,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,UAAU,CAAC,qBAAqB,IAAI,KAAK,KAAK,OAAO,OAAO,gBAAgB,KAAK,CAAC;EACrK,IAAI,qBAAqB,WAAW,GAAG,OAAO,KAAKO,eAAe,QAAQ,oBAAoB,eAAe;EAC7G,OAAO,WAAW,MAAM,KAAKb,WAAW,IAAI,wBAAwB,KAAKb,iBAAiB,QAAQ,eAAe;GAChH;GACA,QAAQ;GACR,QAAQ;GACR,YAAY,IAAI,IAAI,oBAAoB;EACzC,CAAC,GAAG,IAAI,GAAG,KAAKqB,kBAAkB,CAAC,EAAA,CAAG,EAAE;CACzC;CACA,MAAMK,eAAe,QAAQ,WAAW,iBAAiB;EACxD,MAAM,gBAAgB,qBAAqB,SAAS;EACpD,MAAM,mBAAmB,CAAC;EAC1B,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,eAAe,GAAG,IAAI,CAAC,cAAc,IAAI,GAAG,GAAG,iBAAiB,OAAO;EACjH,MAAM,UAAU,IAAI,wBAAwB,KAAK1B,iBAAiB,QAAQ,OAAO,KAAK,gBAAgB,CAAC,CAAC,SAAS,IAAI;GACpH,GAAG;GACH,cAAc;EACf,IAAI,WAAW,IAAI;EACnB,OAAO,WAAW,MAAM,KAAKa,WAAW,SAAS,KAAKQ,kBAAkB,CAAC,EAAA,CAAG,EAAE;CAC/E;CACA,MAAMC,mBAAmB;EACxB,MAAM,UAAU,KAAKjB,OAAO;GAC3B,UAAU,CAAC;GACX,gBAAgB,CAAC,KAAK;GACtB,SAAS,KAAK;GACd,OAAO,KAAK;GACZ,QAAQ,KAAK;EACd,CAAC;EACD,MAAM,MAAM,CAAC;EACb,MAAM,EAAE,aAAa,KAAK,GAAG,qBAAqB,QAAQsB,SAAS;EACnE,WAAW,MAAM,OAAO,KAAK7B,UAAU,MAAM,gBAAgB,GAAG;GAC/D,MAAM,aAAa,UAAU,GAAG;GAChC,IAAI,KAAK,WAAW,MAAM;EAC3B;EACA,OAAO;CACR;CACA,SAAS;EACR,MAAM,OAAO,KAAK6B,SAAS;EAC3B,OAAO,KAAK7B,UAAU,MAAM,IAAI;CACjC;CACA,WAAW;EACV,MAAM,QAAQ,KAAK8B,wBAAwB;EAC3C,IAAI,CAAC,OAAO,MAAM,SAAS,qBAAqB,mBAAmB,KAAK/B,WAAW,KAAK,EAAE,MAAM,EAAE,OAAO,KAAKA,WAAW,EAAE,CAAC;EAC5H,OAAO,kBAAkB,KAAKG,iBAAiB,KAAKC,QAAQ,KAAKL,UAAU,QAAQ,aAAa,OAAO,KAAKiC,cAAc,CAAC;CAC5H;CACA,aAAa,SAAS,aAAa;EAClC,OAAO;GACN,YAAY,KAAK7B;GACjB;GACA,MAAM,KAAK8B,UAAU;GACrB,GAAG,UAAU,eAAe,WAAW;EACxC;CACD;CACA,aAAa,SAAS;EACrB,OAAO,KAAKhC,UAAU,QAAQ,KAAKiC,aAAa,OAAO,CAAC;CACzD;CACA,MAAMlB,WAAW,SAAS,aAAa;EACtC,MAAM,OAAO,KAAKkB,aAAa,SAAS,WAAW;EACnD,MAAM,SAAS,KAAKjC,UAAU,MAAM,IAAI;EACxC,MAAM,OAAO,CAAC;EACd,WAAW,MAAM,OAAO,QAAQ,KAAK,KAAK,GAAG;EAC7C,OAAO;CACR;CACA,eAAe;EACd,OAAO,KAAK8B,wBAAwB,CAAC,EAAE,UAAU,CAAC;CACnD;CACA,0BAA0B;EACzB,MAAM,SAAS,+BAA+B,KAAKhC,UAAU,MAAM;EACnE,MAAM,QAAQ,UAAU,OAAO,KAAKC,WAAW;EAC/C,IAAI,UAAU,KAAK,KAAK,KAAKK,iBAAiB,KAAK,GAAG,OAAO;EAC7D,MAAM,UAAU,UAAU,OAAO,KAAKA,aAAa;EACnD,OAAO,YAAY,KAAK,IAAI,QAAQ;GACnC,GAAG;GACH,QAAQ;IACP,GAAG,MAAM;IACT,GAAG,QAAQ;GACZ;EACD;CACD;CACA,gBAAgB;EACf,MAAM,UAAU,KAAK8B,aAAa,CAAC,CAAC;EACpC,OAAO,UAAU,+BAA+B,OAAO,IAAI,OAAO,OAAO,EAAE,MAAM,UAAU,CAAC;CAC7F;CACA,wBAAwB;EACvB,OAAO,uBAAuB;GAC7B,MAAM;GACN,QAAQ;IACP,YAAY,KAAKC,cAAc;IAC/B,UAAU,KAAKC,eAAe;GAC/B;EACD,CAAC;CACF;CACA,yBAAyB;EACxB,OAAO,uBAAuB;GAC7B,MAAM;GACN,QAAQ;IACP,aAAa;KACZ,MAAM;KACN,UAAU;KACV,SAAS,KAAKD,cAAc;IAC7B;IACA,WAAW;KACV,MAAM;KACN,UAAU;KACV,SAAS,KAAKC,eAAe;IAC9B;GACD;EACD,CAAC;CACF;CACA,iBAAiB;EAChB,MAAM,QAAQ,KAAKb,kBAAkB;EACrC,OAAO,MAAM,SAAS,aAAa;GAClC,MAAM;GACN,UAAU;GACV,QAAQ,MAAM;GACd,KAAK;EACN,IAAI,EAAE,MAAM,UAAU;CACvB;CACA,oBAAoB;EACnB,MAAM,QAAQ,KAAKO,wBAAwB;EAC3C,IAAI,CAAC,OAAO,OAAO,OAAO,OAAO,EAAE,MAAM,UAAU,CAAC;EACpD,OAAO,gCAAgC,OAAO,EAAE,cAAc,KAAKC,cAAc,EAAE,CAAC;CACrF;CACA,gBAAgB;EACf,OAAO,qCAAqC,KAAKjC,UAAU,MAAM,KAAK,CAAC;CACxE;CACA,oBAAoB,MAAM;EACzB,MAAM,SAAS,KAAKoC,aAAa;EACjC,MAAM,UAAU,CAAC;EACjB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,GAAG;GAChD,IAAI,UAAU,KAAK,GAAG;GACtB,MAAM,UAAU,KAAKG,gBAAgB,OAAO,OAAO,MAAM,KAAK,QAAQ;GACtE,QAAQ,KAAK,iBAAiB,GAAG,KAAK,OAAO,CAAC;EAC/C;EACA,OAAO;CACR;;;;CAIA,mBAAmB,QAAQ;EAC1B,MAAM,QAAQ,KAAKC,aAAa,OAAO,KAAK;EAC5C,IAAI,OAAO,KAAK,SAAS,UAAU,OAAO;EAC1C,MAAM,UAAU,UAAU;GACzB,IAAI,UAAU,MAAM,OAAO;GAC3B,IAAI,iBAAiB,eAAe,OAAO,MAAM,YAAY,KAAK,IAAI,KAAKD,gBAAgB,MAAM,OAAO,OAAO,OAAO,OAAO,QAAQ,IAAI;GACzI,IAAI,MAAM,QAAQ,MAAM,QAAQ,KAAK,GAAG,OAAO,MAAM,IAAI,MAAM;GAC/D,OAAO,KAAKA,gBAAgB,OAAO,OAAO,OAAO,OAAO,QAAQ;EACjE;EACA,IAAI,qBAAqB,IAAI,OAAO,EAAE,GAAG,OAAO,iBAAiB,GAAG,OAAO,OAAO,OAAO,IAAI,OAAO,OAAO,KAAK,CAAC;EACjH,IAAI,qBAAqB,IAAI,OAAO,EAAE,KAAK,MAAM,QAAQ,OAAO,KAAK,GAAG;GACvE,MAAM,SAAS,OAAO;GACtB,MAAM,UAAU,OAAO,IAAI,MAAM;GACjC,OAAO,QAAQ,OAAO,OAAO,UAAU,UAAU,OAAO,MAAM,IAAI,SAAS,iBAAiB,GAAG,OAAO,OAAO,OAAO,IAAI,OAAO;EAChI;EACA,OAAO;CACR;CACA,aAAa,MAAM;EAClB,MAAM,CAAC,MAAM,GAAG,QAAQ,KAAK,MAAM,GAAG;EACtC,IAAI,QAAQ,SAAS,KAAK,IAAI,KAAK,IAAI,KAAKH,aAAa,CAAC,CAAC;EAC3D,KAAK,MAAM,WAAW,MAAM;GAC3B,IAAI,OAAO,KAAK,SAAS,eAAe,OAAO,KAAK;GACpD,QAAQ,qCAAqC,KAAKpC,UAAU,MAAM,CAAC,GAAG,MAAM,KAAK,KAAK,EAAE,OAAO;EAChG;EACA,OAAO;CACR;;;;CAIA,gBAAgB,OAAO,OAAO,MAAM,SAAS;EAC5C,IAAI,UAAU,KAAK,GAAG,OAAO,IAAI,cAAc,KAAK;EACpD,IAAI,UAAU,MAAM,OAAO,KAAKyC,WAAW,OAAO,MAAM,OAAO;EAC/D,IAAI,MAAM,KAAK,SAAS,UAAU;GACjC,IAAI,YAAY,SAAS,KAAKC,kBAAkB,OAAO,OAAO,IAAI;GAClE,OAAO,KAAKC,aAAa,OAAO,OAAO,MAAM,OAAO;EACrD;EACA,IAAI,MAAM,KAAK,SAAS,eAAe;GACtC,MAAM,SAAS,MAAM,KAAK;GAC1B,MAAM,QAAQ,qCAAqC,KAAK3C,UAAU,MAAM,CAAC,GAAG;GAC5E,IAAI,CAAC,OAAO,OAAO,IAAI,cAAc,KAAK;GAC1C,IAAI,MAAM,QAAQ,MAAM,QAAQ,KAAK,GAAG,OAAO,MAAM,KAAK,MAAM,UAAU,SAAS,OAAO,OAAO,KAAK4C,iBAAiB,UAAU,IAAI,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,OAAO,CAAC;GAC3K,OAAO,KAAKA,iBAAiB,UAAU,KAAK,GAAG,OAAO,MAAM,OAAO;EACpE;EACA,OAAO,IAAI,cAAc,KAAK;CAC/B;CACA,WAAW,OAAO,MAAM,SAAS;EAChC,IAAI,YAAY,WAAW,CAAC,MAAM,UAAU,MAAM,aAAa,yBAAyB,0BAA0B,KAAK,kBAAkB,KAAKxC,gBAAgB,8CAA8C;GAC3M,OAAO;GACP,YAAY,KAAKA;EAClB,CAAC;EACD,OAAO;CACR;;;;CAIA,kBAAkB,OAAO,OAAO,MAAM;EACrC,MAAM,WAAW,MAAM;EACvB,IAAI,aAAa,KAAK,KAAK,SAAS,eAAe,UAAU,UAAU,MAAM;EAC7E,MAAM,eAAe,KAAKJ,UAAU,OAAO,WAAW,SAAS,YAAY,EAAE,OAAO,SAAS;EAC7F,IAAI,iBAAiB,KAAK,GAAG;EAC7B,MAAM,UAAU,aAAa,QAAQ,KAAK,WAAW,OAAO,KAAK;EACjE,MAAM,WAAW,MAAM,QAAQ,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAA,CAAG,MAAM,UAAU,UAAU,QAAQ,CAAC,QAAQ,SAAS,KAAK,CAAC;EACjI,IAAI,YAAY,KAAK,GAAG;EACxB,MAAM,SAAS,QAAQ,KAAK,UAAU,KAAK,UAAU,KAAK,CAAC;EAC3D,MAAM,OAAO,OAAO,SAAS,IAAI,GAAG,OAAO,MAAM,GAAG,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,OAAO,GAAG,EAAE,MAAM,OAAO,KAAK,EAAE;EAC1G,MAAM,aAAa,yBAAyB,0BAA0B,KAAK,kBAAkB,KAAKI,gBAAgB,KAAK,KAAK,UAAU,OAAO,EAAE,0BAA0B,SAAS,WAAW,mBAAmB,QAAQ;GACvN,OAAO;GACP,YAAY,KAAKA;GACjB,UAAU;GACV;EACD,CAAC;CACF;;;;CAIA,aAAa,OAAO,OAAO,MAAM,SAAS;EACzC,IAAI,MAAM,KAAK,SAAS,UAAU,OAAO,IAAI,cAAc,KAAK;EAChE,MAAM,UAAU,MAAM,KAAK;EAC3B,IAAI,MAAM,QAAQ,MAAM,QAAQ,KAAK,GAAG;GACvC,MAAM,cAAc,MAAM,KAAK,mBAAmB,YAAY;GAC9D,OAAO,MAAM,KAAK,SAAS,UAAU,YAAY,QAAQ,cAAc,OAAO,KAAKyC,YAAY,SAAS,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;EACrI;EACA,OAAO,KAAKA,YAAY,OAAO,SAAS,IAAI;CAC7C;CACA,YAAY,OAAO,SAAS,MAAM;EACjC,OAAO,IAAI,cAAc,OAAO;GAC/B;GACA,MAAM;GACN,YAAY,KAAKzC;EAClB,CAAC;CACF;CACA,iBAAiB,MAAM,OAAO,MAAM,SAAS;EAC5C,MAAM,MAAM,CAAC;EACb,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,GAAG;GAChD,IAAI,UAAU,KAAK,GAAG;GACtB,MAAM,WAAW,MAAM,OAAO;GAC9B,IAAI,OAAO,KAAKmC,gBAAgB,OAAO,UAAU,GAAG,KAAK,GAAG,OAAO,OAAO;EAC3E;EACA,OAAO;CACR;CACA,YAAY,MAAM;EACjB,MAAM,SAAS,KAAKH,aAAa;EACjC,MAAM,MAAM,CAAC;EACb,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,GAAG,IAAI,UAAU,KAAK,GAAG,IAAI,OAAO,KAAKG,gBAAgB,OAAO,OAAO,MAAM,KAAK,OAAO;EACvI,OAAO;CACR;CACA,aAAa,MAAM;EAClB,MAAM,SAAS,KAAKH,aAAa;EACjC,MAAM,SAAS,CAAC;EAChB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,GAAG;GAChD,IAAI,QAAQ,SAAS,UAAU,KAAK,GAAG,MAAM,SAAS,uBAAuB,yCAAyC,EAAE,MAAM,EAAE,OAAO,MAAM,EAAE,CAAC;GAChJ,IAAI,UAAU,KAAK,GAAG,OAAO,OAAO,KAAKG,gBAAgB,OAAO,OAAO,MAAM,KAAK,OAAO;EAC1F;EACA,OAAO;CACR;CACA,iBAAiB,IAAI,QAAQ,mBAAmB;EAC/C,MAAM,UAAU,KAAKpC,mBAAmB,sBAAsB;GAC7D;GACA,WAAW;GACX,OAAO,KAAKC;GACZ;GACA;EACD,CAAC,KAAK,CAAC;EACP,OAAO,OAAO,YAAY,QAAQ,KAAK,EAAE,OAAO,YAAY,CAAC,OAAO,KAAK,CAAC,CAAC;CAC5E;CACA,oBAAoB,QAAQ,mBAAmB;EAC9C,OAAO;GACN,GAAG;GACH,GAAG,KAAK0C,iBAAiB,UAAU,QAAQ,iBAAiB;EAC7D;CACD;CACA,oBAAoB,WAAW,mBAAmB;EACjD,MAAM,WAAW,OAAO,YAAY,CAAC,GAAG,qBAAqB,SAAS,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;EACtG,MAAM,YAAY,KAAKA,iBAAiB,UAAU,UAAU,iBAAiB;EAC7E,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,WAAW,GAAG,OAAO;EAChD,OAAO;GACN,GAAG;GACH,MAAM;IACL,GAAG,UAAU;IACb,GAAG,KAAKjB,aAAa,SAAS;GAC/B;EACD;CACD;CACA,gBAAgB,MAAM;EACrB,MAAM,SAAS,CAAC;EAChB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,GAAG,IAAI,UAAU,KAAK,GAAG,OAAO,OAAO;EACrF,OAAO;CACR;CACA,kBAAkB,MAAM;EACvB,OAAO,EAAE,MAAM,KAAKA,aAAa,IAAI,EAAE;CACxC;CACA,kBAAkB,gBAAgB;EACjC,IAAI,OAAO,mBAAmB,YAAY;GACzC,MAAM,MAAM,eAAe,oBAAoB,CAAC;GAChD,IAAI,IAAI,MAAM,OAAO,GAAG,UAAU,KAAK,GAAG,MAAM,SAAS,uBAAuB,yCAAyC,EAAE,MAAM,EAAE,OAAO,MAAM,EAAE,CAAC;GACnJ,IAAI,IAAI,WAAW,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE;GACxC,OAAO,uBAAuB,MAAM,OAAO,OAAO,aAAa,KAAKD,kBAAkB,OAAO,OAAO,QAAQ,CAAC;EAC9G;EACA,OAAO,KAAKmB,kBAAkB,UAAU,cAAc,CAAC;CACxD;;;;CAIA,kBAAkB,MAAM,OAAO,UAAU;EACxC,IAAI,aAAa,YAAY,aAAa,UAAU,EAAE,iBAAiB,gBAAgB,OAAO;EAC9F,MAAM,QAAQ,KAAKP,aAAa,IAAI;EACpC,IAAI,UAAU,KAAK,GAAG,OAAO;EAC7B,IAAI,aAAa,QAAQ,OAAO,KAAKD,gBAAgB,MAAM,OAAO,OAAO,MAAM,OAAO;EACtF,IAAI,MAAM,UAAU,QAAQ,MAAM,SAAS,MAAM,KAAK,mBAAmB,aAAa,UAAU,OAAO;EACvG,IAAI,aAAa,SAAS,OAAO,KAAKA,gBAAgB,MAAM,OAAO,OAAO,MAAM,QAAQ;EACxF,IAAI,MAAM,KAAK,SAAS,UAAU;GACjC,KAAKG,kBAAkB,OAAO,MAAM,OAAO,CAAC,MAAM,KAAK,IAAI,MAAM,OAAO,IAAI;GAC5E,OAAO,KAAKG,YAAY,MAAM,OAAO,MAAM,KAAK,SAAS,IAAI;EAC9D;EACA,IAAI,MAAM,KAAK,SAAS,iBAAiB,gBAAgB,MAAM,KAAK,GAAG;GACtE,MAAM,QAAQ,qCAAqC,KAAK7C,UAAU,MAAM,CAAC,GAAG,MAAM,KAAK;GACvF,IAAI,OAAO,OAAO,KAAK4C,iBAAiB,MAAM,OAAO,OAAO,MAAM,OAAO;EAC1E;EACA,OAAO;CACR;CACA,gBAAgB;EACf,MAAM,CAAC,UAAU,KAAKvC,OAAO;EAC7B,IAAI,KAAKA,OAAO,QAAQ,WAAW,KAAK,QAAQ,OAAO;EACvD,OAAO,aAAa,GAAG,CAAC,GAAG,KAAKA,OAAO,OAAO,CAAC;CAChD;CACA,gBAAgB,YAAY;EAC3B,IAAI,KAAKA,OAAO,QAAQ,WAAW,GAAG,MAAM,SAAS,qBAAqB,GAAG,WAAW,uDAAuD,WAAW,KAAK,EAAE,MAAM,EAAE,QAAQ,WAAW,EAAE,CAAC;CAChM;CACA,iBAAiB,YAAY;EAC5B,IAAI,KAAKA,OAAO,YAAY,KAAK,KAAK,KAAKA,OAAO,UAAU,KAAK,KAAK,KAAKA,OAAO,WAAW,KAAK,GAAG,MAAM,SAAS,6BAA6B,GAAG,WAAW,6EAA6E,WAAW,KAAK,EAAE,MAAM;GACnQ,QAAQ;GACR,QAAQ;EACT,EAAE,CAAC;CACJ;CACA,gBAAgB,YAAY;EAC3B,IAAI,KAAKA,OAAO,SAAS,SAAS,GAAG,MAAM,SAAS,6BAA6B,GAAG,WAAW,kEAAkE,WAAW,KAAK,EAAE,MAAM;GACxL,QAAQ;GACR,QAAQ;EACT,EAAE,CAAC;CACJ;CACA,YAAY;EACX,OAAO;GACN,QAAQ;GACR,aAAa,KAAKL,UAAU,QAAQ;GACpC,MAAM;EACP;CACD;CACA,qBAAqB,MAAM;EAC1B,IAAI,CAAC,KAAKM,cAAc,OAAO;EAC/B,MAAM,QAAQ,UAAU,+BAA+B,KAAKN,UAAU,MAAM,CAAC,CAAC,KAAKC,WAAW;EAC9F,IAAI,CAAC,OAAO,iBAAiB,CAAC,MAAM,UAAU,OAAO;EACrD,MAAM,eAAe,MAAM,SAAS,KAAKK;EACzC,IAAI,CAAC,cAAc,OAAO;EAC1B,OAAO;GACN,GAAG;IACF,MAAM,cAAc,QAAQ,aAAa;EAC3C;CACD;CACA,OAAO,WAAW;EACjB,MAAM,WAAW,IAAI,oBAAoB,KAAKN,WAAW,KAAKC,YAAY,KAAKC,WAAW,KAAKC,iBAAiB;EAChH,SAASE,SAAS;GACjB,GAAG,KAAKA;GACR,GAAG;EACJ;EACA,SAASD,kBAAkB,KAAKA;EAChC,SAASE,eAAe,KAAKA;EAC7B,OAAO;CACR;CACA,kBAAkB,WAAW,aAAa;EACzC,MAAM,WAAW,IAAI,oBAAoB,KAAKN,WAAW,KAAKC,YAAY,KAAKC,WAAW,KAAKC,iBAAiB;EAChH,SAASE,SAAS;GACjB,GAAG,KAAKA;GACR,GAAG;EACJ;EACA,SAASD,kBAAkB,KAAKA;EAChC,SAASE,eAAe;EACxB,OAAO;CACR;AACD;AACA,SAAS,sBAAsB,UAAU,WAAW,UAAU,kBAAkB;CAC/E,OAAO,IAAI,oBAAoB,UAAU,WAAW,UAAU,gBAAgB;AAC/E;AAGA,SAAS,SAAS,SAAS;CAC1B,MAAM,EAAE,UAAU,UAAU,qBAAqB;CACjD,MAAM,oBAAoB,SAAS,WAAW,UAAU,YAAY,CAAC;CACrE,IAAI,kBAAkB,SAAS,KAAK,qBAAqB,KAAK,GAAG,MAAM,SAAS,iCAAiC,iUAAiU,EAAE,MAAM,EAAE,QAAQ,kBAAkB,KAAK,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC;CACrgB,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,CAAC,UAAU,YAAY,OAAO,QAAQ,SAAS,KAAK,GAAG,OAAO,YAAY,sBAAsB,UAAU,UAAU,QAAQ,KAAK,GAAG,UAAU,gBAAgB;CACzK,OAAO,UAAU,MAAM;AACxB;AAGA,SAAS,yBAAyB,gBAAgB,MAAM;CACvD,SAAS,UAAU,SAAS;EAC3B,OAAO,EAAE,cAAc;GACtB,YAAY;GACZ;GACA;EACD,GAAG;CACJ;CACA,OAAO;EACN,UAAU,UAAU;GACnB,OAAO,UAAU,IAAI,oBAAoB,gBAAgB,QAAQ,CAAC;EACnE;EACA,UAAU,UAAU;GACnB,OAAO,UAAU,IAAI,oBAAoB,gBAAgB,QAAQ,CAAC;EACnE;EACA,WAAW,WAAW;GACrB,OAAO,UAAU,IAAI,qBAAqB,gBAAgB,SAAS,CAAC;EACrE;EACA,UAAU,QAAQ,QAAQ;GACzB,OAAO,UAAU,IAAI,oBAAoB,gBAAgB,QAAQ,MAAM,CAAC;EACzE;EACA,WAAW,QAAQ,QAAQ;GAC1B,OAAO,UAAU,IAAI,qBAAqB,gBAAgB,QAAQ,MAAM,CAAC;EAC1E;EACA,UAAU,QAAQ;GACjB,OAAO,UAAU,IAAI,oBAAoB,gBAAgB,MAAM,CAAC;EACjE;EACA,WAAW,QAAQ;GAClB,OAAO,UAAU,IAAI,qBAAqB,gBAAgB,MAAM,CAAC;EAClE;EACA,iBAAiB,QAAQ,QAAQ,SAAS;GACzC,OAAO,UAAU,IAAI,2BAA2B,gBAAgB,QAAQ,QAAQ,SAAS,UAAU,KAAK,CAAC;EAC1G;EACA,iBAAiB,QAAQ;GACxB,OAAO,UAAU,IAAI,2BAA2B,gBAAgB,MAAM,CAAC;EACxE;CACD;AACD;AAGA,SAAS,SAAS,SAAS;CAC1B,MAAM,EAAE,aAAa;CACrB,OAAO,EAAE,WAAW,UAAU;EAC7B,MAAM,YAAY,SAAS,MAAM,SAAS,EAAE;EAC5C,MAAM,SAAS,+BAA+B,SAAS,MAAM;EAC7D,IAAI,CAAC,aAAa,CAAC,OAAO,OAAO,QAAQ,SAAS,GAAG,MAAM,SAAS,qBAAqB,kBAAkB,aAAa,GAAG,cAAc,SAAS,IAAI,EAAE,MAAM;GAC7J,OAAO,aAAa;GACpB,MAAM;EACP,EAAE,CAAC;EACH,OAAO,yBAAyB,OAAO,UAAU,CAAC,QAAQ,cAAc,WAAW;GAClF,QAAQ;GACR,aAAa,SAAS,QAAQ;GAC9B,MAAM;EACP,CAAC;CACF,EAAE;AACH"}
1
+ {"version":3,"file":"orm.mjs","names":["#contract","#modelName","#executor","#mutationDefaults","#enums","#collectionName","#state","#variantName","#cloneWithVariant","#encodeFieldFilter","#clone","#compileWhereObject","#query","#rejectIncludes","#withCreateDefaults","#injectDiscriminator","#stripUndefined","#toDocument","#drainPlan","#insertOneResultShape","#insertManyResultShape","#requireFilters","#rejectWindowing","#mergeFilters","#withUpdateDefaults","#resolveUpdateDoc","#modelResultShape","#readMatchingIds","#executePlan","#wrapFieldOpValue","#toSetFields","#upsertCommand","#compile","#modelWithVariantFields","#valueObjects","#planMeta","#wrapCommand","#modelFields","#idFieldShape","#documentShape","#wrapFieldValue","#fieldAtPath","#nullParam","#assertEnumValues","#scalarParam","#wrapValueObject","#fieldParam","#appliedDefaults","#toUpdateDocument"],"sources":["../../../../2-mongo-family/5-query-builders/orm/dist/index.mjs"],"sourcesContent":["import { domainModelsAtDefaultNamespace, domainValueObjectsAtDefaultNamespace } from \"@internal/contract/types\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { AsyncIterableResult, runtimeError } from \"@internal/framework-components/runtime\";\nimport { AggregateCommand, DeleteManyCommand, FindOneAndDeleteCommand, FindOneAndUpdateCommand, InsertManyCommand, InsertOneCommand, MongoAddFieldsStage, MongoAggArrayFilter, MongoAggCond, MongoAggFieldRef, MongoAggLiteral, MongoAggMap, MongoAggOperator, MongoAndExpr, MongoFieldFilter, MongoLimitStage, MongoLookupStage, MongoMatchStage, MongoProjectStage, MongoSkipStage, MongoSortStage, MongoUnwindStage, RawAggregateCommand, RawDeleteManyCommand, RawDeleteOneCommand, RawFindOneAndDeleteCommand, RawFindOneAndUpdateCommand, RawInsertManyCommand, RawInsertOneCommand, RawUpdateManyCommand, RawUpdateOneCommand, UpdateManyCommand, freezeMongoResultShape, isMongoFilterExpr } from \"@internal/mongo-query-ast/execution\";\nimport { contractFieldToMongoFieldShape, contractModelToMongoResultShape } from \"@internal/mongo-query-builder\";\nimport { MongoParamRef } from \"@internal/mongo-value\";\nimport { blindCast, castAs } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { structuredError } from \"@internal/utils/structured-error\";\n//#region src/collection-state.ts\nfunction emptyCollectionState() {\n\treturn {\n\t\tfilters: [],\n\t\tincludes: [],\n\t\torderBy: void 0,\n\t\tselectedFields: void 0,\n\t\tlimit: void 0,\n\t\toffset: void 0\n\t};\n}\n//#endregion\n//#region src/compile.ts\nfunction isToOne(include) {\n\treturn include.cardinality === \"N:1\" || include.cardinality === \"1:1\";\n}\n/**\n* An included document is decoded through the related model's codecs, like the root document. A to-one include with no related document reads as `null`.\n*/\nfunction includeShape(include, valueObjects) {\n\tconst target = contractModelToMongoResultShape(include.targetModel, { valueObjects });\n\tconst fields = target.kind === \"document\" ? target.fields : {};\n\treturn isToOne(include) ? {\n\t\tkind: \"document\",\n\t\tnullable: true,\n\t\tfields\n\t} : {\n\t\tkind: \"array\",\n\t\tnullable: false,\n\t\telement: {\n\t\t\tkind: \"document\",\n\t\t\tnullable: false,\n\t\t\tfields\n\t\t}\n\t};\n}\nfunction compileIncludes(includes) {\n\tconst stages = [];\n\tfor (const inc of includes) {\n\t\tstages.push(new MongoLookupStage({\n\t\t\tfrom: inc.from,\n\t\t\tlocalField: inc.localField,\n\t\t\tforeignField: inc.foreignField,\n\t\t\tas: inc.relationName\n\t\t}));\n\t\tif (isToOne(inc)) stages.push(new MongoUnwindStage(`$${inc.relationName}`, true));\n\t}\n\treturn stages;\n}\nfunction compileMongoQuery(collection, state, storageHash, model, valueObjects) {\n\tconst stages = [];\n\tconst singleFilter = state.filters.length === 1 ? state.filters[0] : void 0;\n\tif (singleFilter) stages.push(new MongoMatchStage(singleFilter));\n\telse if (state.filters.length > 1) stages.push(new MongoMatchStage(MongoAndExpr.of([...state.filters])));\n\tif (state.includes.length > 0) stages.push(...compileIncludes(state.includes));\n\tif (state.orderBy) stages.push(new MongoSortStage(state.orderBy));\n\tif (state.offset !== void 0) stages.push(new MongoSkipStage(state.offset));\n\tif (state.limit !== void 0) stages.push(new MongoLimitStage(state.limit));\n\tif (state.selectedFields && state.selectedFields.length > 0) {\n\t\tconst projection = {};\n\t\tfor (const field of state.selectedFields) projection[field] = 1;\n\t\tfor (const inc of state.includes) projection[inc.relationName] = 1;\n\t\tif (!Object.hasOwn(projection, \"_id\")) projection[\"_id\"] = 0;\n\t\tstages.push(new MongoProjectStage(projection));\n\t}\n\tconst meta = {\n\t\ttarget: \"mongo\",\n\t\tstorageHash,\n\t\tlane: \"mongo-orm\"\n\t};\n\treturn {\n\t\tcollection,\n\t\tcommand: new AggregateCommand(collection, stages),\n\t\tmeta,\n\t\tresultShape: contractModelToMongoResultShape(model, {\n\t\t\t...ifDefined(\"selection\", state.selectedFields !== void 0 && state.selectedFields.length > 0 ? state.selectedFields : void 0),\n\t\t\tincludes: Object.fromEntries(state.includes.map((inc) => [inc.relationName, includeShape(inc, valueObjects)])),\n\t\t\tvalueObjects\n\t\t})\n\t};\n}\n//#endregion\n//#region src/field-accessor.ts\nfunction createFieldExpression(fieldPath) {\n\treturn {\n\t\tset(value) {\n\t\t\treturn {\n\t\t\t\toperator: \"$set\",\n\t\t\t\tfield: fieldPath,\n\t\t\t\tvalue: new MongoParamRef(value)\n\t\t\t};\n\t\t},\n\t\tunset() {\n\t\t\treturn {\n\t\t\t\toperator: \"$unset\",\n\t\t\t\tfield: fieldPath,\n\t\t\t\tvalue: new MongoParamRef(\"\")\n\t\t\t};\n\t\t},\n\t\tinc(value) {\n\t\t\treturn {\n\t\t\t\toperator: \"$inc\",\n\t\t\t\tfield: fieldPath,\n\t\t\t\tvalue: new MongoParamRef(value)\n\t\t\t};\n\t\t},\n\t\tmul(value) {\n\t\t\treturn {\n\t\t\t\toperator: \"$mul\",\n\t\t\t\tfield: fieldPath,\n\t\t\t\tvalue: new MongoParamRef(value)\n\t\t\t};\n\t\t},\n\t\tpush(value) {\n\t\t\treturn {\n\t\t\t\toperator: \"$push\",\n\t\t\t\tfield: fieldPath,\n\t\t\t\tvalue: new MongoParamRef(value)\n\t\t\t};\n\t\t},\n\t\tpull(match) {\n\t\t\treturn {\n\t\t\t\toperator: \"$pull\",\n\t\t\t\tfield: fieldPath,\n\t\t\t\tvalue: new MongoParamRef(match)\n\t\t\t};\n\t\t},\n\t\taddToSet(value) {\n\t\t\treturn {\n\t\t\t\toperator: \"$addToSet\",\n\t\t\t\tfield: fieldPath,\n\t\t\t\tvalue: new MongoParamRef(value)\n\t\t\t};\n\t\t},\n\t\tpop(end) {\n\t\t\treturn {\n\t\t\t\toperator: \"$pop\",\n\t\t\t\tfield: fieldPath,\n\t\t\t\tvalue: new MongoParamRef(end)\n\t\t\t};\n\t\t}\n\t};\n}\nfunction createFieldAccessor() {\n\treturn new Proxy((() => {}), {\n\t\tget(_target, prop) {\n\t\t\treturn createFieldExpression(prop);\n\t\t},\n\t\tapply(_target, _thisArg, args) {\n\t\t\treturn createFieldExpression(args[0]);\n\t\t}\n\t});\n}\nfunction compileFieldOperations(ops, wrapValue) {\n\tconst grouped = {};\n\tfor (const op of ops) {\n\t\tlet group = grouped[op.operator];\n\t\tif (!group) {\n\t\t\tgroup = {};\n\t\t\tgrouped[op.operator] = group;\n\t\t}\n\t\tgroup[op.field] = wrapValue(op.field, op.value, op.operator);\n\t}\n\treturn grouped;\n}\n//#endregion\n//#region src/orm-errors.ts\nfunction ormError(code, message, options) {\n\treturn structuredError(code, message, options);\n}\n//#endregion\n//#region src/upsert-pipeline.ts\nfunction fieldNamesIn(filter) {\n\tswitch (filter.kind) {\n\t\tcase \"field\":\n\t\tcase \"exists\": return [filter.field.split(\".\")[0] ?? filter.field];\n\t\tcase \"and\":\n\t\tcase \"or\": return filter.exprs.flatMap(fieldNamesIn);\n\t\tcase \"not\": return fieldNamesIn(filter.expr);\n\t\tcase \"expr\": return [];\n\t}\n}\n/**\n* True while the pipeline runs on the document an upsert is inserting. That document starts with only the equality fields the server copies from the filter, so every one of its keys is a field the filter names; a matched document always has an `_id` the filter does not name, or, when the filter names `_id`, fields besides the filter's.\n*/\nfunction isInsert(filter) {\n\tconst keys = new MongoAggMap(MongoAggOperator.of(\"$objectToArray\", MongoAggFieldRef.of(\"$ROOT\")), MongoAggFieldRef.of(\"$this.k\"), \"this\");\n\treturn MongoAggOperator.of(\"$setIsSubset\", [keys, MongoAggLiteral.of([...new Set(fieldNamesIn(filter))])]);\n}\nfunction orEmptyList(field) {\n\treturn MongoAggOperator.of(\"$ifNull\", [MongoAggFieldRef.of(field), MongoAggLiteral.of([])]);\n}\nfunction whenList(field, expr) {\n\treturn MongoAggCond.of(MongoAggOperator.of(\"$isArray\", MongoAggFieldRef.of(field)), expr, MongoAggFieldRef.of(field));\n}\nfunction popped(field, end) {\n\tconst size = MongoAggOperator.size(MongoAggFieldRef.of(field));\n\tconst rest = MongoAggOperator.subtract(size, MongoAggLiteral.of(1));\n\tconst kept = MongoAggOperator.of(\"$slice\", [\n\t\tMongoAggFieldRef.of(field),\n\t\tMongoAggLiteral.of(end === -1 ? 1 : 0),\n\t\trest\n\t]);\n\treturn whenList(field, MongoAggCond.of(MongoAggOperator.of(\"$lte\", [size, MongoAggLiteral.of(1)]), MongoAggLiteral.of([]), kept));\n}\nfunction operatorExpression(operator, field, value) {\n\tswitch (operator) {\n\t\tcase \"$set\": return MongoAggLiteral.of(value);\n\t\tcase \"$unset\": return MongoAggFieldRef.of(\"$REMOVE\");\n\t\tcase \"$inc\": return MongoAggOperator.add(MongoAggOperator.of(\"$ifNull\", [MongoAggFieldRef.of(field), MongoAggLiteral.of(0)]), MongoAggLiteral.of(value));\n\t\tcase \"$mul\": return MongoAggOperator.multiply(MongoAggOperator.of(\"$ifNull\", [MongoAggFieldRef.of(field), MongoAggLiteral.of(0)]), MongoAggLiteral.of(value));\n\t\tcase \"$push\": return MongoAggOperator.of(\"$concatArrays\", [orEmptyList(field), MongoAggLiteral.of([value])]);\n\t\tcase \"$addToSet\": return MongoAggCond.of(MongoAggOperator.of(\"$in\", [MongoAggLiteral.of(value), orEmptyList(field)]), orEmptyList(field), MongoAggOperator.of(\"$concatArrays\", [orEmptyList(field), MongoAggLiteral.of([value])]));\n\t\tcase \"$pull\":\n\t\t\tif (typeof value === \"object\" && value !== null && !(value instanceof MongoParamRef)) throw ormError(\"ORM.OPERATION_UNSUPPORTED\", `upsert() cannot pull by a match document from \"${field}\" when create sets a field that has an update default. Pull a single value, or leave that field out of create.`, { meta: {\n\t\t\t\tmethod: \"upsert\",\n\t\t\t\tfield\n\t\t\t} });\n\t\t\treturn whenList(field, MongoAggArrayFilter.of(MongoAggFieldRef.of(field), MongoAggOperator.of(\"$ne\", [MongoAggFieldRef.of(\"$this\"), MongoAggLiteral.of(value)]), \"this\"));\n\t\tcase \"$pop\": return popped(field, value instanceof MongoParamRef ? value.value : value);\n\t\tdefault: throw ormError(\"ORM.OPERATION_UNSUPPORTED\", `upsert() cannot apply ${operator} to \"${field}\" when create sets a field that has an update default.`, { meta: {\n\t\t\tmethod: \"upsert\",\n\t\t\tfield,\n\t\t\toperator\n\t\t} });\n\t}\n}\n/**\n* The one-command form of an upsert whose `create` sets a field that also has an update default: an update pipeline that, on insert, writes every `create` value, including those fields, and on update applies the update and its defaults. Every value is a `$literal`, so a string such as `'$x'` is not read as a field path.\n*/\nfunction upsertPipeline(input) {\n\tconst inserting = isInsert(input.filter);\n\tconst fields = {};\n\tfor (const [operator, group] of Object.entries(input.update)) for (const [field, value] of Object.entries(group)) {\n\t\tconst onUpdate = operatorExpression(operator, field, value);\n\t\tconst created = input.create[field];\n\t\tfields[field] = operator === \"$set\" && input.createWins.has(field) && created !== void 0 ? MongoAggCond.of(inserting, MongoAggLiteral.of(created), onUpdate) : onUpdate;\n\t}\n\tfor (const [field, value] of Object.entries(input.create)) if (!Object.hasOwn(fields, field)) fields[field] = MongoAggCond.of(inserting, MongoAggLiteral.of(value), MongoAggFieldRef.of(field));\n\treturn [new MongoAddFieldsStage(fields)];\n}\n//#endregion\n//#region src/collection.ts\nconst COMPARISON_OPERATORS = /* @__PURE__ */ new Set([\n\t\"$eq\",\n\t\"$ne\",\n\t\"$gt\",\n\t\"$gte\",\n\t\"$lt\",\n\t\"$lte\"\n]);\nconst MEMBERSHIP_OPERATORS = /* @__PURE__ */ new Set([\"$in\", \"$nin\"]);\nfunction resolveCollectionName(model, modelName) {\n\treturn model.storage.collection ?? modelName;\n}\nfunction topLevelUpdateFields(updateDoc) {\n\tconst fields = /* @__PURE__ */ new Set();\n\tfor (const operatorGroup of Object.values(updateDoc)) for (const fieldPath of Object.keys(operatorGroup)) fields.add(fieldPath.split(\".\")[0] ?? fieldPath);\n\treturn fields;\n}\nfunction describeValue(value) {\n\tif (typeof value === \"bigint\") return `${value}n`;\n\ttry {\n\t\treturn JSON.stringify(value) ?? String(value);\n\t} catch {\n\t\treturn String(value);\n\t}\n}\nfunction isUnknownRecord(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\nvar MongoCollectionImpl = class MongoCollectionImpl {\n\t#contract;\n\t#modelName;\n\t#executor;\n\t#mutationDefaults;\n\t#enums;\n\t#collectionName;\n\t#state;\n\t#variantName;\n\tconstructor(contract, modelName, executor, mutationDefaults, enums) {\n\t\tthis.#contract = contract;\n\t\tthis.#modelName = modelName;\n\t\tthis.#executor = executor;\n\t\tthis.#mutationDefaults = mutationDefaults;\n\t\tthis.#enums = enums;\n\t\tconst model = blindCast(domainModelsAtDefaultNamespace(contract.domain)[modelName]);\n\t\tthis.#collectionName = resolveCollectionName(model, modelName);\n\t\tthis.#state = emptyCollectionState();\n\t}\n\tvariant(value) {\n\t\tconst model = blindCast(domainModelsAtDefaultNamespace(this.#contract.domain)[this.#modelName]);\n\t\tconst discriminator = model?.discriminator;\n\t\tconst selectedVariantName = this.#variantName;\n\t\tif (selectedVariantName !== void 0) {\n\t\t\tconst selectedValue = model?.variants?.[selectedVariantName]?.value;\n\t\t\tthrow ormError(\"ORM.OPERATION_UNSUPPORTED\", `variant(\"${value}\") cannot be called on model \"${this.#modelName}\" because variant(\"${selectedValue}\") is already selected; call variant() on the base collection instead`, { meta: {\n\t\t\t\tmethod: \"variant\",\n\t\t\t\tmodel: this.#modelName,\n\t\t\t\tvariant: selectedVariantName,\n\t\t\t\tselectedValue,\n\t\t\t\treason: \"variant-already-selected\"\n\t\t\t} });\n\t\t}\n\t\tconst variantEntries = Object.entries(model?.variants ?? {});\n\t\tconst variantName = discriminator ? variantEntries.find(([, entry]) => entry.value === value)?.[0] : void 0;\n\t\tif (!discriminator || variantName === void 0) {\n\t\t\tconst declaredValues = discriminator ? variantEntries.map(([, entry]) => entry.value) : [];\n\t\t\tthrow ormError(\"ORM.ARGUMENT_INVALID\", declaredValues.length === 0 ? `variant(\"${value}\") cannot narrow model \"${this.#modelName}\": it declares no discriminator values` : `variant(\"${value}\") cannot narrow model \"${this.#modelName}\": the declared discriminator values are ${declaredValues.map((declared) => `\"${declared}\"`).join(\", \")}`, { meta: {\n\t\t\t\tmethod: \"variant\",\n\t\t\t\targument: \"value\",\n\t\t\t\tmodel: this.#modelName,\n\t\t\t\tvalue,\n\t\t\t\tdeclaredValues\n\t\t\t} });\n\t\t}\n\t\tconst filter = MongoFieldFilter.eq(discriminator.field, new MongoParamRef(value));\n\t\treturn this.#cloneWithVariant({ filters: [...this.#state.filters, filter] }, variantName);\n\t}\n\twhere(filter) {\n\t\tif (isMongoFilterExpr(filter)) {\n\t\t\tconst encoded = filter.rewrite({ field: (fieldFilter) => this.#encodeFieldFilter(fieldFilter) });\n\t\t\treturn this.#clone({ filters: [...this.#state.filters, encoded] });\n\t\t}\n\t\tconst compiled = this.#compileWhereObject(blindCast(filter));\n\t\treturn this.#clone({ filters: [...this.#state.filters, ...compiled] });\n\t}\n\tselect(...fields) {\n\t\treturn this.#clone({ selectedFields: [...this.#state.selectedFields ?? [], ...fields] });\n\t}\n\tinclude(relationName) {\n\t\tconst relation = blindCast(domainModelsAtDefaultNamespace(this.#contract.domain)[this.#modelName]).relations?.[relationName];\n\t\tif (!relation) throw ormError(\"ORM.RELATION_UNKNOWN\", `Unknown relation \"${relationName}\" on model \"${this.#modelName}\"`, { meta: {\n\t\t\tmodel: this.#modelName,\n\t\t\trelation: relationName\n\t\t} });\n\t\tif (!(\"on\" in relation)) throw ormError(\"ORM.INCLUDE_UNSUPPORTED\", `Relation \"${relationName}\" is an embed relation — only reference relations can be included`, { meta: {\n\t\t\tmodel: this.#modelName,\n\t\t\trelation: relationName\n\t\t} });\n\t\tconst ref = relation;\n\t\tconst localField = ref.on.localFields[0];\n\t\tconst foreignField = ref.on.targetFields[0];\n\t\tif (!localField || !foreignField || ref.on.localFields.length !== 1 || ref.on.targetFields.length !== 1) throw ormError(\"ORM.INCLUDE_UNSUPPORTED\", `Compound references are not yet supported: relation \"${relationName}\"`, { meta: {\n\t\t\tmodel: this.#modelName,\n\t\t\trelation: relationName\n\t\t} });\n\t\tconst targetModelName = ref.to.model;\n\t\tconst targetModel = castAs(domainModelsAtDefaultNamespace(this.#contract.domain)[targetModelName]);\n\t\tif (!targetModel) throw new InternalError(`Target model \"${targetModelName}\" not found for relation \"${relationName}\"`);\n\t\tconst includeExpr = {\n\t\t\trelationName,\n\t\t\ttargetModel,\n\t\t\tfrom: resolveCollectionName(targetModel, targetModelName),\n\t\t\tlocalField,\n\t\t\tforeignField,\n\t\t\tcardinality: ref.cardinality\n\t\t};\n\t\treturn blindCast(this.#clone({ includes: [...this.#state.includes, includeExpr] }));\n\t}\n\torderBy(spec) {\n\t\tconst merged = {\n\t\t\t...this.#state.orderBy,\n\t\t\t...spec\n\t\t};\n\t\treturn this.#clone({ orderBy: merged });\n\t}\n\tlimit(n) {\n\t\treturn this.#clone({ limit: n });\n\t}\n\toffset(n) {\n\t\treturn this.#clone({ offset: n });\n\t}\n\tall() {\n\t\treturn this.#query();\n\t}\n\tasync first() {\n\t\tconst result = this.#clone({ limit: 1 }).#query();\n\t\tfor await (const row of result) return row;\n\t\treturn null;\n\t}\n\tasync create(data) {\n\t\tthis.#rejectIncludes(\"create\");\n\t\tconst normalized = this.#withCreateDefaults(this.#injectDiscriminator(this.#stripUndefined(blindCast(data))), /* @__PURE__ */ new Map());\n\t\tconst document = this.#toDocument(normalized);\n\t\tconst command = new InsertOneCommand(this.#collectionName, document);\n\t\treturn blindCast(blindCast((await this.#drainPlan(command, this.#insertOneResultShape()))[0]).document);\n\t}\n\tcreateAll(data) {\n\t\tthis.#rejectIncludes(\"createAll\");\n\t\tconst self = this;\n\t\tasync function* gen() {\n\t\t\tconst defaultValueCache = /* @__PURE__ */ new Map();\n\t\t\tconst normalizedRows = data.map((d) => self.#withCreateDefaults(self.#injectDiscriminator(self.#stripUndefined(blindCast(d))), defaultValueCache));\n\t\t\tconst command = new InsertManyCommand(self.#collectionName, normalizedRows.map((d) => self.#toDocument(d)));\n\t\t\tconst { documents } = blindCast((await self.#drainPlan(command, self.#insertManyResultShape()))[0]);\n\t\t\tfor (const document of documents) yield blindCast(document);\n\t\t}\n\t\treturn new AsyncIterableResult(gen());\n\t}\n\tasync createAndCount(data) {\n\t\tthis.#rejectIncludes(\"createAndCount\");\n\t\tconst defaultValueCache = /* @__PURE__ */ new Map();\n\t\tconst documents = data.map((d) => this.#toDocument(this.#withCreateDefaults(this.#injectDiscriminator(this.#stripUndefined(blindCast(d))), defaultValueCache)));\n\t\tconst command = new InsertManyCommand(this.#collectionName, documents);\n\t\treturn blindCast((await this.#drainPlan(command))[0]).insertedCount;\n\t}\n\tasync update(dataOrCallback) {\n\t\tthis.#requireFilters(\"update\");\n\t\tthis.#rejectWindowing(\"update\");\n\t\tthis.#rejectIncludes(\"update\");\n\t\tconst filter = this.#mergeFilters();\n\t\tconst updateDoc = this.#withUpdateDefaults(this.#resolveUpdateDoc(dataOrCallback), /* @__PURE__ */ new Map());\n\t\tconst command = new FindOneAndUpdateCommand(this.#collectionName, filter, updateDoc, false);\n\t\tconst result = (await this.#drainPlan(command, this.#modelResultShape()))[0];\n\t\treturn result === void 0 ? null : blindCast(result);\n\t}\n\tupdateAll(dataOrCallback) {\n\t\tthis.#requireFilters(\"updateAll\");\n\t\tthis.#rejectWindowing(\"updateAll\");\n\t\tconst self = this;\n\t\tasync function* gen() {\n\t\t\tconst ids = await self.#readMatchingIds();\n\t\t\tif (ids.length === 0) return;\n\t\t\tconst filter = self.#mergeFilters();\n\t\t\tconst updateDoc = self.#withUpdateDefaults(self.#resolveUpdateDoc(dataOrCallback), /* @__PURE__ */ new Map());\n\t\t\tconst command = new UpdateManyCommand(self.#collectionName, filter, updateDoc);\n\t\t\tawait self.#drainPlan(command);\n\t\t\tconst idFilter = MongoFieldFilter.in(\"_id\", ids.map((id) => new MongoParamRef(id)));\n\t\t\tyield* self.#clone({ filters: [idFilter] }).#query();\n\t\t}\n\t\treturn new AsyncIterableResult(gen());\n\t}\n\tasync updateAndCount(dataOrCallback) {\n\t\tthis.#requireFilters(\"updateAndCount\");\n\t\tthis.#rejectWindowing(\"updateAndCount\");\n\t\tthis.#rejectIncludes(\"updateAndCount\");\n\t\tconst filter = this.#mergeFilters();\n\t\tconst updateDoc = this.#withUpdateDefaults(this.#resolveUpdateDoc(dataOrCallback), /* @__PURE__ */ new Map());\n\t\tconst command = new UpdateManyCommand(this.#collectionName, filter, updateDoc);\n\t\treturn (await this.#executePlan(command)).affectedRows;\n\t}\n\tasync delete() {\n\t\tthis.#requireFilters(\"delete\");\n\t\tthis.#rejectWindowing(\"delete\");\n\t\tthis.#rejectIncludes(\"delete\");\n\t\tconst filter = this.#mergeFilters();\n\t\tconst command = new FindOneAndDeleteCommand(this.#collectionName, filter);\n\t\tconst result = (await this.#drainPlan(command, this.#modelResultShape()))[0];\n\t\treturn result === void 0 ? null : blindCast(result);\n\t}\n\tdeleteAll() {\n\t\tthis.#requireFilters(\"deleteAll\");\n\t\tthis.#rejectWindowing(\"deleteAll\");\n\t\tconst self = this;\n\t\tasync function* gen() {\n\t\t\tconst docs = [];\n\t\t\tfor await (const row of self.#query()) docs.push(row);\n\t\t\tconst filter = self.#mergeFilters();\n\t\t\tconst command = new DeleteManyCommand(self.#collectionName, filter);\n\t\t\tawait self.#drainPlan(command);\n\t\t\tyield* docs;\n\t\t}\n\t\treturn new AsyncIterableResult(gen());\n\t}\n\tasync deleteAndCount() {\n\t\tthis.#requireFilters(\"deleteAndCount\");\n\t\tthis.#rejectWindowing(\"deleteAndCount\");\n\t\tthis.#rejectIncludes(\"deleteAndCount\");\n\t\tconst filter = this.#mergeFilters();\n\t\tconst command = new DeleteManyCommand(this.#collectionName, filter);\n\t\treturn (await this.#executePlan(command)).affectedRows;\n\t}\n\tasync upsert(input) {\n\t\tthis.#requireFilters(\"upsert\");\n\t\tthis.#rejectWindowing(\"upsert\");\n\t\tthis.#rejectIncludes(\"upsert\");\n\t\tconst filter = this.#mergeFilters();\n\t\tconst defaultValueCache = /* @__PURE__ */ new Map();\n\t\tconst explicitCreate = this.#injectDiscriminator(this.#stripUndefined(blindCast(input.create)));\n\t\tconst allCreateFields = this.#toDocument(this.#withCreateDefaults(explicitCreate, defaultValueCache));\n\t\tlet updateDoc;\n\t\tif (typeof input.update === \"function\") {\n\t\t\tconst accessor = createFieldAccessor();\n\t\t\tconst ops = input.update(accessor);\n\t\t\tif (ops.find((op) => op.field === \"_id\")) throw ormError(\"ORM.FIELD_IMMUTABLE\", \"Mutation payloads cannot modify `_id`\", { meta: { field: \"_id\" } });\n\t\t\tconst dotPathOp = ops.find((op) => op.field.includes(\".\"));\n\t\t\tif (dotPathOp) throw ormError(\"ORM.OPERATION_UNSUPPORTED\", `upsert() does not support dot-path field operations (found \"${dotPathOp.field}\"). Dot-path updates conflict with \\$setOnInsert on the insert path, producing incomplete documents. Use top-level field operations instead.`, { meta: {\n\t\t\t\tmethod: \"upsert\",\n\t\t\t\tfield: dotPathOp.field\n\t\t\t} });\n\t\t\tupdateDoc = compileFieldOperations(ops, (field, value, operator) => this.#wrapFieldOpValue(field, value, operator));\n\t\t} else {\n\t\t\tconst setFields = this.#toSetFields(blindCast(input.update));\n\t\t\tupdateDoc = {};\n\t\t\tif (Object.keys(setFields).length > 0) updateDoc[\"$set\"] = setFields;\n\t\t}\n\t\tconst explicitUpdateFields = topLevelUpdateFields(updateDoc);\n\t\tconst withUpdateDefaults = this.#withUpdateDefaults(updateDoc, defaultValueCache);\n\t\tconst generatedSetByCreate = Object.keys(withUpdateDefaults[\"$set\"] ?? {}).filter((field) => !explicitUpdateFields.has(field) && Object.hasOwn(explicitCreate, field));\n\t\tif (generatedSetByCreate.length === 0) return this.#upsertCommand(filter, withUpdateDefaults, allCreateFields);\n\t\treturn blindCast((await this.#drainPlan(new FindOneAndUpdateCommand(this.#collectionName, filter, upsertPipeline({\n\t\t\tfilter,\n\t\t\tupdate: withUpdateDefaults,\n\t\t\tcreate: allCreateFields,\n\t\t\tcreateWins: new Set(generatedSetByCreate)\n\t\t}), true), this.#modelResultShape()))[0]);\n\t}\n\tasync #upsertCommand(filter, updateDoc, allCreateFields) {\n\t\tconst updatedFields = topLevelUpdateFields(updateDoc);\n\t\tconst insertOnlyFields = {};\n\t\tfor (const [key, value] of Object.entries(allCreateFields)) if (!updatedFields.has(key)) insertOnlyFields[key] = value;\n\t\tconst command = new FindOneAndUpdateCommand(this.#collectionName, filter, Object.keys(insertOnlyFields).length > 0 ? {\n\t\t\t...updateDoc,\n\t\t\t$setOnInsert: insertOnlyFields\n\t\t} : updateDoc, true);\n\t\treturn blindCast((await this.#drainPlan(command, this.#modelResultShape()))[0]);\n\t}\n\tasync #readMatchingIds() {\n\t\tconst idQuery = this.#clone({\n\t\t\tincludes: [],\n\t\t\tselectedFields: [\"_id\"],\n\t\t\torderBy: void 0,\n\t\t\tlimit: void 0,\n\t\t\toffset: void 0\n\t\t});\n\t\tconst ids = [];\n\t\tconst { resultShape: _rs, ...planWithoutShape } = idQuery.#compile();\n\t\tfor await (const row of this.#executor.query(planWithoutShape)) {\n\t\t\tconst storageRow = blindCast(row);\n\t\t\tids.push(storageRow[\"_id\"]);\n\t\t}\n\t\treturn ids;\n\t}\n\t#query() {\n\t\tconst plan = this.#compile();\n\t\treturn this.#executor.query(plan);\n\t}\n\t#compile() {\n\t\tconst model = this.#modelWithVariantFields();\n\t\tif (!model) throw ormError(\"ORM.MODEL_UNKNOWN\", `Unknown model: \"${this.#modelName}\".`, { meta: { model: this.#modelName } });\n\t\treturn compileMongoQuery(this.#collectionName, this.#state, this.#contract.storage.storageHash, model, this.#valueObjects());\n\t}\n\t#wrapCommand(command, resultShape) {\n\t\treturn {\n\t\t\tcollection: this.#collectionName,\n\t\t\tcommand,\n\t\t\tmeta: this.#planMeta(),\n\t\t\t...ifDefined(\"resultShape\", resultShape)\n\t\t};\n\t}\n\t#executePlan(command) {\n\t\treturn this.#executor.execute(this.#wrapCommand(command));\n\t}\n\tasync #drainPlan(command, resultShape) {\n\t\tconst plan = this.#wrapCommand(command, resultShape);\n\t\tconst result = this.#executor.query(plan);\n\t\tconst rows = [];\n\t\tfor await (const row of result) rows.push(row);\n\t\treturn rows;\n\t}\n\t#modelFields() {\n\t\treturn this.#modelWithVariantFields()?.fields ?? {};\n\t}\n\t#modelWithVariantFields() {\n\t\tconst models = domainModelsAtDefaultNamespace(this.#contract.domain);\n\t\tconst model = blindCast(models[this.#modelName]);\n\t\tif (model === void 0 || this.#variantName === void 0) return model;\n\t\tconst variant = blindCast(models[this.#variantName]);\n\t\treturn variant === void 0 ? model : {\n\t\t\t...model,\n\t\t\tfields: {\n\t\t\t\t...model.fields,\n\t\t\t\t...variant.fields\n\t\t\t}\n\t\t};\n\t}\n\t#idFieldShape() {\n\t\tconst idField = this.#modelFields()[\"_id\"];\n\t\treturn idField ? contractFieldToMongoFieldShape(idField) : Object.freeze({ kind: \"unknown\" });\n\t}\n\t#insertOneResultShape() {\n\t\treturn freezeMongoResultShape({\n\t\t\tkind: \"document\",\n\t\t\tfields: {\n\t\t\t\tinsertedId: this.#idFieldShape(),\n\t\t\t\tdocument: this.#documentShape()\n\t\t\t}\n\t\t});\n\t}\n\t#insertManyResultShape() {\n\t\treturn freezeMongoResultShape({\n\t\t\tkind: \"document\",\n\t\t\tfields: {\n\t\t\t\tinsertedIds: {\n\t\t\t\t\tkind: \"array\",\n\t\t\t\t\tnullable: false,\n\t\t\t\t\telement: this.#idFieldShape()\n\t\t\t\t},\n\t\t\t\tdocuments: {\n\t\t\t\t\tkind: \"array\",\n\t\t\t\t\tnullable: false,\n\t\t\t\t\telement: this.#documentShape()\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t#documentShape() {\n\t\tconst shape = this.#modelResultShape();\n\t\treturn shape.kind === \"document\" ? {\n\t\t\tkind: \"document\",\n\t\t\tnullable: false,\n\t\t\tfields: shape.fields,\n\t\t\trow: true\n\t\t} : { kind: \"unknown\" };\n\t}\n\t#modelResultShape() {\n\t\tconst model = this.#modelWithVariantFields();\n\t\tif (!model) return Object.freeze({ kind: \"unknown\" });\n\t\treturn contractModelToMongoResultShape(model, { valueObjects: this.#valueObjects() });\n\t}\n\t#valueObjects() {\n\t\treturn domainValueObjectsAtDefaultNamespace(this.#contract.domain) ?? {};\n\t}\n\t#compileWhereObject(data) {\n\t\tconst fields = this.#modelFields();\n\t\tconst filters = [];\n\t\tfor (const [key, value] of Object.entries(data)) {\n\t\t\tif (value === void 0) continue;\n\t\t\tconst wrapped = this.#wrapFieldValue(value, fields[key], key, \"filter\");\n\t\t\tfilters.push(MongoFieldFilter.eq(key, wrapped));\n\t\t}\n\t\treturn filters;\n\t}\n\t/**\n\t* Encodes the comparison values of a filter on a scalar field through the field's codec, as the object form of `where` and every update does. Without it a driver class such as an `ObjectId` would be copied into a plain object and match nothing.\n\t*/\n\t#encodeFieldFilter(filter) {\n\t\tconst field = this.#fieldAtPath(filter.field);\n\t\tif (field?.type.kind !== \"scalar\") return filter;\n\t\tconst encode = (value) => {\n\t\t\tif (value === null) return null;\n\t\t\tif (value instanceof MongoParamRef) return value.codecId === void 0 ? this.#wrapFieldValue(value.value, field, filter.field, \"filter\") : value;\n\t\t\tif (field.many && Array.isArray(value)) return value.map(encode);\n\t\t\treturn this.#wrapFieldValue(value, field, filter.field, \"filter\");\n\t\t};\n\t\tif (COMPARISON_OPERATORS.has(filter.op)) return MongoFieldFilter.of(filter.field, filter.op, encode(filter.value));\n\t\tif (MEMBERSHIP_OPERATORS.has(filter.op) && Array.isArray(filter.value)) {\n\t\t\tconst values = filter.value;\n\t\t\tconst encoded = values.map(encode);\n\t\t\treturn encoded.every((value, index) => value === values[index]) ? filter : MongoFieldFilter.of(filter.field, filter.op, encoded);\n\t\t}\n\t\treturn filter;\n\t}\n\t#fieldAtPath(path) {\n\t\tconst [head, ...rest] = path.split(\".\");\n\t\tlet field = head === void 0 ? void 0 : this.#modelFields()[head];\n\t\tfor (const segment of rest) {\n\t\t\tif (field?.type.kind !== \"valueObject\") return void 0;\n\t\t\tfield = domainValueObjectsAtDefaultNamespace(this.#contract.domain)?.[field.type.name]?.fields[segment];\n\t\t}\n\t\treturn field;\n\t}\n\t/**\n\t* A value written to a field is checked against the field's enum and must not be `null` unless the field is nullable; a value compared in a filter is not, so a filter can find stored values the contract does not allow.\n\t*/\n\t#wrapFieldValue(value, field, path, purpose) {\n\t\tif (field === void 0) return new MongoParamRef(value);\n\t\tif (value === null) return this.#nullParam(field, path, purpose);\n\t\tif (field.type.kind === \"scalar\") {\n\t\t\tif (purpose === \"write\") this.#assertEnumValues(field, value, path);\n\t\t\treturn this.#scalarParam(value, field, path, purpose);\n\t\t}\n\t\tif (field.type.kind === \"valueObject\") {\n\t\t\tconst voName = field.type.name;\n\t\t\tconst voDef = domainValueObjectsAtDefaultNamespace(this.#contract.domain)?.[voName];\n\t\t\tif (!voDef) return new MongoParamRef(value);\n\t\t\tif (field.many && Array.isArray(value)) return value.map((item, index) => item === null ? null : this.#wrapValueObject(blindCast(item), voDef, `${path}.${index}`, purpose));\n\t\t\treturn this.#wrapValueObject(blindCast(value), voDef, path, purpose);\n\t\t}\n\t\treturn new MongoParamRef(value);\n\t}\n\t#nullParam(field, path, purpose) {\n\t\tif (purpose === \"write\" && !field.nullable) throw runtimeError(\"RUNTIME.ENCODE_FAILED\", `Failed to encode field ${path} in collection '${this.#collectionName}': the field is required and cannot be null`, {\n\t\t\tlabel: path,\n\t\t\tcollection: this.#collectionName\n\t\t});\n\t\treturn null;\n\t}\n\t/**\n\t* A contract without a collection validator (TypeScript builder, Prisma 6 schema) stores whatever reaches the driver, so a value outside the field's enum is refused here.\n\t*/\n\t#assertEnumValues(field, value, path) {\n\t\tconst valueSet = field.valueSet;\n\t\tif (valueSet === void 0 || valueSet.entityKind !== \"enum\" || value === null) return;\n\t\tconst contractEnum = this.#contract.domain.namespaces[valueSet.namespaceId]?.enum?.[valueSet.entityName];\n\t\tif (contractEnum === void 0) return;\n\t\tconst accessor = this.#enums[valueSet.namespaceId]?.[valueSet.entityName];\n\t\tif (accessor === void 0) throw ormError(\"ORM.ARGUMENT_INVALID\", `The ORM has no accessor for enum ${valueSet.entityName}, so it cannot check the value written to ${path} in collection '${this.#collectionName}'. Pass the contract's enum accessors: enums: buildMongoEnums(contract, context.codecs).`, { meta: {\n\t\t\targument: \"enums\",\n\t\t\tenum: valueSet.entityName\n\t\t} });\n\t\tconst values = field.many && Array.isArray(value) ? value : [value];\n\t\tconst outside = values.findIndex((entry) => entry !== null && !accessor.has(entry));\n\t\tif (outside === -1) return;\n\t\tconst received = values[outside];\n\t\tconst described = accessor.values.map(describeValue);\n\t\tconst list = described.length > 1 ? `${described.slice(0, -1).join(\", \")} and ${described.at(-1)}` : described.join(\"\");\n\t\tthrow runtimeError(\"RUNTIME.ENCODE_FAILED\", `Failed to encode field ${path} in collection '${this.#collectionName}': ${describeValue(received)} is not a value of enum ${valueSet.entityName}; the values are ${list}`, {\n\t\t\tlabel: path,\n\t\t\tcollection: this.#collectionName,\n\t\t\treceived,\n\t\t\tallowed: contractEnum.members.map((member) => member.value)\n\t\t});\n\t}\n\t/**\n\t* A scalar field's value as parameters: a list field's array is encoded element by element through the element codec, so the codec never sees the whole list.\n\t*/\n\t#scalarParam(value, field, path, purpose) {\n\t\tif (field.type.kind !== \"scalar\") return new MongoParamRef(value);\n\t\tconst codecId = field.type.codecId;\n\t\tif (field.many && Array.isArray(value)) {\n\t\t\tconst acceptsNull = field.many.elementNullable || purpose === \"filter\";\n\t\t\treturn value.map((element, index) => element === null && acceptsNull ? null : this.#fieldParam(element, codecId, `${path}.${index}`));\n\t\t}\n\t\treturn this.#fieldParam(value, codecId, path);\n\t}\n\t#fieldParam(value, codecId, path) {\n\t\treturn new MongoParamRef(value, {\n\t\t\tcodecId,\n\t\t\tname: path,\n\t\t\tcollection: this.#collectionName\n\t\t});\n\t}\n\t#wrapValueObject(data, voDef, path, purpose) {\n\t\tconst doc = {};\n\t\tfor (const [key, value] of Object.entries(data)) {\n\t\t\tif (value === void 0) continue;\n\t\t\tconst fieldDef = voDef.fields[key];\n\t\t\tdoc[key] = this.#wrapFieldValue(value, fieldDef, `${path}.${key}`, purpose);\n\t\t}\n\t\treturn doc;\n\t}\n\t#toDocument(data) {\n\t\tconst fields = this.#modelFields();\n\t\tconst doc = {};\n\t\tfor (const [key, value] of Object.entries(data)) if (value !== void 0) doc[key] = this.#wrapFieldValue(value, fields[key], key, \"write\");\n\t\treturn doc;\n\t}\n\t#toSetFields(data) {\n\t\tconst fields = this.#modelFields();\n\t\tconst result = {};\n\t\tfor (const [key, value] of Object.entries(data)) {\n\t\t\tif (key === \"_id\" && value !== void 0) throw ormError(\"ORM.FIELD_IMMUTABLE\", \"Mutation payloads cannot modify `_id`\", { meta: { field: \"_id\" } });\n\t\t\tif (value !== void 0) result[key] = this.#wrapFieldValue(value, fields[key], key, \"write\");\n\t\t}\n\t\treturn result;\n\t}\n\t#appliedDefaults(op, values, defaultValueCache) {\n\t\tconst applied = this.#mutationDefaults?.applyMutationDefaults({\n\t\t\top,\n\t\t\tnamespace: UNBOUND_NAMESPACE_ID,\n\t\t\tentry: this.#collectionName,\n\t\t\tvalues,\n\t\t\tdefaultValueCache\n\t\t}) ?? [];\n\t\treturn Object.fromEntries(applied.map(({ field, value }) => [field, value]));\n\t}\n\t#withCreateDefaults(values, defaultValueCache) {\n\t\treturn {\n\t\t\t...values,\n\t\t\t...this.#appliedDefaults(\"create\", values, defaultValueCache)\n\t\t};\n\t}\n\t#withUpdateDefaults(updateDoc, defaultValueCache) {\n\t\tconst explicit = Object.fromEntries([...topLevelUpdateFields(updateDoc)].map((field) => [field, true]));\n\t\tconst generated = this.#appliedDefaults(\"update\", explicit, defaultValueCache);\n\t\tif (Object.keys(generated).length === 0) return updateDoc;\n\t\treturn {\n\t\t\t...updateDoc,\n\t\t\t$set: {\n\t\t\t\t...updateDoc[\"$set\"],\n\t\t\t\t...this.#toSetFields(generated)\n\t\t\t}\n\t\t};\n\t}\n\t#stripUndefined(data) {\n\t\tconst result = {};\n\t\tfor (const [key, value] of Object.entries(data)) if (value !== void 0) result[key] = value;\n\t\treturn result;\n\t}\n\t#toUpdateDocument(data) {\n\t\treturn { $set: this.#toSetFields(data) };\n\t}\n\t#resolveUpdateDoc(dataOrCallback) {\n\t\tif (typeof dataOrCallback === \"function\") {\n\t\t\tconst ops = dataOrCallback(createFieldAccessor());\n\t\t\tif (ops.find((op) => op.field === \"_id\")) throw ormError(\"ORM.FIELD_IMMUTABLE\", \"Mutation payloads cannot modify `_id`\", { meta: { field: \"_id\" } });\n\t\t\tif (ops.length === 0) return { $set: {} };\n\t\t\treturn compileFieldOperations(ops, (field, value, operator) => this.#wrapFieldOpValue(field, value, operator));\n\t\t}\n\t\treturn this.#toUpdateDocument(blindCast(dataOrCallback));\n\t}\n\t/**\n\t* `$set` carries the field's whole value; `$push`, `$addToSet`, `$pull`, `$inc` and `$mul` carry one element or number; `$pop` and `$unset` carry no field value and are not encoded.\n\t*/\n\t#wrapFieldOpValue(path, value, operator) {\n\t\tif (operator === \"$unset\" || operator === \"$pop\" || !(value instanceof MongoParamRef)) return value;\n\t\tconst field = this.#fieldAtPath(path);\n\t\tif (field === void 0) return value;\n\t\tif (operator === \"$set\") return this.#wrapFieldValue(value.value, field, path, \"write\");\n\t\tif (value.value === null && field.many && (field.many.elementNullable || operator === \"$pull\")) return null;\n\t\tif (operator === \"$pull\") return this.#wrapFieldValue(value.value, field, path, \"filter\");\n\t\tif (field.type.kind === \"scalar\") {\n\t\t\tthis.#assertEnumValues(field, field.many ? [value.value] : value.value, path);\n\t\t\treturn this.#fieldParam(value.value, field.type.codecId, path);\n\t\t}\n\t\tif (field.type.kind === \"valueObject\" && isUnknownRecord(value.value)) {\n\t\t\tconst voDef = domainValueObjectsAtDefaultNamespace(this.#contract.domain)?.[field.type.name];\n\t\t\tif (voDef) return this.#wrapValueObject(value.value, voDef, path, \"write\");\n\t\t}\n\t\treturn value;\n\t}\n\t#mergeFilters() {\n\t\tconst [single] = this.#state.filters;\n\t\tif (this.#state.filters.length === 1 && single) return single;\n\t\treturn MongoAndExpr.of([...this.#state.filters]);\n\t}\n\t#requireFilters(methodName) {\n\t\tif (this.#state.filters.length === 0) throw ormError(\"ORM.WHERE_MISSING\", `${methodName}() requires a .where() filter. Call .where() before .${methodName}()`, { meta: { method: methodName } });\n\t}\n\t#rejectWindowing(methodName) {\n\t\tif (this.#state.orderBy !== void 0 || this.#state.limit !== void 0 || this.#state.offset !== void 0) throw ormError(\"ORM.OPERATION_UNSUPPORTED\", `${methodName}() does not support orderBy/offset/limit. Remove windowing before calling .${methodName}()`, { meta: {\n\t\t\tmethod: methodName,\n\t\t\treason: \"windowing\"\n\t\t} });\n\t}\n\t#rejectIncludes(methodName) {\n\t\tif (this.#state.includes.length > 0) throw ormError(\"ORM.OPERATION_UNSUPPORTED\", `${methodName}() does not support .include(). Remove includes before calling .${methodName}()`, { meta: {\n\t\t\tmethod: methodName,\n\t\t\treason: \"includes\"\n\t\t} });\n\t}\n\t#planMeta() {\n\t\treturn {\n\t\t\ttarget: \"mongo\",\n\t\t\tstorageHash: this.#contract.storage.storageHash,\n\t\t\tlane: \"mongo-orm\"\n\t\t};\n\t}\n\t#injectDiscriminator(data) {\n\t\tif (!this.#variantName) return data;\n\t\tconst model = blindCast(domainModelsAtDefaultNamespace(this.#contract.domain)[this.#modelName]);\n\t\tif (!model?.discriminator || !model.variants) return data;\n\t\tconst variantEntry = model.variants[this.#variantName];\n\t\tif (!variantEntry) return data;\n\t\treturn {\n\t\t\t...data,\n\t\t\t[model.discriminator.field]: variantEntry.value\n\t\t};\n\t}\n\t#clone(overrides) {\n\t\tconst instance = new MongoCollectionImpl(this.#contract, this.#modelName, this.#executor, this.#mutationDefaults, this.#enums);\n\t\tinstance.#state = {\n\t\t\t...this.#state,\n\t\t\t...overrides\n\t\t};\n\t\tinstance.#collectionName = this.#collectionName;\n\t\tinstance.#variantName = this.#variantName;\n\t\treturn instance;\n\t}\n\t#cloneWithVariant(overrides, variantName) {\n\t\tconst instance = new MongoCollectionImpl(this.#contract, this.#modelName, this.#executor, this.#mutationDefaults, this.#enums);\n\t\tinstance.#state = {\n\t\t\t...this.#state,\n\t\t\t...overrides\n\t\t};\n\t\tinstance.#collectionName = this.#collectionName;\n\t\tinstance.#variantName = variantName;\n\t\treturn instance;\n\t}\n};\nfunction createMongoCollection(contract, modelName, executor, enums, mutationDefaults) {\n\treturn new MongoCollectionImpl(contract, modelName, executor, mutationDefaults, enums);\n}\n//#endregion\n//#region src/mongo-orm.ts\nfunction assertEnumsComplete(contract, enums) {\n\tfor (const [namespaceId, namespace] of Object.entries(contract.domain.namespaces)) {\n\t\tconst accessors = enums[namespaceId] ?? {};\n\t\tfor (const enumName of Object.keys(namespace.enum ?? {})) {\n\t\t\tif (enumName in accessors) continue;\n\t\t\tthrow ormError(\"ORM.ARGUMENT_INVALID\", `mongoOrm() has no accessor for enum ${enumName} in namespace ${namespaceId}, so it cannot check a value written to a field of that enum. Pass the contract's enum accessors: enums: buildMongoEnums(contract, context.codecs).`, { meta: {\n\t\t\t\targument: \"enums\",\n\t\t\t\tnamespace: namespaceId,\n\t\t\t\tenum: enumName\n\t\t\t} });\n\t\t}\n\t}\n}\nfunction mongoOrm(options) {\n\tconst { contract, executor, mutationDefaults, enums } = options;\n\tconst executionDefaults = contract.execution?.mutations.defaults ?? [];\n\tif (executionDefaults.length > 0 && mutationDefaults === void 0) throw ormError(\"ORM.MUTATION_DEFAULTS_MISSING\", \"The contract has execution defaults (fields such as temporal.createdAt() that the ORM fills on write), but mongoOrm() was built without mutationDefaults, so those fields would never be written. Pass the execution context: mongoOrm({ contract, executor, mutationDefaults: context }), or create the client with mongo().\", { meta: { fields: executionDefaults.map((d) => `${d.ref.entry}.${d.ref.field}`) } });\n\tassertEnumsComplete(contract, enums);\n\tconst client = {};\n\tfor (const [rootName, rootRef] of Object.entries(contract.roots)) client[rootName] = createMongoCollection(contract, blindCast(rootRef.model), executor, enums, mutationDefaults);\n\treturn blindCast(client);\n}\n//#endregion\n//#region src/raw-collection.ts\nfunction createRawMongoCollection(collectionName, meta) {\n\tfunction buildable(command) {\n\t\treturn { build: () => ({\n\t\t\tcollection: collectionName,\n\t\t\tcommand,\n\t\t\tmeta\n\t\t}) };\n\t}\n\treturn {\n\t\taggregate(pipeline) {\n\t\t\treturn buildable(new RawAggregateCommand(collectionName, pipeline));\n\t\t},\n\t\tinsertOne(document) {\n\t\t\treturn buildable(new RawInsertOneCommand(collectionName, document));\n\t\t},\n\t\tinsertMany(documents) {\n\t\t\treturn buildable(new RawInsertManyCommand(collectionName, documents));\n\t\t},\n\t\tupdateOne(filter, update) {\n\t\t\treturn buildable(new RawUpdateOneCommand(collectionName, filter, update));\n\t\t},\n\t\tupdateMany(filter, update) {\n\t\t\treturn buildable(new RawUpdateManyCommand(collectionName, filter, update));\n\t\t},\n\t\tdeleteOne(filter) {\n\t\t\treturn buildable(new RawDeleteOneCommand(collectionName, filter));\n\t\t},\n\t\tdeleteMany(filter) {\n\t\t\treturn buildable(new RawDeleteManyCommand(collectionName, filter));\n\t\t},\n\t\tfindOneAndUpdate(filter, update, options) {\n\t\t\treturn buildable(new RawFindOneAndUpdateCommand(collectionName, filter, update, options?.upsert ?? false));\n\t\t},\n\t\tfindOneAndDelete(filter) {\n\t\t\treturn buildable(new RawFindOneAndDeleteCommand(collectionName, filter));\n\t\t}\n\t};\n}\n//#endregion\n//#region src/mongo-raw.ts\nfunction mongoRaw(options) {\n\tconst { contract } = options;\n\treturn { collection(rootName) {\n\t\tconst modelName = contract.roots[rootName]?.model;\n\t\tconst models = domainModelsAtDefaultNamespace(contract.domain);\n\t\tif (!modelName || !Object.hasOwn(models, modelName)) throw ormError(\"ORM.MODEL_UNKNOWN\", `Unknown model \"${modelName ?? \"\"}\" for root \"${rootName}\"`, { meta: {\n\t\t\tmodel: modelName ?? \"\",\n\t\t\troot: rootName\n\t\t} });\n\t\treturn createRawMongoCollection(models[modelName].storage.collection ?? modelName, {\n\t\t\ttarget: \"mongo\",\n\t\t\tstorageHash: contract.storage.storageHash,\n\t\t\tlane: \"mongo-raw\"\n\t\t});\n\t} };\n}\n//#endregion\nexport { compileMongoQuery, createFieldAccessor, createMongoCollection, mongoOrm, mongoRaw };\n\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}