@prisma/orm-toolchain 8.0.0-rc.1-dev.46 → 8.0.0-rc.10-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -5
- package/dist/{aggregate-CPZB020V.mjs → aggregate-B4HKshLQ.mjs} +10 -10
- package/dist/aggregate-B4HKshLQ.mjs.map +1 -0
- package/dist/{aggregate-DLUJLq5Y.d.mts → aggregate-D_eX4zoo.d.mts} +3 -3
- package/dist/{aggregate-DLUJLq5Y.d.mts.map → aggregate-D_eX4zoo.d.mts.map} +1 -1
- package/dist/cli-telemetry.d.mts +8 -7
- package/dist/cli-telemetry.d.mts.map +1 -1
- package/dist/cli-telemetry.mjs +22 -24
- package/dist/cli-telemetry.mjs.map +1 -1
- package/dist/cli.d.mts +2 -6
- package/dist/cli.d.mts.map +1 -1
- package/dist/cli.mjs +447 -430
- package/dist/cli.mjs.map +1 -1
- package/dist/cli__control-api.d.mts +20 -11
- package/dist/cli__control-api.d.mts.map +1 -1
- package/dist/cli__control-api.mjs +1 -1
- package/dist/cli__control-api__testing.d.mts +1 -1
- package/dist/cli__init-output.mjs +1 -1
- package/dist/cli__migration-cli.mjs +6 -6
- package/dist/cli__migration-cli.mjs.map +1 -1
- package/dist/config-loader.d.mts +1 -1
- package/dist/config-loader.mjs +1 -1
- package/dist/{contract-snapshot-store-B0G1Fw_F-CHc4QfKb.mjs → contract-snapshot-store-qGrwlGmt-Cf2NFzRL.mjs} +3 -3
- package/dist/{contract-snapshot-store-B0G1Fw_F-CHc4QfKb.mjs.map → contract-snapshot-store-qGrwlGmt-Cf2NFzRL.mjs.map} +1 -1
- package/dist/{db-verify-BwgNK50T-DGvKgFCK.d.mts → db-verify-Yih5kWtB-B1kv76ec.d.mts} +5 -5
- package/dist/{db-verify-BwgNK50T-DGvKgFCK.d.mts.map → db-verify-Yih5kWtB-B1kv76ec.d.mts.map} +1 -1
- package/dist/{domain-type-generation-bpSO3Y0L-jo2C7LlH.mjs → domain-type-generation-CR9ECUau-DOlKbcaE.mjs} +20 -6
- package/dist/domain-type-generation-CR9ECUau-DOlKbcaE.mjs.map +1 -0
- package/dist/{domain-type-generation-PkAb39ob-Ct8AGqow.d.mts → domain-type-generation-X6-AaL1U-DHEoRf_y.d.mts} +14 -3
- package/dist/domain-type-generation-X6-AaL1U-DHEoRf_y.d.mts.map +1 -0
- package/dist/emitter.d.mts +2 -2
- package/dist/emitter.mjs +2 -2
- package/dist/emitter__domain-type-generation.d.mts +2 -2
- package/dist/emitter__domain-type-generation.mjs +2 -2
- package/dist/{errors-CXbGUWGu-CstQHPh6.mjs → errors-SoLLYLtw-DMxVbVs9.mjs} +9 -9
- package/dist/errors-SoLLYLtw-DMxVbVs9.mjs.map +1 -0
- package/dist/{exports-BZaG8_w_.mjs → exports-BXXeNWlj.mjs} +25 -47
- package/dist/exports-BXXeNWlj.mjs.map +1 -0
- package/dist/exports-CE6OD63o-4Qpqr2W7.mjs +398 -0
- package/dist/exports-CE6OD63o-4Qpqr2W7.mjs.map +1 -0
- package/dist/{exports-8ZUN43ve.mjs → exports-CYa2di3d.mjs} +382 -22
- package/dist/exports-CYa2di3d.mjs.map +1 -0
- package/dist/{graph-membership-BViWUMpP-C4lYYJdU.mjs → graph-membership-DY1Onbc3-CwBd6wuB.mjs} +3 -3
- package/dist/{graph-membership-BViWUMpP-C4lYYJdU.mjs.map → graph-membership-DY1Onbc3-CwBd6wuB.mjs.map} +1 -1
- package/dist/{import-roots-CfoYgejL.d.mts → import-roots-ARK1wjzc.d.mts} +3 -3
- package/dist/{import-roots-CfoYgejL.d.mts.map → import-roots-ARK1wjzc.d.mts.map} +1 -1
- package/dist/{import-roots-CNFBPAT1.mjs → import-roots-BHOrDJbI.mjs} +5 -5
- package/dist/import-roots-BHOrDJbI.mjs.map +1 -0
- package/dist/{index-Dgwl8Tzs.d.mts → index-D217lbiW.d.mts} +7 -3
- package/dist/index-D217lbiW.d.mts.map +1 -0
- package/dist/{index-DRs7L6N0.d.mts → index-u5RdrumF.d.mts} +2 -19
- package/dist/index-u5RdrumF.d.mts.map +1 -0
- package/dist/{invariants-CTHy88OP-CYI2a8IO.mjs → invariants-Cww4bv0v-BEiFxmbX.mjs} +3 -3
- package/dist/{invariants-CTHy88OP-CYI2a8IO.mjs.map → invariants-Cww4bv0v-BEiFxmbX.mjs.map} +1 -1
- package/dist/{io-635GlNx1-D3zrw2qu.mjs → io-BmWQNxRP-DQqbcPsS.mjs} +5 -5
- package/dist/{io-635GlNx1-D3zrw2qu.mjs.map → io-BmWQNxRP-DQqbcPsS.mjs.map} +1 -1
- package/dist/{migration-hspPIEeV.mjs → migration-B9w-7dKe.mjs} +4 -4
- package/dist/{migration-hspPIEeV.mjs.map → migration-B9w-7dKe.mjs.map} +1 -1
- package/dist/{migration-graph-_SJImD5V-BURyY1KM.mjs → migration-graph-CW4bMmTz-B5xFtFVB.mjs} +3 -3
- package/dist/{migration-graph-_SJImD5V-BURyY1KM.mjs.map → migration-graph-CW4bMmTz-B5xFtFVB.mjs.map} +1 -1
- package/dist/migration-tools.d.mts +3 -3
- package/dist/migration-tools.mjs +12 -12
- package/dist/migration-tools__aggregate.d.mts +1 -1
- package/dist/migration-tools__aggregate.mjs +1 -1
- package/dist/migration-tools__contract-snapshot-store.mjs +1 -1
- package/dist/migration-tools__errors.mjs +1 -1
- package/dist/migration-tools__invariants.mjs +1 -1
- package/dist/migration-tools__io.mjs +1 -1
- package/dist/migration-tools__migration-graph.mjs +2 -2
- package/dist/migration-tools__migration.mjs +1 -1
- package/dist/migration-tools__ref-resolution.d.mts +1 -1
- package/dist/migration-tools__ref-resolution.mjs +1 -1
- package/dist/migration-tools__refs.mjs +1 -1
- package/dist/migration-tools__spaces.d.mts +1 -1
- package/dist/migration-tools__spaces.mjs +2 -2
- package/dist/{output-CovTDY14-CUoAqLML.mjs → output-D83nTTpC-XlvN30yS.mjs} +4 -4
- package/dist/{output-CovTDY14-CUoAqLML.mjs.map → output-D83nTTpC-XlvN30yS.mjs.map} +1 -1
- package/dist/publish-surface.d.mts +1 -1
- package/dist/publish-surface.mjs +2 -2
- package/dist/publish-surface__import-roots.d.mts +1 -1
- package/dist/publish-surface__import-roots.mjs +1 -1
- package/dist/publish-surface__shells.mjs +1 -1
- package/dist/quick-reference-mongo.md +11 -11
- package/dist/quick-reference-postgres.md +10 -10
- package/dist/readme-mongo.md +6 -6
- package/dist/readme-postgres.md +6 -6
- package/dist/{ref-h6InR6dO-rGfl18Jv.mjs → ref-DcqFmceq-QaUjgZeM.mjs} +190 -87
- package/dist/ref-DcqFmceq-QaUjgZeM.mjs.map +1 -0
- package/dist/{ref-resolution-HeNBXW53.mjs → ref-resolution-BWpwb8_b.mjs} +9 -2
- package/dist/ref-resolution-BWpwb8_b.mjs.map +1 -0
- package/dist/{ref-resolution-COGOSL57.d.mts → ref-resolution-CaHQJXE0.d.mts} +11 -1
- package/dist/ref-resolution-CaHQJXE0.d.mts.map +1 -0
- package/dist/{refs-WK86uYYp-gM8tvWQP.mjs → refs-BpSpzdYB-BcDelHGt.mjs} +9 -9
- package/dist/refs-BpSpzdYB-BcDelHGt.mjs.map +1 -0
- package/dist/{shells-C4HbRAr5.mjs → shells-BIdFZwUY.mjs} +1 -6
- package/dist/shells-BIdFZwUY.mjs.map +1 -0
- package/dist/{spaces-Dj65JrwZ.d.mts → spaces-B20bgxF9.d.mts} +2 -2
- package/dist/{spaces-Dj65JrwZ.d.mts.map → spaces-B20bgxF9.d.mts.map} +1 -1
- package/dist/{spaces-4qMOAYE9.mjs → spaces-BCZiAZQn.mjs} +7 -7
- package/dist/spaces-BCZiAZQn.mjs.map +1 -0
- package/dist/{verify-contract-spaces-DhJTb0zM-B62maCfE.mjs → verify-contract-spaces-CrxvgpwD-D5LLXGci.mjs} +7 -7
- package/dist/{verify-contract-spaces-DhJTb0zM-B62maCfE.mjs.map → verify-contract-spaces-CrxvgpwD-D5LLXGci.mjs.map} +1 -1
- package/dist/vite-plugin-contract-emit.d.mts +1 -1
- package/dist/vite-plugin-contract-emit.mjs +7 -7
- package/dist/vite-plugin-contract-emit.mjs.map +1 -1
- package/package.json +16 -16
- package/dist/aggregate-CPZB020V.mjs.map +0 -1
- package/dist/domain-type-generation-PkAb39ob-Ct8AGqow.d.mts.map +0 -1
- package/dist/domain-type-generation-bpSO3Y0L-jo2C7LlH.mjs.map +0 -1
- package/dist/errors-CXbGUWGu-CstQHPh6.mjs.map +0 -1
- package/dist/exports-8ZUN43ve.mjs.map +0 -1
- package/dist/exports-BCLg4CiV-05kuwcb0.mjs +0 -160
- package/dist/exports-BCLg4CiV-05kuwcb0.mjs.map +0 -1
- package/dist/exports-BZaG8_w_.mjs.map +0 -1
- package/dist/import-roots-CNFBPAT1.mjs.map +0 -1
- package/dist/index-DRs7L6N0.d.mts.map +0 -1
- package/dist/index-Dgwl8Tzs.d.mts.map +0 -1
- package/dist/ref-h6InR6dO-rGfl18Jv.mjs.map +0 -1
- package/dist/ref-resolution-COGOSL57.d.mts.map +0 -1
- package/dist/ref-resolution-HeNBXW53.mjs.map +0 -1
- package/dist/refs-WK86uYYp-gM8tvWQP.mjs.map +0 -1
- package/dist/shells-C4HbRAr5.mjs.map +0 -1
- package/dist/spaces-4qMOAYE9.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-plugin-contract-emit.mjs","names":[],"sources":["../../../../1-framework/3-tooling/vite-plugin-contract-emit/dist/index.mjs"],"sourcesContent":["import { disposeEmitQueue, executeContractEmit } from \"@internal/cli/control-api\";\nimport { loadConfigForSections } from \"@internal/config-loader\";\nimport { getEmittedArtifactPaths } from \"@internal/emitter\";\nimport { extname, resolve } from \"pathe\";\n//#region src/plugin.ts\nconst PLUGIN_NAME = \"prisma-vite-plugin-contract-emit\";\nconst DEFAULT_DEBOUNCE_MS = 150;\nconst DEFAULT_CONFIG_PATH = \"prisma.config.ts\";\nconst MODULE_GRAPH_EXTENSIONS = /* @__PURE__ */ new Set([\n\t\".js\",\n\t\".jsx\",\n\t\".mjs\",\n\t\".cjs\",\n\t\".ts\",\n\t\".tsx\",\n\t\".mts\",\n\t\".cts\"\n]);\n/**\n* Creates a Vite plugin that automatically emits Prisma Next contract artifacts.\n*\n* The plugin resolves watched files from contract source provider metadata,\n* re-emitting contract artifacts on changes with debounce while serializing\n* overlapping emits into a single follow-up run.\n*\n* @param configPath - Path to prisma.config.ts (relative or absolute). Defaults to 'prisma.config.ts'\n* @param options - Optional plugin configuration\n* @returns Vite plugin\n*\n* @example\n* ```ts\n* import { defineConfig } from 'vite';\n* import { prismaVitePlugin } from '@internal/vite-plugin-contract-emit';\n*\n* // Use default config path\n* export default defineConfig({\n* plugins: [prismaVitePlugin()],\n* });\n*\n* // Or specify a custom path\n* export default defineConfig({\n* plugins: [prismaVitePlugin('custom/prisma.config.ts')],\n* });\n* ```\n*/\nfunction prismaVitePlugin(configPath = DEFAULT_CONFIG_PATH, options) {\n\tconst debounceMs = options?.debounceMs ?? DEFAULT_DEBOUNCE_MS;\n\tconst logLevel = options?.logLevel ?? \"info\";\n\tlet absoluteConfigPath;\n\tconst watchedFiles = /* @__PURE__ */ new Set();\n\tconst ignoredOutputFiles = /* @__PURE__ */ new Set();\n\tconst ownedOutputJsonPaths = /* @__PURE__ */ new Set();\n\tlet debounceTimer = null;\n\tlet lifecycleAbortController = new AbortController();\n\tlet server = null;\n\tlet isEmitInFlight = false;\n\tlet hasQueuedEmit = false;\n\tlet queuedEmitNeedsWatchedFileRefresh = false;\n\tlet didWarnConfigWatchFallback = false;\n\tfunction log(message, level = \"info\") {\n\t\tif (logLevel === \"silent\") return;\n\t\tif (level === \"debug\" && logLevel !== \"debug\") return;\n\t\tconsole.log(`[${PLUGIN_NAME}] ${message}`);\n\t}\n\tfunction logError(message, error) {\n\t\tif (logLevel === \"silent\") return;\n\t\tconst errorMessage = error instanceof Error ? error.message : error ? String(error) : \"\";\n\t\tconsole.error(`[${PLUGIN_NAME}] ${message}${errorMessage ? ` ${errorMessage}` : \"\"}`);\n\t\tif (error instanceof Error && error.stack && logLevel === \"debug\") console.error(error.stack);\n\t}\n\tfunction logWarning(message) {\n\t\tif (logLevel === \"silent\") return;\n\t\tconsole.warn(`[${PLUGIN_NAME}] ${message}`);\n\t}\n\tfunction handleTrackedFileChange(file) {\n\t\tconst normalized = resolve(file);\n\t\tif (ignoredOutputFiles.has(normalized)) {\n\t\t\tlog(`Ignoring emitted artifact update: ${normalized}`, \"debug\");\n\t\t\treturn;\n\t\t}\n\t\tif (watchedFiles.has(normalized)) {\n\t\t\tlog(`Detected change: ${normalized}`, \"debug\");\n\t\t\tscheduleEmit();\n\t\t}\n\t}\n\tasync function emitContract({ refreshWatchedFiles = true } = {}) {\n\t\tconst signal = lifecycleAbortController.signal;\n\t\ttry {\n\t\t\tif (server && refreshWatchedFiles) await updateWatchedFiles(server);\n\t\t\tconst configResult = await loadConfigForSections(absoluteConfigPath, [\n\t\t\t\t\"contract\",\n\t\t\t\t\"family\",\n\t\t\t\t\"target\",\n\t\t\t\t\"adapter\",\n\t\t\t\t\"extensions\"\n\t\t\t]);\n\t\t\tif (!configResult.ok) throw configResult.failure;\n\t\t\tconst result = await executeContractEmit({\n\t\t\t\tconfig: configResult.value,\n\t\t\t\tcwd: process.cwd(),\n\t\t\t\tconfigPath: absoluteConfigPath,\n\t\t\t\tsignal\n\t\t\t});\n\t\t\tlog(`Emitted contract (storageHash: ${result.storageHash.slice(0, 8)}...)`);\n\t\t\tlog(` → ${result.files.json}`, \"debug\");\n\t\t\tlog(` → ${result.files.dts}`, \"debug\");\n\t\t\tif (server) {\n\t\t\t\tserver.moduleGraph.onFileChange(result.files.json);\n\t\t\t\tserver.moduleGraph.onFileChange(result.files.dts);\n\t\t\t}\n\t\t\tif (server && !hasQueuedEmit) server.ws.send({ type: \"full-reload\" });\n\t\t\telse if (hasQueuedEmit) log(\"Skipped full reload because a newer emit is queued\", \"debug\");\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tif (signal.aborted || error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\tlog(\"Emit cancelled\", \"debug\");\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tlogError(\"Contract emit failed:\", error);\n\t\t\tif (server) {\n\t\t\t\tconst errorMessage = error instanceof Error ? error.message : String(error);\n\t\t\t\tconst errorStack = error instanceof Error ? error.stack : void 0;\n\t\t\t\tserver.ws.send({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\terr: {\n\t\t\t\t\t\tmessage: `[prisma-next] ${errorMessage}`,\n\t\t\t\t\t\tstack: errorStack ?? \"\",\n\t\t\t\t\t\tplugin: PLUGIN_NAME\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t}\n\tasync function drainQueuedEmits() {\n\t\tif (isEmitInFlight || lifecycleAbortController.signal.aborted) return;\n\t\tisEmitInFlight = true;\n\t\ttry {\n\t\t\twhile (hasQueuedEmit && !lifecycleAbortController.signal.aborted) {\n\t\t\t\tconst refreshWatchedFiles = queuedEmitNeedsWatchedFileRefresh;\n\t\t\t\thasQueuedEmit = false;\n\t\t\t\tqueuedEmitNeedsWatchedFileRefresh = false;\n\t\t\t\tawait emitContract({ refreshWatchedFiles });\n\t\t\t}\n\t\t} finally {\n\t\t\tisEmitInFlight = false;\n\t\t}\n\t}\n\tfunction requestEmit({ refreshWatchedFiles = true } = {}) {\n\t\tif (lifecycleAbortController.signal.aborted) return Promise.resolve();\n\t\thasQueuedEmit = true;\n\t\tqueuedEmitNeedsWatchedFileRefresh ||= refreshWatchedFiles;\n\t\tif (isEmitInFlight) {\n\t\t\tlog(\"Queued follow-up emit while another emit is running\", \"debug\");\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\treturn drainQueuedEmits();\n\t}\n\tfunction scheduleEmit() {\n\t\tif (debounceTimer) clearTimeout(debounceTimer);\n\t\tdebounceTimer = setTimeout(() => {\n\t\t\tdebounceTimer = null;\n\t\t\trequestEmit();\n\t\t}, debounceMs);\n\t}\n\tfunction resolveContractOutputFiles(contractOutput) {\n\t\tif (contractOutput === void 0) return /* @__PURE__ */ new Set();\n\t\tconst { jsonPath, dtsPath } = getEmittedArtifactPaths(contractOutput);\n\t\townedOutputJsonPaths.add(jsonPath);\n\t\treturn /* @__PURE__ */ new Set([jsonPath, dtsPath]);\n\t}\n\tfunction isModuleGraphRoot(filePath) {\n\t\treturn MODULE_GRAPH_EXTENSIONS.has(extname(filePath));\n\t}\n\tasync function collectModuleGraphFiles(viteServer, roots) {\n\t\tconst files = /* @__PURE__ */ new Set();\n\t\tconst uniqueRoots = [...new Set(roots)];\n\t\tfor (const root of uniqueRoots) try {\n\t\t\tawait viteServer.ssrLoadModule(root);\n\t\t} catch (error) {\n\t\t\tif (root === absoluteConfigPath) logError(\"Failed to load config module graph root:\", error);\n\t\t\telse log(`Skipped module-graph root after load failure: ${root}`, \"debug\");\n\t\t}\n\t\ttry {\n\t\t\tconst visited = /* @__PURE__ */ new Set();\n\t\t\tconst queue = [...uniqueRoots];\n\t\t\twhile (queue.length > 0) {\n\t\t\t\tconst current = queue.shift();\n\t\t\t\tif (current === void 0 || visited.has(current)) continue;\n\t\t\t\tvisited.add(current);\n\t\t\t\tconst mod = viteServer.moduleGraph.getModuleById(current);\n\t\t\t\tif (!mod) continue;\n\t\t\t\tif (mod.file) files.add(mod.file);\n\t\t\t\tfor (const imported of mod.importedModules) if (imported.id && !visited.has(imported.id)) queue.push(imported.id);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tlogError(\"Failed to collect watched files:\", error);\n\t\t}\n\t\treturn files;\n\t}\n\tasync function resolveWatchedFiles(viteServer) {\n\t\tconst previousWatchedFiles = new Set(watchedFiles);\n\t\tconst previousIgnoredOutputFiles = new Set(ignoredOutputFiles);\n\t\tignoredOutputFiles.clear();\n\t\ttry {\n\t\t\tconst configResult = await loadConfigForSections(absoluteConfigPath, [\"contract\"]);\n\t\t\tif (!configResult.ok) throw configResult.failure;\n\t\t\tconst config = configResult.value;\n\t\t\tdidWarnConfigWatchFallback = false;\n\t\t\tconst contract = config.contract;\n\t\t\tif (!contract) return /* @__PURE__ */ new Set([absoluteConfigPath]);\n\t\t\tconst files = /* @__PURE__ */ new Set([absoluteConfigPath]);\n\t\t\tconst inputs = contract.source.inputs ?? [];\n\t\t\tfor (const outputFile of resolveContractOutputFiles(contract.output)) ignoredOutputFiles.add(outputFile);\n\t\t\tconst moduleGraphRoots = [absoluteConfigPath];\n\t\t\tfor (const input of inputs) {\n\t\t\t\tif (!ignoredOutputFiles.has(input)) files.add(input);\n\t\t\t\tif (isModuleGraphRoot(input)) moduleGraphRoots.push(input);\n\t\t\t}\n\t\t\tfor (const file of await collectModuleGraphFiles(viteServer, moduleGraphRoots)) if (!ignoredOutputFiles.has(file)) files.add(file);\n\t\t\treturn files;\n\t\t} catch (error) {\n\t\t\tif (previousIgnoredOutputFiles.size > 0) for (const outputFile of previousIgnoredOutputFiles) ignoredOutputFiles.add(outputFile);\n\t\t\tif (!didWarnConfigWatchFallback) {\n\t\t\t\tdidWarnConfigWatchFallback = true;\n\t\t\t\tconst reason = error instanceof Error ? ` ${error.message}` : \"\";\n\t\t\t\tlogWarning(`${previousWatchedFiles.size > 0 ? `Watching the previous dependency set plus ${absoluteConfigPath}` : `Watching only ${absoluteConfigPath}`} because Prisma Next config inputs could not be resolved.${reason} Contract watch coverage is partial.`);\n\t\t\t}\n\t\t\tif (previousWatchedFiles.size > 0) {\n\t\t\t\tpreviousWatchedFiles.add(absoluteConfigPath);\n\t\t\t\treturn previousWatchedFiles;\n\t\t\t}\n\t\t\treturn /* @__PURE__ */ new Set([absoluteConfigPath]);\n\t\t}\n\t}\n\tasync function updateWatchedFiles(viteServer) {\n\t\tconst newWatchedFiles = await resolveWatchedFiles(viteServer);\n\t\tconst toAdd = [];\n\t\tconst toRemove = [];\n\t\tfor (const file of newWatchedFiles) if (!watchedFiles.has(file)) toAdd.push(file);\n\t\tfor (const file of watchedFiles) if (!newWatchedFiles.has(file)) toRemove.push(file);\n\t\tfor (const file of toAdd) viteServer.watcher.add(file);\n\t\tfor (const file of toRemove) viteServer.watcher.unwatch(file);\n\t\twatchedFiles.clear();\n\t\tfor (const file of newWatchedFiles) watchedFiles.add(file);\n\t\tif (toAdd.length > 0 || toRemove.length > 0) log(`Updated watched files: +${toAdd.length} -${toRemove.length}`, \"debug\");\n\t}\n\treturn {\n\t\tname: PLUGIN_NAME,\n\t\tconfigResolved(config) {\n\t\t\tabsoluteConfigPath = resolve(config.root, configPath);\n\t\t\tlog(`Config path: ${absoluteConfigPath}`, \"debug\");\n\t\t},\n\t\tasync configureServer(viteServer) {\n\t\t\tserver = viteServer;\n\t\t\tlifecycleAbortController = new AbortController();\n\t\t\tisEmitInFlight = false;\n\t\t\thasQueuedEmit = false;\n\t\t\tqueuedEmitNeedsWatchedFileRefresh = false;\n\t\t\tconst onTrackedWatcherEvent = (file) => {\n\t\t\t\thandleTrackedFileChange(file);\n\t\t\t};\n\t\t\tconst cleanup = () => {\n\t\t\t\tif (debounceTimer) {\n\t\t\t\t\tclearTimeout(debounceTimer);\n\t\t\t\t\tdebounceTimer = null;\n\t\t\t\t}\n\t\t\t\thasQueuedEmit = false;\n\t\t\t\tqueuedEmitNeedsWatchedFileRefresh = false;\n\t\t\t\tlifecycleAbortController.abort();\n\t\t\t\tviteServer.watcher.off?.(\"change\", onTrackedWatcherEvent);\n\t\t\t\tviteServer.watcher.off?.(\"add\", onTrackedWatcherEvent);\n\t\t\t\tviteServer.watcher.off?.(\"unlink\", onTrackedWatcherEvent);\n\t\t\t\tignoredOutputFiles.clear();\n\t\t\t\tfor (const outputJsonPath of ownedOutputJsonPaths) disposeEmitQueue(outputJsonPath);\n\t\t\t\townedOutputJsonPaths.clear();\n\t\t\t\tdidWarnConfigWatchFallback = false;\n\t\t\t\tserver = null;\n\t\t\t\twatchedFiles.clear();\n\t\t\t\tlog(\"Server closed, cleaned up resources\", \"debug\");\n\t\t\t};\n\t\t\tviteServer.httpServer?.on(\"close\", cleanup);\n\t\t\tviteServer.watcher?.on?.(\"close\", cleanup);\n\t\t\tviteServer.watcher.on(\"change\", onTrackedWatcherEvent);\n\t\t\tviteServer.watcher.on(\"add\", onTrackedWatcherEvent);\n\t\t\tviteServer.watcher.on(\"unlink\", onTrackedWatcherEvent);\n\t\t\tconst initialWatchedFiles = await resolveWatchedFiles(viteServer);\n\t\t\tfor (const file of initialWatchedFiles) watchedFiles.add(file);\n\t\t\tfor (const file of watchedFiles) viteServer.watcher.add(file);\n\t\t\tif (watchedFiles.size === 0) {\n\t\t\t\tconst errorMessage = `No files are being watched. The config file \"${absoluteConfigPath}\" could not be loaded or has no dependencies. HMR for contract changes will not work.`;\n\t\t\t\tlogError(errorMessage);\n\t\t\t\tviteServer.ws.send({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\terr: {\n\t\t\t\t\t\tmessage: `[prisma-next] ${errorMessage}`,\n\t\t\t\t\t\tstack: \"\",\n\t\t\t\t\t\tplugin: PLUGIN_NAME\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tlog(`Watching ${watchedFiles.size} files`, \"debug\");\n\t\t\t\tif (logLevel === \"debug\") for (const file of watchedFiles) log(` ${file}`, \"debug\");\n\t\t\t}\n\t\t\tawait requestEmit({ refreshWatchedFiles: false });\n\t\t},\n\t\thandleHotUpdate(ctx) {\n\t\t\thandleTrackedFileChange(ctx.file);\n\t\t}\n\t};\n}\n//#endregion\nexport { prismaVitePlugin };\n\n//# sourceMappingURL=index.mjs.map"],"mappings":";;;;;AAKA,MAAM,cAAc;AACpB,MAAM,sBAAsB;AAC5B,MAAM,sBAAsB;AAC5B,MAAM,0CAA0C,IAAI,IAAI;CACvD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BD,SAAS,iBAAiB,aAAa,qBAAqB,SAAS;CACpE,MAAM,aAAa,SAAS,cAAc;CAC1C,MAAM,WAAW,SAAS,YAAY;CACtC,IAAI;CACJ,MAAM,+BAA+B,IAAI,IAAI;CAC7C,MAAM,qCAAqC,IAAI,IAAI;CACnD,MAAM,uCAAuC,IAAI,IAAI;CACrD,IAAI,gBAAgB;CACpB,IAAI,2BAA2B,IAAI,gBAAgB;CACnD,IAAI,SAAS;CACb,IAAI,iBAAiB;CACrB,IAAI,gBAAgB;CACpB,IAAI,oCAAoC;CACxC,IAAI,6BAA6B;CACjC,SAAS,IAAI,SAAS,QAAQ,QAAQ;EACrC,IAAI,aAAa,UAAU;EAC3B,IAAI,UAAU,WAAW,aAAa,SAAS;EAC/C,QAAQ,IAAI,IAAI,YAAY,IAAI,SAAS;CAC1C;CACA,SAAS,SAAS,SAAS,OAAO;EACjC,IAAI,aAAa,UAAU;EAC3B,MAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU,QAAQ,OAAO,KAAK,IAAI;EACtF,QAAQ,MAAM,IAAI,YAAY,IAAI,UAAU,eAAe,IAAI,iBAAiB,IAAI;EACpF,IAAI,iBAAiB,SAAS,MAAM,SAAS,aAAa,SAAS,QAAQ,MAAM,MAAM,KAAK;CAC7F;CACA,SAAS,WAAW,SAAS;EAC5B,IAAI,aAAa,UAAU;EAC3B,QAAQ,KAAK,IAAI,YAAY,IAAI,SAAS;CAC3C;CACA,SAAS,wBAAwB,MAAM;EACtC,MAAM,aAAa,QAAQ,IAAI;EAC/B,IAAI,mBAAmB,IAAI,UAAU,GAAG;GACvC,IAAI,qCAAqC,cAAc,OAAO;GAC9D;EACD;EACA,IAAI,aAAa,IAAI,UAAU,GAAG;GACjC,IAAI,oBAAoB,cAAc,OAAO;GAC7C,aAAa;EACd;CACD;CACA,eAAe,aAAa,EAAE,sBAAsB,SAAS,CAAC,GAAG;EAChE,MAAM,SAAS,yBAAyB;EACxC,IAAI;GACH,IAAI,UAAU,qBAAqB,MAAM,mBAAmB,MAAM;GAClE,MAAM,eAAe,MAAM,sBAAsB,oBAAoB;IACpE;IACA;IACA;IACA;IACA;GACD,CAAC;GACD,IAAI,CAAC,aAAa,IAAI,MAAM,aAAa;GACzC,MAAM,SAAS,MAAM,oBAAoB;IACxC,QAAQ,aAAa;IACrB,KAAK,QAAQ,IAAI;IACjB,YAAY;IACZ;GACD,CAAC;GACD,IAAI,kCAAkC,OAAO,YAAY,MAAM,GAAG,CAAC,EAAE,KAAK;GAC1E,IAAI,OAAO,OAAO,MAAM,QAAQ,OAAO;GACvC,IAAI,OAAO,OAAO,MAAM,OAAO,OAAO;GACtC,IAAI,QAAQ;IACX,OAAO,YAAY,aAAa,OAAO,MAAM,IAAI;IACjD,OAAO,YAAY,aAAa,OAAO,MAAM,GAAG;GACjD;GACA,IAAI,UAAU,CAAC,eAAe,OAAO,GAAG,KAAK,EAAE,MAAM,cAAc,CAAC;QAC/D,IAAI,eAAe,IAAI,sDAAsD,OAAO;GACzF,OAAO;EACR,SAAS,OAAO;GACf,IAAI,OAAO,WAAW,iBAAiB,SAAS,MAAM,SAAS,cAAc;IAC5E,IAAI,kBAAkB,OAAO;IAC7B,OAAO;GACR;GACA,SAAS,yBAAyB,KAAK;GACvC,IAAI,QAAQ;IACX,MAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;IAC1E,MAAM,aAAa,iBAAiB,QAAQ,MAAM,QAAQ,KAAK;IAC/D,OAAO,GAAG,KAAK;KACd,MAAM;KACN,KAAK;MACJ,SAAS,iBAAiB;MAC1B,OAAO,cAAc;MACrB,QAAQ;KACT;IACD,CAAC;GACF;GACA,OAAO;EACR;CACD;CACA,eAAe,mBAAmB;EACjC,IAAI,kBAAkB,yBAAyB,OAAO,SAAS;EAC/D,iBAAiB;EACjB,IAAI;GACH,OAAO,iBAAiB,CAAC,yBAAyB,OAAO,SAAS;IACjE,MAAM,sBAAsB;IAC5B,gBAAgB;IAChB,oCAAoC;IACpC,MAAM,aAAa,EAAE,oBAAoB,CAAC;GAC3C;EACD,UAAU;GACT,iBAAiB;EAClB;CACD;CACA,SAAS,YAAY,EAAE,sBAAsB,SAAS,CAAC,GAAG;EACzD,IAAI,yBAAyB,OAAO,SAAS,OAAO,QAAQ,QAAQ;EACpE,gBAAgB;EAChB,sCAAsC;EACtC,IAAI,gBAAgB;GACnB,IAAI,uDAAuD,OAAO;GAClE,OAAO,QAAQ,QAAQ;EACxB;EACA,OAAO,iBAAiB;CACzB;CACA,SAAS,eAAe;EACvB,IAAI,eAAe,aAAa,aAAa;EAC7C,gBAAgB,iBAAiB;GAChC,gBAAgB;GAChB,YAAY;EACb,GAAG,UAAU;CACd;CACA,SAAS,2BAA2B,gBAAgB;EACnD,IAAI,mBAAmB,KAAK,GAAG,uBAAuB,IAAI,IAAI;EAC9D,MAAM,EAAE,UAAU,YAAY,wBAAwB,cAAc;EACpE,qBAAqB,IAAI,QAAQ;EACjC,uBAAuB,IAAI,IAAI,CAAC,UAAU,OAAO,CAAC;CACnD;CACA,SAAS,kBAAkB,UAAU;EACpC,OAAO,wBAAwB,IAAI,QAAQ,QAAQ,CAAC;CACrD;CACA,eAAe,wBAAwB,YAAY,OAAO;EACzD,MAAM,wBAAwB,IAAI,IAAI;EACtC,MAAM,cAAc,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC;EACtC,KAAK,MAAM,QAAQ,aAAa,IAAI;GACnC,MAAM,WAAW,cAAc,IAAI;EACpC,SAAS,OAAO;GACf,IAAI,SAAS,oBAAoB,SAAS,4CAA4C,KAAK;QACtF,IAAI,iDAAiD,QAAQ,OAAO;EAC1E;EACA,IAAI;GACH,MAAM,0BAA0B,IAAI,IAAI;GACxC,MAAM,QAAQ,CAAC,GAAG,WAAW;GAC7B,OAAO,MAAM,SAAS,GAAG;IACxB,MAAM,UAAU,MAAM,MAAM;IAC5B,IAAI,YAAY,KAAK,KAAK,QAAQ,IAAI,OAAO,GAAG;IAChD,QAAQ,IAAI,OAAO;IACnB,MAAM,MAAM,WAAW,YAAY,cAAc,OAAO;IACxD,IAAI,CAAC,KAAK;IACV,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI;IAChC,KAAK,MAAM,YAAY,IAAI,iBAAiB,IAAI,SAAS,MAAM,CAAC,QAAQ,IAAI,SAAS,EAAE,GAAG,MAAM,KAAK,SAAS,EAAE;GACjH;EACD,SAAS,OAAO;GACf,SAAS,oCAAoC,KAAK;EACnD;EACA,OAAO;CACR;CACA,eAAe,oBAAoB,YAAY;EAC9C,MAAM,uBAAuB,IAAI,IAAI,YAAY;EACjD,MAAM,6BAA6B,IAAI,IAAI,kBAAkB;EAC7D,mBAAmB,MAAM;EACzB,IAAI;GACH,MAAM,eAAe,MAAM,sBAAsB,oBAAoB,CAAC,UAAU,CAAC;GACjF,IAAI,CAAC,aAAa,IAAI,MAAM,aAAa;GACzC,MAAM,SAAS,aAAa;GAC5B,6BAA6B;GAC7B,MAAM,WAAW,OAAO;GACxB,IAAI,CAAC,UAAU,uBAAuB,IAAI,IAAI,CAAC,kBAAkB,CAAC;GAClE,MAAM,wBAAwB,IAAI,IAAI,CAAC,kBAAkB,CAAC;GAC1D,MAAM,SAAS,SAAS,OAAO,UAAU,CAAC;GAC1C,KAAK,MAAM,cAAc,2BAA2B,SAAS,MAAM,GAAG,mBAAmB,IAAI,UAAU;GACvG,MAAM,mBAAmB,CAAC,kBAAkB;GAC5C,KAAK,MAAM,SAAS,QAAQ;IAC3B,IAAI,CAAC,mBAAmB,IAAI,KAAK,GAAG,MAAM,IAAI,KAAK;IACnD,IAAI,kBAAkB,KAAK,GAAG,iBAAiB,KAAK,KAAK;GAC1D;GACA,KAAK,MAAM,QAAQ,MAAM,wBAAwB,YAAY,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI;GACjI,OAAO;EACR,SAAS,OAAO;GACf,IAAI,2BAA2B,OAAO,GAAG,KAAK,MAAM,cAAc,4BAA4B,mBAAmB,IAAI,UAAU;GAC/H,IAAI,CAAC,4BAA4B;IAChC,6BAA6B;IAC7B,MAAM,SAAS,iBAAiB,QAAQ,IAAI,MAAM,YAAY;IAC9D,WAAW,GAAG,qBAAqB,OAAO,IAAI,6CAA6C,uBAAuB,iBAAiB,qBAAqB,2DAA2D,OAAO,qCAAqC;GAChQ;GACA,IAAI,qBAAqB,OAAO,GAAG;IAClC,qBAAqB,IAAI,kBAAkB;IAC3C,OAAO;GACR;GACA,uBAAuB,IAAI,IAAI,CAAC,kBAAkB,CAAC;EACpD;CACD;CACA,eAAe,mBAAmB,YAAY;EAC7C,MAAM,kBAAkB,MAAM,oBAAoB,UAAU;EAC5D,MAAM,QAAQ,CAAC;EACf,MAAM,WAAW,CAAC;EAClB,KAAK,MAAM,QAAQ,iBAAiB,IAAI,CAAC,aAAa,IAAI,IAAI,GAAG,MAAM,KAAK,IAAI;EAChF,KAAK,MAAM,QAAQ,cAAc,IAAI,CAAC,gBAAgB,IAAI,IAAI,GAAG,SAAS,KAAK,IAAI;EACnF,KAAK,MAAM,QAAQ,OAAO,WAAW,QAAQ,IAAI,IAAI;EACrD,KAAK,MAAM,QAAQ,UAAU,WAAW,QAAQ,QAAQ,IAAI;EAC5D,aAAa,MAAM;EACnB,KAAK,MAAM,QAAQ,iBAAiB,aAAa,IAAI,IAAI;EACzD,IAAI,MAAM,SAAS,KAAK,SAAS,SAAS,GAAG,IAAI,2BAA2B,MAAM,OAAO,IAAI,SAAS,UAAU,OAAO;CACxH;CACA,OAAO;EACN,MAAM;EACN,eAAe,QAAQ;GACtB,qBAAqB,QAAQ,OAAO,MAAM,UAAU;GACpD,IAAI,gBAAgB,sBAAsB,OAAO;EAClD;EACA,MAAM,gBAAgB,YAAY;GACjC,SAAS;GACT,2BAA2B,IAAI,gBAAgB;GAC/C,iBAAiB;GACjB,gBAAgB;GAChB,oCAAoC;GACpC,MAAM,yBAAyB,SAAS;IACvC,wBAAwB,IAAI;GAC7B;GACA,MAAM,gBAAgB;IACrB,IAAI,eAAe;KAClB,aAAa,aAAa;KAC1B,gBAAgB;IACjB;IACA,gBAAgB;IAChB,oCAAoC;IACpC,yBAAyB,MAAM;IAC/B,WAAW,QAAQ,MAAM,UAAU,qBAAqB;IACxD,WAAW,QAAQ,MAAM,OAAO,qBAAqB;IACrD,WAAW,QAAQ,MAAM,UAAU,qBAAqB;IACxD,mBAAmB,MAAM;IACzB,KAAK,MAAM,kBAAkB,sBAAsB,iBAAiB,cAAc;IAClF,qBAAqB,MAAM;IAC3B,6BAA6B;IAC7B,SAAS;IACT,aAAa,MAAM;IACnB,IAAI,uCAAuC,OAAO;GACnD;GACA,WAAW,YAAY,GAAG,SAAS,OAAO;GAC1C,WAAW,SAAS,KAAK,SAAS,OAAO;GACzC,WAAW,QAAQ,GAAG,UAAU,qBAAqB;GACrD,WAAW,QAAQ,GAAG,OAAO,qBAAqB;GAClD,WAAW,QAAQ,GAAG,UAAU,qBAAqB;GACrD,MAAM,sBAAsB,MAAM,oBAAoB,UAAU;GAChE,KAAK,MAAM,QAAQ,qBAAqB,aAAa,IAAI,IAAI;GAC7D,KAAK,MAAM,QAAQ,cAAc,WAAW,QAAQ,IAAI,IAAI;GAC5D,IAAI,aAAa,SAAS,GAAG;IAC5B,MAAM,eAAe,gDAAgD,mBAAmB;IACxF,SAAS,YAAY;IACrB,WAAW,GAAG,KAAK;KAClB,MAAM;KACN,KAAK;MACJ,SAAS,iBAAiB;MAC1B,OAAO;MACP,QAAQ;KACT;IACD,CAAC;GACF,OAAO;IACN,IAAI,YAAY,aAAa,KAAK,SAAS,OAAO;IAClD,IAAI,aAAa,SAAS,KAAK,MAAM,QAAQ,cAAc,IAAI,KAAK,QAAQ,OAAO;GACpF;GACA,MAAM,YAAY,EAAE,qBAAqB,MAAM,CAAC;EACjD;EACA,gBAAgB,KAAK;GACpB,wBAAwB,IAAI,IAAI;EACjC;CACD;AACD"}
|
|
1
|
+
{"version":3,"file":"vite-plugin-contract-emit.mjs","names":[],"sources":["../../../../1-framework/3-tooling/vite-plugin-contract-emit/dist/index.mjs"],"sourcesContent":["import { disposeEmitQueue, executeContractEmit } from \"@internal/cli/control-api\";\nimport { loadConfigForSections } from \"@internal/config-loader\";\nimport { getEmittedArtifactPaths } from \"@internal/emitter\";\nimport { extname, resolve } from \"pathe\";\n//#region src/plugin.ts\nconst PLUGIN_NAME = \"prisma-vite-plugin-contract-emit\";\nconst DEFAULT_DEBOUNCE_MS = 150;\nconst DEFAULT_CONFIG_PATH = \"prisma.config.ts\";\nconst MODULE_GRAPH_EXTENSIONS = /* @__PURE__ */ new Set([\n\t\".js\",\n\t\".jsx\",\n\t\".mjs\",\n\t\".cjs\",\n\t\".ts\",\n\t\".tsx\",\n\t\".mts\",\n\t\".cts\"\n]);\n/**\n* Creates a Vite plugin that automatically emits Prisma 8 contract artifacts.\n*\n* The plugin resolves watched files from contract source provider metadata,\n* re-emitting contract artifacts on changes with debounce while serializing\n* overlapping emits into a single follow-up run.\n*\n* @param configPath - Path to prisma.config.ts (relative or absolute). Defaults to 'prisma.config.ts'\n* @param options - Optional plugin configuration\n* @returns Vite plugin\n*\n* @example\n* ```ts\n* import { defineConfig } from 'vite';\n* import { prismaVitePlugin } from '@internal/vite-plugin-contract-emit';\n*\n* // Use default config path\n* export default defineConfig({\n* plugins: [prismaVitePlugin()],\n* });\n*\n* // Or specify a custom path\n* export default defineConfig({\n* plugins: [prismaVitePlugin('custom/prisma.config.ts')],\n* });\n* ```\n*/\nfunction prismaVitePlugin(configPath = DEFAULT_CONFIG_PATH, options) {\n\tconst debounceMs = options?.debounceMs ?? DEFAULT_DEBOUNCE_MS;\n\tconst logLevel = options?.logLevel ?? \"info\";\n\tlet absoluteConfigPath;\n\tconst watchedFiles = /* @__PURE__ */ new Set();\n\tconst ignoredOutputFiles = /* @__PURE__ */ new Set();\n\tconst ownedOutputJsonPaths = /* @__PURE__ */ new Set();\n\tlet debounceTimer = null;\n\tlet lifecycleAbortController = new AbortController();\n\tlet server = null;\n\tlet isEmitInFlight = false;\n\tlet hasQueuedEmit = false;\n\tlet queuedEmitNeedsWatchedFileRefresh = false;\n\tlet didWarnConfigWatchFallback = false;\n\tfunction log(message, level = \"info\") {\n\t\tif (logLevel === \"silent\") return;\n\t\tif (level === \"debug\" && logLevel !== \"debug\") return;\n\t\tconsole.log(`[${PLUGIN_NAME}] ${message}`);\n\t}\n\tfunction logError(message, error) {\n\t\tif (logLevel === \"silent\") return;\n\t\tconst errorMessage = error instanceof Error ? error.message : error ? String(error) : \"\";\n\t\tconsole.error(`[${PLUGIN_NAME}] ${message}${errorMessage ? ` ${errorMessage}` : \"\"}`);\n\t\tif (error instanceof Error && error.stack && logLevel === \"debug\") console.error(error.stack);\n\t}\n\tfunction logWarning(message) {\n\t\tif (logLevel === \"silent\") return;\n\t\tconsole.warn(`[${PLUGIN_NAME}] ${message}`);\n\t}\n\tfunction handleTrackedFileChange(file) {\n\t\tconst normalized = resolve(file);\n\t\tif (ignoredOutputFiles.has(normalized)) {\n\t\t\tlog(`Ignoring emitted artifact update: ${normalized}`, \"debug\");\n\t\t\treturn;\n\t\t}\n\t\tif (watchedFiles.has(normalized)) {\n\t\t\tlog(`Detected change: ${normalized}`, \"debug\");\n\t\t\tscheduleEmit();\n\t\t}\n\t}\n\tasync function emitContract({ refreshWatchedFiles = true } = {}) {\n\t\tconst signal = lifecycleAbortController.signal;\n\t\ttry {\n\t\t\tif (server && refreshWatchedFiles) await updateWatchedFiles(server);\n\t\t\tconst configResult = await loadConfigForSections(absoluteConfigPath, [\n\t\t\t\t\"contract\",\n\t\t\t\t\"family\",\n\t\t\t\t\"target\",\n\t\t\t\t\"adapter\",\n\t\t\t\t\"extensions\"\n\t\t\t]);\n\t\t\tif (!configResult.ok) throw configResult.failure;\n\t\t\tconst result = await executeContractEmit({\n\t\t\t\tconfig: configResult.value,\n\t\t\t\tcwd: process.cwd(),\n\t\t\t\tconfigPath: absoluteConfigPath,\n\t\t\t\tsignal\n\t\t\t});\n\t\t\tlog(`Emitted contract (storageHash: ${result.storageHash.slice(0, 8)}...)`);\n\t\t\tlog(` → ${result.files.json}`, \"debug\");\n\t\t\tlog(` → ${result.files.dts}`, \"debug\");\n\t\t\tif (server) {\n\t\t\t\tserver.moduleGraph.onFileChange(result.files.json);\n\t\t\t\tserver.moduleGraph.onFileChange(result.files.dts);\n\t\t\t}\n\t\t\tif (server && !hasQueuedEmit) server.ws.send({ type: \"full-reload\" });\n\t\t\telse if (hasQueuedEmit) log(\"Skipped full reload because a newer emit is queued\", \"debug\");\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tif (signal.aborted || error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\tlog(\"Emit cancelled\", \"debug\");\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tlogError(\"Contract emit failed:\", error);\n\t\t\tif (server) {\n\t\t\t\tconst errorMessage = error instanceof Error ? error.message : String(error);\n\t\t\t\tconst errorStack = error instanceof Error ? error.stack : void 0;\n\t\t\t\tserver.ws.send({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\terr: {\n\t\t\t\t\t\tmessage: `[prisma] ${errorMessage}`,\n\t\t\t\t\t\tstack: errorStack ?? \"\",\n\t\t\t\t\t\tplugin: PLUGIN_NAME\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t}\n\tasync function drainQueuedEmits() {\n\t\tif (isEmitInFlight || lifecycleAbortController.signal.aborted) return;\n\t\tisEmitInFlight = true;\n\t\ttry {\n\t\t\twhile (hasQueuedEmit && !lifecycleAbortController.signal.aborted) {\n\t\t\t\tconst refreshWatchedFiles = queuedEmitNeedsWatchedFileRefresh;\n\t\t\t\thasQueuedEmit = false;\n\t\t\t\tqueuedEmitNeedsWatchedFileRefresh = false;\n\t\t\t\tawait emitContract({ refreshWatchedFiles });\n\t\t\t}\n\t\t} finally {\n\t\t\tisEmitInFlight = false;\n\t\t}\n\t}\n\tfunction requestEmit({ refreshWatchedFiles = true } = {}) {\n\t\tif (lifecycleAbortController.signal.aborted) return Promise.resolve();\n\t\thasQueuedEmit = true;\n\t\tqueuedEmitNeedsWatchedFileRefresh ||= refreshWatchedFiles;\n\t\tif (isEmitInFlight) {\n\t\t\tlog(\"Queued follow-up emit while another emit is running\", \"debug\");\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\treturn drainQueuedEmits();\n\t}\n\tfunction scheduleEmit() {\n\t\tif (debounceTimer) clearTimeout(debounceTimer);\n\t\tdebounceTimer = setTimeout(() => {\n\t\t\tdebounceTimer = null;\n\t\t\trequestEmit();\n\t\t}, debounceMs);\n\t}\n\tfunction resolveContractOutputFiles(contractOutput) {\n\t\tif (contractOutput === void 0) return /* @__PURE__ */ new Set();\n\t\tconst { jsonPath, dtsPath } = getEmittedArtifactPaths(contractOutput);\n\t\townedOutputJsonPaths.add(jsonPath);\n\t\treturn /* @__PURE__ */ new Set([jsonPath, dtsPath]);\n\t}\n\tfunction isModuleGraphRoot(filePath) {\n\t\treturn MODULE_GRAPH_EXTENSIONS.has(extname(filePath));\n\t}\n\tasync function collectModuleGraphFiles(viteServer, roots) {\n\t\tconst files = /* @__PURE__ */ new Set();\n\t\tconst uniqueRoots = [...new Set(roots)];\n\t\tfor (const root of uniqueRoots) try {\n\t\t\tawait viteServer.ssrLoadModule(root);\n\t\t} catch (error) {\n\t\t\tif (root === absoluteConfigPath) logError(\"Failed to load config module graph root:\", error);\n\t\t\telse log(`Skipped module-graph root after load failure: ${root}`, \"debug\");\n\t\t}\n\t\ttry {\n\t\t\tconst visited = /* @__PURE__ */ new Set();\n\t\t\tconst queue = [...uniqueRoots];\n\t\t\twhile (queue.length > 0) {\n\t\t\t\tconst current = queue.shift();\n\t\t\t\tif (current === void 0 || visited.has(current)) continue;\n\t\t\t\tvisited.add(current);\n\t\t\t\tconst mod = viteServer.moduleGraph.getModuleById(current);\n\t\t\t\tif (!mod) continue;\n\t\t\t\tif (mod.file) files.add(mod.file);\n\t\t\t\tfor (const imported of mod.importedModules) if (imported.id && !visited.has(imported.id)) queue.push(imported.id);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tlogError(\"Failed to collect watched files:\", error);\n\t\t}\n\t\treturn files;\n\t}\n\tasync function resolveWatchedFiles(viteServer) {\n\t\tconst previousWatchedFiles = new Set(watchedFiles);\n\t\tconst previousIgnoredOutputFiles = new Set(ignoredOutputFiles);\n\t\tignoredOutputFiles.clear();\n\t\ttry {\n\t\t\tconst configResult = await loadConfigForSections(absoluteConfigPath, [\"contract\"]);\n\t\t\tif (!configResult.ok) throw configResult.failure;\n\t\t\tconst config = configResult.value;\n\t\t\tdidWarnConfigWatchFallback = false;\n\t\t\tconst contract = config.contract;\n\t\t\tif (!contract) return /* @__PURE__ */ new Set([absoluteConfigPath]);\n\t\t\tconst files = /* @__PURE__ */ new Set([absoluteConfigPath]);\n\t\t\tconst inputs = contract.source.inputs ?? [];\n\t\t\tfor (const outputFile of resolveContractOutputFiles(contract.output)) ignoredOutputFiles.add(outputFile);\n\t\t\tconst moduleGraphRoots = [absoluteConfigPath];\n\t\t\tfor (const input of inputs) {\n\t\t\t\tif (!ignoredOutputFiles.has(input)) files.add(input);\n\t\t\t\tif (isModuleGraphRoot(input)) moduleGraphRoots.push(input);\n\t\t\t}\n\t\t\tfor (const file of await collectModuleGraphFiles(viteServer, moduleGraphRoots)) if (!ignoredOutputFiles.has(file)) files.add(file);\n\t\t\treturn files;\n\t\t} catch (error) {\n\t\t\tif (previousIgnoredOutputFiles.size > 0) for (const outputFile of previousIgnoredOutputFiles) ignoredOutputFiles.add(outputFile);\n\t\t\tif (!didWarnConfigWatchFallback) {\n\t\t\t\tdidWarnConfigWatchFallback = true;\n\t\t\t\tconst reason = error instanceof Error ? ` ${error.message}` : \"\";\n\t\t\t\tlogWarning(`${previousWatchedFiles.size > 0 ? `Watching the previous dependency set plus ${absoluteConfigPath}` : `Watching only ${absoluteConfigPath}`} because Prisma 8 config inputs could not be resolved.${reason} Contract watch coverage is partial.`);\n\t\t\t}\n\t\t\tif (previousWatchedFiles.size > 0) {\n\t\t\t\tpreviousWatchedFiles.add(absoluteConfigPath);\n\t\t\t\treturn previousWatchedFiles;\n\t\t\t}\n\t\t\treturn /* @__PURE__ */ new Set([absoluteConfigPath]);\n\t\t}\n\t}\n\tasync function updateWatchedFiles(viteServer) {\n\t\tconst newWatchedFiles = await resolveWatchedFiles(viteServer);\n\t\tconst toAdd = [];\n\t\tconst toRemove = [];\n\t\tfor (const file of newWatchedFiles) if (!watchedFiles.has(file)) toAdd.push(file);\n\t\tfor (const file of watchedFiles) if (!newWatchedFiles.has(file)) toRemove.push(file);\n\t\tfor (const file of toAdd) viteServer.watcher.add(file);\n\t\tfor (const file of toRemove) viteServer.watcher.unwatch(file);\n\t\twatchedFiles.clear();\n\t\tfor (const file of newWatchedFiles) watchedFiles.add(file);\n\t\tif (toAdd.length > 0 || toRemove.length > 0) log(`Updated watched files: +${toAdd.length} -${toRemove.length}`, \"debug\");\n\t}\n\treturn {\n\t\tname: PLUGIN_NAME,\n\t\tconfigResolved(config) {\n\t\t\tabsoluteConfigPath = resolve(config.root, configPath);\n\t\t\tlog(`Config path: ${absoluteConfigPath}`, \"debug\");\n\t\t},\n\t\tasync configureServer(viteServer) {\n\t\t\tserver = viteServer;\n\t\t\tlifecycleAbortController = new AbortController();\n\t\t\tisEmitInFlight = false;\n\t\t\thasQueuedEmit = false;\n\t\t\tqueuedEmitNeedsWatchedFileRefresh = false;\n\t\t\tconst onTrackedWatcherEvent = (file) => {\n\t\t\t\thandleTrackedFileChange(file);\n\t\t\t};\n\t\t\tconst cleanup = () => {\n\t\t\t\tif (debounceTimer) {\n\t\t\t\t\tclearTimeout(debounceTimer);\n\t\t\t\t\tdebounceTimer = null;\n\t\t\t\t}\n\t\t\t\thasQueuedEmit = false;\n\t\t\t\tqueuedEmitNeedsWatchedFileRefresh = false;\n\t\t\t\tlifecycleAbortController.abort();\n\t\t\t\tviteServer.watcher.off?.(\"change\", onTrackedWatcherEvent);\n\t\t\t\tviteServer.watcher.off?.(\"add\", onTrackedWatcherEvent);\n\t\t\t\tviteServer.watcher.off?.(\"unlink\", onTrackedWatcherEvent);\n\t\t\t\tignoredOutputFiles.clear();\n\t\t\t\tfor (const outputJsonPath of ownedOutputJsonPaths) disposeEmitQueue(outputJsonPath);\n\t\t\t\townedOutputJsonPaths.clear();\n\t\t\t\tdidWarnConfigWatchFallback = false;\n\t\t\t\tserver = null;\n\t\t\t\twatchedFiles.clear();\n\t\t\t\tlog(\"Server closed, cleaned up resources\", \"debug\");\n\t\t\t};\n\t\t\tviteServer.httpServer?.on(\"close\", cleanup);\n\t\t\tviteServer.watcher?.on?.(\"close\", cleanup);\n\t\t\tviteServer.watcher.on(\"change\", onTrackedWatcherEvent);\n\t\t\tviteServer.watcher.on(\"add\", onTrackedWatcherEvent);\n\t\t\tviteServer.watcher.on(\"unlink\", onTrackedWatcherEvent);\n\t\t\tconst initialWatchedFiles = await resolveWatchedFiles(viteServer);\n\t\t\tfor (const file of initialWatchedFiles) watchedFiles.add(file);\n\t\t\tfor (const file of watchedFiles) viteServer.watcher.add(file);\n\t\t\tif (watchedFiles.size === 0) {\n\t\t\t\tconst errorMessage = `No files are being watched. The config file \"${absoluteConfigPath}\" could not be loaded or has no dependencies. HMR for contract changes will not work.`;\n\t\t\t\tlogError(errorMessage);\n\t\t\t\tviteServer.ws.send({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\terr: {\n\t\t\t\t\t\tmessage: `[prisma] ${errorMessage}`,\n\t\t\t\t\t\tstack: \"\",\n\t\t\t\t\t\tplugin: PLUGIN_NAME\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tlog(`Watching ${watchedFiles.size} files`, \"debug\");\n\t\t\t\tif (logLevel === \"debug\") for (const file of watchedFiles) log(` ${file}`, \"debug\");\n\t\t\t}\n\t\t\tawait requestEmit({ refreshWatchedFiles: false });\n\t\t},\n\t\thandleHotUpdate(ctx) {\n\t\t\thandleTrackedFileChange(ctx.file);\n\t\t}\n\t};\n}\n//#endregion\nexport { prismaVitePlugin };\n\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prisma/orm-toolchain",
|
|
3
|
-
"version": "8.0.0-rc.
|
|
3
|
+
"version": "8.0.0-rc.10-dev.1",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
7
|
-
"description": "Prisma
|
|
7
|
+
"description": "Prisma 8 dev/build tooling: the ORM command family, emitter, config-loader, language server, telemetry, vite plugin",
|
|
8
8
|
"files": [
|
|
9
9
|
"dist"
|
|
10
10
|
],
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@prisma/orm-framework": "8.0.0-rc.
|
|
12
|
+
"@prisma/orm-framework": "8.0.0-rc.10-dev.1",
|
|
13
13
|
"@vercel/detect-agent": "^1.2.4",
|
|
14
14
|
"arktype": "^2.2.2",
|
|
15
15
|
"c12": "^3.3.4",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"clipanion": "4.0.0-rc.4",
|
|
18
18
|
"closest-match": "^1.3.3",
|
|
19
19
|
"colorette": "^2.0.20",
|
|
20
|
-
"esbuild": "^0.28.
|
|
20
|
+
"esbuild": "^0.28.2",
|
|
21
21
|
"jsonc-parser": "^3.3.1",
|
|
22
22
|
"package-manager-detector": "^1.8.0",
|
|
23
23
|
"pathe": "^2.0.3",
|
|
@@ -29,21 +29,21 @@
|
|
|
29
29
|
"wrap-ansi": "^10.0.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@internal/cli": "8.0.0-rc.
|
|
33
|
-
"@internal/cli-telemetry": "8.0.0-rc.
|
|
34
|
-
"@internal/config-loader": "8.0.0-rc.
|
|
35
|
-
"@internal/emitter": "8.0.0-rc.
|
|
36
|
-
"@internal/language-server": "8.0.0-rc.
|
|
37
|
-
"@internal/migration-tools": "8.0.0-rc.
|
|
38
|
-
"@internal/publish-surface": "8.0.0-rc.
|
|
39
|
-
"@repo/tsconfig": "8.0.0-rc.
|
|
40
|
-
"@repo/tsdown": "8.0.0-rc.
|
|
41
|
-
"@internal/vite-plugin-contract-emit": "8.0.0-rc.
|
|
32
|
+
"@internal/cli": "8.0.0-rc.10-dev.1",
|
|
33
|
+
"@internal/cli-telemetry": "8.0.0-rc.10-dev.1",
|
|
34
|
+
"@internal/config-loader": "8.0.0-rc.10-dev.1",
|
|
35
|
+
"@internal/emitter": "8.0.0-rc.10-dev.1",
|
|
36
|
+
"@internal/language-server": "8.0.0-rc.10-dev.1",
|
|
37
|
+
"@internal/migration-tools": "8.0.0-rc.10-dev.1",
|
|
38
|
+
"@internal/publish-surface": "8.0.0-rc.10-dev.1",
|
|
39
|
+
"@repo/tsconfig": "8.0.0-rc.10-dev.1",
|
|
40
|
+
"@repo/tsdown": "8.0.0-rc.10-dev.1",
|
|
41
|
+
"@internal/vite-plugin-contract-emit": "8.0.0-rc.10-dev.1",
|
|
42
42
|
"tsdown": "0.22.14",
|
|
43
43
|
"typescript": "5.9.3"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
|
-
"@prisma/cli-engine": "0.0
|
|
46
|
+
"@prisma/cli-engine": "0.3.0",
|
|
47
47
|
"typescript": ">=5.9",
|
|
48
48
|
"vite": "^7.0.0 || ^8.0.0"
|
|
49
49
|
},
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
},
|
|
95
95
|
"repository": {
|
|
96
96
|
"type": "git",
|
|
97
|
-
"url": "https://github.com/prisma/
|
|
97
|
+
"url": "https://github.com/prisma/orm.git",
|
|
98
98
|
"directory": "packages/9-public/@prisma/orm-toolchain"
|
|
99
99
|
},
|
|
100
100
|
"scripts": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-CPZB020V.mjs","names":["APP_SPACE_ID"],"sources":["../../../../1-framework/3-tooling/migration/dist/exports/aggregate.mjs"],"sourcesContent":["import { M as errorRefNotResolvable, N as errorSpaceHeadRefMissing, i as errorContractDeserializationFailed, p as errorHashNotInGraph, r as errorBundleNotFoundForGraphNode, t as MigrationToolsError } from \"../errors-CXbGUWGu.mjs\";\nimport { n as readContractSnapshotDts, r as readContractSnapshotJson, t as contractSnapshotDir } from \"../contract-snapshot-store-B0G1Fw_F.mjs\";\nimport { s as readMigrationsDir } from \"../io-635GlNx1.mjs\";\nimport { t as EMPTY_CONTRACT_HASH } from \"../constants-CM-w38DQ.mjs\";\nimport { n as isGraphNode } from \"../graph-membership-BViWUMpP.mjs\";\nimport { l as reconstructGraph, o as findPathWithDecision } from \"../migration-graph-_SJImD5V.mjs\";\nimport { a as readRefsTolerant, r as readRef, t as HEAD_REF_NAME } from \"../refs-WK86uYYp.mjs\";\nimport { c as isValidSpaceId, i as APP_SPACE_ID, l as spaceMigrationDirectory, r as readContractSpaceHeadRef, t as listContractSpaceDirectories, u as spaceRefsDirectory } from \"../verify-contract-spaces-DhJTb0zM.mjs\";\nimport { join } from \"pathe\";\nimport { issueOutcome } from \"@internal/framework-components/control\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { notOk, ok } from \"@internal/utils/result\";\nimport { UNBOUND_NAMESPACE_ID, coordinateKey, elementCoordinates, entityAt } from \"@internal/framework-components/ir\";\nimport { effectiveControlPolicy } from \"@internal/contract/types\";\n//#region src/aggregate/aggregate.ts\nfunction contractAtMemoKey(hash, refName) {\n\treturn `${hash}\\0${refName ?? \"\"}`;\n}\nfunction deserializeContractAtPath(filePath, contractJson, deserializeContract) {\n\ttry {\n\t\treturn deserializeContract(contractJson);\n\t} catch (error) {\n\t\tif (MigrationToolsError.is(error)) throw error;\n\t\tthrow errorContractDeserializationFailed(filePath, error instanceof Error ? error.message : String(error));\n\t}\n}\nasync function readContractSnapshotEntry(migrationsDir, hash, deserializeContract) {\n\tconst contractJson = await readContractSnapshotJson(migrationsDir, hash);\n\treturn {\n\t\tcontractJson,\n\t\tcontractDts: await readContractSnapshotDts(migrationsDir, hash),\n\t\tcontract: deserializeContractAtPath(join(contractSnapshotDir(migrationsDir, hash), \"contract.json\"), contractJson, deserializeContract)\n\t};\n}\nasync function resolveContractAt(args) {\n\tconst { hash, opts, refsDir, migrationsDir, packages, graph, deserializeContract } = args;\n\tconst refName = opts?.refName;\n\tif (refName !== void 0) {\n\t\tlet refEntry;\n\t\ttry {\n\t\t\trefEntry = await readRef(refsDir, refName);\n\t\t} catch (error) {\n\t\t\tif (MigrationToolsError.is(error) && error.code === \"MIGRATION.UNKNOWN_REF\") refEntry = void 0;\n\t\t\telse throw error;\n\t\t}\n\t\tif (refEntry) {\n\t\t\tconst { contractJson, contractDts, contract } = await readContractSnapshotEntry(migrationsDir, refEntry.hash, deserializeContract);\n\t\t\treturn {\n\t\t\t\thash: refEntry.hash,\n\t\t\t\tcontractJson,\n\t\t\t\tcontractDts,\n\t\t\t\tcontract,\n\t\t\t\tprovenance: \"ref\"\n\t\t\t};\n\t\t}\n\t\tif (isGraphNode(hash, graph)) return resolveGraphNodeContractAt({\n\t\t\thash,\n\t\t\tmigrationsDir,\n\t\t\tpackages,\n\t\t\tdeserializeContract,\n\t\t\texplicitLabel: refName\n\t\t});\n\t\tthrow errorRefNotResolvable(refName);\n\t}\n\tif (isGraphNode(hash, graph)) return resolveGraphNodeContractAt({\n\t\thash,\n\t\tmigrationsDir,\n\t\tpackages,\n\t\tdeserializeContract\n\t});\n\tthrow errorHashNotInGraph(hash, graph);\n}\nasync function resolveGraphNodeContractAt(args) {\n\tconst { hash, migrationsDir, packages, deserializeContract, explicitLabel } = args;\n\tif (!packages.find((pkg) => pkg.metadata.to === hash)) throw errorBundleNotFoundForGraphNode(hash, explicitLabel);\n\tconst { contractJson, contractDts, contract } = await readContractSnapshotEntry(migrationsDir, hash, deserializeContract);\n\treturn {\n\t\thash,\n\t\tcontractJson,\n\t\tcontractDts,\n\t\tcontract,\n\t\tprovenance: \"graph-node\"\n\t};\n}\n/**\n* Resolve a contract space's head ref, asserting it is present. The apply/verify\n* engine only runs after `checkIntegrity` has refused on `headRefMissing`,\n* so a space reaching the planner / verifier without a head ref is a\n* programming error (the integrity gate was skipped), not a user-facing\n* state. The app space's head ref is always synthesised, so this only\n* ever guards an ungated extension space.\n*/\nfunction requireHeadRef(space) {\n\tif (space.headRef === null) throw new InternalError(`Contract space \"${space.spaceId}\" has no head ref; the integrity gate must refuse a missing head ref before planning or verifying.`);\n\treturn space.headRef;\n}\n/**\n* Build a {@link AggregateContractSpace} with lazily-memoised `graph()`,\n* `contract()`, and `contractAt()` facets.\n*\n* `graph()` reconstructs the migration graph from `packages` on first\n* call and caches it. `contract()` calls `resolveContract` on first call\n* and caches the result; a throwing `resolveContract` (e.g. a missing or\n* undeserializable on-disk contract) re-throws on each call rather than\n* caching a value — `checkIntegrity` surfaces that as `contractUnreadable`.\n* `contractAt()` materializes the contract at an arbitrary graph node with\n* the same resolution order as plan-time ref resolution: the ref's pointer\n* plus the store entry keyed by the pointer's hash first (when\n* `opts.refName` is set), else the contract snapshot store entry keyed by\n* the matching package's `to` hash.\n*/\nfunction createAggregateContractSpace(args) {\n\tconst { spaceId, packages, refs, headRef, refsDir, migrationsDir, resolveContract, deserializeContract } = args;\n\tlet graphMemo;\n\tlet contractMemo;\n\tconst contractAtMemo = /* @__PURE__ */ new Map();\n\tfunction spaceGraph() {\n\t\tgraphMemo ??= reconstructGraph(packages);\n\t\treturn graphMemo;\n\t}\n\treturn {\n\t\tspaceId,\n\t\tpackages,\n\t\trefs,\n\t\theadRef,\n\t\tgraph: spaceGraph,\n\t\tcontract() {\n\t\t\tcontractMemo ??= resolveContract();\n\t\t\treturn contractMemo;\n\t\t},\n\t\tasync contractAt(hash, opts) {\n\t\t\tconst key = contractAtMemoKey(hash, opts?.refName);\n\t\t\tconst cached = contractAtMemo.get(key);\n\t\t\tif (cached) return cached;\n\t\t\tconst result = await resolveContractAt({\n\t\t\t\thash,\n\t\t\t\topts,\n\t\t\t\trefsDir,\n\t\t\t\tmigrationsDir,\n\t\t\t\tpackages,\n\t\t\t\tgraph: spaceGraph(),\n\t\t\t\tdeserializeContract\n\t\t\t});\n\t\t\tcontractAtMemo.set(key, result);\n\t\t\treturn result;\n\t\t}\n\t};\n}\n/**\n* Collect the union of every namespace declared across all contract spaces of an\n* aggregate (app + extensions) and return a minimal object with the shape\n* `{ storage: { namespaces } }` suitable for passing to\n* `familyInstance.introspect`.\n*\n* Callers invoke this after the integrity gate (`buildContractSpaceAggregate`\n* with `checkContracts: true`), so every `space.contract()` call is safe —\n* no try/catch is needed here.\n*/\nfunction collectAggregateNamespaces(aggregate) {\n\tconst merged = {};\n\tfor (const space of aggregate.spaces()) for (const [key, ns] of Object.entries(space.contract().storage.namespaces)) {\n\t\tconst existing = merged[key];\n\t\tmerged[key] = existing === void 0 ? ns : mergeNamespaceEntries(existing, ns);\n\t}\n\treturn { storage: { namespaces: merged } };\n}\n/**\n* Union two contract spaces' declarations for the same namespace id, per\n* entity kind. Two spaces may legitimately share a namespace (e.g. both\n* declaring tables in `public`); element-level disjointness is enforced by\n* `checkIntegrity`, so the kind maps never collide on a name — replacing the\n* whole namespace would silently drop the earlier space's entities.\n*/\nfunction mergeNamespaceEntries(a, b) {\n\tconst entries = { ...a.entries };\n\tfor (const [entityKind, kindMap] of Object.entries(b.entries)) entries[entityKind] = {\n\t\t...entries[entityKind],\n\t\t...kindMap\n\t};\n\treturn {\n\t\t...a,\n\t\tentries\n\t};\n}\n/**\n* Assemble a {@link ContractSpaceAggregate} value from its contract spaces and a\n* `checkIntegrity` implementation. The query methods (`listSpaces` /\n* `hasSpace` / `space` / `spaces`) are derived here so every aggregate —\n* loader-built or test-built — shares one query surface: `app` first,\n* then `extensions` in the order supplied (the loader sorts them\n* lex-ascending by `spaceId`).\n*/\nfunction createContractSpaceAggregate(args) {\n\tconst { targetId, app, extensions, checkIntegrity } = args;\n\tconst ordered = [app, ...extensions];\n\tconst byId = new Map(ordered.map((m) => [m.spaceId, m]));\n\tconst spaceDeclares = (space, coordinate) => {\n\t\tconst key = coordinateKey(coordinate);\n\t\tfor (const coord of elementCoordinates(space.contract().storage)) if (coordinateKey(coord) === key) return true;\n\t\treturn false;\n\t};\n\treturn {\n\t\ttargetId,\n\t\tapp,\n\t\textensions,\n\t\tlistSpaces: () => ordered.map((m) => m.spaceId),\n\t\thasSpace: (id) => byId.has(id),\n\t\tspace: (id) => byId.get(id),\n\t\tspaces: () => ordered,\n\t\tdeclaresEntity: (coordinate) => ordered.some((space) => spaceDeclares(space, coordinate)),\n\t\tdeclaringSpaces: (coordinate) => ordered.filter((space) => spaceDeclares(space, coordinate)).map((s) => s.spaceId),\n\t\tcheckIntegrity\n\t};\n}\n//#endregion\n//#region src/aggregate/all-external.ts\nfunction isControlPolicy(value) {\n\treturn value === \"managed\" || value === \"tolerated\" || value === \"external\" || value === \"observed\";\n}\n/**\n* True when every storage element the contract declares resolves to the\n* `external` control policy (ADR 224) — element-level `control` first, the\n* contract's `defaultControlPolicy` otherwise. A contract with no storage\n* elements is vacuously all-external.\n*\n* This is the precondition for advancing a contract space's marker without\n* any migrations (the declared-state resolution the db-init aggregate\n* planner and `migrate` share): only when nothing in the space is\n* Prisma-Next-managed can the storage structure be correct without a\n* migration having produced it. Any space that declares a managed element\n* but ships no migration graph is an authoring bug and must fail loudly.\n*/\nfunction allStorageElementsExternal(contract) {\n\tfor (const coordinate of elementCoordinates(contract.storage)) {\n\t\tconst entity = entityAt(contract.storage, coordinate);\n\t\tconst declared = entity !== null && typeof entity === \"object\" ? blindCast(entity).control : void 0;\n\t\tif (effectiveControlPolicy(isControlPolicy(declared) ? declared : void 0, contract.defaultControlPolicy) !== \"external\") return false;\n\t}\n\treturn true;\n}\n//#endregion\n//#region src/aggregate/check-integrity.ts\n/**\n* Walk the loaded model and return **every** integrity violation — never\n* bailing at the first. Structurally-derivable violations (load-time\n* problems, self-edges, missing / unreachable head refs) are always\n* produced; layout-drift checks require `declaredExtensions`, and\n* contract / target / disjointness checks require `checkContracts`.\n*/\nfunction computeIntegrityViolations(input, opts) {\n\tconst violations = [];\n\tfor (const { space, problems, refProblems, headRefProblem, isApp } of input.spaces) {\n\t\tconst { spaceId } = space;\n\t\tfor (const problem of problems) violations.push(loadProblemToViolation(spaceId, problem));\n\t\tfor (const refProblem of refProblems) violations.push({\n\t\t\tkind: \"refUnreadable\",\n\t\t\tspaceId,\n\t\t\trefName: refProblem.refName,\n\t\t\tdetail: refProblem.detail\n\t\t});\n\t\tif (headRefProblem !== null) violations.push({\n\t\t\tkind: \"refUnreadable\",\n\t\t\tspaceId,\n\t\t\trefName: headRefProblem.refName,\n\t\t\tdetail: headRefProblem.detail\n\t\t});\n\t\tfor (const pkg of space.packages) {\n\t\t\tconst from = pkg.metadata.from ?? \"empty\";\n\t\t\tconst isSelfEdge = from === pkg.metadata.to;\n\t\t\tconst hasDataOp = pkg.ops.some((op) => op.operationClass === \"data\");\n\t\t\tif (isSelfEdge && !hasDataOp) violations.push({\n\t\t\t\tkind: \"sameSourceAndTarget\",\n\t\t\t\tspaceId,\n\t\t\t\tdirName: pkg.dirName,\n\t\t\t\thash: from\n\t\t\t});\n\t\t}\n\t\tviolations.push(...duplicateMigrationHashViolations(spaceId, space.packages));\n\t\tif (!isApp && headRefProblem === null) {\n\t\t\tif (space.headRef === null) violations.push({\n\t\t\t\tkind: \"headRefMissing\",\n\t\t\t\tspaceId\n\t\t\t});\n\t\t\telse if (space.packages.length > 0 && !headRefPresentInGraph(space, space.headRef.hash)) violations.push({\n\t\t\t\tkind: \"headRefNotInGraph\",\n\t\t\t\tspaceId,\n\t\t\t\thash: space.headRef.hash\n\t\t\t});\n\t\t}\n\t}\n\tif (opts?.declaredExtensions !== void 0) violations.push(...layoutViolations(input.spaces, opts.declaredExtensions));\n\tif (opts?.checkContracts === true) violations.push(...contractViolations(input));\n\treturn violations;\n}\nfunction loadProblemToViolation(spaceId, problem) {\n\tswitch (problem.kind) {\n\t\tcase \"hashMismatch\": return {\n\t\t\tkind: \"hashMismatch\",\n\t\t\tspaceId,\n\t\t\tdirName: problem.dirName,\n\t\t\tstored: problem.stored,\n\t\t\tcomputed: problem.computed\n\t\t};\n\t\tcase \"providedInvariantsMismatch\": return {\n\t\t\tkind: \"providedInvariantsMismatch\",\n\t\t\tspaceId,\n\t\t\tdirName: problem.dirName\n\t\t};\n\t\tcase \"packageUnloadable\": return {\n\t\t\tkind: \"packageUnloadable\",\n\t\t\tspaceId,\n\t\t\tdirName: problem.dirName,\n\t\t\tdetail: problem.detail\n\t\t};\n\t}\n}\nfunction duplicateMigrationHashViolations(spaceId, packages) {\n\tconst dirNamesByHash = /* @__PURE__ */ new Map();\n\tfor (const pkg of packages) {\n\t\tconst hash = pkg.metadata.migrationHash;\n\t\tconst dirNames = dirNamesByHash.get(hash);\n\t\tif (dirNames) dirNames.push(pkg.dirName);\n\t\telse dirNamesByHash.set(hash, [pkg.dirName]);\n\t}\n\tconst out = [];\n\tfor (const [migrationHash, dirNames] of dirNamesByHash) if (dirNames.length > 1) out.push({\n\t\tkind: \"duplicateMigrationHash\",\n\t\tspaceId,\n\t\tmigrationHash,\n\t\tdirNames: [...dirNames].sort()\n\t});\n\treturn out;\n}\n/**\n* Whether a space's head-ref hash is present in its reconstructed graph.\n* An empty graph is reachable only by the empty-contract sentinel.\n*/\nfunction headRefPresentInGraph(space, headHash) {\n\tconst graph = space.graph();\n\tif (graph.nodes.size === 0) return headHash === EMPTY_CONTRACT_HASH;\n\treturn graph.nodes.has(headHash);\n}\nfunction layoutViolations(spaces, declaredExtensions) {\n\tconst out = [];\n\tconst extensionSpaceIds = new Set(spaces.filter((s) => !s.isApp).map((s) => s.space.spaceId));\n\tconst declaredIds = new Set(declaredExtensions.map((d) => d.id));\n\tfor (const id of [...extensionSpaceIds].sort()) if (!declaredIds.has(id)) out.push({\n\t\tkind: \"orphanSpaceDir\",\n\t\tspaceId: id\n\t});\n\tfor (const id of [...declaredIds].sort()) if (!extensionSpaceIds.has(id)) out.push({\n\t\tkind: \"declaredButUnmigrated\",\n\t\tspaceId: id\n\t});\n\treturn out;\n}\nfunction contractViolations(input) {\n\tconst out = [];\n\tconst elementClaimedBy = /* @__PURE__ */ new Map();\n\tconst elementLabel = /* @__PURE__ */ new Map();\n\tfor (const { space } of input.spaces) {\n\t\tlet contract;\n\t\ttry {\n\t\t\tcontract = space.contract();\n\t\t} catch (error) {\n\t\t\tout.push({\n\t\t\t\tkind: \"contractUnreadable\",\n\t\t\t\tspaceId: space.spaceId,\n\t\t\t\tdetail: detailOf$1(error)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (contract.target !== input.targetId) out.push({\n\t\t\tkind: \"targetMismatch\",\n\t\t\tspaceId: space.spaceId,\n\t\t\texpected: input.targetId,\n\t\t\tactual: contract.target\n\t\t});\n\t\tfor (const coordinate of elementCoordinates(contract.storage)) {\n\t\t\tconst key = coordinateKey(coordinate);\n\t\t\tconst claimers = elementClaimedBy.get(key);\n\t\t\tif (claimers) claimers.push(space.spaceId);\n\t\t\telse {\n\t\t\t\telementClaimedBy.set(key, [space.spaceId]);\n\t\t\t\telementLabel.set(key, `${coordinate.namespaceId}.${coordinate.entityName}`);\n\t\t\t}\n\t\t}\n\t}\n\tconst disjointness = [];\n\tfor (const [key, claimedBy] of elementClaimedBy) if (claimedBy.length > 1) {\n\t\tconst element = elementLabel.get(key) ?? key;\n\t\tdisjointness.push({\n\t\t\tkind: \"disjointness\",\n\t\t\telement,\n\t\t\tclaimedBy: [...claimedBy].sort()\n\t\t});\n\t}\n\tdisjointness.sort((a, b) => a.kind === \"disjointness\" && b.kind === \"disjointness\" ? a.element.localeCompare(b.element) : 0);\n\tout.push(...disjointness);\n\treturn out;\n}\nfunction detailOf$1(error) {\n\tif (MigrationToolsError.is(error)) return error.why;\n\tif (error instanceof Error) return error.message;\n\treturn String(error);\n}\n//#endregion\n//#region src/aggregate/fabricated-migration-edge.ts\nfunction buildFabricatedMigrationEdge(args) {\n\treturn {\n\t\tdirName: \"\",\n\t\tmigrationHash: args.destinationStorageHash,\n\t\tfrom: args.currentMarkerStorageHash ?? \"\",\n\t\tto: args.destinationStorageHash,\n\t\toperationCount: args.operationCount,\n\t\t...args.destinationContractJson !== void 0 ? { destinationContractJson: args.destinationContractJson } : {}\n\t};\n}\n//#endregion\n//#region src/aggregate/loader.ts\n/**\n* Build a tolerant, queryable {@link ContractSpaceAggregate} from on-disk\n* migration state plus the caller's live app contract.\n*\n* Building **never throws on disk content**: a hash- or\n* invariants-mismatched package is retained, an unparseable package is\n* omitted, a missing extension head ref leaves `headRef: null`, and an\n* unreadable on-disk contract defers its failure to `space.contract()`.\n* Every such problem is judged by {@link ContractSpaceAggregate.checkIntegrity}\n* rather than aborting the load. The only rejections are catastrophic I/O\n* (a `migrations/` that exists but is unreadable for reasons other than\n* absence).\n*\n* The app space's head ref is synthesised from the live contract's\n* storage hash (the app contract is authored independently of the\n* migration graph), and `app.contract()` returns the supplied contract.\n* Extension spaces read their contract, refs, and head ref from disk.\n*/\nasync function loadContractSpaceAggregate(input) {\n\tconst { migrationsDir, deserializeContract, appContract } = input;\n\tconst targetId = appContract.target;\n\tconst appState = await loadAppSpace(migrationsDir, appContract, deserializeContract);\n\tconst extensionStates = await loadExtensionSpaces(migrationsDir, deserializeContract);\n\tconst spaces = [appState, ...extensionStates];\n\treturn createContractSpaceAggregate({\n\t\ttargetId,\n\t\tapp: appState.space,\n\t\textensions: extensionStates.map((state) => state.space),\n\t\tcheckIntegrity: (opts) => computeIntegrityViolations({\n\t\t\ttargetId,\n\t\t\tspaces\n\t\t}, opts)\n\t});\n}\nasync function loadAppSpace(migrationsDir, appContract, deserializeContract) {\n\tconst spaceDir = spaceMigrationDirectory(migrationsDir, APP_SPACE_ID);\n\tconst { packages, problems } = await readMigrationsDir(spaceDir, { migrationsDir });\n\tconst { refs, problems: refProblems } = await readRefsTolerant(spaceRefsDirectory(spaceDir));\n\treturn {\n\t\tspace: createAggregateContractSpace({\n\t\t\tspaceId: APP_SPACE_ID,\n\t\t\tpackages,\n\t\t\trefs,\n\t\t\theadRef: {\n\t\t\t\thash: appContract.storage.storageHash,\n\t\t\t\tinvariants: []\n\t\t\t},\n\t\t\trefsDir: spaceRefsDirectory(spaceDir),\n\t\t\tmigrationsDir,\n\t\t\tresolveContract: () => appContract,\n\t\t\tdeserializeContract\n\t\t}),\n\t\tproblems,\n\t\trefProblems,\n\t\theadRefProblem: null,\n\t\tisApp: true\n\t};\n}\nasync function loadExtensionSpaces(migrationsDir, deserializeContract) {\n\tconst extensionIds = (await listContractSpaceDirectories(migrationsDir)).filter((name) => name !== APP_SPACE_ID).filter(isValidSpaceId).sort();\n\tconst states = [];\n\tfor (const spaceId of extensionIds) states.push(await loadExtensionSpace(migrationsDir, spaceId, deserializeContract));\n\treturn states;\n}\nasync function loadExtensionSpace(migrationsDir, spaceId, deserializeContract) {\n\tconst spaceDir = spaceMigrationDirectory(migrationsDir, spaceId);\n\tconst { packages, problems } = await readMigrationsDir(spaceDir, { migrationsDir });\n\tconst { refs, problems: refProblems } = await readRefsTolerant(spaceRefsDirectory(spaceDir));\n\tconst { headRef, problem: headRefProblem } = await readHeadRefTolerant(migrationsDir, spaceId);\n\tconst rawContract = await readRawContractDeferred(migrationsDir, spaceId, headRef);\n\treturn {\n\t\tspace: createAggregateContractSpace({\n\t\t\tspaceId,\n\t\t\tpackages,\n\t\t\trefs,\n\t\t\theadRef,\n\t\t\trefsDir: spaceRefsDirectory(spaceDir),\n\t\t\tmigrationsDir,\n\t\t\tresolveContract: () => deserializeContract(rawContract()),\n\t\t\tdeserializeContract\n\t\t}),\n\t\tproblems,\n\t\trefProblems,\n\t\theadRefProblem,\n\t\tisApp: false\n\t};\n}\n/**\n* Read an extension's head ref, distinguishing a *genuinely absent*\n* `head.json` (`headRef: null`, no problem — judged `headRefMissing`)\n* from one that *exists but cannot be parsed* (`headRef: null` plus a\n* problem — judged `refUnreadable`, not `headRefMissing`).\n* `readContractSpaceHeadRef` already returns `null` only for ENOENT and\n* throws for unparseable / schema-invalid content, so the throw is the\n* corruption signal. Construction never throws on disk content.\n*/\nfunction isToleratedRefHeadReadError(error) {\n\tif (MigrationToolsError.is(error)) return true;\n\tif (!(error instanceof Error)) return false;\n\tconst code = error.code;\n\treturn code === \"ENOENT\" || code === \"EISDIR\";\n}\nasync function readHeadRefTolerant(migrationsDir, spaceId) {\n\ttry {\n\t\treturn {\n\t\t\theadRef: await readContractSpaceHeadRef(migrationsDir, spaceId),\n\t\t\tproblem: null\n\t\t};\n\t} catch (error) {\n\t\tif (!isToleratedRefHeadReadError(error)) throw error;\n\t\treturn {\n\t\t\theadRef: null,\n\t\t\tproblem: {\n\t\t\t\trefName: HEAD_REF_NAME,\n\t\t\t\tdetail: detailOf(error)\n\t\t\t}\n\t\t};\n\t}\n}\nfunction detailOf(error) {\n\treturn error instanceof Error ? error.message : String(error);\n}\n/**\n* Read the raw contract snapshot-store entry eagerly (cheap I/O) but defer\n* its (throwing) failure to call time, so a missing or unparseable store\n* entry becomes a `contract()` throw — surfaced as `contractUnreadable` —\n* rather than a construction failure. When `headRef` is absent there is no\n* hash to resolve against the store, so the deferred call always throws;\n* `checkIntegrity` already reports that case as `headRefMissing`, and a\n* `checkContracts` pass surfaces the same space as `contractUnreadable`.\n*/\nasync function readRawContractDeferred(migrationsDir, spaceId, headRef) {\n\tif (headRef === null) return () => {\n\t\tthrow errorSpaceHeadRefMissing(spaceId);\n\t};\n\ttry {\n\t\tconst raw = await readContractSnapshotJson(migrationsDir, headRef.hash);\n\t\treturn () => raw;\n\t} catch (error) {\n\t\treturn () => {\n\t\t\tthrow error;\n\t\t};\n\t}\n}\n//#endregion\n//#region src/aggregate/strategies/plan-from-diff.ts\n/**\n* Plan a migration for a single contract space from a diff against the full\n* live schema, delegating to the family's `createPlanner(...).plan(...)`.\n*\n* The planner diffs the whole introspected schema, so it sees other contract\n* spaces' tables as \"extras\"; the orchestration hands the planner the\n* aggregate as an ownership oracle so it can ask, per extra, whether any\n* space owns it — a sibling-owned table is left untouched, so the planner\n* never emits a destructive drop for it, and this strategy holds no ownership\n* logic of its own. The schema is never pruned before planning: cross-space\n* foreign keys need every sibling table visible to the diff.\n*\n* The produced plan's `targetId` is set from `aggregateTargetId`\n* (the aggregate's ambient target). The family's planner does not\n* stamp `targetId` on the produced plan; the aggregate planner is\n* the single point that knows the target.\n*\n* Used by:\n*\n* - The app space by default (CLI policy\n* `ignoreGraphFor: { app.spaceId }`).\n* - Any extension space whose `headRef.invariants` is empty and whose\n* graph is non-empty (the all-external, zero-migration-package case is\n* handled directly by the aggregate planner without calling this).\n*/\nasync function planFromDiff(input) {\n\tconst plannerResult = await input.migrations.createPlanner(input.adapter).plan({\n\t\tcontract: input.space.contract(),\n\t\tschema: input.schemaIntrospection,\n\t\tpolicy: input.operationPolicy,\n\t\tfromContract: null,\n\t\tframeworkComponents: input.frameworkComponents,\n\t\tspaceId: input.space.spaceId,\n\t\townership: input.ownership,\n\t\tsnapshotsImportPath: \"\"\n\t});\n\tif (plannerResult.kind === \"failure\") return {\n\t\tkind: \"failure\",\n\t\tconflicts: plannerResult.conflicts\n\t};\n\tconst producedPlan = plannerResult.plan;\n\tconst plan = new Proxy(producedPlan, {\n\t\tget(target, prop) {\n\t\t\tif (prop === \"targetId\") return input.aggregateTargetId;\n\t\t\treturn Reflect.get(target, prop, target);\n\t\t},\n\t\thas(target, prop) {\n\t\t\tif (prop === \"targetId\") return true;\n\t\t\treturn Reflect.has(target, prop);\n\t\t}\n\t});\n\tconst destinationStorageHash = producedPlan.destination.storageHash;\n\tconst producedOps = await Promise.all(producedPlan.operations);\n\tconst destinationContract = input.space.contract();\n\treturn {\n\t\tkind: \"ok\",\n\t\tresult: {\n\t\t\tplan,\n\t\t\tdisplayOps: producedOps,\n\t\t\tdestinationContract,\n\t\t\tstrategy: \"plan-from-diff\",\n\t\t\t...plannerResult.warnings && plannerResult.warnings.length > 0 ? { warnings: plannerResult.warnings } : {},\n\t\t\tmigrationEdges: [buildFabricatedMigrationEdge({\n\t\t\t\tcurrentMarkerStorageHash: input.currentMarker?.storageHash,\n\t\t\t\tdestinationStorageHash,\n\t\t\t\toperationCount: producedOps.length,\n\t\t\t\tdestinationContractJson: destinationContract\n\t\t\t})]\n\t\t}\n\t};\n}\n//#endregion\n//#region src/aggregate/strategies/resolve-recorded-path.ts\n/**\n* Resolve a contract space's hydrated migration graph to the path from the\n* live marker to `space.headRef.hash`, covering every required invariant.\n*\n* Pure synchronous function — no I/O. The aggregate's loader has\n* already integrity-checked every package and reconstructed the graph;\n* this resolves the path by looking up ops by `migrationHash` and\n* assembles a `MigrationPlan` with `targetId` set from the aggregate (no\n* placeholder cast).\n*\n* Required invariants are computed as `headRef.invariants \\ marker.invariants`\n* — the marker already declares some invariants satisfied; the path\n* only needs to provide the remainder. Mirrors today's\n* `computeExtensionSpaceApplyPath` semantics.\n*/\nfunction resolveRecordedPath(input) {\n\tconst { aggregateTargetId, space, currentMarker, refName } = input;\n\tconst headRef = requireHeadRef(space);\n\tconst graph = space.graph();\n\tconst packagesByMigrationHash = new Map(space.packages.map((pkg) => [pkg.metadata.migrationHash, pkg]));\n\tconst fromHash = currentMarker?.storageHash ?? \"empty\";\n\tconst markerInvariants = new Set(currentMarker?.invariants ?? []);\n\tconst required = new Set(headRef.invariants.filter((id) => !markerInvariants.has(id)));\n\tconst outcome = findPathWithDecision(graph, fromHash, headRef.hash, {\n\t\trequired,\n\t\t...refName !== void 0 ? { refName } : {}\n\t});\n\tif (outcome.kind === \"unreachable\") return { kind: \"unreachable\" };\n\tif (outcome.kind === \"unsatisfiable\") return {\n\t\tkind: \"unsatisfiable\",\n\t\tmissing: outcome.missing\n\t};\n\tconst pathOps = [];\n\tconst providedInvariantsSet = /* @__PURE__ */ new Set();\n\tconst edgeRefs = [];\n\tfor (const edge of outcome.decision.selectedPath) {\n\t\tconst pkg = packagesByMigrationHash.get(edge.migrationHash);\n\t\tif (!pkg) throw new InternalError(`Migration package missing for edge ${edge.migrationHash} in space \"${space.spaceId}\". The hydrated migration graph and packagesByMigrationHash map are out of sync — this should be unreachable; report.`);\n\t\tfor (const op of pkg.ops) pathOps.push(op);\n\t\tfor (const invariant of pkg.metadata.providedInvariants) providedInvariantsSet.add(invariant);\n\t\tedgeRefs.push({\n\t\t\tmigrationHash: edge.migrationHash,\n\t\t\tdirName: edge.dirName,\n\t\t\tfrom: edge.from,\n\t\t\tto: edge.to,\n\t\t\toperationCount: pkg.ops.length,\n\t\t\t...pkg.endContractJson !== void 0 ? { destinationContractJson: pkg.endContractJson } : {}\n\t\t});\n\t}\n\treturn {\n\t\tkind: \"ok\",\n\t\tresult: {\n\t\t\tplan: {\n\t\t\t\ttargetId: aggregateTargetId,\n\t\t\t\tspaceId: space.spaceId,\n\t\t\t\torigin: currentMarker === null ? null : { storageHash: currentMarker.storageHash },\n\t\t\t\tdestination: { storageHash: headRef.hash },\n\t\t\t\toperations: pathOps,\n\t\t\t\tprovidedInvariants: [...providedInvariantsSet].sort()\n\t\t\t},\n\t\t\tdisplayOps: pathOps,\n\t\t\tdestinationContract: space.contract(),\n\t\t\tstrategy: \"resolve-recorded-path\",\n\t\t\tmigrationEdges: edgeRefs,\n\t\t\tpathDecision: outcome.decision\n\t\t}\n\t};\n}\n//#endregion\n//#region src/aggregate/planner.ts\n/**\n* Plan a migration across every contract space of a {@link ContractSpaceAggregate}.\n*\n* Per-space operation selection, in order; first match wins:\n*\n* 1. If `callerPolicy.ignoreGraphFor.has(space.spaceId)`:\n* - If `space.headRef.invariants` is empty → `planFromDiff`.\n* - Else → `policyConflict` (a diff-fabricated plan cannot satisfy\n* authored invariants).\n* 2. Else if `space.graph()` is non-empty AND `resolveRecordedPath`\n* succeeds → its result.\n* 3. Else if `space.graph()` is non-empty but unresolvable →\n* `extensionPathUnreachable` / `extensionPathUnsatisfiable`.\n* 4. Else (empty graph — the space ships no migration packages at all,\n* e.g. an all-external extension space like Supabase's `auth`/`storage`)\n* if `space.headRef.invariants` is empty → declare the no-op state\n* directly (zero ops, destination = head ref) without invoking the\n* family planner.\n* 5. Else → `extensionPathUnsatisfiable` (an empty graph cannot satisfy\n* non-empty invariants).\n*\n* Output `applyOrder` is `[...aggregate.extensions.map(spaceId), aggregate.app.spaceId]`\n* — extensions alphabetical, then app — matching today's\n* `concatenateSpaceApplyInputs` ordering. This preserves\n* `MigrationRunnerFailure.failingSpace` attribution byte-for-byte.\n*\n* Every emitted `MigrationPlan` has `targetId = aggregate.targetId`.\n* No placeholder cast; no patch step.\n*/\nasync function planMigration(input) {\n\tconst { aggregate, currentDBState, callerPolicy } = input;\n\tconst perSpace = /* @__PURE__ */ new Map();\n\tconst orderedSpaces = [...aggregate.extensions, aggregate.app];\n\tfor (const space of orderedSpaces) {\n\t\tconst currentMarker = currentDBState.markersBySpaceId.get(space.spaceId) ?? null;\n\t\tconst headRef = requireHeadRef(space);\n\t\tconst ignoreGraph = callerPolicy.ignoreGraphFor.has(space.spaceId);\n\t\tconst invariantsRequired = headRef.invariants.length > 0;\n\t\tif (ignoreGraph && invariantsRequired) return notOk({\n\t\t\tkind: \"policyConflict\",\n\t\t\tspaceId: space.spaceId,\n\t\t\tdetail: `\\`callerPolicy.ignoreGraphFor\\` requested for space \"${space.spaceId}\", but the contract space declares non-empty head-ref invariants (${headRef.invariants.join(\", \")}). A plan built directly from the contract IR cannot satisfy authored invariants — the graph must be walked. Either remove \"${space.spaceId}\" from \\`ignoreGraphFor\\` or amend the on-disk head ref to declare zero invariants.`\n\t\t});\n\t\tif (ignoreGraph) {\n\t\t\tconst diffOutcome = await planFromDiff({\n\t\t\t\taggregateTargetId: aggregate.targetId,\n\t\t\t\tcurrentMarker,\n\t\t\t\tspace,\n\t\t\t\townership: aggregate,\n\t\t\t\tschemaIntrospection: currentDBState.schemaIntrospection,\n\t\t\t\tadapter: input.adapter,\n\t\t\t\tmigrations: input.migrations,\n\t\t\t\tframeworkComponents: input.frameworkComponents,\n\t\t\t\toperationPolicy: input.operationPolicy\n\t\t\t});\n\t\t\tif (diffOutcome.kind === \"failure\") return notOk({\n\t\t\t\tkind: \"planFromDiffFailed\",\n\t\t\t\tspaceId: space.spaceId,\n\t\t\t\tconflicts: diffOutcome.conflicts\n\t\t\t});\n\t\t\tperSpace.set(space.spaceId, diffOutcome.result);\n\t\t\tcontinue;\n\t\t}\n\t\tif (space.graph().nodes.size > 0) {\n\t\t\tconst resolved = resolveRecordedPath({\n\t\t\t\taggregateTargetId: aggregate.targetId,\n\t\t\t\tspace,\n\t\t\t\tcurrentMarker\n\t\t\t});\n\t\t\tif (resolved.kind === \"ok\") {\n\t\t\t\tperSpace.set(space.spaceId, resolved.result);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (resolved.kind === \"unreachable\") return notOk({\n\t\t\t\tkind: \"extensionPathUnreachable\",\n\t\t\t\tspaceId: space.spaceId,\n\t\t\t\ttarget: headRef.hash\n\t\t\t});\n\t\t\treturn notOk({\n\t\t\t\tkind: \"extensionPathUnsatisfiable\",\n\t\t\t\tspaceId: space.spaceId,\n\t\t\t\tmissingInvariants: resolved.missing\n\t\t\t});\n\t\t}\n\t\tif (invariantsRequired) return notOk({\n\t\t\tkind: \"extensionPathUnsatisfiable\",\n\t\t\tspaceId: space.spaceId,\n\t\t\tmissingInvariants: [...headRef.invariants].sort()\n\t\t});\n\t\tif (!allStorageElementsExternal(space.contract())) return notOk({\n\t\t\tkind: \"extensionPathUnreachable\",\n\t\t\tspaceId: space.spaceId,\n\t\t\ttarget: headRef.hash\n\t\t});\n\t\tperSpace.set(space.spaceId, {\n\t\t\tplan: {\n\t\t\t\ttargetId: aggregate.targetId,\n\t\t\t\tspaceId: space.spaceId,\n\t\t\t\torigin: currentMarker === null ? null : { storageHash: currentMarker.storageHash },\n\t\t\t\tdestination: { storageHash: headRef.hash },\n\t\t\t\toperations: []\n\t\t\t},\n\t\t\tdisplayOps: [],\n\t\t\tdestinationContract: space.contract(),\n\t\t\tstrategy: \"declared-state\",\n\t\t\tmigrationEdges: [buildFabricatedMigrationEdge({\n\t\t\t\tcurrentMarkerStorageHash: currentMarker?.storageHash,\n\t\t\t\tdestinationStorageHash: headRef.hash,\n\t\t\t\toperationCount: 0\n\t\t\t})]\n\t\t});\n\t}\n\treturn ok({\n\t\tperSpace,\n\t\tapplyOrder: [...aggregate.extensions.map((m) => m.spaceId), aggregate.app.spaceId]\n\t});\n}\nfunction pathIsUnder(path, prefix) {\n\tif (path.length < prefix.length) return false;\n\treturn prefix.every((segment, i) => path[i] === segment);\n}\n/**\n* Whether an issue's subject is a WHOLE top-level entity — as opposed to\n* something nested under one (e.g. a field, an index, or a policy). Calls\n* the injected `classify` capability, which resolves this from the issue's\n* node `nodeKind` (this aggregate never reaches into the node itself).\n* Absent `classify` (or a `classify` that returns nothing for this issue —\n* a family that doesn't classify) falls back to path shape: a\n* top-level entity's path is exactly its own name (one segment), so\n* anything deeper is nested.\n*/\nfunction isWholeEntityIssue(issue, classify) {\n\tconst granularity = classify?.(issue);\n\tif (granularity !== void 0) return granularity === \"entity\";\n\treturn issue.path.length === 1;\n}\n/**\n* A contract space's contract-satisfaction view. Strips the top-level entity\n* extras — the `not-expected` findings on whole-entity nodes (plus the\n* findings the differ's total descent reported under those entities). Those\n* belong to the standalone unclaimed-elements list\n* ({@link collectExtraElementCoordinates}), never a space's own verdict.\n*\n* Nested `not-expected` findings (an extra field on the space's own\n* declared entity…) and structural findings (an undeclared policy) are\n* the space's **own drift** and stay.\n*\n* The verdict recomputes from the surviving list: the per-space result is\n* issue-based (`ok` ⇔ the list is empty), so a space whose only failures\n* were top-level extras passes after the strip.\n*/\nfunction stripExtraFindings(result, classify) {\n\tconst droppedTablePaths = result.schema.issues.filter((issue) => issueOutcome(issue) === \"not-expected\" && isWholeEntityIssue(issue, classify)).map((issue) => issue.path);\n\tconst issues = result.schema.issues.filter((issue) => {\n\t\tif (issueOutcome(issue) !== \"not-expected\") return true;\n\t\tif (classify?.(issue) === \"structural\") return true;\n\t\treturn !droppedTablePaths.some((prefix) => pathIsUnder(issue.path, prefix));\n\t});\n\tif (issues.length === result.schema.issues.length) return result;\n\tconst ok = issues.length === 0;\n\tconst { code: staleCode, ...envelope } = result;\n\treturn {\n\t\t...envelope,\n\t\tok,\n\t\t...ok ? {} : { code: result.code ?? \"CONTRACT.MARKER_REQUIRED\" },\n\t\tsummary: ok ? \"Database schema satisfies contract\" : result.summary,\n\t\tschema: {\n\t\t\tissues,\n\t\t\t...result.schema.warnings !== void 0 ? { warnings: result.schema.warnings } : {}\n\t\t}\n\t};\n}\n/**\n* The schema-IR entity coordinate a `not-expected` `SchemaDiffIssue`\n* addresses, when its subject is a whole top-level entity. A nested leaf\n* (a field, an index, a policy on an undeclared entity) has no entity of\n* its own to report here.\n*\n* The whole-entity's name is the last path segment: the differ builds each\n* path from its nodes' ids, so at a whole-entity finding the last segment is\n* exactly the entity name — for every family, whether or not it stamps a\n* granularity. The namespace segment only exists for namespace-qualified\n* paths (`['database', namespaceId, entityName]`); single-namespace families\n* (a flat `['database', entityName]`, or a bare `[entityName]`) have no\n* separate segment, so every entity they declare implicitly shares one\n* namespace — the same sentinel the aggregate's own coordinate walk uses\n* for those families.\n*\n* `entityKind` is asked from the injected `classifyEntityKind` capability —\n* this module never names a family entity kind itself. Absent a classifier\n* (the classifier-absent path-shape fallback, e.g. a document family) the\n* coordinate carries {@link UNCLASSIFIED_ENTITY_KIND}: no ownership\n* consumer queries `declaresEntity` for a family in that state today, so\n* nothing reads the value as true.\n*/\nfunction schemaDiffIssueCoordinate(issue, classify, classifyEntityKind) {\n\tif (!isWholeEntityIssue(issue, classify)) return void 0;\n\tconst entityName = issue.path[issue.path.length - 1];\n\tif (entityName === void 0) return void 0;\n\treturn {\n\t\tnamespaceId: issue.path.length === 3 ? issue.path[1] ?? UNBOUND_NAMESPACE_ID : UNBOUND_NAMESPACE_ID,\n\t\tentityKind: classifyEntityKind?.(issue) ?? \"unclassified-entity\",\n\t\tentityName\n\t};\n}\n/**\n* The schema-IR entity coordinates of every live element this contract\n* space's diff reports as `not-expected`, deduplicated. The verifier gathers\n* these across all spaces and keeps only the coordinates no contract space\n* declares — the standalone unclaimed-elements list, reported once for the\n* whole database.\n*/\nfunction collectExtraElementCoordinates(result, classify, classifyEntityKind) {\n\tconst seen = /* @__PURE__ */ new Map();\n\tfor (const issue of result.schema.issues) {\n\t\tif (issueOutcome(issue) !== \"not-expected\") continue;\n\t\tconst coordinate = schemaDiffIssueCoordinate(issue, classify, classifyEntityKind);\n\t\tif (coordinate === void 0) continue;\n\t\tseen.set(coordinateKey(coordinate), coordinate);\n\t}\n\treturn [...seen.values()];\n}\n//#endregion\n//#region src/aggregate/verifier.ts\n/**\n* Verify a {@link ContractSpaceAggregate} against the live database\n* state. Bundles two checks:\n*\n* - `markerCheck` per contract space: compare the live marker row against the\n* space's `headRef.hash` + `headRef.invariants`. Absence is a\n* distinct kind, not an error (callers — `db verify` strict vs\n* `db init` precondition — choose how to interpret it).\n* - `schemaCheck`: two distinct outputs from the per-space diffs.\n* `perSpace` — each space verified against the **full**\n* introspected schema, then its extras stripped, leaving the space's\n* declared nodes (its contract-satisfaction view; verdict is\n* missing/mismatch only). `unclaimed` — the extras gathered\n* across every space, deduplicated, and filtered to the names no contract\n* space declares (via the passive aggregate's ownership query); reported\n* once for the database. No schema is pruned before verifying.\n*\n* `markerCheck.orphanMarkers` lists every marker row whose `space` is\n* not a contract space of the aggregate. `db verify` callers reject orphans;\n* future tooling may not.\n*\n* Pure synchronous function; no I/O. The caller (CLI) gathers\n* `markersBySpaceId` and `schemaIntrospection` ahead of the call.\n*/\nfunction verifyMigration(input) {\n\ttry {\n\t\treturn runVerifyMigration(input);\n\t} catch (error) {\n\t\treturn notOk({\n\t\t\tkind: \"introspectionFailure\",\n\t\t\tdetail: error instanceof Error ? error.message : String(error)\n\t\t});\n\t}\n}\nfunction runVerifyMigration(input) {\n\tconst { aggregate, markersBySpaceId, schemaIntrospection, mode, verifySchemaForSpace, classifySubjectGranularity, classifyEntityKind } = input;\n\tconst allSpaces = [aggregate.app, ...aggregate.extensions];\n\tconst aggregateSpaceIds = new Set(allSpaces.map((m) => m.spaceId));\n\tconst markerPerSpace = /* @__PURE__ */ new Map();\n\tfor (const space of allSpaces) {\n\t\tconst marker = markersBySpaceId.get(space.spaceId) ?? null;\n\t\tif (marker === null) {\n\t\t\tmarkerPerSpace.set(space.spaceId, { kind: \"absent\" });\n\t\t\tcontinue;\n\t\t}\n\t\tconst headRef = requireHeadRef(space);\n\t\tif (marker.storageHash !== headRef.hash) {\n\t\t\tmarkerPerSpace.set(space.spaceId, {\n\t\t\t\tkind: \"hashMismatch\",\n\t\t\t\tmarkerHash: marker.storageHash,\n\t\t\t\texpected: headRef.hash\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst markerInvariants = new Set(marker.invariants);\n\t\tconst missing = headRef.invariants.filter((id) => !markerInvariants.has(id));\n\t\tif (missing.length > 0) {\n\t\t\tmarkerPerSpace.set(space.spaceId, {\n\t\t\t\tkind: \"missingInvariants\",\n\t\t\t\tmissing: [...missing].sort()\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tmarkerPerSpace.set(space.spaceId, { kind: \"ok\" });\n\t}\n\tconst orphanMarkers = [];\n\tfor (const [spaceId, row] of markersBySpaceId) if (row !== null && !aggregateSpaceIds.has(spaceId)) orphanMarkers.push({\n\t\tspaceId,\n\t\trow\n\t});\n\torphanMarkers.sort((a, b) => a.spaceId.localeCompare(b.spaceId));\n\tconst schemaPerSpace = /* @__PURE__ */ new Map();\n\tconst extraCoordinates = /* @__PURE__ */ new Map();\n\tfor (const space of allSpaces) {\n\t\tconst result = verifySchemaForSpace(schemaIntrospection, space, mode);\n\t\tschemaPerSpace.set(space.spaceId, stripExtraFindings(result, classifySubjectGranularity));\n\t\tfor (const coordinate of collectExtraElementCoordinates(result, classifySubjectGranularity, classifyEntityKind)) extraCoordinates.set(coordinateKey(coordinate), coordinate);\n\t}\n\tconst unclaimed = [...new Set([...extraCoordinates.values()].filter((coordinate) => !aggregate.declaresEntity(coordinate)).map((coordinate) => coordinate.entityName))].sort((a, b) => a.localeCompare(b));\n\treturn ok({\n\t\tmarkerCheck: {\n\t\t\tperSpace: markerPerSpace,\n\t\t\torphanMarkers\n\t\t},\n\t\tschemaCheck: {\n\t\t\tperSpace: schemaPerSpace,\n\t\t\tunclaimed\n\t\t}\n\t});\n}\n//#endregion\nexport { allStorageElementsExternal, buildFabricatedMigrationEdge, collectAggregateNamespaces, computeIntegrityViolations, createAggregateContractSpace, createContractSpaceAggregate, loadContractSpaceAggregate, loadProblemToViolation, planMigration, requireHeadRef, resolveRecordedPath, verifyMigration };\n\n//# sourceMappingURL=aggregate.mjs.map"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"domain-type-generation-PkAb39ob-Ct8AGqow.d.mts","names":[],"sources":["../../../../1-framework/3-tooling/emitter/dist/domain-type-generation-PkAb39ob.d.mts"],"mappings":";;;;;iBAIiB,eAAe;iBACf,mBAAmB;iBACnB,qBAAqB;iBACrB,wBAAwB,KAAK;iBAC7B,kBAAkB,OAAO,eAAe;iBACxC,wBAAwB,mBAAmB,OAAO;iBAClD,wBAAwB,QAAQ,eAAe;iBAC/C,2BAA2B,WAAW;iBACtC,mBAAmB,QAAQ,eAAe,oBAAoB,uBAAuB,mBAAmB,OAAO;iBAC/G,mBAAmB,SAAS,oBAAoB;iBAChD,oBAAoB,SAAS,mBAAmB,yBAAyB;iBACzE,8BAA8B,SAAS,cAAc,kBAAkB;iBACvE,uBAAuB,WAAW;iBAClC,wBAAwB;WAC9B;WACA;WACA;;KAEN;WACM;WACA;;KAEN,2BAA2B,mBAAmB,mBAAmB,OAAO,sBAAsB;;;;;;KAM9F;WACM,wBAAwB;WACxB;;KAEN,yBAAyB,mBAAmB,mBAAmB,OAAO,sBAAsB;;;;;;;;;;;iBAWhF,mBAAmB,iBAAiB,aAAa,iBAAiB,0BAA0B,aAAa;iBACzG,iBAAiB,OAAO,eAAe,cAAc,aAAa,qBAAqB,yBAAyB,mBAAmB,wBAAwB;iBAC3J,0BAA0B,OAAO,eAAe,cAAc,aAAa;iBAC3E,2BAA2B,QAAQ,eAAe,gCAAgC,cAAc,aAAa,yBAAyB,yBAAyB,uBAAuB,wBAAwB;iBAC9M,kCAAkC,iBAAiB,gCAAgC,eAAe,sBAAsB,cAAc,aAAa,yBAAyB,yBAAyB,uBAAuB,wBAAwB;iBACpP,4BAA4B,QAAQ,eAAe,gCAAgC,cAAc,aAAa,yBAAyB;iBACvI,2BAA2B,QAAQ,eAAe,gCAAgC,cAAc,aAAa,yBAAyB;iBACtI,wBAAwB,iBAAiB,IAAI,qBAAqB,eAAe,eAAe,sBAAsB,2BAA2B,cAAc;iBAC/J,uBAAuB,iBAAiB,IAAI,qBAAqB,eAAe,eAAe,sBAAsB,cAAc,cAAc;iBACjJ,gCAAgC,mBAAmB,OAAO;iBAC1D,mCAAmC,cAAc,eAAe;iBAChE,+BAA+B,cAAc,eAAe,kCAAkC,cAAc"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"domain-type-generation-bpSO3Y0L-jo2C7LlH.mjs","names":[],"sources":["../../../../1-framework/3-tooling/emitter/dist/domain-type-generation-bpSO3Y0L.mjs"],"sourcesContent":["import { isSafeTypeExpression } from \"./type-expression-safety.mjs\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { keepInternalSpecifiers } from \"@internal/framework-components/emission\";\nimport { renderImports, tsStringLiteral } from \"@internal/ts-render\";\nimport { blindCast } from \"@internal/utils/casts\";\n//#region src/emitter-errors.ts\nfunction emitterError(code, message, options) {\n\treturn structuredError(code, message, options);\n}\n//#endregion\n//#region src/domain-type-generation.ts\nfunction serializeValue(value) {\n\tif (value === null) return \"null\";\n\tif (value === void 0) return \"undefined\";\n\tif (typeof value === \"string\") return tsStringLiteral(value);\n\tif (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\n\tif (typeof value === \"bigint\") return `${value}n`;\n\tif (Array.isArray(value)) return `readonly [${value.map((v) => serializeValue(v)).join(\", \")}]`;\n\tif (typeof value === \"object\") {\n\t\tconst entries = [];\n\t\tfor (const [k, v] of Object.entries(value)) entries.push(`readonly ${serializeObjectKey(k)}: ${serializeValue(v)}`);\n\t\treturn `{ ${entries.join(\"; \")} }`;\n\t}\n\treturn \"unknown\";\n}\nfunction serializeObjectKey(key) {\n\tif (/^[$A-Z_a-z][$\\w]*$/.test(key)) return key;\n\treturn serializeValue(key);\n}\nfunction serializeNamespaceId(value) {\n\treturn `${serializeValue(value)} & NamespaceId`;\n}\nfunction serializeCrossReference(ref) {\n\treturn `{ readonly namespace: ${serializeNamespaceId(String(ref.namespace))}; readonly model: ${serializeValue(ref.model)}${ref.space !== void 0 ? `; readonly space: ${serializeValue(ref.space)}` : \"\"} }`;\n}\nfunction generateRootsType(roots) {\n\tif (!roots || Object.keys(roots).length === 0) return \"Record<string, never>\";\n\treturn `{ ${Object.entries(roots).map(([key, value]) => `readonly ${serializeObjectKey(key)}: ${serializeCrossReference(value)}`).join(\"; \")} }`;\n}\nfunction contractFieldModifierSuffix(field) {\n\treturn (field.many === true ? \"; readonly many: true\" : \"\") + (field.dict === true ? \"; readonly dict: true\" : \"\");\n}\nfunction generateModelFieldEntry(fieldName, field) {\n\tconst mods = contractFieldModifierSuffix(field);\n\tconst { nullable, type } = field;\n\tif (type.kind === \"scalar\") {\n\t\tconst typeParamsSpec = type.typeParams && Object.keys(type.typeParams).length > 0 ? `; readonly typeParams: ${serializeValue(type.typeParams)}` : \"\";\n\t\treturn `readonly ${serializeObjectKey(fieldName)}: { readonly nullable: ${nullable}; readonly type: { readonly kind: \"scalar\"; readonly codecId: ${serializeValue(type.codecId)}${typeParamsSpec} }${mods} }`;\n\t}\n\tif (type.kind === \"valueObject\") return `readonly ${serializeObjectKey(fieldName)}: { readonly nullable: ${nullable}; readonly type: { readonly kind: \"valueObject\"; readonly name: ${serializeValue(type.name)} }${mods} }`;\n\treturn `readonly ${serializeObjectKey(fieldName)}: { readonly nullable: ${nullable}; readonly type: ${serializeValue(type)}${mods} }`;\n}\nfunction generateModelFieldsType(fields) {\n\tconst fieldEntries = [];\n\tfor (const [fieldName, field] of Object.entries(fields)) fieldEntries.push(generateModelFieldEntry(fieldName, field));\n\treturn fieldEntries.length > 0 ? `{ ${fieldEntries.join(\"; \")} }` : \"Record<string, never>\";\n}\nfunction generateModelRelationsType(relations) {\n\tconst relationEntries = [];\n\tfor (const [relName, rel] of Object.entries(relations)) {\n\t\tif (typeof rel !== \"object\" || rel === null) continue;\n\t\tconst relObj = rel;\n\t\tconst toRef = relObj[\"to\"];\n\t\tif (toRef !== null && typeof toRef === \"object\" && \"space\" in toRef && toRef.space !== void 0) {\n\t\t\trelationEntries.push(`readonly ${serializeObjectKey(relName)}: never`);\n\t\t\tcontinue;\n\t\t}\n\t\tconst parts = [];\n\t\tif (toRef) parts.push(`readonly to: ${serializeCrossReference(blindCast(toRef))}`);\n\t\tif (relObj[\"cardinality\"]) parts.push(`readonly cardinality: ${serializeValue(relObj[\"cardinality\"])}`);\n\t\tconst on = relObj[\"on\"];\n\t\tif (on && (!on.localFields || !on.targetFields)) throw emitterError(\"CONTRACT.RELATION_INVALID\", `Relation \"${relName}\" has an \"on\" block but is missing localFields or targetFields`, { meta: { relation: relName } });\n\t\tif (on?.localFields && on.targetFields) {\n\t\t\tconst localFields = on.localFields.map((f) => serializeValue(f)).join(\", \");\n\t\t\tconst targetFields = on.targetFields.map((f) => serializeValue(f)).join(\", \");\n\t\t\tparts.push(`readonly on: { readonly localFields: readonly [${localFields}]; readonly targetFields: readonly [${targetFields}] }`);\n\t\t}\n\t\tif (relObj[\"cardinality\"] === \"N:M\") {\n\t\t\tconst { through } = blindCast(relObj);\n\t\t\tconst table = serializeValue(through.table);\n\t\t\tconst namespaceId = serializeValue(through.namespaceId);\n\t\t\tconst parentColumns = through.parentColumns.map((c) => serializeValue(c)).join(\", \");\n\t\t\tconst childColumns = through.childColumns.map((c) => serializeValue(c)).join(\", \");\n\t\t\tconst targetColumns = through.targetColumns.map((c) => serializeValue(c)).join(\", \");\n\t\t\tparts.push(`readonly through: { readonly table: ${table}; readonly namespaceId: ${namespaceId}; readonly parentColumns: readonly [${parentColumns}]; readonly childColumns: readonly [${childColumns}]; readonly targetColumns: readonly [${targetColumns}] }`);\n\t\t}\n\t\tif (parts.length > 0) relationEntries.push(`readonly ${serializeObjectKey(relName)}: { ${parts.join(\"; \")} }`);\n\t}\n\tif (relationEntries.length === 0) return \"Record<string, never>\";\n\treturn `{ ${relationEntries.join(\"; \")} }`;\n}\nfunction generateModelsType(models, generateModelStorage) {\n\tif (!models || Object.keys(models).length === 0) return \"Record<string, never>\";\n\tconst modelTypes = [];\n\tfor (const [modelName, model] of Object.entries(models).sort(([a], [b]) => a.localeCompare(b))) {\n\t\tconst fieldsType = generateModelFieldsType(model.fields);\n\t\tconst relationsType = generateModelRelationsType(model.relations);\n\t\tconst storageType = generateModelStorage(modelName, model);\n\t\tconst modelParts = [\n\t\t\t`readonly fields: ${fieldsType}`,\n\t\t\t`readonly relations: ${relationsType}`,\n\t\t\t`readonly storage: ${storageType}`\n\t\t];\n\t\tif (model.owner) modelParts.push(`readonly owner: ${serializeValue(model.owner)}`);\n\t\tif (model.discriminator) modelParts.push(`readonly discriminator: ${serializeValue(model.discriminator)}`);\n\t\tif (model.variants) modelParts.push(`readonly variants: ${serializeValue(model.variants)}`);\n\t\tif (model.base) modelParts.push(`readonly base: ${serializeCrossReference(model.base)}`);\n\t\tmodelTypes.push(`readonly ${serializeObjectKey(modelName)}: { ${modelParts.join(\"; \")} }`);\n\t}\n\treturn `{ ${modelTypes.join(\"; \")} }`;\n}\nfunction deduplicateImports(imports) {\n\tconst seenKeys = /* @__PURE__ */ new Set();\n\tconst result = [];\n\tfor (const imp of imports) {\n\t\tconst key = `${imp.package}::${imp.named}`;\n\t\tif (!seenKeys.has(key)) {\n\t\t\tseenKeys.add(key);\n\t\t\tresult.push(imp);\n\t\t}\n\t}\n\treturn result;\n}\nfunction generateImportLines(imports, resolveImportSpecifier = keepInternalSpecifiers) {\n\tconst rendered = renderImports(imports.map((imp) => ({\n\t\tmoduleSpecifier: resolveImportSpecifier(imp.package),\n\t\tsymbol: imp.named,\n\t\talias: imp.alias,\n\t\ttypeOnly: true\n\t})));\n\treturn rendered === \"\" ? [] : rendered.split(\"\\n\");\n}\nfunction generateCodecTypeIntersection(imports, named) {\n\treturn imports.filter((imp) => imp.named === named).map((imp) => imp.alias).join(\" & \") || \"Record<string, never>\";\n}\nfunction serializeExecutionType(execution) {\n\tconst parts = [\"readonly executionHash: ExecutionHash\"];\n\tfor (const [key, value] of Object.entries(execution)) {\n\t\tif (key === \"executionHash\") continue;\n\t\tparts.push(`readonly ${serializeObjectKey(key)}: ${serializeValue(value)}`);\n\t}\n\treturn `{ ${parts.join(\"; \")} }`;\n}\nfunction generateHashTypeAliases(hashes) {\n\tconst executionHashType = hashes.executionHash ? `ExecutionHashBase<${serializeValue(hashes.executionHash)}>` : \"ExecutionHashBase<string>\";\n\treturn [\n\t\t`export type StorageHash = StorageHashBase<${serializeValue(hashes.storageHash)}>;`,\n\t\t`export type ExecutionHash = ${executionHashType};`,\n\t\t`export type ProfileHash = ProfileHashBase<${serializeValue(hashes.profileHash)}>;`\n\t].join(\"\\n\");\n}\nfunction applyModifiers(base, field) {\n\tlet result = base;\n\tif (field.many === true) result = `ReadonlyArray<${result}>`;\n\tif (field.dict === true) result = `Readonly<Record<string, ${result}>>`;\n\tif (field.nullable) result = `${result} | null`;\n\treturn result;\n}\n/**\n* Renders a value set (a field/column's permitted values, codec-encoded) into a TS literal union by\n* routing **each** value through the codec's `renderValueLiteral` — the seam owned by the codec, not\n* a generic serializer. `side`: `output` = read type, `input` = create/update type.\n*\n* Returns `undefined` — signalling the caller to fall back to the codec's full output type — when\n* the lookup is absent, has no `renderValueLiteralFor`, the value set is empty, or **any** value\n* isn't literal-expressible. A caller that needs column and field types to agree shares this so both\n* compute the union identically.\n*/\nfunction renderValueSetType(values, codecId, side, codecLookup) {\n\tif (values.length === 0 || codecLookup?.renderValueLiteralFor === void 0) return void 0;\n\tconst literals = [];\n\tfor (const value of values) {\n\t\tconst lit = codecLookup.renderValueLiteralFor(codecId, value, side);\n\t\tif (lit === void 0 || !isSafeTypeExpression(lit)) return void 0;\n\t\tliterals.push(lit);\n\t}\n\treturn literals.join(\" | \");\n}\nfunction resolveFieldType(field, codecLookup, resolvedTypeParams, resolvedValueSet) {\n\tconst { type } = field;\n\tswitch (type.kind) {\n\t\tcase \"scalar\": {\n\t\t\tif (resolvedValueSet) {\n\t\t\t\tconst output = renderValueSetType(resolvedValueSet.encodedValues, resolvedValueSet.codecId, \"output\", codecLookup);\n\t\t\t\tconst input = renderValueSetType(resolvedValueSet.encodedValues, resolvedValueSet.codecId, \"input\", codecLookup);\n\t\t\t\tif (output !== void 0 && input !== void 0) return {\n\t\t\t\t\toutput: applyModifiers(output, field),\n\t\t\t\t\tinput: applyModifiers(input, field)\n\t\t\t\t};\n\t\t\t}\n\t\t\tlet outputResolved;\n\t\t\tlet inputResolved;\n\t\t\tconst effectiveTypeParams = (type.typeParams && Object.keys(type.typeParams).length > 0 ? type.typeParams : void 0) ?? resolvedTypeParams;\n\t\t\tif (codecLookup && effectiveTypeParams && Object.keys(effectiveTypeParams).length > 0) {\n\t\t\t\tconst rendered = codecLookup.renderOutputTypeFor(type.codecId, effectiveTypeParams);\n\t\t\t\tif (rendered && isSafeTypeExpression(rendered)) outputResolved = rendered;\n\t\t\t\tconst renderedInput = codecLookup.renderInputTypeFor?.(type.codecId, effectiveTypeParams);\n\t\t\t\tif (renderedInput && isSafeTypeExpression(renderedInput)) inputResolved = renderedInput;\n\t\t\t}\n\t\t\tconst codecAccessor = `CodecTypes[${serializeValue(type.codecId)}]`;\n\t\t\treturn {\n\t\t\t\toutput: applyModifiers(outputResolved ?? `${codecAccessor}[\"output\"]`, field),\n\t\t\t\tinput: applyModifiers(inputResolved ?? `${codecAccessor}[\"input\"]`, field)\n\t\t\t};\n\t\t}\n\t\tcase \"valueObject\": return {\n\t\t\toutput: applyModifiers(`${type.name}Output`, field),\n\t\t\tinput: applyModifiers(`${type.name}Input`, field)\n\t\t};\n\t\tcase \"union\": {\n\t\t\tconst outputMembers = type.members.map((m) => m.kind === \"scalar\" ? `CodecTypes[${serializeValue(m.codecId)}][\"output\"]` : `${m.name}Output`);\n\t\t\tconst inputMembers = type.members.map((m) => m.kind === \"scalar\" ? `CodecTypes[${serializeValue(m.codecId)}][\"input\"]` : `${m.name}Input`);\n\t\t\treturn {\n\t\t\t\toutput: applyModifiers(outputMembers.join(\" | \"), field),\n\t\t\t\tinput: applyModifiers(inputMembers.join(\" | \"), field)\n\t\t\t};\n\t\t}\n\t\tdefault: return {\n\t\t\toutput: applyModifiers(\"unknown\", field),\n\t\t\tinput: applyModifiers(\"unknown\", field)\n\t\t};\n\t}\n}\nfunction generateFieldResolvedType(field, codecLookup, side = \"output\") {\n\treturn resolveFieldType(field, codecLookup)[side];\n}\nfunction generateBothFieldTypesMaps(models, codecLookup, resolveFieldTypeParams, resolveFieldValueSet) {\n\tif (!models || Object.keys(models).length === 0) return {\n\t\toutput: \"Record<string, never>\",\n\t\tinput: \"Record<string, never>\"\n\t};\n\tconst outputModelEntries = [];\n\tconst inputModelEntries = [];\n\tfor (const [modelName, model] of Object.entries(models).sort(([a], [b]) => a.localeCompare(b))) {\n\t\tif (!model) continue;\n\t\tconst outputFieldEntries = [];\n\t\tconst inputFieldEntries = [];\n\t\tfor (const [fieldName, field] of Object.entries(model.fields)) {\n\t\t\tconst resolvedTypeParams = (field.type.kind === \"scalar\" && field.type.typeParams && Object.keys(field.type.typeParams).length > 0 ? field.type.typeParams : void 0) ?? resolveFieldTypeParams?.(modelName, fieldName, model);\n\t\t\tconst resolvedValueSet = resolveFieldValueSet?.(modelName, fieldName, model);\n\t\t\tconst resolved = resolveFieldType(field, codecLookup, resolvedTypeParams, resolvedValueSet);\n\t\t\tconst key = `readonly ${serializeObjectKey(fieldName)}`;\n\t\t\toutputFieldEntries.push(`${key}: ${resolved.output}`);\n\t\t\tinputFieldEntries.push(`${key}: ${resolved.input}`);\n\t\t}\n\t\tconst outputFields = outputFieldEntries.length > 0 ? `{ ${outputFieldEntries.join(\"; \")} }` : \"Record<string, never>\";\n\t\tconst inputFields = inputFieldEntries.length > 0 ? `{ ${inputFieldEntries.join(\"; \")} }` : \"Record<string, never>\";\n\t\tconst modelKey = `readonly ${serializeObjectKey(modelName)}`;\n\t\toutputModelEntries.push(`${modelKey}: ${outputFields}`);\n\t\tinputModelEntries.push(`${modelKey}: ${inputFields}`);\n\t}\n\treturn {\n\t\toutput: `{ ${outputModelEntries.join(\"; \")} }`,\n\t\tinput: `{ ${inputModelEntries.join(\"; \")} }`\n\t};\n}\nfunction generateFieldTypesMapsByNamespace(namespaceModels, codecLookup, resolveFieldTypeParams, resolveFieldValueSet) {\n\tif (namespaceModels.length === 0) return {\n\t\toutput: \"Record<string, never>\",\n\t\tinput: \"Record<string, never>\"\n\t};\n\tconst outputNamespaceEntries = [];\n\tconst inputNamespaceEntries = [];\n\tfor (const [nsId, models] of namespaceModels) {\n\t\tconst inner = generateBothFieldTypesMaps(models, codecLookup, resolveFieldTypeParams, resolveFieldValueSet);\n\t\tconst nsKey = `readonly ${serializeObjectKey(nsId)}`;\n\t\toutputNamespaceEntries.push(`${nsKey}: ${inner.output}`);\n\t\tinputNamespaceEntries.push(`${nsKey}: ${inner.input}`);\n\t}\n\treturn {\n\t\toutput: `{ ${outputNamespaceEntries.join(\"; \")} }`,\n\t\tinput: `{ ${inputNamespaceEntries.join(\"; \")} }`\n\t};\n}\nfunction generateFieldOutputTypesMap(models, codecLookup, resolveFieldTypeParams) {\n\treturn generateBothFieldTypesMaps(models, codecLookup, resolveFieldTypeParams).output;\n}\nfunction generateFieldInputTypesMap(models, codecLookup, resolveFieldTypeParams) {\n\treturn generateBothFieldTypesMaps(models, codecLookup, resolveFieldTypeParams).input;\n}\nfunction generateValueObjectType(_voName, vo, _valueObjects, side = \"output\", codecLookup) {\n\treturn resolveValueObjectType(_voName, vo, _valueObjects, codecLookup)[side];\n}\nfunction resolveValueObjectType(_voName, vo, _valueObjects, codecLookup) {\n\tconst outputEntries = [];\n\tconst inputEntries = [];\n\tfor (const [fieldName, field] of Object.entries(vo.fields)) {\n\t\tconst resolved = resolveFieldType(field, codecLookup);\n\t\tconst key = `readonly ${serializeObjectKey(fieldName)}`;\n\t\toutputEntries.push(`${key}: ${resolved.output}`);\n\t\tinputEntries.push(`${key}: ${resolved.input}`);\n\t}\n\tconst empty = \"Record<string, never>\";\n\treturn {\n\t\toutput: outputEntries.length > 0 ? `{ ${outputEntries.join(\"; \")} }` : empty,\n\t\tinput: inputEntries.length > 0 ? `{ ${inputEntries.join(\"; \")} }` : empty\n\t};\n}\nfunction generateContractFieldDescriptor(fieldName, field) {\n\tconst mods = [];\n\tif (field.many === true) mods.push(\"; readonly many: true\");\n\tif (field.dict === true) mods.push(\"; readonly dict: true\");\n\tconst modStr = mods.join(\"\");\n\tconst { type } = field;\n\tif (type.kind === \"scalar\") {\n\t\tconst typeParamsSpec = type.typeParams && Object.keys(type.typeParams).length > 0 ? `; readonly typeParams: ${serializeValue(type.typeParams)}` : \"\";\n\t\treturn `readonly ${serializeObjectKey(fieldName)}: { readonly nullable: ${field.nullable}; readonly type: { readonly kind: \"scalar\"; readonly codecId: ${serializeValue(type.codecId)}${typeParamsSpec} }${modStr} }`;\n\t}\n\tif (type.kind === \"valueObject\") return `readonly ${serializeObjectKey(fieldName)}: { readonly nullable: ${field.nullable}; readonly type: { readonly kind: \"valueObject\"; readonly name: ${serializeValue(type.name)} }${modStr} }`;\n\treturn `readonly ${serializeObjectKey(fieldName)}: { readonly nullable: ${field.nullable}; readonly type: ${serializeValue(type)}${modStr} }`;\n}\nfunction generateValueObjectsDescriptorType(valueObjects) {\n\tif (!valueObjects || Object.keys(valueObjects).length === 0) return \"Record<string, never>\";\n\tconst voEntries = [];\n\tfor (const [voName, vo] of Object.entries(valueObjects)) {\n\t\tconst fieldEntries = [];\n\t\tfor (const [fieldName, field] of Object.entries(vo.fields)) fieldEntries.push(generateContractFieldDescriptor(fieldName, field));\n\t\tconst fieldsType = fieldEntries.length > 0 ? `{ ${fieldEntries.join(\"; \")} }` : \"Record<string, never>\";\n\t\tvoEntries.push(`readonly ${serializeObjectKey(voName)}: { readonly fields: ${fieldsType} }`);\n\t}\n\treturn `{ ${voEntries.join(\"; \")} }`;\n}\nfunction generateValueObjectTypeAliases(valueObjects, codecLookup) {\n\tif (!valueObjects || Object.keys(valueObjects).length === 0) return \"\";\n\tconst aliases = [];\n\tfor (const [voName, vo] of Object.entries(valueObjects)) {\n\t\tconst resolved = resolveValueObjectType(voName, vo, valueObjects, codecLookup);\n\t\taliases.push(`export type ${voName}Output = ${resolved.output};`);\n\t\taliases.push(`export type ${voName}Input = ${resolved.input};`);\n\t}\n\treturn aliases.join(\"\\n\");\n}\n//#endregion\nexport { serializeExecutionType as C, emitterError as D, serializeValue as E, serializeCrossReference as S, serializeObjectKey as T, generateValueObjectTypeAliases as _, generateFieldInputTypesMap as a, resolveFieldType as b, generateFieldTypesMapsByNamespace as c, generateModelFieldEntry as d, generateModelFieldsType as f, generateValueObjectType as g, generateRootsType as h, generateContractFieldDescriptor as i, generateHashTypeAliases as l, generateModelsType as m, generateBothFieldTypesMaps as n, generateFieldOutputTypesMap as o, generateModelRelationsType as p, generateCodecTypeIntersection as r, generateFieldResolvedType as s, deduplicateImports as t, generateImportLines as u, generateValueObjectsDescriptorType as v, serializeNamespaceId as w, resolveValueObjectType as x, renderValueSetType as y };\n\n//# sourceMappingURL=domain-type-generation-bpSO3Y0L.mjs.map"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors-CXbGUWGu-CstQHPh6.mjs","names":[],"sources":["../../../../1-framework/3-tooling/migration/dist/errors-CXbGUWGu.mjs"],"sourcesContent":["import { CliStructuredError } from \"@internal/errors/control\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { dirname, relative } from \"pathe\";\n//#region src/errors.ts\n/**\n* Build the canonical \"re-emit this package\" remediation hint.\n*\n* Every on-disk migration package ships its own `migration.ts` author-time\n* file. Running it regenerates `migration.json` and `ops.json` with the\n* correct hash + metadata, so it is the right primitive whenever a single\n* package's on-disk artifacts are missing, malformed, or otherwise corrupt.\n* Pointing users at `migration plan` would emit a *new* package rather than\n* heal the broken one.\n*/\nfunction reemitHint(dir, fallback) {\n\tconst reemit = `Re-emit the package by running \\`node \"${relative(process.cwd(), dir)}/migration.ts\"\\``;\n\treturn fallback ? `${reemit}, ${fallback}` : `${reemit}.`;\n}\n/**\n* Structured error for migration tooling operations.\n*\n* Follows the NAMESPACE.SUBCODE convention from ADR 027. All codes live under\n* the MIGRATION namespace. These are tooling-time errors (file I/O, hash\n* verification, migration history reconstruction), distinct from the runtime\n* MIGRATION.* codes for apply-time failures (PRECHECK_FAILED, POSTCHECK_FAILED,\n* etc.).\n*\n* Fields:\n* - code: Stable machine-readable code (MIGRATION.SUBCODE)\n* - category: Always 'MIGRATION'\n* - why: Explains the cause in plain language\n* - fix: Actionable remediation step\n* - meta: Machine-readable structured data for agents\n*/\nvar MigrationToolsError = class extends CliStructuredError {\n\tcategory;\n\tconstructor(code, summary, options) {\n\t\tsuper(code, summary, options);\n\t\tthis.category = \"MIGRATION\";\n\t}\n\tstatic is(error) {\n\t\treturn CliStructuredError.is(error) && \"category\" in error && error.category === \"MIGRATION\" && error.code.startsWith(\"MIGRATION.\");\n\t}\n};\nfunction errorDirectoryExists(dir) {\n\treturn new MigrationToolsError(\"MIGRATION.DIR_EXISTS\", \"Migration directory already exists\", {\n\t\twhy: `The directory \"${dir}\" already exists. Each migration must have a unique directory.`,\n\t\tfix: \"Use --name to pick a different name, or delete the existing directory and re-run.\",\n\t\tmeta: { dir }\n\t});\n}\nfunction errorMissingFile(file, dir) {\n\treturn new MigrationToolsError(\"MIGRATION.FILE_MISSING\", `Missing ${file}`, {\n\t\twhy: `Expected \"${file}\" in \"${dir}\" but the file does not exist.`,\n\t\tfix: reemitHint(dir, \"or delete the directory if the migration is unwanted and the source TypeScript is gone.\"),\n\t\tmeta: {\n\t\t\tfile,\n\t\t\tdir\n\t\t}\n\t});\n}\nfunction errorInvalidJson(filePath, parseError) {\n\treturn new MigrationToolsError(\"MIGRATION.INVALID_JSON\", \"Invalid JSON in migration file\", {\n\t\twhy: `Failed to parse \"${filePath}\": ${parseError}`,\n\t\tfix: reemitHint(dirname(filePath), \"or restore the directory from version control.\"),\n\t\tmeta: {\n\t\t\tfilePath,\n\t\t\tparseError\n\t\t}\n\t});\n}\nfunction errorInvalidManifest(filePath, reason) {\n\treturn new MigrationToolsError(\"MIGRATION.INVALID_MANIFEST\", \"Invalid migration manifest\", {\n\t\twhy: `Migration manifest at \"${filePath}\" is invalid: ${reason}`,\n\t\tfix: reemitHint(dirname(filePath), \"or restore the directory from version control.\"),\n\t\tmeta: {\n\t\t\tfilePath,\n\t\t\treason\n\t\t}\n\t});\n}\nfunction errorDescribeMissingEndContract() {\n\treturn new MigrationToolsError(\"MIGRATION.DESCRIBE_INVALID\", \"Migration.describe(): provide endContractJson or override describe() — a migration needs a destination contract hash.\", {\n\t\twhy: \"Migration.describe() was called on a migration that carries no endContractJson and does not override describe(), so no destination contract hash can be derived.\",\n\t\tfix: \"Set endContractJson on the migration, or override describe() to return the { from, to } metadata explicitly.\",\n\t\tmeta: { reason: \"missing-end-contract\" }\n\t});\n}\nfunction errorDescribeInvalidMetadata(summary) {\n\treturn new MigrationToolsError(\"MIGRATION.DESCRIBE_INVALID\", `describe() returned invalid metadata: ${summary}`, {\n\t\twhy: `The migration's describe() returned metadata that failed schema validation: ${summary}.`,\n\t\tfix: \"Ensure describe() returns { from: string | null, to: string } with valid contract hashes.\",\n\t\tmeta: {\n\t\t\treason: \"invalid-metadata\",\n\t\t\tsummary\n\t\t}\n\t});\n}\nfunction errorOperationsNotArray() {\n\treturn new MigrationToolsError(\"MIGRATION.PLAN_NOT_ARRAY\", \"operations must be an array\", {\n\t\twhy: \"The migration instance's `operations` getter returned a non-array value.\",\n\t\tfix: \"Ensure the `operations` getter returns an array of migration operations.\",\n\t\tmeta: {}\n\t});\n}\nfunction errorSpaceHeadRefMissing(spaceId) {\n\treturn new MigrationToolsError(\"MIGRATION.CHECK_HEAD_REF_MISSING\", `Contract space \"${spaceId}\" has no head ref; its contract cannot be resolved from the snapshot store without one.`, {\n\t\twhy: `Contract space \"${spaceId}\" declares no refs/head.json, so there is no hash to resolve its contract against the snapshot store.`,\n\t\tfix: \"Re-emit the contract-space migrations and head-ref artifacts (the extension's contract-space build), or restore refs/head.json from version control.\",\n\t\tmeta: { spaceId }\n\t});\n}\nfunction errorInvalidOperationEntry(index, reason) {\n\treturn new MigrationToolsError(\"MIGRATION.INVALID_OPERATION_ENTRY\", \"Migration operation entry is malformed\", {\n\t\twhy: `Operation at index ${index} returned by the migration class failed schema validation: ${reason}.`,\n\t\tfix: \"Update the migration class so each entry of `operations` carries `id` (string), `label` (string), and `operationClass` (one of 'additive' | 'widening' | 'destructive' | 'data').\",\n\t\tmeta: {\n\t\t\tindex,\n\t\t\treason\n\t\t}\n\t});\n}\nfunction errorInvalidSlug(slug) {\n\treturn new MigrationToolsError(\"MIGRATION.INVALID_NAME\", \"Invalid migration name\", {\n\t\twhy: `The slug \"${slug}\" contains no valid characters after sanitization (only a-z, 0-9 are kept).`,\n\t\tfix: \"Provide a name with at least one alphanumeric character, e.g. --name add_users.\",\n\t\tmeta: { slug }\n\t});\n}\nfunction errorInvalidDestName(destName) {\n\treturn new MigrationToolsError(\"MIGRATION.INVALID_DEST_NAME\", \"Invalid copy destination name\", {\n\t\twhy: `The destination name \"${destName}\" must be a single path segment (no \"..\" or directory separators).`,\n\t\tfix: \"Use a simple file name such as \\\"contract.json\\\" for each destination in the copy list.\",\n\t\tmeta: { destName }\n\t});\n}\nfunction errorInvalidSpaceId(spaceId) {\n\treturn new MigrationToolsError(\"MIGRATION.INVALID_SPACE_ID\", \"Invalid contract space identifier\", {\n\t\twhy: `The space id \"${spaceId}\" does not match the required pattern /^[a-z][a-z0-9_-]{0,63}$/. Space ids are used as filesystem directory names under \\`migrations/\\`, so the pattern is conservative on purpose.`,\n\t\tfix: \"Pick a lowercase identifier that begins with a letter and contains only lowercase letters, digits, hyphens, or underscores; max 64 characters total.\",\n\t\tmeta: { spaceId }\n\t});\n}\nfunction errorDescriptorHeadHashMismatch(args) {\n\tconst { extensionId, recomputedHash, headRefHash } = args;\n\treturn new MigrationToolsError(\"MIGRATION.DESCRIPTOR_HEAD_HASH_MISMATCH\", \"Extension descriptor's headRef.hash does not match its contractJson\", {\n\t\twhy: `Extension \"${extensionId}\" publishes a \\`contractSpace\\` whose \\`headRef.hash\\` (${headRefHash}) does not match the canonical hash recomputed from \\`contractSpace.contractJson\\` (${recomputedHash}). This means the extension descriptor was published with stale \\`headRef.hash\\` — typically because the contract was bumped without rerunning the extension's emit pipeline.`,\n\t\tfix: \"Re-run the extension authoring pipeline so `contractJson.storage.storageHash` and `headRef.hash` agree, then republish the extension. If you are the extension author and you intentionally bumped `contractJson`, recompute and update `headRef.hash` (and refresh any on-disk migration metadata that derives from it).\",\n\t\tmeta: {\n\t\t\textensionId,\n\t\t\trecomputedHash,\n\t\t\theadRefHash\n\t\t}\n\t});\n}\nfunction errorDuplicateSpaceId(spaceId) {\n\treturn new MigrationToolsError(\"MIGRATION.DUPLICATE_SPACE_ID\", \"Duplicate contract space identifier\", {\n\t\twhy: `The space id \"${spaceId}\" appears more than once in the per-space planner input. Each space id must be unique across the inputs (the per-space planner emits one output entry per id).`,\n\t\tfix: \"Deduplicate the inputs before passing them to `planAllSpaces` — typically by checking your `extensions` declaration for repeated entries.\",\n\t\tmeta: { spaceId }\n\t});\n}\nfunction errorAmbiguousTarget(branchTips, context) {\n\tconst divergenceInfo = context ? `\\nDivergence point: ${context.divergencePoint}\\nBranches:\\n${context.branches.map((b) => ` → ${b.tip} (${b.edges.length} edge(s): ${b.edges.map((e) => e.dirName).join(\" → \") || \"direct\"})`).join(\"\\n\")}` : \"\";\n\treturn new MigrationToolsError(\"MIGRATION.AMBIGUOUS_TARGET\", \"Ambiguous migration target\", {\n\t\twhy: `The migration history has diverged into multiple branches: ${branchTips.join(\", \")}. This typically happens when two developers plan migrations from the same starting point.${divergenceInfo}`,\n\t\tfix: \"Use `ref set <name> <hash>` to target a specific branch, delete one of the conflicting migration directories and re-run `migration plan`, or use --from <hash> to explicitly select a starting point.\",\n\t\tmeta: {\n\t\t\tbranchTips,\n\t\t\t...context ? {\n\t\t\t\tdivergencePoint: context.divergencePoint,\n\t\t\t\tbranches: context.branches\n\t\t\t} : {}\n\t\t}\n\t});\n}\nfunction errorNoInitialMigration(nodes) {\n\treturn new MigrationToolsError(\"MIGRATION.NO_INITIAL_MIGRATION\", \"No initial migration found\", {\n\t\twhy: `No migration starts from the empty contract state (known hashes: ${nodes.join(\", \")}). At least one migration must originate from the empty state.`,\n\t\tfix: \"Inspect the migrations directory for corrupted migration.json files. At least one migration must start from the empty contract hash.\",\n\t\tmeta: { nodes }\n\t});\n}\nfunction errorInvalidRefFile(filePath, reason) {\n\treturn new MigrationToolsError(\"MIGRATION.INVALID_REF_FILE\", \"Invalid ref file\", {\n\t\twhy: `Ref file at \"${filePath}\" is invalid: ${reason}`,\n\t\tfix: \"Ensure the ref file contains valid JSON with { \\\"hash\\\": \\\"<64 hex chars>\\\", \\\"invariants\\\": [\\\"...\\\"] }.\",\n\t\tmeta: {\n\t\t\tpath: filePath,\n\t\t\treason\n\t\t}\n\t});\n}\nfunction errorInvalidRefName(refName) {\n\treturn new MigrationToolsError(\"MIGRATION.INVALID_REF_NAME\", \"Invalid ref name\", {\n\t\twhy: `Ref name \"${refName}\" is invalid. Names must be lowercase alphanumeric with hyphens or forward slashes (no \".\" or \"..\" segments).`,\n\t\tfix: `Use a valid ref name (e.g., \"staging\", \"envs/production\").`,\n\t\tmeta: { refName }\n\t});\n}\nfunction errorNoTarget(reachableHashes) {\n\treturn new MigrationToolsError(\"MIGRATION.NO_TARGET\", \"No migration target could be resolved\", {\n\t\twhy: `The migration history contains cycles and no target can be resolved automatically (reachable hashes: ${reachableHashes.join(\", \")}). This typically happens after rollback migrations (e.g., C1→C2→C1).`,\n\t\tfix: \"Use --from <hash> to specify the planning origin explicitly.\",\n\t\tmeta: { reachableHashes }\n\t});\n}\nfunction errorInvalidRefValue(value) {\n\treturn new MigrationToolsError(\"MIGRATION.INVALID_REF_VALUE\", \"Invalid ref value\", {\n\t\twhy: `Ref value \"${value}\" is not a valid contract hash. Values must be a 64-character hex digest or \"empty\".`,\n\t\tfix: \"Use a valid storage hash from `prisma-next contract emit` output or an existing migration.\",\n\t\tnextActions: [{\n\t\t\tkind: \"run-command\",\n\t\t\tlabel: \"Emit the contract to obtain a valid storage hash\",\n\t\t\tcommand: \"{bin} contract emit\"\n\t\t}, {\n\t\t\tkind: \"run-command\",\n\t\t\tlabel: \"List existing migrations to reuse one of their hashes\",\n\t\t\tcommand: \"{bin} migration list\"\n\t\t}],\n\t\tmeta: { value }\n\t});\n}\nfunction errorInvalidInvariantId(invariantId) {\n\treturn new MigrationToolsError(\"MIGRATION.INVALID_INVARIANT_ID\", \"Invalid invariantId\", {\n\t\twhy: `invariantId ${JSON.stringify(invariantId)} is invalid. Ids must be non-empty and contain no whitespace or control characters (including Unicode whitespace like NBSP); other content (kebab-case, camelCase, namespaced, Unicode letters) is allowed.`,\n\t\tfix: \"Pick an invariantId without spaces, tabs, newlines, or control characters — e.g. \\\"backfill-user-phone\\\", \\\"users/backfill-phone\\\", or \\\"BackfillUserPhone\\\".\",\n\t\tmeta: { invariantId }\n\t});\n}\nfunction errorDuplicateInvariantInEdge(invariantId) {\n\treturn new MigrationToolsError(\"MIGRATION.DUPLICATE_INVARIANT_IN_EDGE\", \"Duplicate invariantId on a single migration\", {\n\t\twhy: `invariantId \"${invariantId}\" is declared by more than one dataTransform on the same migration. The marker stores invariants as a set and the routing layer treats them as edge-level, so two ops cannot share a routing identity.`,\n\t\tfix: \"Rename one of the conflicting dataTransform invariantIds, or drop invariantId on the op that does not need to be routing-visible.\",\n\t\tmeta: { invariantId }\n\t});\n}\nfunction errorProvidedInvariantsMismatch(filePath, stored, derived) {\n\tconst storedSet = new Set(stored);\n\tconst derivedSet = new Set(derived);\n\tconst missing = [...derivedSet].filter((id) => !storedSet.has(id));\n\tconst extra = [...storedSet].filter((id) => !derivedSet.has(id));\n\treturn new MigrationToolsError(\"MIGRATION.PROVIDED_INVARIANTS_MISMATCH\", \"providedInvariants on migration.json disagrees with ops.json\", {\n\t\twhy: missing.length === 0 && extra.length === 0 ? `migration.json at \"${filePath}\" stores providedInvariants ${JSON.stringify(stored)}, but the canonical value derived from ops.json is ${JSON.stringify(derived)} — same ids, different order. Canonical providedInvariants is sorted ascending.` : `migration.json at \"${filePath}\" stores providedInvariants ${JSON.stringify(stored)}, but the value derived from ops.json is ${JSON.stringify(derived)}. The manifest copy was likely hand-edited without re-emitting.`,\n\t\tfix: reemitHint(dirname(filePath), \"or restore the directory from version control.\"),\n\t\tmeta: {\n\t\t\tfilePath,\n\t\t\tstored,\n\t\t\tderived,\n\t\t\tdifference: {\n\t\t\t\tmissing,\n\t\t\t\textra\n\t\t\t}\n\t\t}\n\t});\n}\nfunction errorNoInvariantPath(args) {\n\tconst { refName, required, missing, structuralPath } = args;\n\tconst refClause = refName ? `Ref \"${refName}\"` : \"Target\";\n\tconst missingList = missing.map((id) => JSON.stringify(id)).join(\", \");\n\treturn new MigrationToolsError(\"MIGRATION.NO_INVARIANT_PATH\", \"No path covers the required invariants\", {\n\t\twhy: `${refClause} requires invariants the reachable path doesn't cover. required=[${required.map((id) => JSON.stringify(id)).join(\", \")}], missing=[${missingList}].`,\n\t\tfix: \"Add a migration on the path that runs `dataTransform({ invariantId: \\\"<id>\\\", … })` for each missing invariant, or retarget the ref to a hash whose path already provides them.\",\n\t\tmeta: {\n\t\t\trequired,\n\t\t\tmissing,\n\t\t\tstructuralPath,\n\t\t\t...ifDefined(\"refName\", refName)\n\t\t}\n\t});\n}\nfunction errorUnknownInvariant(args) {\n\tconst { refName, unknown, declared } = args;\n\treturn new MigrationToolsError(\"MIGRATION.UNKNOWN_INVARIANT\", \"Ref declares invariants no migration in the graph provides\", {\n\t\twhy: `${refName ? `Ref \"${refName}\" declares` : \"Declares\"} invariants no migration in the graph provides. unknown=[${unknown.map((id) => JSON.stringify(id)).join(\", \")}].`,\n\t\tfix: \"Either the ref has a typo, or the declaring migration has not been authored/attested yet. Re-check the ref file and the migrations directory.\",\n\t\tmeta: {\n\t\t\tunknown,\n\t\t\tdeclared,\n\t\t\t...ifDefined(\"refName\", refName)\n\t\t}\n\t});\n}\nfunction errorMigrationHashMismatch(dir, storedHash, computedHash) {\n\treturn new MigrationToolsError(\"MIGRATION.HASH_MISMATCH\", \"Migration package is corrupt\", {\n\t\twhy: `Stored migrationHash \"${storedHash}\" does not match the recomputed hash \"${computedHash}\" for \"${relative(process.cwd(), dir)}\". The migration.json or ops.json has been edited or partially written since emit.`,\n\t\tfix: reemitHint(dir, \"or restore the directory from version control.\"),\n\t\tmeta: {\n\t\t\tdir,\n\t\t\tstoredHash,\n\t\t\tcomputedHash\n\t\t}\n\t});\n}\n/**\n* A ref name that resolves to nothing: no pointer file named `refName`\n* exists, and the hash being resolved (the `contractAt` argument, used as a\n* fallback when the pointer is absent) is not a node in the migration graph\n* either. There is no contract to materialize.\n*/\nfunction errorRefNotResolvable(refName) {\n\treturn new MigrationToolsError(\"MIGRATION.REF_NOT_RESOLVABLE\", `Ref \"${refName}\" is not resolvable`, {\n\t\twhy: `Ref \"${refName}\" has no pointer file, and the hash being resolved is not a node in the migration graph either — there is nothing to materialize a contract from.`,\n\t\tfix: `Create the ref with \"prisma-next ref set ${refName} <hash>\" (or advance it via \"prisma-next db update --advance-ref ${refName}\"), or pass a hash that is a node in the migration graph.`,\n\t\tnextActions: [\n\t\t\t{\n\t\t\t\tkind: \"run-command\",\n\t\t\t\tlabel: `Create the ref \"${refName}\"`,\n\t\t\t\tcommand: `{bin} ref set ${refName} <hash>`\n\t\t\t},\n\t\t\t{\n\t\t\t\tkind: \"run-command\",\n\t\t\t\tlabel: `Advance the ref \"${refName}\" as part of an update`,\n\t\t\t\tcommand: `{bin} db update --advance-ref ${refName}`\n\t\t\t},\n\t\t\t{\n\t\t\t\tkind: \"user-choice\",\n\t\t\t\tlabel: \"Pass a hash that is already a node in the migration graph\"\n\t\t\t}\n\t\t],\n\t\tmeta: {\n\t\t\trefName,\n\t\t\tidentifier: refName\n\t\t}\n\t});\n}\nfunction errorBundleNotFoundForGraphNode(hash, explicitLabel) {\n\treturn new MigrationToolsError(\"MIGRATION.BUNDLE_NOT_FOUND_FOR_GRAPH_NODE\", explicitLabel ? `No migration bundle found for reference \"${explicitLabel}\" (resolved hash: ${hash})` : `No migration bundle found for graph node ${hash}`, {\n\t\twhy: `The hash ${hash} is a graph node but no on-disk migration package has a destination (\\`to\\`) hash matching it.`,\n\t\tfix: \"Provide a ref or hash that corresponds to an existing migration package, or run `migration list` to see available migrations.\",\n\t\tmeta: {\n\t\t\thash,\n\t\t\t...explicitLabel ? { explicitLabel } : {}\n\t\t}\n\t});\n}\nfunction errorContractDeserializationFailed(filePath, message, options) {\n\treturn new MigrationToolsError(\"MIGRATION.CONTRACT_DESERIALIZATION_FAILED\", \"Contract failed to deserialize\", {\n\t\twhy: `Contract at \"${filePath}\" failed to deserialize: ${message}`,\n\t\tfix: reemitHint(dirname(filePath), \"or restore the directory from version control.\"),\n\t\tmeta: {\n\t\t\tfilePath,\n\t\t\tmessage\n\t\t},\n\t\t...ifDefined(\"cause\", options?.cause)\n\t});\n}\nfunction errorHashNotInGraph(hash, graph) {\n\tconst reachableHashes = [...graph.nodes].sort();\n\tconst reachableList = reachableHashes.length > 0 ? reachableHashes.join(\", \") : \"(none)\";\n\treturn new MigrationToolsError(\"MIGRATION.HASH_NOT_IN_GRAPH\", `Hash \"${hash}\" is not a node in the migration graph`, {\n\t\twhy: `The migration graph contains nodes ${reachableList}; \"${hash}\" isn't one of them.`,\n\t\tfix: `Pass a hash that's the from-or-to of an on-disk migration bundle, use --from with a graph-node hash, or run \"prisma-next migration plan\" to introduce it.`,\n\t\tnextActions: [{\n\t\t\tkind: \"user-choice\",\n\t\t\tlabel: \"Pass a hash that is the from-or-to of an on-disk migration bundle, or use --from with a graph-node hash\",\n\t\t\treason: `Graph nodes: ${reachableList}.`\n\t\t}, {\n\t\t\tkind: \"run-command\",\n\t\t\tlabel: `Introduce \"${hash}\" by planning a migration for it`,\n\t\t\tcommand: \"{bin} migration plan\"\n\t\t}],\n\t\tmeta: {\n\t\t\thash,\n\t\t\treachableHashes\n\t\t}\n\t});\n}\nfunction errorContractSnapshotMissing(storageHash, expectedPath) {\n\treturn new MigrationToolsError(\"MIGRATION.CONTRACT_SNAPSHOT_MISSING\", \"Contract snapshot is missing\", {\n\t\twhy: `Expected a contract snapshot for ${storageHash} at \"${expectedPath}\" but the file does not exist.`,\n\t\tfix: \"Re-emit the contract snapshot by re-running the command that authored the migration referencing this hash (`prisma-next migration plan` for app-space migrations; the extension's contract-space build for extension spaces), or restore migrations/snapshots/ from version control.\",\n\t\tnextActions: [\n\t\t\t{\n\t\t\t\tkind: \"run-command\",\n\t\t\t\tlabel: \"Re-emit the snapshot for an app-space migration\",\n\t\t\t\tcommand: \"{bin} migration plan\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tkind: \"user-choice\",\n\t\t\t\tlabel: \"For an extension space, re-run that extension's contract-space build instead\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tkind: \"user-choice\",\n\t\t\t\tlabel: \"Restore migrations/snapshots/ from version control\"\n\t\t\t}\n\t\t],\n\t\tmeta: {\n\t\t\tstorageHash,\n\t\t\texpectedPath\n\t\t}\n\t});\n}\nfunction errorContractSnapshotHashMismatch(storageHash, actualHash, dir) {\n\treturn new MigrationToolsError(\"MIGRATION.CONTRACT_SNAPSHOT_HASH_MISMATCH\", \"Contract snapshot hash mismatch\", {\n\t\twhy: `The contract JSON's inner storage.storageHash (\"${actualHash}\") does not match the requested storage hash (\"${storageHash}\") for snapshot directory \"${dir}\".`,\n\t\tfix: \"Pass a contractJson whose storage.storageHash equals the storageHash argument passed to writeContractSnapshot — the two must agree by construction.\",\n\t\tmeta: {\n\t\t\tstorageHash,\n\t\t\tactualHash,\n\t\t\tdir\n\t\t}\n\t});\n}\nfunction errorMigrationContractViewMissing(className, accessor, jsonField) {\n\treturn new MigrationToolsError(\"MIGRATION.CONTRACT_VIEW_MISSING\", `${className}.${accessor} requires ${jsonField}`, {\n\t\twhy: `${className}.${accessor} was read, but this instance has no ${jsonField} to build the view from.`,\n\t\tfix: `Set ${jsonField} to the migration's committed contract JSON, or avoid reading ${accessor} on a migration that overrides describe() and carries no contract.`,\n\t\tmeta: {\n\t\t\tclassName,\n\t\t\taccessor,\n\t\t\tjsonField\n\t\t}\n\t});\n}\n//#endregion\nexport { errorOperationsNotArray as A, errorInvalidSpaceId as C, errorNoInitialMigration as D, errorMissingFile as E, errorRefNotResolvable as M, errorSpaceHeadRefMissing as N, errorNoInvariantPath as O, errorUnknownInvariant as P, errorInvalidSlug as S, errorMigrationHashMismatch as T, errorInvalidManifest as _, errorContractSnapshotHashMismatch as a, errorInvalidRefName as b, errorDescribeMissingEndContract as c, errorDuplicateInvariantInEdge as d, errorDuplicateSpaceId as f, errorInvalidJson as g, errorInvalidInvariantId as h, errorContractDeserializationFailed as i, errorProvidedInvariantsMismatch as j, errorNoTarget as k, errorDescriptorHeadHashMismatch as l, errorInvalidDestName as m, errorAmbiguousTarget as n, errorContractSnapshotMissing as o, errorHashNotInGraph as p, errorBundleNotFoundForGraphNode as r, errorDescribeInvalidMetadata as s, MigrationToolsError as t, errorDirectoryExists as u, errorInvalidOperationEntry as v, errorMigrationContractViewMissing as w, errorInvalidRefValue as x, errorInvalidRefFile as y };\n\n//# sourceMappingURL=errors-CXbGUWGu.mjs.map"],"mappings":";;;;;;;;;;;;;;AAcA,SAAS,WAAW,KAAK,UAAU;CAClC,MAAM,SAAS,0CAA0C,SAAS,QAAQ,IAAI,GAAG,GAAG,EAAE;CACtF,OAAO,WAAW,GAAG,OAAO,IAAI,aAAa,GAAG,OAAO;AACxD;;;;;;;;;;;;;;;;;AAiBA,IAAI,sBAAsB,cAAc,mBAAmB;CAC1D;CACA,YAAY,MAAM,SAAS,SAAS;EACnC,MAAM,MAAM,SAAS,OAAO;EAC5B,KAAK,WAAW;CACjB;CACA,OAAO,GAAG,OAAO;EAChB,OAAO,mBAAmB,GAAG,KAAK,KAAK,cAAc,SAAS,MAAM,aAAa,eAAe,MAAM,KAAK,WAAW,YAAY;CACnI;AACD;AACA,SAAS,qBAAqB,KAAK;CAClC,OAAO,IAAI,oBAAoB,wBAAwB,sCAAsC;EAC5F,KAAK,kBAAkB,IAAI;EAC3B,KAAK;EACL,MAAM,EAAE,IAAI;CACb,CAAC;AACF;AACA,SAAS,iBAAiB,MAAM,KAAK;CACpC,OAAO,IAAI,oBAAoB,0BAA0B,WAAW,QAAQ;EAC3E,KAAK,aAAa,KAAK,QAAQ,IAAI;EACnC,KAAK,WAAW,KAAK,yFAAyF;EAC9G,MAAM;GACL;GACA;EACD;CACD,CAAC;AACF;AACA,SAAS,iBAAiB,UAAU,YAAY;CAC/C,OAAO,IAAI,oBAAoB,0BAA0B,kCAAkC;EAC1F,KAAK,oBAAoB,SAAS,KAAK;EACvC,KAAK,WAAW,QAAQ,QAAQ,GAAG,gDAAgD;EACnF,MAAM;GACL;GACA;EACD;CACD,CAAC;AACF;AACA,SAAS,qBAAqB,UAAU,QAAQ;CAC/C,OAAO,IAAI,oBAAoB,8BAA8B,8BAA8B;EAC1F,KAAK,0BAA0B,SAAS,gBAAgB;EACxD,KAAK,WAAW,QAAQ,QAAQ,GAAG,gDAAgD;EACnF,MAAM;GACL;GACA;EACD;CACD,CAAC;AACF;AACA,SAAS,kCAAkC;CAC1C,OAAO,IAAI,oBAAoB,8BAA8B,yHAAyH;EACrL,KAAK;EACL,KAAK;EACL,MAAM,EAAE,QAAQ,uBAAuB;CACxC,CAAC;AACF;AACA,SAAS,6BAA6B,SAAS;CAC9C,OAAO,IAAI,oBAAoB,8BAA8B,yCAAyC,WAAW;EAChH,KAAK,+EAA+E,QAAQ;EAC5F,KAAK;EACL,MAAM;GACL,QAAQ;GACR;EACD;CACD,CAAC;AACF;AACA,SAAS,0BAA0B;CAClC,OAAO,IAAI,oBAAoB,4BAA4B,+BAA+B;EACzF,KAAK;EACL,KAAK;EACL,MAAM,CAAC;CACR,CAAC;AACF;AACA,SAAS,yBAAyB,SAAS;CAC1C,OAAO,IAAI,oBAAoB,oCAAoC,mBAAmB,QAAQ,0FAA0F;EACvL,KAAK,mBAAmB,QAAQ;EAChC,KAAK;EACL,MAAM,EAAE,QAAQ;CACjB,CAAC;AACF;AACA,SAAS,2BAA2B,OAAO,QAAQ;CAClD,OAAO,IAAI,oBAAoB,qCAAqC,0CAA0C;EAC7G,KAAK,sBAAsB,MAAM,6DAA6D,OAAO;EACrG,KAAK;EACL,MAAM;GACL;GACA;EACD;CACD,CAAC;AACF;AACA,SAAS,iBAAiB,MAAM;CAC/B,OAAO,IAAI,oBAAoB,0BAA0B,0BAA0B;EAClF,KAAK,aAAa,KAAK;EACvB,KAAK;EACL,MAAM,EAAE,KAAK;CACd,CAAC;AACF;AACA,SAAS,qBAAqB,UAAU;CACvC,OAAO,IAAI,oBAAoB,+BAA+B,iCAAiC;EAC9F,KAAK,yBAAyB,SAAS;EACvC,KAAK;EACL,MAAM,EAAE,SAAS;CAClB,CAAC;AACF;AACA,SAAS,oBAAoB,SAAS;CACrC,OAAO,IAAI,oBAAoB,8BAA8B,qCAAqC;EACjG,KAAK,iBAAiB,QAAQ;EAC9B,KAAK;EACL,MAAM,EAAE,QAAQ;CACjB,CAAC;AACF;AACA,SAAS,gCAAgC,MAAM;CAC9C,MAAM,EAAE,aAAa,gBAAgB,gBAAgB;CACrD,OAAO,IAAI,oBAAoB,2CAA2C,uEAAuE;EAChJ,KAAK,cAAc,YAAY,0DAA0D,YAAY,sFAAsF,eAAe;EAC1M,KAAK;EACL,MAAM;GACL;GACA;GACA;EACD;CACD,CAAC;AACF;AACA,SAAS,sBAAsB,SAAS;CACvC,OAAO,IAAI,oBAAoB,gCAAgC,uCAAuC;EACrG,KAAK,iBAAiB,QAAQ;EAC9B,KAAK;EACL,MAAM,EAAE,QAAQ;CACjB,CAAC;AACF;AACA,SAAS,qBAAqB,YAAY,SAAS;CAClD,MAAM,iBAAiB,UAAU,uBAAuB,QAAQ,gBAAgB,eAAe,QAAQ,SAAS,KAAK,MAAM,OAAO,EAAE,IAAI,IAAI,EAAE,MAAM,OAAO,YAAY,EAAE,MAAM,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,MAAM;CAChP,OAAO,IAAI,oBAAoB,8BAA8B,8BAA8B;EAC1F,KAAK,8DAA8D,WAAW,KAAK,IAAI,EAAE,4FAA4F;EACrL,KAAK;EACL,MAAM;GACL;GACA,GAAG,UAAU;IACZ,iBAAiB,QAAQ;IACzB,UAAU,QAAQ;GACnB,IAAI,CAAC;EACN;CACD,CAAC;AACF;AACA,SAAS,wBAAwB,OAAO;CACvC,OAAO,IAAI,oBAAoB,kCAAkC,8BAA8B;EAC9F,KAAK,oEAAoE,MAAM,KAAK,IAAI,EAAE;EAC1F,KAAK;EACL,MAAM,EAAE,MAAM;CACf,CAAC;AACF;AACA,SAAS,oBAAoB,UAAU,QAAQ;CAC9C,OAAO,IAAI,oBAAoB,8BAA8B,oBAAoB;EAChF,KAAK,gBAAgB,SAAS,gBAAgB;EAC9C,KAAK;EACL,MAAM;GACL,MAAM;GACN;EACD;CACD,CAAC;AACF;AACA,SAAS,oBAAoB,SAAS;CACrC,OAAO,IAAI,oBAAoB,8BAA8B,oBAAoB;EAChF,KAAK,aAAa,QAAQ;EAC1B,KAAK;EACL,MAAM,EAAE,QAAQ;CACjB,CAAC;AACF;AACA,SAAS,cAAc,iBAAiB;CACvC,OAAO,IAAI,oBAAoB,uBAAuB,yCAAyC;EAC9F,KAAK,wGAAwG,gBAAgB,KAAK,IAAI,EAAE;EACxI,KAAK;EACL,MAAM,EAAE,gBAAgB;CACzB,CAAC;AACF;AACA,SAAS,qBAAqB,OAAO;CACpC,OAAO,IAAI,oBAAoB,+BAA+B,qBAAqB;EAClF,KAAK,cAAc,MAAM;EACzB,KAAK;EACL,aAAa,CAAC;GACb,MAAM;GACN,OAAO;GACP,SAAS;EACV,GAAG;GACF,MAAM;GACN,OAAO;GACP,SAAS;EACV,CAAC;EACD,MAAM,EAAE,MAAM;CACf,CAAC;AACF;AACA,SAAS,wBAAwB,aAAa;CAC7C,OAAO,IAAI,oBAAoB,kCAAkC,uBAAuB;EACvF,KAAK,eAAe,KAAK,UAAU,WAAW,EAAE;EAChD,KAAK;EACL,MAAM,EAAE,YAAY;CACrB,CAAC;AACF;AACA,SAAS,8BAA8B,aAAa;CACnD,OAAO,IAAI,oBAAoB,yCAAyC,+CAA+C;EACtH,KAAK,gBAAgB,YAAY;EACjC,KAAK;EACL,MAAM,EAAE,YAAY;CACrB,CAAC;AACF;AACA,SAAS,gCAAgC,UAAU,QAAQ,SAAS;CACnE,MAAM,YAAY,IAAI,IAAI,MAAM;CAChC,MAAM,aAAa,IAAI,IAAI,OAAO;CAClC,MAAM,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC,QAAQ,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;CACjE,MAAM,QAAQ,CAAC,GAAG,SAAS,CAAC,CAAC,QAAQ,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;CAC/D,OAAO,IAAI,oBAAoB,0CAA0C,gEAAgE;EACxI,KAAK,QAAQ,WAAW,KAAK,MAAM,WAAW,IAAI,sBAAsB,SAAS,8BAA8B,KAAK,UAAU,MAAM,EAAE,qDAAqD,KAAK,UAAU,OAAO,EAAE,mFAAmF,sBAAsB,SAAS,8BAA8B,KAAK,UAAU,MAAM,EAAE,2CAA2C,KAAK,UAAU,OAAO,EAAE;EAC7b,KAAK,WAAW,QAAQ,QAAQ,GAAG,gDAAgD;EACnF,MAAM;GACL;GACA;GACA;GACA,YAAY;IACX;IACA;GACD;EACD;CACD,CAAC;AACF;AACA,SAAS,qBAAqB,MAAM;CACnC,MAAM,EAAE,SAAS,UAAU,SAAS,mBAAmB;CACvD,MAAM,YAAY,UAAU,QAAQ,QAAQ,KAAK;CACjD,MAAM,cAAc,QAAQ,KAAK,OAAO,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI;CACrE,OAAO,IAAI,oBAAoB,+BAA+B,0CAA0C;EACvG,KAAK,GAAG,UAAU,mEAAmE,SAAS,KAAK,OAAO,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,cAAc,YAAY;EACnK,KAAK;EACL,MAAM;GACL;GACA;GACA;GACA,GAAG,UAAU,WAAW,OAAO;EAChC;CACD,CAAC;AACF;AACA,SAAS,sBAAsB,MAAM;CACpC,MAAM,EAAE,SAAS,SAAS,aAAa;CACvC,OAAO,IAAI,oBAAoB,+BAA+B,8DAA8D;EAC3H,KAAK,GAAG,UAAU,QAAQ,QAAQ,cAAc,WAAW,2DAA2D,QAAQ,KAAK,OAAO,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;EACzK,KAAK;EACL,MAAM;GACL;GACA;GACA,GAAG,UAAU,WAAW,OAAO;EAChC;CACD,CAAC;AACF;AACA,SAAS,2BAA2B,KAAK,YAAY,cAAc;CAClE,OAAO,IAAI,oBAAoB,2BAA2B,gCAAgC;EACzF,KAAK,yBAAyB,WAAW,wCAAwC,aAAa,SAAS,SAAS,QAAQ,IAAI,GAAG,GAAG,EAAE;EACpI,KAAK,WAAW,KAAK,gDAAgD;EACrE,MAAM;GACL;GACA;GACA;EACD;CACD,CAAC;AACF;;;;;;;AAOA,SAAS,sBAAsB,SAAS;CACvC,OAAO,IAAI,oBAAoB,gCAAgC,QAAQ,QAAQ,sBAAsB;EACpG,KAAK,QAAQ,QAAQ;EACrB,KAAK,4CAA4C,QAAQ,mEAAmE,QAAQ;EACpI,aAAa;GACZ;IACC,MAAM;IACN,OAAO,mBAAmB,QAAQ;IAClC,SAAS,iBAAiB,QAAQ;GACnC;GACA;IACC,MAAM;IACN,OAAO,oBAAoB,QAAQ;IACnC,SAAS,iCAAiC;GAC3C;GACA;IACC,MAAM;IACN,OAAO;GACR;EACD;EACA,MAAM;GACL;GACA,YAAY;EACb;CACD,CAAC;AACF;AACA,SAAS,gCAAgC,MAAM,eAAe;CAC7D,OAAO,IAAI,oBAAoB,6CAA6C,gBAAgB,4CAA4C,cAAc,oBAAoB,KAAK,KAAK,4CAA4C,QAAQ;EACvO,KAAK,YAAY,KAAK;EACtB,KAAK;EACL,MAAM;GACL;GACA,GAAG,gBAAgB,EAAE,cAAc,IAAI,CAAC;EACzC;CACD,CAAC;AACF;AACA,SAAS,mCAAmC,UAAU,SAAS,SAAS;CACvE,OAAO,IAAI,oBAAoB,6CAA6C,kCAAkC;EAC7G,KAAK,gBAAgB,SAAS,2BAA2B;EACzD,KAAK,WAAW,QAAQ,QAAQ,GAAG,gDAAgD;EACnF,MAAM;GACL;GACA;EACD;EACA,GAAG,UAAU,SAAS,SAAS,KAAK;CACrC,CAAC;AACF;AACA,SAAS,oBAAoB,MAAM,OAAO;CACzC,MAAM,kBAAkB,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,KAAK;CAC9C,MAAM,gBAAgB,gBAAgB,SAAS,IAAI,gBAAgB,KAAK,IAAI,IAAI;CAChF,OAAO,IAAI,oBAAoB,+BAA+B,SAAS,KAAK,yCAAyC;EACpH,KAAK,sCAAsC,cAAc,KAAK,KAAK;EACnE,KAAK;EACL,aAAa,CAAC;GACb,MAAM;GACN,OAAO;GACP,QAAQ,gBAAgB,cAAc;EACvC,GAAG;GACF,MAAM;GACN,OAAO,cAAc,KAAK;GAC1B,SAAS;EACV,CAAC;EACD,MAAM;GACL;GACA;EACD;CACD,CAAC;AACF;AACA,SAAS,6BAA6B,aAAa,cAAc;CAChE,OAAO,IAAI,oBAAoB,uCAAuC,gCAAgC;EACrG,KAAK,oCAAoC,YAAY,OAAO,aAAa;EACzE,KAAK;EACL,aAAa;GACZ;IACC,MAAM;IACN,OAAO;IACP,SAAS;GACV;GACA;IACC,MAAM;IACN,OAAO;GACR;GACA;IACC,MAAM;IACN,OAAO;GACR;EACD;EACA,MAAM;GACL;GACA;EACD;CACD,CAAC;AACF;AACA,SAAS,kCAAkC,aAAa,YAAY,KAAK;CACxE,OAAO,IAAI,oBAAoB,6CAA6C,mCAAmC;EAC9G,KAAK,mDAAmD,WAAW,iDAAiD,YAAY,6BAA6B,IAAI;EACjK,KAAK;EACL,MAAM;GACL;GACA;GACA;EACD;CACD,CAAC;AACF;AACA,SAAS,kCAAkC,WAAW,UAAU,WAAW;CAC1E,OAAO,IAAI,oBAAoB,mCAAmC,GAAG,UAAU,GAAG,SAAS,YAAY,aAAa;EACnH,KAAK,GAAG,UAAU,GAAG,SAAS,sCAAsC,UAAU;EAC9E,KAAK,OAAO,UAAU,gEAAgE,SAAS;EAC/F,MAAM;GACL;GACA;GACA;EACD;CACD,CAAC;AACF"}
|