@prisma/orm-family-mongo 8.0.0-rc.14-dev.2 → 8.0.0-rc.14-dev.3
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.
|
@@ -938,10 +938,12 @@ function readFailure(schemaPath, message, meta) {
|
|
|
938
938
|
* A `ContractConfig` that reads a Prisma 6 MongoDB `schema.prisma` (a file, or a directory of `.prisma` files) as the contract source.
|
|
939
939
|
*/
|
|
940
940
|
function prisma6Contract(schemaPath, options) {
|
|
941
|
+
const parserOptions = { grammar: "prisma-7" };
|
|
941
942
|
return {
|
|
942
943
|
source: {
|
|
943
944
|
format: "psl",
|
|
944
945
|
inputs: [schemaPath],
|
|
946
|
+
parserOptions,
|
|
945
947
|
async load(context) {
|
|
946
948
|
const [absolutePath] = context.resolvedInputs;
|
|
947
949
|
if (absolutePath === void 0) throw new InternalError("prisma6Contract: context.resolvedInputs is empty. The CLI config loader should populate it from source.inputs.");
|
|
@@ -974,7 +976,7 @@ function prisma6Contract(schemaPath, options) {
|
|
|
974
976
|
cause: message
|
|
975
977
|
});
|
|
976
978
|
}
|
|
977
|
-
const { document, sources, diagnostics } = parse(schema, file.sourceId);
|
|
979
|
+
const { document, sources, diagnostics } = parse(schema, file.sourceId, parserOptions);
|
|
978
980
|
const sourceFile = sources.sourceFileFor(document.syntax);
|
|
979
981
|
seedDiagnostics.push(...mapParseDiagnostics(diagnostics, sourceFile, file.sourceId));
|
|
980
982
|
documents.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-prisma6__provider.mjs","names":[],"sources":["../../../../2-mongo-family/2-authoring/contract-prisma6/dist/provider.mjs"],"sourcesContent":["import { readFile, readdir, stat } from \"node:fs/promises\";\nimport { applySpecifierDefaultControlPolicy } from \"@internal/contract/apply-specifier-default-control-policy\";\nimport { validateContractDomain } from \"@internal/contract/validate-domain\";\nimport { MongoIndex, buildMongoStorage, encodeMongoValueSets, validateMongoStorage } from \"@internal/mongo-contract\";\nimport { ArrayLiteralAst, FunctionCallAst, IdentifierAst, StringLiteralExprAst, parse } from \"@internal/psl-parser/syntax\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { notOk, ok } from \"@internal/utils/result\";\nimport { isStructuredError } from \"@internal/utils/structured-error\";\nimport { basename, dirname, extname, join, normalize } from \"pathe\";\nimport { buildExecutionSection, computeProfileHash } from \"@internal/contract/hashing\";\nimport { crossRef } from \"@internal/contract/types\";\nimport { resolveToOneRelationNullable } from \"@internal/contract-authoring\";\nimport { instantiateAuthoringEntityType, isAuthoringEntityTypeDescriptor } from \"@internal/framework-components/authoring\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { pairMongoBackRelations } from \"@internal/mongo-contract-psl\";\nimport { buildSymbolTable, keywordPslSpan, mapPslDiagnostics, nodePslSpan, readResolvedAttribute, readResolvedAttributes } from \"@internal/psl-parser\";\nimport { fkRelationPairKey } from \"@internal/psl-parser/interpret\";\nimport { ifDefined } from \"@internal/utils/defined\";\n//#region src/diagnostics.ts\nfunction prisma6Diagnostic(code, message, sourceId, span) {\n\treturn {\n\t\tcode,\n\t\tmessage,\n\t\tsourceId,\n\t\t...span !== void 0 ? { span } : {}\n\t};\n}\n//#endregion\n//#region src/indexes.ts\nfunction unsupported(attribute, what, span, ctx) {\n\tctx.diagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_INDEX_ARGUMENT_UNSUPPORTED\", `${ctx.owner}: ${ctx.prefix}${attribute.name} ${what}`, ctx.sourceId, span));\n}\nfunction sortDirection(expression) {\n\tif (expression === void 0) return void 0;\n\tconst token = IdentifierAst.cast(expression.syntax)?.name();\n\treturn token === \"Asc\" ? 1 : token === \"Desc\" ? -1 : void 0;\n}\n/**\n* Reads `sort:` from one index element's or `@unique`'s arguments. `length:` and every other argument are refused: a MongoDB index has no prefix length, and Prisma 6 accepts no other argument there on MongoDB.\n*/\nfunction readSort(attribute, args, ctx) {\n\tlet direction;\n\tfor (const arg of args) {\n\t\tconst key = arg.name()?.name();\n\t\tconst span = nodePslSpan(arg.syntax, ctx.sources);\n\t\tif (key !== \"sort\") return unsupported(attribute, key === \"length\" ? \"argument \\\"length\\\" is not supported: a MongoDB index has no prefix length. Remove it; Prisma 6 ignores it on MongoDB.\" : `argument \"${key ?? \"\"}\" is not supported.`, span, ctx);\n\t\tdirection = sortDirection(arg.value());\n\t\tif (direction === void 0) return unsupported(attribute, \"sort must be Asc or Desc.\", span, ctx);\n\t}\n\treturn { direction };\n}\nfunction readFields(attribute, expression, span, ctx) {\n\tconst array = expression === void 0 ? void 0 : ArrayLiteralAst.cast(expression.syntax);\n\tif (array === void 0) return unsupported(attribute, \"expects a list of field names.\", span, ctx);\n\tconst fields = [];\n\tfor (const element of array.elements()) {\n\t\tconst name = IdentifierAst.cast(element.syntax)?.name();\n\t\tif (name !== void 0) {\n\t\t\tfields.push({\n\t\t\t\tname,\n\t\t\t\tdirection: void 0\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst call = FunctionCallAst.cast(element.syntax);\n\t\tconst path = call?.path() ?? [];\n\t\tconst [callee] = path;\n\t\tif (path.length > 1) {\n\t\t\tctx.diagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_COMPOSITE_INDEX_PATH_UNSUPPORTED\", `Index path \"${path.join(\".\")}\" reaches into a composite type; indexes on composite-type fields are not supported yet. Index a top-level field or remove the index.`, ctx.sourceId, nodePslSpan(element.syntax, ctx.sources)));\n\t\t\treturn;\n\t\t}\n\t\tif (call === void 0 || callee === void 0) return unsupported(attribute, \"expects a list of field names.\", nodePslSpan(element.syntax, ctx.sources), ctx);\n\t\tconst sort = readSort(attribute, call.args(), ctx);\n\t\tif (sort === void 0) return void 0;\n\t\tfields.push({\n\t\t\tname: callee,\n\t\t\tdirection: sort.direction\n\t\t});\n\t}\n\treturn fields;\n}\n/** Reads `@@index`, `@@unique` or `@@fulltext`. `map:` and `name:` are dropped: MongoDB verify never compares index names. */\nfunction parseIndexAttribute(attribute, ctx) {\n\tlet fields;\n\tfor (const arg of attribute.args) {\n\t\tconst key = arg.kind === \"positional\" ? \"fields\" : arg.name;\n\t\tif (key === \"map\" || key === \"name\") continue;\n\t\tif (key !== \"fields\") return unsupported(attribute, `argument \"${key ?? \"\"}\" is not supported.`, arg.span, ctx);\n\t\tfields = readFields(attribute, arg.expression, arg.span, ctx);\n\t\tif (fields === void 0) return void 0;\n\t}\n\tif (fields === void 0 || fields.length === 0) return unsupported(attribute, \"expects a list of field names.\", attribute.span, ctx);\n\treturn {\n\t\tkind: attribute.name,\n\t\tfields,\n\t\tspan: attribute.span\n\t};\n}\n/** Reads a field's `@unique`: `sort:` sets the key direction; `map:` and `name:` are dropped. */\nfunction parseFieldUnique(attribute, fieldName, ctx) {\n\tlet direction;\n\tfor (const arg of attribute.args) {\n\t\tconst key = arg.kind === \"positional\" ? void 0 : arg.name;\n\t\tif (key === \"map\" || key === \"name\") continue;\n\t\tif (key === \"sort\") {\n\t\t\tdirection = sortDirection(arg.expression);\n\t\t\tif (direction === void 0) return unsupported(attribute, \"sort must be Asc or Desc.\", arg.span, ctx);\n\t\t\tcontinue;\n\t\t}\n\t\treturn unsupported(attribute, key === \"length\" ? \"argument \\\"length\\\" is not supported: a MongoDB index has no prefix length. Remove it; Prisma 6 ignores it on MongoDB.\" : `argument \"${key ?? \"\"}\" is not supported.`, arg.span, ctx);\n\t}\n\treturn {\n\t\tkind: \"unique\",\n\t\tfields: [{\n\t\t\tname: fieldName,\n\t\t\tdirection\n\t\t}],\n\t\tspan: attribute.span\n\t};\n}\n//#endregion\n//#region src/interpreter.ts\nconst SUMMARY = \"Prisma 6 MongoDB schema interpretation failed\";\nfunction stringArgument(attribute) {\n\tconst expression = (attribute.args.find((arg) => arg.kind === \"positional\") ?? attribute.args.find((arg) => arg.name === \"name\"))?.expression;\n\treturn expression === void 0 ? void 0 : StringLiteralExprAst.cast(expression.syntax)?.value();\n}\nfunction requireString(attribute, owner, sourceId, diagnostics) {\n\tconst value = stringArgument(attribute);\n\tif (value === void 0) diagnostics.push({\n\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\tmessage: `${owner}: attribute \"@${attribute.name}\" expects one string argument.`,\n\t\tsourceId,\n\t\tspan: attribute.span\n\t});\n\treturn value;\n}\nfunction attributeText(attribute) {\n\tconst args = attribute.args.map((arg) => arg.kind === \"named\" ? `${arg.name}: ${arg.value}` : arg.value);\n\treturn args.length === 0 ? `@${attribute.name}` : `@${attribute.name}(${args.join(\", \")})`;\n}\n/** `auto()` and `now()` with no arguments; any other `@default` value is `other`. */\nfunction defaultKind(attribute) {\n\tconst expression = attribute.args.find((arg) => arg.kind === \"positional\")?.expression;\n\tconst call = expression === void 0 ? void 0 : FunctionCallAst.cast(expression.syntax);\n\tif (call === void 0 || [...call.args()].length > 0) return \"other\";\n\tconst path = call.path().join(\".\");\n\treturn path === \"auto\" ? \"auto\" : path === \"now\" ? \"now\" : \"other\";\n}\nfunction unknownAttribute(owner, attribute, prefix, sourceId) {\n\treturn prisma6Diagnostic(\"PSL.PRISMA6_MONGO_UNKNOWN_ATTRIBUTE\", `${owner}: attribute \"${prefix}${attribute.name}\" is not supported by the Prisma 6 MongoDB contract source.`, sourceId, attribute.span);\n}\nfunction interpretPrisma6Documents(input) {\n\tconst { binding } = input;\n\tconst diagnostics = [...input.seedDiagnostics];\n\tconst datasources = [];\n\tconst enumBlocks = [];\n\tconst compositeTypes = [];\n\tconst models = [];\n\tconst ignoredModels = /* @__PURE__ */ new Set();\n\tconst declaredNames = /* @__PURE__ */ new Map();\n\tconst claimName = (kind, name, sourceId, span) => {\n\t\tconst previous = declaredNames.get(name);\n\t\tif (previous === void 0) {\n\t\t\tdeclaredNames.set(name, sourceId);\n\t\t\treturn true;\n\t\t}\n\t\tdiagnostics.push({\n\t\t\tcode: \"PSL_DUPLICATE_DECLARATION\",\n\t\t\tmessage: `Duplicate declaration of ${kind} \"${name}\"; first declared in ${basename(previous)}.`,\n\t\t\tsourceId,\n\t\t\tspan\n\t\t});\n\t\treturn false;\n\t};\n\tfor (const { document, sources, sourceFile, sourceId } of input.documents) {\n\t\tconst { symbolTable, diagnostics: tableDiagnostics } = buildSymbolTable({\n\t\t\tdocuments: [document],\n\t\t\tsources\n\t\t});\n\t\tfor (const diagnostic of tableDiagnostics) diagnostics.push({\n\t\t\tcode: diagnostic.code,\n\t\t\tmessage: diagnostic.message,\n\t\t\tsourceId,\n\t\t\tspan: sourceFile.rangeToPslSpan(diagnostic.range)\n\t\t});\n\t\tconst unsupported = (keyword, span) => {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_UNSUPPORTED_TOP_LEVEL_BLOCK\",\n\t\t\t\tmessage: `Unsupported top-level block \"${keyword}\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan\n\t\t\t});\n\t\t};\n\t\tfor (const block of Object.values(symbolTable.topLevel.blocks)) switch (block.keyword) {\n\t\t\tcase \"datasource\":\n\t\t\t\tdatasources.push({\n\t\t\t\t\tsymbol: block,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tsources\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase \"generator\": break;\n\t\t\tcase \"enum\":\n\t\t\t\tif (claimName(\"enum\", block.name, sourceId, block.span)) enumBlocks.push({\n\t\t\t\t\tsymbol: block,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tsources\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase \"view\":\n\t\t\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_VIEW_UNSUPPORTED\", `View \"${block.name}\" is not supported; Prisma 8 has no views on MongoDB. Remove the view from the schema this contract source reads.`, sourceId, keywordPslSpan(block.node.syntax, block.keyword, sources)));\n\t\t\t\tbreak;\n\t\t\tdefault: unsupported(block.keyword, keywordPslSpan(block.node.syntax, block.keyword, sources));\n\t\t}\n\t\tfor (const namespace of Object.values(symbolTable.topLevel.namespaces)) for (const { span } of namespace.declarations) unsupported(\"namespace\", span);\n\t\tfor (const namedType of Object.values(symbolTable.topLevel.namedTypes)) unsupported(\"types\", namedType.span);\n\t\tfor (const symbol of Object.values(symbolTable.topLevel.compositeTypes)) if (claimName(\"type\", symbol.name, sourceId, symbol.span)) compositeTypes.push({\n\t\t\tsymbol,\n\t\t\tsourceId,\n\t\t\tsources\n\t\t});\n\t\tfor (const symbol of Object.values(symbolTable.topLevel.models)) {\n\t\t\tif (!claimName(\"model\", symbol.name, sourceId, symbol.span)) continue;\n\t\t\tif (symbol.attributes.some((attribute) => attribute.name === \"ignore\")) ignoredModels.add(symbol.name);\n\t\t\telse models.push({\n\t\t\t\tsymbol,\n\t\t\t\tsourceId,\n\t\t\t\tsources\n\t\t\t});\n\t\t}\n\t}\n\tcheckDatasource(datasources, input.documents[0]?.sourceId ?? \"schema.prisma\", binding, diagnostics);\n\tconst enums = /* @__PURE__ */ new Map();\n\tfor (const located of enumBlocks) {\n\t\tconst built = buildEnum(located, input, diagnostics);\n\t\tif (built !== void 0) enums.set(located.symbol.name, built);\n\t}\n\tconst modelNames = /* @__PURE__ */ new Set([...models.map((m) => m.symbol.name), ...ignoredModels]);\n\tconst typeContext = {\n\t\tbinding,\n\t\tenums,\n\t\tcompositeTypeNames: new Set(compositeTypes.map((c) => c.symbol.name)),\n\t\tdiagnostics\n\t};\n\tconst valueObjects = {};\n\tfor (const located of compositeTypes) valueObjects[located.symbol.name] = { fields: readCompositeFields(located, typeContext) };\n\tconst builds = /* @__PURE__ */ new Map();\n\tfor (const located of models) builds.set(located.symbol.name, readModel(located, modelNames, ignoredModels, typeContext));\n\tconst foreignKeys = [];\n\tconst invalidFkPairings = [];\n\tconst backRelations = [];\n\tfor (const build of builds.values()) readRelationFields(build, builds, {\n\t\tforeignKeys,\n\t\tinvalidFkPairings,\n\t\tbackRelations\n\t}, diagnostics);\n\tconst paired = pairMongoBackRelations({\n\t\tforeignKeys,\n\t\tcandidates: backRelations,\n\t\tinvalidFkPairings\n\t});\n\tdiagnostics.push(...mapPslDiagnostics(paired.diagnostics, mergedSources(input.documents)));\n\tfor (const { modelName, fieldName, relation } of paired.relations) {\n\t\tconst build = builds.get(modelName);\n\t\tif (build !== void 0) build.relations[fieldName] = relation;\n\t}\n\tconst collections = {};\n\tconst roots = {};\n\tconst executionDefaults = [];\n\tfor (const [modelName, build] of builds) {\n\t\tconst indexes = buildIndexes(build, diagnostics);\n\t\tconst existing = collections[build.collection];\n\t\tcollections[build.collection] = { indexes: [...existing?.indexes ?? [], ...indexes] };\n\t\troots[build.collection] = crossRef(modelName, UNBOUND_NAMESPACE_ID);\n\t\tfor (const { field, phases } of build.executionDefaults) executionDefaults.push({\n\t\t\tref: {\n\t\t\t\tnamespace: UNBOUND_NAMESPACE_ID,\n\t\t\t\tentry: build.collection,\n\t\t\t\tfield\n\t\t\t},\n\t\t\t...phases\n\t\t});\n\t\tif (!build.hasId) diagnostics.push({\n\t\t\tcode: \"PSL_MISSING_ID_FIELD\",\n\t\t\tmessage: `Model \"${modelName}\" has no field with @id attribute. Every model must have exactly one @id field.`,\n\t\t\tsourceId: build.located.sourceId,\n\t\t\tspan: build.located.symbol.span\n\t\t});\n\t}\n\tif (diagnostics.length > 0) return notOk({\n\t\tsummary: SUMMARY,\n\t\tdiagnostics\n\t});\n\treturn ok(assembleContract({\n\t\tbinding,\n\t\tbuilds,\n\t\tcollections,\n\t\troots,\n\t\tvalueObjects,\n\t\tenums,\n\t\texecutionDefaults,\n\t\tcodecLookup: input.codecLookup\n\t}));\n}\nfunction checkDatasource(datasources, fallbackSourceId, binding, diagnostics) {\n\tconst [datasource] = datasources;\n\tconst [namedProvider] = binding.providers;\n\tif (datasource === void 0) {\n\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_PROVIDER_MISMATCH\", `No datasource block found; add \\`datasource db { provider = \"${namedProvider}\" }\\`.`, fallbackSourceId, void 0));\n\t\treturn;\n\t}\n\tconst block = datasource.symbol;\n\tlet parameter;\n\tfor (const entry of block.node.entries()) if (entry.key()?.name() === \"provider\") {\n\t\tparameter = entry;\n\t\tbreak;\n\t}\n\tconst expression = parameter?.value();\n\tconst provider = expression instanceof StringLiteralExprAst ? expression.value() : void 0;\n\tif (provider === void 0 || !binding.providers.includes(provider)) diagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_PROVIDER_MISMATCH\", provider === void 0 ? `The datasource block declares no string \\`provider\\`; this contract source reads Prisma 6 schemas for provider \"${namedProvider}\".` : `The datasource provider is \"${provider}\"; this contract source reads Prisma 6 schemas for provider \"${namedProvider}\".`, datasource.sourceId, parameter === void 0 ? block.span : nodePslSpan(parameter.syntax, datasource.sources)));\n}\nfunction buildEnum(located, input, diagnostics) {\n\tconst { symbol: block, sourceId, sources } = located;\n\tfor (const attribute of readResolvedAttributes(block.node.attributes(), sources)) {\n\t\tif (attribute.name === \"map\") continue;\n\t\tif (attribute.name === \"schema\") {\n\t\t\tdiagnostics.push(schemaUnsupported(`Enum \"${block.name}\"`, attribute, sourceId));\n\t\t\tcontinue;\n\t\t}\n\t\tdiagnostics.push(unknownAttribute(`Enum \"${block.name}\"`, attribute, \"@@\", sourceId));\n\t}\n\tconst values = Object.create(null);\n\tconst parameterSpans = Object.create(null);\n\tfor (const entry of block.node.entries()) {\n\t\tconst name = entry.key()?.name();\n\t\tif (name === void 0) continue;\n\t\tlet value = name;\n\t\tfor (const attributeNode of entry.attributes()) {\n\t\t\tconst attribute = readResolvedAttribute(attributeNode, sources);\n\t\t\tif (attribute.name === \"map\") value = requireString(attribute, `Enum member \"${block.name}.${name}\"`, sourceId, diagnostics) ?? value;\n\t\t\telse diagnostics.push(unknownAttribute(`Enum member \"${block.name}.${name}\"`, attribute, \"@\", sourceId));\n\t\t}\n\t\tvalues[name] = value;\n\t\tparameterSpans[name] = nodePslSpan(entry.syntax, sources);\n\t}\n\tconst descriptor = input.authoringContributions.entityTypes[\"enum\"];\n\tif (descriptor === void 0 || !isAuthoringEntityTypeDescriptor(descriptor)) {\n\t\tdiagnostics.push({\n\t\t\tcode: \"PSL_ENUM_MISSING_FACTORY\",\n\t\t\tmessage: `enum \"${block.name}\" requires an \"enum\" entityType factory in the active authoring contributions`,\n\t\t\tsourceId,\n\t\t\tspan: block.span\n\t\t});\n\t\treturn;\n\t}\n\tconst context = {\n\t\tfamily: input.binding.target.familyId,\n\t\ttarget: input.binding.target.targetId,\n\t\tcodecLookup: input.codecLookup,\n\t\tsourceId,\n\t\tenumInferenceCodecs: {\n\t\t\ttext: input.binding.scalarCodecIds.String,\n\t\t\tint: input.binding.scalarCodecIds.Int\n\t\t},\n\t\tdiagnostics: { push: (diagnostic) => {\n\t\t\tdiagnostics.push(blindCast(diagnostic));\n\t\t} }\n\t};\n\tconst handle = instantiateAuthoringEntityType(\"enum\", descriptor, [{\n\t\tkind: \"enum\",\n\t\tkeyword: \"enum\",\n\t\tname: block.name,\n\t\tvalues,\n\t\tparameterSpans,\n\t\tattributes: {},\n\t\tspan: block.span\n\t}], context);\n\tif (handle === void 0 || handle === null) return void 0;\n\treturn {\n\t\tcodecId: handle.codecId,\n\t\tmembers: handle.enumMembers.map((member) => ({\n\t\t\tname: member.name,\n\t\t\tvalue: member.value\n\t\t}))\n\t};\n}\nfunction schemaUnsupported(owner, attribute, sourceId) {\n\treturn prisma6Diagnostic(\"PSL.PRISMA6_MONGO_SCHEMA_UNSUPPORTED\", `${owner}: \"@@schema\" is not supported; a MongoDB contract has one database, bound by the connection string. Remove @@schema.`, sourceId, attribute.span);\n}\nfunction unsupportedTypeMessage(label, typeName, owner) {\n\tconst base = `${label} has type \"${typeName}(...)\", which has no Prisma 8 codec, so ${`${owner.kind} \"${owner.name}\"`} cannot use this contract source while it has the field. Prisma 6 rejects @ignore on an Unsupported field. Removing the field from the schema leaves its stored values in the documents, but the Prisma 6 client no longer reads or writes them.`;\n\tif (owner.kind === \"type\") return base;\n\treturn `${base} Adding @@ignore to model \"${owner.name}\" keeps the model out of the contract, but the model disappears from the Prisma 6 client too, and every relation field in another model that points to it needs @ignore, which removes that field from the Prisma 6 client as well.`;\n}\n/** The field's contract type, or `undefined` after reporting why it has none. */\nfunction resolveFieldType(field, owner, nativeType, sourceId, ctx) {\n\tconst { binding, diagnostics } = ctx;\n\tconst label = `Field \"${owner.name}.${field.name}\"`;\n\tif (field.typeConstructor !== void 0) {\n\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_UNSUPPORTED_TYPE\", unsupportedTypeMessage(label, field.typeConstructor.path.join(\".\"), owner), sourceId, field.typeConstructor.span));\n\t\treturn;\n\t}\n\tconst nativeTypeUnsupported = (attribute) => {\n\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_NATIVE_TYPE_UNSUPPORTED\", attribute.name === \"db.ObjectId\" ? `${label}: @db.ObjectId is only supported on a String field, and this field is \"${field.typeName}\". Remove @db.ObjectId, or change the field type to String.` : `${label}: native type \"@${attribute.name}\" is not supported by the Prisma 6 MongoDB contract source; only @db.ObjectId is. Remove it: the stored BSON type then follows the field type.`, sourceId, attribute.span));\n\t};\n\tconst many = field.list ? { many: true } : {};\n\tif (ctx.compositeTypeNames.has(field.typeName)) {\n\t\tif (nativeType !== void 0) return nativeTypeUnsupported(nativeType);\n\t\treturn {\n\t\t\ttype: {\n\t\t\t\tkind: \"valueObject\",\n\t\t\t\tname: field.typeName\n\t\t\t},\n\t\t\tnullable: field.optional,\n\t\t\t...many\n\t\t};\n\t}\n\tconst enumBuild = ctx.enums.get(field.typeName);\n\tif (enumBuild !== void 0) {\n\t\tif (nativeType !== void 0) return nativeTypeUnsupported(nativeType);\n\t\tconst valueSet = {\n\t\t\tplane: \"domain\",\n\t\t\tentityKind: \"enum\",\n\t\t\tnamespaceId: UNBOUND_NAMESPACE_ID,\n\t\t\tentityName: field.typeName\n\t\t};\n\t\treturn {\n\t\t\ttype: {\n\t\t\t\tkind: \"scalar\",\n\t\t\t\tcodecId: enumBuild.codecId\n\t\t\t},\n\t\t\tnullable: field.optional,\n\t\t\tvalueSet,\n\t\t\t...many\n\t\t};\n\t}\n\tconst scalarCodecId = Object.hasOwn(binding.scalarCodecIds, field.typeName) ? binding.scalarCodecIds[field.typeName] : void 0;\n\tif (scalarCodecId === void 0) {\n\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_UNSUPPORTED_TYPE\", `${label} has unknown type \"${field.typeName}\": it is not a scalar type, an enum, a composite type, or a model. Correct the type name.`, sourceId, field.span));\n\t\treturn;\n\t}\n\tlet codecId = scalarCodecId;\n\tif (nativeType !== void 0) {\n\t\tif (nativeType.name !== \"db.ObjectId\" || field.typeName !== \"String\") return nativeTypeUnsupported(nativeType);\n\t\tcodecId = binding.objectIdCodecId;\n\t}\n\treturn {\n\t\ttype: {\n\t\t\tkind: \"scalar\",\n\t\t\tcodecId\n\t\t},\n\t\tnullable: field.optional,\n\t\t...many\n\t};\n}\nfunction readCompositeFields(located, ctx) {\n\tconst { symbol, sourceId } = located;\n\tfor (const attribute of symbol.attributes) ctx.diagnostics.push(unknownAttribute(`Type \"${symbol.name}\"`, attribute, \"@@\", sourceId));\n\tconst fields = {};\n\tfor (const field of Object.values(symbol.fields)) {\n\t\tif (field.malformedType) continue;\n\t\tconst label = `Field \"${symbol.name}.${field.name}\"`;\n\t\tlet nativeType;\n\t\tlet rejected = false;\n\t\tfor (const attribute of field.attributes) if (attribute.name.startsWith(\"db.\")) nativeType = attribute;\n\t\telse if (attribute.name === \"map\") {\n\t\t\tctx.diagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_COMPOSITE_MAP_UNSUPPORTED\", `${label}: @map on a field of a composite type is not supported yet. The stored field keeps the name \"${stringArgument(attribute) ?? field.name}\", so removing @map renames it in storage; keep the schema as it is until Prisma 8 supports it.`, sourceId, attribute.span));\n\t\t\trejected = true;\n\t\t} else if (attribute.name === \"default\") {\n\t\t\tctx.diagnostics.push(defaultUnsupported(label, attribute, sourceId));\n\t\t\trejected = true;\n\t\t} else {\n\t\t\tctx.diagnostics.push(unknownAttribute(label, attribute, \"@\", sourceId));\n\t\t\trejected = true;\n\t\t}\n\t\tif (rejected) continue;\n\t\tconst resolved = resolveFieldType(field, {\n\t\t\tkind: \"type\",\n\t\t\tname: symbol.name\n\t\t}, nativeType, sourceId, ctx);\n\t\tif (resolved !== void 0) fields[field.name] = resolved;\n\t}\n\treturn fields;\n}\nfunction defaultUnsupported(label, attribute, sourceId) {\n\treturn prisma6Diagnostic(\"PSL.PRISMA6_MONGO_DEFAULT_UNSUPPORTED\", `${label}: ${attributeText(attribute)} is not supported. MongoDB has no stored defaults, and Prisma 8 fills only \\`now()\\` on DateTime fields. Remove the default and set the value when you create documents.`, sourceId, attribute.span);\n}\nfunction readModel(located, modelNames, ignoredModels, ctx) {\n\tconst { symbol, sourceId, sources } = located;\n\tconst { diagnostics } = ctx;\n\tconst modelLabel = `Model \"${symbol.name}\"`;\n\tlet collection = symbol.name;\n\tconst build = {\n\t\tlocated,\n\t\tcollection: symbol.name,\n\t\tstoredNames: /* @__PURE__ */ new Map(),\n\t\tignoredFields: /* @__PURE__ */ new Set(),\n\t\trejectedFields: /* @__PURE__ */ new Set(),\n\t\tfields: {},\n\t\trelations: {},\n\t\texecutionDefaults: [],\n\t\tuniqueFields: [],\n\t\tmodelIndexes: [],\n\t\trelationFields: [],\n\t\thasId: false\n\t};\n\tconst indexContext = {\n\t\towner: modelLabel,\n\t\tprefix: \"@@\",\n\t\tsourceId,\n\t\tsources,\n\t\tdiagnostics\n\t};\n\tfor (const attribute of symbol.attributes) switch (attribute.name) {\n\t\tcase \"map\":\n\t\t\tcollection = requireString(attribute, modelLabel, sourceId, diagnostics) ?? collection;\n\t\t\tbreak;\n\t\tcase \"index\":\n\t\tcase \"unique\":\n\t\tcase \"fulltext\": {\n\t\t\tconst parsed = parseIndexAttribute({\n\t\t\t\t...attribute,\n\t\t\t\tname: attribute.name\n\t\t\t}, indexContext);\n\t\t\tif (parsed !== void 0) build.modelIndexes.push(parsed);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"id\":\n\t\t\tbuild.hasId = true;\n\t\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_COMPOSITE_ID_UNSUPPORTED\", `${modelLabel}: @@id is not supported; a MongoDB document is identified by its \"_id\" field. Declare the id as \\`id String @id @default(auto()) @map(\"_id\") @db.ObjectId\\`.`, sourceId, attribute.span));\n\t\t\tbreak;\n\t\tcase \"schema\":\n\t\t\tdiagnostics.push(schemaUnsupported(modelLabel, attribute, sourceId));\n\t\t\tbreak;\n\t\tcase \"ignore\": break;\n\t\tdefault: diagnostics.push(unknownAttribute(modelLabel, attribute, \"@@\", sourceId));\n\t}\n\tfor (const field of Object.values(symbol.fields)) {\n\t\tconst reported = diagnostics.length;\n\t\treadModelField(field, build, modelNames, ignoredModels, ctx);\n\t\tif (diagnostics.length > reported) build.rejectedFields.add(field.name);\n\t}\n\treturn {\n\t\t...build,\n\t\tcollection\n\t};\n}\nfunction readModelField(field, build, modelNames, ignoredModels, ctx) {\n\tconst { symbol, sourceId, sources } = build.located;\n\tconst { diagnostics, binding } = ctx;\n\tconst label = `Field \"${symbol.name}.${field.name}\"`;\n\tconst isRelationField = modelNames.has(field.typeName) && field.typeConstructor === void 0;\n\tif (field.attributes.some((attribute) => attribute.name === \"ignore\")) {\n\t\tbuild.ignoredFields.add(field.name);\n\t\tconst unique = field.attributes.find((attribute) => attribute.name === \"unique\");\n\t\tif (unique !== void 0) diagnostics.push(ignoredFieldReferenced(symbol.name, [field.name], `@unique on field \"${symbol.name}.${field.name}\"`, sourceId, unique.span));\n\t\treturn;\n\t}\n\tif (isRelationField) {\n\t\tif (ignoredModels.has(field.typeName)) return;\n\t\tlet relation;\n\t\tfor (const attribute of field.attributes) if (attribute.name === \"relation\") relation = attribute;\n\t\telse diagnostics.push(unknownAttribute(label, attribute, \"@\", sourceId));\n\t\tbuild.relationFields.push({\n\t\t\tfield,\n\t\t\trelation\n\t\t});\n\t\treturn;\n\t}\n\tlet storedName = field.name;\n\tlet nativeType;\n\tlet idAttribute;\n\tlet defaultAttribute;\n\tlet updatedAt;\n\tfor (const attribute of field.attributes) switch (attribute.name) {\n\t\tcase \"map\":\n\t\t\tstoredName = requireString(attribute, label, sourceId, diagnostics) ?? storedName;\n\t\t\tbreak;\n\t\tcase \"id\":\n\t\t\tidAttribute = attribute;\n\t\t\tbreak;\n\t\tcase \"default\":\n\t\t\tdefaultAttribute = attribute;\n\t\t\tbreak;\n\t\tcase \"updatedAt\":\n\t\t\tupdatedAt = attribute;\n\t\t\tbreak;\n\t\tcase \"unique\": {\n\t\t\tconst parsed = parseFieldUnique(attribute, field.name, {\n\t\t\t\towner: label,\n\t\t\t\tprefix: \"@\",\n\t\t\t\tsourceId,\n\t\t\t\tsources,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed !== void 0) build.uniqueFields.push(parsed);\n\t\t\tbreak;\n\t\t}\n\t\tdefault: if (attribute.name.startsWith(\"db.\")) nativeType = attribute;\n\t\telse diagnostics.push(unknownAttribute(label, attribute, \"@\", sourceId));\n\t}\n\tbuild.storedNames.set(field.name, storedName);\n\tif (field.malformedType) return;\n\tconst resolved = resolveFieldType(field, {\n\t\tkind: \"model\",\n\t\tname: symbol.name\n\t}, nativeType, sourceId, ctx);\n\tif (resolved === void 0) return;\n\tconst codecId = resolved.type.kind === \"scalar\" ? resolved.type.codecId : void 0;\n\tif (idAttribute !== void 0) {\n\t\tbuild.hasId = true;\n\t\tif (codecId !== binding.objectIdCodecId || storedName !== \"_id\" || field.optional || field.list) {\n\t\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_ID_NOT_OBJECTID\", `${label} is the model's @id, but it is not a required ObjectId stored as \"_id\". Prisma 8 identifies a MongoDB document by an ObjectId \"_id\"; declare the id as \\`${field.name} String @id @default(auto()) @map(\"_id\") @db.ObjectId\\`.`, sourceId, idAttribute.span));\n\t\t\treturn;\n\t\t}\n\t\tif (defaultAttribute !== void 0 && defaultKind(defaultAttribute) !== \"auto\") {\n\t\t\tdiagnostics.push(defaultUnsupported(label, defaultAttribute, sourceId));\n\t\t\treturn;\n\t\t}\n\t\tbuild.fields[storedName] = resolved;\n\t\treturn;\n\t}\n\tconst isDateTime = codecId === binding.scalarCodecIds.DateTime && !field.list;\n\tif (updatedAt !== void 0 && !isDateTime) {\n\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_UPDATED_AT_TYPE_UNSUPPORTED\", `${label}: @updatedAt is only supported on a DateTime field. Remove @updatedAt and set the value when you write documents.`, sourceId, updatedAt.span));\n\t\treturn;\n\t}\n\tconst defaultIsNow = defaultAttribute !== void 0 && defaultKind(defaultAttribute) === \"now\";\n\tif (defaultAttribute !== void 0 && (!defaultIsNow || !isDateTime)) {\n\t\tdiagnostics.push(defaultUnsupported(label, defaultAttribute, sourceId));\n\t\treturn;\n\t}\n\tconst generator = {\n\t\tkind: \"generator\",\n\t\tid: binding.timestampGeneratorId\n\t};\n\tconst phases = updatedAt !== void 0 ? {\n\t\tonCreate: generator,\n\t\tonUpdate: generator\n\t} : defaultIsNow ? { onCreate: generator } : void 0;\n\tif (phases !== void 0 && field.optional) {\n\t\tconst written = updatedAt ?? defaultAttribute;\n\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_OPTIONAL_GENERATED_FIELD_UNSUPPORTED\", `${label} is optional and its value comes from ${written === void 0 ? \"a generator\" : attributeText(written)}, which Prisma 8 cannot express on an optional field yet. Make the field required, or remove ${written === void 0 ? \"the generator\" : attributeText(written)} and set the value when you write documents.`, sourceId, written?.span ?? field.span));\n\t\treturn;\n\t}\n\tbuild.fields[storedName] = resolved;\n\tif (phases !== void 0) build.executionDefaults.push({\n\t\tfield: storedName,\n\t\tphases\n\t});\n}\nfunction identifierList(attributeArg) {\n\tconst expression = attributeArg.expression;\n\tconst array = expression === void 0 ? void 0 : ArrayLiteralAst.cast(expression.syntax);\n\tif (array === void 0) return void 0;\n\tconst names = [];\n\tfor (const element of array.elements()) {\n\t\tconst name = IdentifierAst.cast(element.syntax)?.name();\n\t\tif (name === void 0) return void 0;\n\t\tnames.push(name);\n\t}\n\treturn names;\n}\nfunction readRelationArguments(attribute, label, sourceId, diagnostics) {\n\tlet name;\n\tlet fields;\n\tlet references;\n\tconst invalid = (what, span) => {\n\t\tdiagnostics.push({\n\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\tmessage: `${label}: @relation ${what}.`,\n\t\t\tsourceId,\n\t\t\tspan\n\t\t});\n\t};\n\tfor (const arg of attribute.args) {\n\t\tconst key = arg.kind === \"positional\" ? \"name\" : arg.name;\n\t\tswitch (key) {\n\t\t\tcase \"name\": {\n\t\t\t\tconst expression = arg.expression;\n\t\t\t\tname = expression === void 0 ? void 0 : StringLiteralExprAst.cast(expression.syntax)?.value();\n\t\t\t\tif (name === void 0) return invalid(\"name must be a string\", arg.span);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"fields\":\n\t\t\t\tfields = identifierList(arg);\n\t\t\t\tif (fields === void 0) return invalid(\"fields must be a list of field names\", arg.span);\n\t\t\t\tbreak;\n\t\t\tcase \"references\":\n\t\t\t\treferences = identifierList(arg);\n\t\t\t\tif (references === void 0) return invalid(\"references must be a list of field names\", arg.span);\n\t\t\t\tbreak;\n\t\t\tcase \"onDelete\":\n\t\t\tcase \"onUpdate\":\n\t\t\tcase \"map\":\n\t\t\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_REFERENTIAL_ACTION_UNSUPPORTED\", key === \"map\" ? `${label}: @relation argument \"map\" is not supported; it names a foreign key constraint, and MongoDB has none. Remove \"map\".` : `${label}: @relation argument \"${key}\" is not supported; Prisma 8 enforces no referential actions on MongoDB. Remove \"${key}\" and handle related documents in application code.`, sourceId, arg.span));\n\t\t\t\treturn;\n\t\t\tdefault: return invalid(`argument \"${key ?? \"\"}\" is not supported`, arg.span);\n\t\t}\n\t}\n\treturn {\n\t\tname,\n\t\tfields,\n\t\treferences\n\t};\n}\nfunction ignoredFieldReferenced(modelName, fieldNames, usedBy, sourceId, span) {\n\tconst one = fieldNames.length === 1;\n\tconst fields = fieldNames.map((name) => `\"${modelName}.${name}\"`).join(\", \");\n\treturn prisma6Diagnostic(\"PSL.PRISMA6_MONGO_IGNORED_FIELD_REFERENCED\", `${one ? \"Field\" : \"Fields\"} ${fields} ${one ? \"is\" : \"are\"} marked @ignore, but ${usedBy} uses ${one ? \"it\" : \"them\"}. Remove @ignore from ${fields}, or remove ${usedBy}.`, sourceId, span);\n}\nfunction readRelationFields(build, builds, out, diagnostics) {\n\tconst { symbol, sourceId, sources } = build.located;\n\tfor (const { field, relation } of build.relationFields) {\n\t\tconst label = `Relation field \"${symbol.name}.${field.name}\"`;\n\t\tconst reject = () => {\n\t\t\tout.invalidFkPairings.push({\n\t\t\t\tpairKey: fkRelationPairKey(symbol.name, field.typeName),\n\t\t\t\t...ifDefined(\"relationName\", relation === void 0 ? void 0 : stringArgument(relation))\n\t\t\t});\n\t\t};\n\t\tconst args = relation === void 0 ? void 0 : readRelationArguments(relation, label, sourceId, diagnostics);\n\t\tif (relation !== void 0 && args === void 0) {\n\t\t\treject();\n\t\t\tcontinue;\n\t\t}\n\t\tconst target = builds.get(field.typeName);\n\t\tif (target === void 0) continue;\n\t\tif (!(args?.fields !== void 0 || args?.references !== void 0)) {\n\t\t\tout.backRelations.push({\n\t\t\t\tmodelName: symbol.name,\n\t\t\t\tfield,\n\t\t\t\ttargetModelName: field.typeName,\n\t\t\t\t...ifDefined(\"relationName\", args?.name),\n\t\t\t\tcardinality: field.list ? \"1:N\" : \"1:1\",\n\t\t\t\tsources\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (field.list) {\n\t\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_LIST_RELATION_UNSUPPORTED\", `${label} is a list relation that stores its keys in a list field (a many-to-many relation on MongoDB), which Prisma 8 does not support yet. Remove the relation fields from the schema this contract source reads and keep the key list as a plain field.`, sourceId, relation?.span ?? field.span));\n\t\t\treject();\n\t\t\tcontinue;\n\t\t}\n\t\tconst localNames = args?.fields ?? [];\n\t\tconst targetNames = args?.references ?? [];\n\t\tconst ignoredLocal = localNames.filter((name) => build.ignoredFields.has(name));\n\t\tif (ignoredLocal.length > 0) {\n\t\t\tdiagnostics.push(ignoredFieldReferenced(symbol.name, ignoredLocal, `relation field \"${symbol.name}.${field.name}\"`, sourceId, relation?.span ?? field.span));\n\t\t\treject();\n\t\t\tcontinue;\n\t\t}\n\t\tconst ignoredTarget = targetNames.filter((name) => target.ignoredFields.has(name));\n\t\tif (ignoredTarget.length > 0) {\n\t\t\tdiagnostics.push(ignoredFieldReferenced(target.located.symbol.name, ignoredTarget, `relation field \"${symbol.name}.${field.name}\"`, sourceId, relation?.span ?? field.span));\n\t\t\treject();\n\t\t\tcontinue;\n\t\t}\n\t\tconst localFields = localNames.map((name) => build.storedNames.get(name));\n\t\tconst targetFields = targetNames.map((name) => target.storedNames.get(name));\n\t\tif (localFields.some((name) => name === void 0) || targetFields.some((name) => name === void 0) || localNames.length !== targetNames.length || localNames.length === 0) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\t\tmessage: `${label}: @relation fields and references must name the same number of scalar fields of \"${symbol.name}\" and \"${field.typeName}\".`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: relation?.span ?? field.span\n\t\t\t});\n\t\t\treject();\n\t\t\tcontinue;\n\t\t}\n\t\tif (resolveToOneRelationNullable({\n\t\t\tdeclaredNullable: field.optional,\n\t\t\tlocalFieldNullability: localNames.map((name) => symbol.fields[name]?.optional === true),\n\t\t\townsReference: true\n\t\t}).contradiction !== void 0) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_RELATION_NULLABILITY_MISMATCH\",\n\t\t\t\tmessage: field.optional ? `${label} is optional but every field in @relation(fields: [...]) is required. Make one of those fields optional with \"?\" or remove \"?\" from \"${field.name}\".` : `${label} is required but a field in @relation(fields: [...]) is optional. Add \"?\" to \"${field.name}\" or make those fields required.`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: field.span\n\t\t\t});\n\t\t\treject();\n\t\t\tcontinue;\n\t\t}\n\t\tconst local = localFields.filter((name) => name !== void 0);\n\t\tconst referenced = targetFields.filter((name) => name !== void 0);\n\t\tbuild.relations[field.name] = {\n\t\t\tto: crossRef(field.typeName, UNBOUND_NAMESPACE_ID),\n\t\t\tcardinality: \"N:1\",\n\t\t\tnullable: field.optional,\n\t\t\ton: {\n\t\t\t\tlocalFields: local,\n\t\t\t\ttargetFields: referenced\n\t\t\t}\n\t\t};\n\t\tout.foreignKeys.push({\n\t\t\tdeclaringModel: symbol.name,\n\t\t\ttargetModel: field.typeName,\n\t\t\t...ifDefined(\"relationName\", args?.name),\n\t\t\tlocalFields: local,\n\t\t\ttargetFields: referenced\n\t\t});\n\t}\n}\nfunction buildIndexes(build, diagnostics) {\n\tconst { symbol, sourceId } = build.located;\n\tconst indexes = [];\n\tlet textIndexes = 0;\n\tconst keyFor = (field, text) => ({\n\t\tfield: build.storedNames.get(field.name) ?? field.name,\n\t\tdirection: field.direction ?? (text ? \"text\" : 1)\n\t});\n\tfor (const attribute of [...build.uniqueFields, ...build.modelIndexes]) {\n\t\tconst names = attribute.fields.map((field) => field.name);\n\t\tconst usedBy = build.uniqueFields.includes(attribute) ? `@unique on field \"${symbol.name}.${attribute.fields[0]?.name ?? \"\"}\"` : `@@${attribute.kind} on model \"${symbol.name}\"`;\n\t\tconst ignored = names.filter((name) => build.ignoredFields.has(name));\n\t\tif (ignored.length > 0) {\n\t\t\tdiagnostics.push(ignoredFieldReferenced(symbol.name, ignored, usedBy, sourceId, attribute.span));\n\t\t\tcontinue;\n\t\t}\n\t\tif (names.some((name) => build.rejectedFields.has(name))) continue;\n\t\tconst unknown = names.find((name) => !build.storedNames.has(name));\n\t\tif (unknown !== void 0) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_INDEX_FIELD_NOT_FOUND\",\n\t\t\t\tmessage: `Index on model \"${symbol.name}\" references unknown field \"${unknown}\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: attribute.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (attribute.kind === \"fulltext\") {\n\t\t\ttextIndexes++;\n\t\t\tif (textIndexes > 1) {\n\t\t\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_TEXT_INDEX_LIMIT\", `Model \"${symbol.name}\" has more than one @@fulltext; MongoDB allows one text index per collection. Merge the fields into one @@fulltext.`, sourceId, attribute.span));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tindexes.push(new MongoIndex({\n\t\t\tkeys: attribute.fields.map((field) => keyFor(field, attribute.kind === \"fulltext\")),\n\t\t\t...attribute.kind === \"unique\" ? { unique: true } : {}\n\t\t}));\n\t}\n\treturn indexes;\n}\nfunction assembleContract(input) {\n\tconst target = input.binding.target.targetId;\n\tconst targetFamily = input.binding.target.familyId;\n\tconst builtEnums = {};\n\tfor (const [enumName, built] of input.enums) builtEnums[enumName] = {\n\t\tcodecId: built.codecId,\n\t\tmembers: built.members.map((member) => ({\n\t\t\tname: member.name,\n\t\t\tvalue: blindCast(member.value)\n\t\t}))\n\t};\n\tconst collections = {};\n\tfor (const [name, collection] of Object.entries(input.collections)) collections[name] = collection.indexes.length > 0 ? { indexes: collection.indexes } : {};\n\tconst storage = buildMongoStorage({\n\t\tcollections,\n\t\tvalueSets: encodeMongoValueSets(Object.fromEntries(input.enums), input.codecLookup)\n\t});\n\tconst models = {};\n\tfor (const [modelName, build] of input.builds) models[modelName] = {\n\t\tfields: build.fields,\n\t\trelations: build.relations,\n\t\tstorage: { collection: build.collection }\n\t};\n\tconst capabilities = {};\n\tconst execution = buildExecutionSection({\n\t\ttarget,\n\t\ttargetFamily,\n\t\tdefaults: input.executionDefaults\n\t});\n\treturn {\n\t\ttargetFamily,\n\t\ttarget,\n\t\troots: input.roots,\n\t\tdomain: { namespaces: { [UNBOUND_NAMESPACE_ID]: {\n\t\t\tmodels: blindCast(models),\n\t\t\t...Object.keys(input.valueObjects).length > 0 ? { valueObjects: input.valueObjects } : {},\n\t\t\t...Object.keys(builtEnums).length > 0 ? { enum: builtEnums } : {}\n\t\t} } },\n\t\tstorage,\n\t\textensions: {},\n\t\tcapabilities,\n\t\tprofileHash: computeProfileHash({\n\t\t\ttarget,\n\t\t\ttargetFamily,\n\t\t\tcapabilities\n\t\t}),\n\t\tmeta: {},\n\t\t...execution !== void 0 ? { execution } : {}\n\t};\n}\nfunction mergedSources(documents) {\n\tconst [first, ...rest] = documents.map((document) => document.sources);\n\tif (first === void 0) throw new InternalError(\"A Prisma 6 schema has at least one document\");\n\treturn first.merge(...rest);\n}\n//#endregion\n//#region src/provider.ts\nfunction defaultOutputFromSchemaPath(schemaPath) {\n\treturn join(dirname(schemaPath), \"contract.json\");\n}\nfunction mapParseDiagnostics(diagnostics, sourceFile, sourceId) {\n\treturn diagnostics.map((diagnostic) => ({\n\t\tcode: diagnostic.code,\n\t\tmessage: diagnostic.message,\n\t\tsourceId,\n\t\tspan: sourceFile.rangeToPslSpan(diagnostic.range)\n\t}));\n}\n/**\n* The files a Prisma 6 schema input names: the file itself, or every regular `.prisma` file under the directory, nested directories and symbolic links included, as Prisma 6 reads a schema directory. Sorted by path so duplicate detection blames the later file deterministically.\n*/\nasync function listSchemaFiles(absolutePath, displayPath) {\n\tif (!(await stat(absolutePath)).isDirectory()) return [{\n\t\tsourceId: displayPath,\n\t\tabsolutePath\n\t}];\n\tconst entries = await readdir(absolutePath, { recursive: true });\n\tconst files = [];\n\tfor (const entry of entries.filter((name) => extname(name) === \".prisma\").map((name) => normalize(name)).sort()) {\n\t\tconst entryPath = join(absolutePath, entry);\n\t\tif ((await stat(entryPath)).isFile()) files.push({\n\t\t\tsourceId: join(displayPath, entry),\n\t\t\tabsolutePath: entryPath\n\t\t});\n\t}\n\treturn files;\n}\nfunction readFailure(schemaPath, message, meta) {\n\treturn notOk({\n\t\tsummary: `Failed to read Prisma 6 schema at \"${schemaPath}\"`,\n\t\tdiagnostics: [prisma6Diagnostic(\"PSL.PRISMA6_MONGO_SCHEMA_READ_FAILED\", message, schemaPath, void 0)],\n\t\tmeta\n\t});\n}\n/**\n* A `ContractConfig` that reads a Prisma 6 MongoDB `schema.prisma` (a file, or a directory of `.prisma` files) as the contract source.\n*/\nfunction prisma6Contract(schemaPath, options) {\n\treturn {\n\t\tsource: {\n\t\t\tformat: \"psl\",\n\t\t\tinputs: [schemaPath],\n\t\t\tasync load(context) {\n\t\t\t\tconst [absolutePath] = context.resolvedInputs;\n\t\t\t\tif (absolutePath === void 0) throw new InternalError(\"prisma6Contract: context.resolvedInputs is empty. The CLI config loader should populate it from source.inputs.\");\n\t\t\t\tlet files;\n\t\t\t\ttry {\n\t\t\t\t\tfiles = await listSchemaFiles(absolutePath, schemaPath);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst message = String(error);\n\t\t\t\t\treturn readFailure(schemaPath, message, {\n\t\t\t\t\t\tschemaPath,\n\t\t\t\t\t\tabsolutePath,\n\t\t\t\t\t\tcause: message\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (files.length === 0) return readFailure(schemaPath, `The schema directory \"${schemaPath}\" contains no .prisma file.`, {\n\t\t\t\t\tschemaPath,\n\t\t\t\t\tabsolutePath\n\t\t\t\t});\n\t\t\t\tconst documents = [];\n\t\t\t\tconst seedDiagnostics = [];\n\t\t\t\tfor (const file of files) {\n\t\t\t\t\tlet schema;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tschema = await readFile(file.absolutePath, \"utf-8\");\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconst message = String(error);\n\t\t\t\t\t\treturn readFailure(file.sourceId, message, {\n\t\t\t\t\t\t\tschemaPath: file.sourceId,\n\t\t\t\t\t\t\tabsoluteSchemaPath: file.absolutePath,\n\t\t\t\t\t\t\tcause: message\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tconst { document, sources, diagnostics } = parse(schema, file.sourceId);\n\t\t\t\t\tconst sourceFile = sources.sourceFileFor(document.syntax);\n\t\t\t\t\tseedDiagnostics.push(...mapParseDiagnostics(diagnostics, sourceFile, file.sourceId));\n\t\t\t\t\tdocuments.push({\n\t\t\t\t\t\tdocument,\n\t\t\t\t\t\tsources,\n\t\t\t\t\t\tsourceFile,\n\t\t\t\t\t\tsourceId: file.sourceId\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tlet contract;\n\t\t\t\ttry {\n\t\t\t\t\tconst interpreted = interpretPrisma6Documents({\n\t\t\t\t\t\tdocuments,\n\t\t\t\t\t\tseedDiagnostics,\n\t\t\t\t\t\tbinding: options.binding,\n\t\t\t\t\t\tauthoringContributions: context.authoringContributions,\n\t\t\t\t\t\tcodecLookup: context.codecLookup\n\t\t\t\t\t});\n\t\t\t\t\tif (!interpreted.ok) return interpreted;\n\t\t\t\t\tcontract = applySpecifierDefaultControlPolicy(interpreted.value, options.defaultControlPolicy);\n\t\t\t\t\tvalidateContractDomain(contract);\n\t\t\t\t\tvalidateMongoStorage(blindCast(contract));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (!isStructuredError(error)) throw error;\n\t\t\t\t\treturn notOk({\n\t\t\t\t\t\tsummary: \"Prisma 6 MongoDB schema interpretation failed\",\n\t\t\t\t\t\tdiagnostics: [prisma6Diagnostic(\"PSL.PRISMA6_MONGO_CONTRACT_INVALID\", `This schema gives a contract that Prisma 8 rejects, and the Prisma 6 MongoDB contract source has no specific diagnostic for the cause: ${error.message.replace(/\\.$/, \"\")}. This is a bug in Prisma ORM; please report it with this schema.`, schemaPath, void 0)],\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tschemaPath,\n\t\t\t\t\t\t\tcode: error.code\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn ok(contract);\n\t\t\t}\n\t\t},\n\t\toutput: options.output ?? defaultOutputFromSchemaPath(schemaPath)\n\t};\n}\n//#endregion\nexport { prisma6Contract };\n\n//# sourceMappingURL=provider.mjs.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contract-prisma6__provider.mjs","names":[],"sources":["../../../../2-mongo-family/2-authoring/contract-prisma6/dist/provider.mjs"],"sourcesContent":["import { readFile, readdir, stat } from \"node:fs/promises\";\nimport { applySpecifierDefaultControlPolicy } from \"@internal/contract/apply-specifier-default-control-policy\";\nimport { validateContractDomain } from \"@internal/contract/validate-domain\";\nimport { MongoIndex, buildMongoStorage, encodeMongoValueSets, validateMongoStorage } from \"@internal/mongo-contract\";\nimport { ArrayLiteralAst, FunctionCallAst, IdentifierAst, StringLiteralExprAst, parse } from \"@internal/psl-parser/syntax\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { notOk, ok } from \"@internal/utils/result\";\nimport { isStructuredError } from \"@internal/utils/structured-error\";\nimport { basename, dirname, extname, join, normalize } from \"pathe\";\nimport { buildExecutionSection, computeProfileHash } from \"@internal/contract/hashing\";\nimport { crossRef } from \"@internal/contract/types\";\nimport { resolveToOneRelationNullable } from \"@internal/contract-authoring\";\nimport { instantiateAuthoringEntityType, isAuthoringEntityTypeDescriptor } from \"@internal/framework-components/authoring\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { pairMongoBackRelations } from \"@internal/mongo-contract-psl\";\nimport { buildSymbolTable, keywordPslSpan, mapPslDiagnostics, nodePslSpan, readResolvedAttribute, readResolvedAttributes } from \"@internal/psl-parser\";\nimport { fkRelationPairKey } from \"@internal/psl-parser/interpret\";\nimport { ifDefined } from \"@internal/utils/defined\";\n//#region src/diagnostics.ts\nfunction prisma6Diagnostic(code, message, sourceId, span) {\n\treturn {\n\t\tcode,\n\t\tmessage,\n\t\tsourceId,\n\t\t...span !== void 0 ? { span } : {}\n\t};\n}\n//#endregion\n//#region src/indexes.ts\nfunction unsupported(attribute, what, span, ctx) {\n\tctx.diagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_INDEX_ARGUMENT_UNSUPPORTED\", `${ctx.owner}: ${ctx.prefix}${attribute.name} ${what}`, ctx.sourceId, span));\n}\nfunction sortDirection(expression) {\n\tif (expression === void 0) return void 0;\n\tconst token = IdentifierAst.cast(expression.syntax)?.name();\n\treturn token === \"Asc\" ? 1 : token === \"Desc\" ? -1 : void 0;\n}\n/**\n* Reads `sort:` from one index element's or `@unique`'s arguments. `length:` and every other argument are refused: a MongoDB index has no prefix length, and Prisma 6 accepts no other argument there on MongoDB.\n*/\nfunction readSort(attribute, args, ctx) {\n\tlet direction;\n\tfor (const arg of args) {\n\t\tconst key = arg.name()?.name();\n\t\tconst span = nodePslSpan(arg.syntax, ctx.sources);\n\t\tif (key !== \"sort\") return unsupported(attribute, key === \"length\" ? \"argument \\\"length\\\" is not supported: a MongoDB index has no prefix length. Remove it; Prisma 6 ignores it on MongoDB.\" : `argument \"${key ?? \"\"}\" is not supported.`, span, ctx);\n\t\tdirection = sortDirection(arg.value());\n\t\tif (direction === void 0) return unsupported(attribute, \"sort must be Asc or Desc.\", span, ctx);\n\t}\n\treturn { direction };\n}\nfunction readFields(attribute, expression, span, ctx) {\n\tconst array = expression === void 0 ? void 0 : ArrayLiteralAst.cast(expression.syntax);\n\tif (array === void 0) return unsupported(attribute, \"expects a list of field names.\", span, ctx);\n\tconst fields = [];\n\tfor (const element of array.elements()) {\n\t\tconst name = IdentifierAst.cast(element.syntax)?.name();\n\t\tif (name !== void 0) {\n\t\t\tfields.push({\n\t\t\t\tname,\n\t\t\t\tdirection: void 0\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst call = FunctionCallAst.cast(element.syntax);\n\t\tconst path = call?.path() ?? [];\n\t\tconst [callee] = path;\n\t\tif (path.length > 1) {\n\t\t\tctx.diagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_COMPOSITE_INDEX_PATH_UNSUPPORTED\", `Index path \"${path.join(\".\")}\" reaches into a composite type; indexes on composite-type fields are not supported yet. Index a top-level field or remove the index.`, ctx.sourceId, nodePslSpan(element.syntax, ctx.sources)));\n\t\t\treturn;\n\t\t}\n\t\tif (call === void 0 || callee === void 0) return unsupported(attribute, \"expects a list of field names.\", nodePslSpan(element.syntax, ctx.sources), ctx);\n\t\tconst sort = readSort(attribute, call.args(), ctx);\n\t\tif (sort === void 0) return void 0;\n\t\tfields.push({\n\t\t\tname: callee,\n\t\t\tdirection: sort.direction\n\t\t});\n\t}\n\treturn fields;\n}\n/** Reads `@@index`, `@@unique` or `@@fulltext`. `map:` and `name:` are dropped: MongoDB verify never compares index names. */\nfunction parseIndexAttribute(attribute, ctx) {\n\tlet fields;\n\tfor (const arg of attribute.args) {\n\t\tconst key = arg.kind === \"positional\" ? \"fields\" : arg.name;\n\t\tif (key === \"map\" || key === \"name\") continue;\n\t\tif (key !== \"fields\") return unsupported(attribute, `argument \"${key ?? \"\"}\" is not supported.`, arg.span, ctx);\n\t\tfields = readFields(attribute, arg.expression, arg.span, ctx);\n\t\tif (fields === void 0) return void 0;\n\t}\n\tif (fields === void 0 || fields.length === 0) return unsupported(attribute, \"expects a list of field names.\", attribute.span, ctx);\n\treturn {\n\t\tkind: attribute.name,\n\t\tfields,\n\t\tspan: attribute.span\n\t};\n}\n/** Reads a field's `@unique`: `sort:` sets the key direction; `map:` and `name:` are dropped. */\nfunction parseFieldUnique(attribute, fieldName, ctx) {\n\tlet direction;\n\tfor (const arg of attribute.args) {\n\t\tconst key = arg.kind === \"positional\" ? void 0 : arg.name;\n\t\tif (key === \"map\" || key === \"name\") continue;\n\t\tif (key === \"sort\") {\n\t\t\tdirection = sortDirection(arg.expression);\n\t\t\tif (direction === void 0) return unsupported(attribute, \"sort must be Asc or Desc.\", arg.span, ctx);\n\t\t\tcontinue;\n\t\t}\n\t\treturn unsupported(attribute, key === \"length\" ? \"argument \\\"length\\\" is not supported: a MongoDB index has no prefix length. Remove it; Prisma 6 ignores it on MongoDB.\" : `argument \"${key ?? \"\"}\" is not supported.`, arg.span, ctx);\n\t}\n\treturn {\n\t\tkind: \"unique\",\n\t\tfields: [{\n\t\t\tname: fieldName,\n\t\t\tdirection\n\t\t}],\n\t\tspan: attribute.span\n\t};\n}\n//#endregion\n//#region src/interpreter.ts\nconst SUMMARY = \"Prisma 6 MongoDB schema interpretation failed\";\nfunction stringArgument(attribute) {\n\tconst expression = (attribute.args.find((arg) => arg.kind === \"positional\") ?? attribute.args.find((arg) => arg.name === \"name\"))?.expression;\n\treturn expression === void 0 ? void 0 : StringLiteralExprAst.cast(expression.syntax)?.value();\n}\nfunction requireString(attribute, owner, sourceId, diagnostics) {\n\tconst value = stringArgument(attribute);\n\tif (value === void 0) diagnostics.push({\n\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\tmessage: `${owner}: attribute \"@${attribute.name}\" expects one string argument.`,\n\t\tsourceId,\n\t\tspan: attribute.span\n\t});\n\treturn value;\n}\nfunction attributeText(attribute) {\n\tconst args = attribute.args.map((arg) => arg.kind === \"named\" ? `${arg.name}: ${arg.value}` : arg.value);\n\treturn args.length === 0 ? `@${attribute.name}` : `@${attribute.name}(${args.join(\", \")})`;\n}\n/** `auto()` and `now()` with no arguments; any other `@default` value is `other`. */\nfunction defaultKind(attribute) {\n\tconst expression = attribute.args.find((arg) => arg.kind === \"positional\")?.expression;\n\tconst call = expression === void 0 ? void 0 : FunctionCallAst.cast(expression.syntax);\n\tif (call === void 0 || [...call.args()].length > 0) return \"other\";\n\tconst path = call.path().join(\".\");\n\treturn path === \"auto\" ? \"auto\" : path === \"now\" ? \"now\" : \"other\";\n}\nfunction unknownAttribute(owner, attribute, prefix, sourceId) {\n\treturn prisma6Diagnostic(\"PSL.PRISMA6_MONGO_UNKNOWN_ATTRIBUTE\", `${owner}: attribute \"${prefix}${attribute.name}\" is not supported by the Prisma 6 MongoDB contract source.`, sourceId, attribute.span);\n}\nfunction interpretPrisma6Documents(input) {\n\tconst { binding } = input;\n\tconst diagnostics = [...input.seedDiagnostics];\n\tconst datasources = [];\n\tconst enumBlocks = [];\n\tconst compositeTypes = [];\n\tconst models = [];\n\tconst ignoredModels = /* @__PURE__ */ new Set();\n\tconst declaredNames = /* @__PURE__ */ new Map();\n\tconst claimName = (kind, name, sourceId, span) => {\n\t\tconst previous = declaredNames.get(name);\n\t\tif (previous === void 0) {\n\t\t\tdeclaredNames.set(name, sourceId);\n\t\t\treturn true;\n\t\t}\n\t\tdiagnostics.push({\n\t\t\tcode: \"PSL_DUPLICATE_DECLARATION\",\n\t\t\tmessage: `Duplicate declaration of ${kind} \"${name}\"; first declared in ${basename(previous)}.`,\n\t\t\tsourceId,\n\t\t\tspan\n\t\t});\n\t\treturn false;\n\t};\n\tfor (const { document, sources, sourceFile, sourceId } of input.documents) {\n\t\tconst { symbolTable, diagnostics: tableDiagnostics } = buildSymbolTable({\n\t\t\tdocuments: [document],\n\t\t\tsources\n\t\t});\n\t\tfor (const diagnostic of tableDiagnostics) diagnostics.push({\n\t\t\tcode: diagnostic.code,\n\t\t\tmessage: diagnostic.message,\n\t\t\tsourceId,\n\t\t\tspan: sourceFile.rangeToPslSpan(diagnostic.range)\n\t\t});\n\t\tconst unsupported = (keyword, span) => {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_UNSUPPORTED_TOP_LEVEL_BLOCK\",\n\t\t\t\tmessage: `Unsupported top-level block \"${keyword}\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan\n\t\t\t});\n\t\t};\n\t\tfor (const block of Object.values(symbolTable.topLevel.blocks)) switch (block.keyword) {\n\t\t\tcase \"datasource\":\n\t\t\t\tdatasources.push({\n\t\t\t\t\tsymbol: block,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tsources\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase \"generator\": break;\n\t\t\tcase \"enum\":\n\t\t\t\tif (claimName(\"enum\", block.name, sourceId, block.span)) enumBlocks.push({\n\t\t\t\t\tsymbol: block,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tsources\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase \"view\":\n\t\t\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_VIEW_UNSUPPORTED\", `View \"${block.name}\" is not supported; Prisma 8 has no views on MongoDB. Remove the view from the schema this contract source reads.`, sourceId, keywordPslSpan(block.node.syntax, block.keyword, sources)));\n\t\t\t\tbreak;\n\t\t\tdefault: unsupported(block.keyword, keywordPslSpan(block.node.syntax, block.keyword, sources));\n\t\t}\n\t\tfor (const namespace of Object.values(symbolTable.topLevel.namespaces)) for (const { span } of namespace.declarations) unsupported(\"namespace\", span);\n\t\tfor (const namedType of Object.values(symbolTable.topLevel.namedTypes)) unsupported(\"types\", namedType.span);\n\t\tfor (const symbol of Object.values(symbolTable.topLevel.compositeTypes)) if (claimName(\"type\", symbol.name, sourceId, symbol.span)) compositeTypes.push({\n\t\t\tsymbol,\n\t\t\tsourceId,\n\t\t\tsources\n\t\t});\n\t\tfor (const symbol of Object.values(symbolTable.topLevel.models)) {\n\t\t\tif (!claimName(\"model\", symbol.name, sourceId, symbol.span)) continue;\n\t\t\tif (symbol.attributes.some((attribute) => attribute.name === \"ignore\")) ignoredModels.add(symbol.name);\n\t\t\telse models.push({\n\t\t\t\tsymbol,\n\t\t\t\tsourceId,\n\t\t\t\tsources\n\t\t\t});\n\t\t}\n\t}\n\tcheckDatasource(datasources, input.documents[0]?.sourceId ?? \"schema.prisma\", binding, diagnostics);\n\tconst enums = /* @__PURE__ */ new Map();\n\tfor (const located of enumBlocks) {\n\t\tconst built = buildEnum(located, input, diagnostics);\n\t\tif (built !== void 0) enums.set(located.symbol.name, built);\n\t}\n\tconst modelNames = /* @__PURE__ */ new Set([...models.map((m) => m.symbol.name), ...ignoredModels]);\n\tconst typeContext = {\n\t\tbinding,\n\t\tenums,\n\t\tcompositeTypeNames: new Set(compositeTypes.map((c) => c.symbol.name)),\n\t\tdiagnostics\n\t};\n\tconst valueObjects = {};\n\tfor (const located of compositeTypes) valueObjects[located.symbol.name] = { fields: readCompositeFields(located, typeContext) };\n\tconst builds = /* @__PURE__ */ new Map();\n\tfor (const located of models) builds.set(located.symbol.name, readModel(located, modelNames, ignoredModels, typeContext));\n\tconst foreignKeys = [];\n\tconst invalidFkPairings = [];\n\tconst backRelations = [];\n\tfor (const build of builds.values()) readRelationFields(build, builds, {\n\t\tforeignKeys,\n\t\tinvalidFkPairings,\n\t\tbackRelations\n\t}, diagnostics);\n\tconst paired = pairMongoBackRelations({\n\t\tforeignKeys,\n\t\tcandidates: backRelations,\n\t\tinvalidFkPairings\n\t});\n\tdiagnostics.push(...mapPslDiagnostics(paired.diagnostics, mergedSources(input.documents)));\n\tfor (const { modelName, fieldName, relation } of paired.relations) {\n\t\tconst build = builds.get(modelName);\n\t\tif (build !== void 0) build.relations[fieldName] = relation;\n\t}\n\tconst collections = {};\n\tconst roots = {};\n\tconst executionDefaults = [];\n\tfor (const [modelName, build] of builds) {\n\t\tconst indexes = buildIndexes(build, diagnostics);\n\t\tconst existing = collections[build.collection];\n\t\tcollections[build.collection] = { indexes: [...existing?.indexes ?? [], ...indexes] };\n\t\troots[build.collection] = crossRef(modelName, UNBOUND_NAMESPACE_ID);\n\t\tfor (const { field, phases } of build.executionDefaults) executionDefaults.push({\n\t\t\tref: {\n\t\t\t\tnamespace: UNBOUND_NAMESPACE_ID,\n\t\t\t\tentry: build.collection,\n\t\t\t\tfield\n\t\t\t},\n\t\t\t...phases\n\t\t});\n\t\tif (!build.hasId) diagnostics.push({\n\t\t\tcode: \"PSL_MISSING_ID_FIELD\",\n\t\t\tmessage: `Model \"${modelName}\" has no field with @id attribute. Every model must have exactly one @id field.`,\n\t\t\tsourceId: build.located.sourceId,\n\t\t\tspan: build.located.symbol.span\n\t\t});\n\t}\n\tif (diagnostics.length > 0) return notOk({\n\t\tsummary: SUMMARY,\n\t\tdiagnostics\n\t});\n\treturn ok(assembleContract({\n\t\tbinding,\n\t\tbuilds,\n\t\tcollections,\n\t\troots,\n\t\tvalueObjects,\n\t\tenums,\n\t\texecutionDefaults,\n\t\tcodecLookup: input.codecLookup\n\t}));\n}\nfunction checkDatasource(datasources, fallbackSourceId, binding, diagnostics) {\n\tconst [datasource] = datasources;\n\tconst [namedProvider] = binding.providers;\n\tif (datasource === void 0) {\n\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_PROVIDER_MISMATCH\", `No datasource block found; add \\`datasource db { provider = \"${namedProvider}\" }\\`.`, fallbackSourceId, void 0));\n\t\treturn;\n\t}\n\tconst block = datasource.symbol;\n\tlet parameter;\n\tfor (const entry of block.node.entries()) if (entry.key()?.name() === \"provider\") {\n\t\tparameter = entry;\n\t\tbreak;\n\t}\n\tconst expression = parameter?.value();\n\tconst provider = expression instanceof StringLiteralExprAst ? expression.value() : void 0;\n\tif (provider === void 0 || !binding.providers.includes(provider)) diagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_PROVIDER_MISMATCH\", provider === void 0 ? `The datasource block declares no string \\`provider\\`; this contract source reads Prisma 6 schemas for provider \"${namedProvider}\".` : `The datasource provider is \"${provider}\"; this contract source reads Prisma 6 schemas for provider \"${namedProvider}\".`, datasource.sourceId, parameter === void 0 ? block.span : nodePslSpan(parameter.syntax, datasource.sources)));\n}\nfunction buildEnum(located, input, diagnostics) {\n\tconst { symbol: block, sourceId, sources } = located;\n\tfor (const attribute of readResolvedAttributes(block.node.attributes(), sources)) {\n\t\tif (attribute.name === \"map\") continue;\n\t\tif (attribute.name === \"schema\") {\n\t\t\tdiagnostics.push(schemaUnsupported(`Enum \"${block.name}\"`, attribute, sourceId));\n\t\t\tcontinue;\n\t\t}\n\t\tdiagnostics.push(unknownAttribute(`Enum \"${block.name}\"`, attribute, \"@@\", sourceId));\n\t}\n\tconst values = Object.create(null);\n\tconst parameterSpans = Object.create(null);\n\tfor (const entry of block.node.entries()) {\n\t\tconst name = entry.key()?.name();\n\t\tif (name === void 0) continue;\n\t\tlet value = name;\n\t\tfor (const attributeNode of entry.attributes()) {\n\t\t\tconst attribute = readResolvedAttribute(attributeNode, sources);\n\t\t\tif (attribute.name === \"map\") value = requireString(attribute, `Enum member \"${block.name}.${name}\"`, sourceId, diagnostics) ?? value;\n\t\t\telse diagnostics.push(unknownAttribute(`Enum member \"${block.name}.${name}\"`, attribute, \"@\", sourceId));\n\t\t}\n\t\tvalues[name] = value;\n\t\tparameterSpans[name] = nodePslSpan(entry.syntax, sources);\n\t}\n\tconst descriptor = input.authoringContributions.entityTypes[\"enum\"];\n\tif (descriptor === void 0 || !isAuthoringEntityTypeDescriptor(descriptor)) {\n\t\tdiagnostics.push({\n\t\t\tcode: \"PSL_ENUM_MISSING_FACTORY\",\n\t\t\tmessage: `enum \"${block.name}\" requires an \"enum\" entityType factory in the active authoring contributions`,\n\t\t\tsourceId,\n\t\t\tspan: block.span\n\t\t});\n\t\treturn;\n\t}\n\tconst context = {\n\t\tfamily: input.binding.target.familyId,\n\t\ttarget: input.binding.target.targetId,\n\t\tcodecLookup: input.codecLookup,\n\t\tsourceId,\n\t\tenumInferenceCodecs: {\n\t\t\ttext: input.binding.scalarCodecIds.String,\n\t\t\tint: input.binding.scalarCodecIds.Int\n\t\t},\n\t\tdiagnostics: { push: (diagnostic) => {\n\t\t\tdiagnostics.push(blindCast(diagnostic));\n\t\t} }\n\t};\n\tconst handle = instantiateAuthoringEntityType(\"enum\", descriptor, [{\n\t\tkind: \"enum\",\n\t\tkeyword: \"enum\",\n\t\tname: block.name,\n\t\tvalues,\n\t\tparameterSpans,\n\t\tattributes: {},\n\t\tspan: block.span\n\t}], context);\n\tif (handle === void 0 || handle === null) return void 0;\n\treturn {\n\t\tcodecId: handle.codecId,\n\t\tmembers: handle.enumMembers.map((member) => ({\n\t\t\tname: member.name,\n\t\t\tvalue: member.value\n\t\t}))\n\t};\n}\nfunction schemaUnsupported(owner, attribute, sourceId) {\n\treturn prisma6Diagnostic(\"PSL.PRISMA6_MONGO_SCHEMA_UNSUPPORTED\", `${owner}: \"@@schema\" is not supported; a MongoDB contract has one database, bound by the connection string. Remove @@schema.`, sourceId, attribute.span);\n}\nfunction unsupportedTypeMessage(label, typeName, owner) {\n\tconst base = `${label} has type \"${typeName}(...)\", which has no Prisma 8 codec, so ${`${owner.kind} \"${owner.name}\"`} cannot use this contract source while it has the field. Prisma 6 rejects @ignore on an Unsupported field. Removing the field from the schema leaves its stored values in the documents, but the Prisma 6 client no longer reads or writes them.`;\n\tif (owner.kind === \"type\") return base;\n\treturn `${base} Adding @@ignore to model \"${owner.name}\" keeps the model out of the contract, but the model disappears from the Prisma 6 client too, and every relation field in another model that points to it needs @ignore, which removes that field from the Prisma 6 client as well.`;\n}\n/** The field's contract type, or `undefined` after reporting why it has none. */\nfunction resolveFieldType(field, owner, nativeType, sourceId, ctx) {\n\tconst { binding, diagnostics } = ctx;\n\tconst label = `Field \"${owner.name}.${field.name}\"`;\n\tif (field.typeConstructor !== void 0) {\n\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_UNSUPPORTED_TYPE\", unsupportedTypeMessage(label, field.typeConstructor.path.join(\".\"), owner), sourceId, field.typeConstructor.span));\n\t\treturn;\n\t}\n\tconst nativeTypeUnsupported = (attribute) => {\n\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_NATIVE_TYPE_UNSUPPORTED\", attribute.name === \"db.ObjectId\" ? `${label}: @db.ObjectId is only supported on a String field, and this field is \"${field.typeName}\". Remove @db.ObjectId, or change the field type to String.` : `${label}: native type \"@${attribute.name}\" is not supported by the Prisma 6 MongoDB contract source; only @db.ObjectId is. Remove it: the stored BSON type then follows the field type.`, sourceId, attribute.span));\n\t};\n\tconst many = field.list ? { many: true } : {};\n\tif (ctx.compositeTypeNames.has(field.typeName)) {\n\t\tif (nativeType !== void 0) return nativeTypeUnsupported(nativeType);\n\t\treturn {\n\t\t\ttype: {\n\t\t\t\tkind: \"valueObject\",\n\t\t\t\tname: field.typeName\n\t\t\t},\n\t\t\tnullable: field.optional,\n\t\t\t...many\n\t\t};\n\t}\n\tconst enumBuild = ctx.enums.get(field.typeName);\n\tif (enumBuild !== void 0) {\n\t\tif (nativeType !== void 0) return nativeTypeUnsupported(nativeType);\n\t\tconst valueSet = {\n\t\t\tplane: \"domain\",\n\t\t\tentityKind: \"enum\",\n\t\t\tnamespaceId: UNBOUND_NAMESPACE_ID,\n\t\t\tentityName: field.typeName\n\t\t};\n\t\treturn {\n\t\t\ttype: {\n\t\t\t\tkind: \"scalar\",\n\t\t\t\tcodecId: enumBuild.codecId\n\t\t\t},\n\t\t\tnullable: field.optional,\n\t\t\tvalueSet,\n\t\t\t...many\n\t\t};\n\t}\n\tconst scalarCodecId = Object.hasOwn(binding.scalarCodecIds, field.typeName) ? binding.scalarCodecIds[field.typeName] : void 0;\n\tif (scalarCodecId === void 0) {\n\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_UNSUPPORTED_TYPE\", `${label} has unknown type \"${field.typeName}\": it is not a scalar type, an enum, a composite type, or a model. Correct the type name.`, sourceId, field.span));\n\t\treturn;\n\t}\n\tlet codecId = scalarCodecId;\n\tif (nativeType !== void 0) {\n\t\tif (nativeType.name !== \"db.ObjectId\" || field.typeName !== \"String\") return nativeTypeUnsupported(nativeType);\n\t\tcodecId = binding.objectIdCodecId;\n\t}\n\treturn {\n\t\ttype: {\n\t\t\tkind: \"scalar\",\n\t\t\tcodecId\n\t\t},\n\t\tnullable: field.optional,\n\t\t...many\n\t};\n}\nfunction readCompositeFields(located, ctx) {\n\tconst { symbol, sourceId } = located;\n\tfor (const attribute of symbol.attributes) ctx.diagnostics.push(unknownAttribute(`Type \"${symbol.name}\"`, attribute, \"@@\", sourceId));\n\tconst fields = {};\n\tfor (const field of Object.values(symbol.fields)) {\n\t\tif (field.malformedType) continue;\n\t\tconst label = `Field \"${symbol.name}.${field.name}\"`;\n\t\tlet nativeType;\n\t\tlet rejected = false;\n\t\tfor (const attribute of field.attributes) if (attribute.name.startsWith(\"db.\")) nativeType = attribute;\n\t\telse if (attribute.name === \"map\") {\n\t\t\tctx.diagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_COMPOSITE_MAP_UNSUPPORTED\", `${label}: @map on a field of a composite type is not supported yet. The stored field keeps the name \"${stringArgument(attribute) ?? field.name}\", so removing @map renames it in storage; keep the schema as it is until Prisma 8 supports it.`, sourceId, attribute.span));\n\t\t\trejected = true;\n\t\t} else if (attribute.name === \"default\") {\n\t\t\tctx.diagnostics.push(defaultUnsupported(label, attribute, sourceId));\n\t\t\trejected = true;\n\t\t} else {\n\t\t\tctx.diagnostics.push(unknownAttribute(label, attribute, \"@\", sourceId));\n\t\t\trejected = true;\n\t\t}\n\t\tif (rejected) continue;\n\t\tconst resolved = resolveFieldType(field, {\n\t\t\tkind: \"type\",\n\t\t\tname: symbol.name\n\t\t}, nativeType, sourceId, ctx);\n\t\tif (resolved !== void 0) fields[field.name] = resolved;\n\t}\n\treturn fields;\n}\nfunction defaultUnsupported(label, attribute, sourceId) {\n\treturn prisma6Diagnostic(\"PSL.PRISMA6_MONGO_DEFAULT_UNSUPPORTED\", `${label}: ${attributeText(attribute)} is not supported. MongoDB has no stored defaults, and Prisma 8 fills only \\`now()\\` on DateTime fields. Remove the default and set the value when you create documents.`, sourceId, attribute.span);\n}\nfunction readModel(located, modelNames, ignoredModels, ctx) {\n\tconst { symbol, sourceId, sources } = located;\n\tconst { diagnostics } = ctx;\n\tconst modelLabel = `Model \"${symbol.name}\"`;\n\tlet collection = symbol.name;\n\tconst build = {\n\t\tlocated,\n\t\tcollection: symbol.name,\n\t\tstoredNames: /* @__PURE__ */ new Map(),\n\t\tignoredFields: /* @__PURE__ */ new Set(),\n\t\trejectedFields: /* @__PURE__ */ new Set(),\n\t\tfields: {},\n\t\trelations: {},\n\t\texecutionDefaults: [],\n\t\tuniqueFields: [],\n\t\tmodelIndexes: [],\n\t\trelationFields: [],\n\t\thasId: false\n\t};\n\tconst indexContext = {\n\t\towner: modelLabel,\n\t\tprefix: \"@@\",\n\t\tsourceId,\n\t\tsources,\n\t\tdiagnostics\n\t};\n\tfor (const attribute of symbol.attributes) switch (attribute.name) {\n\t\tcase \"map\":\n\t\t\tcollection = requireString(attribute, modelLabel, sourceId, diagnostics) ?? collection;\n\t\t\tbreak;\n\t\tcase \"index\":\n\t\tcase \"unique\":\n\t\tcase \"fulltext\": {\n\t\t\tconst parsed = parseIndexAttribute({\n\t\t\t\t...attribute,\n\t\t\t\tname: attribute.name\n\t\t\t}, indexContext);\n\t\t\tif (parsed !== void 0) build.modelIndexes.push(parsed);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"id\":\n\t\t\tbuild.hasId = true;\n\t\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_COMPOSITE_ID_UNSUPPORTED\", `${modelLabel}: @@id is not supported; a MongoDB document is identified by its \"_id\" field. Declare the id as \\`id String @id @default(auto()) @map(\"_id\") @db.ObjectId\\`.`, sourceId, attribute.span));\n\t\t\tbreak;\n\t\tcase \"schema\":\n\t\t\tdiagnostics.push(schemaUnsupported(modelLabel, attribute, sourceId));\n\t\t\tbreak;\n\t\tcase \"ignore\": break;\n\t\tdefault: diagnostics.push(unknownAttribute(modelLabel, attribute, \"@@\", sourceId));\n\t}\n\tfor (const field of Object.values(symbol.fields)) {\n\t\tconst reported = diagnostics.length;\n\t\treadModelField(field, build, modelNames, ignoredModels, ctx);\n\t\tif (diagnostics.length > reported) build.rejectedFields.add(field.name);\n\t}\n\treturn {\n\t\t...build,\n\t\tcollection\n\t};\n}\nfunction readModelField(field, build, modelNames, ignoredModels, ctx) {\n\tconst { symbol, sourceId, sources } = build.located;\n\tconst { diagnostics, binding } = ctx;\n\tconst label = `Field \"${symbol.name}.${field.name}\"`;\n\tconst isRelationField = modelNames.has(field.typeName) && field.typeConstructor === void 0;\n\tif (field.attributes.some((attribute) => attribute.name === \"ignore\")) {\n\t\tbuild.ignoredFields.add(field.name);\n\t\tconst unique = field.attributes.find((attribute) => attribute.name === \"unique\");\n\t\tif (unique !== void 0) diagnostics.push(ignoredFieldReferenced(symbol.name, [field.name], `@unique on field \"${symbol.name}.${field.name}\"`, sourceId, unique.span));\n\t\treturn;\n\t}\n\tif (isRelationField) {\n\t\tif (ignoredModels.has(field.typeName)) return;\n\t\tlet relation;\n\t\tfor (const attribute of field.attributes) if (attribute.name === \"relation\") relation = attribute;\n\t\telse diagnostics.push(unknownAttribute(label, attribute, \"@\", sourceId));\n\t\tbuild.relationFields.push({\n\t\t\tfield,\n\t\t\trelation\n\t\t});\n\t\treturn;\n\t}\n\tlet storedName = field.name;\n\tlet nativeType;\n\tlet idAttribute;\n\tlet defaultAttribute;\n\tlet updatedAt;\n\tfor (const attribute of field.attributes) switch (attribute.name) {\n\t\tcase \"map\":\n\t\t\tstoredName = requireString(attribute, label, sourceId, diagnostics) ?? storedName;\n\t\t\tbreak;\n\t\tcase \"id\":\n\t\t\tidAttribute = attribute;\n\t\t\tbreak;\n\t\tcase \"default\":\n\t\t\tdefaultAttribute = attribute;\n\t\t\tbreak;\n\t\tcase \"updatedAt\":\n\t\t\tupdatedAt = attribute;\n\t\t\tbreak;\n\t\tcase \"unique\": {\n\t\t\tconst parsed = parseFieldUnique(attribute, field.name, {\n\t\t\t\towner: label,\n\t\t\t\tprefix: \"@\",\n\t\t\t\tsourceId,\n\t\t\t\tsources,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed !== void 0) build.uniqueFields.push(parsed);\n\t\t\tbreak;\n\t\t}\n\t\tdefault: if (attribute.name.startsWith(\"db.\")) nativeType = attribute;\n\t\telse diagnostics.push(unknownAttribute(label, attribute, \"@\", sourceId));\n\t}\n\tbuild.storedNames.set(field.name, storedName);\n\tif (field.malformedType) return;\n\tconst resolved = resolveFieldType(field, {\n\t\tkind: \"model\",\n\t\tname: symbol.name\n\t}, nativeType, sourceId, ctx);\n\tif (resolved === void 0) return;\n\tconst codecId = resolved.type.kind === \"scalar\" ? resolved.type.codecId : void 0;\n\tif (idAttribute !== void 0) {\n\t\tbuild.hasId = true;\n\t\tif (codecId !== binding.objectIdCodecId || storedName !== \"_id\" || field.optional || field.list) {\n\t\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_ID_NOT_OBJECTID\", `${label} is the model's @id, but it is not a required ObjectId stored as \"_id\". Prisma 8 identifies a MongoDB document by an ObjectId \"_id\"; declare the id as \\`${field.name} String @id @default(auto()) @map(\"_id\") @db.ObjectId\\`.`, sourceId, idAttribute.span));\n\t\t\treturn;\n\t\t}\n\t\tif (defaultAttribute !== void 0 && defaultKind(defaultAttribute) !== \"auto\") {\n\t\t\tdiagnostics.push(defaultUnsupported(label, defaultAttribute, sourceId));\n\t\t\treturn;\n\t\t}\n\t\tbuild.fields[storedName] = resolved;\n\t\treturn;\n\t}\n\tconst isDateTime = codecId === binding.scalarCodecIds.DateTime && !field.list;\n\tif (updatedAt !== void 0 && !isDateTime) {\n\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_UPDATED_AT_TYPE_UNSUPPORTED\", `${label}: @updatedAt is only supported on a DateTime field. Remove @updatedAt and set the value when you write documents.`, sourceId, updatedAt.span));\n\t\treturn;\n\t}\n\tconst defaultIsNow = defaultAttribute !== void 0 && defaultKind(defaultAttribute) === \"now\";\n\tif (defaultAttribute !== void 0 && (!defaultIsNow || !isDateTime)) {\n\t\tdiagnostics.push(defaultUnsupported(label, defaultAttribute, sourceId));\n\t\treturn;\n\t}\n\tconst generator = {\n\t\tkind: \"generator\",\n\t\tid: binding.timestampGeneratorId\n\t};\n\tconst phases = updatedAt !== void 0 ? {\n\t\tonCreate: generator,\n\t\tonUpdate: generator\n\t} : defaultIsNow ? { onCreate: generator } : void 0;\n\tif (phases !== void 0 && field.optional) {\n\t\tconst written = updatedAt ?? defaultAttribute;\n\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_OPTIONAL_GENERATED_FIELD_UNSUPPORTED\", `${label} is optional and its value comes from ${written === void 0 ? \"a generator\" : attributeText(written)}, which Prisma 8 cannot express on an optional field yet. Make the field required, or remove ${written === void 0 ? \"the generator\" : attributeText(written)} and set the value when you write documents.`, sourceId, written?.span ?? field.span));\n\t\treturn;\n\t}\n\tbuild.fields[storedName] = resolved;\n\tif (phases !== void 0) build.executionDefaults.push({\n\t\tfield: storedName,\n\t\tphases\n\t});\n}\nfunction identifierList(attributeArg) {\n\tconst expression = attributeArg.expression;\n\tconst array = expression === void 0 ? void 0 : ArrayLiteralAst.cast(expression.syntax);\n\tif (array === void 0) return void 0;\n\tconst names = [];\n\tfor (const element of array.elements()) {\n\t\tconst name = IdentifierAst.cast(element.syntax)?.name();\n\t\tif (name === void 0) return void 0;\n\t\tnames.push(name);\n\t}\n\treturn names;\n}\nfunction readRelationArguments(attribute, label, sourceId, diagnostics) {\n\tlet name;\n\tlet fields;\n\tlet references;\n\tconst invalid = (what, span) => {\n\t\tdiagnostics.push({\n\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\tmessage: `${label}: @relation ${what}.`,\n\t\t\tsourceId,\n\t\t\tspan\n\t\t});\n\t};\n\tfor (const arg of attribute.args) {\n\t\tconst key = arg.kind === \"positional\" ? \"name\" : arg.name;\n\t\tswitch (key) {\n\t\t\tcase \"name\": {\n\t\t\t\tconst expression = arg.expression;\n\t\t\t\tname = expression === void 0 ? void 0 : StringLiteralExprAst.cast(expression.syntax)?.value();\n\t\t\t\tif (name === void 0) return invalid(\"name must be a string\", arg.span);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"fields\":\n\t\t\t\tfields = identifierList(arg);\n\t\t\t\tif (fields === void 0) return invalid(\"fields must be a list of field names\", arg.span);\n\t\t\t\tbreak;\n\t\t\tcase \"references\":\n\t\t\t\treferences = identifierList(arg);\n\t\t\t\tif (references === void 0) return invalid(\"references must be a list of field names\", arg.span);\n\t\t\t\tbreak;\n\t\t\tcase \"onDelete\":\n\t\t\tcase \"onUpdate\":\n\t\t\tcase \"map\":\n\t\t\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_REFERENTIAL_ACTION_UNSUPPORTED\", key === \"map\" ? `${label}: @relation argument \"map\" is not supported; it names a foreign key constraint, and MongoDB has none. Remove \"map\".` : `${label}: @relation argument \"${key}\" is not supported; Prisma 8 enforces no referential actions on MongoDB. Remove \"${key}\" and handle related documents in application code.`, sourceId, arg.span));\n\t\t\t\treturn;\n\t\t\tdefault: return invalid(`argument \"${key ?? \"\"}\" is not supported`, arg.span);\n\t\t}\n\t}\n\treturn {\n\t\tname,\n\t\tfields,\n\t\treferences\n\t};\n}\nfunction ignoredFieldReferenced(modelName, fieldNames, usedBy, sourceId, span) {\n\tconst one = fieldNames.length === 1;\n\tconst fields = fieldNames.map((name) => `\"${modelName}.${name}\"`).join(\", \");\n\treturn prisma6Diagnostic(\"PSL.PRISMA6_MONGO_IGNORED_FIELD_REFERENCED\", `${one ? \"Field\" : \"Fields\"} ${fields} ${one ? \"is\" : \"are\"} marked @ignore, but ${usedBy} uses ${one ? \"it\" : \"them\"}. Remove @ignore from ${fields}, or remove ${usedBy}.`, sourceId, span);\n}\nfunction readRelationFields(build, builds, out, diagnostics) {\n\tconst { symbol, sourceId, sources } = build.located;\n\tfor (const { field, relation } of build.relationFields) {\n\t\tconst label = `Relation field \"${symbol.name}.${field.name}\"`;\n\t\tconst reject = () => {\n\t\t\tout.invalidFkPairings.push({\n\t\t\t\tpairKey: fkRelationPairKey(symbol.name, field.typeName),\n\t\t\t\t...ifDefined(\"relationName\", relation === void 0 ? void 0 : stringArgument(relation))\n\t\t\t});\n\t\t};\n\t\tconst args = relation === void 0 ? void 0 : readRelationArguments(relation, label, sourceId, diagnostics);\n\t\tif (relation !== void 0 && args === void 0) {\n\t\t\treject();\n\t\t\tcontinue;\n\t\t}\n\t\tconst target = builds.get(field.typeName);\n\t\tif (target === void 0) continue;\n\t\tif (!(args?.fields !== void 0 || args?.references !== void 0)) {\n\t\t\tout.backRelations.push({\n\t\t\t\tmodelName: symbol.name,\n\t\t\t\tfield,\n\t\t\t\ttargetModelName: field.typeName,\n\t\t\t\t...ifDefined(\"relationName\", args?.name),\n\t\t\t\tcardinality: field.list ? \"1:N\" : \"1:1\",\n\t\t\t\tsources\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (field.list) {\n\t\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_LIST_RELATION_UNSUPPORTED\", `${label} is a list relation that stores its keys in a list field (a many-to-many relation on MongoDB), which Prisma 8 does not support yet. Remove the relation fields from the schema this contract source reads and keep the key list as a plain field.`, sourceId, relation?.span ?? field.span));\n\t\t\treject();\n\t\t\tcontinue;\n\t\t}\n\t\tconst localNames = args?.fields ?? [];\n\t\tconst targetNames = args?.references ?? [];\n\t\tconst ignoredLocal = localNames.filter((name) => build.ignoredFields.has(name));\n\t\tif (ignoredLocal.length > 0) {\n\t\t\tdiagnostics.push(ignoredFieldReferenced(symbol.name, ignoredLocal, `relation field \"${symbol.name}.${field.name}\"`, sourceId, relation?.span ?? field.span));\n\t\t\treject();\n\t\t\tcontinue;\n\t\t}\n\t\tconst ignoredTarget = targetNames.filter((name) => target.ignoredFields.has(name));\n\t\tif (ignoredTarget.length > 0) {\n\t\t\tdiagnostics.push(ignoredFieldReferenced(target.located.symbol.name, ignoredTarget, `relation field \"${symbol.name}.${field.name}\"`, sourceId, relation?.span ?? field.span));\n\t\t\treject();\n\t\t\tcontinue;\n\t\t}\n\t\tconst localFields = localNames.map((name) => build.storedNames.get(name));\n\t\tconst targetFields = targetNames.map((name) => target.storedNames.get(name));\n\t\tif (localFields.some((name) => name === void 0) || targetFields.some((name) => name === void 0) || localNames.length !== targetNames.length || localNames.length === 0) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\t\tmessage: `${label}: @relation fields and references must name the same number of scalar fields of \"${symbol.name}\" and \"${field.typeName}\".`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: relation?.span ?? field.span\n\t\t\t});\n\t\t\treject();\n\t\t\tcontinue;\n\t\t}\n\t\tif (resolveToOneRelationNullable({\n\t\t\tdeclaredNullable: field.optional,\n\t\t\tlocalFieldNullability: localNames.map((name) => symbol.fields[name]?.optional === true),\n\t\t\townsReference: true\n\t\t}).contradiction !== void 0) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_RELATION_NULLABILITY_MISMATCH\",\n\t\t\t\tmessage: field.optional ? `${label} is optional but every field in @relation(fields: [...]) is required. Make one of those fields optional with \"?\" or remove \"?\" from \"${field.name}\".` : `${label} is required but a field in @relation(fields: [...]) is optional. Add \"?\" to \"${field.name}\" or make those fields required.`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: field.span\n\t\t\t});\n\t\t\treject();\n\t\t\tcontinue;\n\t\t}\n\t\tconst local = localFields.filter((name) => name !== void 0);\n\t\tconst referenced = targetFields.filter((name) => name !== void 0);\n\t\tbuild.relations[field.name] = {\n\t\t\tto: crossRef(field.typeName, UNBOUND_NAMESPACE_ID),\n\t\t\tcardinality: \"N:1\",\n\t\t\tnullable: field.optional,\n\t\t\ton: {\n\t\t\t\tlocalFields: local,\n\t\t\t\ttargetFields: referenced\n\t\t\t}\n\t\t};\n\t\tout.foreignKeys.push({\n\t\t\tdeclaringModel: symbol.name,\n\t\t\ttargetModel: field.typeName,\n\t\t\t...ifDefined(\"relationName\", args?.name),\n\t\t\tlocalFields: local,\n\t\t\ttargetFields: referenced\n\t\t});\n\t}\n}\nfunction buildIndexes(build, diagnostics) {\n\tconst { symbol, sourceId } = build.located;\n\tconst indexes = [];\n\tlet textIndexes = 0;\n\tconst keyFor = (field, text) => ({\n\t\tfield: build.storedNames.get(field.name) ?? field.name,\n\t\tdirection: field.direction ?? (text ? \"text\" : 1)\n\t});\n\tfor (const attribute of [...build.uniqueFields, ...build.modelIndexes]) {\n\t\tconst names = attribute.fields.map((field) => field.name);\n\t\tconst usedBy = build.uniqueFields.includes(attribute) ? `@unique on field \"${symbol.name}.${attribute.fields[0]?.name ?? \"\"}\"` : `@@${attribute.kind} on model \"${symbol.name}\"`;\n\t\tconst ignored = names.filter((name) => build.ignoredFields.has(name));\n\t\tif (ignored.length > 0) {\n\t\t\tdiagnostics.push(ignoredFieldReferenced(symbol.name, ignored, usedBy, sourceId, attribute.span));\n\t\t\tcontinue;\n\t\t}\n\t\tif (names.some((name) => build.rejectedFields.has(name))) continue;\n\t\tconst unknown = names.find((name) => !build.storedNames.has(name));\n\t\tif (unknown !== void 0) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_INDEX_FIELD_NOT_FOUND\",\n\t\t\t\tmessage: `Index on model \"${symbol.name}\" references unknown field \"${unknown}\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: attribute.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (attribute.kind === \"fulltext\") {\n\t\t\ttextIndexes++;\n\t\t\tif (textIndexes > 1) {\n\t\t\t\tdiagnostics.push(prisma6Diagnostic(\"PSL.PRISMA6_MONGO_TEXT_INDEX_LIMIT\", `Model \"${symbol.name}\" has more than one @@fulltext; MongoDB allows one text index per collection. Merge the fields into one @@fulltext.`, sourceId, attribute.span));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tindexes.push(new MongoIndex({\n\t\t\tkeys: attribute.fields.map((field) => keyFor(field, attribute.kind === \"fulltext\")),\n\t\t\t...attribute.kind === \"unique\" ? { unique: true } : {}\n\t\t}));\n\t}\n\treturn indexes;\n}\nfunction assembleContract(input) {\n\tconst target = input.binding.target.targetId;\n\tconst targetFamily = input.binding.target.familyId;\n\tconst builtEnums = {};\n\tfor (const [enumName, built] of input.enums) builtEnums[enumName] = {\n\t\tcodecId: built.codecId,\n\t\tmembers: built.members.map((member) => ({\n\t\t\tname: member.name,\n\t\t\tvalue: blindCast(member.value)\n\t\t}))\n\t};\n\tconst collections = {};\n\tfor (const [name, collection] of Object.entries(input.collections)) collections[name] = collection.indexes.length > 0 ? { indexes: collection.indexes } : {};\n\tconst storage = buildMongoStorage({\n\t\tcollections,\n\t\tvalueSets: encodeMongoValueSets(Object.fromEntries(input.enums), input.codecLookup)\n\t});\n\tconst models = {};\n\tfor (const [modelName, build] of input.builds) models[modelName] = {\n\t\tfields: build.fields,\n\t\trelations: build.relations,\n\t\tstorage: { collection: build.collection }\n\t};\n\tconst capabilities = {};\n\tconst execution = buildExecutionSection({\n\t\ttarget,\n\t\ttargetFamily,\n\t\tdefaults: input.executionDefaults\n\t});\n\treturn {\n\t\ttargetFamily,\n\t\ttarget,\n\t\troots: input.roots,\n\t\tdomain: { namespaces: { [UNBOUND_NAMESPACE_ID]: {\n\t\t\tmodels: blindCast(models),\n\t\t\t...Object.keys(input.valueObjects).length > 0 ? { valueObjects: input.valueObjects } : {},\n\t\t\t...Object.keys(builtEnums).length > 0 ? { enum: builtEnums } : {}\n\t\t} } },\n\t\tstorage,\n\t\textensions: {},\n\t\tcapabilities,\n\t\tprofileHash: computeProfileHash({\n\t\t\ttarget,\n\t\t\ttargetFamily,\n\t\t\tcapabilities\n\t\t}),\n\t\tmeta: {},\n\t\t...execution !== void 0 ? { execution } : {}\n\t};\n}\nfunction mergedSources(documents) {\n\tconst [first, ...rest] = documents.map((document) => document.sources);\n\tif (first === void 0) throw new InternalError(\"A Prisma 6 schema has at least one document\");\n\treturn first.merge(...rest);\n}\n//#endregion\n//#region src/provider.ts\nfunction defaultOutputFromSchemaPath(schemaPath) {\n\treturn join(dirname(schemaPath), \"contract.json\");\n}\nfunction mapParseDiagnostics(diagnostics, sourceFile, sourceId) {\n\treturn diagnostics.map((diagnostic) => ({\n\t\tcode: diagnostic.code,\n\t\tmessage: diagnostic.message,\n\t\tsourceId,\n\t\tspan: sourceFile.rangeToPslSpan(diagnostic.range)\n\t}));\n}\n/**\n* The files a Prisma 6 schema input names: the file itself, or every regular `.prisma` file under the directory, nested directories and symbolic links included, as Prisma 6 reads a schema directory. Sorted by path so duplicate detection blames the later file deterministically.\n*/\nasync function listSchemaFiles(absolutePath, displayPath) {\n\tif (!(await stat(absolutePath)).isDirectory()) return [{\n\t\tsourceId: displayPath,\n\t\tabsolutePath\n\t}];\n\tconst entries = await readdir(absolutePath, { recursive: true });\n\tconst files = [];\n\tfor (const entry of entries.filter((name) => extname(name) === \".prisma\").map((name) => normalize(name)).sort()) {\n\t\tconst entryPath = join(absolutePath, entry);\n\t\tif ((await stat(entryPath)).isFile()) files.push({\n\t\t\tsourceId: join(displayPath, entry),\n\t\t\tabsolutePath: entryPath\n\t\t});\n\t}\n\treturn files;\n}\nfunction readFailure(schemaPath, message, meta) {\n\treturn notOk({\n\t\tsummary: `Failed to read Prisma 6 schema at \"${schemaPath}\"`,\n\t\tdiagnostics: [prisma6Diagnostic(\"PSL.PRISMA6_MONGO_SCHEMA_READ_FAILED\", message, schemaPath, void 0)],\n\t\tmeta\n\t});\n}\n/**\n* A `ContractConfig` that reads a Prisma 6 MongoDB `schema.prisma` (a file, or a directory of `.prisma` files) as the contract source.\n*/\nfunction prisma6Contract(schemaPath, options) {\n\tconst parserOptions = { grammar: \"prisma-7\" };\n\treturn {\n\t\tsource: {\n\t\t\tformat: \"psl\",\n\t\t\tinputs: [schemaPath],\n\t\t\tparserOptions,\n\t\t\tasync load(context) {\n\t\t\t\tconst [absolutePath] = context.resolvedInputs;\n\t\t\t\tif (absolutePath === void 0) throw new InternalError(\"prisma6Contract: context.resolvedInputs is empty. The CLI config loader should populate it from source.inputs.\");\n\t\t\t\tlet files;\n\t\t\t\ttry {\n\t\t\t\t\tfiles = await listSchemaFiles(absolutePath, schemaPath);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst message = String(error);\n\t\t\t\t\treturn readFailure(schemaPath, message, {\n\t\t\t\t\t\tschemaPath,\n\t\t\t\t\t\tabsolutePath,\n\t\t\t\t\t\tcause: message\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (files.length === 0) return readFailure(schemaPath, `The schema directory \"${schemaPath}\" contains no .prisma file.`, {\n\t\t\t\t\tschemaPath,\n\t\t\t\t\tabsolutePath\n\t\t\t\t});\n\t\t\t\tconst documents = [];\n\t\t\t\tconst seedDiagnostics = [];\n\t\t\t\tfor (const file of files) {\n\t\t\t\t\tlet schema;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tschema = await readFile(file.absolutePath, \"utf-8\");\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconst message = String(error);\n\t\t\t\t\t\treturn readFailure(file.sourceId, message, {\n\t\t\t\t\t\t\tschemaPath: file.sourceId,\n\t\t\t\t\t\t\tabsoluteSchemaPath: file.absolutePath,\n\t\t\t\t\t\t\tcause: message\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tconst { document, sources, diagnostics } = parse(schema, file.sourceId, parserOptions);\n\t\t\t\t\tconst sourceFile = sources.sourceFileFor(document.syntax);\n\t\t\t\t\tseedDiagnostics.push(...mapParseDiagnostics(diagnostics, sourceFile, file.sourceId));\n\t\t\t\t\tdocuments.push({\n\t\t\t\t\t\tdocument,\n\t\t\t\t\t\tsources,\n\t\t\t\t\t\tsourceFile,\n\t\t\t\t\t\tsourceId: file.sourceId\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tlet contract;\n\t\t\t\ttry {\n\t\t\t\t\tconst interpreted = interpretPrisma6Documents({\n\t\t\t\t\t\tdocuments,\n\t\t\t\t\t\tseedDiagnostics,\n\t\t\t\t\t\tbinding: options.binding,\n\t\t\t\t\t\tauthoringContributions: context.authoringContributions,\n\t\t\t\t\t\tcodecLookup: context.codecLookup\n\t\t\t\t\t});\n\t\t\t\t\tif (!interpreted.ok) return interpreted;\n\t\t\t\t\tcontract = applySpecifierDefaultControlPolicy(interpreted.value, options.defaultControlPolicy);\n\t\t\t\t\tvalidateContractDomain(contract);\n\t\t\t\t\tvalidateMongoStorage(blindCast(contract));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (!isStructuredError(error)) throw error;\n\t\t\t\t\treturn notOk({\n\t\t\t\t\t\tsummary: \"Prisma 6 MongoDB schema interpretation failed\",\n\t\t\t\t\t\tdiagnostics: [prisma6Diagnostic(\"PSL.PRISMA6_MONGO_CONTRACT_INVALID\", `This schema gives a contract that Prisma 8 rejects, and the Prisma 6 MongoDB contract source has no specific diagnostic for the cause: ${error.message.replace(/\\.$/, \"\")}. This is a bug in Prisma ORM; please report it with this schema.`, schemaPath, void 0)],\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tschemaPath,\n\t\t\t\t\t\t\tcode: error.code\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn ok(contract);\n\t\t\t}\n\t\t},\n\t\toutput: options.output ?? defaultOutputFromSchemaPath(schemaPath)\n\t};\n}\n//#endregion\nexport { prisma6Contract };\n\n//# sourceMappingURL=provider.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAoBA,SAAS,kBAAkB,MAAM,SAAS,UAAU,MAAM;CACzD,OAAO;EACN;EACA;EACA;EACA,GAAG,SAAS,KAAK,IAAI,EAAE,KAAK,IAAI,CAAC;CAClC;AACD;AAGA,SAAS,YAAY,WAAW,MAAM,MAAM,KAAK;CAChD,IAAI,YAAY,KAAK,kBAAkB,gDAAgD,GAAG,IAAI,MAAM,IAAI,IAAI,SAAS,UAAU,KAAK,GAAG,QAAQ,IAAI,UAAU,IAAI,CAAC;AACnK;AACA,SAAS,cAAc,YAAY;CAClC,IAAI,eAAe,KAAK,GAAG,OAAO,KAAK;CACvC,MAAM,QAAQ,cAAc,KAAK,WAAW,MAAM,CAAC,EAAE,KAAK;CAC1D,OAAO,UAAU,QAAQ,IAAI,UAAU,SAAS,KAAK,KAAK;AAC3D;;;;AAIA,SAAS,SAAS,WAAW,MAAM,KAAK;CACvC,IAAI;CACJ,KAAK,MAAM,OAAO,MAAM;EACvB,MAAM,MAAM,IAAI,KAAK,CAAC,EAAE,KAAK;EAC7B,MAAM,OAAO,YAAY,IAAI,QAAQ,IAAI,OAAO;EAChD,IAAI,QAAQ,QAAQ,OAAO,YAAY,WAAW,QAAQ,WAAW,2HAA2H,aAAa,OAAO,GAAG,sBAAsB,MAAM,GAAG;EACtP,YAAY,cAAc,IAAI,MAAM,CAAC;EACrC,IAAI,cAAc,KAAK,GAAG,OAAO,YAAY,WAAW,6BAA6B,MAAM,GAAG;CAC/F;CACA,OAAO,EAAE,UAAU;AACpB;AACA,SAAS,WAAW,WAAW,YAAY,MAAM,KAAK;CACrD,MAAM,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,gBAAgB,KAAK,WAAW,MAAM;CACrF,IAAI,UAAU,KAAK,GAAG,OAAO,YAAY,WAAW,kCAAkC,MAAM,GAAG;CAC/F,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,WAAW,MAAM,SAAS,GAAG;EACvC,MAAM,OAAO,cAAc,KAAK,QAAQ,MAAM,CAAC,EAAE,KAAK;EACtD,IAAI,SAAS,KAAK,GAAG;GACpB,OAAO,KAAK;IACX;IACA,WAAW,KAAK;GACjB,CAAC;GACD;EACD;EACA,MAAM,OAAO,gBAAgB,KAAK,QAAQ,MAAM;EAChD,MAAM,OAAO,MAAM,KAAK,KAAK,CAAC;EAC9B,MAAM,CAAC,UAAU;EACjB,IAAI,KAAK,SAAS,GAAG;GACpB,IAAI,YAAY,KAAK,kBAAkB,sDAAsD,eAAe,KAAK,KAAK,GAAG,EAAE,wIAAwI,IAAI,UAAU,YAAY,QAAQ,QAAQ,IAAI,OAAO,CAAC,CAAC;GAC1T;EACD;EACA,IAAI,SAAS,KAAK,KAAK,WAAW,KAAK,GAAG,OAAO,YAAY,WAAW,kCAAkC,YAAY,QAAQ,QAAQ,IAAI,OAAO,GAAG,GAAG;EACvJ,MAAM,OAAO,SAAS,WAAW,KAAK,KAAK,GAAG,GAAG;EACjD,IAAI,SAAS,KAAK,GAAG,OAAO,KAAK;EACjC,OAAO,KAAK;GACX,MAAM;GACN,WAAW,KAAK;EACjB,CAAC;CACF;CACA,OAAO;AACR;;AAEA,SAAS,oBAAoB,WAAW,KAAK;CAC5C,IAAI;CACJ,KAAK,MAAM,OAAO,UAAU,MAAM;EACjC,MAAM,MAAM,IAAI,SAAS,eAAe,WAAW,IAAI;EACvD,IAAI,QAAQ,SAAS,QAAQ,QAAQ;EACrC,IAAI,QAAQ,UAAU,OAAO,YAAY,WAAW,aAAa,OAAO,GAAG,sBAAsB,IAAI,MAAM,GAAG;EAC9G,SAAS,WAAW,WAAW,IAAI,YAAY,IAAI,MAAM,GAAG;EAC5D,IAAI,WAAW,KAAK,GAAG,OAAO,KAAK;CACpC;CACA,IAAI,WAAW,KAAK,KAAK,OAAO,WAAW,GAAG,OAAO,YAAY,WAAW,kCAAkC,UAAU,MAAM,GAAG;CACjI,OAAO;EACN,MAAM,UAAU;EAChB;EACA,MAAM,UAAU;CACjB;AACD;;AAEA,SAAS,iBAAiB,WAAW,WAAW,KAAK;CACpD,IAAI;CACJ,KAAK,MAAM,OAAO,UAAU,MAAM;EACjC,MAAM,MAAM,IAAI,SAAS,eAAe,KAAK,IAAI,IAAI;EACrD,IAAI,QAAQ,SAAS,QAAQ,QAAQ;EACrC,IAAI,QAAQ,QAAQ;GACnB,YAAY,cAAc,IAAI,UAAU;GACxC,IAAI,cAAc,KAAK,GAAG,OAAO,YAAY,WAAW,6BAA6B,IAAI,MAAM,GAAG;GAClG;EACD;EACA,OAAO,YAAY,WAAW,QAAQ,WAAW,2HAA2H,aAAa,OAAO,GAAG,sBAAsB,IAAI,MAAM,GAAG;CACvO;CACA,OAAO;EACN,MAAM;EACN,QAAQ,CAAC;GACR,MAAM;GACN;EACD,CAAC;EACD,MAAM,UAAU;CACjB;AACD;AAGA,MAAM,UAAU;AAChB,SAAS,eAAe,WAAW;CAClC,MAAM,cAAc,UAAU,KAAK,MAAM,QAAQ,IAAI,SAAS,YAAY,KAAK,UAAU,KAAK,MAAM,QAAQ,IAAI,SAAS,MAAM,EAAA,EAAI;CACnI,OAAO,eAAe,KAAK,IAAI,KAAK,IAAI,qBAAqB,KAAK,WAAW,MAAM,CAAC,EAAE,MAAM;AAC7F;AACA,SAAS,cAAc,WAAW,OAAO,UAAU,aAAa;CAC/D,MAAM,QAAQ,eAAe,SAAS;CACtC,IAAI,UAAU,KAAK,GAAG,YAAY,KAAK;EACtC,MAAM;EACN,SAAS,GAAG,MAAM,gBAAgB,UAAU,KAAK;EACjD;EACA,MAAM,UAAU;CACjB,CAAC;CACD,OAAO;AACR;AACA,SAAS,cAAc,WAAW;CACjC,MAAM,OAAO,UAAU,KAAK,KAAK,QAAQ,IAAI,SAAS,UAAU,GAAG,IAAI,KAAK,IAAI,IAAI,UAAU,IAAI,KAAK;CACvG,OAAO,KAAK,WAAW,IAAI,IAAI,UAAU,SAAS,IAAI,UAAU,KAAK,GAAG,KAAK,KAAK,IAAI,EAAE;AACzF;;AAEA,SAAS,YAAY,WAAW;CAC/B,MAAM,aAAa,UAAU,KAAK,MAAM,QAAQ,IAAI,SAAS,YAAY,CAAC,EAAE;CAC5E,MAAM,OAAO,eAAe,KAAK,IAAI,KAAK,IAAI,gBAAgB,KAAK,WAAW,MAAM;CACpF,IAAI,SAAS,KAAK,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,GAAG,OAAO;CAC3D,MAAM,OAAO,KAAK,KAAK,CAAC,CAAC,KAAK,GAAG;CACjC,OAAO,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ;AAC5D;AACA,SAAS,iBAAiB,OAAO,WAAW,QAAQ,UAAU;CAC7D,OAAO,kBAAkB,uCAAuC,GAAG,MAAM,eAAe,SAAS,UAAU,KAAK,8DAA8D,UAAU,UAAU,IAAI;AACvM;AACA,SAAS,0BAA0B,OAAO;CACzC,MAAM,EAAE,YAAY;CACpB,MAAM,cAAc,CAAC,GAAG,MAAM,eAAe;CAC7C,MAAM,cAAc,CAAC;CACrB,MAAM,aAAa,CAAC;CACpB,MAAM,iBAAiB,CAAC;CACxB,MAAM,SAAS,CAAC;CAChB,MAAM,gCAAgC,IAAI,IAAI;CAC9C,MAAM,gCAAgC,IAAI,IAAI;CAC9C,MAAM,aAAa,MAAM,MAAM,UAAU,SAAS;EACjD,MAAM,WAAW,cAAc,IAAI,IAAI;EACvC,IAAI,aAAa,KAAK,GAAG;GACxB,cAAc,IAAI,MAAM,QAAQ;GAChC,OAAO;EACR;EACA,YAAY,KAAK;GAChB,MAAM;GACN,SAAS,4BAA4B,KAAK,IAAI,KAAK,uBAAuB,SAAS,QAAQ,EAAE;GAC7F;GACA;EACD,CAAC;EACD,OAAO;CACR;CACA,KAAK,MAAM,EAAE,UAAU,SAAS,YAAY,cAAc,MAAM,WAAW;EAC1E,MAAM,EAAE,aAAa,aAAa,qBAAqB,iBAAiB;GACvE,WAAW,CAAC,QAAQ;GACpB;EACD,CAAC;EACD,KAAK,MAAM,cAAc,kBAAkB,YAAY,KAAK;GAC3D,MAAM,WAAW;GACjB,SAAS,WAAW;GACpB;GACA,MAAM,WAAW,eAAe,WAAW,KAAK;EACjD,CAAC;EACD,MAAM,eAAe,SAAS,SAAS;GACtC,YAAY,KAAK;IAChB,MAAM;IACN,SAAS,gCAAgC,QAAQ;IACjD;IACA;GACD,CAAC;EACF;EACA,KAAK,MAAM,SAAS,OAAO,OAAO,YAAY,SAAS,MAAM,GAAG,QAAQ,MAAM,SAAd;GAC/D,KAAK;IACJ,YAAY,KAAK;KAChB,QAAQ;KACR;KACA;IACD,CAAC;IACD;GACD,KAAK,aAAa;GAClB,KAAK;IACJ,IAAI,UAAU,QAAQ,MAAM,MAAM,UAAU,MAAM,IAAI,GAAG,WAAW,KAAK;KACxE,QAAQ;KACR;KACA;IACD,CAAC;IACD;GACD,KAAK;IACJ,YAAY,KAAK,kBAAkB,sCAAsC,SAAS,MAAM,KAAK,oHAAoH,UAAU,eAAe,MAAM,KAAK,QAAQ,MAAM,SAAS,OAAO,CAAC,CAAC;IACrR;GACD,SAAS,YAAY,MAAM,SAAS,eAAe,MAAM,KAAK,QAAQ,MAAM,SAAS,OAAO,CAAC;EAC9F;EACA,KAAK,MAAM,aAAa,OAAO,OAAO,YAAY,SAAS,UAAU,GAAG,KAAK,MAAM,EAAE,UAAU,UAAU,cAAc,YAAY,aAAa,IAAI;EACpJ,KAAK,MAAM,aAAa,OAAO,OAAO,YAAY,SAAS,UAAU,GAAG,YAAY,SAAS,UAAU,IAAI;EAC3G,KAAK,MAAM,UAAU,OAAO,OAAO,YAAY,SAAS,cAAc,GAAG,IAAI,UAAU,QAAQ,OAAO,MAAM,UAAU,OAAO,IAAI,GAAG,eAAe,KAAK;GACvJ;GACA;GACA;EACD,CAAC;EACD,KAAK,MAAM,UAAU,OAAO,OAAO,YAAY,SAAS,MAAM,GAAG;GAChE,IAAI,CAAC,UAAU,SAAS,OAAO,MAAM,UAAU,OAAO,IAAI,GAAG;GAC7D,IAAI,OAAO,WAAW,MAAM,cAAc,UAAU,SAAS,QAAQ,GAAG,cAAc,IAAI,OAAO,IAAI;QAChG,OAAO,KAAK;IAChB;IACA;IACA;GACD,CAAC;EACF;CACD;CACA,gBAAgB,aAAa,MAAM,UAAU,EAAE,EAAE,YAAY,iBAAiB,SAAS,WAAW;CAClG,MAAM,wBAAwB,IAAI,IAAI;CACtC,KAAK,MAAM,WAAW,YAAY;EACjC,MAAM,QAAQ,UAAU,SAAS,OAAO,WAAW;EACnD,IAAI,UAAU,KAAK,GAAG,MAAM,IAAI,QAAQ,OAAO,MAAM,KAAK;CAC3D;CACA,MAAM,6BAA6B,IAAI,IAAI,CAAC,GAAG,OAAO,KAAK,MAAM,EAAE,OAAO,IAAI,GAAG,GAAG,aAAa,CAAC;CAClG,MAAM,cAAc;EACnB;EACA;EACA,oBAAoB,IAAI,IAAI,eAAe,KAAK,MAAM,EAAE,OAAO,IAAI,CAAC;EACpE;CACD;CACA,MAAM,eAAe,CAAC;CACtB,KAAK,MAAM,WAAW,gBAAgB,aAAa,QAAQ,OAAO,QAAQ,EAAE,QAAQ,oBAAoB,SAAS,WAAW,EAAE;CAC9H,MAAM,yBAAyB,IAAI,IAAI;CACvC,KAAK,MAAM,WAAW,QAAQ,OAAO,IAAI,QAAQ,OAAO,MAAM,UAAU,SAAS,YAAY,eAAe,WAAW,CAAC;CACxH,MAAM,cAAc,CAAC;CACrB,MAAM,oBAAoB,CAAC;CAC3B,MAAM,gBAAgB,CAAC;CACvB,KAAK,MAAM,SAAS,OAAO,OAAO,GAAG,mBAAmB,OAAO,QAAQ;EACtE;EACA;EACA;CACD,GAAG,WAAW;CACd,MAAM,SAAS,uBAAuB;EACrC;EACA,YAAY;EACZ;CACD,CAAC;CACD,YAAY,KAAK,GAAG,kBAAkB,OAAO,aAAa,cAAc,MAAM,SAAS,CAAC,CAAC;CACzF,KAAK,MAAM,EAAE,WAAW,WAAW,cAAc,OAAO,WAAW;EAClE,MAAM,QAAQ,OAAO,IAAI,SAAS;EAClC,IAAI,UAAU,KAAK,GAAG,MAAM,UAAU,aAAa;CACpD;CACA,MAAM,cAAc,CAAC;CACrB,MAAM,QAAQ,CAAC;CACf,MAAM,oBAAoB,CAAC;CAC3B,KAAK,MAAM,CAAC,WAAW,UAAU,QAAQ;EACxC,MAAM,UAAU,aAAa,OAAO,WAAW;EAC/C,MAAM,WAAW,YAAY,MAAM;EACnC,YAAY,MAAM,cAAc,EAAE,SAAS,CAAC,GAAG,UAAU,WAAW,CAAC,GAAG,GAAG,OAAO,EAAE;EACpF,MAAM,MAAM,cAAc,SAAS,WAAW,oBAAoB;EAClE,KAAK,MAAM,EAAE,OAAO,YAAY,MAAM,mBAAmB,kBAAkB,KAAK;GAC/E,KAAK;IACJ,WAAW;IACX,OAAO,MAAM;IACb;GACD;GACA,GAAG;EACJ,CAAC;EACD,IAAI,CAAC,MAAM,OAAO,YAAY,KAAK;GAClC,MAAM;GACN,SAAS,UAAU,UAAU;GAC7B,UAAU,MAAM,QAAQ;GACxB,MAAM,MAAM,QAAQ,OAAO;EAC5B,CAAC;CACF;CACA,IAAI,YAAY,SAAS,GAAG,OAAO,MAAM;EACxC,SAAS;EACT;CACD,CAAC;CACD,OAAO,GAAG,iBAAiB;EAC1B;EACA;EACA;EACA;EACA;EACA;EACA;EACA,aAAa,MAAM;CACpB,CAAC,CAAC;AACH;AACA,SAAS,gBAAgB,aAAa,kBAAkB,SAAS,aAAa;CAC7E,MAAM,CAAC,cAAc;CACrB,MAAM,CAAC,iBAAiB,QAAQ;CAChC,IAAI,eAAe,KAAK,GAAG;EAC1B,YAAY,KAAK,kBAAkB,uCAAuC,gEAAgE,cAAc,SAAS,kBAAkB,KAAK,CAAC,CAAC;EAC1L;CACD;CACA,MAAM,QAAQ,WAAW;CACzB,IAAI;CACJ,KAAK,MAAM,SAAS,MAAM,KAAK,QAAQ,GAAG,IAAI,MAAM,IAAI,CAAC,EAAE,KAAK,MAAM,YAAY;EACjF,YAAY;EACZ;CACD;CACA,MAAM,aAAa,WAAW,MAAM;CACpC,MAAM,WAAW,sBAAsB,uBAAuB,WAAW,MAAM,IAAI,KAAK;CACxF,IAAI,aAAa,KAAK,KAAK,CAAC,QAAQ,UAAU,SAAS,QAAQ,GAAG,YAAY,KAAK,kBAAkB,uCAAuC,aAAa,KAAK,IAAI,mHAAmH,cAAc,MAAM,+BAA+B,SAAS,+DAA+D,cAAc,KAAK,WAAW,UAAU,cAAc,KAAK,IAAI,MAAM,OAAO,YAAY,UAAU,QAAQ,WAAW,OAAO,CAAC,CAAC;AAC/gB;AACA,SAAS,UAAU,SAAS,OAAO,aAAa;CAC/C,MAAM,EAAE,QAAQ,OAAO,UAAU,YAAY;CAC7C,KAAK,MAAM,aAAa,uBAAuB,MAAM,KAAK,WAAW,GAAG,OAAO,GAAG;EACjF,IAAI,UAAU,SAAS,OAAO;EAC9B,IAAI,UAAU,SAAS,UAAU;GAChC,YAAY,KAAK,kBAAkB,SAAS,MAAM,KAAK,IAAI,WAAW,QAAQ,CAAC;GAC/E;EACD;EACA,YAAY,KAAK,iBAAiB,SAAS,MAAM,KAAK,IAAI,WAAW,MAAM,QAAQ,CAAC;CACrF;CACA,MAAM,SAAS,OAAO,OAAO,IAAI;CACjC,MAAM,iBAAiB,OAAO,OAAO,IAAI;CACzC,KAAK,MAAM,SAAS,MAAM,KAAK,QAAQ,GAAG;EACzC,MAAM,OAAO,MAAM,IAAI,CAAC,EAAE,KAAK;EAC/B,IAAI,SAAS,KAAK,GAAG;EACrB,IAAI,QAAQ;EACZ,KAAK,MAAM,iBAAiB,MAAM,WAAW,GAAG;GAC/C,MAAM,YAAY,sBAAsB,eAAe,OAAO;GAC9D,IAAI,UAAU,SAAS,OAAO,QAAQ,cAAc,WAAW,gBAAgB,MAAM,KAAK,GAAG,KAAK,IAAI,UAAU,WAAW,KAAK;QAC3H,YAAY,KAAK,iBAAiB,gBAAgB,MAAM,KAAK,GAAG,KAAK,IAAI,WAAW,KAAK,QAAQ,CAAC;EACxG;EACA,OAAO,QAAQ;EACf,eAAe,QAAQ,YAAY,MAAM,QAAQ,OAAO;CACzD;CACA,MAAM,aAAa,MAAM,uBAAuB,YAAY;CAC5D,IAAI,eAAe,KAAK,KAAK,CAAC,gCAAgC,UAAU,GAAG;EAC1E,YAAY,KAAK;GAChB,MAAM;GACN,SAAS,SAAS,MAAM,KAAK;GAC7B;GACA,MAAM,MAAM;EACb,CAAC;EACD;CACD;CACA,MAAM,UAAU;EACf,QAAQ,MAAM,QAAQ,OAAO;EAC7B,QAAQ,MAAM,QAAQ,OAAO;EAC7B,aAAa,MAAM;EACnB;EACA,qBAAqB;GACpB,MAAM,MAAM,QAAQ,eAAe;GACnC,KAAK,MAAM,QAAQ,eAAe;EACnC;EACA,aAAa,EAAE,OAAO,eAAe;GACpC,YAAY,KAAK,UAAU,UAAU,CAAC;EACvC,EAAE;CACH;CACA,MAAM,SAAS,+BAA+B,QAAQ,YAAY,CAAC;EAClE,MAAM;EACN,SAAS;EACT,MAAM,MAAM;EACZ;EACA;EACA,YAAY,CAAC;EACb,MAAM,MAAM;CACb,CAAC,GAAG,OAAO;CACX,IAAI,WAAW,KAAK,KAAK,WAAW,MAAM,OAAO,KAAK;CACtD,OAAO;EACN,SAAS,OAAO;EAChB,SAAS,OAAO,YAAY,KAAK,YAAY;GAC5C,MAAM,OAAO;GACb,OAAO,OAAO;EACf,EAAE;CACH;AACD;AACA,SAAS,kBAAkB,OAAO,WAAW,UAAU;CACtD,OAAO,kBAAkB,wCAAwC,GAAG,MAAM,uHAAuH,UAAU,UAAU,IAAI;AAC1N;AACA,SAAS,uBAAuB,OAAO,UAAU,OAAO;CACvD,MAAM,OAAO,GAAG,MAAM,aAAa,SAAS,0CAA0C,GAAG,MAAM,KAAK,IAAI,MAAM,KAAK,GAAG;CACtH,IAAI,MAAM,SAAS,QAAQ,OAAO;CAClC,OAAO,GAAG,KAAK,6BAA6B,MAAM,KAAK;AACxD;;AAEA,SAAS,iBAAiB,OAAO,OAAO,YAAY,UAAU,KAAK;CAClE,MAAM,EAAE,SAAS,gBAAgB;CACjC,MAAM,QAAQ,UAAU,MAAM,KAAK,GAAG,MAAM,KAAK;CACjD,IAAI,MAAM,oBAAoB,KAAK,GAAG;EACrC,YAAY,KAAK,kBAAkB,sCAAsC,uBAAuB,OAAO,MAAM,gBAAgB,KAAK,KAAK,GAAG,GAAG,KAAK,GAAG,UAAU,MAAM,gBAAgB,IAAI,CAAC;EAC1L;CACD;CACA,MAAM,yBAAyB,cAAc;EAC5C,YAAY,KAAK,kBAAkB,6CAA6C,UAAU,SAAS,gBAAgB,GAAG,MAAM,yEAAyE,MAAM,SAAS,+DAA+D,GAAG,MAAM,kBAAkB,UAAU,KAAK,iJAAiJ,UAAU,UAAU,IAAI,CAAC;CACxe;CACA,MAAM,OAAO,MAAM,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C,IAAI,IAAI,mBAAmB,IAAI,MAAM,QAAQ,GAAG;EAC/C,IAAI,eAAe,KAAK,GAAG,OAAO,sBAAsB,UAAU;EAClE,OAAO;GACN,MAAM;IACL,MAAM;IACN,MAAM,MAAM;GACb;GACA,UAAU,MAAM;GAChB,GAAG;EACJ;CACD;CACA,MAAM,YAAY,IAAI,MAAM,IAAI,MAAM,QAAQ;CAC9C,IAAI,cAAc,KAAK,GAAG;EACzB,IAAI,eAAe,KAAK,GAAG,OAAO,sBAAsB,UAAU;EAClE,MAAM,WAAW;GAChB,OAAO;GACP,YAAY;GACZ,aAAa;GACb,YAAY,MAAM;EACnB;EACA,OAAO;GACN,MAAM;IACL,MAAM;IACN,SAAS,UAAU;GACpB;GACA,UAAU,MAAM;GAChB;GACA,GAAG;EACJ;CACD;CACA,MAAM,gBAAgB,OAAO,OAAO,QAAQ,gBAAgB,MAAM,QAAQ,IAAI,QAAQ,eAAe,MAAM,YAAY,KAAK;CAC5H,IAAI,kBAAkB,KAAK,GAAG;EAC7B,YAAY,KAAK,kBAAkB,sCAAsC,GAAG,MAAM,qBAAqB,MAAM,SAAS,4FAA4F,UAAU,MAAM,IAAI,CAAC;EACvO;CACD;CACA,IAAI,UAAU;CACd,IAAI,eAAe,KAAK,GAAG;EAC1B,IAAI,WAAW,SAAS,iBAAiB,MAAM,aAAa,UAAU,OAAO,sBAAsB,UAAU;EAC7G,UAAU,QAAQ;CACnB;CACA,OAAO;EACN,MAAM;GACL,MAAM;GACN;EACD;EACA,UAAU,MAAM;EAChB,GAAG;CACJ;AACD;AACA,SAAS,oBAAoB,SAAS,KAAK;CAC1C,MAAM,EAAE,QAAQ,aAAa;CAC7B,KAAK,MAAM,aAAa,OAAO,YAAY,IAAI,YAAY,KAAK,iBAAiB,SAAS,OAAO,KAAK,IAAI,WAAW,MAAM,QAAQ,CAAC;CACpI,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,SAAS,OAAO,OAAO,OAAO,MAAM,GAAG;EACjD,IAAI,MAAM,eAAe;EACzB,MAAM,QAAQ,UAAU,OAAO,KAAK,GAAG,MAAM,KAAK;EAClD,IAAI;EACJ,IAAI,WAAW;EACf,KAAK,MAAM,aAAa,MAAM,YAAY,IAAI,UAAU,KAAK,WAAW,KAAK,GAAG,aAAa;OACxF,IAAI,UAAU,SAAS,OAAO;GAClC,IAAI,YAAY,KAAK,kBAAkB,+CAA+C,GAAG,MAAM,+FAA+F,eAAe,SAAS,KAAK,MAAM,KAAK,kGAAkG,UAAU,UAAU,IAAI,CAAC;GACjW,WAAW;EACZ,OAAO,IAAI,UAAU,SAAS,WAAW;GACxC,IAAI,YAAY,KAAK,mBAAmB,OAAO,WAAW,QAAQ,CAAC;GACnE,WAAW;EACZ,OAAO;GACN,IAAI,YAAY,KAAK,iBAAiB,OAAO,WAAW,KAAK,QAAQ,CAAC;GACtE,WAAW;EACZ;EACA,IAAI,UAAU;EACd,MAAM,WAAW,iBAAiB,OAAO;GACxC,MAAM;GACN,MAAM,OAAO;EACd,GAAG,YAAY,UAAU,GAAG;EAC5B,IAAI,aAAa,KAAK,GAAG,OAAO,MAAM,QAAQ;CAC/C;CACA,OAAO;AACR;AACA,SAAS,mBAAmB,OAAO,WAAW,UAAU;CACvD,OAAO,kBAAkB,yCAAyC,GAAG,MAAM,IAAI,cAAc,SAAS,EAAE,2KAA2K,UAAU,UAAU,IAAI;AAC5S;AACA,SAAS,UAAU,SAAS,YAAY,eAAe,KAAK;CAC3D,MAAM,EAAE,QAAQ,UAAU,YAAY;CACtC,MAAM,EAAE,gBAAgB;CACxB,MAAM,aAAa,UAAU,OAAO,KAAK;CACzC,IAAI,aAAa,OAAO;CACxB,MAAM,QAAQ;EACb;EACA,YAAY,OAAO;EACnB,6BAA6B,IAAI,IAAI;EACrC,+BAA+B,IAAI,IAAI;EACvC,gCAAgC,IAAI,IAAI;EACxC,QAAQ,CAAC;EACT,WAAW,CAAC;EACZ,mBAAmB,CAAC;EACpB,cAAc,CAAC;EACf,cAAc,CAAC;EACf,gBAAgB,CAAC;EACjB,OAAO;CACR;CACA,MAAM,eAAe;EACpB,OAAO;EACP,QAAQ;EACR;EACA;EACA;CACD;CACA,KAAK,MAAM,aAAa,OAAO,YAAY,QAAQ,UAAU,MAAlB;EAC1C,KAAK;GACJ,aAAa,cAAc,WAAW,YAAY,UAAU,WAAW,KAAK;GAC5E;EACD,KAAK;EACL,KAAK;EACL,KAAK,YAAY;GAChB,MAAM,SAAS,oBAAoB;IAClC,GAAG;IACH,MAAM,UAAU;GACjB,GAAG,YAAY;GACf,IAAI,WAAW,KAAK,GAAG,MAAM,aAAa,KAAK,MAAM;GACrD;EACD;EACA,KAAK;GACJ,MAAM,QAAQ;GACd,YAAY,KAAK,kBAAkB,8CAA8C,GAAG,WAAW,+JAA+J,UAAU,UAAU,IAAI,CAAC;GACvR;EACD,KAAK;GACJ,YAAY,KAAK,kBAAkB,YAAY,WAAW,QAAQ,CAAC;GACnE;EACD,KAAK,UAAU;EACf,SAAS,YAAY,KAAK,iBAAiB,YAAY,WAAW,MAAM,QAAQ,CAAC;CAClF;CACA,KAAK,MAAM,SAAS,OAAO,OAAO,OAAO,MAAM,GAAG;EACjD,MAAM,WAAW,YAAY;EAC7B,eAAe,OAAO,OAAO,YAAY,eAAe,GAAG;EAC3D,IAAI,YAAY,SAAS,UAAU,MAAM,eAAe,IAAI,MAAM,IAAI;CACvE;CACA,OAAO;EACN,GAAG;EACH;CACD;AACD;AACA,SAAS,eAAe,OAAO,OAAO,YAAY,eAAe,KAAK;CACrE,MAAM,EAAE,QAAQ,UAAU,YAAY,MAAM;CAC5C,MAAM,EAAE,aAAa,YAAY;CACjC,MAAM,QAAQ,UAAU,OAAO,KAAK,GAAG,MAAM,KAAK;CAClD,MAAM,kBAAkB,WAAW,IAAI,MAAM,QAAQ,KAAK,MAAM,oBAAoB,KAAK;CACzF,IAAI,MAAM,WAAW,MAAM,cAAc,UAAU,SAAS,QAAQ,GAAG;EACtE,MAAM,cAAc,IAAI,MAAM,IAAI;EAClC,MAAM,SAAS,MAAM,WAAW,MAAM,cAAc,UAAU,SAAS,QAAQ;EAC/E,IAAI,WAAW,KAAK,GAAG,YAAY,KAAK,uBAAuB,OAAO,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,OAAO,KAAK,GAAG,MAAM,KAAK,IAAI,UAAU,OAAO,IAAI,CAAC;EACnK;CACD;CACA,IAAI,iBAAiB;EACpB,IAAI,cAAc,IAAI,MAAM,QAAQ,GAAG;EACvC,IAAI;EACJ,KAAK,MAAM,aAAa,MAAM,YAAY,IAAI,UAAU,SAAS,YAAY,WAAW;OACnF,YAAY,KAAK,iBAAiB,OAAO,WAAW,KAAK,QAAQ,CAAC;EACvE,MAAM,eAAe,KAAK;GACzB;GACA;EACD,CAAC;EACD;CACD;CACA,IAAI,aAAa,MAAM;CACvB,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,KAAK,MAAM,aAAa,MAAM,YAAY,QAAQ,UAAU,MAAlB;EACzC,KAAK;GACJ,aAAa,cAAc,WAAW,OAAO,UAAU,WAAW,KAAK;GACvE;EACD,KAAK;GACJ,cAAc;GACd;EACD,KAAK;GACJ,mBAAmB;GACnB;EACD,KAAK;GACJ,YAAY;GACZ;EACD,KAAK,UAAU;GACd,MAAM,SAAS,iBAAiB,WAAW,MAAM,MAAM;IACtD,OAAO;IACP,QAAQ;IACR;IACA;IACA;GACD,CAAC;GACD,IAAI,WAAW,KAAK,GAAG,MAAM,aAAa,KAAK,MAAM;GACrD;EACD;EACA,SAAS,IAAI,UAAU,KAAK,WAAW,KAAK,GAAG,aAAa;OACvD,YAAY,KAAK,iBAAiB,OAAO,WAAW,KAAK,QAAQ,CAAC;CACxE;CACA,MAAM,YAAY,IAAI,MAAM,MAAM,UAAU;CAC5C,IAAI,MAAM,eAAe;CACzB,MAAM,WAAW,iBAAiB,OAAO;EACxC,MAAM;EACN,MAAM,OAAO;CACd,GAAG,YAAY,UAAU,GAAG;CAC5B,IAAI,aAAa,KAAK,GAAG;CACzB,MAAM,UAAU,SAAS,KAAK,SAAS,WAAW,SAAS,KAAK,UAAU,KAAK;CAC/E,IAAI,gBAAgB,KAAK,GAAG;EAC3B,MAAM,QAAQ;EACd,IAAI,YAAY,QAAQ,mBAAmB,eAAe,SAAS,MAAM,YAAY,MAAM,MAAM;GAChG,YAAY,KAAK,kBAAkB,qCAAqC,GAAG,MAAM,2JAA2J,MAAM,KAAK,2DAA2D,UAAU,YAAY,IAAI,CAAC;GAC7U;EACD;EACA,IAAI,qBAAqB,KAAK,KAAK,YAAY,gBAAgB,MAAM,QAAQ;GAC5E,YAAY,KAAK,mBAAmB,OAAO,kBAAkB,QAAQ,CAAC;GACtE;EACD;EACA,MAAM,OAAO,cAAc;EAC3B;CACD;CACA,MAAM,aAAa,YAAY,QAAQ,eAAe,YAAY,CAAC,MAAM;CACzE,IAAI,cAAc,KAAK,KAAK,CAAC,YAAY;EACxC,YAAY,KAAK,kBAAkB,iDAAiD,GAAG,MAAM,oHAAoH,UAAU,UAAU,IAAI,CAAC;EAC1O;CACD;CACA,MAAM,eAAe,qBAAqB,KAAK,KAAK,YAAY,gBAAgB,MAAM;CACtF,IAAI,qBAAqB,KAAK,MAAM,CAAC,gBAAgB,CAAC,aAAa;EAClE,YAAY,KAAK,mBAAmB,OAAO,kBAAkB,QAAQ,CAAC;EACtE;CACD;CACA,MAAM,YAAY;EACjB,MAAM;EACN,IAAI,QAAQ;CACb;CACA,MAAM,SAAS,cAAc,KAAK,IAAI;EACrC,UAAU;EACV,UAAU;CACX,IAAI,eAAe,EAAE,UAAU,UAAU,IAAI,KAAK;CAClD,IAAI,WAAW,KAAK,KAAK,MAAM,UAAU;EACxC,MAAM,UAAU,aAAa;EAC7B,YAAY,KAAK,kBAAkB,0DAA0D,GAAG,MAAM,wCAAwC,YAAY,KAAK,IAAI,gBAAgB,cAAc,OAAO,EAAE,+FAA+F,YAAY,KAAK,IAAI,kBAAkB,cAAc,OAAO,EAAE,+CAA+C,UAAU,SAAS,QAAQ,MAAM,IAAI,CAAC;EAC5b;CACD;CACA,MAAM,OAAO,cAAc;CAC3B,IAAI,WAAW,KAAK,GAAG,MAAM,kBAAkB,KAAK;EACnD,OAAO;EACP;CACD,CAAC;AACF;AACA,SAAS,eAAe,cAAc;CACrC,MAAM,aAAa,aAAa;CAChC,MAAM,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,gBAAgB,KAAK,WAAW,MAAM;CACrF,IAAI,UAAU,KAAK,GAAG,OAAO,KAAK;CAClC,MAAM,QAAQ,CAAC;CACf,KAAK,MAAM,WAAW,MAAM,SAAS,GAAG;EACvC,MAAM,OAAO,cAAc,KAAK,QAAQ,MAAM,CAAC,EAAE,KAAK;EACtD,IAAI,SAAS,KAAK,GAAG,OAAO,KAAK;EACjC,MAAM,KAAK,IAAI;CAChB;CACA,OAAO;AACR;AACA,SAAS,sBAAsB,WAAW,OAAO,UAAU,aAAa;CACvE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM,WAAW,MAAM,SAAS;EAC/B,YAAY,KAAK;GAChB,MAAM;GACN,SAAS,GAAG,MAAM,cAAc,KAAK;GACrC;GACA;EACD,CAAC;CACF;CACA,KAAK,MAAM,OAAO,UAAU,MAAM;EACjC,MAAM,MAAM,IAAI,SAAS,eAAe,SAAS,IAAI;EACrD,QAAQ,KAAR;GACC,KAAK,QAAQ;IACZ,MAAM,aAAa,IAAI;IACvB,OAAO,eAAe,KAAK,IAAI,KAAK,IAAI,qBAAqB,KAAK,WAAW,MAAM,CAAC,EAAE,MAAM;IAC5F,IAAI,SAAS,KAAK,GAAG,OAAO,QAAQ,yBAAyB,IAAI,IAAI;IACrE;GACD;GACA,KAAK;IACJ,SAAS,eAAe,GAAG;IAC3B,IAAI,WAAW,KAAK,GAAG,OAAO,QAAQ,wCAAwC,IAAI,IAAI;IACtF;GACD,KAAK;IACJ,aAAa,eAAe,GAAG;IAC/B,IAAI,eAAe,KAAK,GAAG,OAAO,QAAQ,4CAA4C,IAAI,IAAI;IAC9F;GACD,KAAK;GACL,KAAK;GACL,KAAK;IACJ,YAAY,KAAK,kBAAkB,oDAAoD,QAAQ,QAAQ,GAAG,MAAM,uHAAuH,GAAG,MAAM,wBAAwB,IAAI,mFAAmF,IAAI,sDAAsD,UAAU,IAAI,IAAI,CAAC;IAC5a;GACD,SAAS,OAAO,QAAQ,aAAa,OAAO,GAAG,qBAAqB,IAAI,IAAI;EAC7E;CACD;CACA,OAAO;EACN;EACA;EACA;CACD;AACD;AACA,SAAS,uBAAuB,WAAW,YAAY,QAAQ,UAAU,MAAM;CAC9E,MAAM,MAAM,WAAW,WAAW;CAClC,MAAM,SAAS,WAAW,KAAK,SAAS,IAAI,UAAU,GAAG,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI;CAC3E,OAAO,kBAAkB,8CAA8C,GAAG,MAAM,UAAU,SAAS,GAAG,OAAO,GAAG,MAAM,OAAO,MAAM,uBAAuB,OAAO,QAAQ,MAAM,OAAO,OAAO,wBAAwB,OAAO,cAAc,OAAO,IAAI,UAAU,IAAI;AACpQ;AACA,SAAS,mBAAmB,OAAO,QAAQ,KAAK,aAAa;CAC5D,MAAM,EAAE,QAAQ,UAAU,YAAY,MAAM;CAC5C,KAAK,MAAM,EAAE,OAAO,cAAc,MAAM,gBAAgB;EACvD,MAAM,QAAQ,mBAAmB,OAAO,KAAK,GAAG,MAAM,KAAK;EAC3D,MAAM,eAAe;GACpB,IAAI,kBAAkB,KAAK;IAC1B,SAAS,kBAAkB,OAAO,MAAM,MAAM,QAAQ;IACtD,GAAG,UAAU,gBAAgB,aAAa,KAAK,IAAI,KAAK,IAAI,eAAe,QAAQ,CAAC;GACrF,CAAC;EACF;EACA,MAAM,OAAO,aAAa,KAAK,IAAI,KAAK,IAAI,sBAAsB,UAAU,OAAO,UAAU,WAAW;EACxG,IAAI,aAAa,KAAK,KAAK,SAAS,KAAK,GAAG;GAC3C,OAAO;GACP;EACD;EACA,MAAM,SAAS,OAAO,IAAI,MAAM,QAAQ;EACxC,IAAI,WAAW,KAAK,GAAG;EACvB,IAAI,EAAE,MAAM,WAAW,KAAK,KAAK,MAAM,eAAe,KAAK,IAAI;GAC9D,IAAI,cAAc,KAAK;IACtB,WAAW,OAAO;IAClB;IACA,iBAAiB,MAAM;IACvB,GAAG,UAAU,gBAAgB,MAAM,IAAI;IACvC,aAAa,MAAM,OAAO,QAAQ;IAClC;GACD,CAAC;GACD;EACD;EACA,IAAI,MAAM,MAAM;GACf,YAAY,KAAK,kBAAkB,+CAA+C,GAAG,MAAM,oPAAoP,UAAU,UAAU,QAAQ,MAAM,IAAI,CAAC;GACtX,OAAO;GACP;EACD;EACA,MAAM,aAAa,MAAM,UAAU,CAAC;EACpC,MAAM,cAAc,MAAM,cAAc,CAAC;EACzC,MAAM,eAAe,WAAW,QAAQ,SAAS,MAAM,cAAc,IAAI,IAAI,CAAC;EAC9E,IAAI,aAAa,SAAS,GAAG;GAC5B,YAAY,KAAK,uBAAuB,OAAO,MAAM,cAAc,mBAAmB,OAAO,KAAK,GAAG,MAAM,KAAK,IAAI,UAAU,UAAU,QAAQ,MAAM,IAAI,CAAC;GAC3J,OAAO;GACP;EACD;EACA,MAAM,gBAAgB,YAAY,QAAQ,SAAS,OAAO,cAAc,IAAI,IAAI,CAAC;EACjF,IAAI,cAAc,SAAS,GAAG;GAC7B,YAAY,KAAK,uBAAuB,OAAO,QAAQ,OAAO,MAAM,eAAe,mBAAmB,OAAO,KAAK,GAAG,MAAM,KAAK,IAAI,UAAU,UAAU,QAAQ,MAAM,IAAI,CAAC;GAC3K,OAAO;GACP;EACD;EACA,MAAM,cAAc,WAAW,KAAK,SAAS,MAAM,YAAY,IAAI,IAAI,CAAC;EACxE,MAAM,eAAe,YAAY,KAAK,SAAS,OAAO,YAAY,IAAI,IAAI,CAAC;EAC3E,IAAI,YAAY,MAAM,SAAS,SAAS,KAAK,CAAC,KAAK,aAAa,MAAM,SAAS,SAAS,KAAK,CAAC,KAAK,WAAW,WAAW,YAAY,UAAU,WAAW,WAAW,GAAG;GACvK,YAAY,KAAK;IAChB,MAAM;IACN,SAAS,GAAG,MAAM,mFAAmF,OAAO,KAAK,SAAS,MAAM,SAAS;IACzI;IACA,MAAM,UAAU,QAAQ,MAAM;GAC/B,CAAC;GACD,OAAO;GACP;EACD;EACA,IAAI,6BAA6B;GAChC,kBAAkB,MAAM;GACxB,uBAAuB,WAAW,KAAK,SAAS,OAAO,OAAO,KAAK,EAAE,aAAa,IAAI;GACtF,eAAe;EAChB,CAAC,CAAC,CAAC,kBAAkB,KAAK,GAAG;GAC5B,YAAY,KAAK;IAChB,MAAM;IACN,SAAS,MAAM,WAAW,GAAG,MAAM,uIAAuI,MAAM,KAAK,MAAM,GAAG,MAAM,gFAAgF,MAAM,KAAK;IAC/R;IACA,MAAM,MAAM;GACb,CAAC;GACD,OAAO;GACP;EACD;EACA,MAAM,QAAQ,YAAY,QAAQ,SAAS,SAAS,KAAK,CAAC;EAC1D,MAAM,aAAa,aAAa,QAAQ,SAAS,SAAS,KAAK,CAAC;EAChE,MAAM,UAAU,MAAM,QAAQ;GAC7B,IAAI,SAAS,MAAM,UAAU,oBAAoB;GACjD,aAAa;GACb,UAAU,MAAM;GAChB,IAAI;IACH,aAAa;IACb,cAAc;GACf;EACD;EACA,IAAI,YAAY,KAAK;GACpB,gBAAgB,OAAO;GACvB,aAAa,MAAM;GACnB,GAAG,UAAU,gBAAgB,MAAM,IAAI;GACvC,aAAa;GACb,cAAc;EACf,CAAC;CACF;AACD;AACA,SAAS,aAAa,OAAO,aAAa;CACzC,MAAM,EAAE,QAAQ,aAAa,MAAM;CACnC,MAAM,UAAU,CAAC;CACjB,IAAI,cAAc;CAClB,MAAM,UAAU,OAAO,UAAU;EAChC,OAAO,MAAM,YAAY,IAAI,MAAM,IAAI,KAAK,MAAM;EAClD,WAAW,MAAM,cAAc,OAAO,SAAS;CAChD;CACA,KAAK,MAAM,aAAa,CAAC,GAAG,MAAM,cAAc,GAAG,MAAM,YAAY,GAAG;EACvE,MAAM,QAAQ,UAAU,OAAO,KAAK,UAAU,MAAM,IAAI;EACxD,MAAM,SAAS,MAAM,aAAa,SAAS,SAAS,IAAI,qBAAqB,OAAO,KAAK,GAAG,UAAU,OAAO,EAAE,EAAE,QAAQ,GAAG,KAAK,KAAK,UAAU,KAAK,aAAa,OAAO,KAAK;EAC9K,MAAM,UAAU,MAAM,QAAQ,SAAS,MAAM,cAAc,IAAI,IAAI,CAAC;EACpE,IAAI,QAAQ,SAAS,GAAG;GACvB,YAAY,KAAK,uBAAuB,OAAO,MAAM,SAAS,QAAQ,UAAU,UAAU,IAAI,CAAC;GAC/F;EACD;EACA,IAAI,MAAM,MAAM,SAAS,MAAM,eAAe,IAAI,IAAI,CAAC,GAAG;EAC1D,MAAM,UAAU,MAAM,MAAM,SAAS,CAAC,MAAM,YAAY,IAAI,IAAI,CAAC;EACjE,IAAI,YAAY,KAAK,GAAG;GACvB,YAAY,KAAK;IAChB,MAAM;IACN,SAAS,mBAAmB,OAAO,KAAK,8BAA8B,QAAQ;IAC9E;IACA,MAAM,UAAU;GACjB,CAAC;GACD;EACD;EACA,IAAI,UAAU,SAAS,YAAY;GAClC;GACA,IAAI,cAAc,GAAG;IACpB,YAAY,KAAK,kBAAkB,sCAAsC,UAAU,OAAO,KAAK,sHAAsH,UAAU,UAAU,IAAI,CAAC;IAC9O;GACD;EACD;EACA,QAAQ,KAAK,IAAI,WAAW;GAC3B,MAAM,UAAU,OAAO,KAAK,UAAU,OAAO,OAAO,UAAU,SAAS,UAAU,CAAC;GAClF,GAAG,UAAU,SAAS,WAAW,EAAE,QAAQ,KAAK,IAAI,CAAC;EACtD,CAAC,CAAC;CACH;CACA,OAAO;AACR;AACA,SAAS,iBAAiB,OAAO;CAChC,MAAM,SAAS,MAAM,QAAQ,OAAO;CACpC,MAAM,eAAe,MAAM,QAAQ,OAAO;CAC1C,MAAM,aAAa,CAAC;CACpB,KAAK,MAAM,CAAC,UAAU,UAAU,MAAM,OAAO,WAAW,YAAY;EACnE,SAAS,MAAM;EACf,SAAS,MAAM,QAAQ,KAAK,YAAY;GACvC,MAAM,OAAO;GACb,OAAO,UAAU,OAAO,KAAK;EAC9B,EAAE;CACH;CACA,MAAM,cAAc,CAAC;CACrB,KAAK,MAAM,CAAC,MAAM,eAAe,OAAO,QAAQ,MAAM,WAAW,GAAG,YAAY,QAAQ,WAAW,QAAQ,SAAS,IAAI,EAAE,SAAS,WAAW,QAAQ,IAAI,CAAC;CAC3J,MAAM,UAAU,kBAAkB;EACjC;EACA,WAAW,qBAAqB,OAAO,YAAY,MAAM,KAAK,GAAG,MAAM,WAAW;CACnF,CAAC;CACD,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,CAAC,WAAW,UAAU,MAAM,QAAQ,OAAO,aAAa;EAClE,QAAQ,MAAM;EACd,WAAW,MAAM;EACjB,SAAS,EAAE,YAAY,MAAM,WAAW;CACzC;CACA,MAAM,eAAe,CAAC;CACtB,MAAM,YAAY,sBAAsB;EACvC;EACA;EACA,UAAU,MAAM;CACjB,CAAC;CACD,OAAO;EACN;EACA;EACA,OAAO,MAAM;EACb,QAAQ,EAAE,YAAY,GAAG,uBAAuB;GAC/C,QAAQ,UAAU,MAAM;GACxB,GAAG,OAAO,KAAK,MAAM,YAAY,CAAC,CAAC,SAAS,IAAI,EAAE,cAAc,MAAM,aAAa,IAAI,CAAC;GACxF,GAAG,OAAO,KAAK,UAAU,CAAC,CAAC,SAAS,IAAI,EAAE,MAAM,WAAW,IAAI,CAAC;EACjE,EAAE,EAAE;EACJ;EACA,YAAY,CAAC;EACb;EACA,aAAa,mBAAmB;GAC/B;GACA;GACA;EACD,CAAC;EACD,MAAM,CAAC;EACP,GAAG,cAAc,KAAK,IAAI,EAAE,UAAU,IAAI,CAAC;CAC5C;AACD;AACA,SAAS,cAAc,WAAW;CACjC,MAAM,CAAC,OAAO,GAAG,QAAQ,UAAU,KAAK,aAAa,SAAS,OAAO;CACrE,IAAI,UAAU,KAAK,GAAG,MAAM,IAAI,cAAc,6CAA6C;CAC3F,OAAO,MAAM,MAAM,GAAG,IAAI;AAC3B;AAGA,SAAS,4BAA4B,YAAY;CAChD,OAAO,KAAK,QAAQ,UAAU,GAAG,eAAe;AACjD;AACA,SAAS,oBAAoB,aAAa,YAAY,UAAU;CAC/D,OAAO,YAAY,KAAK,gBAAgB;EACvC,MAAM,WAAW;EACjB,SAAS,WAAW;EACpB;EACA,MAAM,WAAW,eAAe,WAAW,KAAK;CACjD,EAAE;AACH;;;;AAIA,eAAe,gBAAgB,cAAc,aAAa;CACzD,IAAI,EAAE,MAAM,KAAK,YAAY,EAAA,CAAG,YAAY,GAAG,OAAO,CAAC;EACtD,UAAU;EACV;CACD,CAAC;CACD,MAAM,UAAU,MAAM,QAAQ,cAAc,EAAE,WAAW,KAAK,CAAC;CAC/D,MAAM,QAAQ,CAAC;CACf,KAAK,MAAM,SAAS,QAAQ,QAAQ,SAAS,QAAQ,IAAI,MAAM,SAAS,CAAC,CAAC,KAAK,SAAS,UAAU,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;EAChH,MAAM,YAAY,KAAK,cAAc,KAAK;EAC1C,KAAK,MAAM,KAAK,SAAS,EAAA,CAAG,OAAO,GAAG,MAAM,KAAK;GAChD,UAAU,KAAK,aAAa,KAAK;GACjC,cAAc;EACf,CAAC;CACF;CACA,OAAO;AACR;AACA,SAAS,YAAY,YAAY,SAAS,MAAM;CAC/C,OAAO,MAAM;EACZ,SAAS,sCAAsC,WAAW;EAC1D,aAAa,CAAC,kBAAkB,wCAAwC,SAAS,YAAY,KAAK,CAAC,CAAC;EACpG;CACD,CAAC;AACF;;;;AAIA,SAAS,gBAAgB,YAAY,SAAS;CAC7C,MAAM,gBAAgB,EAAE,SAAS,WAAW;CAC5C,OAAO;EACN,QAAQ;GACP,QAAQ;GACR,QAAQ,CAAC,UAAU;GACnB;GACA,MAAM,KAAK,SAAS;IACnB,MAAM,CAAC,gBAAgB,QAAQ;IAC/B,IAAI,iBAAiB,KAAK,GAAG,MAAM,IAAI,cAAc,gHAAgH;IACrK,IAAI;IACJ,IAAI;KACH,QAAQ,MAAM,gBAAgB,cAAc,UAAU;IACvD,SAAS,OAAO;KACf,MAAM,UAAU,OAAO,KAAK;KAC5B,OAAO,YAAY,YAAY,SAAS;MACvC;MACA;MACA,OAAO;KACR,CAAC;IACF;IACA,IAAI,MAAM,WAAW,GAAG,OAAO,YAAY,YAAY,yBAAyB,WAAW,8BAA8B;KACxH;KACA;IACD,CAAC;IACD,MAAM,YAAY,CAAC;IACnB,MAAM,kBAAkB,CAAC;IACzB,KAAK,MAAM,QAAQ,OAAO;KACzB,IAAI;KACJ,IAAI;MACH,SAAS,MAAM,SAAS,KAAK,cAAc,OAAO;KACnD,SAAS,OAAO;MACf,MAAM,UAAU,OAAO,KAAK;MAC5B,OAAO,YAAY,KAAK,UAAU,SAAS;OAC1C,YAAY,KAAK;OACjB,oBAAoB,KAAK;OACzB,OAAO;MACR,CAAC;KACF;KACA,MAAM,EAAE,UAAU,SAAS,gBAAgB,MAAM,QAAQ,KAAK,UAAU,aAAa;KACrF,MAAM,aAAa,QAAQ,cAAc,SAAS,MAAM;KACxD,gBAAgB,KAAK,GAAG,oBAAoB,aAAa,YAAY,KAAK,QAAQ,CAAC;KACnF,UAAU,KAAK;MACd;MACA;MACA;MACA,UAAU,KAAK;KAChB,CAAC;IACF;IACA,IAAI;IACJ,IAAI;KACH,MAAM,cAAc,0BAA0B;MAC7C;MACA;MACA,SAAS,QAAQ;MACjB,wBAAwB,QAAQ;MAChC,aAAa,QAAQ;KACtB,CAAC;KACD,IAAI,CAAC,YAAY,IAAI,OAAO;KAC5B,WAAW,mCAAmC,YAAY,OAAO,QAAQ,oBAAoB;KAC7F,uBAAuB,QAAQ;KAC/B,qBAAqB,UAAU,QAAQ,CAAC;IACzC,SAAS,OAAO;KACf,IAAI,CAAC,kBAAkB,KAAK,GAAG,MAAM;KACrC,OAAO,MAAM;MACZ,SAAS;MACT,aAAa,CAAC,kBAAkB,sCAAsC,0IAA0I,MAAM,QAAQ,QAAQ,OAAO,EAAE,EAAE,oEAAoE,YAAY,KAAK,CAAC,CAAC;MACxU,MAAM;OACL;OACA,MAAM,MAAM;MACb;KACD,CAAC;IACF;IACA,OAAO,GAAG,QAAQ;GACnB;EACD;EACA,QAAQ,QAAQ,UAAU,4BAA4B,UAAU;CACjE;AACD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prisma/orm-family-mongo",
|
|
3
|
-
"version": "8.0.0-rc.14-dev.
|
|
3
|
+
"version": "8.0.0-rc.14-dev.3",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -9,30 +9,30 @@
|
|
|
9
9
|
"dist"
|
|
10
10
|
],
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@prisma/orm-framework": "8.0.0-rc.14-dev.
|
|
13
|
-
"@prisma/orm-toolchain": "8.0.0-rc.14-dev.
|
|
12
|
+
"@prisma/orm-framework": "8.0.0-rc.14-dev.3",
|
|
13
|
+
"@prisma/orm-toolchain": "8.0.0-rc.14-dev.3",
|
|
14
14
|
"arktype": "^2.2.2",
|
|
15
15
|
"mongodb": "^7.4.0",
|
|
16
16
|
"pathe": "^2.0.3"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@internal/family-mongo": "8.0.0-rc.14-dev.
|
|
20
|
-
"@internal/mongo-codec": "8.0.0-rc.14-dev.
|
|
21
|
-
"@internal/mongo-contract": "8.0.0-rc.14-dev.
|
|
22
|
-
"@internal/mongo-contract-prisma6": "8.0.0-rc.14-dev.
|
|
23
|
-
"@internal/mongo-contract-psl": "8.0.0-rc.14-dev.
|
|
24
|
-
"@internal/mongo-contract-ts": "8.0.0-rc.14-dev.
|
|
25
|
-
"@internal/mongo-emitter": "8.0.0-rc.14-dev.
|
|
26
|
-
"@internal/mongo-lowering": "8.0.0-rc.14-dev.
|
|
27
|
-
"@internal/mongo-orm": "8.0.0-rc.14-dev.
|
|
28
|
-
"@internal/mongo-query-ast": "8.0.0-rc.14-dev.
|
|
29
|
-
"@internal/mongo-query-builder": "8.0.0-rc.14-dev.
|
|
30
|
-
"@internal/mongo-runtime": "8.0.0-rc.14-dev.
|
|
31
|
-
"@internal/mongo-schema-ir": "8.0.0-rc.14-dev.
|
|
32
|
-
"@internal/mongo-value": "8.0.0-rc.14-dev.
|
|
33
|
-
"@internal/mongo-wire": "8.0.0-rc.14-dev.
|
|
34
|
-
"@repo/tsconfig": "8.0.0-rc.14-dev.
|
|
35
|
-
"@repo/tsdown": "8.0.0-rc.14-dev.
|
|
19
|
+
"@internal/family-mongo": "8.0.0-rc.14-dev.3",
|
|
20
|
+
"@internal/mongo-codec": "8.0.0-rc.14-dev.3",
|
|
21
|
+
"@internal/mongo-contract": "8.0.0-rc.14-dev.3",
|
|
22
|
+
"@internal/mongo-contract-prisma6": "8.0.0-rc.14-dev.3",
|
|
23
|
+
"@internal/mongo-contract-psl": "8.0.0-rc.14-dev.3",
|
|
24
|
+
"@internal/mongo-contract-ts": "8.0.0-rc.14-dev.3",
|
|
25
|
+
"@internal/mongo-emitter": "8.0.0-rc.14-dev.3",
|
|
26
|
+
"@internal/mongo-lowering": "8.0.0-rc.14-dev.3",
|
|
27
|
+
"@internal/mongo-orm": "8.0.0-rc.14-dev.3",
|
|
28
|
+
"@internal/mongo-query-ast": "8.0.0-rc.14-dev.3",
|
|
29
|
+
"@internal/mongo-query-builder": "8.0.0-rc.14-dev.3",
|
|
30
|
+
"@internal/mongo-runtime": "8.0.0-rc.14-dev.3",
|
|
31
|
+
"@internal/mongo-schema-ir": "8.0.0-rc.14-dev.3",
|
|
32
|
+
"@internal/mongo-value": "8.0.0-rc.14-dev.3",
|
|
33
|
+
"@internal/mongo-wire": "8.0.0-rc.14-dev.3",
|
|
34
|
+
"@repo/tsconfig": "8.0.0-rc.14-dev.3",
|
|
35
|
+
"@repo/tsdown": "8.0.0-rc.14-dev.3",
|
|
36
36
|
"tsdown": "0.22.14",
|
|
37
37
|
"typescript": "5.9.3"
|
|
38
38
|
},
|