@prisma-next/target-postgres 0.4.0-dev.8 → 0.4.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.
Files changed (44) hide show
  1. package/dist/control.d.mts +1 -9
  2. package/dist/control.d.mts.map +1 -1
  3. package/dist/control.mjs +1693 -4798
  4. package/dist/control.mjs.map +1 -1
  5. package/dist/migration.d.mts +164 -0
  6. package/dist/migration.d.mts.map +1 -0
  7. package/dist/migration.mjs +446 -0
  8. package/dist/migration.mjs.map +1 -0
  9. package/dist/planner-target-details-MXb3oeul.d.mts +11 -0
  10. package/dist/planner-target-details-MXb3oeul.d.mts.map +1 -0
  11. package/dist/postgres-migration-BsHJHV9O.mjs +2793 -0
  12. package/dist/postgres-migration-BsHJHV9O.mjs.map +1 -0
  13. package/package.json +21 -19
  14. package/src/core/migrations/issue-planner.ts +832 -0
  15. package/src/core/migrations/op-factory-call.ts +862 -0
  16. package/src/core/migrations/operations/columns.ts +285 -0
  17. package/src/core/migrations/operations/constraints.ts +191 -0
  18. package/src/core/migrations/operations/data-transform.ts +113 -0
  19. package/src/core/migrations/operations/dependencies.ts +36 -0
  20. package/src/core/migrations/operations/enums.ts +113 -0
  21. package/src/core/migrations/operations/indexes.ts +61 -0
  22. package/src/core/migrations/operations/raw.ts +15 -0
  23. package/src/core/migrations/operations/shared.ts +67 -0
  24. package/src/core/migrations/operations/tables.ts +63 -0
  25. package/src/core/migrations/planner-produced-postgres-migration.ts +67 -0
  26. package/src/core/migrations/planner-strategies.ts +592 -151
  27. package/src/core/migrations/planner-target-details.ts +0 -6
  28. package/src/core/migrations/planner.ts +63 -781
  29. package/src/core/migrations/postgres-migration.ts +20 -0
  30. package/src/core/migrations/render-ops.ts +9 -0
  31. package/src/core/migrations/render-typescript.ts +95 -0
  32. package/src/exports/control.ts +9 -142
  33. package/src/exports/migration.ts +40 -0
  34. package/dist/migration-builders.d.mts +0 -88
  35. package/dist/migration-builders.d.mts.map +0 -1
  36. package/dist/migration-builders.mjs +0 -3
  37. package/dist/operation-descriptors-CxymFSgK.mjs +0 -52
  38. package/dist/operation-descriptors-CxymFSgK.mjs.map +0 -1
  39. package/src/core/migrations/descriptor-planner.ts +0 -464
  40. package/src/core/migrations/operation-descriptors.ts +0 -166
  41. package/src/core/migrations/operation-resolver.ts +0 -929
  42. package/src/core/migrations/planner-reconciliation.ts +0 -798
  43. package/src/core/migrations/scaffolding.ts +0 -140
  44. package/src/exports/migration-builders.ts +0 -56
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.mjs","names":["adapterSingleton: ReturnType<typeof createPostgresAdapter> | null","runClosures: readonly DataTransformClosure[]"],"sources":["../../../6-adapters/postgres/dist/adapter-Du9Hr9Rl.mjs","../src/core/migrations/operations/data-transform.ts","../src/core/migrations/operations/raw.ts"],"sourcesContent":["import { m as PG_JSON_CODEC_ID, p as PG_JSONB_CODEC_ID } from \"./codec-ids-5g4Gwrgm.mjs\";\nimport { t as codecDefinitions } from \"./codecs-DiPlMi3-.mjs\";\nimport { i as quoteIdentifier, n as escapeLiteral } from \"./sql-utils-DkUJyZmA.mjs\";\nimport { LiteralExpr, createCodecRegistry } from \"@prisma-next/sql-relational-core/ast\";\nimport { ifDefined } from \"@prisma-next/utils/defined\";\n\n//#region src/core/adapter.ts\nconst VECTOR_CODEC_ID = \"pg/vector@1\";\nfunction getCodecParamCast(codecId) {\n\tif (codecId === VECTOR_CODEC_ID) return \"vector\";\n\tif (codecId === PG_JSON_CODEC_ID) return \"json\";\n\tif (codecId === PG_JSONB_CODEC_ID) return \"jsonb\";\n}\nfunction renderTypedParam(index, codecId) {\n\tconst cast = getCodecParamCast(codecId);\n\treturn cast ? `$${index}::${cast}` : `$${index}`;\n}\nconst defaultCapabilities = Object.freeze({\n\tpostgres: {\n\t\torderBy: true,\n\t\tlimit: true,\n\t\tlateral: true,\n\t\tjsonAgg: true,\n\t\treturning: true\n\t},\n\tsql: {\n\t\tenums: true,\n\t\treturning: true,\n\t\tdefaultInInsert: true\n\t}\n});\nconst parameterizedCodecs = Object.values(codecDefinitions).map((definition) => definition.codec).filter((codec$1) => codec$1.paramsSchema !== void 0).map((codec$1) => Object.freeze({\n\tcodecId: codec$1.id,\n\tparamsSchema: codec$1.paramsSchema,\n\t...ifDefined(\"init\", codec$1.init)\n}));\nvar PostgresAdapterImpl = class {\n\tfamilyId = \"sql\";\n\ttargetId = \"postgres\";\n\tprofile;\n\tcodecRegistry = (() => {\n\t\tconst registry = createCodecRegistry();\n\t\tfor (const definition of Object.values(codecDefinitions)) registry.register(definition.codec);\n\t\treturn registry;\n\t})();\n\tconstructor(options) {\n\t\tthis.profile = Object.freeze({\n\t\t\tid: options?.profileId ?? \"postgres/default@1\",\n\t\t\ttarget: \"postgres\",\n\t\t\tcapabilities: defaultCapabilities,\n\t\t\tcodecs: () => this.codecRegistry,\n\t\t\treadMarkerStatement: () => ({\n\t\t\t\tsql: \"select core_hash, profile_hash, contract_json, canonical_version, updated_at, app_tag, meta from prisma_contract.marker where id = $1\",\n\t\t\t\tparams: [1]\n\t\t\t})\n\t\t});\n\t}\n\tparameterizedCodecs() {\n\t\treturn parameterizedCodecs;\n\t}\n\tlower(ast, context) {\n\t\tconst collectedParamRefs = ast.collectParamRefs();\n\t\tconst paramIndexMap = /* @__PURE__ */ new Map();\n\t\tconst params = [];\n\t\tfor (const ref of collectedParamRefs) {\n\t\t\tif (paramIndexMap.has(ref)) continue;\n\t\t\tparamIndexMap.set(ref, params.length + 1);\n\t\t\tparams.push(ref.value);\n\t\t}\n\t\tlet sql;\n\t\tconst node = ast;\n\t\tswitch (node.kind) {\n\t\t\tcase \"select\":\n\t\t\t\tsql = renderSelect(node, context.contract, paramIndexMap);\n\t\t\t\tbreak;\n\t\t\tcase \"insert\":\n\t\t\t\tsql = renderInsert(node, context.contract, paramIndexMap);\n\t\t\t\tbreak;\n\t\t\tcase \"update\":\n\t\t\t\tsql = renderUpdate(node, context.contract, paramIndexMap);\n\t\t\t\tbreak;\n\t\t\tcase \"delete\":\n\t\t\t\tsql = renderDelete(node, context.contract, paramIndexMap);\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error(`Unsupported AST node kind: ${node.kind}`);\n\t\t}\n\t\treturn Object.freeze({\n\t\t\tprofileId: this.profile.id,\n\t\t\tbody: Object.freeze({\n\t\t\t\tsql,\n\t\t\t\tparams\n\t\t\t})\n\t\t});\n\t}\n};\nfunction renderSelect(ast, contract, pim) {\n\treturn [\n\t\t`SELECT ${renderDistinctPrefix(ast.distinct, ast.distinctOn, contract, pim)}${renderProjection(ast.projection, contract, pim)}`,\n\t\t`FROM ${renderSource(ast.from, contract, pim)}`,\n\t\tast.joins?.length ? ast.joins.map((join) => renderJoin(join, contract, pim)).join(\" \") : \"\",\n\t\tast.where ? `WHERE ${renderWhere(ast.where, contract, pim)}` : \"\",\n\t\tast.groupBy?.length ? `GROUP BY ${ast.groupBy.map((expr) => renderExpr(expr, contract, pim)).join(\", \")}` : \"\",\n\t\tast.having ? `HAVING ${renderWhere(ast.having, contract, pim)}` : \"\",\n\t\tast.orderBy?.length ? `ORDER BY ${ast.orderBy.map((order) => {\n\t\t\treturn `${renderExpr(order.expr, contract, pim)} ${order.dir.toUpperCase()}`;\n\t\t}).join(\", \")}` : \"\",\n\t\ttypeof ast.limit === \"number\" ? `LIMIT ${ast.limit}` : \"\",\n\t\ttypeof ast.offset === \"number\" ? `OFFSET ${ast.offset}` : \"\"\n\t].filter((part) => part.length > 0).join(\" \").trim();\n}\nfunction renderProjection(projection, contract, pim) {\n\treturn projection.map((item) => {\n\t\tconst alias = quoteIdentifier(item.alias);\n\t\tif (item.expr.kind === \"literal\") return `${renderLiteral(item.expr)} AS ${alias}`;\n\t\treturn `${renderExpr(item.expr, contract, pim)} AS ${alias}`;\n\t}).join(\", \");\n}\nfunction renderDistinctPrefix(distinct, distinctOn, contract, pim) {\n\tif (distinctOn && distinctOn.length > 0) return `DISTINCT ON (${distinctOn.map((expr) => renderExpr(expr, contract, pim)).join(\", \")}) `;\n\tif (distinct) return \"DISTINCT \";\n\treturn \"\";\n}\nfunction renderSource(source, contract, pim) {\n\tconst node = source;\n\tswitch (node.kind) {\n\t\tcase \"table-source\": {\n\t\t\tconst table = quoteIdentifier(node.name);\n\t\t\tif (!node.alias) return table;\n\t\t\treturn `${table} AS ${quoteIdentifier(node.alias)}`;\n\t\t}\n\t\tcase \"derived-table-source\": return `(${renderSelect(node.query, contract, pim)}) AS ${quoteIdentifier(node.alias)}`;\n\t\tdefault: throw new Error(`Unsupported source node kind: ${node.kind}`);\n\t}\n}\nfunction assertScalarSubquery(query) {\n\tif (query.projection.length !== 1) throw new Error(\"Subquery expressions must project exactly one column\");\n}\nfunction renderSubqueryExpr(expr, contract, pim) {\n\tassertScalarSubquery(expr.query);\n\treturn `(${renderSelect(expr.query, contract, pim)})`;\n}\nfunction renderWhere(expr, contract, pim) {\n\treturn renderExpr(expr, contract, pim);\n}\nfunction renderNullCheck(expr, contract, pim) {\n\tconst rendered = renderExpr(expr.expr, contract, pim);\n\tconst renderedExpr = expr.expr.kind === \"operation\" || expr.expr.kind === \"subquery\" ? `(${rendered})` : rendered;\n\treturn expr.isNull ? `${renderedExpr} IS NULL` : `${renderedExpr} IS NOT NULL`;\n}\nfunction renderBinary(expr, contract, pim) {\n\tif (expr.right.kind === \"list\" && expr.right.values.length === 0) {\n\t\tif (expr.op === \"in\") return \"FALSE\";\n\t\tif (expr.op === \"notIn\") return \"TRUE\";\n\t}\n\tconst leftExpr = expr.left;\n\tconst left = renderExpr(leftExpr, contract, pim);\n\tconst leftRendered = leftExpr.kind === \"operation\" || leftExpr.kind === \"subquery\" ? `(${left})` : left;\n\tconst rightNode = expr.right;\n\tlet right;\n\tswitch (rightNode.kind) {\n\t\tcase \"list\":\n\t\t\tright = renderListLiteral(rightNode, pim);\n\t\t\tbreak;\n\t\tcase \"literal\":\n\t\t\tright = renderLiteral(rightNode);\n\t\t\tbreak;\n\t\tcase \"column-ref\":\n\t\t\tright = renderColumn(rightNode);\n\t\t\tbreak;\n\t\tcase \"param-ref\":\n\t\t\tright = renderParamRef(rightNode, pim);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tright = renderExpr(rightNode, contract, pim);\n\t\t\tbreak;\n\t}\n\treturn `${leftRendered} ${{\n\t\teq: \"=\",\n\t\tneq: \"!=\",\n\t\tgt: \">\",\n\t\tlt: \"<\",\n\t\tgte: \">=\",\n\t\tlte: \"<=\",\n\t\tlike: \"LIKE\",\n\t\tin: \"IN\",\n\t\tnotIn: \"NOT IN\"\n\t}[expr.op]} ${right}`;\n}\nfunction renderListLiteral(expr, pim) {\n\tif (expr.values.length === 0) return \"(NULL)\";\n\treturn `(${expr.values.map((v) => {\n\t\tif (v.kind === \"param-ref\") return renderParamRef(v, pim);\n\t\tif (v.kind === \"literal\") return renderLiteral(v);\n\t\treturn renderExpr(v, void 0, pim);\n\t}).join(\", \")})`;\n}\nfunction renderColumn(ref) {\n\tif (ref.table === \"excluded\") return `excluded.${quoteIdentifier(ref.column)}`;\n\treturn `${quoteIdentifier(ref.table)}.${quoteIdentifier(ref.column)}`;\n}\nfunction renderAggregateExpr(expr, contract, pim) {\n\tconst fn = expr.fn.toUpperCase();\n\tif (!expr.expr) return `${fn}(*)`;\n\treturn `${fn}(${renderExpr(expr.expr, contract, pim)})`;\n}\nfunction renderJsonObjectExpr(expr, contract, pim) {\n\treturn `json_build_object(${expr.entries.flatMap((entry) => {\n\t\tconst key = `'${escapeLiteral(entry.key)}'`;\n\t\tif (entry.value.kind === \"literal\") return [key, renderLiteral(entry.value)];\n\t\treturn [key, renderExpr(entry.value, contract, pim)];\n\t}).join(\", \")})`;\n}\nfunction renderOrderByItems(items, contract, pim) {\n\treturn items.map((item) => `${renderExpr(item.expr, contract, pim)} ${item.dir.toUpperCase()}`).join(\", \");\n}\nfunction renderJsonArrayAggExpr(expr, contract, pim) {\n\tconst aggregateOrderBy = expr.orderBy && expr.orderBy.length > 0 ? ` ORDER BY ${renderOrderByItems(expr.orderBy, contract, pim)}` : \"\";\n\tconst aggregated = `json_agg(${renderExpr(expr.expr, contract, pim)}${aggregateOrderBy})`;\n\tif (expr.onEmpty === \"emptyArray\") return `coalesce(${aggregated}, json_build_array())`;\n\treturn aggregated;\n}\nfunction renderExpr(expr, contract, pim) {\n\tconst node = expr;\n\tswitch (node.kind) {\n\t\tcase \"column-ref\": return renderColumn(node);\n\t\tcase \"identifier-ref\": return quoteIdentifier(node.name);\n\t\tcase \"operation\": return renderOperation(node, contract, pim);\n\t\tcase \"subquery\": return renderSubqueryExpr(node, contract, pim);\n\t\tcase \"aggregate\": return renderAggregateExpr(node, contract, pim);\n\t\tcase \"json-object\": return renderJsonObjectExpr(node, contract, pim);\n\t\tcase \"json-array-agg\": return renderJsonArrayAggExpr(node, contract, pim);\n\t\tcase \"binary\": return renderBinary(node, contract, pim);\n\t\tcase \"and\":\n\t\t\tif (node.exprs.length === 0) return \"TRUE\";\n\t\t\treturn `(${node.exprs.map((part) => renderExpr(part, contract, pim)).join(\" AND \")})`;\n\t\tcase \"or\":\n\t\t\tif (node.exprs.length === 0) return \"FALSE\";\n\t\t\treturn `(${node.exprs.map((part) => renderExpr(part, contract, pim)).join(\" OR \")})`;\n\t\tcase \"exists\": return `${node.notExists ? \"NOT \" : \"\"}EXISTS (${renderSelect(node.subquery, contract, pim)})`;\n\t\tcase \"null-check\": return renderNullCheck(node, contract, pim);\n\t\tcase \"not\": return `NOT (${renderExpr(node.expr, contract, pim)})`;\n\t\tcase \"param-ref\": return renderParamRef(node, pim);\n\t\tcase \"literal\": return renderLiteral(node);\n\t\tcase \"list\": return renderListLiteral(node, pim);\n\t\tdefault: throw new Error(`Unsupported expression node kind: ${node.kind}`);\n\t}\n}\nfunction renderParamRef(ref, pim) {\n\tconst index = pim?.get(ref);\n\tif (index === void 0) throw new Error(\"ParamRef not found in index map\");\n\treturn renderTypedParam(index, ref.codecId);\n}\nfunction renderLiteral(expr) {\n\tif (typeof expr.value === \"string\") return `'${escapeLiteral(expr.value)}'`;\n\tif (typeof expr.value === \"number\" || typeof expr.value === \"boolean\") return String(expr.value);\n\tif (typeof expr.value === \"bigint\") return String(expr.value);\n\tif (expr.value === null) return \"NULL\";\n\tif (expr.value === void 0) return \"NULL\";\n\tif (expr.value instanceof Date) return `'${escapeLiteral(expr.value.toISOString())}'`;\n\tif (Array.isArray(expr.value)) return `ARRAY[${expr.value.map((v) => renderLiteral(new LiteralExpr(v))).join(\", \")}]`;\n\tconst json = JSON.stringify(expr.value);\n\tif (json === void 0) return \"NULL\";\n\treturn `'${escapeLiteral(json)}'`;\n}\nfunction renderOperation(expr, contract, pim) {\n\tconst self = renderExpr(expr.self, contract, pim);\n\tconst args = expr.args.map((arg) => {\n\t\treturn renderExpr(arg, contract, pim);\n\t});\n\tlet result = expr.lowering.template;\n\tresult = result.replace(/\\{\\{self\\}\\}/g, self);\n\tfor (let i = 0; i < args.length; i++) result = result.replace(new RegExp(`\\\\{\\\\{arg${i}\\\\}\\\\}`, \"g\"), args[i] ?? \"\");\n\treturn result;\n}\nfunction renderJoin(join, contract, pim) {\n\treturn `${join.joinType.toUpperCase()} JOIN ${join.lateral ? \"LATERAL \" : \"\"}${renderSource(join.source, contract, pim)} ON ${renderJoinOn(join.on, contract, pim)}`;\n}\nfunction renderJoinOn(on, contract, pim) {\n\tif (on.kind === \"eq-col-join-on\") return `${renderColumn(on.left)} = ${renderColumn(on.right)}`;\n\treturn renderWhere(on, contract, pim);\n}\nfunction getInsertColumnOrder(rows, contract, tableName) {\n\tconst orderedColumns = [];\n\tconst seenColumns = /* @__PURE__ */ new Set();\n\tfor (const row of rows) for (const column of Object.keys(row)) {\n\t\tif (seenColumns.has(column)) continue;\n\t\tseenColumns.add(column);\n\t\torderedColumns.push(column);\n\t}\n\tif (orderedColumns.length > 0) return orderedColumns;\n\treturn Object.keys(contract.storage.tables[tableName]?.columns ?? {});\n}\nfunction renderInsertValue(value, pim) {\n\tif (!value || value.kind === \"default-value\") return \"DEFAULT\";\n\tswitch (value.kind) {\n\t\tcase \"param-ref\": return renderParamRef(value, pim);\n\t\tcase \"column-ref\": return renderColumn(value);\n\t\tdefault: throw new Error(`Unsupported value node in INSERT: ${value.kind}`);\n\t}\n}\nfunction renderInsert(ast, contract, pim) {\n\tconst table = quoteIdentifier(ast.table.name);\n\tconst rows = ast.rows;\n\tif (rows.length === 0) throw new Error(\"INSERT requires at least one row\");\n\tconst hasExplicitValues = rows.some((row) => Object.keys(row).length > 0);\n\treturn `${(() => {\n\t\tif (!hasExplicitValues) {\n\t\t\tif (rows.length === 1) return `INSERT INTO ${table} DEFAULT VALUES`;\n\t\t\tconst defaultColumns = getInsertColumnOrder(rows, contract, ast.table.name);\n\t\t\tif (defaultColumns.length === 0) return `INSERT INTO ${table} VALUES ${rows.map(() => \"()\").join(\", \")}`;\n\t\t\tconst quotedColumns = defaultColumns.map((column) => quoteIdentifier(column));\n\t\t\tconst defaultRow = `(${defaultColumns.map(() => \"DEFAULT\").join(\", \")})`;\n\t\t\treturn `INSERT INTO ${table} (${quotedColumns.join(\", \")}) VALUES ${rows.map(() => defaultRow).join(\", \")}`;\n\t\t}\n\t\tconst columnOrder = getInsertColumnOrder(rows, contract, ast.table.name);\n\t\tconst columns = columnOrder.map((column) => quoteIdentifier(column));\n\t\tconst values = rows.map((row) => {\n\t\t\treturn `(${columnOrder.map((column) => renderInsertValue(row[column], pim)).join(\", \")})`;\n\t\t}).join(\", \");\n\t\treturn `INSERT INTO ${table} (${columns.join(\", \")}) VALUES ${values}`;\n\t})()}${ast.onConflict ? (() => {\n\t\tconst conflictColumns = ast.onConflict.columns.map((col) => quoteIdentifier(col.column));\n\t\tif (conflictColumns.length === 0) throw new Error(\"INSERT onConflict requires at least one conflict column\");\n\t\tconst action = ast.onConflict.action;\n\t\tswitch (action.kind) {\n\t\t\tcase \"do-nothing\": return ` ON CONFLICT (${conflictColumns.join(\", \")}) DO NOTHING`;\n\t\t\tcase \"do-update-set\": {\n\t\t\t\tconst updates = Object.entries(action.set).map(([colName, value]) => {\n\t\t\t\t\tconst target = quoteIdentifier(colName);\n\t\t\t\t\tif (value.kind === \"param-ref\") return `${target} = ${renderParamRef(value, pim)}`;\n\t\t\t\t\treturn `${target} = ${renderColumn(value)}`;\n\t\t\t\t});\n\t\t\t\treturn ` ON CONFLICT (${conflictColumns.join(\", \")}) DO UPDATE SET ${updates.join(\", \")}`;\n\t\t\t}\n\t\t\tdefault: throw new Error(`Unsupported onConflict action: ${action.kind}`);\n\t\t}\n\t})() : \"\"}${ast.returning?.length ? ` RETURNING ${ast.returning.map((col) => `${quoteIdentifier(col.table)}.${quoteIdentifier(col.column)}`).join(\", \")}` : \"\"}`;\n}\nfunction renderUpdate(ast, contract, pim) {\n\tconst table = quoteIdentifier(ast.table.name);\n\tconst setClauses = Object.entries(ast.set).map(([col, val]) => {\n\t\tconst column = quoteIdentifier(col);\n\t\tlet value;\n\t\tswitch (val.kind) {\n\t\t\tcase \"param-ref\":\n\t\t\t\tvalue = renderParamRef(val, pim);\n\t\t\t\tbreak;\n\t\t\tcase \"column-ref\":\n\t\t\t\tvalue = renderColumn(val);\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error(`Unsupported value node in UPDATE: ${val.kind}`);\n\t\t}\n\t\treturn `${column} = ${value}`;\n\t});\n\tconst whereClause = ast.where ? ` WHERE ${renderWhere(ast.where, contract, pim)}` : \"\";\n\tconst returningClause = ast.returning?.length ? ` RETURNING ${ast.returning.map((col) => `${quoteIdentifier(col.table)}.${quoteIdentifier(col.column)}`).join(\", \")}` : \"\";\n\treturn `UPDATE ${table} SET ${setClauses.join(\", \")}${whereClause}${returningClause}`;\n}\nfunction renderDelete(ast, contract, pim) {\n\treturn `DELETE FROM ${quoteIdentifier(ast.table.name)}${ast.where ? ` WHERE ${renderWhere(ast.where, contract, pim)}` : \"\"}${ast.returning?.length ? ` RETURNING ${ast.returning.map((col) => `${quoteIdentifier(col.table)}.${quoteIdentifier(col.column)}`).join(\", \")}` : \"\"}`;\n}\nfunction createPostgresAdapter(options) {\n\treturn Object.freeze(new PostgresAdapterImpl(options));\n}\n\n//#endregion\nexport { createPostgresAdapter as t };\n//# sourceMappingURL=adapter-Du9Hr9Rl.mjs.map","/**\n * User-facing `dataTransform` factory for the Postgres migration authoring\n * surface. Invoked directly inside a `migration.ts` file:\n *\n * ```ts\n * import endContract from './end-contract.json' with { type: 'json' };\n * import { dataTransform } from '@prisma-next/target-postgres/migration';\n *\n * dataTransform(endContract, 'backfill emails', {\n * check: () => db.users.count().where(({ email }) => email.isNull()),\n * run: () => db.users.update({ email: '' }).where(({ email }) => email.isNull()),\n * });\n * ```\n *\n * The factory accepts lazy closures (`() => SqlQueryPlan | Buildable`),\n * invokes each one, asserts that its `meta.storageHash` matches the\n * `contract` it was handed (→ `PN-MIG-2005` on mismatch), and lowers the\n * plan via the Postgres adapter to a serialized `{sql, params}` payload\n * for `ops.json`.\n */\n\nimport { createPostgresAdapter } from '@prisma-next/adapter-postgres/adapter';\nimport type { Contract } from '@prisma-next/contract/types';\nimport { errorDataTransformContractMismatch } from '@prisma-next/errors/migration';\nimport type {\n DataTransformOperation,\n SerializedQueryPlan,\n} from '@prisma-next/framework-components/control';\nimport type { SqlStorage } from '@prisma-next/sql-contract/types';\nimport type { SqlQueryPlan } from '@prisma-next/sql-relational-core/plan';\nimport { lowerSqlPlan } from '@prisma-next/sql-runtime';\n\ninterface Buildable<R = unknown> {\n build(): SqlQueryPlan<R>;\n}\n\n/**\n * A single-closure producer of a SQL query plan. Shared between\n * `check` and each `run` entry.\n */\nexport type DataTransformClosure = () => SqlQueryPlan | Buildable;\n\nexport interface DataTransformOptions {\n /** Optional pre-flight query. `undefined` means \"no check\". */\n readonly check?: DataTransformClosure;\n /** One or more mutation queries to execute. */\n readonly run: DataTransformClosure | readonly DataTransformClosure[];\n}\n\n/** Single shared adapter for apply/CLI; sufficient for single-threaded migration execution. */\nlet adapterSingleton: ReturnType<typeof createPostgresAdapter> | null = null;\nfunction getAdapter(): ReturnType<typeof createPostgresAdapter> {\n if (adapterSingleton === null) {\n adapterSingleton = createPostgresAdapter();\n }\n return adapterSingleton;\n}\n\nexport function dataTransform<TContract extends Contract<SqlStorage>>(\n contract: TContract,\n name: string,\n options: DataTransformOptions,\n): DataTransformOperation {\n const adapter = getAdapter();\n const runClosures: readonly DataTransformClosure[] = Array.isArray(options.run)\n ? options.run\n : [options.run as DataTransformClosure];\n return {\n id: `data_migration.${name}`,\n label: `Data transform: ${name}`,\n operationClass: 'data',\n name,\n source: 'migration.ts',\n check: options.check ? invokeAndLower(options.check, contract, adapter, name) : null,\n run: runClosures.map((closure) => invokeAndLower(closure, contract, adapter, name)),\n };\n}\n\nfunction invokeAndLower(\n closure: DataTransformClosure,\n contract: Contract<SqlStorage>,\n adapter: ReturnType<typeof createPostgresAdapter>,\n name: string,\n): SerializedQueryPlan {\n const result = closure();\n const plan = isBuildable(result) ? result.build() : result;\n assertContractMatches(plan, contract, name);\n const lowered = lowerSqlPlan(adapter, contract, plan);\n return { sql: lowered.sql, params: lowered.params };\n}\n\nfunction isBuildable(value: unknown): value is Buildable {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'build' in value &&\n typeof (value as { build: unknown }).build === 'function'\n );\n}\n\nfunction assertContractMatches(\n plan: SqlQueryPlan,\n contract: Contract<SqlStorage>,\n name: string,\n): void {\n if (plan.meta.storageHash !== contract.storage.storageHash) {\n throw errorDataTransformContractMismatch({\n dataTransformName: name,\n expected: contract.storage.storageHash,\n actual: plan.meta.storageHash,\n });\n }\n}\n","import type { Op } from './shared';\n\n/**\n * Identity factory for an already-materialized `SqlMigrationPlanOperation`.\n *\n * The planner uses this via `liftOpToCall` to carry ops produced by SQL\n * family methods, codec control hooks, and component database dependencies\n * alongside migration IR without reverse-engineering them. Users writing\n * raw migrations can pass a full op shape directly — typically built by\n * composing SQL family helpers — to author a migration that bypasses the\n * structured call classes.\n */\nexport function rawSql(op: Op): Op {\n return op;\n}\n"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ //#region src/core/migrations/planner-target-details.d.ts
2
+ type OperationClass = 'dependency' | 'type' | 'table' | 'column' | 'primaryKey' | 'unique' | 'index' | 'foreignKey';
3
+ interface PostgresPlanTargetDetails {
4
+ readonly schema: string;
5
+ readonly objectType: OperationClass;
6
+ readonly name: string;
7
+ readonly table?: string;
8
+ }
9
+ //#endregion
10
+ export { PostgresPlanTargetDetails as t };
11
+ //# sourceMappingURL=planner-target-details-MXb3oeul.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner-target-details-MXb3oeul.d.mts","names":[],"sources":["../src/core/migrations/planner-target-details.ts"],"sourcesContent":[],"mappings":";KAEY,cAAA;AAAA,UAUK,yBAAA,CAVS;EAUT,SAAA,MAAA,EAAA,MAAA;uBAEM"}