@prisma/orm-toolchain 8.0.0-rc.11-dev.21 → 8.0.0-rc.11-dev.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/dist/cli.mjs +5 -5
  2. package/dist/cli__control-api.d.mts +1 -1
  3. package/dist/cli__control-api.mjs +1 -1
  4. package/dist/cli__migration-cli.mjs +1 -1
  5. package/dist/config-loader.mjs +1 -1
  6. package/dist/emitter.d.mts +1 -1
  7. package/dist/emitter.mjs +1 -1
  8. package/dist/{exports-HR2MWHrQ.mjs → exports-Bg8ce6Ih.mjs} +2 -2
  9. package/dist/{exports-HR2MWHrQ.mjs.map → exports-Bg8ce6Ih.mjs.map} +1 -1
  10. package/dist/{exports-DkJil2JJ-6p86L2r4.mjs → exports-DI1kMms6--e9LdT9A.mjs} +3 -3
  11. package/dist/{exports-DkJil2JJ-6p86L2r4.mjs.map → exports-DI1kMms6--e9LdT9A.mjs.map} +1 -1
  12. package/dist/{exports-Do7_pH8Y.mjs → exports-DJ4RhlW4.mjs} +2 -2
  13. package/dist/{exports-Do7_pH8Y.mjs.map → exports-DJ4RhlW4.mjs.map} +1 -1
  14. package/dist/{import-roots-DK5SffvZ.mjs → import-roots-BgbD211J.mjs} +2 -2
  15. package/dist/{import-roots-DK5SffvZ.mjs.map → import-roots-BgbD211J.mjs.map} +1 -1
  16. package/dist/{index-K9cFK1Ge.d.mts → index-DG1D9rrd.d.mts} +6 -6
  17. package/dist/{index-K9cFK1Ge.d.mts.map → index-DG1D9rrd.d.mts.map} +1 -1
  18. package/dist/publish-surface.mjs +2 -2
  19. package/dist/publish-surface__import-roots.mjs +1 -1
  20. package/dist/publish-surface__shells.mjs +1 -1
  21. package/dist/{ref-fSTPpdt3-BulCTZne.mjs → ref-fSTPpdt3-DTb2_ACs.mjs} +3 -3
  22. package/dist/{ref-fSTPpdt3-BulCTZne.mjs.map → ref-fSTPpdt3-DTb2_ACs.mjs.map} +1 -1
  23. package/dist/{shells-Bx5Y1_Qa.mjs → shells-BafZvOhr.mjs} +2 -1
  24. package/dist/shells-BafZvOhr.mjs.map +1 -0
  25. package/dist/vite-plugin-contract-emit.mjs +3 -3
  26. package/package.json +12 -12
  27. package/dist/shells-Bx5Y1_Qa.mjs.map +0 -1
@@ -6,7 +6,7 @@ import { canonicalizeContractToObject } from "@prisma/orm-framework/contract/has
6
6
  import { format } from "prettier";
7
7
  import { InternalError } from "@prisma/orm-framework/utils/internal-error";
8
8
  import { UNBOUND_NAMESPACE_ID } from "@prisma/orm-framework/components/ir";
9
- //#region ../../../1-framework/3-tooling/emitter/dist/exports-DkJil2JJ.mjs
9
+ //#region ../../../1-framework/3-tooling/emitter/dist/exports-DI1kMms6.mjs
10
10
  const JSON_EXTENSION = ".json";
11
11
  function getEmittedArtifactPaths(outputJsonPath) {
12
12
  if (!outputJsonPath.endsWith(JSON_EXTENSION)) throw emitterError("CONFIG.VALIDATION_FAILED", "Contract output path must end with .json", { meta: {
@@ -381,7 +381,7 @@ async function emit(contract, stack, targetFamily, options) {
381
381
  };
382
382
  return {
383
383
  contractJson: contractJsonString,
384
- contractDts: await format(generateContractDts(options.deserializeContract === void 0 ? contract : options.deserializeContract(canonicalized), targetFamily, codecTypeImports ?? [], contractTypeHashes, generateOptions, stack.codecLookup, options.resolveImportSpecifier ?? keepInternalSpecifiers), {
384
+ contractDts: await format(generateContractDts(options.deserializeContract(canonicalized), targetFamily, codecTypeImports ?? [], contractTypeHashes, generateOptions, stack.codecLookup, options.resolveImportSpecifier ?? keepInternalSpecifiers), {
385
385
  parser: "typescript",
386
386
  singleQuote: true,
387
387
  semi: true,
@@ -395,4 +395,4 @@ async function emit(contract, stack, targetFamily, options) {
395
395
  //#endregion
396
396
  export { generateContractDts as n, getEmittedArtifactPaths as r, emit as t };
397
397
 
398
- //# sourceMappingURL=exports-DkJil2JJ-6p86L2r4.mjs.map
398
+ //# sourceMappingURL=exports-DI1kMms6--e9LdT9A.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"exports-DkJil2JJ-6p86L2r4.mjs","names":[],"sources":["../../../../1-framework/3-tooling/emitter/dist/exports-DkJil2JJ.mjs"],"sourcesContent":["import { D as serializeValue, E as serializeObjectKey, O as emitterError, _ as generateValueObjectTypeAliases, c as generateFieldTypesMapsByNamespace, h as generateRootsType, l as generateHashTypeAliases, m as generateModelsType, r as generateCodecTypeIntersection, t as deduplicateImports, u as generateImportLines, v as generateValueObjectsDescriptorType, w as serializeExecutionType, x as resolveModelFieldType } from \"./domain-type-generation-BVFTIUm6.mjs\";\nimport { keepInternalSpecifiers } from \"@internal/framework-components/emission\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { canonicalizeContractToObject } from \"@internal/contract/hashing\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { format } from \"prettier\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\n//#region src/artifact-paths.ts\nconst JSON_EXTENSION = \".json\";\nfunction getEmittedArtifactPaths(outputJsonPath) {\n\tif (!outputJsonPath.endsWith(JSON_EXTENSION)) throw emitterError(\"CONFIG.VALIDATION_FAILED\", \"Contract output path must end with .json\", { meta: {\n\t\tfield: \"contract.output\",\n\t\toutputJsonPath\n\t} });\n\treturn {\n\t\tjsonPath: outputJsonPath,\n\t\tdtsPath: `${outputJsonPath.slice(0, -5)}.d.ts`\n\t};\n}\n//#endregion\n//#region src/model-types-emission.ts\nconst TYPESCRIPT_IDENTIFIER = /^[$A-Z_a-z][$\\w]*$/;\nfunction namespacedMemberName(namespaceId, modelName) {\n\treturn `${namespaceId === UNBOUND_NAMESPACE_ID ? \"unbound\" : namespaceId}_${modelName}`;\n}\nfunction bareMemberName(_namespaceId, modelName) {\n\treturn modelName;\n}\nfunction claimMemberName(claims, memberName, source) {\n\tif (!TYPESCRIPT_IDENTIFIER.test(memberName)) throw emitterError(\"CONTRACT.MODEL_TYPE_NAME_INVALID\", `Emitted model type name \"${memberName}\" (from ${source}) is not a TypeScript identifier`, {\n\t\twhy: \"Every entry in the emitted Models namespace is declared as `export type <name>`, so the name must be a TypeScript identifier.\",\n\t\tfix: \"Rename the namespace or model so that <namespace>_<Model> contains only letters, digits, `$`, and `_`, and does not start with a digit.\",\n\t\tmeta: {\n\t\t\tmemberName,\n\t\t\tsource\n\t\t}\n\t});\n\tconst existing = claims.get(memberName);\n\tif (existing !== void 0) throw emitterError(\"CONTRACT.MODEL_TYPE_NAME_COLLISION\", `Emitted model type name \"${memberName}\" is produced by both ${existing} and ${source}`, {\n\t\twhy: \"Every entry in the emitted Models namespace needs a distinct name, formed as <namespace>_<Model>.\",\n\t\tfix: \"Rename one of the models or namespaces so the two names differ.\",\n\t\tmeta: {\n\t\t\tmemberName,\n\t\t\tsources: [existing, source]\n\t\t}\n\t});\n\tclaims.set(memberName, source);\n}\nfunction isPolymorphicBase(model) {\n\treturn model.discriminator !== void 0 && model.variants !== void 0;\n}\nfunction findModelByName(namespaces, namespaceId, modelName) {\n\treturn namespaces.find((ns) => ns.namespaceId === namespaceId)?.models.find((m) => m.modelName === modelName);\n}\nfunction findModel(namespaces, ref) {\n\treturn findModelByName(namespaces, ref.namespace, ref.model);\n}\nfunction requireRelationTarget(namespaces, owner, relationName, ref) {\n\tconst target = findModel(namespaces, ref);\n\tif (target !== void 0) return target;\n\tconst ownerSource = `${owner.namespaceId}.${owner.modelName}`;\n\tthrow emitterError(\"CONTRACT.MODEL_RELATION_TARGET_MISSING\", `Relation \"${relationName}\" on ${ownerSource} targets ${ref.namespace}.${ref.model}, which is not in the contract`, {\n\t\twhy: \"A same-space relation must point at a model the contract declares; only cross-space relations may reference models outside it.\",\n\t\tfix: \"Declare the target model in the contract, or mark the relation as cross-space by giving its target a `space`.\",\n\t\tmeta: {\n\t\t\towner: ownerSource,\n\t\t\trelationName,\n\t\t\ttarget: {\n\t\t\t\tnamespaceId: ref.namespace,\n\t\t\t\tmodelName: ref.model\n\t\t\t}\n\t\t}\n\t});\n}\nfunction requireBase(namespaces, variant, base) {\n\tconst found = findModel(namespaces, base);\n\tif (found !== void 0) return found;\n\tconst variantSource = `${variant.namespaceId}.${variant.modelName}`;\n\tconst baseSource = `${base.namespace}.${base.model}`;\n\tthrow emitterError(\"CONTRACT.MODEL_BASE_MISSING\", `Model ${variantSource} names base ${baseSource}, which is not in the contract`, {\n\t\twhy: \"A variant's type is its base's fields plus its own, so the base must be a model the contract declares.\",\n\t\tfix: \"Declare the base model in the contract, or remove `base` from the variant.\",\n\t\tmeta: {\n\t\t\tvariant: variantSource,\n\t\t\tbase: baseSource\n\t\t}\n\t});\n}\nfunction requireVariant(namespaces, base, variantName) {\n\tconst variant = findModelByName(namespaces, base.namespaceId, variantName);\n\tif (variant !== void 0) return variant;\n\tconst baseSource = `${base.namespaceId}.${base.modelName}`;\n\tthrow emitterError(\"CONTRACT.MODEL_VARIANT_MISSING\", `Polymorphic base ${baseSource} names variant \"${variantName}\", which is not in the contract`, {\n\t\twhy: \"The Any<Base> union is the union of the variant model types, so every variant a base declares must be a model in the same namespace.\",\n\t\tfix: \"Declare the variant model in the same namespace as the base, or remove it from the base's variants.\",\n\t\tmeta: {\n\t\t\tbase: baseSource,\n\t\t\tvariantName\n\t\t}\n\t});\n}\nfunction collectFieldLines(ref, resolvers, discriminatorType) {\n\tconst lines = /* @__PURE__ */ new Map();\n\tfor (const [fieldName, field] of Object.entries(ref.model.fields)) {\n\t\tconst type = discriminatorType !== void 0 && fieldName === discriminatorType.field ? discriminatorType.type : resolveModelFieldType(ref.modelName, fieldName, field, ref.model, resolvers).output;\n\t\tlines.set(fieldName, `${serializeObjectKey(fieldName)}: ${type};`);\n\t}\n\treturn lines;\n}\nfunction hasJoin(relation) {\n\treturn \"on\" in relation && relation.on !== void 0;\n}\nfunction relationLine(owner, relationName, relation, index) {\n\tif (relation.to.space !== void 0) return void 0;\n\tconst target = requireRelationTarget(index.namespaces, owner, relationName, relation.to);\n\tconst targetMember = index.memberNameOf(target.namespaceId, isPolymorphicBase(target.model) ? `Any${target.modelName}` : target.modelName);\n\tconst key = serializeObjectKey(relationName);\n\tif (!hasJoin(relation)) return {\n\t\tline: `${key}: ${relation.cardinality === \"1:N\" ? `${targetMember}[]` : targetMember};`,\n\t\thasJoin: false\n\t};\n\tif (relation.cardinality === \"1:N\" || relation.cardinality === \"N:M\") return {\n\t\tline: `${key}: ${targetMember}[];`,\n\t\thasJoin: true\n\t};\n\treturn {\n\t\tline: `${key}: ${relation.nullable ? `${targetMember} | null` : targetMember};`,\n\t\thasJoin: true\n\t};\n}\nfunction collectRelationLines(ref, index) {\n\tconst lines = /* @__PURE__ */ new Map();\n\tfor (const [relationName, relation] of Object.entries(ref.model.relations)) {\n\t\tconst rendered = relationLine(ref, relationName, relation, index);\n\t\tif (rendered !== void 0) lines.set(relationName, rendered);\n\t}\n\treturn lines;\n}\nfunction discriminatorUnion(base) {\n\tconst values = Object.values(base.variants ?? {}).map((v) => serializeValue(v.value));\n\treturn values.length > 0 ? values.join(\" | \") : \"never\";\n}\nfunction memberLines(ref, index, resolvers) {\n\tconst base = ref.model.base !== void 0 ? requireBase(index.namespaces, ref, ref.model.base) : void 0;\n\tif (base !== void 0 && isPolymorphicBase(base.model)) {\n\t\tconst discriminatorField = base.model.discriminator?.field ?? \"\";\n\t\tconst variantValue = base.model.variants?.[ref.modelName]?.value;\n\t\tconst discriminatorType = {\n\t\t\tfield: discriminatorField,\n\t\t\ttype: variantValue !== void 0 ? serializeValue(variantValue) : discriminatorUnion(base.model)\n\t\t};\n\t\treturn {\n\t\t\tfieldsByName: new Map([...collectFieldLines(base, resolvers, discriminatorType), ...collectFieldLines(ref, resolvers, void 0)]),\n\t\t\trelationsByName: new Map([...collectRelationLines(base, index), ...collectRelationLines(ref, index)])\n\t\t};\n\t}\n\treturn {\n\t\tfieldsByName: collectFieldLines(ref, resolvers, isPolymorphicBase(ref.model) ? {\n\t\t\tfield: ref.model.discriminator?.field ?? \"\",\n\t\t\ttype: discriminatorUnion(ref.model)\n\t\t} : void 0),\n\t\trelationsByName: collectRelationLines(ref, index)\n\t};\n}\nfunction renderMember(memberName, lines, hasOwner) {\n\tconst entries = [...lines.relationsByName];\n\tconst joinlessLines = entries.filter(([, r]) => !r.hasJoin).map(([, r]) => r.line);\n\tconst joinedLines = entries.filter(([, r]) => r.hasJoin).map(([, r]) => r.line);\n\tconst relationNames = entries.filter(([, r]) => r.hasJoin).map(([name]) => name);\n\tconst phantom = relationNames.length > 0 ? relationNames.map((name) => serializeValue(name)).join(\" | \") : \"never\";\n\treturn ` export type ${memberName} = {\\n${[\n\t\t...lines.fieldsByName.values(),\n\t\t...joinlessLines,\n\t\t...joinedLines,\n\t\t...hasOwner ? [] : [`readonly [RelationKeys]?: ${phantom};`]\n\t].map((line) => ` ${line}`).join(\"\\n\")}\\n };`;\n}\nfunction namespaceModelsOf(contract) {\n\treturn Object.entries(contract.domain.namespaces).map(([namespaceId, ns]) => ({\n\t\tnamespaceId,\n\t\tmodels: Object.entries(ns.models).map(([modelName, model]) => ({\n\t\t\tnamespaceId,\n\t\t\tmodelName,\n\t\t\tmodel\n\t\t}))\n\t}));\n}\nfunction generateModelTypesBlock(contract, resolvers, supportsNamespaces) {\n\tconst memberNameOf = supportsNamespaces ? namespacedMemberName : bareMemberName;\n\tconst namespaces = namespaceModelsOf(contract);\n\tconst index = {\n\t\tnamespaces,\n\t\tmemberNameOf\n\t};\n\tconst claims = /* @__PURE__ */ new Map();\n\tfor (const ns of namespaces) for (const ref of ns.models) claimMemberName(claims, memberNameOf(ns.namespaceId, ref.modelName), `${ns.namespaceId}.${ref.modelName}`);\n\tfor (const ns of namespaces) for (const ref of ns.models) {\n\t\tif (!isPolymorphicBase(ref.model)) continue;\n\t\tclaimMemberName(claims, memberNameOf(ns.namespaceId, `Any${ref.modelName}`), `${ns.namespaceId}.Any<${ref.modelName}>`);\n\t}\n\tconst members = [];\n\tconst constantEntries = [];\n\tfor (const ns of namespaces) {\n\t\tconst keys = [];\n\t\tfor (const ref of ns.models) {\n\t\t\tconst memberName = memberNameOf(ns.namespaceId, ref.modelName);\n\t\t\tmembers.push(renderMember(memberName, memberLines(ref, index, resolvers), ref.model.owner !== void 0));\n\t\t\tkeys.push(`${serializeObjectKey(ref.modelName)}: Models.${memberName};`);\n\t\t}\n\t\tfor (const ref of ns.models) {\n\t\t\tif (!isPolymorphicBase(ref.model)) continue;\n\t\t\tconst unionName = memberNameOf(ns.namespaceId, `Any${ref.modelName}`);\n\t\t\tconst variantMembers = Object.keys(ref.model.variants ?? {}).map((variantName) => {\n\t\t\t\tconst variant = requireVariant(namespaces, ref, variantName);\n\t\t\t\treturn memberNameOf(variant.namespaceId, variant.modelName);\n\t\t\t});\n\t\t\tmembers.push(` export type ${unionName} = ${variantMembers.length > 0 ? variantMembers.join(\" | \") : \"never\"};`);\n\t\t\tkeys.push(`${serializeObjectKey(`Any${ref.modelName}`)}: Models.${unionName};`);\n\t\t}\n\t\tif (!supportsNamespaces) {\n\t\t\tconstantEntries.push(...keys.map((key) => ` ${key}`));\n\t\t\tcontinue;\n\t\t}\n\t\tconst nsKey = serializeObjectKey(ns.namespaceId);\n\t\tconst nested = keys.map((key) => ` ${key}`).join(\"\\n\");\n\t\tconstantEntries.push(keys.length > 0 ? ` ${nsKey}: {\\n${nested}\\n };` : ` ${nsKey}: {};`);\n\t}\n\treturn `${members.length > 0 ? `export namespace Models {\\n${members.join(\"\\n\")}\\n}` : \"export namespace Models {}\"}\\n\\n${`export declare const models: {\\n${constantEntries.join(\"\\n\")}\\n};`}`;\n}\n//#endregion\n//#region src/generate-contract-dts.ts\nfunction generateEnumBlockType(enums) {\n\treturn `{ ${Object.entries(enums).map(([name, entry]) => {\n\t\tconst membersType = `readonly [${entry.members.map((m) => `{ readonly name: ${serializeValue(m.name)}; readonly value: ${serializeValue(m.value)} }`).join(\", \")}]`;\n\t\treturn `readonly ${serializeObjectKey(name)}: { readonly codecId: ${serializeValue(entry.codecId)}; readonly members: ${membersType} }`;\n\t}).join(\"; \")} }`;\n}\nfunction generateContractDts(contract, emitter, codecTypeImports, hashes, options, codecLookup, resolveImportSpecifier = keepInternalSpecifiers) {\n\tconst allImports = [...codecTypeImports];\n\tif (options?.queryOperationTypeImports) allImports.push(...options.queryOperationTypeImports);\n\tconst importLines = generateImportLines(deduplicateImports(allImports), resolveImportSpecifier);\n\tconst familyImportLines = emitter.getFamilyImports(resolveImportSpecifier);\n\tconst hashAliases = generateHashTypeAliases(hashes);\n\tconst codecTypes = generateCodecTypeIntersection(codecTypeImports, \"CodecTypes\");\n\tconst familyTypeAliases = emitter.getFamilyTypeAliases(options);\n\tconst typeMapsExpr = emitter.getTypeMapsExpression();\n\tconst storageType = emitter.generateStorageType(contract, \"StorageHash\");\n\tconst namespaceEntries = Object.entries(contract.domain.namespaces);\n\tif (namespaceEntries.length === 0) throw emitterError(\"CONTRACT.NAMESPACE_INVALID\", \"domain has no namespaces\", { meta: { reason: \"no-domain-namespaces\" } });\n\tfor (const [nsId, ns] of namespaceEntries) if (ns === void 0) throw new InternalError(`domain namespace \"${nsId}\" is not present on the contract`);\n\tconst rootsType = generateRootsType(contract.roots);\n\tconst flatValueObjects = {};\n\tfor (const [, ns] of namespaceEntries) for (const [voName, vo] of Object.entries(blindCast(ns.valueObjects ?? {}))) if (!(voName in flatValueObjects)) flatValueObjects[voName] = vo;\n\tconst valueObjects = Object.keys(flatValueObjects).length > 0 ? flatValueObjects : void 0;\n\tconst valueObjectTypeAliases = generateValueObjectTypeAliases(valueObjects, codecLookup);\n\tconst valueObjectsDescriptor = generateValueObjectsDescriptorType(valueObjects);\n\tconst domainNamespacesType = namespaceEntries.map(([nsId, ns]) => {\n\t\tconst nsModels = ns.models;\n\t\tconst nsModelsType = generateModelsType(nsModels, (name, model) => emitter.generateModelStorageType(name, model));\n\t\tconst nsValueObjects = blindCast(ns.valueObjects);\n\t\tconst nsValueObjectsDescriptor = nsValueObjects !== void 0 && Object.keys(nsValueObjects).length > 0 ? generateValueObjectsDescriptorType(nsValueObjects) : void 0;\n\t\tconst nsEnums = blindCast(ns.enum);\n\t\treturn [\n\t\t\tnsId,\n\t\t\tnsModelsType,\n\t\t\tnsValueObjectsDescriptor,\n\t\t\tnsEnums !== void 0 && Object.keys(nsEnums).length > 0 ? generateEnumBlockType(nsEnums) : void 0\n\t\t];\n\t}).map(([nsId, nsModelsType, nsValueObjectsDescriptor, nsEnumBlock]) => {\n\t\tconst voLine = nsValueObjectsDescriptor !== void 0 ? `\\n readonly valueObjects: ${nsValueObjectsDescriptor};` : \"\";\n\t\tconst enumLine = nsEnumBlock !== void 0 ? `\\n readonly enum: ${nsEnumBlock};` : \"\";\n\t\treturn ` readonly ${serializeObjectKey(nsId)}: {\\n readonly models: ${nsModelsType};${voLine}${enumLine}\\n }`;\n\t}).join(\";\\n\");\n\tconst executionClause = contract.execution !== void 0 ? `\\n readonly execution: ${serializeExecutionType(contract.execution)};` : \"\";\n\tconst resolveFieldTypeParams = emitter.resolveFieldTypeParams ? (modelName, fieldName, model) => emitter.resolveFieldTypeParams?.(modelName, fieldName, model, contract) : void 0;\n\tconst resolveFieldValueSet = emitter.resolveFieldValueSet ? (modelName, fieldName, model) => emitter.resolveFieldValueSet?.(modelName, fieldName, model, contract) : void 0;\n\tconst fieldTypesMaps = generateFieldTypesMapsByNamespace(namespaceEntries.map(([nsId, ns]) => [nsId, ns.models]), codecLookup, resolveFieldTypeParams, resolveFieldValueSet);\n\tconst extraTypeExports = emitter.getStorageTypeExports?.(contract, codecLookup);\n\tconst contractWrapper = emitter.getContractWrapper(\"ContractBase\", \"TypeMaps\");\n\tconst modelTypesBlock = generateModelTypesBlock(contract, {\n\t\tcodecLookup,\n\t\tresolveFieldTypeParams,\n\t\tresolveFieldValueSet\n\t}, options?.supportsNamespaces ?? true);\n\treturn `// ⚠️ GENERATED FILE - DO NOT EDIT\n// This file is automatically generated by 'prisma contract emit'.\n// To regenerate, run: prisma contract emit\n${importLines.join(\"\\n\")}\n\n${familyImportLines.join(\"\\n\")}\nimport type {\n Contract as ContractType,\n ExecutionHashBase,\n NamespaceId,\n ProfileHashBase,\n StorageHashBase,\n} from '${resolveImportSpecifier(\"@internal/contract/types\")}';\n\n${hashAliases}\n\nexport type CodecTypes = ${codecTypes};\n${familyTypeAliases}\n${valueObjectTypeAliases}\nexport type FieldOutputTypes = ${fieldTypesMaps.output};\nexport type FieldInputTypes = ${fieldTypesMaps.input};\n${extraTypeExports ? `${extraTypeExports}\\n` : \"\"}\n${modelTypesBlock}\n\nexport type TypeMaps = ${typeMapsExpr};\n\ntype ContractBase = Omit<\n ContractType<${storageType}>,\n 'roots' | 'domain'\n> & {\n readonly target: ${serializeValue(contract.target)};\n readonly targetFamily: ${serializeValue(contract.targetFamily)};\n readonly roots: ${rootsType};\n readonly domain: {\n readonly namespaces: {\n${domainNamespacesType};\n };\n };\n readonly capabilities: ${serializeValue(contract.capabilities)};\n readonly extensions: ${serializeValue(contract.extensions)};${executionClause}\n readonly meta: ${serializeValue(contract.meta)};\n ${valueObjects ? `readonly valueObjects: ${valueObjectsDescriptor};` : \"\"}\n readonly profileHash: ProfileHash;\n};\n\n${contractWrapper}\n`;\n}\n//#endregion\n//#region src/require-relation-nullability.ts\n/**\n* The emitter only ever consumes a freshly authored contract, so every same-space to-one relation\n* must already state whether it is nullable. Hydration of an on-disk contract derives a missing\n* flag instead; that path never reaches here.\n*/\nfunction requireToOneRelationNullability(contract) {\n\tfor (const [namespaceId, namespace] of Object.entries(contract.domain.namespaces)) for (const [modelName, model] of Object.entries(namespace.models)) for (const [relationName, relation] of Object.entries(model.relations ?? {})) {\n\t\tif (!(\"on\" in relation && (relation.cardinality === \"1:1\" || relation.cardinality === \"N:1\") && relation.to.space === void 0) || typeof relation.nullable === \"boolean\") continue;\n\t\tthrow emitterError(\"CONTRACT.RELATION_INVALID\", `Relation \"${relationName}\" on model \"${namespaceId}:${modelName}\" is a ${relation.cardinality} relation and must carry a boolean \"nullable\"`, {\n\t\t\twhy: \"contract.d.ts types a to-one relation as nullable or required from this flag, and the authoring surfaces always set it.\",\n\t\t\tfix: \"Author the contract through PSL or the contract builder, which derive the flag from the local fields the relation joins on.\",\n\t\t\tmeta: {\n\t\t\t\tmodelName,\n\t\t\t\trelationName,\n\t\t\t\treason: \"to-one-nullability-missing\"\n\t\t\t}\n\t\t});\n\t}\n}\n//#endregion\n//#region src/emit.ts\nconst SCHEMA_VERSION = \"1\";\nasync function emit(contract, stack, targetFamily, options) {\n\tif (options.outputJsonPath !== void 0) getEmittedArtifactPaths(options.outputJsonPath);\n\trequireToOneRelationNullability(contract);\n\tconst { codecTypeImports, queryOperationTypeImports, aggregateDescriptors, codecDescriptors } = stack;\n\tconst { storageHash } = contract.storage;\n\tconst executionHash = contract.execution?.executionHash;\n\tconst { profileHash } = contract;\n\tconst canonicalized = canonicalizeContractToObject(contract, {\n\t\tschemaVersion: SCHEMA_VERSION,\n\t\tserializeContract: options.serializeContract,\n\t\t...ifDefined(\"shouldPreserveEmpty\", options.shouldPreserveEmpty),\n\t\t...ifDefined(\"sortStorage\", options.sortStorage)\n\t});\n\tconst contractJsonString = JSON.stringify({\n\t\t...canonicalized,\n\t\t_generated: {\n\t\t\twarning: \"⚠️ GENERATED FILE - DO NOT EDIT\",\n\t\t\tmessage: \"This file is automatically generated by \\\"prisma contract emit\\\".\",\n\t\t\tregenerate: \"To regenerate, run: prisma contract emit\"\n\t\t}\n\t}, null, 2);\n\tconst generateOptions = {\n\t\t...ifDefined(\"queryOperationTypeImports\", queryOperationTypeImports),\n\t\t...ifDefined(\"aggregateDescriptors\", aggregateDescriptors),\n\t\t...ifDefined(\"codecDescriptors\", codecDescriptors),\n\t\t...ifDefined(\"supportsNamespaces\", options.supportsNamespaces)\n\t};\n\tconst contractTypeHashes = {\n\t\tstorageHash,\n\t\t...ifDefined(\"executionHash\", executionHash),\n\t\tprofileHash\n\t};\n\treturn {\n\t\tcontractJson: contractJsonString,\n\t\tcontractDts: await format(generateContractDts(options.deserializeContract === void 0 ? contract : options.deserializeContract(canonicalized), targetFamily, codecTypeImports ?? [], contractTypeHashes, generateOptions, stack.codecLookup, options.resolveImportSpecifier ?? keepInternalSpecifiers), {\n\t\t\tparser: \"typescript\",\n\t\t\tsingleQuote: true,\n\t\t\tsemi: true,\n\t\t\tprintWidth: 100\n\t\t}),\n\t\tstorageHash,\n\t\t...ifDefined(\"executionHash\", executionHash),\n\t\tprofileHash\n\t};\n}\n//#endregion\nexport { generateContractDts as n, getEmittedArtifactPaths as r, emit as t };\n\n//# sourceMappingURL=exports-DkJil2JJ.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"exports-DI1kMms6--e9LdT9A.mjs","names":[],"sources":["../../../../1-framework/3-tooling/emitter/dist/exports-DI1kMms6.mjs"],"sourcesContent":["import { D as serializeValue, E as serializeObjectKey, O as emitterError, _ as generateValueObjectTypeAliases, c as generateFieldTypesMapsByNamespace, h as generateRootsType, l as generateHashTypeAliases, m as generateModelsType, r as generateCodecTypeIntersection, t as deduplicateImports, u as generateImportLines, v as generateValueObjectsDescriptorType, w as serializeExecutionType, x as resolveModelFieldType } from \"./domain-type-generation-BVFTIUm6.mjs\";\nimport { keepInternalSpecifiers } from \"@internal/framework-components/emission\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { canonicalizeContractToObject } from \"@internal/contract/hashing\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { format } from \"prettier\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\n//#region src/artifact-paths.ts\nconst JSON_EXTENSION = \".json\";\nfunction getEmittedArtifactPaths(outputJsonPath) {\n\tif (!outputJsonPath.endsWith(JSON_EXTENSION)) throw emitterError(\"CONFIG.VALIDATION_FAILED\", \"Contract output path must end with .json\", { meta: {\n\t\tfield: \"contract.output\",\n\t\toutputJsonPath\n\t} });\n\treturn {\n\t\tjsonPath: outputJsonPath,\n\t\tdtsPath: `${outputJsonPath.slice(0, -5)}.d.ts`\n\t};\n}\n//#endregion\n//#region src/model-types-emission.ts\nconst TYPESCRIPT_IDENTIFIER = /^[$A-Z_a-z][$\\w]*$/;\nfunction namespacedMemberName(namespaceId, modelName) {\n\treturn `${namespaceId === UNBOUND_NAMESPACE_ID ? \"unbound\" : namespaceId}_${modelName}`;\n}\nfunction bareMemberName(_namespaceId, modelName) {\n\treturn modelName;\n}\nfunction claimMemberName(claims, memberName, source) {\n\tif (!TYPESCRIPT_IDENTIFIER.test(memberName)) throw emitterError(\"CONTRACT.MODEL_TYPE_NAME_INVALID\", `Emitted model type name \"${memberName}\" (from ${source}) is not a TypeScript identifier`, {\n\t\twhy: \"Every entry in the emitted Models namespace is declared as `export type <name>`, so the name must be a TypeScript identifier.\",\n\t\tfix: \"Rename the namespace or model so that <namespace>_<Model> contains only letters, digits, `$`, and `_`, and does not start with a digit.\",\n\t\tmeta: {\n\t\t\tmemberName,\n\t\t\tsource\n\t\t}\n\t});\n\tconst existing = claims.get(memberName);\n\tif (existing !== void 0) throw emitterError(\"CONTRACT.MODEL_TYPE_NAME_COLLISION\", `Emitted model type name \"${memberName}\" is produced by both ${existing} and ${source}`, {\n\t\twhy: \"Every entry in the emitted Models namespace needs a distinct name, formed as <namespace>_<Model>.\",\n\t\tfix: \"Rename one of the models or namespaces so the two names differ.\",\n\t\tmeta: {\n\t\t\tmemberName,\n\t\t\tsources: [existing, source]\n\t\t}\n\t});\n\tclaims.set(memberName, source);\n}\nfunction isPolymorphicBase(model) {\n\treturn model.discriminator !== void 0 && model.variants !== void 0;\n}\nfunction findModelByName(namespaces, namespaceId, modelName) {\n\treturn namespaces.find((ns) => ns.namespaceId === namespaceId)?.models.find((m) => m.modelName === modelName);\n}\nfunction findModel(namespaces, ref) {\n\treturn findModelByName(namespaces, ref.namespace, ref.model);\n}\nfunction requireRelationTarget(namespaces, owner, relationName, ref) {\n\tconst target = findModel(namespaces, ref);\n\tif (target !== void 0) return target;\n\tconst ownerSource = `${owner.namespaceId}.${owner.modelName}`;\n\tthrow emitterError(\"CONTRACT.MODEL_RELATION_TARGET_MISSING\", `Relation \"${relationName}\" on ${ownerSource} targets ${ref.namespace}.${ref.model}, which is not in the contract`, {\n\t\twhy: \"A same-space relation must point at a model the contract declares; only cross-space relations may reference models outside it.\",\n\t\tfix: \"Declare the target model in the contract, or mark the relation as cross-space by giving its target a `space`.\",\n\t\tmeta: {\n\t\t\towner: ownerSource,\n\t\t\trelationName,\n\t\t\ttarget: {\n\t\t\t\tnamespaceId: ref.namespace,\n\t\t\t\tmodelName: ref.model\n\t\t\t}\n\t\t}\n\t});\n}\nfunction requireBase(namespaces, variant, base) {\n\tconst found = findModel(namespaces, base);\n\tif (found !== void 0) return found;\n\tconst variantSource = `${variant.namespaceId}.${variant.modelName}`;\n\tconst baseSource = `${base.namespace}.${base.model}`;\n\tthrow emitterError(\"CONTRACT.MODEL_BASE_MISSING\", `Model ${variantSource} names base ${baseSource}, which is not in the contract`, {\n\t\twhy: \"A variant's type is its base's fields plus its own, so the base must be a model the contract declares.\",\n\t\tfix: \"Declare the base model in the contract, or remove `base` from the variant.\",\n\t\tmeta: {\n\t\t\tvariant: variantSource,\n\t\t\tbase: baseSource\n\t\t}\n\t});\n}\nfunction requireVariant(namespaces, base, variantName) {\n\tconst variant = findModelByName(namespaces, base.namespaceId, variantName);\n\tif (variant !== void 0) return variant;\n\tconst baseSource = `${base.namespaceId}.${base.modelName}`;\n\tthrow emitterError(\"CONTRACT.MODEL_VARIANT_MISSING\", `Polymorphic base ${baseSource} names variant \"${variantName}\", which is not in the contract`, {\n\t\twhy: \"The Any<Base> union is the union of the variant model types, so every variant a base declares must be a model in the same namespace.\",\n\t\tfix: \"Declare the variant model in the same namespace as the base, or remove it from the base's variants.\",\n\t\tmeta: {\n\t\t\tbase: baseSource,\n\t\t\tvariantName\n\t\t}\n\t});\n}\nfunction collectFieldLines(ref, resolvers, discriminatorType) {\n\tconst lines = /* @__PURE__ */ new Map();\n\tfor (const [fieldName, field] of Object.entries(ref.model.fields)) {\n\t\tconst type = discriminatorType !== void 0 && fieldName === discriminatorType.field ? discriminatorType.type : resolveModelFieldType(ref.modelName, fieldName, field, ref.model, resolvers).output;\n\t\tlines.set(fieldName, `${serializeObjectKey(fieldName)}: ${type};`);\n\t}\n\treturn lines;\n}\nfunction hasJoin(relation) {\n\treturn \"on\" in relation && relation.on !== void 0;\n}\nfunction relationLine(owner, relationName, relation, index) {\n\tif (relation.to.space !== void 0) return void 0;\n\tconst target = requireRelationTarget(index.namespaces, owner, relationName, relation.to);\n\tconst targetMember = index.memberNameOf(target.namespaceId, isPolymorphicBase(target.model) ? `Any${target.modelName}` : target.modelName);\n\tconst key = serializeObjectKey(relationName);\n\tif (!hasJoin(relation)) return {\n\t\tline: `${key}: ${relation.cardinality === \"1:N\" ? `${targetMember}[]` : targetMember};`,\n\t\thasJoin: false\n\t};\n\tif (relation.cardinality === \"1:N\" || relation.cardinality === \"N:M\") return {\n\t\tline: `${key}: ${targetMember}[];`,\n\t\thasJoin: true\n\t};\n\treturn {\n\t\tline: `${key}: ${relation.nullable ? `${targetMember} | null` : targetMember};`,\n\t\thasJoin: true\n\t};\n}\nfunction collectRelationLines(ref, index) {\n\tconst lines = /* @__PURE__ */ new Map();\n\tfor (const [relationName, relation] of Object.entries(ref.model.relations)) {\n\t\tconst rendered = relationLine(ref, relationName, relation, index);\n\t\tif (rendered !== void 0) lines.set(relationName, rendered);\n\t}\n\treturn lines;\n}\nfunction discriminatorUnion(base) {\n\tconst values = Object.values(base.variants ?? {}).map((v) => serializeValue(v.value));\n\treturn values.length > 0 ? values.join(\" | \") : \"never\";\n}\nfunction memberLines(ref, index, resolvers) {\n\tconst base = ref.model.base !== void 0 ? requireBase(index.namespaces, ref, ref.model.base) : void 0;\n\tif (base !== void 0 && isPolymorphicBase(base.model)) {\n\t\tconst discriminatorField = base.model.discriminator?.field ?? \"\";\n\t\tconst variantValue = base.model.variants?.[ref.modelName]?.value;\n\t\tconst discriminatorType = {\n\t\t\tfield: discriminatorField,\n\t\t\ttype: variantValue !== void 0 ? serializeValue(variantValue) : discriminatorUnion(base.model)\n\t\t};\n\t\treturn {\n\t\t\tfieldsByName: new Map([...collectFieldLines(base, resolvers, discriminatorType), ...collectFieldLines(ref, resolvers, void 0)]),\n\t\t\trelationsByName: new Map([...collectRelationLines(base, index), ...collectRelationLines(ref, index)])\n\t\t};\n\t}\n\treturn {\n\t\tfieldsByName: collectFieldLines(ref, resolvers, isPolymorphicBase(ref.model) ? {\n\t\t\tfield: ref.model.discriminator?.field ?? \"\",\n\t\t\ttype: discriminatorUnion(ref.model)\n\t\t} : void 0),\n\t\trelationsByName: collectRelationLines(ref, index)\n\t};\n}\nfunction renderMember(memberName, lines, hasOwner) {\n\tconst entries = [...lines.relationsByName];\n\tconst joinlessLines = entries.filter(([, r]) => !r.hasJoin).map(([, r]) => r.line);\n\tconst joinedLines = entries.filter(([, r]) => r.hasJoin).map(([, r]) => r.line);\n\tconst relationNames = entries.filter(([, r]) => r.hasJoin).map(([name]) => name);\n\tconst phantom = relationNames.length > 0 ? relationNames.map((name) => serializeValue(name)).join(\" | \") : \"never\";\n\treturn ` export type ${memberName} = {\\n${[\n\t\t...lines.fieldsByName.values(),\n\t\t...joinlessLines,\n\t\t...joinedLines,\n\t\t...hasOwner ? [] : [`readonly [RelationKeys]?: ${phantom};`]\n\t].map((line) => ` ${line}`).join(\"\\n\")}\\n };`;\n}\nfunction namespaceModelsOf(contract) {\n\treturn Object.entries(contract.domain.namespaces).map(([namespaceId, ns]) => ({\n\t\tnamespaceId,\n\t\tmodels: Object.entries(ns.models).map(([modelName, model]) => ({\n\t\t\tnamespaceId,\n\t\t\tmodelName,\n\t\t\tmodel\n\t\t}))\n\t}));\n}\nfunction generateModelTypesBlock(contract, resolvers, supportsNamespaces) {\n\tconst memberNameOf = supportsNamespaces ? namespacedMemberName : bareMemberName;\n\tconst namespaces = namespaceModelsOf(contract);\n\tconst index = {\n\t\tnamespaces,\n\t\tmemberNameOf\n\t};\n\tconst claims = /* @__PURE__ */ new Map();\n\tfor (const ns of namespaces) for (const ref of ns.models) claimMemberName(claims, memberNameOf(ns.namespaceId, ref.modelName), `${ns.namespaceId}.${ref.modelName}`);\n\tfor (const ns of namespaces) for (const ref of ns.models) {\n\t\tif (!isPolymorphicBase(ref.model)) continue;\n\t\tclaimMemberName(claims, memberNameOf(ns.namespaceId, `Any${ref.modelName}`), `${ns.namespaceId}.Any<${ref.modelName}>`);\n\t}\n\tconst members = [];\n\tconst constantEntries = [];\n\tfor (const ns of namespaces) {\n\t\tconst keys = [];\n\t\tfor (const ref of ns.models) {\n\t\t\tconst memberName = memberNameOf(ns.namespaceId, ref.modelName);\n\t\t\tmembers.push(renderMember(memberName, memberLines(ref, index, resolvers), ref.model.owner !== void 0));\n\t\t\tkeys.push(`${serializeObjectKey(ref.modelName)}: Models.${memberName};`);\n\t\t}\n\t\tfor (const ref of ns.models) {\n\t\t\tif (!isPolymorphicBase(ref.model)) continue;\n\t\t\tconst unionName = memberNameOf(ns.namespaceId, `Any${ref.modelName}`);\n\t\t\tconst variantMembers = Object.keys(ref.model.variants ?? {}).map((variantName) => {\n\t\t\t\tconst variant = requireVariant(namespaces, ref, variantName);\n\t\t\t\treturn memberNameOf(variant.namespaceId, variant.modelName);\n\t\t\t});\n\t\t\tmembers.push(` export type ${unionName} = ${variantMembers.length > 0 ? variantMembers.join(\" | \") : \"never\"};`);\n\t\t\tkeys.push(`${serializeObjectKey(`Any${ref.modelName}`)}: Models.${unionName};`);\n\t\t}\n\t\tif (!supportsNamespaces) {\n\t\t\tconstantEntries.push(...keys.map((key) => ` ${key}`));\n\t\t\tcontinue;\n\t\t}\n\t\tconst nsKey = serializeObjectKey(ns.namespaceId);\n\t\tconst nested = keys.map((key) => ` ${key}`).join(\"\\n\");\n\t\tconstantEntries.push(keys.length > 0 ? ` ${nsKey}: {\\n${nested}\\n };` : ` ${nsKey}: {};`);\n\t}\n\treturn `${members.length > 0 ? `export namespace Models {\\n${members.join(\"\\n\")}\\n}` : \"export namespace Models {}\"}\\n\\n${`export declare const models: {\\n${constantEntries.join(\"\\n\")}\\n};`}`;\n}\n//#endregion\n//#region src/generate-contract-dts.ts\nfunction generateEnumBlockType(enums) {\n\treturn `{ ${Object.entries(enums).map(([name, entry]) => {\n\t\tconst membersType = `readonly [${entry.members.map((m) => `{ readonly name: ${serializeValue(m.name)}; readonly value: ${serializeValue(m.value)} }`).join(\", \")}]`;\n\t\treturn `readonly ${serializeObjectKey(name)}: { readonly codecId: ${serializeValue(entry.codecId)}; readonly members: ${membersType} }`;\n\t}).join(\"; \")} }`;\n}\nfunction generateContractDts(contract, emitter, codecTypeImports, hashes, options, codecLookup, resolveImportSpecifier = keepInternalSpecifiers) {\n\tconst allImports = [...codecTypeImports];\n\tif (options?.queryOperationTypeImports) allImports.push(...options.queryOperationTypeImports);\n\tconst importLines = generateImportLines(deduplicateImports(allImports), resolveImportSpecifier);\n\tconst familyImportLines = emitter.getFamilyImports(resolveImportSpecifier);\n\tconst hashAliases = generateHashTypeAliases(hashes);\n\tconst codecTypes = generateCodecTypeIntersection(codecTypeImports, \"CodecTypes\");\n\tconst familyTypeAliases = emitter.getFamilyTypeAliases(options);\n\tconst typeMapsExpr = emitter.getTypeMapsExpression();\n\tconst storageType = emitter.generateStorageType(contract, \"StorageHash\");\n\tconst namespaceEntries = Object.entries(contract.domain.namespaces);\n\tif (namespaceEntries.length === 0) throw emitterError(\"CONTRACT.NAMESPACE_INVALID\", \"domain has no namespaces\", { meta: { reason: \"no-domain-namespaces\" } });\n\tfor (const [nsId, ns] of namespaceEntries) if (ns === void 0) throw new InternalError(`domain namespace \"${nsId}\" is not present on the contract`);\n\tconst rootsType = generateRootsType(contract.roots);\n\tconst flatValueObjects = {};\n\tfor (const [, ns] of namespaceEntries) for (const [voName, vo] of Object.entries(blindCast(ns.valueObjects ?? {}))) if (!(voName in flatValueObjects)) flatValueObjects[voName] = vo;\n\tconst valueObjects = Object.keys(flatValueObjects).length > 0 ? flatValueObjects : void 0;\n\tconst valueObjectTypeAliases = generateValueObjectTypeAliases(valueObjects, codecLookup);\n\tconst valueObjectsDescriptor = generateValueObjectsDescriptorType(valueObjects);\n\tconst domainNamespacesType = namespaceEntries.map(([nsId, ns]) => {\n\t\tconst nsModels = ns.models;\n\t\tconst nsModelsType = generateModelsType(nsModels, (name, model) => emitter.generateModelStorageType(name, model));\n\t\tconst nsValueObjects = blindCast(ns.valueObjects);\n\t\tconst nsValueObjectsDescriptor = nsValueObjects !== void 0 && Object.keys(nsValueObjects).length > 0 ? generateValueObjectsDescriptorType(nsValueObjects) : void 0;\n\t\tconst nsEnums = blindCast(ns.enum);\n\t\treturn [\n\t\t\tnsId,\n\t\t\tnsModelsType,\n\t\t\tnsValueObjectsDescriptor,\n\t\t\tnsEnums !== void 0 && Object.keys(nsEnums).length > 0 ? generateEnumBlockType(nsEnums) : void 0\n\t\t];\n\t}).map(([nsId, nsModelsType, nsValueObjectsDescriptor, nsEnumBlock]) => {\n\t\tconst voLine = nsValueObjectsDescriptor !== void 0 ? `\\n readonly valueObjects: ${nsValueObjectsDescriptor};` : \"\";\n\t\tconst enumLine = nsEnumBlock !== void 0 ? `\\n readonly enum: ${nsEnumBlock};` : \"\";\n\t\treturn ` readonly ${serializeObjectKey(nsId)}: {\\n readonly models: ${nsModelsType};${voLine}${enumLine}\\n }`;\n\t}).join(\";\\n\");\n\tconst executionClause = contract.execution !== void 0 ? `\\n readonly execution: ${serializeExecutionType(contract.execution)};` : \"\";\n\tconst resolveFieldTypeParams = emitter.resolveFieldTypeParams ? (modelName, fieldName, model) => emitter.resolveFieldTypeParams?.(modelName, fieldName, model, contract) : void 0;\n\tconst resolveFieldValueSet = emitter.resolveFieldValueSet ? (modelName, fieldName, model) => emitter.resolveFieldValueSet?.(modelName, fieldName, model, contract) : void 0;\n\tconst fieldTypesMaps = generateFieldTypesMapsByNamespace(namespaceEntries.map(([nsId, ns]) => [nsId, ns.models]), codecLookup, resolveFieldTypeParams, resolveFieldValueSet);\n\tconst extraTypeExports = emitter.getStorageTypeExports?.(contract, codecLookup);\n\tconst contractWrapper = emitter.getContractWrapper(\"ContractBase\", \"TypeMaps\");\n\tconst modelTypesBlock = generateModelTypesBlock(contract, {\n\t\tcodecLookup,\n\t\tresolveFieldTypeParams,\n\t\tresolveFieldValueSet\n\t}, options?.supportsNamespaces ?? true);\n\treturn `// ⚠️ GENERATED FILE - DO NOT EDIT\n// This file is automatically generated by 'prisma contract emit'.\n// To regenerate, run: prisma contract emit\n${importLines.join(\"\\n\")}\n\n${familyImportLines.join(\"\\n\")}\nimport type {\n Contract as ContractType,\n ExecutionHashBase,\n NamespaceId,\n ProfileHashBase,\n StorageHashBase,\n} from '${resolveImportSpecifier(\"@internal/contract/types\")}';\n\n${hashAliases}\n\nexport type CodecTypes = ${codecTypes};\n${familyTypeAliases}\n${valueObjectTypeAliases}\nexport type FieldOutputTypes = ${fieldTypesMaps.output};\nexport type FieldInputTypes = ${fieldTypesMaps.input};\n${extraTypeExports ? `${extraTypeExports}\\n` : \"\"}\n${modelTypesBlock}\n\nexport type TypeMaps = ${typeMapsExpr};\n\ntype ContractBase = Omit<\n ContractType<${storageType}>,\n 'roots' | 'domain'\n> & {\n readonly target: ${serializeValue(contract.target)};\n readonly targetFamily: ${serializeValue(contract.targetFamily)};\n readonly roots: ${rootsType};\n readonly domain: {\n readonly namespaces: {\n${domainNamespacesType};\n };\n };\n readonly capabilities: ${serializeValue(contract.capabilities)};\n readonly extensions: ${serializeValue(contract.extensions)};${executionClause}\n readonly meta: ${serializeValue(contract.meta)};\n ${valueObjects ? `readonly valueObjects: ${valueObjectsDescriptor};` : \"\"}\n readonly profileHash: ProfileHash;\n};\n\n${contractWrapper}\n`;\n}\n//#endregion\n//#region src/require-relation-nullability.ts\n/**\n* The emitter only ever consumes a freshly authored contract, so every same-space to-one relation\n* must already state whether it is nullable. Hydration of an on-disk contract derives a missing\n* flag instead; that path never reaches here.\n*/\nfunction requireToOneRelationNullability(contract) {\n\tfor (const [namespaceId, namespace] of Object.entries(contract.domain.namespaces)) for (const [modelName, model] of Object.entries(namespace.models)) for (const [relationName, relation] of Object.entries(model.relations ?? {})) {\n\t\tif (!(\"on\" in relation && (relation.cardinality === \"1:1\" || relation.cardinality === \"N:1\") && relation.to.space === void 0) || typeof relation.nullable === \"boolean\") continue;\n\t\tthrow emitterError(\"CONTRACT.RELATION_INVALID\", `Relation \"${relationName}\" on model \"${namespaceId}:${modelName}\" is a ${relation.cardinality} relation and must carry a boolean \"nullable\"`, {\n\t\t\twhy: \"contract.d.ts types a to-one relation as nullable or required from this flag, and the authoring surfaces always set it.\",\n\t\t\tfix: \"Author the contract through PSL or the contract builder, which derive the flag from the local fields the relation joins on.\",\n\t\t\tmeta: {\n\t\t\t\tmodelName,\n\t\t\t\trelationName,\n\t\t\t\treason: \"to-one-nullability-missing\"\n\t\t\t}\n\t\t});\n\t}\n}\n//#endregion\n//#region src/emit.ts\nconst SCHEMA_VERSION = \"1\";\nasync function emit(contract, stack, targetFamily, options) {\n\tif (options.outputJsonPath !== void 0) getEmittedArtifactPaths(options.outputJsonPath);\n\trequireToOneRelationNullability(contract);\n\tconst { codecTypeImports, queryOperationTypeImports, aggregateDescriptors, codecDescriptors } = stack;\n\tconst { storageHash } = contract.storage;\n\tconst executionHash = contract.execution?.executionHash;\n\tconst { profileHash } = contract;\n\tconst canonicalized = canonicalizeContractToObject(contract, {\n\t\tschemaVersion: SCHEMA_VERSION,\n\t\tserializeContract: options.serializeContract,\n\t\t...ifDefined(\"shouldPreserveEmpty\", options.shouldPreserveEmpty),\n\t\t...ifDefined(\"sortStorage\", options.sortStorage)\n\t});\n\tconst contractJsonString = JSON.stringify({\n\t\t...canonicalized,\n\t\t_generated: {\n\t\t\twarning: \"⚠️ GENERATED FILE - DO NOT EDIT\",\n\t\t\tmessage: \"This file is automatically generated by \\\"prisma contract emit\\\".\",\n\t\t\tregenerate: \"To regenerate, run: prisma contract emit\"\n\t\t}\n\t}, null, 2);\n\tconst generateOptions = {\n\t\t...ifDefined(\"queryOperationTypeImports\", queryOperationTypeImports),\n\t\t...ifDefined(\"aggregateDescriptors\", aggregateDescriptors),\n\t\t...ifDefined(\"codecDescriptors\", codecDescriptors),\n\t\t...ifDefined(\"supportsNamespaces\", options.supportsNamespaces)\n\t};\n\tconst contractTypeHashes = {\n\t\tstorageHash,\n\t\t...ifDefined(\"executionHash\", executionHash),\n\t\tprofileHash\n\t};\n\treturn {\n\t\tcontractJson: contractJsonString,\n\t\tcontractDts: await format(generateContractDts(options.deserializeContract(canonicalized), targetFamily, codecTypeImports ?? [], contractTypeHashes, generateOptions, stack.codecLookup, options.resolveImportSpecifier ?? keepInternalSpecifiers), {\n\t\t\tparser: \"typescript\",\n\t\t\tsingleQuote: true,\n\t\t\tsemi: true,\n\t\t\tprintWidth: 100\n\t\t}),\n\t\tstorageHash,\n\t\t...ifDefined(\"executionHash\", executionHash),\n\t\tprofileHash\n\t};\n}\n//#endregion\nexport { generateContractDts as n, getEmittedArtifactPaths as r, emit as t };\n\n//# sourceMappingURL=exports-DI1kMms6.mjs.map"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { r as getEmittedArtifactPaths } from "./exports-DkJil2JJ-6p86L2r4.mjs";
1
+ import { r as getEmittedArtifactPaths } from "./exports-DI1kMms6--e9LdT9A.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import { realpathSync } from "node:fs";
4
4
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
@@ -218,4 +218,4 @@ async function loadConfigForFile(filePath) {
218
218
  //#endregion
219
219
  export { loadConfigForSections as a, loadConfigForFile as i, findNearestConfigPathForFile as n, requireConfigSections as o, loadConfig as r, finalizeConfig as t };
220
220
 
221
- //# sourceMappingURL=exports-Do7_pH8Y.mjs.map
221
+ //# sourceMappingURL=exports-DJ4RhlW4.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"exports-Do7_pH8Y.mjs","names":[],"sources":["../../../../1-framework/3-tooling/config-loader/dist/exports/index.mjs"],"sourcesContent":["import { createRequire } from \"node:module\";\nimport { normalizeContractConfig } from \"@internal/config/config-types\";\nimport { dirname, join, resolve } from \"pathe\";\nimport { realpathSync } from \"node:fs\";\nimport { access } from \"node:fs/promises\";\nimport { pathToFileURL } from \"node:url\";\nimport { collectConfigIssues } from \"@internal/config/config-validation\";\nimport { getEmittedArtifactPaths } from \"@internal/emitter\";\nimport { CliStructuredError, errorConfigEvaluationFailed, errorConfigFileNotFound, errorConfigValidation, errorConfigVersionMarkerMissing } from \"@internal/errors/control\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { notOk, ok } from \"@internal/utils/result\";\nimport { isStructuredError } from \"@internal/utils/structured-error\";\n//#region src/finalize-config.ts\nfunction finalizeContractSource(source, configDir) {\n\tconst resolvedInputs = source.inputs?.map((input) => resolve(configDir, input));\n\tif (resolvedInputs === void 0) return source;\n\treturn {\n\t\t...source,\n\t\tinputs: resolvedInputs\n\t};\n}\n/** Normalizes a contract section and resolves its paths against `configDir`. */\nfunction finalizeContractConfig(contract, configDir) {\n\tconst normalized = normalizeContractConfig(contract);\n\treturn {\n\t\t...normalized,\n\t\tsource: finalizeContractSource(normalized.source, configDir),\n\t\toutput: resolve(configDir, normalized.output)\n\t};\n}\nconst DEFAULT_MIGRATIONS_DIR = \"migrations\";\n/**\n* Resolves the migrations directory against `configDir`, which is what `migrations.dir` is\n* documented to be relative to. The default is applied here too, so no caller re-derives it\n* against a different base — a command run from one directory with `--config` naming a project in\n* another would otherwise read the wrong `migrations/`.\n*/\nfunction finalizeMigrationsConfig(migrations, configDir) {\n\treturn {\n\t\t...migrations,\n\t\tdir: resolve(configDir, migrations?.dir ?? DEFAULT_MIGRATIONS_DIR)\n\t};\n}\nfunction finalizeConfig(config, configDir) {\n\treturn {\n\t\t...config,\n\t\t...config.contract ? { contract: finalizeContractConfig(config.contract, configDir) } : void 0,\n\t\tmigrations: finalizeMigrationsConfig(config.migrations, configDir)\n\t};\n}\n//#endregion\n//#region src/load.ts\nconst CONFIG_FILENAME = \"prisma.config.ts\";\nasync function findNearestConfigPathForFile(filePath) {\n\tlet current = dirname(resolve(process.cwd(), filePath));\n\twhile (true) {\n\t\tconst candidate = join(current, CONFIG_FILENAME);\n\t\tif (await fileExists(candidate)) return candidate;\n\t\tconst parent = dirname(current);\n\t\tif (parent === current) return;\n\t\tcurrent = parent;\n\t}\n}\nasync function fileExists(path) {\n\ttry {\n\t\tawait access(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\nfunction isRecord(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\nfunction collectArtifactCollisionDiagnostics(contract) {\n\tconst inputs = contract.source.inputs;\n\tconst output = contract.output;\n\tif (inputs === void 0 || output === void 0) return [];\n\tlet emittedArtifactPaths;\n\ttry {\n\t\temittedArtifactPaths = getEmittedArtifactPaths(output);\n\t} catch (error) {\n\t\treturn [errorConfigValidation(\"contract.output\", {\n\t\t\t/* v8 ignore next -- getEmittedArtifactPaths only ever throws an Error */\n\t\t\twhy: error instanceof Error ? error.message : String(error),\n\t\t\tsection: \"contract\"\n\t\t})];\n\t}\n\tconst emittedPaths = /* @__PURE__ */ new Set([emittedArtifactPaths.jsonPath, emittedArtifactPaths.dtsPath]);\n\tif (inputs.some((input) => emittedPaths.has(input))) return [errorConfigValidation(\"contract.source.inputs[]\", {\n\t\twhy: \"Config.contract.source.inputs must not include emitted artifact paths derived from contract.output\",\n\t\tsection: \"contract\"\n\t})];\n\treturn [];\n}\nfunction buildLoadedConfig(rawConfig, configDir) {\n\tconst issues = collectConfigIssues(rawConfig);\n\tconst diagnostics = issues.map((issue) => errorConfigValidation(issue.field, {\n\t\twhy: issue.message,\n\t\tsection: issue.section\n\t}));\n\tconst raw = blindCast(rawConfig);\n\tconst config = issues.some((issue) => issue.section === \"migrations\") ? raw : {\n\t\t...raw,\n\t\tmigrations: finalizeMigrationsConfig(raw.migrations, configDir)\n\t};\n\tif (config.contract === void 0 || issues.some((issue) => issue.section === \"contract\")) return {\n\t\tconfig,\n\t\tdiagnostics\n\t};\n\tconst contract = finalizeContractConfig(config.contract, configDir);\n\tdiagnostics.push(...collectArtifactCollisionDiagnostics(contract));\n\treturn {\n\t\tconfig: {\n\t\t\t...config,\n\t\t\tcontract\n\t\t},\n\t\tdiagnostics\n\t};\n}\nfunction toConfigLoadFailure(error, configPath) {\n\tif (CliStructuredError.is(error)) return error;\n\tconst resolvedPath = configPath ? resolve(process.cwd(), configPath) : void 0;\n\tif (isStructuredError(error)) return new CliStructuredError(error.code, error.message, {\n\t\t...ifDefined(\"why\", error.why),\n\t\t...ifDefined(\"fix\", error.fix),\n\t\t...ifDefined(\"where\", error.where),\n\t\t...ifDefined(\"meta\", error.meta),\n\t\tcause: error\n\t});\n\tif (error instanceof Error) return errorConfigEvaluationFailed(resolvedPath, {\n\t\twhy: error.message,\n\t\tcause: error\n\t});\n\treturn errorConfigEvaluationFailed(resolvedPath, { why: String(error) });\n}\n/**\n* Loads and finalizes the Prisma 8 config.\n*\n* Failures that prevent evaluation entirely — missing file, module that does\n* not evaluate (`CONFIG.FILE_NOT_FOUND`, `CONFIG.EVALUATION_FAILED`) — are the\n* `Result` failure. Structural problems inside an evaluated config do not\n* fail the load: they are returned as section-tagged diagnostics so commands\n* fail only on the sections they read (via {@link requireConfigSections}).\n*/\n/**\n* c12 is resolved to its real on-disk entry before importing: jiti (inside\n* c12) resolves its own transitive imports from the importing file's location,\n* and a symlinked install (pnpm) would otherwise anchor them somewhere the\n* packages are not. Importing at the real location keeps every transitive\n* resolution working.\n*/\nasync function importC12() {\n\treturn await import(pathToFileURL(realpathSync(createRequire(import.meta.url).resolve(\"c12\"))).href);\n}\nasync function loadConfig(configPath, options) {\n\tconst cwd = options?.cwd ?? process.cwd();\n\tconst resolvedConfigPath = configPath ? resolve(cwd, configPath) : void 0;\n\tconst configCwd = resolvedConfigPath ? dirname(resolvedConfigPath) : cwd;\n\tlet result;\n\ttry {\n\t\tresult = await (await importC12()).loadConfig({\n\t\t\tname: \"prisma\",\n\t\t\t...ifDefined(\"configFile\", resolvedConfigPath),\n\t\t\tcwd: configCwd\n\t\t});\n\t} catch (error) {\n\t\treturn notOk(toConfigLoadFailure(error, configPath));\n\t}\n\tif (resolvedConfigPath && result.configFile !== resolvedConfigPath) return notOk(errorConfigFileNotFound(resolvedConfigPath));\n\tif (!result.config || Object.keys(result.config).length === 0) return notOk(errorConfigFileNotFound(result.configFile || resolvedConfigPath || configPath));\n\t/* v8 ignore next -- @preserve */\n\tconst loadedConfigDir = result.configFile ? dirname(result.configFile) : configCwd;\n\t/* v8 ignore next -- c12 always returns layers for a config it evaluated */\n\tconst [requestedLayer] = result.layers ?? [];\n\tconst layerConfig = requestedLayer?.config;\n\tconst engineMarker = isRecord(layerConfig) ? layerConfig[\"$prismaConfig\"] : void 0;\n\tif (engineMarker !== void 0) {\n\t\tif (engineMarker !== 1)\n /* v8 ignore next -- a config that evaluated always carries its resolved path */\n\t\treturn notOk(errorConfigVersionMarkerMissing(result.configFile ?? resolvedConfigPath));\n\t\tconst orm = result.config[\"orm\"];\n\t\tif (orm !== void 0 && !isRecord(orm)) return ok({\n\t\t\tconfig: buildLoadedConfig({}, loadedConfigDir).config,\n\t\t\tdiagnostics: [errorConfigValidation(\"orm\", { why: `The orm section of ${CONFIG_FILENAME} must be an object` })]\n\t\t});\n\t\treturn ok(buildLoadedConfig(orm ?? {}, loadedConfigDir));\n\t}\n\t/* v8 ignore next -- a config that evaluated always carries its resolved path */\n\treturn notOk(errorConfigVersionMarkerMissing(result.configFile ?? resolvedConfigPath));\n}\n/**\n* Narrows a {@link LoadedConfig} to the sections a command reads. Fails with\n* the first diagnostic concerning a required section; diagnostics on other\n* sections are ignored so unrelated commands keep working.\n*/\nfunction requireConfigSections(loaded, sections) {\n\tconst blocking = loaded.diagnostics.find((diagnostic) => {\n\t\tconst section = diagnostic.meta?.[\"section\"];\n\t\treturn typeof section !== \"string\" || sections.some((required) => required === section);\n\t});\n\treturn blocking ? notOk(blocking) : ok(loaded.config);\n}\n/**\n* Convenience composition of {@link loadConfig} and\n* {@link requireConfigSections} for commands that read a fixed set of\n* sections and have no use for diagnostics outside them.\n*/\nasync function loadConfigForSections(configPath, sections) {\n\tconst loaded = await loadConfig(configPath);\n\tif (!loaded.ok) return loaded;\n\treturn requireConfigSections(loaded.value, sections);\n}\nasync function loadConfigForFile(filePath) {\n\tconst configPath = await findNearestConfigPathForFile(filePath);\n\tif (configPath === void 0) return notOk(errorConfigFileNotFound(join(dirname(resolve(process.cwd(), filePath)), CONFIG_FILENAME)));\n\treturn loadConfig(configPath);\n}\n//#endregion\nexport { finalizeConfig, findNearestConfigPathForFile, loadConfig, loadConfigForFile, loadConfigForSections, requireConfigSections };\n\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"exports-DJ4RhlW4.mjs","names":[],"sources":["../../../../1-framework/3-tooling/config-loader/dist/exports/index.mjs"],"sourcesContent":["import { createRequire } from \"node:module\";\nimport { normalizeContractConfig } from \"@internal/config/config-types\";\nimport { dirname, join, resolve } from \"pathe\";\nimport { realpathSync } from \"node:fs\";\nimport { access } from \"node:fs/promises\";\nimport { pathToFileURL } from \"node:url\";\nimport { collectConfigIssues } from \"@internal/config/config-validation\";\nimport { getEmittedArtifactPaths } from \"@internal/emitter\";\nimport { CliStructuredError, errorConfigEvaluationFailed, errorConfigFileNotFound, errorConfigValidation, errorConfigVersionMarkerMissing } from \"@internal/errors/control\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { notOk, ok } from \"@internal/utils/result\";\nimport { isStructuredError } from \"@internal/utils/structured-error\";\n//#region src/finalize-config.ts\nfunction finalizeContractSource(source, configDir) {\n\tconst resolvedInputs = source.inputs?.map((input) => resolve(configDir, input));\n\tif (resolvedInputs === void 0) return source;\n\treturn {\n\t\t...source,\n\t\tinputs: resolvedInputs\n\t};\n}\n/** Normalizes a contract section and resolves its paths against `configDir`. */\nfunction finalizeContractConfig(contract, configDir) {\n\tconst normalized = normalizeContractConfig(contract);\n\treturn {\n\t\t...normalized,\n\t\tsource: finalizeContractSource(normalized.source, configDir),\n\t\toutput: resolve(configDir, normalized.output)\n\t};\n}\nconst DEFAULT_MIGRATIONS_DIR = \"migrations\";\n/**\n* Resolves the migrations directory against `configDir`, which is what `migrations.dir` is\n* documented to be relative to. The default is applied here too, so no caller re-derives it\n* against a different base — a command run from one directory with `--config` naming a project in\n* another would otherwise read the wrong `migrations/`.\n*/\nfunction finalizeMigrationsConfig(migrations, configDir) {\n\treturn {\n\t\t...migrations,\n\t\tdir: resolve(configDir, migrations?.dir ?? DEFAULT_MIGRATIONS_DIR)\n\t};\n}\nfunction finalizeConfig(config, configDir) {\n\treturn {\n\t\t...config,\n\t\t...config.contract ? { contract: finalizeContractConfig(config.contract, configDir) } : void 0,\n\t\tmigrations: finalizeMigrationsConfig(config.migrations, configDir)\n\t};\n}\n//#endregion\n//#region src/load.ts\nconst CONFIG_FILENAME = \"prisma.config.ts\";\nasync function findNearestConfigPathForFile(filePath) {\n\tlet current = dirname(resolve(process.cwd(), filePath));\n\twhile (true) {\n\t\tconst candidate = join(current, CONFIG_FILENAME);\n\t\tif (await fileExists(candidate)) return candidate;\n\t\tconst parent = dirname(current);\n\t\tif (parent === current) return;\n\t\tcurrent = parent;\n\t}\n}\nasync function fileExists(path) {\n\ttry {\n\t\tawait access(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\nfunction isRecord(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\nfunction collectArtifactCollisionDiagnostics(contract) {\n\tconst inputs = contract.source.inputs;\n\tconst output = contract.output;\n\tif (inputs === void 0 || output === void 0) return [];\n\tlet emittedArtifactPaths;\n\ttry {\n\t\temittedArtifactPaths = getEmittedArtifactPaths(output);\n\t} catch (error) {\n\t\treturn [errorConfigValidation(\"contract.output\", {\n\t\t\t/* v8 ignore next -- getEmittedArtifactPaths only ever throws an Error */\n\t\t\twhy: error instanceof Error ? error.message : String(error),\n\t\t\tsection: \"contract\"\n\t\t})];\n\t}\n\tconst emittedPaths = /* @__PURE__ */ new Set([emittedArtifactPaths.jsonPath, emittedArtifactPaths.dtsPath]);\n\tif (inputs.some((input) => emittedPaths.has(input))) return [errorConfigValidation(\"contract.source.inputs[]\", {\n\t\twhy: \"Config.contract.source.inputs must not include emitted artifact paths derived from contract.output\",\n\t\tsection: \"contract\"\n\t})];\n\treturn [];\n}\nfunction buildLoadedConfig(rawConfig, configDir) {\n\tconst issues = collectConfigIssues(rawConfig);\n\tconst diagnostics = issues.map((issue) => errorConfigValidation(issue.field, {\n\t\twhy: issue.message,\n\t\tsection: issue.section\n\t}));\n\tconst raw = blindCast(rawConfig);\n\tconst config = issues.some((issue) => issue.section === \"migrations\") ? raw : {\n\t\t...raw,\n\t\tmigrations: finalizeMigrationsConfig(raw.migrations, configDir)\n\t};\n\tif (config.contract === void 0 || issues.some((issue) => issue.section === \"contract\")) return {\n\t\tconfig,\n\t\tdiagnostics\n\t};\n\tconst contract = finalizeContractConfig(config.contract, configDir);\n\tdiagnostics.push(...collectArtifactCollisionDiagnostics(contract));\n\treturn {\n\t\tconfig: {\n\t\t\t...config,\n\t\t\tcontract\n\t\t},\n\t\tdiagnostics\n\t};\n}\nfunction toConfigLoadFailure(error, configPath) {\n\tif (CliStructuredError.is(error)) return error;\n\tconst resolvedPath = configPath ? resolve(process.cwd(), configPath) : void 0;\n\tif (isStructuredError(error)) return new CliStructuredError(error.code, error.message, {\n\t\t...ifDefined(\"why\", error.why),\n\t\t...ifDefined(\"fix\", error.fix),\n\t\t...ifDefined(\"where\", error.where),\n\t\t...ifDefined(\"meta\", error.meta),\n\t\tcause: error\n\t});\n\tif (error instanceof Error) return errorConfigEvaluationFailed(resolvedPath, {\n\t\twhy: error.message,\n\t\tcause: error\n\t});\n\treturn errorConfigEvaluationFailed(resolvedPath, { why: String(error) });\n}\n/**\n* Loads and finalizes the Prisma 8 config.\n*\n* Failures that prevent evaluation entirely — missing file, module that does\n* not evaluate (`CONFIG.FILE_NOT_FOUND`, `CONFIG.EVALUATION_FAILED`) — are the\n* `Result` failure. Structural problems inside an evaluated config do not\n* fail the load: they are returned as section-tagged diagnostics so commands\n* fail only on the sections they read (via {@link requireConfigSections}).\n*/\n/**\n* c12 is resolved to its real on-disk entry before importing: jiti (inside\n* c12) resolves its own transitive imports from the importing file's location,\n* and a symlinked install (pnpm) would otherwise anchor them somewhere the\n* packages are not. Importing at the real location keeps every transitive\n* resolution working.\n*/\nasync function importC12() {\n\treturn await import(pathToFileURL(realpathSync(createRequire(import.meta.url).resolve(\"c12\"))).href);\n}\nasync function loadConfig(configPath, options) {\n\tconst cwd = options?.cwd ?? process.cwd();\n\tconst resolvedConfigPath = configPath ? resolve(cwd, configPath) : void 0;\n\tconst configCwd = resolvedConfigPath ? dirname(resolvedConfigPath) : cwd;\n\tlet result;\n\ttry {\n\t\tresult = await (await importC12()).loadConfig({\n\t\t\tname: \"prisma\",\n\t\t\t...ifDefined(\"configFile\", resolvedConfigPath),\n\t\t\tcwd: configCwd\n\t\t});\n\t} catch (error) {\n\t\treturn notOk(toConfigLoadFailure(error, configPath));\n\t}\n\tif (resolvedConfigPath && result.configFile !== resolvedConfigPath) return notOk(errorConfigFileNotFound(resolvedConfigPath));\n\tif (!result.config || Object.keys(result.config).length === 0) return notOk(errorConfigFileNotFound(result.configFile || resolvedConfigPath || configPath));\n\t/* v8 ignore next -- @preserve */\n\tconst loadedConfigDir = result.configFile ? dirname(result.configFile) : configCwd;\n\t/* v8 ignore next -- c12 always returns layers for a config it evaluated */\n\tconst [requestedLayer] = result.layers ?? [];\n\tconst layerConfig = requestedLayer?.config;\n\tconst engineMarker = isRecord(layerConfig) ? layerConfig[\"$prismaConfig\"] : void 0;\n\tif (engineMarker !== void 0) {\n\t\tif (engineMarker !== 1)\n /* v8 ignore next -- a config that evaluated always carries its resolved path */\n\t\treturn notOk(errorConfigVersionMarkerMissing(result.configFile ?? resolvedConfigPath));\n\t\tconst orm = result.config[\"orm\"];\n\t\tif (orm !== void 0 && !isRecord(orm)) return ok({\n\t\t\tconfig: buildLoadedConfig({}, loadedConfigDir).config,\n\t\t\tdiagnostics: [errorConfigValidation(\"orm\", { why: `The orm section of ${CONFIG_FILENAME} must be an object` })]\n\t\t});\n\t\treturn ok(buildLoadedConfig(orm ?? {}, loadedConfigDir));\n\t}\n\t/* v8 ignore next -- a config that evaluated always carries its resolved path */\n\treturn notOk(errorConfigVersionMarkerMissing(result.configFile ?? resolvedConfigPath));\n}\n/**\n* Narrows a {@link LoadedConfig} to the sections a command reads. Fails with\n* the first diagnostic concerning a required section; diagnostics on other\n* sections are ignored so unrelated commands keep working.\n*/\nfunction requireConfigSections(loaded, sections) {\n\tconst blocking = loaded.diagnostics.find((diagnostic) => {\n\t\tconst section = diagnostic.meta?.[\"section\"];\n\t\treturn typeof section !== \"string\" || sections.some((required) => required === section);\n\t});\n\treturn blocking ? notOk(blocking) : ok(loaded.config);\n}\n/**\n* Convenience composition of {@link loadConfig} and\n* {@link requireConfigSections} for commands that read a fixed set of\n* sections and have no use for diagnostics outside them.\n*/\nasync function loadConfigForSections(configPath, sections) {\n\tconst loaded = await loadConfig(configPath);\n\tif (!loaded.ok) return loaded;\n\treturn requireConfigSections(loaded.value, sections);\n}\nasync function loadConfigForFile(filePath) {\n\tconst configPath = await findNearestConfigPathForFile(filePath);\n\tif (configPath === void 0) return notOk(errorConfigFileNotFound(join(dirname(resolve(process.cwd(), filePath)), CONFIG_FILENAME)));\n\treturn loadConfig(configPath);\n}\n//#endregion\nexport { finalizeConfig, findNearestConfigPathForFile, loadConfig, loadConfigForFile, loadConfigForSections, requireConfigSections };\n\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { n as publicShells } from "./shells-Bx5Y1_Qa.mjs";
1
+ import { n as publicShells } from "./shells-BafZvOhr.mjs";
2
2
  //#region ../../../0-shared/publish-surface/dist/import-roots.mjs
3
3
  /**
4
4
  * Import-root resolution: the one place that turns an internal workspace
@@ -221,4 +221,4 @@ const EXTERNAL_DIRECT_DEPENDENCIES = /* @__PURE__ */ new Set(["@prisma/cli-engin
221
221
  //#endregion
222
222
  export { directDependencyShells as a, internalImportRoot as c, transitiveImports as d, createScaffoldSpecifierResolver as i, platformEntrypointOf as l, buildOwnerIndex as n, importRootForDependencies as o, createImportSpecifierResolver as r, importedSpecifiers as s, ImportRootError as t, resolveImportSpecifier as u };
223
223
 
224
- //# sourceMappingURL=import-roots-DK5SffvZ.mjs.map
224
+ //# sourceMappingURL=import-roots-BgbD211J.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"import-roots-DK5SffvZ.mjs","names":[],"sources":["../../../../0-shared/publish-surface/dist/import-roots.mjs"],"sourcesContent":["import { publicShells } from \"./shells.mjs\";\n//#region src/import-roots.ts\n/**\n* Import-root resolution: the one place that turns an internal workspace\n* specifier into the name generated code should carry.\n*\n* Emission writes package names into files the user keeps — generated\n* contract types, scaffolded migrations, `prisma orm init` output. Which\n* name is correct depends on how the application installed Prisma 8, so\n* every emitter resolves through an {@link ImportRoot} rather than hardcoding\n* a specifier. The mapping itself is `./shells`; nothing here duplicates it.\n*/\nconst INTERNAL_SCOPE = \"@internal/\";\nconst PUBLISHED_SCOPE = \"@prisma/\";\n/** An import root that emitted code cannot express. */\nvar ImportRootError = class extends Error {};\nconst internalImportRoot = { mode: \"internal\" };\n/**\n* The import root an application's own dependency list expresses.\n*\n* Emission has to name packages the application can actually resolve, and the\n* application already states which those are. Reading its manifest keeps the\n* two from drifting and lets consumers move to published names one project at\n* a time instead of behind a repository-wide switch.\n*\n* A project that names exactly one facade is on the facade root; one that\n* names platform shells without a facade is a decomposed install; anything\n* else — including a project with no `@prisma/orm-*` dependency at all — is on\n* the internal root, which emits workspace names unchanged.\n*\n* @throws {ImportRootError} when the project depends on two facades, which no\n* single generated file can be emitted for.\n*/\nfunction importRootForDependencies(dependencies) {\n\tconst named = new Set(dependencies);\n\tconst facades = [];\n\tlet hasPlatform = false;\n\tfor (const [shell, definition] of publicShells) {\n\t\tif (!named.has(shell)) continue;\n\t\tif (definition.kind === \"facade\") facades.push(shell);\n\t\tif (definition.kind === \"platform\") hasPlatform = true;\n\t}\n\tif (facades.length > 1) throw new ImportRootError(`an application may depend on only one database facade, but this one depends on ${facades.join(\" and \")}`);\n\tconst [facade] = facades;\n\tif (facade !== void 0) return {\n\t\tmode: \"facade\",\n\t\tfacade\n\t};\n\treturn hasPlatform ? { mode: \"platform\" } : internalImportRoot;\n}\nconst owners = buildOwnerIndex(publicShells);\n/**\n* Takes the shell map as an argument rather than closing over `publicShells`\n* so the duplicate-owner guard is reachable from a test: the real map is\n* valid by construction, and a guard nothing can exercise is a guard nobody\n* knows still works.\n*/\nfunction buildOwnerIndex(shells) {\n\tconst index = /* @__PURE__ */ new Map();\n\tfor (const [shell, definition] of shells) for (const pkg of definition.packages) {\n\t\tconst existing = index.get(pkg.name);\n\t\tif (existing !== void 0) throw new ImportRootError(`${pkg.name} is mapped to both ${existing.shell} and ${shell}; one module may live in only one published package (ADR 242)`);\n\t\tindex.set(pkg.name, {\n\t\t\tshell,\n\t\t\tentry: pkg.entry\n\t\t});\n\t}\n\treturn index;\n}\nfunction splitSpecifier(specifier) {\n\tconst [scope, pkg, ...rest] = specifier.split(\"/\");\n\treturn {\n\t\tname: `${scope}/${pkg}`,\n\t\tsubpath: rest.join(\"/\")\n\t};\n}\nfunction joinEntrypoint(shell, entry, subpath) {\n\tconst tail = [entry, subpath].filter(Boolean).join(\"/\");\n\treturn tail === \"\" ? shell : `${shell}/${tail}`;\n}\n/**\n* The shells an application installs directly under this root. Emitted code\n* may name only these: a package manager puts a package's own dependencies in\n* its own `node_modules`, so importing a transitively installed package fails\n* to resolve at run time even though the files are on disk.\n*/\nfunction directDependencyShells(root) {\n\tconst direct = /* @__PURE__ */ new Set();\n\tif (root.mode === \"internal\") return direct;\n\tfor (const [shell, definition] of publicShells) {\n\t\tif (definition.kind === \"extension\") direct.add(shell);\n\t\tif (root.mode === \"platform\" && definition.kind === \"platform\") direct.add(shell);\n\t}\n\tif (root.mode === \"facade\") direct.add(root.facade);\n\treturn direct;\n}\nfunction owningShell(specifier, name) {\n\tconst owner = owners.get(name);\n\tif (owner === void 0) throw new ImportRootError(`${specifier} is not mapped to any published shell`);\n\treturn owner;\n}\n/**\n* The platform-install name for an internal specifier, with the shell that\n* owns it. The shell build needs both: an import that stays inside the shell\n* being built is bundled rather than externalized.\n*/\nfunction platformEntrypointOf(specifier) {\n\tconst { name, subpath } = splitSpecifier(specifier);\n\tconst owner = owningShell(specifier, name);\n\treturn {\n\t\tshell: owner.shell,\n\t\tid: joinEntrypoint(owner.shell, owner.entry, subpath)\n\t};\n}\n/**\n* The facade's own name for an internal specifier it republishes, or\n* `undefined` when the facade does not carry that surface.\n*/\nfunction facadeEntrypoint(facade, name, subpath) {\n\tconst definition = publicShells.get(facade);\n\t/* v8 ignore next -- @preserve: every ShellName is a key of publicShells */\n\tif (definition === void 0) throw new ImportRootError(`unknown shell ${facade}`);\n\tif (definition.kind !== \"facade\") throw new ImportRootError(`${facade} is a ${definition.kind} shell, not a facade`);\n\tfor (const reexport of definition.reexports ?? []) {\n\t\tif (reexport.package !== name) continue;\n\t\tif (subpath === \"\" && reexport.root === false) return void 0;\n\t\tif (reexport.subpaths !== void 0 && !reexport.subpaths.includes(subpath)) return void 0;\n\t\treturn joinEntrypoint(facade, reexport.entry, subpath);\n\t}\n}\nfunction describe(root) {\n\treturn root.mode === \"facade\" ? `${root.mode} (${root.facade})` : root.mode;\n}\nfunction resolveImportSpecifier(specifier, root) {\n\tif (root.mode === \"internal\") return specifier;\n\tif (!specifier.startsWith(INTERNAL_SCOPE)) return specifier;\n\tconst { name, subpath } = splitSpecifier(specifier);\n\tif (root.mode === \"facade\") {\n\t\tconst republished = facadeEntrypoint(root.facade, name, subpath);\n\t\tif (republished !== void 0) return republished;\n\t}\n\tconst owner = owningShell(specifier, name);\n\tconst published = joinEntrypoint(owner.shell, owner.entry, subpath);\n\tif (!directDependencyShells(root).has(owner.shell)) throw new ImportRootError(unreachableUnder(specifier, published, root));\n\treturn published;\n}\n/**\n* Why a specifier has no name under `root`.\n*\n* The facade wording deliberately does not say \"not a direct dependency\":\n* under ADR 242 the answer to that is never \"install the platform package\n* too\", it is that the facade has to republish the surface.\n*/\nfunction unreachableUnder(specifier, published, root) {\n\tif (root.mode === \"facade\") return `${specifier} has no name under ${root.facade}: the facade does not republish ${published}. An application installs one facade and nothing else, so every surface it reaches has to be one of that facade’s own entrypoints (ADR 242).`;\n\treturn `${specifier} resolves to ${published}, which an application on the ${describe(root)} import root does not depend on directly. Emitted code may name only direct dependencies (ADR 242).`;\n}\nfunction createImportSpecifierResolver(root) {\n\tif (root.mode === \"internal\") return (specifier) => specifier;\n\treturn (specifier) => resolveImportSpecifier(specifier, root);\n}\n/**\n* Builds the resolver `prisma orm init` scaffolds with. Identical to\n* {@link createImportSpecifierResolver} except that it will not accept a root\n* a scaffold cannot express, so the impossible case is rejected where the\n* resolver is made rather than when a template happens to hit a name.\n*/\nfunction createScaffoldSpecifierResolver(root) {\n\treturn createImportSpecifierResolver(root);\n}\nconst MODULE_SPECIFIER = /\\b(?:from|import)\\s*\\(?\\s*(['\"])([^'\"\\n]+)\\1/g;\n/**\n* True when `source` contains module syntax that must carry a quoted\n* specifier: `import '<s>'`, `import('<s>')`, or an import/export clause\n* followed by `from '<s>'`.\n*\n* Deliberately independent of {@link MODULE_SPECIFIER} — it exists to notice\n* when that scanner has stopped matching, so it accepts any quote character,\n* including the backtick a renderer must never emit. It does still require a\n* quote: the word \"import\" on its own appears in prose and comments all the\n* time, and treating that as module syntax made the check below fire on files\n* that have no imports at all.\n*/\nconst HAS_IMPORT_SYNTAX = /(?:^|[\\s(;}])import\\s*[('\"`]|(?:^|[\\s;}])(?:import|export)\\b[\\w$*,{}\\s]*?\\bfrom\\s*['\"`]/;\n/** The module specifiers a generated source file names. */\nfunction importedSpecifiers(source) {\n\treturn [...source.matchAll(MODULE_SPECIFIER)].map(([, , specifier]) => specifier ?? \"\");\n}\n/**\n* The specifiers in a generated file that the application would not have as a\n* direct dependency under `root` — the thing no emitted file may contain.\n*\n* Under the `internal` root nothing is reported: those names are the\n* repository's own, and every in-repo consumer resolves them through the\n* workspace.\n*\n* Throws rather than returning `[]` when the source plainly has imports but\n* the scan found none. An audit whose scanner has stopped matching would\n* otherwise report every file as clean, which is the one failure mode that\n* makes the audit worse than not having it.\n*/\nfunction transitiveImports(source, root) {\n\tconst specifiers = importedSpecifiers(source);\n\tif (specifiers.length === 0 && HAS_IMPORT_SYNTAX.test(source)) throw new ImportRootError(\"source contains import syntax but no specifier was recognised; the audit would pass vacuously\");\n\tif (root.mode === \"internal\") return [];\n\tconst direct = new Set(directDependencyShells(root));\n\treturn specifiers.filter((specifier) => {\n\t\tif (specifier.startsWith(INTERNAL_SCOPE)) return true;\n\t\tif (!specifier.startsWith(PUBLISHED_SCOPE)) return false;\n\t\tconst [scope, shell] = specifier.split(\"/\");\n\t\tconst name = `${scope}/${shell}`;\n\t\treturn !direct.has(name) && !EXTERNAL_DIRECT_DEPENDENCIES.has(name);\n\t});\n}\n/**\n* Published packages this workspace does not own but `init` installs into a\n* scaffolded application directly, so its files may import them:\n* `@prisma/cli-engine` is the config file's `defineConfig` import.\n*/\nconst EXTERNAL_DIRECT_DEPENDENCIES = /* @__PURE__ */ new Set([\"@prisma/cli-engine\"]);\n//#endregion\nexport { ImportRootError, buildOwnerIndex, createImportSpecifierResolver, createScaffoldSpecifierResolver, directDependencyShells, importRootForDependencies, importedSpecifiers, internalImportRoot, platformEntrypointOf, resolveImportSpecifier, transitiveImports };\n\n//# sourceMappingURL=import-roots.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"import-roots-BgbD211J.mjs","names":[],"sources":["../../../../0-shared/publish-surface/dist/import-roots.mjs"],"sourcesContent":["import { publicShells } from \"./shells.mjs\";\n//#region src/import-roots.ts\n/**\n* Import-root resolution: the one place that turns an internal workspace\n* specifier into the name generated code should carry.\n*\n* Emission writes package names into files the user keeps — generated\n* contract types, scaffolded migrations, `prisma orm init` output. Which\n* name is correct depends on how the application installed Prisma 8, so\n* every emitter resolves through an {@link ImportRoot} rather than hardcoding\n* a specifier. The mapping itself is `./shells`; nothing here duplicates it.\n*/\nconst INTERNAL_SCOPE = \"@internal/\";\nconst PUBLISHED_SCOPE = \"@prisma/\";\n/** An import root that emitted code cannot express. */\nvar ImportRootError = class extends Error {};\nconst internalImportRoot = { mode: \"internal\" };\n/**\n* The import root an application's own dependency list expresses.\n*\n* Emission has to name packages the application can actually resolve, and the\n* application already states which those are. Reading its manifest keeps the\n* two from drifting and lets consumers move to published names one project at\n* a time instead of behind a repository-wide switch.\n*\n* A project that names exactly one facade is on the facade root; one that\n* names platform shells without a facade is a decomposed install; anything\n* else — including a project with no `@prisma/orm-*` dependency at all — is on\n* the internal root, which emits workspace names unchanged.\n*\n* @throws {ImportRootError} when the project depends on two facades, which no\n* single generated file can be emitted for.\n*/\nfunction importRootForDependencies(dependencies) {\n\tconst named = new Set(dependencies);\n\tconst facades = [];\n\tlet hasPlatform = false;\n\tfor (const [shell, definition] of publicShells) {\n\t\tif (!named.has(shell)) continue;\n\t\tif (definition.kind === \"facade\") facades.push(shell);\n\t\tif (definition.kind === \"platform\") hasPlatform = true;\n\t}\n\tif (facades.length > 1) throw new ImportRootError(`an application may depend on only one database facade, but this one depends on ${facades.join(\" and \")}`);\n\tconst [facade] = facades;\n\tif (facade !== void 0) return {\n\t\tmode: \"facade\",\n\t\tfacade\n\t};\n\treturn hasPlatform ? { mode: \"platform\" } : internalImportRoot;\n}\nconst owners = buildOwnerIndex(publicShells);\n/**\n* Takes the shell map as an argument rather than closing over `publicShells`\n* so the duplicate-owner guard is reachable from a test: the real map is\n* valid by construction, and a guard nothing can exercise is a guard nobody\n* knows still works.\n*/\nfunction buildOwnerIndex(shells) {\n\tconst index = /* @__PURE__ */ new Map();\n\tfor (const [shell, definition] of shells) for (const pkg of definition.packages) {\n\t\tconst existing = index.get(pkg.name);\n\t\tif (existing !== void 0) throw new ImportRootError(`${pkg.name} is mapped to both ${existing.shell} and ${shell}; one module may live in only one published package (ADR 242)`);\n\t\tindex.set(pkg.name, {\n\t\t\tshell,\n\t\t\tentry: pkg.entry\n\t\t});\n\t}\n\treturn index;\n}\nfunction splitSpecifier(specifier) {\n\tconst [scope, pkg, ...rest] = specifier.split(\"/\");\n\treturn {\n\t\tname: `${scope}/${pkg}`,\n\t\tsubpath: rest.join(\"/\")\n\t};\n}\nfunction joinEntrypoint(shell, entry, subpath) {\n\tconst tail = [entry, subpath].filter(Boolean).join(\"/\");\n\treturn tail === \"\" ? shell : `${shell}/${tail}`;\n}\n/**\n* The shells an application installs directly under this root. Emitted code\n* may name only these: a package manager puts a package's own dependencies in\n* its own `node_modules`, so importing a transitively installed package fails\n* to resolve at run time even though the files are on disk.\n*/\nfunction directDependencyShells(root) {\n\tconst direct = /* @__PURE__ */ new Set();\n\tif (root.mode === \"internal\") return direct;\n\tfor (const [shell, definition] of publicShells) {\n\t\tif (definition.kind === \"extension\") direct.add(shell);\n\t\tif (root.mode === \"platform\" && definition.kind === \"platform\") direct.add(shell);\n\t}\n\tif (root.mode === \"facade\") direct.add(root.facade);\n\treturn direct;\n}\nfunction owningShell(specifier, name) {\n\tconst owner = owners.get(name);\n\tif (owner === void 0) throw new ImportRootError(`${specifier} is not mapped to any published shell`);\n\treturn owner;\n}\n/**\n* The platform-install name for an internal specifier, with the shell that\n* owns it. The shell build needs both: an import that stays inside the shell\n* being built is bundled rather than externalized.\n*/\nfunction platformEntrypointOf(specifier) {\n\tconst { name, subpath } = splitSpecifier(specifier);\n\tconst owner = owningShell(specifier, name);\n\treturn {\n\t\tshell: owner.shell,\n\t\tid: joinEntrypoint(owner.shell, owner.entry, subpath)\n\t};\n}\n/**\n* The facade's own name for an internal specifier it republishes, or\n* `undefined` when the facade does not carry that surface.\n*/\nfunction facadeEntrypoint(facade, name, subpath) {\n\tconst definition = publicShells.get(facade);\n\t/* v8 ignore next -- @preserve: every ShellName is a key of publicShells */\n\tif (definition === void 0) throw new ImportRootError(`unknown shell ${facade}`);\n\tif (definition.kind !== \"facade\") throw new ImportRootError(`${facade} is a ${definition.kind} shell, not a facade`);\n\tfor (const reexport of definition.reexports ?? []) {\n\t\tif (reexport.package !== name) continue;\n\t\tif (subpath === \"\" && reexport.root === false) return void 0;\n\t\tif (reexport.subpaths !== void 0 && !reexport.subpaths.includes(subpath)) return void 0;\n\t\treturn joinEntrypoint(facade, reexport.entry, subpath);\n\t}\n}\nfunction describe(root) {\n\treturn root.mode === \"facade\" ? `${root.mode} (${root.facade})` : root.mode;\n}\nfunction resolveImportSpecifier(specifier, root) {\n\tif (root.mode === \"internal\") return specifier;\n\tif (!specifier.startsWith(INTERNAL_SCOPE)) return specifier;\n\tconst { name, subpath } = splitSpecifier(specifier);\n\tif (root.mode === \"facade\") {\n\t\tconst republished = facadeEntrypoint(root.facade, name, subpath);\n\t\tif (republished !== void 0) return republished;\n\t}\n\tconst owner = owningShell(specifier, name);\n\tconst published = joinEntrypoint(owner.shell, owner.entry, subpath);\n\tif (!directDependencyShells(root).has(owner.shell)) throw new ImportRootError(unreachableUnder(specifier, published, root));\n\treturn published;\n}\n/**\n* Why a specifier has no name under `root`.\n*\n* The facade wording deliberately does not say \"not a direct dependency\":\n* under ADR 242 the answer to that is never \"install the platform package\n* too\", it is that the facade has to republish the surface.\n*/\nfunction unreachableUnder(specifier, published, root) {\n\tif (root.mode === \"facade\") return `${specifier} has no name under ${root.facade}: the facade does not republish ${published}. An application installs one facade and nothing else, so every surface it reaches has to be one of that facade’s own entrypoints (ADR 242).`;\n\treturn `${specifier} resolves to ${published}, which an application on the ${describe(root)} import root does not depend on directly. Emitted code may name only direct dependencies (ADR 242).`;\n}\nfunction createImportSpecifierResolver(root) {\n\tif (root.mode === \"internal\") return (specifier) => specifier;\n\treturn (specifier) => resolveImportSpecifier(specifier, root);\n}\n/**\n* Builds the resolver `prisma orm init` scaffolds with. Identical to\n* {@link createImportSpecifierResolver} except that it will not accept a root\n* a scaffold cannot express, so the impossible case is rejected where the\n* resolver is made rather than when a template happens to hit a name.\n*/\nfunction createScaffoldSpecifierResolver(root) {\n\treturn createImportSpecifierResolver(root);\n}\nconst MODULE_SPECIFIER = /\\b(?:from|import)\\s*\\(?\\s*(['\"])([^'\"\\n]+)\\1/g;\n/**\n* True when `source` contains module syntax that must carry a quoted\n* specifier: `import '<s>'`, `import('<s>')`, or an import/export clause\n* followed by `from '<s>'`.\n*\n* Deliberately independent of {@link MODULE_SPECIFIER} — it exists to notice\n* when that scanner has stopped matching, so it accepts any quote character,\n* including the backtick a renderer must never emit. It does still require a\n* quote: the word \"import\" on its own appears in prose and comments all the\n* time, and treating that as module syntax made the check below fire on files\n* that have no imports at all.\n*/\nconst HAS_IMPORT_SYNTAX = /(?:^|[\\s(;}])import\\s*[('\"`]|(?:^|[\\s;}])(?:import|export)\\b[\\w$*,{}\\s]*?\\bfrom\\s*['\"`]/;\n/** The module specifiers a generated source file names. */\nfunction importedSpecifiers(source) {\n\treturn [...source.matchAll(MODULE_SPECIFIER)].map(([, , specifier]) => specifier ?? \"\");\n}\n/**\n* The specifiers in a generated file that the application would not have as a\n* direct dependency under `root` — the thing no emitted file may contain.\n*\n* Under the `internal` root nothing is reported: those names are the\n* repository's own, and every in-repo consumer resolves them through the\n* workspace.\n*\n* Throws rather than returning `[]` when the source plainly has imports but\n* the scan found none. An audit whose scanner has stopped matching would\n* otherwise report every file as clean, which is the one failure mode that\n* makes the audit worse than not having it.\n*/\nfunction transitiveImports(source, root) {\n\tconst specifiers = importedSpecifiers(source);\n\tif (specifiers.length === 0 && HAS_IMPORT_SYNTAX.test(source)) throw new ImportRootError(\"source contains import syntax but no specifier was recognised; the audit would pass vacuously\");\n\tif (root.mode === \"internal\") return [];\n\tconst direct = new Set(directDependencyShells(root));\n\treturn specifiers.filter((specifier) => {\n\t\tif (specifier.startsWith(INTERNAL_SCOPE)) return true;\n\t\tif (!specifier.startsWith(PUBLISHED_SCOPE)) return false;\n\t\tconst [scope, shell] = specifier.split(\"/\");\n\t\tconst name = `${scope}/${shell}`;\n\t\treturn !direct.has(name) && !EXTERNAL_DIRECT_DEPENDENCIES.has(name);\n\t});\n}\n/**\n* Published packages this workspace does not own but `init` installs into a\n* scaffolded application directly, so its files may import them:\n* `@prisma/cli-engine` is the config file's `defineConfig` import.\n*/\nconst EXTERNAL_DIRECT_DEPENDENCIES = /* @__PURE__ */ new Set([\"@prisma/cli-engine\"]);\n//#endregion\nexport { ImportRootError, buildOwnerIndex, createImportSpecifierResolver, createScaffoldSpecifierResolver, directDependencyShells, importRootForDependencies, importedSpecifiers, internalImportRoot, platformEntrypointOf, resolveImportSpecifier, transitiveImports };\n\n//# sourceMappingURL=import-roots.mjs.map"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { PreserveEmptyPredicate, SerializeContract, StorageSort } from "@prisma/
4
4
  import { AggregateDescriptor } from "@prisma/orm-framework/components/components";
5
5
  import { Contract } from "@prisma/orm-framework/contract/types";
6
6
  import { AnyCodecDescriptor, CodecLookup } from "@prisma/orm-framework/components/codec";
7
- //#region ../../../1-framework/3-tooling/emitter/dist/index-CED30mET.d.mts
7
+ //#region ../../../1-framework/3-tooling/emitter/dist/index-B93553S9.d.mts
8
8
  //#region src/artifact-paths.d.ts
9
9
  interface EmittedArtifactPaths {
10
10
  readonly jsonPath: string;
@@ -60,12 +60,12 @@ interface EmitOptions {
60
60
  */
61
61
  readonly supportsNamespaces?: boolean;
62
62
  /**
63
- * Hydrates the canonical JSON object back into a contract. When given, the
64
- * declarations are generated from that round-trip rather than from the
65
- * contract as authored, so `contract.d.ts` orders every collection the way
63
+ * Hydrates the canonical JSON object back into a contract. The declarations
64
+ * are always generated from that round-trip, never from the contract as
65
+ * authored, so `contract.d.ts` orders every collection the way
66
66
  * `contract.json` does and a render from the JSON reproduces it exactly.
67
67
  */
68
- readonly deserializeContract?: (json: Record<string, unknown>) => Contract;
68
+ readonly deserializeContract: (json: Record<string, unknown>) => Contract;
69
69
  }
70
70
  interface EmitResult {
71
71
  readonly contractJson: string;
@@ -86,4 +86,4 @@ declare function generateContractDts(contract: Contract, emitter: EmissionSpi, c
86
86
  }, options?: GenerateContractTypesOptions, codecLookup?: CodecLookup, resolveImportSpecifier?: ImportSpecifierResolver): string;
87
87
  //#endregion
88
88
  export { emit as a, EmittedArtifactPaths as i, EmitResult as n, generateContractDts as o, EmitStackInput as r, getEmittedArtifactPaths as s, EmitOptions as t };
89
- //# sourceMappingURL=index-K9cFK1Ge.d.mts.map
89
+ //# sourceMappingURL=index-DG1D9rrd.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-K9cFK1Ge.d.mts","names":[],"sources":["../../../../1-framework/3-tooling/emitter/dist/index-CED30mET.d.mts"],"mappings":";;;;;;;;UAOU;WACC;WACA;;iBAEM,wBAAwB,yBAAyB;;;;;;;;UAQxD;WACC,mBAAmB,cAAc;WACjC,4BAA4B,cAAc;WAC1C,eAAe;WACf,cAAc;WACd,mBAAmB,cAAc;WACjC,uBAAuB,cAAc;;UAEtC;WACC;;;;;;;;;;WAUA,mBAAmB;;;;;WAKnB,sBAAsB;;;;;WAKtB,cAAc;;;;;;;WAOd,yBAAyB;;;;WAIzB;;;;;;;WAOA,uBAAuB,MAAM,4BAA4B;;UAE1D;WACC;WACA;WACA;WACA;WACA;;;;iBAIM,KAAK,UAAU,UAAU,OAAO,gBAAgB,cAAc,aAAa,SAAS,cAAc,QAAQ;;;iBAG1G,oBAAoB,UAAU,UAAU,SAAS,aAAa,kBAAkB,cAAc,kBAAkB;WACtH;WACA;WACA;GACR,UAAU,8BAA8B,cAAc,aAAa,yBAAyB"}
1
+ {"version":3,"file":"index-DG1D9rrd.d.mts","names":[],"sources":["../../../../1-framework/3-tooling/emitter/dist/index-B93553S9.d.mts"],"mappings":";;;;;;;;UAOU;WACC;WACA;;iBAEM,wBAAwB,yBAAyB;;;;;;;;UAQxD;WACC,mBAAmB,cAAc;WACjC,4BAA4B,cAAc;WAC1C,eAAe;WACf,cAAc;WACd,mBAAmB,cAAc;WACjC,uBAAuB,cAAc;;UAEtC;WACC;;;;;;;;;;WAUA,mBAAmB;;;;;WAKnB,sBAAsB;;;;;WAKtB,cAAc;;;;;;;WAOd,yBAAyB;;;;WAIzB;;;;;;;WAOA,sBAAsB,MAAM,4BAA4B;;UAEzD;WACC;WACA;WACA;WACA;WACA;;;;iBAIM,KAAK,UAAU,UAAU,OAAO,gBAAgB,cAAc,aAAa,SAAS,cAAc,QAAQ;;;iBAG1G,oBAAoB,UAAU,UAAU,SAAS,aAAa,kBAAkB,cAAc,kBAAkB;WACtH;WACA;WACA;GACR,UAAU,8BAA8B,cAAc,aAAa,yBAAyB"}
@@ -1,3 +1,3 @@
1
- import { n as publicShells, t as excludedSubpaths } from "./shells-Bx5Y1_Qa.mjs";
2
- import { a as directDependencyShells, c as internalImportRoot, d as transitiveImports, i as createScaffoldSpecifierResolver, l as platformEntrypointOf, n as buildOwnerIndex, o as importRootForDependencies, r as createImportSpecifierResolver, s as importedSpecifiers, t as ImportRootError, u as resolveImportSpecifier } from "./import-roots-DK5SffvZ.mjs";
1
+ import { n as publicShells, t as excludedSubpaths } from "./shells-BafZvOhr.mjs";
2
+ import { a as directDependencyShells, c as internalImportRoot, d as transitiveImports, i as createScaffoldSpecifierResolver, l as platformEntrypointOf, n as buildOwnerIndex, o as importRootForDependencies, r as createImportSpecifierResolver, s as importedSpecifiers, t as ImportRootError, u as resolveImportSpecifier } from "./import-roots-BgbD211J.mjs";
3
3
  export { ImportRootError, buildOwnerIndex, createImportSpecifierResolver, createScaffoldSpecifierResolver, directDependencyShells, excludedSubpaths, importRootForDependencies, importedSpecifiers, internalImportRoot, platformEntrypointOf, publicShells, resolveImportSpecifier, transitiveImports };
@@ -1,2 +1,2 @@
1
- import { a as directDependencyShells, c as internalImportRoot, d as transitiveImports, i as createScaffoldSpecifierResolver, l as platformEntrypointOf, n as buildOwnerIndex, o as importRootForDependencies, r as createImportSpecifierResolver, s as importedSpecifiers, t as ImportRootError, u as resolveImportSpecifier } from "./import-roots-DK5SffvZ.mjs";
1
+ import { a as directDependencyShells, c as internalImportRoot, d as transitiveImports, i as createScaffoldSpecifierResolver, l as platformEntrypointOf, n as buildOwnerIndex, o as importRootForDependencies, r as createImportSpecifierResolver, s as importedSpecifiers, t as ImportRootError, u as resolveImportSpecifier } from "./import-roots-BgbD211J.mjs";
2
2
  export { ImportRootError, buildOwnerIndex, createImportSpecifierResolver, createScaffoldSpecifierResolver, directDependencyShells, importRootForDependencies, importedSpecifiers, internalImportRoot, platformEntrypointOf, resolveImportSpecifier, transitiveImports };
@@ -1,2 +1,2 @@
1
- import { n as publicShells, t as excludedSubpaths } from "./shells-Bx5Y1_Qa.mjs";
1
+ import { n as publicShells, t as excludedSubpaths } from "./shells-BafZvOhr.mjs";
2
2
  export { excludedSubpaths, publicShells };
@@ -1,4 +1,4 @@
1
- import { r as getEmittedArtifactPaths, t as emit } from "./exports-DkJil2JJ-6p86L2r4.mjs";
1
+ import { r as getEmittedArtifactPaths, t as emit } from "./exports-DI1kMms6--e9LdT9A.mjs";
2
2
  import { O as errorNoInvariantPath, P as errorUnknownInvariant, b as errorInvalidRefName, i as errorContractDeserializationFailed, t as MigrationToolsError } from "./errors-SoLLYLtw-DMxVbVs9.mjs";
3
3
  import { a as writeContractSnapshot, i as snapshotsImportPathFrom, n as readContractSnapshotJson, t as contractSnapshotDir } from "./contract-snapshot-store-D-mFkiHR-CFl0ulR2.mjs";
4
4
  import { n as verifyMigrationHash, t as computeMigrationHash } from "./hash-DH8hl5Rq-BpM2t3Nu.mjs";
@@ -11,7 +11,7 @@ import { d as writeRef, i as readRefs, l as validateRefName, n as deleteRef, o a
11
11
  import { a as isValidSpaceId, c as spaceMigrationDirectory, l as spaceRefsDirectory, o as listContractSpaceDirectories, s as readContractSpaceHeadRef, t as APP_SPACE_ID$1 } from "./verify-contract-spaces-_vwt5LT0-BQAf8Q4T.mjs";
12
12
  import { d as resolveRecordedPath, f as verifyMigration, l as planMigration, n as buildFabricatedMigrationEdge, r as collectAggregateNamespaces, s as loadContractSpaceAggregate, t as allStorageElementsExternal, u as requireHeadRef } from "./aggregate-DI9VS7yL.mjs";
13
13
  import { i as emitContractSpaceArtifacts, o as planAllSpaces } from "./spaces-DzFtKEl3.mjs";
14
- import { c as internalImportRoot, o as importRootForDependencies, r as createImportSpecifierResolver, t as ImportRootError } from "./import-roots-DK5SffvZ.mjs";
14
+ import { c as internalImportRoot, o as importRootForDependencies, r as createImportSpecifierResolver, t as ImportRootError } from "./import-roots-BgbD211J.mjs";
15
15
  import { n as parseContractRef, r as parseMigrationRef } from "./ref-resolution-BWpwb8_b.mjs";
16
16
  import { i as writeMigrationTs } from "./migration-ts-DdVm0rws.mjs";
17
17
  import { createRequire } from "node:module";
@@ -4863,4 +4863,4 @@ async function executeRefListCommand(options) {
4863
4863
  //#endregion
4864
4864
  export { listRefsByContractHash as $, errorMarkerMissing as A, sanitizeErrorMessage as At, executeContractEmit as B, errorContractValidationFailed as C, resolveFromForPlan as Ct, errorFileNotFound as D, runContractSpaceSeedPhase as Dt, errorDriverRequired as E, runCommandAction as Et, errorRunnerFailed as F, executeMigrationNewCommand as G, executeDbUpdate as H, errorRuntime as I, executeRefDeleteCommand as J, executeMigrationPlanCommand as K, errorTargetMigrationNotSupported as L, errorMigrationPlanningFailed as M, targetSupportsMigrations as Mt, errorNoMigrations as N, toDeclaredExtensionsFromRaw as Nt, errorHashMismatch as O, runMigrationCheck as Ot, errorPathUnreachable as P, hasMigrationPath as Q, errorTargetMismatch as R, errorContractArgConflict as S, resolveContractRefToSnapshot as St, errorDestructiveChanges as T, resolveToForPlan as Tt, executeDbVerify as U, executeDbInit as V, executeMigrateShowPlan as W, executeRefSetCommand as X, executeRefListCommand as Y, findPackageByDirPath as Z, enrichContract as _, refusePackageCorruptionOnAggregate as _t, appliedHashesFromLedger as a, mapContractAtError as at, errorConfigValidation$1 as b, resolveAppTargetPath as bt, buildReadAggregate as c, migrationSpaceListEntriesFromAggregate as ct, chooseAction as d, readContractEnvelope as dt, loadAggregateIntegrityViolations as et, closeQuietly as f, readMigrationRefs as ft, disposeEmitQueue as g, refuseMissingInvariantPath as gt, deriveStatusEdgeAnnotations as h, refuseMarkerOutsideGraph as ht, appContractStandInFromIdentity as i, mapCaughtMigrationError as it, errorMigrationPackageNotFound as j, statusForMigrationHash as jt, errorLegendHumanOnly as k, runMigrationList as kt, buildRefAdvancementFields as l, originHashForStatus as lt, createControlClient as m, refuseDeclaredExtensionTargetMismatch as mt, NO_REF_ADVANCEMENT as n, loadContractSpaceAggregateForCli as nt, buildContractSpaceAggregate as o, mapIntegrityViolations as ot, computeRefAdvancementName as p, refuseContractSpaceIntegrity as pt, executeRefAdvancement as q, advanceRefSafely as r, looksLikePath as rt, buildMigrationSpaceGraphEntries as s, maskConnectionUrl as st, CliStructuredError$1 as t, loadContractRawSafely as tt, checkSingleTarget as u, preflightRefAdvancement as ut, enumerateCheckSpaces as v, refuseUnknownInvariants as vt, errorDatabaseConnectionRequired as w, resolveMigrationRef as wt, errorConsentPlanMismatch as x, resolveContractRef$1 as xt, errorAdvanceRefArgConflict as y, requireLiveDatabase as yt, errorUnexpected as z };
4865
4865
 
4866
- //# sourceMappingURL=ref-fSTPpdt3-BulCTZne.mjs.map
4866
+ //# sourceMappingURL=ref-fSTPpdt3-DTb2_ACs.mjs.map