@prisma/orm-target-postgres 8.0.0-rc.1-dev.4 → 8.0.0-rc.1-dev.5

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 (53) hide show
  1. package/dist/{control-D54Q3kbK.mjs → control-Bg9zfwmi.mjs} +3 -3
  2. package/dist/{control-D54Q3kbK.mjs.map → control-Bg9zfwmi.mjs.map} +1 -1
  3. package/dist/{control-policy-ClKhTn_0-BOS85yPy.mjs → control-policy-DHKvUOIr-DAyVIwLu.mjs} +6 -4
  4. package/dist/control-policy-DHKvUOIr-DAyVIwLu.mjs.map +1 -0
  5. package/dist/{diff-database-schema-KDyPPk3N-Dd3tP56q.mjs → diff-database-schema-ad-D4dAq-DV_k33bS.mjs} +3 -3
  6. package/dist/{diff-database-schema-KDyPPk3N-Dd3tP56q.mjs.map → diff-database-schema-ad-D4dAq-DV_k33bS.mjs.map} +1 -1
  7. package/dist/{issue-planner-aw7grdXe.d.mts → issue-planner-Biq9Ls7e.d.mts} +2 -2
  8. package/dist/{issue-planner-aw7grdXe.d.mts.map → issue-planner-Biq9Ls7e.d.mts.map} +1 -1
  9. package/dist/migration-PTHAY9Cv.mjs.map +1 -1
  10. package/dist/{migration-DyZpdeyj.d.mts → migration-aFeTWTOJ.d.mts} +3 -3
  11. package/dist/{migration-DyZpdeyj.d.mts.map → migration-aFeTWTOJ.d.mts.map} +1 -1
  12. package/dist/{op-factory-call-DJEyoQmT-DSMQffKu.d.mts → op-factory-call-BAeyLFYf-BAgG1h1C.d.mts} +17 -4
  13. package/dist/op-factory-call-BAeyLFYf-BAgG1h1C.d.mts.map +1 -0
  14. package/dist/op-factory-call-BTU8I_x0.d.mts +1 -0
  15. package/dist/{op-factory-call-B3DVhHrC-DO122NQy.mjs → op-factory-call-Brgoyup0-PVFU69JM.mjs} +58 -3
  16. package/dist/op-factory-call-Brgoyup0-PVFU69JM.mjs.map +1 -0
  17. package/dist/{planner-DJety89h-CNM5hBvV.mjs → planner-BycBXxqk-DUExzUoz.mjs} +92 -9
  18. package/dist/planner-BycBXxqk-DUExzUoz.mjs.map +1 -0
  19. package/dist/{planner-BMBEF8Kc.d.mts → planner-CT-7zSfk.d.mts} +20 -2
  20. package/dist/{planner-BMBEF8Kc.d.mts.map → planner-CT-7zSfk.d.mts.map} +1 -1
  21. package/dist/{planner-produced-postgres-migration-DLP-Hw6M-BUXxSd_i.mjs → planner-produced-postgres-migration-B9P7yeDs-BgEtBGET.mjs} +3 -3
  22. package/dist/{planner-produced-postgres-migration-DLP-Hw6M-BUXxSd_i.mjs.map → planner-produced-postgres-migration-B9P7yeDs-BgEtBGET.mjs.map} +1 -1
  23. package/dist/{planner-produced-postgres-migration-Cs252KpU-BvXMZvzX.d.mts → planner-produced-postgres-migration-BaviT8KK-Yo9kw6rs.d.mts} +3 -3
  24. package/dist/planner-produced-postgres-migration-BaviT8KK-Yo9kw6rs.d.mts.map +1 -0
  25. package/dist/planner-produced-postgres-migration-D6C0T2xV.d.mts +1 -0
  26. package/dist/{postgres-migration-DPK9WNF5-DHAXtwys.d.mts → postgres-migration-BNsrwlxh-CwI5BqAu.d.mts} +9 -3
  27. package/dist/postgres-migration-BNsrwlxh-CwI5BqAu.d.mts.map +1 -0
  28. package/dist/{postgres-migration-Cp9IRLdW-BEL9GAjb.mjs → postgres-migration-BOVlNbh2-D3by-atW.mjs} +7 -3
  29. package/dist/postgres-migration-BOVlNbh2-D3by-atW.mjs.map +1 -0
  30. package/dist/target.d.mts +9 -9
  31. package/dist/target.mjs +8 -8
  32. package/dist/target__control.mjs +1 -1
  33. package/dist/target__diff-database-schema.mjs +1 -1
  34. package/dist/target__issue-planner.d.mts +1 -1
  35. package/dist/target__issue-planner.mjs +1 -1
  36. package/dist/target__migration.d.mts +2 -2
  37. package/dist/target__migration.mjs +2 -2
  38. package/dist/target__op-factory-call.d.mts +3 -3
  39. package/dist/target__op-factory-call.mjs +2 -2
  40. package/dist/target__planner-produced-postgres-migration.d.mts +2 -2
  41. package/dist/target__planner-produced-postgres-migration.mjs +1 -1
  42. package/dist/target__planner.d.mts +1 -1
  43. package/dist/target__planner.mjs +2 -2
  44. package/package.json +9 -9
  45. package/dist/control-policy-ClKhTn_0-BOS85yPy.mjs.map +0 -1
  46. package/dist/op-factory-call-B3DVhHrC-DO122NQy.mjs.map +0 -1
  47. package/dist/op-factory-call-ClseZgmP.d.mts +0 -1
  48. package/dist/op-factory-call-DJEyoQmT-DSMQffKu.d.mts.map +0 -1
  49. package/dist/planner-DJety89h-CNM5hBvV.mjs.map +0 -1
  50. package/dist/planner-produced-postgres-migration-Cs252KpU-BvXMZvzX.d.mts.map +0 -1
  51. package/dist/planner-produced-postgres-migration-Cua5YEYV.d.mts +0 -1
  52. package/dist/postgres-migration-Cp9IRLdW-BEL9GAjb.mjs.map +0 -1
  53. package/dist/postgres-migration-DPK9WNF5-DHAXtwys.d.mts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op-factory-call-Brgoyup0-PVFU69JM.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/op-factory-call-Brgoyup0.mjs"],"sourcesContent":["import { n as postgresError } from \"./errors-kYxOQjdD.mjs\";\nimport { t as DEFAULT_NAMESPACE_ID } from \"./namespace-ids-xtp_ZY86.mjs\";\nimport { a as validateEnumValueLength, i as quoteQualifiedName, r as quoteIdentifier, t as escapeLiteral } from \"./sql-utils-BnBlQxyh.mjs\";\nimport { C as nativeEnumValueExistsAst, D as tableExistsAst, E as rlsPolicyExistsAst, O as tableIsEmptyAst, S as nativeEnumTypeExistsAst, T as rlsEnabledAst, _ as columnNullabilityAst, a as createIndex$1, b as extensionExistsAst, c as createTable, d as dropDefaultAction, f as dropIndex$1, g as columnExistsAst, h as columnDefaultAst, i as alterTable, l as createType, m as dropType, n as alterIndexRename, o as createPolicy, p as dropPolicy, r as alterPolicyRename, s as createSchema, t as addColumnAction, u as disableRowLevelSecurity$1, v as columnTypeAst, w as noNullValuesAst, x as indexExistsAst, y as constraintExistsAst } from \"./ddl-DfzxUAlg.mjs\";\nimport { n as qualifyTableName } from \"./planner-sql-checks-DKialyGJ.mjs\";\nimport { n as buildColumnTypeSql } from \"./planner-ddl-builders-DJrx9cJg.mjs\";\nimport { FunctionColumnDefault, LiteralColumnDefault } from \"@internal/sql-relational-core/ast\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { namingOf } from \"@internal/sql-schema-ir/naming\";\nimport { col } from \"@internal/sql-relational-core/contract-free\";\nimport { InternalError, assertNever } from \"@internal/utils/internal-error\";\nimport { errorUnfilledPlaceholder } from \"@internal/errors/migration\";\nimport { TsExpression, jsonToTsSource } from \"@internal/ts-render\";\nimport { REFERENTIAL_ACTION_SQL } from \"@internal/sql-contract/referential-action-sql\";\n//#region src/core/migrations/bound-schema.ts\n/**\n* Maps a planner schema name to the contract-free DDL builder's optional\n* `schema` field: the unbound sentinel becomes `undefined` (the builder omits\n* the schema qualifier), every other name passes through.\n*/\nfunction boundSchema(schemaName) {\n\treturn schemaName === UNBOUND_NAMESPACE_ID ? void 0 : schemaName;\n}\n//#endregion\n//#region src/core/migrations/operations/shared.ts\nfunction step(description, sql, params) {\n\treturn {\n\t\tdescription,\n\t\tsql,\n\t\t...ifDefined(\"params\", params)\n\t};\n}\nfunction targetDetails(objectType, name, schema, table) {\n\treturn {\n\t\tid: \"postgres\",\n\t\tdetails: {\n\t\t\tschema,\n\t\t\tobjectType,\n\t\t\tname,\n\t\t\t...ifDefined(\"table\", table)\n\t\t}\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/columns.ts\nasync function columnExistsSteps(lowerer, options) {\n\tconst checks = columnExistsAst(options);\n\treturn {\n\t\tpresent: await lowerer.lowerToExecuteRequest(checks.columnPresent()),\n\t\tabsent: await lowerer.lowerToExecuteRequest(checks.columnAbsent())\n\t};\n}\nasync function dropColumn(schemaName, tableName, columnName, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst { present, absent } = await columnExistsSteps(lowerer, {\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t});\n\treturn {\n\t\tid: `dropColumn.${tableName}.${columnName}`,\n\t\tlabel: `Drop column \"${columnName}\" from \"${tableName}\"`,\n\t\toperationClass: \"destructive\",\n\t\ttarget: targetDetails(\"column\", columnName, schemaName, tableName),\n\t\tprecheck: [step(`ensure column \"${columnName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`drop column \"${columnName}\"`, `ALTER TABLE ${qualified} DROP COLUMN ${quoteIdentifier(columnName)}`)],\n\t\tpostcheck: [step(`verify column \"${columnName}\" does not exist`, absent.sql, absent.params)]\n\t};\n}\n/**\n* `qualifiedTargetType` is the new column type as it appears in the\n* `ALTER COLUMN TYPE` clause (schema-qualified for user-defined types, raw\n* native name for built-ins). `formatTypeExpected` is the unqualified\n* `format_type` form used in the postcheck. `rawTargetTypeForLabel` is the\n* string appearing in the human-readable label (typically `toType` when\n* explicit, else the column's native type).\n*/\nasync function alterColumnType(schemaName, tableName, columnName, options, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst usingClause = options.using ? ` USING ${options.using}` : ` USING ${quoteIdentifier(columnName)}::${options.qualifiedTargetType}`;\n\tconst { present } = await columnExistsSteps(lowerer, {\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t});\n\tconst typeCheck = await lowerer.lowerToExecuteRequest(columnTypeAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName,\n\t\texpectedType: options.formatTypeExpected\n\t}));\n\treturn {\n\t\tid: `alterType.${tableName}.${columnName}`,\n\t\tlabel: `Alter type of \"${tableName}\".\"${columnName}\" to ${options.rawTargetTypeForLabel}`,\n\t\toperationClass: \"destructive\",\n\t\ttarget: targetDetails(\"column\", columnName, schemaName, tableName),\n\t\tprecheck: [step(`ensure column \"${columnName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`alter type of \"${columnName}\"`, `ALTER TABLE ${qualified} ALTER COLUMN ${quoteIdentifier(columnName)} TYPE ${options.qualifiedTargetType}${usingClause}`)],\n\t\tpostcheck: [step(`verify column \"${columnName}\" has type \"${options.formatTypeExpected}\"`, typeCheck.sql, typeCheck.params)],\n\t\tmeta: { warning: \"TABLE_REWRITE\" }\n\t};\n}\nasync function setNotNull(schemaName, tableName, columnName, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst { present } = await columnExistsSteps(lowerer, {\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t});\n\tconst noNulls = await lowerer.lowerToExecuteRequest(noNullValuesAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t}));\n\tconst notNullable = await lowerer.lowerToExecuteRequest(columnNullabilityAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName,\n\t\tnullable: false\n\t}));\n\treturn {\n\t\tid: `alterNullability.setNotNull.${tableName}.${columnName}`,\n\t\tlabel: `Set NOT NULL on \"${tableName}\".\"${columnName}\"`,\n\t\toperationClass: \"destructive\",\n\t\ttarget: targetDetails(\"column\", columnName, schemaName, tableName),\n\t\tprecheck: [step(`ensure column \"${columnName}\" exists`, present.sql, present.params), step(`ensure no NULL values in \"${columnName}\"`, noNulls.sql, noNulls.params)],\n\t\texecute: [step(`set NOT NULL on \"${columnName}\"`, `ALTER TABLE ${qualified} ALTER COLUMN ${quoteIdentifier(columnName)} SET NOT NULL`)],\n\t\tpostcheck: [step(`verify column \"${columnName}\" is NOT NULL`, notNullable.sql, notNullable.params)]\n\t};\n}\nasync function dropNotNull(schemaName, tableName, columnName, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst { present } = await columnExistsSteps(lowerer, {\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t});\n\tconst nullable = await lowerer.lowerToExecuteRequest(columnNullabilityAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName,\n\t\tnullable: true\n\t}));\n\treturn {\n\t\tid: `alterNullability.dropNotNull.${tableName}.${columnName}`,\n\t\tlabel: `Drop NOT NULL on \"${tableName}\".\"${columnName}\"`,\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(\"column\", columnName, schemaName, tableName),\n\t\tprecheck: [step(`ensure column \"${columnName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`drop NOT NULL on \"${columnName}\"`, `ALTER TABLE ${qualified} ALTER COLUMN ${quoteIdentifier(columnName)} DROP NOT NULL`)],\n\t\tpostcheck: [step(`verify column \"${columnName}\" is nullable`, nullable.sql, nullable.params)]\n\t};\n}\n/**\n* `defaultSql` is the full `DEFAULT …` clause as produced by\n* `buildColumnDefaultSql` — e.g. `\"DEFAULT 42\"`,\n* `\"DEFAULT (CURRENT_TIMESTAMP)\"`, or `\"DEFAULT nextval('seq'::regclass)\"`.\n*\n* `operationClass` defaults to `'additive'` (setting a default on a column\n* that currently has none). The reconciliation planner passes `'widening'`\n* when the column already has a different default — policy enforcement\n* treats that as a widening change rather than an additive one.\n*/\nasync function setDefault(schemaName, tableName, columnName, defaultSql, lowerer, operationClass = \"additive\") {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst { present } = await columnExistsSteps(lowerer, {\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t});\n\tconst hasDefault = await lowerer.lowerToExecuteRequest(columnDefaultAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t}).defaultPresent());\n\treturn {\n\t\tid: `setDefault.${tableName}.${columnName}`,\n\t\tlabel: `Set default on \"${tableName}\".\"${columnName}\"`,\n\t\toperationClass,\n\t\ttarget: targetDetails(\"column\", columnName, schemaName, tableName),\n\t\tprecheck: [step(`ensure column \"${columnName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`set default on \"${columnName}\"`, `ALTER TABLE ${qualified} ALTER COLUMN ${quoteIdentifier(columnName)} SET ${defaultSql}`)],\n\t\tpostcheck: [step(`verify column \"${columnName}\" has a default`, hasDefault.sql, hasDefault.params)]\n\t};\n}\nasync function dropDefault(schemaName, tableName, columnName, lowerer) {\n\tconst { present } = await columnExistsSteps(lowerer, {\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t});\n\tconst dropDefaultExec = await lowerer.lowerToExecuteRequest(alterTable({\n\t\t...ifDefined(\"schema\", boundSchema(schemaName)),\n\t\ttable: tableName,\n\t\tactions: [dropDefaultAction(columnName)]\n\t}));\n\tconst noDefault = await lowerer.lowerToExecuteRequest(columnDefaultAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t}).defaultAbsent());\n\treturn {\n\t\tid: `dropDefault.${tableName}.${columnName}`,\n\t\tlabel: `Drop default on \"${tableName}\".\"${columnName}\"`,\n\t\toperationClass: \"destructive\",\n\t\ttarget: targetDetails(\"column\", columnName, schemaName, tableName),\n\t\tprecheck: [step(`ensure column \"${columnName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`drop default on \"${columnName}\"`, dropDefaultExec.sql)],\n\t\tpostcheck: [step(`verify column \"${columnName}\" has no default`, noDefault.sql, noDefault.params)]\n\t};\n}\n/**\n* Builds the op for adding a NOT NULL column (no contract default) to a\n* non-empty table. Prechecks assert the column is absent and the table is\n* empty; the execute step lowers the typed `AddColumn` DDL node through the\n* adapter; postchecks assert the column exists and is NOT NULL.\n*/\nasync function addNotNullColumnDirect(schemaName, tableName, column, lowerer) {\n\tconst columnName = column.name;\n\tconst addColumn = await lowerer.lowerToExecuteRequest(alterTable({\n\t\t...ifDefined(\"schema\", boundSchema(schemaName)),\n\t\ttable: tableName,\n\t\tactions: [addColumnAction(column)]\n\t}));\n\tconst absent = await lowerer.lowerToExecuteRequest(columnExistsAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t}).columnAbsent());\n\tconst tableEmpty = await lowerer.lowerToExecuteRequest(tableIsEmptyAst(schemaName, tableName));\n\tconst present = await lowerer.lowerToExecuteRequest(columnExistsAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t}).columnPresent());\n\tconst notNullable = await lowerer.lowerToExecuteRequest(columnNullabilityAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName,\n\t\tnullable: false\n\t}));\n\treturn {\n\t\tid: `column.${tableName}.${columnName}`,\n\t\tlabel: `Add column ${columnName} to ${tableName}`,\n\t\tsummary: `Adds column ${columnName} to table ${tableName}`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"column\", columnName, schemaName, tableName),\n\t\tprecheck: [step(`ensure column \"${columnName}\" is missing`, absent.sql, absent.params), step(`ensure table \"${tableName}\" is empty before adding NOT NULL column without default`, tableEmpty.sql, tableEmpty.params)],\n\t\texecute: [step(`add column \"${columnName}\"`, addColumn.sql)],\n\t\tpostcheck: [step(`verify column \"${columnName}\" exists`, present.sql, present.params), step(`verify column \"${columnName}\" is NOT NULL`, notNullable.sql, notNullable.params)]\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/constraints.ts\nasync function constraintCheckSteps(lowerer, options) {\n\tconst checks = constraintExistsAst(options);\n\treturn {\n\t\tabsent: await lowerer.lowerToExecuteRequest(checks.constraintAbsent()),\n\t\tpresent: await lowerer.lowerToExecuteRequest(checks.constraintPresent())\n\t};\n}\nfunction renderForeignKeySql(schemaName, tableName, fk) {\n\tlet sql = `ALTER TABLE ${qualifyTableName(schemaName, tableName)}\nADD CONSTRAINT ${quoteIdentifier(fk.name)}\nFOREIGN KEY (${fk.columns.map(quoteIdentifier).join(\", \")})\nREFERENCES ${qualifyTableName(fk.references.schema, fk.references.table)} (${fk.references.columns.map(quoteIdentifier).join(\", \")})`;\n\tif (fk.onDelete !== void 0) {\n\t\tconst action = REFERENTIAL_ACTION_SQL[fk.onDelete];\n\t\tif (!action) throw new InternalError(`Unknown referential action for onDelete: ${String(fk.onDelete)}`);\n\t\tsql += `\\nON DELETE ${action}`;\n\t}\n\tif (fk.onUpdate !== void 0) {\n\t\tconst action = REFERENTIAL_ACTION_SQL[fk.onUpdate];\n\t\tif (!action) throw new InternalError(`Unknown referential action for onUpdate: ${String(fk.onUpdate)}`);\n\t\tsql += `\\nON UPDATE ${action}`;\n\t}\n\treturn sql;\n}\nasync function addPrimaryKey(schemaName, tableName, constraintName, columns, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst columnList = columns.map(quoteIdentifier).join(\", \");\n\tconst { absent, present } = await constraintCheckSteps(lowerer, {\n\t\tconstraintName,\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\treturn {\n\t\tid: `primaryKey.${tableName}.${constraintName}`,\n\t\tlabel: `Add primary key on \"${tableName}\"`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"primaryKey\", constraintName, schemaName, tableName),\n\t\tprecheck: [step(`ensure primary key \"${constraintName}\" does not exist`, absent.sql, absent.params)],\n\t\texecute: [step(`add primary key \"${constraintName}\"`, `ALTER TABLE ${qualified} ADD CONSTRAINT ${quoteIdentifier(constraintName)} PRIMARY KEY (${columnList})`)],\n\t\tpostcheck: [step(`verify primary key \"${constraintName}\" exists`, present.sql, present.params)]\n\t};\n}\nasync function addUnique(schemaName, tableName, constraintName, columns, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst columnList = columns.map(quoteIdentifier).join(\", \");\n\tconst { absent, present } = await constraintCheckSteps(lowerer, {\n\t\tconstraintName,\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\treturn {\n\t\tid: `unique.${tableName}.${constraintName}`,\n\t\tlabel: `Add unique constraint on \"${tableName}\" (${columns.join(\", \")})`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"unique\", constraintName, schemaName, tableName),\n\t\tprecheck: [step(`ensure constraint \"${constraintName}\" does not exist`, absent.sql, absent.params)],\n\t\texecute: [step(`add unique constraint \"${constraintName}\"`, `ALTER TABLE ${qualified} ADD CONSTRAINT ${quoteIdentifier(constraintName)} UNIQUE (${columnList})`)],\n\t\tpostcheck: [step(`verify constraint \"${constraintName}\" exists`, present.sql, present.params)]\n\t};\n}\nasync function addForeignKey(schemaName, tableName, fk, lowerer) {\n\tconst { absent, present } = await constraintCheckSteps(lowerer, {\n\t\tconstraintName: fk.name,\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\treturn {\n\t\tid: `foreignKey.${tableName}.${fk.name}`,\n\t\tlabel: `Add foreign key \"${fk.name}\" on \"${tableName}\"`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"foreignKey\", fk.name, schemaName, tableName),\n\t\tprecheck: [step(`ensure FK \"${fk.name}\" does not exist`, absent.sql, absent.params)],\n\t\texecute: [step(`add FK \"${fk.name}\"`, renderForeignKeySql(schemaName, tableName, fk))],\n\t\tpostcheck: [step(`verify FK \"${fk.name}\" exists`, present.sql, present.params)]\n\t};\n}\nasync function addCheckConstraint(schemaName, tableName, constraintName, expression, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst { absent, present } = await constraintCheckSteps(lowerer, {\n\t\tconstraintName,\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\treturn {\n\t\tid: `checkConstraint.${tableName}.${constraintName}`,\n\t\tlabel: `Add check constraint \"${constraintName}\" on \"${tableName}\"`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"checkConstraint\", constraintName, schemaName, tableName),\n\t\tprecheck: [step(`ensure constraint \"${constraintName}\" does not exist`, absent.sql, absent.params)],\n\t\texecute: [step(`add check constraint \"${constraintName}\"`, `ALTER TABLE ${qualified} ADD CONSTRAINT ${quoteIdentifier(constraintName)} CHECK (${expression})`)],\n\t\tpostcheck: [step(`verify constraint \"${constraintName}\" exists`, present.sql, present.params)]\n\t};\n}\nasync function renameCheckConstraint(schemaName, tableName, fromName, toName, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst from = await constraintCheckSteps(lowerer, {\n\t\tconstraintName: fromName,\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\tconst to = await constraintCheckSteps(lowerer, {\n\t\tconstraintName: toName,\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\treturn {\n\t\tid: `checkConstraint.${schemaName}.${tableName}.${fromName}.rename`,\n\t\tlabel: `Rename check constraint \"${fromName}\" to \"${toName}\" on \"${tableName}\"`,\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(\"checkConstraint\", toName, schemaName, tableName),\n\t\tprecheck: [step(`ensure constraint \"${fromName}\" exists`, from.present.sql, from.present.params), step(`ensure constraint \"${toName}\" does not exist`, to.absent.sql, to.absent.params)],\n\t\texecute: [step(`rename check constraint \"${fromName}\" to \"${toName}\"`, `ALTER TABLE ${qualified} RENAME CONSTRAINT ${quoteIdentifier(fromName)} TO ${quoteIdentifier(toName)}`)],\n\t\tpostcheck: [step(`verify constraint \"${toName}\" exists`, to.present.sql, to.present.params)]\n\t};\n}\nasync function dropCheckConstraint(schemaName, tableName, constraintName, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst { absent, present } = await constraintCheckSteps(lowerer, {\n\t\tconstraintName,\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\treturn {\n\t\tid: `dropCheckConstraint.${tableName}.${constraintName}`,\n\t\tlabel: `Drop check constraint \"${constraintName}\" on \"${tableName}\"`,\n\t\toperationClass: \"destructive\",\n\t\ttarget: targetDetails(\"checkConstraint\", constraintName, schemaName, tableName),\n\t\tprecheck: [step(`ensure constraint \"${constraintName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`drop check constraint \"${constraintName}\"`, `ALTER TABLE ${qualified} DROP CONSTRAINT ${quoteIdentifier(constraintName)}`)],\n\t\tpostcheck: [step(`verify constraint \"${constraintName}\" does not exist`, absent.sql, absent.params)]\n\t};\n}\n/**\n* `kind` feeds the operation's `target.details.objectType`. Descriptor-flow\n* does not carry kind information in its drop-constraint descriptor, so the\n* default is `'unique'`. The reconciliation planner passes the correct kind\n* (`'foreignKey'`, `'primaryKey'`, or `'unique'`) based on the diff issue\n* that produced the drop.\n*/\nasync function dropConstraint(schemaName, tableName, constraintName, lowerer, kind = \"unique\") {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst { absent, present } = await constraintCheckSteps(lowerer, {\n\t\tconstraintName,\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\treturn {\n\t\tid: `dropConstraint.${tableName}.${constraintName}`,\n\t\tlabel: `Drop constraint \"${constraintName}\" on \"${tableName}\"`,\n\t\toperationClass: \"destructive\",\n\t\ttarget: targetDetails(kind, constraintName, schemaName, tableName),\n\t\tprecheck: [step(`ensure constraint \"${constraintName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`drop constraint \"${constraintName}\"`, `ALTER TABLE ${qualified} DROP CONSTRAINT ${quoteIdentifier(constraintName)}`)],\n\t\tpostcheck: [step(`verify constraint \"${constraintName}\" does not exist`, absent.sql, absent.params)]\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/dependencies.ts\nfunction createExtension(extensionName) {\n\treturn {\n\t\tid: `extension.${extensionName}`,\n\t\tlabel: `Create extension \"${extensionName}\"`,\n\t\toperationClass: \"additive\",\n\t\ttarget: { id: \"postgres\" },\n\t\tprecheck: [],\n\t\texecute: [step(`Create extension \"${extensionName}\"`, `CREATE EXTENSION IF NOT EXISTS ${quoteIdentifier(extensionName)}`)],\n\t\tpostcheck: []\n\t};\n}\n/**\n* Install a Postgres extension as the baseline op for an extension-pack\n* contract space. Layered on top of {@link createExtension}: stamps an\n* `invariantId` (required so the per-space marker records the install),\n* scopes the op `id` under a caller-chosen namespace (e.g. `pgvector.`),\n* and emits pre- and postcheck SQL probing `pg_extension`. The richer\n* shape lets the runner's idempotency probe skip the install on re-run\n* (postcheck-pre-satisfied) without firing the precheck.\n*\n* Use this for hand-rolled baseline migrations in contract-space\n* extension packages (e.g. `extension-pgvector`, `extension-paradedb`);\n* use the bare {@link createExtension} for planner-emitted ops where the\n* caller already controls idempotency through the surrounding plan.\n*/\nasync function installExtension(options, lowerer) {\n\tconst { extensionName, invariantId, id } = options;\n\tconst label = options.label ?? `Enable extension \"${extensionName}\"`;\n\tconst checks = extensionExistsAst(extensionName);\n\tconst absent = await lowerer.lowerToExecuteRequest(checks.extensionAbsent());\n\tconst present = await lowerer.lowerToExecuteRequest(checks.extensionPresent());\n\treturn {\n\t\tid,\n\t\tlabel,\n\t\toperationClass: \"additive\",\n\t\tinvariantId,\n\t\ttarget: {\n\t\t\tid: \"postgres\",\n\t\t\tdetails: {\n\t\t\t\tschema: DEFAULT_NAMESPACE_ID,\n\t\t\t\tobjectType: \"dependency\",\n\t\t\t\tname: extensionName\n\t\t\t}\n\t\t},\n\t\tprecheck: [step(`verify extension \"${extensionName}\" is not already enabled`, absent.sql, absent.params)],\n\t\texecute: [step(`create extension \"${extensionName}\"`, `CREATE EXTENSION IF NOT EXISTS ${extensionName}`)],\n\t\tpostcheck: [step(`confirm extension \"${extensionName}\" is enabled`, present.sql, present.params)]\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/indexes.ts\nasync function indexExistsSteps(lowerer, schemaName, indexName) {\n\tconst checks = indexExistsAst(schemaName, indexName);\n\treturn {\n\t\tpresent: await lowerer.lowerToExecuteRequest(checks.indexPresent()),\n\t\tabsent: await lowerer.lowerToExecuteRequest(checks.indexAbsent())\n\t};\n}\n/** An unbound-namespace object renders unqualified: the DDL node takes no schema. */\nfunction ddlSchemaOf(schemaName) {\n\treturn schemaName === UNBOUND_NAMESPACE_ID ? void 0 : schemaName;\n}\nasync function createIndex(schemaName, tableName, indexName, elements, lowerer, extras) {\n\tconst ddlNode = createIndex$1({\n\t\tschema: ddlSchemaOf(schemaName),\n\t\ttable: tableName,\n\t\tname: indexName,\n\t\tunique: extras?.unique === true,\n\t\telements,\n\t\ttype: extras?.type,\n\t\toptions: extras?.options,\n\t\twhere: extras?.where\n\t});\n\tconst execute = await lowerer.lowerToExecuteRequest(ddlNode);\n\tconst { present, absent } = await indexExistsSteps(lowerer, schemaName, indexName);\n\treturn {\n\t\tid: `index.${tableName}.${indexName}`,\n\t\tlabel: `Create index \"${indexName}\" on \"${tableName}\"`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"index\", indexName, schemaName, tableName),\n\t\tprecheck: [step(`ensure index \"${indexName}\" does not exist`, absent.sql, absent.params)],\n\t\texecute: [step(`create index \"${indexName}\"`, execute.sql, execute.params)],\n\t\tpostcheck: [step(`verify index \"${indexName}\" exists`, present.sql, present.params)]\n\t};\n}\n/**\n* `ALTER INDEX … RENAME TO`. `widening` for the same typology reason as the\n* RLS policy rename: a rename is neither additive creation nor destructive,\n* and the class vocabulary has no neutral middle class — it is NOT that a\n* rename widens anything.\n*/\nasync function renameIndex(schemaName, tableName, fromName, toName, lowerer) {\n\tconst fromChecks = indexExistsAst(schemaName, fromName);\n\tconst toChecks = indexExistsAst(schemaName, toName);\n\tconst fromPresent = await lowerer.lowerToExecuteRequest(fromChecks.indexPresent());\n\tconst toAbsent = await lowerer.lowerToExecuteRequest(toChecks.indexAbsent());\n\tconst toPresent = await lowerer.lowerToExecuteRequest(toChecks.indexPresent());\n\tconst ddlNode = alterIndexRename({\n\t\tschema: ddlSchemaOf(schemaName),\n\t\tfrom: fromName,\n\t\tto: toName\n\t});\n\tconst execute = await lowerer.lowerToExecuteRequest(ddlNode);\n\treturn {\n\t\tid: `index.${schemaName}.${tableName}.${fromName}.rename`,\n\t\tlabel: `Rename index \"${fromName}\" to \"${toName}\" on \"${tableName}\"`,\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(\"index\", toName, schemaName, tableName),\n\t\tprecheck: [step(`ensure index \"${fromName}\" exists`, fromPresent.sql, fromPresent.params), step(`ensure index \"${toName}\" does not exist`, toAbsent.sql, toAbsent.params)],\n\t\texecute: [step(`rename index \"${fromName}\" to \"${toName}\"`, execute.sql, execute.params)],\n\t\tpostcheck: [step(`verify index \"${toName}\" exists`, toPresent.sql, toPresent.params)]\n\t};\n}\nasync function dropIndex(schemaName, tableName, indexName, lowerer) {\n\tconst ddlNode = dropIndex$1({\n\t\tschema: ddlSchemaOf(schemaName),\n\t\tname: indexName\n\t});\n\tconst execute = await lowerer.lowerToExecuteRequest(ddlNode);\n\tconst { present, absent } = await indexExistsSteps(lowerer, schemaName, indexName);\n\treturn {\n\t\tid: `dropIndex.${tableName}.${indexName}`,\n\t\tlabel: `Drop index \"${indexName}\"`,\n\t\toperationClass: \"destructive\",\n\t\ttarget: targetDetails(\"index\", indexName, schemaName, tableName),\n\t\tprecheck: [step(`ensure index \"${indexName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`drop index \"${indexName}\"`, execute.sql, execute.params)],\n\t\tpostcheck: [step(`verify index \"${indexName}\" does not exist`, absent.sql, absent.params)]\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/native-enum-types.ts\n/**\n* `CREATE TYPE <qualified> AS ENUM (…)` for a managed native enum, built as a\n* typed DDL node and lowered by the control adapter (the type name is quoted,\n* member values render as escaped string literals in declaration order —\n* Postgres enum sort order is semantic). `boundSchema` maps the unbound sentinel\n* to an absent schema so the type name renders unqualified and the connection's\n* `search_path` resolves the schema at runtime.\n*/\nasync function createNativeEnumType(schemaName, typeName, members, lowerer) {\n\tfor (const member of members) validateEnumValueLength(member, typeName);\n\tconst ddlNode = createType({\n\t\t...ifDefined(\"schema\", boundSchema(schemaName)),\n\t\tname: typeName,\n\t\tvalues: members\n\t});\n\tconst statement = await lowerer.lowerToExecuteRequest(ddlNode);\n\treturn {\n\t\tid: `createNativeEnumType.${typeName}`,\n\t\tlabel: `Create enum type \"${typeName}\"`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"type\", typeName, schemaName),\n\t\tprecheck: [],\n\t\texecute: [step(`create enum type \"${typeName}\"`, statement.sql, statement.params)],\n\t\tpostcheck: []\n\t};\n}\n/** `DROP TYPE <qualified>` for an unclaimed managed native enum, via typed DDL. */\nasync function dropNativeEnumType(schemaName, typeName, lowerer) {\n\tconst ddlNode = dropType({\n\t\t...ifDefined(\"schema\", boundSchema(schemaName)),\n\t\tname: typeName\n\t});\n\tconst statement = await lowerer.lowerToExecuteRequest(ddlNode);\n\treturn {\n\t\tid: `dropNativeEnumType.${typeName}`,\n\t\tlabel: `Drop enum type \"${typeName}\"`,\n\t\toperationClass: \"destructive\",\n\t\ttarget: targetDetails(\"type\", typeName, schemaName),\n\t\tprecheck: [],\n\t\texecute: [step(`drop enum type \"${typeName}\"`, statement.sql, statement.params)],\n\t\tpostcheck: []\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/rls.ts\nconst PLAIN_IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_$]*$/;\nfunction validateRoleName(role) {\n\tif (!PLAIN_IDENTIFIER.test(role)) throw postgresError(\"CONTRACT.ROLE_INVALID\", `Invalid role name ${JSON.stringify(role)}: role names must be plain SQL identifiers matching ^[A-Za-z_][A-Za-z0-9_$]*$`, { meta: {\n\t\trole,\n\t\treason: \"not-a-plain-identifier\"\n\t} });\n\treturn role;\n}\nasync function createRlsPolicy(schemaName, tableName, policy, lowerer) {\n\tconst validatedRoles = policy.roles.map(validateRoleName);\n\tconst ddlNode = createPolicy({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tname: policy.name,\n\t\tpermissive: policy.permissive,\n\t\toperation: policy.operation,\n\t\troles: validatedRoles,\n\t\t...ifDefined(\"using\", policy.using),\n\t\t...ifDefined(\"withCheck\", policy.withCheck)\n\t});\n\tconst checks = rlsPolicyExistsAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tpolicyName: policy.name\n\t});\n\tconst absent = await lowerer.lowerToExecuteRequest(checks.policyAbsent());\n\tconst execute = await lowerer.lowerToExecuteRequest(ddlNode);\n\tconst present = await lowerer.lowerToExecuteRequest(checks.policyPresent());\n\treturn {\n\t\tid: `rlsPolicy.${schemaName}.${tableName}.${policy.name}`,\n\t\tlabel: `Create RLS policy \"${policy.name}\" on \"${tableName}\"`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"rlsPolicy\", policy.name, schemaName, tableName),\n\t\tprecheck: [step(`ensure RLS policy \"${policy.name}\" does not exist`, absent.sql, absent.params)],\n\t\texecute: [step(`create RLS policy \"${policy.name}\"`, execute.sql, execute.params)],\n\t\tpostcheck: [step(`verify RLS policy \"${policy.name}\" exists`, present.sql, present.params)]\n\t};\n}\nasync function dropRlsPolicy(schemaName, tableName, policyName, lowerer) {\n\tconst ddlNode = dropPolicy({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tname: policyName\n\t});\n\tconst checks = rlsPolicyExistsAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tpolicyName\n\t});\n\tconst present = await lowerer.lowerToExecuteRequest(checks.policyPresent());\n\tconst execute = await lowerer.lowerToExecuteRequest(ddlNode);\n\tconst absent = await lowerer.lowerToExecuteRequest(checks.policyAbsent());\n\treturn {\n\t\tid: `rlsPolicy.${schemaName}.${tableName}.${policyName}.drop`,\n\t\tlabel: `Drop RLS policy \"${policyName}\" on \"${tableName}\"`,\n\t\toperationClass: \"destructive\",\n\t\ttarget: targetDetails(\"rlsPolicy\", policyName, schemaName, tableName),\n\t\tprecheck: [step(`ensure RLS policy \"${policyName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`drop RLS policy \"${policyName}\"`, execute.sql, execute.params)],\n\t\tpostcheck: [step(`verify RLS policy \"${policyName}\" is absent`, absent.sql, absent.params)]\n\t};\n}\nasync function enableRowLevelSecurity(schemaName, tableName, lowerer) {\n\tconst checks = rlsEnabledAst(schemaName, tableName);\n\tconst disabled = await lowerer.lowerToExecuteRequest(checks.rlsDisabled());\n\tconst enabled = await lowerer.lowerToExecuteRequest(checks.rlsEnabled());\n\treturn {\n\t\tid: `rowLevelSecurity.${schemaName}.${tableName}`,\n\t\tlabel: `Enable row-level security on \"${tableName}\"`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"rowLevelSecurity\", tableName, schemaName),\n\t\tprecheck: [step(`check RLS is not already enabled on \"${tableName}\"`, disabled.sql, disabled.params)],\n\t\texecute: [step(`enable row-level security on \"${tableName}\"`, `ALTER TABLE ${qualifyTableName(schemaName, tableName)} ENABLE ROW LEVEL SECURITY`)],\n\t\tpostcheck: [step(`verify row-level security is enabled on \"${tableName}\"`, enabled.sql, enabled.params)]\n\t};\n}\nasync function disableRowLevelSecurity(schemaName, tableName, lowerer) {\n\tconst ddlNode = disableRowLevelSecurity$1({\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\tconst checks = rlsEnabledAst(schemaName, tableName);\n\tconst enabled = await lowerer.lowerToExecuteRequest(checks.rlsEnabled());\n\tconst execute = await lowerer.lowerToExecuteRequest(ddlNode);\n\tconst disabled = await lowerer.lowerToExecuteRequest(checks.rlsDisabled());\n\treturn {\n\t\tid: `rowLevelSecurity.${schemaName}.${tableName}.disable`,\n\t\tlabel: `Disable row-level security on \"${tableName}\"`,\n\t\toperationClass: \"destructive\",\n\t\ttarget: targetDetails(\"rowLevelSecurity\", tableName, schemaName),\n\t\tprecheck: [step(`check RLS is currently enabled on \"${tableName}\"`, enabled.sql, enabled.params)],\n\t\texecute: [step(`disable row-level security on \"${tableName}\"`, execute.sql, execute.params)],\n\t\tpostcheck: [step(`verify row-level security is disabled on \"${tableName}\"`, disabled.sql, disabled.params)]\n\t};\n}\nasync function renameRlsPolicy(schemaName, tableName, oldPolicyName, newPolicyName, lowerer) {\n\tconst ddlNode = alterPolicyRename({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tname: oldPolicyName,\n\t\tnewName: newPolicyName\n\t});\n\tconst oldChecks = rlsPolicyExistsAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tpolicyName: oldPolicyName\n\t});\n\tconst newChecks = rlsPolicyExistsAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tpolicyName: newPolicyName\n\t});\n\tconst oldPresent = await lowerer.lowerToExecuteRequest(oldChecks.policyPresent());\n\tconst execute = await lowerer.lowerToExecuteRequest(ddlNode);\n\tconst newPresent = await lowerer.lowerToExecuteRequest(newChecks.policyPresent());\n\treturn {\n\t\tid: `rlsPolicy.${schemaName}.${tableName}.${oldPolicyName}.rename`,\n\t\tlabel: `Rename RLS policy \"${oldPolicyName}\" to \"${newPolicyName}\" on \"${tableName}\"`,\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(\"rlsPolicy\", newPolicyName, schemaName, tableName),\n\t\tprecheck: [step(`ensure RLS policy \"${oldPolicyName}\" exists`, oldPresent.sql, oldPresent.params)],\n\t\texecute: [step(`rename RLS policy \"${oldPolicyName}\" to \"${newPolicyName}\"`, execute.sql, execute.params)],\n\t\tpostcheck: [step(`verify RLS policy \"${newPolicyName}\" exists`, newPresent.sql, newPresent.params)]\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/tables.ts\nasync function dropTable(schemaName, tableName, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst checks = tableExistsAst(schemaName, tableName);\n\tconst present = await lowerer.lowerToExecuteRequest(checks.tablePresent());\n\tconst absent = await lowerer.lowerToExecuteRequest(checks.tableAbsent());\n\treturn {\n\t\tid: `dropTable.${tableName}`,\n\t\tlabel: `Drop table \"${tableName}\"`,\n\t\toperationClass: \"destructive\",\n\t\ttarget: targetDetails(\"table\", tableName, schemaName),\n\t\tprecheck: [step(`ensure table \"${tableName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`drop table \"${tableName}\"`, `DROP TABLE ${qualified}`)],\n\t\tpostcheck: [step(`verify table \"${tableName}\" does not exist`, absent.sql, absent.params)]\n\t};\n}\n//#endregion\n//#region src/core/migrations/planner-target-details.ts\nfunction buildTargetDetails(objectType, name, schema, table) {\n\treturn {\n\t\tschema,\n\t\tobjectType,\n\t\tname,\n\t\t...ifDefined(\"table\", table)\n\t};\n}\n//#endregion\n//#region src/core/migrations/planner-recipes.ts\nfunction buildAddColumnOperationIdentity(schema, tableName, columnName) {\n\treturn {\n\t\tid: `column.${tableName}.${columnName}`,\n\t\tlabel: `Add column ${columnName} to ${tableName}`,\n\t\tsummary: `Adds column ${columnName} to table ${tableName}`,\n\t\ttarget: {\n\t\t\tid: \"postgres\",\n\t\t\tdetails: buildTargetDetails(\"table\", tableName, schema)\n\t\t}\n\t};\n}\nasync function buildAddNotNullColumnWithTemporaryDefaultOperation(options) {\n\tconst { schema, tableName, columnName, column, codecHooks, storageTypes, temporaryDefault, lowerer } = options;\n\tconst ddlColumn = col(columnName, buildColumnTypeSql(column, codecHooks, storageTypes), {\n\t\tnotNull: true,\n\t\tdefault: new FunctionColumnDefault(temporaryDefault)\n\t});\n\tconst addColumn = await lowerer.lowerToExecuteRequest(alterTable({\n\t\t...ifDefined(\"schema\", boundSchema(schema)),\n\t\ttable: tableName,\n\t\tactions: [addColumnAction(ddlColumn)]\n\t}));\n\tconst dropTempDefault = await lowerer.lowerToExecuteRequest(alterTable({\n\t\t...ifDefined(\"schema\", boundSchema(schema)),\n\t\ttable: tableName,\n\t\tactions: [dropDefaultAction(columnName)]\n\t}));\n\tconst absent = await lowerer.lowerToExecuteRequest(columnExistsAst({\n\t\tschema,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t}).columnAbsent());\n\tconst present = await lowerer.lowerToExecuteRequest(columnExistsAst({\n\t\tschema,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t}).columnPresent());\n\tconst notNullable = await lowerer.lowerToExecuteRequest(columnNullabilityAst({\n\t\tschema,\n\t\ttable: tableName,\n\t\tcolumn: columnName,\n\t\tnullable: false\n\t}));\n\tconst noDefault = await lowerer.lowerToExecuteRequest(columnDefaultAst({\n\t\tschema,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t}).noDefault());\n\treturn {\n\t\t...buildAddColumnOperationIdentity(schema, tableName, columnName),\n\t\toperationClass: \"additive\",\n\t\tprecheck: [step(`ensure column \"${columnName}\" is missing`, absent.sql, absent.params)],\n\t\texecute: [{\n\t\t\tdescription: `add column \"${columnName}\"`,\n\t\t\tsql: addColumn.sql\n\t\t}, {\n\t\t\tdescription: `drop temporary default from column \"${columnName}\"`,\n\t\t\tsql: dropTempDefault.sql\n\t\t}],\n\t\tpostcheck: [\n\t\t\tstep(`verify column \"${columnName}\" exists`, present.sql, present.params),\n\t\t\tstep(`verify column \"${columnName}\" is NOT NULL`, notNullable.sql, notNullable.params),\n\t\t\tstep(`verify column \"${columnName}\" has no default after temporary default removal`, noDefault.sql, noDefault.params)\n\t\t]\n\t};\n}\n//#endregion\n//#region src/core/migrations/op-factory-call.ts\n/**\n* Postgres migration IR: one concrete `*Call` class per pure factory under\n* `operations/`, plus a shared `PostgresOpFactoryCallNode` abstract base.\n*\n* Every call class carries the literal arguments its backing factory would\n* receive, computes a human-readable `label` in its constructor, and\n* implements two polymorphic hooks:\n*\n* - `toOp()` — converts the IR node to a runtime\n* `SqlMigrationPlanOperation` by delegating to the matching pure factory\n* under `operations/`. `DataTransformCall.toOp()` always throws\n* `MIGRATION.UNFILLED_PLACEHOLDER` because a planner-generated data transform is an\n* unfilled authoring stub by construction.\n* - `renderTypeScript()` / `importRequirements()` — inherited from\n* `TsExpression`. Used by `renderCallsToTypeScript` to emit the call as\n* a TypeScript expression inside the scaffolded `migration.ts`.\n*\n* The abstract base and all concrete classes are package-private. External\n* consumers see only the framework-level `OpFactoryCall` interface and the\n* `PostgresOpFactoryCall` union.\n*/\nconst POSTGRES_MIGRATION_FACADE = \"@internal/postgres/migration\";\nvar PostgresOpFactoryCallNode = class extends TsExpression {\n\timportRequirements() {\n\t\treturn [{\n\t\t\tmoduleSpecifier: POSTGRES_MIGRATION_FACADE,\n\t\t\tsymbol: this.factoryName\n\t\t}];\n\t}\n\tfreeze() {\n\t\tObject.freeze(this);\n\t}\n};\nfunction postgresDefaultToDdlColumnDefault(columnDefault) {\n\tif (!columnDefault) return void 0;\n\tswitch (columnDefault.kind) {\n\t\tcase \"literal\": return new LiteralColumnDefault(columnDefault.value);\n\t\tcase \"function\":\n\t\t\tif (columnDefault.expression === \"autoincrement()\") return void 0;\n\t\t\treturn new FunctionColumnDefault(columnDefault.expression);\n\t\tcase \"sequence\": return new FunctionColumnDefault(`nextval('${escapeLiteral(quoteIdentifier(columnDefault.name))}'::regclass)`);\n\t\tdefault: {\n\t\t\tconst exhaustive = columnDefault;\n\t\t\treturn assertNever(exhaustive, `postgresDefaultToDdlColumnDefault: unhandled kind \"${blindCast(exhaustive).kind}\"`);\n\t\t}\n\t}\n}\nfunction renderDdlColumnDefault(def) {\n\tif (!def) return \"\";\n\tif (def.kind === \"literal\") return `lit(${jsonToTsSource(def.value)})`;\n\treturn `fn(${jsonToTsSource(def.expression)})`;\n}\nfunction renderDdlColumnAsTsCall(col) {\n\tconst opts = [];\n\tif (col.notNull) opts.push(\"notNull: true\");\n\tif (col.primaryKey) opts.push(\"primaryKey: true\");\n\tif (col.default) opts.push(`default: ${renderDdlColumnDefault(col.default)}`);\n\tif (col.codecRef) opts.push(`codecRef: ${jsonToTsSource(col.codecRef)}`);\n\tconst optsStr = opts.length > 0 ? `, { ${opts.join(\", \")} }` : \"\";\n\treturn `col(${jsonToTsSource(col.name)}, ${jsonToTsSource(col.type)}${optsStr})`;\n}\nfunction renderDdlConstraintAsTsCall(constraint) {\n\tswitch (constraint.kind) {\n\t\tcase \"primary-key\": {\n\t\t\tconst nameOpt = constraint.name ? `, { name: ${jsonToTsSource(constraint.name)} }` : \"\";\n\t\t\treturn `primaryKey(${jsonToTsSource(constraint.columns)}${nameOpt})`;\n\t\t}\n\t\tcase \"foreign-key\": {\n\t\t\tconst opts = [];\n\t\t\tif (constraint.name) opts.push(`name: ${jsonToTsSource(constraint.name)}`);\n\t\t\tif (constraint.onDelete) opts.push(`onDelete: ${jsonToTsSource(constraint.onDelete)}`);\n\t\t\tif (constraint.onUpdate) opts.push(`onUpdate: ${jsonToTsSource(constraint.onUpdate)}`);\n\t\t\tconst optsStr = opts.length > 0 ? `, { ${opts.join(\", \")} }` : \"\";\n\t\t\treturn `foreignKey(${jsonToTsSource(constraint.columns)}, ${jsonToTsSource(constraint.refTable)}, ${jsonToTsSource(constraint.refColumns)}${optsStr})`;\n\t\t}\n\t\tcase \"unique\": {\n\t\t\tconst nameOpt = constraint.name ? `, { name: ${jsonToTsSource(constraint.name)} }` : \"\";\n\t\t\treturn `unique(${jsonToTsSource(constraint.columns)}${nameOpt})`;\n\t\t}\n\t\tcase \"check-expression\": return `checkExpression(${jsonToTsSource(constraint.name)}, ${jsonToTsSource(constraint.expression)})`;\n\t}\n}\nfunction needsColOrConstraintImport(columns) {\n\treturn columns.length > 0;\n}\nfunction constraintImportSymbols(constraints) {\n\tif (!constraints || constraints.length === 0) return [];\n\tconst symbols = /* @__PURE__ */ new Set();\n\tfor (const c of constraints) if (c.kind === \"primary-key\") symbols.add(\"primaryKey\");\n\telse if (c.kind === \"foreign-key\") symbols.add(\"foreignKey\");\n\telse if (c.kind === \"unique\") symbols.add(\"unique\");\n\telse if (c.kind === \"check-expression\") symbols.add(\"checkExpression\");\n\treturn [...symbols];\n}\nfunction defaultImportSymbols(columns) {\n\tconst symbols = /* @__PURE__ */ new Set();\n\tfor (const col of columns) if (col.default?.kind === \"literal\") symbols.add(\"lit\");\n\telse if (col.default?.kind === \"function\") symbols.add(\"fn\");\n\treturn [...symbols];\n}\nvar CreateTableCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"createTable\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tcolumns;\n\tconstraints;\n\tlabel;\n\tconstructor(schemaName, tableName, columns, constraints) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.columns = Object.freeze([...columns]);\n\t\tthis.constraints = constraints ? Object.freeze([...constraints]) : void 0;\n\t\tthis.label = `Create table \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `CreateTableCall.toOp: a DDL lowerer is required on the Postgres planner path (table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"CreateTableCall\" } });\n\t\tconst ddlNode = createTable({\n\t\t\t...ifDefined(\"schema\", boundSchema(this.schemaName)),\n\t\t\ttable: this.tableName,\n\t\t\tcolumns: this.columns,\n\t\t\t...ifDefined(\"constraints\", this.constraints)\n\t\t});\n\t\tconst statement = await lowerer.lowerToExecuteRequest(ddlNode);\n\t\tconst schemaName = this.schemaName;\n\t\tconst tableName = this.tableName;\n\t\tconst checks = tableExistsAst(schemaName, tableName);\n\t\tconst absent = await lowerer.lowerToExecuteRequest(checks.tableAbsent());\n\t\tconst present = await lowerer.lowerToExecuteRequest(checks.tablePresent());\n\t\treturn {\n\t\t\tid: `table.${tableName}`,\n\t\t\tlabel: `Create table \"${tableName}\"`,\n\t\t\tsummary: `Creates table \"${tableName}\"`,\n\t\t\toperationClass: \"additive\",\n\t\t\ttarget: targetDetails(\"table\", tableName, schemaName),\n\t\t\tprecheck: [step(`ensure table \"${tableName}\" does not exist`, absent.sql, absent.params)],\n\t\t\texecute: [{\n\t\t\t\tdescription: `create table \"${tableName}\"`,\n\t\t\t\tsql: statement.sql,\n\t\t\t\tparams: statement.params ?? []\n\t\t\t}],\n\t\t\tpostcheck: [step(`verify table \"${tableName}\" exists`, present.sql, present.params)]\n\t\t};\n\t}\n\trenderTypeScript() {\n\t\tconst columnsList = this.columns.map(renderDdlColumnAsTsCall).join(\", \");\n\t\tconst constraintsList = this.constraints ? this.constraints.map(renderDdlConstraintAsTsCall).join(\", \") : void 0;\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`columns: [${columnsList}]`);\n\t\tif (constraintsList) opts.push(`constraints: [${constraintsList}]`);\n\t\treturn `this.createTable({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\tconst req = [];\n\t\tif (needsColOrConstraintImport(this.columns)) {\n\t\t\treq.push({\n\t\t\t\tmoduleSpecifier: POSTGRES_MIGRATION_FACADE,\n\t\t\t\tsymbol: \"col\"\n\t\t\t});\n\t\t\tfor (const sym of defaultImportSymbols(this.columns)) req.push({\n\t\t\t\tmoduleSpecifier: POSTGRES_MIGRATION_FACADE,\n\t\t\t\tsymbol: sym\n\t\t\t});\n\t\t}\n\t\tfor (const sym of constraintImportSymbols(this.constraints)) req.push({\n\t\t\tmoduleSpecifier: POSTGRES_MIGRATION_FACADE,\n\t\t\tsymbol: sym\n\t\t});\n\t\treturn req;\n\t}\n};\nvar DropTableCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropTable\";\n\toperationClass = \"destructive\";\n\tschemaName;\n\ttableName;\n\tlabel;\n\tconstructor(schemaName, tableName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.label = `Drop table \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropTableCall.toOp: a lowerer is required on the Postgres planner path (table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropTableCall\" } });\n\t\treturn dropTable(this.schemaName, this.tableName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\treturn `this.dropTable({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar AddColumnCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"addColumn\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tcolumn;\n\tlabel;\n\tconstructor(schemaName, tableName, column) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.column = column;\n\t\tthis.label = `Add column \"${column.name}\" to \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AddColumnCall.toOp: a DDL lowerer is required on the Postgres planner path (column \"${this.column.name}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AddColumnCall\" } });\n\t\tconst ddlNode = alterTable({\n\t\t\t...ifDefined(\"schema\", boundSchema(this.schemaName)),\n\t\t\ttable: this.tableName,\n\t\t\tactions: [addColumnAction(this.column)]\n\t\t});\n\t\tconst statement = await lowerer.lowerToExecuteRequest(ddlNode);\n\t\tconst schemaName = this.schemaName;\n\t\tconst tableName = this.tableName;\n\t\tconst columnName = this.column.name;\n\t\tconst colChecks = columnExistsAst({\n\t\t\tschema: schemaName,\n\t\t\ttable: tableName,\n\t\t\tcolumn: columnName\n\t\t});\n\t\tconst absent = await lowerer.lowerToExecuteRequest(colChecks.columnAbsent());\n\t\tconst present = await lowerer.lowerToExecuteRequest(colChecks.columnPresent());\n\t\treturn {\n\t\t\tid: `column.${schemaName}.${tableName}.${columnName}`,\n\t\t\tlabel: `Add column \"${columnName}\" to \"${tableName}\"`,\n\t\t\toperationClass: \"additive\",\n\t\t\ttarget: targetDetails(\"column\", columnName, schemaName, tableName),\n\t\t\tprecheck: [step(`ensure column \"${columnName}\" is missing`, absent.sql, absent.params)],\n\t\t\texecute: [step(`add column \"${columnName}\"`, statement.sql)],\n\t\t\tpostcheck: [step(`verify column \"${columnName}\" exists`, present.sql, present.params)]\n\t\t};\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`column: ${renderDdlColumnAsTsCall(this.column)}`);\n\t\treturn `this.addColumn({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\tconst req = [{\n\t\t\tmoduleSpecifier: POSTGRES_MIGRATION_FACADE,\n\t\t\tsymbol: \"col\"\n\t\t}];\n\t\tfor (const sym of defaultImportSymbols([this.column])) req.push({\n\t\t\tmoduleSpecifier: POSTGRES_MIGRATION_FACADE,\n\t\t\tsymbol: sym\n\t\t});\n\t\treturn req;\n\t}\n};\nvar DropColumnCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropColumn\";\n\toperationClass = \"destructive\";\n\tschemaName;\n\ttableName;\n\tcolumnName;\n\tlabel;\n\tconstructor(schemaName, tableName, columnName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.columnName = columnName;\n\t\tthis.label = `Drop column \"${columnName}\" from \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropColumnCall.toOp: a lowerer is required on the Postgres planner path (column \"${this.columnName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropColumnCall\" } });\n\t\treturn dropColumn(this.schemaName, this.tableName, this.columnName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`column: ${jsonToTsSource(this.columnName)}`);\n\t\treturn `this.dropColumn({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar AlterColumnTypeCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"alterColumnType\";\n\toperationClass = \"destructive\";\n\tschemaName;\n\ttableName;\n\tcolumnName;\n\toptions;\n\tlabel;\n\tconstructor(schemaName, tableName, columnName, options) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.columnName = columnName;\n\t\tthis.options = options;\n\t\tthis.label = `Alter type of \"${tableName}\".\"${columnName}\" to ${options.rawTargetTypeForLabel}`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AlterColumnTypeCall.toOp: a lowerer is required on the Postgres planner path (column \"${this.columnName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AlterColumnTypeCall\" } });\n\t\treturn alterColumnType(this.schemaName, this.tableName, this.columnName, this.options, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`column: ${jsonToTsSource(this.columnName)}`);\n\t\topts.push(`options: ${jsonToTsSource(this.options)}`);\n\t\treturn `this.alterColumnType({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar SetNotNullCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"setNotNull\";\n\toperationClass = \"destructive\";\n\tschemaName;\n\ttableName;\n\tcolumnName;\n\tlabel;\n\tconstructor(schemaName, tableName, columnName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.columnName = columnName;\n\t\tthis.label = `Set NOT NULL on \"${tableName}\".\"${columnName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `SetNotNullCall.toOp: a lowerer is required on the Postgres planner path (column \"${this.columnName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"SetNotNullCall\" } });\n\t\treturn setNotNull(this.schemaName, this.tableName, this.columnName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`column: ${jsonToTsSource(this.columnName)}`);\n\t\treturn `this.setNotNull({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar DropNotNullCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropNotNull\";\n\toperationClass = \"widening\";\n\tschemaName;\n\ttableName;\n\tcolumnName;\n\tlabel;\n\tconstructor(schemaName, tableName, columnName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.columnName = columnName;\n\t\tthis.label = `Drop NOT NULL on \"${tableName}\".\"${columnName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropNotNullCall.toOp: a lowerer is required on the Postgres planner path (column \"${this.columnName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropNotNullCall\" } });\n\t\treturn dropNotNull(this.schemaName, this.tableName, this.columnName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`column: ${jsonToTsSource(this.columnName)}`);\n\t\treturn `this.dropNotNull({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar SetDefaultCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"setDefault\";\n\toperationClass;\n\tschemaName;\n\ttableName;\n\tcolumnName;\n\tdefaultSql;\n\tlabel;\n\tconstructor(schemaName, tableName, columnName, defaultSql, operationClass = \"additive\") {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.columnName = columnName;\n\t\tthis.defaultSql = defaultSql;\n\t\tthis.operationClass = operationClass;\n\t\tthis.label = `Set default on \"${tableName}\".\"${columnName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `SetDefaultCall.toOp: a lowerer is required on the Postgres planner path (column \"${this.columnName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"SetDefaultCall\" } });\n\t\treturn setDefault(this.schemaName, this.tableName, this.columnName, this.defaultSql, lowerer, this.operationClass);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`column: ${jsonToTsSource(this.columnName)}`);\n\t\topts.push(`defaultSql: ${jsonToTsSource(this.defaultSql)}`);\n\t\tif (this.operationClass !== \"additive\") opts.push(`operationClass: ${jsonToTsSource(this.operationClass)}`);\n\t\treturn `this.setDefault({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar DropDefaultCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropDefault\";\n\toperationClass = \"destructive\";\n\tschemaName;\n\ttableName;\n\tcolumnName;\n\tlabel;\n\tconstructor(schemaName, tableName, columnName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.columnName = columnName;\n\t\tthis.label = `Drop default on \"${tableName}\".\"${columnName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropDefaultCall.toOp: a lowerer is required on the Postgres planner path (column \"${this.columnName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropDefaultCall\" } });\n\t\treturn dropDefault(this.schemaName, this.tableName, this.columnName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`column: ${jsonToTsSource(this.columnName)}`);\n\t\treturn `this.dropDefault({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\n/**\n* Planner-internal call for adding a NOT NULL column (no contract default) to\n* a table that must be empty at migration time. Carries the typed `DdlColumn`\n* and lowers it to an ADD COLUMN execute step via the adapter at `toOp` time.\n*\n* No authored `PostgresMigration` method: this call is only emitted by the\n* planner, never hand-written by migration authors.\n*/\nvar AddNotNullColumnDirectCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"rawSql\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tcolumnName;\n\tcolumn;\n\tlabel;\n\tconstructor(schemaName, tableName, columnName, column) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.columnName = columnName;\n\t\tthis.column = column;\n\t\tthis.label = `Add column ${columnName} to ${tableName}`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AddNotNullColumnDirectCall.toOp: a lowerer is required on the Postgres planner path (column \"${this.columnName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AddNotNullColumnDirectCall\" } });\n\t\treturn addNotNullColumnDirect(this.schemaName, this.tableName, this.column, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `rawSql(${jsonToTsSource({\n\t\t\tid: `column.${this.tableName}.${this.columnName}`,\n\t\t\tlabel: this.label,\n\t\t\toperationClass: \"additive\"\n\t\t})})`;\n\t}\n};\n/**\n* Planner-internal call for adding a NOT NULL column (no contract default)\n* using a temporary default value for non-empty tables. Carries all parameters\n* needed for `buildAddNotNullColumnWithTemporaryDefaultOperation`; both the\n* typed ADD COLUMN execute step and the pre/postchecks are lowered via the\n* adapter at `toOp` time.\n*\n* No authored `PostgresMigration` method: this call is only emitted by the\n* planner, never hand-written by migration authors.\n*/\nvar AddNotNullColumnWithTempDefaultCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"rawSql\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tcolumnName;\n\tcolumn;\n\tcodecHooks;\n\tstorageTypes;\n\ttemporaryDefault;\n\tlabel;\n\tconstructor(options) {\n\t\tsuper();\n\t\tthis.schemaName = options.schemaName;\n\t\tthis.tableName = options.tableName;\n\t\tthis.columnName = options.columnName;\n\t\tthis.column = options.column;\n\t\tthis.codecHooks = options.codecHooks;\n\t\tthis.storageTypes = options.storageTypes;\n\t\tthis.temporaryDefault = options.temporaryDefault;\n\t\tthis.label = `Add column ${options.columnName} to ${options.tableName}`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AddNotNullColumnWithTempDefaultCall.toOp: a lowerer is required on the Postgres planner path (column \"${this.columnName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AddNotNullColumnWithTempDefaultCall\" } });\n\t\treturn buildAddNotNullColumnWithTemporaryDefaultOperation({\n\t\t\tschema: this.schemaName,\n\t\t\ttableName: this.tableName,\n\t\t\tcolumnName: this.columnName,\n\t\t\tcolumn: this.column,\n\t\t\tcodecHooks: this.codecHooks,\n\t\t\tstorageTypes: this.storageTypes,\n\t\t\ttemporaryDefault: this.temporaryDefault,\n\t\t\tlowerer\n\t\t});\n\t}\n\trenderTypeScript() {\n\t\treturn `rawSql(${jsonToTsSource({\n\t\t\tid: `column.${this.tableName}.${this.columnName}`,\n\t\t\tlabel: this.label,\n\t\t\toperationClass: \"additive\"\n\t\t})})`;\n\t}\n};\nfunction constraintCallOptions(schemaName, tableName, constraintName) {\n\tconst opts = [];\n\tif (schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(schemaName)}`);\n\topts.push(`table: ${jsonToTsSource(tableName)}`);\n\topts.push(`constraint: ${jsonToTsSource(constraintName)}`);\n\treturn opts.join(\", \");\n}\nvar AddPrimaryKeyCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"addPrimaryKey\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tconstraintName;\n\tcolumns;\n\tlabel;\n\tconstructor(schemaName, tableName, constraintName, columns) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.constraintName = constraintName;\n\t\tthis.columns = columns;\n\t\tthis.label = `Add primary key on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AddPrimaryKeyCall.toOp: a lowerer is required on the Postgres planner path (constraint \"${this.constraintName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AddPrimaryKeyCall\" } });\n\t\treturn addPrimaryKey(this.schemaName, this.tableName, this.constraintName, this.columns, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.addPrimaryKey({ ${constraintCallOptions(this.schemaName, this.tableName, this.constraintName)}, columns: ${jsonToTsSource(this.columns)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar AddUniqueCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"addUnique\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tconstraintName;\n\tcolumns;\n\tlabel;\n\tconstructor(schemaName, tableName, constraintName, columns) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.constraintName = constraintName;\n\t\tthis.columns = columns;\n\t\tthis.label = `Add unique constraint on \"${tableName}\" (${columns.join(\", \")})`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AddUniqueCall.toOp: a lowerer is required on the Postgres planner path (constraint \"${this.constraintName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AddUniqueCall\" } });\n\t\treturn addUnique(this.schemaName, this.tableName, this.constraintName, this.columns, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.addUnique({ ${constraintCallOptions(this.schemaName, this.tableName, this.constraintName)}, columns: ${jsonToTsSource(this.columns)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar AddForeignKeyCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"addForeignKey\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tfk;\n\tlabel;\n\tconstructor(schemaName, tableName, fk) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.fk = fk;\n\t\tthis.label = `Add foreign key \"${fk.name}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AddForeignKeyCall.toOp: a lowerer is required on the Postgres planner path (constraint \"${this.fk.name}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AddForeignKeyCall\" } });\n\t\treturn addForeignKey(this.schemaName, this.tableName, this.fk, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`foreignKey: ${jsonToTsSource(this.fk)}`);\n\t\treturn `this.addForeignKey({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar DropConstraintCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropConstraint\";\n\toperationClass = \"destructive\";\n\tschemaName;\n\ttableName;\n\tconstraintName;\n\tkind;\n\tlabel;\n\tconstructor(schemaName, tableName, constraintName, kind = \"unique\") {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.constraintName = constraintName;\n\t\tthis.kind = kind;\n\t\tthis.label = `Drop constraint \"${constraintName}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropConstraintCall.toOp: a lowerer is required on the Postgres planner path (constraint \"${this.constraintName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropConstraintCall\" } });\n\t\treturn dropConstraint(this.schemaName, this.tableName, this.constraintName, lowerer, this.kind);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [constraintCallOptions(this.schemaName, this.tableName, this.constraintName)];\n\t\tif (this.kind !== \"unique\") opts.push(`kind: ${jsonToTsSource(this.kind)}`);\n\t\treturn `this.dropConstraint({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar RenameCheckConstraintCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"renameCheckConstraint\";\n\toperationClass = \"widening\";\n\tschemaName;\n\ttableName;\n\toldConstraintName;\n\tnewConstraintName;\n\tlabel;\n\tconstructor(schemaName, tableName, oldConstraintName, newConstraintName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.oldConstraintName = oldConstraintName;\n\t\tthis.newConstraintName = newConstraintName;\n\t\tthis.label = `Rename check constraint \"${oldConstraintName}\" to \"${newConstraintName}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `RenameCheckConstraintCall.toOp: a lowerer is required on the Postgres planner path (constraint \"${this.oldConstraintName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"RenameCheckConstraintCall\" } });\n\t\treturn renameCheckConstraint(this.schemaName, this.tableName, this.oldConstraintName, this.newConstraintName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`from: ${jsonToTsSource(this.oldConstraintName)}`);\n\t\topts.push(`to: ${jsonToTsSource(this.newConstraintName)}`);\n\t\treturn `this.renameCheckConstraint({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar AddCheckConstraintCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"addCheckConstraint\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tconstraintName;\n\t/** Opaque SQL: the predicate body, rendered verbatim inside `CHECK (…)`. */\n\texpression;\n\tlabel;\n\tconstructor(schemaName, tableName, constraintName, expression) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.constraintName = constraintName;\n\t\tthis.expression = expression;\n\t\tthis.label = `Add check constraint \"${constraintName}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AddCheckConstraintCall.toOp: a lowerer is required on the Postgres planner path (constraint \"${this.constraintName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AddCheckConstraintCall\" } });\n\t\treturn addCheckConstraint(this.schemaName, this.tableName, this.constraintName, this.expression, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.addCheckConstraint({ ${constraintCallOptions(this.schemaName, this.tableName, this.constraintName)}, expression: ${jsonToTsSource(this.expression)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar DropCheckConstraintCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropCheckConstraint\";\n\toperationClass = \"destructive\";\n\tschemaName;\n\ttableName;\n\tconstraintName;\n\tlabel;\n\tconstructor(schemaName, tableName, constraintName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.constraintName = constraintName;\n\t\tthis.label = `Drop check constraint \"${constraintName}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropCheckConstraintCall.toOp: a lowerer is required on the Postgres planner path (constraint \"${this.constraintName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropCheckConstraintCall\" } });\n\t\treturn dropCheckConstraint(this.schemaName, this.tableName, this.constraintName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.dropCheckConstraint({ ${constraintCallOptions(this.schemaName, this.tableName, this.constraintName)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar CreateIndexCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"createIndex\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tindexName;\n\t/** Column tuple when the index is column-based; absent for expression indexes. */\n\tcolumns;\n\t/** Opaque whole element list when the index is expression-based. */\n\texpression;\n\tindexType;\n\toptions;\n\twhere;\n\tunique;\n\tlabel;\n\tconstructor(schemaName, tableName, indexName, elements, extras) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.indexName = indexName;\n\t\tthis.columns = \"columns\" in elements ? elements.columns : void 0;\n\t\tthis.expression = \"expression\" in elements ? elements.expression : void 0;\n\t\tthis.indexType = extras?.type;\n\t\tthis.options = extras?.options;\n\t\tthis.where = extras?.where;\n\t\tthis.unique = extras?.unique === true;\n\t\tthis.label = `Create index \"${indexName}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `CreateIndexCall.toOp: a lowerer is required on the Postgres planner path (index \"${this.indexName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"CreateIndexCall\" } });\n\t\tconst extras = {};\n\t\tif (this.indexType !== void 0) extras.type = this.indexType;\n\t\tif (this.options !== void 0) extras.options = this.options;\n\t\tif (this.where !== void 0) extras.where = this.where;\n\t\tif (this.unique) extras.unique = true;\n\t\treturn createIndex(this.schemaName, this.tableName, this.indexName, this.columns !== void 0 ? { columns: this.columns } : { expression: this.expression ?? \"\" }, lowerer, extras);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`index: ${jsonToTsSource(this.indexName)}`);\n\t\tif (this.columns !== void 0) opts.push(`columns: ${jsonToTsSource(this.columns)}`);\n\t\telse opts.push(`expression: ${jsonToTsSource(this.expression ?? \"\")}`);\n\t\tif (this.indexType !== void 0 || this.options !== void 0 || this.where !== void 0 || this.unique) {\n\t\t\tconst extrasParts = [];\n\t\t\tif (this.indexType !== void 0) extrasParts.push(`type: ${jsonToTsSource(this.indexType)}`);\n\t\t\tif (this.options !== void 0) extrasParts.push(`options: ${jsonToTsSource(this.options)}`);\n\t\t\tif (this.where !== void 0) extrasParts.push(`where: ${jsonToTsSource(this.where)}`);\n\t\t\tif (this.unique) extrasParts.push(\"unique: true\");\n\t\t\topts.push(`extras: { ${extrasParts.join(\", \")} }`);\n\t\t}\n\t\treturn `this.createIndex({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar RenameIndexCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"renameIndex\";\n\toperationClass = \"widening\";\n\tschemaName;\n\ttableName;\n\toldIndexName;\n\tnewIndexName;\n\tlabel;\n\tconstructor(schemaName, tableName, oldIndexName, newIndexName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.oldIndexName = oldIndexName;\n\t\tthis.newIndexName = newIndexName;\n\t\tthis.label = `Rename index \"${oldIndexName}\" to \"${newIndexName}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `RenameIndexCall.toOp: a lowerer is required on the Postgres planner path (index \"${this.oldIndexName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"RenameIndexCall\" } });\n\t\treturn renameIndex(this.schemaName, this.tableName, this.oldIndexName, this.newIndexName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`from: ${jsonToTsSource(this.oldIndexName)}`);\n\t\topts.push(`to: ${jsonToTsSource(this.newIndexName)}`);\n\t\treturn `this.renameIndex({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar DropIndexCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropIndex\";\n\toperationClass = \"destructive\";\n\tschemaName;\n\ttableName;\n\tindexName;\n\tlabel;\n\tconstructor(schemaName, tableName, indexName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.indexName = indexName;\n\t\tthis.label = `Drop index \"${indexName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropIndexCall.toOp: a lowerer is required on the Postgres planner path (index \"${this.indexName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropIndexCall\" } });\n\t\treturn dropIndex(this.schemaName, this.tableName, this.indexName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`index: ${jsonToTsSource(this.indexName)}`);\n\t\treturn `this.dropIndex({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\n/**\n* Laundered pre-built operation.\n*\n* Wraps an already-materialized `SqlMigrationPlanOperation` — typically one\n* produced by a SQL-family method or a codec control hook — so the planner\n* can carry it alongside IR nodes without reverse-engineering it into a\n* structured call class. Doubles as the user-facing escape hatch for raw\n* migrations: authors can pass a full op shape to `rawSql({...})`.\n*\n* `toOp()` returns the stored op unchanged. `renderTypeScript()` emits\n* `rawSql({...})` with the op serialized as a JSON literal — round-tripping\n* requires every field on the op to be JSON-serializable (no closures).\n*/\nvar RawSqlCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"rawSql\";\n\toperationClass;\n\tlabel;\n\top;\n\tconstructor(op) {\n\t\tsuper();\n\t\tthis.op = op;\n\t\tthis.label = op.label;\n\t\tthis.operationClass = op.operationClass;\n\t\tthis.freeze();\n\t}\n\ttoOp() {\n\t\treturn this.op;\n\t}\n\trenderTypeScript() {\n\t\treturn `rawSql(${jsonToTsSource(this.op)})`;\n\t}\n};\nvar CreateExtensionCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"createExtension\";\n\toperationClass = \"additive\";\n\textensionName;\n\tlabel;\n\tconstructor(extensionName) {\n\t\tsuper();\n\t\tthis.extensionName = extensionName;\n\t\tthis.label = `Create extension \"${extensionName}\"`;\n\t\tthis.freeze();\n\t}\n\ttoOp() {\n\t\treturn createExtension(this.extensionName);\n\t}\n\trenderTypeScript() {\n\t\treturn `createExtension(${jsonToTsSource(this.extensionName)})`;\n\t}\n};\nvar CreateSchemaCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"createSchema\";\n\toperationClass = \"additive\";\n\tschemaName;\n\tlabel;\n\tconstructor(schemaName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.label = `Create schema \"${schemaName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `CreateSchemaCall.toOp: a DDL lowerer is required on the Postgres planner path (schema \"${this.schemaName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"CreateSchemaCall\" } });\n\t\tconst ddlNode = createSchema({\n\t\t\tschema: this.schemaName,\n\t\t\tifNotExists: true\n\t\t});\n\t\tconst statement = await lowerer.lowerToExecuteRequest(ddlNode);\n\t\tconst schemaName = this.schemaName;\n\t\treturn {\n\t\t\tid: `schema.${schemaName}`,\n\t\t\tlabel: `Create schema \"${schemaName}\"`,\n\t\t\toperationClass: \"additive\",\n\t\t\ttarget: { id: \"postgres\" },\n\t\t\tprecheck: [],\n\t\t\texecute: [{\n\t\t\t\tdescription: `Create schema \"${schemaName}\"`,\n\t\t\t\tsql: statement.sql,\n\t\t\t\tparams: statement.params ?? []\n\t\t\t}],\n\t\t\tpostcheck: []\n\t\t};\n\t}\n\trenderTypeScript() {\n\t\treturn `this.createSchema({ schema: ${jsonToTsSource(this.schemaName)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar CreateNativeEnumTypeCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"createNativeEnumType\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttypeName;\n\tmembers;\n\tlabel;\n\tconstructor(schemaName, typeName, members) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.typeName = typeName;\n\t\tthis.members = Object.freeze([...members]);\n\t\tthis.label = `Create enum type \"${typeName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `CreateNativeEnumTypeCall.toOp: a DDL lowerer is required on the Postgres planner path (type \"${this.typeName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"CreateNativeEnumTypeCall\" } });\n\t\treturn createNativeEnumType(this.schemaName, this.typeName, this.members, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.createNativeEnumType({ ${[\n\t\t\t`schema: ${jsonToTsSource(this.schemaName)}`,\n\t\t\t`typeName: ${jsonToTsSource(this.typeName)}`,\n\t\t\t`members: ${jsonToTsSource(this.members)}`\n\t\t].join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar DropNativeEnumTypeCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropNativeEnumType\";\n\toperationClass = \"destructive\";\n\tschemaName;\n\ttypeName;\n\tlabel;\n\tconstructor(schemaName, typeName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.typeName = typeName;\n\t\tthis.label = `Drop enum type \"${typeName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropNativeEnumTypeCall.toOp: a DDL lowerer is required on the Postgres planner path (type \"${this.typeName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropNativeEnumTypeCall\" } });\n\t\treturn dropNativeEnumType(this.schemaName, this.typeName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.dropNativeEnumType({ ${[`schema: ${jsonToTsSource(this.schemaName)}`, `typeName: ${jsonToTsSource(this.typeName)}`].join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\n/** Schema-qualified, quoted enum type name — unqualified when `schemaName` is the unbound sentinel, matching `boundSchema`'s DDL-node convention. */\nfunction qualifiedNativeEnumTypeName(schemaName, typeName) {\n\tconst bound = boundSchema(schemaName);\n\treturn quoteQualifiedName(bound === void 0 ? typeName : `${bound}.${typeName}`);\n}\nconst ADD_VALUE_TRANSACTION_CAVEAT = \"A newly added enum value cannot be used until the transaction that adds it commits, so a migration that both appends a value and uses it in the same step will fail at apply.\";\n/**\n* `ALTER TYPE <qualified> ADD VALUE '<value>'` for a suffix-appended member on\n* a managed native enum. Built directly as SQL text (qualified via\n* `quoteQualifiedName`, the value escaped via `escapeLiteral`) rather than a\n* typed DDL node — mirrors how `enableRowLevelSecurity` renders its execute\n* step, since no DDL-AST node exists for this statement. Prechecks/postchecks\n* are still typed catalog queries lowered through the control adapter.\n* `validateEnumValueLength` runs at construction, so an over-length value\n* fails before planning produces a call.\n*/\nvar AddNativeEnumValueCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"addNativeEnumValue\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttypeName;\n\tvalue;\n\tlabel;\n\tsummary;\n\tconstructor(schemaName, typeName, value) {\n\t\tsuper();\n\t\tvalidateEnumValueLength(value, typeName);\n\t\tthis.schemaName = schemaName;\n\t\tthis.typeName = typeName;\n\t\tthis.value = value;\n\t\tthis.label = `Add value \"${value}\" to enum type \"${typeName}\"`;\n\t\tthis.summary = `Adds value \"${value}\" to enum type \"${typeName}\". ${ADD_VALUE_TRANSACTION_CAVEAT}`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AddNativeEnumValueCall.toOp: a lowerer is required on the Postgres planner path (type \"${this.typeName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AddNativeEnumValueCall\" } });\n\t\tconst { schemaName, typeName, value } = this;\n\t\tconst typeChecks = nativeEnumTypeExistsAst(schemaName, typeName);\n\t\tconst valueChecks = nativeEnumValueExistsAst({\n\t\t\tschema: schemaName,\n\t\t\ttypeName,\n\t\t\tvalue\n\t\t});\n\t\tconst typePresent = await lowerer.lowerToExecuteRequest(typeChecks.typePresent());\n\t\tconst valueAbsent = await lowerer.lowerToExecuteRequest(valueChecks.valueAbsent());\n\t\tconst valuePresent = await lowerer.lowerToExecuteRequest(valueChecks.valuePresent());\n\t\tconst qualifiedType = qualifiedNativeEnumTypeName(schemaName, typeName);\n\t\treturn {\n\t\t\tid: `addNativeEnumValue.${typeName}.${value}`,\n\t\t\tlabel: this.label,\n\t\t\tsummary: this.summary,\n\t\t\toperationClass: \"additive\",\n\t\t\ttarget: targetDetails(\"type\", typeName, schemaName),\n\t\t\tprecheck: [step(`ensure enum type \"${typeName}\" exists`, typePresent.sql, typePresent.params), step(`ensure value \"${value}\" is absent from enum type \"${typeName}\"`, valueAbsent.sql, valueAbsent.params)],\n\t\t\texecute: [step(`add value \"${value}\" to enum type \"${typeName}\"`, `ALTER TYPE ${qualifiedType} ADD VALUE '${escapeLiteral(value)}'`)],\n\t\t\tpostcheck: [step(`verify value \"${value}\" exists on enum type \"${typeName}\"`, valuePresent.sql, valuePresent.params)]\n\t\t};\n\t}\n\trenderTypeScript() {\n\t\treturn `this.addNativeEnumValue({ ${[\n\t\t\t`schema: ${jsonToTsSource(this.schemaName)}`,\n\t\t\t`typeName: ${jsonToTsSource(this.typeName)}`,\n\t\t\t`value: ${jsonToTsSource(this.value)}`\n\t\t].join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\n/**\n* A planner-generated data-transform stub. `checkSlot` and `runSlot` name\n* the unfilled authoring slots that the rendered `migration.ts` will expose\n* to the user via `placeholder(\"…\")` calls. `toOp()` always throws\n* `MIGRATION.UNFILLED_PLACEHOLDER`: the planner cannot lower a stubbed transform to a runtime\n* op — the user must fill the rendered `migration.ts` and re-emit.\n*/\nvar DataTransformCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dataTransform\";\n\toperationClass;\n\tlabel;\n\tcheckSlot;\n\trunSlot;\n\tconstructor(label, checkSlot, runSlot, operationClass = \"data\") {\n\t\tsuper();\n\t\tthis.label = label;\n\t\tthis.checkSlot = checkSlot;\n\t\tthis.runSlot = runSlot;\n\t\tthis.operationClass = operationClass;\n\t\tthis.freeze();\n\t}\n\ttoOp() {\n\t\tthrow errorUnfilledPlaceholder(this.label);\n\t}\n\trenderTypeScript() {\n\t\treturn [\n\t\t\t`this.dataTransform(endContract, ${jsonToTsSource(this.label)}, {`,\n\t\t\t` check: () => placeholder(${jsonToTsSource(this.checkSlot)}),`,\n\t\t\t` run: () => placeholder(${jsonToTsSource(this.runSlot)}),`,\n\t\t\t\"})\"\n\t\t].join(\"\\n\");\n\t}\n\timportRequirements() {\n\t\treturn [{\n\t\t\tmoduleSpecifier: POSTGRES_MIGRATION_FACADE,\n\t\t\tsymbol: \"placeholder\"\n\t\t}];\n\t}\n};\nvar CreatePostgresRlsPolicyCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"createRlsPolicy\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tpolicy;\n\tlabel;\n\tconstructor(schemaName, tableName, policy) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.policy = policy;\n\t\tthis.label = `Create RLS policy \"${policy.name}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `CreatePostgresRlsPolicyCall.toOp: a lowerer is required on the Postgres planner path (policy \"${this.policy.name}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"CreatePostgresRlsPolicyCall\" } });\n\t\treturn createRlsPolicy(this.schemaName, this.tableName, this.policy, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst p = this.policy;\n\t\tconst input = {\n\t\t\tnaming: namingOf(p.name, p.prefix),\n\t\t\ttableName: p.tableName,\n\t\t\tnamespaceId: p.namespaceId,\n\t\t\toperation: p.operation,\n\t\t\troles: p.roles,\n\t\t\t...ifDefined(\"using\", p.using),\n\t\t\t...ifDefined(\"withCheck\", p.withCheck),\n\t\t\tpermissive: p.permissive\n\t\t};\n\t\treturn `this.createRlsPolicy({ schema: ${jsonToTsSource(this.schemaName)}, table: ${jsonToTsSource(this.tableName)}, policy: ${jsonToTsSource(input)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar DropPostgresRlsPolicyCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropRlsPolicy\";\n\toperationClass = \"destructive\";\n\tschemaName;\n\ttableName;\n\tpolicyName;\n\tlabel;\n\tconstructor(schemaName, tableName, policyName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.policyName = policyName;\n\t\tthis.label = `Drop RLS policy \"${policyName}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropPostgresRlsPolicyCall.toOp: a lowerer is required on the Postgres planner path (policy \"${this.policyName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropPostgresRlsPolicyCall\" } });\n\t\treturn dropRlsPolicy(this.schemaName, this.tableName, this.policyName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.dropRlsPolicy({ schema: ${jsonToTsSource(this.schemaName)}, table: ${jsonToTsSource(this.tableName)}, policy: ${jsonToTsSource(this.policyName)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar EnableRowLevelSecurityCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"enableRowLevelSecurity\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tlabel;\n\tconstructor(schemaName, tableName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.label = `Enable row-level security on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `EnableRowLevelSecurityCall.toOp: a lowerer is required on the Postgres planner path (table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"EnableRowLevelSecurityCall\" } });\n\t\treturn enableRowLevelSecurity(this.schemaName, this.tableName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.enableRowLevelSecurity({ schema: ${jsonToTsSource(this.schemaName)}, table: ${jsonToTsSource(this.tableName)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar DisableRowLevelSecurityCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"disableRowLevelSecurity\";\n\toperationClass = \"destructive\";\n\tschemaName;\n\ttableName;\n\tlabel;\n\tconstructor(schemaName, tableName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.label = `Disable row-level security on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DisableRowLevelSecurityCall.toOp: a lowerer is required on the Postgres planner path (table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DisableRowLevelSecurityCall\" } });\n\t\treturn disableRowLevelSecurity(this.schemaName, this.tableName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.disableRowLevelSecurity({ schema: ${jsonToTsSource(this.schemaName)}, table: ${jsonToTsSource(this.tableName)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar RenamePostgresRlsPolicyCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"renameRlsPolicy\";\n\toperationClass = \"widening\";\n\tschemaName;\n\ttableName;\n\toldPolicyName;\n\tnewPolicyName;\n\tlabel;\n\tconstructor(schemaName, tableName, oldPolicyName, newPolicyName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.oldPolicyName = oldPolicyName;\n\t\tthis.newPolicyName = newPolicyName;\n\t\tthis.label = `Rename RLS policy \"${oldPolicyName}\" to \"${newPolicyName}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `RenamePostgresRlsPolicyCall.toOp: a lowerer is required on the Postgres planner path (policy \"${this.oldPolicyName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"RenamePostgresRlsPolicyCall\" } });\n\t\treturn renameRlsPolicy(this.schemaName, this.tableName, this.oldPolicyName, this.newPolicyName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.renameRlsPolicy({ schema: ${jsonToTsSource(this.schemaName)}, table: ${jsonToTsSource(this.tableName)}, from: ${jsonToTsSource(this.oldPolicyName)}, to: ${jsonToTsSource(this.newPolicyName)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\n//#endregion\nexport { RenameIndexCall as A, DropNativeEnumTypeCall as C, EnableRowLevelSecurityCall as D, DropTableCall as E, buildTargetDetails as F, createExtension as I, installExtension as L, SetDefaultCall as M, SetNotNullCall as N, RawSqlCall as O, postgresDefaultToDdlColumnDefault as P, DropIndexCall as S, DropPostgresRlsPolicyCall as T, DisableRowLevelSecurityCall as _, AddNotNullColumnDirectCall as a, DropConstraintCall as b, AddUniqueCall as c, CreateIndexCall as d, CreateNativeEnumTypeCall as f, DataTransformCall as g, CreateTableCall as h, AddNativeEnumValueCall as i, RenamePostgresRlsPolicyCall as j, RenameCheckConstraintCall as k, AlterColumnTypeCall as l, CreateSchemaCall as m, AddColumnCall as n, AddNotNullColumnWithTempDefaultCall as o, CreatePostgresRlsPolicyCall as p, AddForeignKeyCall as r, AddPrimaryKeyCall as s, AddCheckConstraintCall as t, CreateExtensionCall as u, DropCheckConstraintCall as v, DropNotNullCall as w, DropDefaultCall as x, DropColumnCall as y };\n\n//# sourceMappingURL=op-factory-call-Brgoyup0.mjs.map"],"mappings":"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"}
@@ -2,18 +2,18 @@ import { t as DEFAULT_NAMESPACE_ID } from "./namespace-ids-xtp_ZY86-Cpp8PTxD.mjs
2
2
  import { d as isPostgresSchema, i as PostgresRlsPolicy } from "./postgres-schema-CFOxDfUX-DTZtjh5X.mjs";
3
3
  import { n as PostgresNamespaceSchemaNode, r as PostgresPolicySchemaNode, t as PostgresDatabaseSchemaNode } from "./postgres-role-schema-node-B8Z5i5D--PObwlU2Z.mjs";
4
4
  import { t as resolveDdlSchemaForNamespaceStorage } from "./resolve-ddl-schema-BIy8VDVK-Cb6hoVTS.mjs";
5
- import { A as RenamePostgresRlsPolicyCall, T as DropPostgresRlsPolicyCall, k as RenameIndexCall, p as CreatePostgresRlsPolicyCall } from "./op-factory-call-B3DVhHrC-DO122NQy.mjs";
6
- import { a as planIssues, c as renderPostgresSuppression, d as resolvePostgresNodeIssueControlPolicySubject, f as resolvePostgresNodeIssueCreationFactoryName, i as issueSchemaName, l as resolveNamespaceIdForDdlSchema, n as conflictForDisallowedCall, o as postgresNodeStorageCoordinate, r as issueNode, s as postgresPlannerStrategies, t as coalesceSubtreeIssues, u as resolvePostgresCallControlPolicySubject } from "./control-policy-ClKhTn_0-BOS85yPy.mjs";
7
- import { t as buildPostgresPlanDiff } from "./diff-database-schema-KDyPPk3N-Dd3tP56q.mjs";
8
- import { t as TypeScriptRenderablePostgresMigration } from "./planner-produced-postgres-migration-DLP-Hw6M-BUXxSd_i.mjs";
5
+ import { A as RenameIndexCall, T as DropPostgresRlsPolicyCall, j as RenamePostgresRlsPolicyCall, k as RenameCheckConstraintCall, p as CreatePostgresRlsPolicyCall } from "./op-factory-call-Brgoyup0-PVFU69JM.mjs";
6
+ import { a as planIssues, c as renderPostgresSuppression, d as resolvePostgresNodeIssueControlPolicySubject, f as resolvePostgresNodeIssueCreationFactoryName, i as issueSchemaName, l as resolveNamespaceIdForDdlSchema, n as conflictForDisallowedCall, o as postgresNodeStorageCoordinate, r as issueNode, s as postgresPlannerStrategies, t as coalesceSubtreeIssues, u as resolvePostgresCallControlPolicySubject } from "./control-policy-DHKvUOIr-DAyVIwLu.mjs";
7
+ import { t as buildPostgresPlanDiff } from "./diff-database-schema-ad-D4dAq-DV_k33bS.mjs";
8
+ import { t as TypeScriptRenderablePostgresMigration } from "./planner-produced-postgres-migration-B9P7yeDs-BgEtBGET.mjs";
9
9
  import { blindCast } from "@prisma/orm-framework/utils/casts";
10
10
  import { UNBOUND_NAMESPACE_ID } from "@prisma/orm-framework/components/ir";
11
11
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
12
12
  import { namingOf, parseWireName } from "@prisma/orm-family-sql/schema-ir/naming";
13
13
  import { issueOutcome } from "@prisma/orm-framework/components/control";
14
14
  import { controlPolicyForCall, extractCodecControlHooks, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventOperations, plannerFailure } from "@prisma/orm-family-sql/family/control";
15
- import { SqlIndexIR } from "@prisma/orm-family-sql/schema-ir/types";
16
- //#region ../../../3-targets/3-targets/postgres/dist/planner-DJety89h.mjs
15
+ import { SqlCheckConstraintIR, SqlIndexIR } from "@prisma/orm-family-sql/schema-ir/types";
16
+ //#region ../../../3-targets/3-targets/postgres/dist/planner-BycBXxqk.mjs
17
17
  /**
18
18
  * Resolves the live-database schema name for a given namespace
19
19
  * coordinate. Mirrors `resolveDdlSchemaForNamespace` in
@@ -150,7 +150,9 @@ var PostgresMigrationPlanner = class {
150
150
  schema: options.schema
151
151
  }), ...gated];
152
152
  const indexRenames = this.pairIndexRenames(options, schemaIssues);
153
- const plannableIssues = indexRenames.consumed.size === 0 ? schemaIssues : schemaIssues.filter((issue) => !indexRenames.consumed.has(issue));
153
+ const checkRenames = this.pairCheckRenames(options, schemaIssues);
154
+ const renameConsumed = /* @__PURE__ */ new Set([...indexRenames.consumed, ...checkRenames.consumed]);
155
+ const plannableIssues = renameConsumed.size === 0 ? schemaIssues : schemaIssues.filter((issue) => !renameConsumed.has(issue));
154
156
  const codecHooks = extractCodecControlHooks(options.frameworkComponents);
155
157
  const storageTypes = options.contract.storage.types ?? {};
156
158
  const relationalSchema = relationalNamespaceNode(options.schema, schemaName);
@@ -175,7 +177,7 @@ var PostgresMigrationPlanner = class {
175
177
  const schemaDiff = this.planPostgresSchemaDiff(options, policyDiffIssues);
176
178
  if (!result.ok || schemaDiff.conflicts.length > 0) return plannerFailure([...result.ok ? [] : result.failure, ...schemaDiff.conflicts]);
177
179
  const indexRenamePartition = partitionCallsByControlPolicy({
178
- calls: indexRenames.calls,
180
+ calls: [...indexRenames.calls, ...checkRenames.calls],
179
181
  contract: options.contract,
180
182
  resolveControlPolicySubject: (call) => resolvePostgresCallControlPolicySubject(call, options.contract),
181
183
  resolveFactoryName: (call) => call.factoryName
@@ -323,6 +325,87 @@ var PostgresMigrationPlanner = class {
323
325
  };
324
326
  }
325
327
  /**
328
+ * Check-constraint rename post-pass: a `not-found` and a `not-expected`
329
+ * check on the same table whose wire-name content hashes match but whose
330
+ * prefixes differ is a prefix-only rename, and collapses into one
331
+ * `ALTER TABLE … RENAME CONSTRAINT`.
332
+ *
333
+ * This is the index pass's hash-pairing phase and nothing else. There is
334
+ * deliberately no content-pairing phase: a live check body is whatever
335
+ * Postgres reprinted, so it never byte-matches the authored text, and
336
+ * pairing an exact-named live check by content would bless whatever
337
+ * predicate is actually live. Adoption of an old exact-named check stays
338
+ * drop + add.
339
+ *
340
+ * Runs only when the policy allows `widening` (rename's class). Without it
341
+ * the pass no-ops and the pair degrades to the slice-1 behavior: an add,
342
+ * plus a drop when `destructive` is allowed too.
343
+ */
344
+ pairCheckRenames(options, issues) {
345
+ const consumed = /* @__PURE__ */ new Set();
346
+ const calls = [];
347
+ if (!options.policy.allowedOperationClasses.includes("widening")) return {
348
+ calls,
349
+ consumed
350
+ };
351
+ const missing = [];
352
+ const extra = [];
353
+ for (const issue of issues) {
354
+ const node = issueNode(issue);
355
+ if (node === void 0 || !SqlCheckConstraintIR.is(node)) continue;
356
+ const ddlSchema = issue.path[1];
357
+ const tableName = issue.path[2];
358
+ if (ddlSchema === void 0 || tableName === void 0) continue;
359
+ if (issueOutcome(issue) === "not-found") missing.push({
360
+ issue,
361
+ node,
362
+ ddlSchema,
363
+ tableName
364
+ });
365
+ else if (issueOutcome(issue) === "not-expected") extra.push({
366
+ issue,
367
+ node,
368
+ ddlSchema,
369
+ tableName
370
+ });
371
+ }
372
+ if (missing.length === 0 || extra.length === 0) return {
373
+ calls,
374
+ consumed
375
+ };
376
+ const byName = (a, b) => a.node.name < b.node.name ? -1 : a.node.name > b.node.name ? 1 : 0;
377
+ const emissionSchema = (ddlSchema) => resolveNamespaceIdForDdlSchema(options.contract, ddlSchema) === UNBOUND_NAMESPACE_ID ? UNBOUND_NAMESPACE_ID : ddlSchema;
378
+ const pairingKey = (finding, hash) => JSON.stringify([
379
+ finding.ddlSchema,
380
+ finding.tableName,
381
+ hash
382
+ ]);
383
+ const sortedMissing = [...missing].sort(byName);
384
+ const extrasByHash = /* @__PURE__ */ new Map();
385
+ for (const finding of extra) {
386
+ const parsed = parseWireName(finding.node.name);
387
+ if (parsed === void 0) continue;
388
+ const key = pairingKey(finding, parsed.hash);
389
+ const group = extrasByHash.get(key) ?? [];
390
+ group.push(finding);
391
+ extrasByHash.set(key, group);
392
+ }
393
+ for (const group of extrasByHash.values()) group.sort(byName);
394
+ for (const missingFinding of sortedMissing) {
395
+ const parsed = parseWireName(missingFinding.node.name);
396
+ if (parsed === void 0) continue;
397
+ const candidate = extrasByHash.get(pairingKey(missingFinding, parsed.hash))?.shift();
398
+ if (candidate === void 0) continue;
399
+ consumed.add(missingFinding.issue);
400
+ consumed.add(candidate.issue);
401
+ calls.push(new RenameCheckConstraintCall(emissionSchema(missingFinding.ddlSchema), missingFinding.tableName, candidate.node.name, missingFinding.node.name));
402
+ }
403
+ return {
404
+ calls,
405
+ consumed
406
+ };
407
+ }
408
+ /**
326
409
  * Maps the RLS policy findings of the one combined tree diff
327
410
  * (`buildPostgresPlanDiff`, already ownership-filtered) into
328
411
  * `CREATE POLICY` / `DROP POLICY` / `ALTER POLICY … RENAME TO` ops — a
@@ -585,4 +668,4 @@ function policyNodeToContractPolicy(node) {
585
668
  //#endregion
586
669
  export { createPostgresMigrationPlanner as t };
587
670
 
588
- //# sourceMappingURL=planner-DJety89h-CNM5hBvV.mjs.map
671
+ //# sourceMappingURL=planner-BycBXxqk-DUExzUoz.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner-BycBXxqk-DUExzUoz.mjs","names":["#lowerer"],"sources":["../../../../3-targets/3-targets/postgres/dist/planner-BycBXxqk.mjs"],"sourcesContent":["import { t as DEFAULT_NAMESPACE_ID } from \"./namespace-ids-xtp_ZY86.mjs\";\nimport { _ as PostgresRlsPolicy, r as isPostgresSchema } from \"./postgres-schema-CFOxDfUX.mjs\";\nimport { i as PostgresDatabaseSchemaNode, n as PostgresPolicySchemaNode, r as PostgresNamespaceSchemaNode } from \"./postgres-role-schema-node-B8Z5i5D-.mjs\";\nimport { t as resolveDdlSchemaForNamespaceStorage } from \"./resolve-ddl-schema-BIy8VDVK.mjs\";\nimport { t as buildPostgresPlanDiff } from \"./diff-database-schema-ad-D4dAq.mjs\";\nimport { a as resolvePostgresNodeIssueCreationFactoryName, c as issueNode, d as postgresPlannerStrategies, f as postgresNodeStorageCoordinate, i as resolvePostgresNodeIssueControlPolicySubject, l as issueSchemaName, n as resolveNamespaceIdForDdlSchema, o as coalesceSubtreeIssues, r as resolvePostgresCallControlPolicySubject, s as conflictForDisallowedCall, t as renderPostgresSuppression, u as planIssues } from \"./control-policy-DHKvUOIr.mjs\";\nimport { A as RenameIndexCall, T as DropPostgresRlsPolicyCall, j as RenamePostgresRlsPolicyCall, k as RenameCheckConstraintCall, p as CreatePostgresRlsPolicyCall } from \"./op-factory-call-Brgoyup0.mjs\";\nimport { t as TypeScriptRenderablePostgresMigration } from \"./planner-produced-postgres-migration-B9P7yeDs.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { controlPolicyForCall, extractCodecControlHooks, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventOperations, plannerFailure } from \"@internal/family-sql/control\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { namingOf, parseWireName } from \"@internal/sql-schema-ir/naming\";\nimport { SqlCheckConstraintIR, SqlIndexIR } from \"@internal/sql-schema-ir/types\";\nimport { issueOutcome } from \"@internal/framework-components/control\";\n//#region src/core/migrations/verify-postgres-namespaces.ts\n/**\n* Resolves the live-database schema name for a given namespace\n* coordinate. Mirrors `resolveDdlSchemaForNamespace` in\n* `planner-strategies.ts` so the verifier's projection and the\n* planner's projection always agree — Postgres-aware namespaces (the\n* production path) dispatch to `ddlSchemaName(storage)`, and bare\n* object payloads (used by some tests) fall back to the coordinate\n* itself.\n*/\nfunction resolveDdlSchemaName(storage, namespaceId) {\n\tconst namespace = storage.namespaces[namespaceId];\n\tif (isPostgresSchema(namespace)) return namespace.ddlSchemaName(storage);\n\treturn namespaceId;\n}\n/**\n* Reads the introspected list of schema names from the database-root schema\n* node. `existingSchemas` is database-level, so it lives on the\n* `PostgresDatabaseSchemaNode` root — not on the per-schema namespace nodes.\n*\n* Defaults to the always-present `public` schema when the node is not the\n* database root — a fresh Postgres database always carries `public` (unless an\n* operator dropped it manually), so any verifier path that runs without an\n* enriched introspection still suppresses the redundant `CREATE SCHEMA\n* \"public\"`.\n*\n* Production introspection (`PostgresControlAdapter.introspect`) is the\n* authoritative source: it queries `pg_namespace` and sets `existingSchemas`\n* on the returned root. Tests that want to assert against a richer initial\n* state construct a `PostgresDatabaseSchemaNode` explicitly.\n*/\nfunction existingSchemasFromSchema(schema) {\n\tif (PostgresDatabaseSchemaNode.is(schema)) return schema.existingSchemas;\n\treturn [DEFAULT_NAMESPACE_ID];\n}\n/**\n* Emits a `postgres-namespace` `not-found` diff issue for every\n* contract-declared Postgres namespace whose live container does not yet\n* exist. The planner prepends these (node-typed, synthesized) to the\n* relational diff issues so a multi-schema plan emits `CREATE SCHEMA`\n* before the tables that need it — a planner-only concern (verify already\n* rejects via the `not-found` table issues a missing schema already\n* produces), so this is not part of the shared diff.\n*\n* A namespace's live container is the schema returned by its\n* polymorphic `ddlSchemaName(storage)` method — named schemas resolve\n* to their own id; the unbound singleton returns `UNBOUND_NAMESPACE_ID`\n* and is skipped explicitly (late-bound namespaces have no fixed DDL\n* schema). Issues are emitted only when the resolved name is a real,\n* creatable schema (not the unbound sentinel) and is missing from the\n* introspected list. `public` is suppressed implicitly because the\n* introspection (or its sensible default) always carries it.\n*\n* Each emitted issue's path is `['database', ddlName]` — an ancestor of\n* every table path under that schema, so it must never be run through\n* `coalesceSubtreeIssues` alongside the table diff (it would swallow the\n* table-level `not-found` issues that drive `CREATE TABLE`); the planner\n* adds these AFTER coalescing the relational issues, and they are not\n* subject to sibling-space ownership scoping (mirrors the retired\n* coordinate walk, which prepended namespace issues after that filter).\n*/\nfunction verifyPostgresNamespacePresence(input) {\n\tconst { contract, schema } = input;\n\tconst existing = new Set(existingSchemasFromSchema(schema));\n\tconst issues = [];\n\tconst namespaceIds = Object.keys(contract.storage.namespaces).sort();\n\tfor (const namespaceId of namespaceIds) {\n\t\tif (namespaceId === UNBOUND_NAMESPACE_ID) continue;\n\t\tconst ddlName = resolveDdlSchemaName(contract.storage, namespaceId);\n\t\tif (ddlName === UNBOUND_NAMESPACE_ID) continue;\n\t\tif (existing.has(ddlName)) continue;\n\t\tconst namespace = new PostgresNamespaceSchemaNode({\n\t\t\tschemaName: ddlName,\n\t\t\ttables: {}\n\t\t});\n\t\tissues.push({\n\t\t\tpath: [\"database\", ddlName],\n\t\t\texpected: namespace\n\t\t});\n\t}\n\treturn issues;\n}\n//#endregion\n//#region src/core/migrations/planner.ts\nfunction createPostgresMigrationPlanner(lowerer) {\n\treturn new PostgresMigrationPlanner(lowerer);\n}\n/**\n* Postgres migration planner — a thin wrapper over `planIssues`.\n*\n* `plan()` diffs the target contract against the live schema via the one\n* differ (`buildPostgresPlanDiff`, producing node-typed `SchemaDiffIssue[]`)\n* and delegates to `planIssues` with the unified `postgresPlannerStrategies`\n* list: NOT-NULL backfill, type-change, nullable-tightening, codec-hook\n* storage types, component-declared dependency installs, and\n* shared-temp-default / empty-table-guarded NOT-NULL add-column. The same\n* strategy list runs for `migration plan`, `db update`, and `db init`;\n* behavior diverges purely on `policy.allowedOperationClasses` (the\n* data-safe strategies short-circuit when `'data'` is excluded). The issue\n* planner applies operation-class policy gates and emits a single\n* `PostgresOpFactoryCall[]` that drives both the runtime-ops view (via\n* `renderOps`) and the `renderTypeScript()` authoring surface. RLS policy\n* drift (the structural half of the same one-differ tree) is handled\n* separately via `planPostgresSchemaDiff`.\n*/\nvar PostgresMigrationPlanner = class {\n\t#lowerer;\n\tconstructor(lowerer) {\n\t\tthis.#lowerer = lowerer;\n\t}\n\tplan(options) {\n\t\treturn this.planSql(options);\n\t}\n\temptyMigration(context, spaceId) {\n\t\treturn new TypeScriptRenderablePostgresMigration([], {\n\t\t\tfrom: context.fromHash,\n\t\t\tto: context.toHash\n\t\t}, spaceId, context.snapshotsImportPath, this.#lowerer);\n\t}\n\tplanSql(options) {\n\t\tconst schemaName = options.schemaName ?? Object.keys(options.contract.storage.namespaces).find((id) => id !== UNBOUND_NAMESPACE_ID) ?? UNBOUND_NAMESPACE_ID;\n\t\tconst policyResult = this.ensureAdditivePolicy(options.policy);\n\t\tif (policyResult) return policyResult;\n\t\tPostgresDatabaseSchemaNode.assert(options.schema);\n\t\tconst { issues: rawIssues } = buildPostgresPlanDiff({\n\t\t\tcontract: options.contract,\n\t\t\tactualSchema: options.schema,\n\t\t\tframeworkComponents: options.frameworkComponents\n\t\t});\n\t\tconst policyDiffIssues = rawIssues.filter((issue) => isPolicyDiffIssue(issue));\n\t\tconst relationalDiffIssues = rawIssues.filter((issue) => !isPolicyDiffIssue(issue));\n\t\tconst strict = options.policy.allowedOperationClasses.includes(\"widening\") || options.policy.allowedOperationClasses.includes(\"destructive\");\n\t\tconst owned = retainUnownedExtras(coalesceSubtreeIssues(relationalDiffIssues), options.ownership, options.contract);\n\t\tconst gated = strict ? owned : owned.filter((issue) => issueOutcome(issue) !== \"not-expected\");\n\t\tconst schemaIssues = [...verifyPostgresNamespacePresence({\n\t\t\tcontract: options.contract,\n\t\t\tschema: options.schema\n\t\t}), ...gated];\n\t\tconst indexRenames = this.pairIndexRenames(options, schemaIssues);\n\t\tconst checkRenames = this.pairCheckRenames(options, schemaIssues);\n\t\tconst renameConsumed = /* @__PURE__ */ new Set([...indexRenames.consumed, ...checkRenames.consumed]);\n\t\tconst plannableIssues = renameConsumed.size === 0 ? schemaIssues : schemaIssues.filter((issue) => !renameConsumed.has(issue));\n\t\tconst codecHooks = extractCodecControlHooks(options.frameworkComponents);\n\t\tconst storageTypes = options.contract.storage.types ?? {};\n\t\tconst relationalSchema = relationalNamespaceNode(options.schema, schemaName);\n\t\tconst issuePartition = partitionIssuesByControlPolicy({\n\t\t\tissues: plannableIssues,\n\t\t\tcontract: options.contract,\n\t\t\tresolveControlPolicySubject: (issue) => resolvePostgresNodeIssueControlPolicySubject(issue, options.contract),\n\t\t\tresolveCreationFactoryName: resolvePostgresNodeIssueCreationFactoryName\n\t\t});\n\t\tconst result = planIssues({\n\t\t\tissues: issuePartition.plannable,\n\t\t\ttoContract: options.contract,\n\t\t\tfromContract: options.fromContract,\n\t\t\tschemaName,\n\t\t\tcodecHooks,\n\t\t\tstorageTypes,\n\t\t\t...ifDefined(\"schema\", relationalSchema),\n\t\t\tpolicy: options.policy,\n\t\t\tframeworkComponents: options.frameworkComponents,\n\t\t\tstrategies: postgresPlannerStrategies\n\t\t});\n\t\tconst schemaDiff = this.planPostgresSchemaDiff(options, policyDiffIssues);\n\t\tif (!result.ok || schemaDiff.conflicts.length > 0) return plannerFailure([...result.ok ? [] : result.failure, ...schemaDiff.conflicts]);\n\t\tconst indexRenamePartition = partitionCallsByControlPolicy({\n\t\t\tcalls: [...indexRenames.calls, ...checkRenames.calls],\n\t\t\tcontract: options.contract,\n\t\t\tresolveControlPolicySubject: (call) => resolvePostgresCallControlPolicySubject(call, options.contract),\n\t\t\tresolveFactoryName: (call) => call.factoryName\n\t\t});\n\t\tconst schemaDiffPartition = partitionCallsByControlPolicy({\n\t\t\tcalls: schemaDiff.calls,\n\t\t\tcontract: options.contract,\n\t\t\tresolveControlPolicySubject: (call) => resolvePostgresCallControlPolicySubject(call, options.contract),\n\t\t\tresolveFactoryName: (call) => call.factoryName\n\t\t});\n\t\tconst fieldEventPartition = partitionCallsByControlPolicy({\n\t\t\tcalls: blindCast(planFieldEventOperations({\n\t\t\t\tpriorContract: options.fromContract,\n\t\t\t\tnewContract: options.contract,\n\t\t\t\tcodecHooks\n\t\t\t})),\n\t\t\tcontract: options.contract,\n\t\t\tresolveControlPolicySubject: (call) => resolvePostgresCallControlPolicySubject(call, options.contract),\n\t\t\tresolveFactoryName: (call) => call.factoryName\n\t\t});\n\t\tconst calls = [\n\t\t\t...result.value.calls,\n\t\t\t...indexRenamePartition.kept,\n\t\t\t...schemaDiffPartition.kept,\n\t\t\t...fieldEventPartition.kept\n\t\t];\n\t\tconst seenWarnings = /* @__PURE__ */ new Set();\n\t\tconst warnings = [\n\t\t\t...issuePartition.suppressions,\n\t\t\t...indexRenamePartition.suppressions,\n\t\t\t...schemaDiff.suppressions,\n\t\t\t...schemaDiffPartition.suppressions,\n\t\t\t...fieldEventPartition.suppressions\n\t\t].map((record) => renderPostgresSuppression(record, options.contract)).filter((warning) => {\n\t\t\tconst key = JSON.stringify(warning);\n\t\t\tif (seenWarnings.has(key)) return false;\n\t\t\tseenWarnings.add(key);\n\t\t\treturn true;\n\t\t});\n\t\treturn Object.freeze({\n\t\t\tkind: \"success\",\n\t\t\tplan: new TypeScriptRenderablePostgresMigration(calls, {\n\t\t\t\tfrom: options.fromContract?.storage.storageHash ?? null,\n\t\t\t\tto: options.contract.storage.storageHash\n\t\t\t}, options.spaceId, options.snapshotsImportPath, this.#lowerer),\n\t\t\t...warnings.length > 0 ? { warnings: Object.freeze(warnings) } : {}\n\t\t});\n\t}\n\t/**\n\t* Rename post-pass for indexes, per `(schema, table)`, widening-only,\n\t* deterministic by sorted names — the same structure as the policy pass\n\t* below (which stays untouched: policies pair by hash only).\n\t*\n\t* Hash pairing (prefix-only renames): extras whose live names parse as\n\t* wire names, grouped by `(schema, table, hash)`; missing nodes iterated\n\t* in sorted-name order consume the sorted-name-first candidate.\n\t*\n\t* Content pairing (exact→wire convergence), after hash pairing has\n\t* consumed its matches: the remaining wire-named-missing nodes\n\t* (`prefix` defined) against the remaining extras of any name shape,\n\t* paired iff content-equal (columns ordered-strict both-defined-or-\n\t* both-undefined, `unique`/`type` strict, `options` loose, bodies\n\t* byte-equal).\n\t*\n\t* Leftovers proceed as create/drop exactly as before; without the\n\t* widening allowance the pass is skipped and pairing degrades to the\n\t* additive half, like the policy pass.\n\t*/\n\tpairIndexRenames(options, issues) {\n\t\tconst consumed = /* @__PURE__ */ new Set();\n\t\tconst calls = [];\n\t\tif (!options.policy.allowedOperationClasses.includes(\"widening\")) return {\n\t\t\tcalls,\n\t\t\tconsumed\n\t\t};\n\t\tconst missing = [];\n\t\tconst extra = [];\n\t\tfor (const issue of issues) {\n\t\t\tconst node = issueNode(issue);\n\t\t\tif (node === void 0 || !SqlIndexIR.is(node)) continue;\n\t\t\tconst ddlSchema = issue.path[1];\n\t\t\tconst tableName = issue.path[2];\n\t\t\tif (ddlSchema === void 0 || tableName === void 0) continue;\n\t\t\tif (issueOutcome(issue) === \"not-found\") missing.push({\n\t\t\t\tissue,\n\t\t\t\tnode,\n\t\t\t\tddlSchema,\n\t\t\t\ttableName\n\t\t\t});\n\t\t\telse if (issueOutcome(issue) === \"not-expected\") extra.push({\n\t\t\t\tissue,\n\t\t\t\tnode,\n\t\t\t\tddlSchema,\n\t\t\t\ttableName\n\t\t\t});\n\t\t}\n\t\tif (missing.length === 0 || extra.length === 0) return {\n\t\t\tcalls,\n\t\t\tconsumed\n\t\t};\n\t\tconst byName = (a, b) => a.node.name < b.node.name ? -1 : a.node.name > b.node.name ? 1 : 0;\n\t\tconst emissionSchema = (ddlSchema) => resolveNamespaceIdForDdlSchema(options.contract, ddlSchema) === UNBOUND_NAMESPACE_ID ? UNBOUND_NAMESPACE_ID : ddlSchema;\n\t\tconst pairingKey = (finding, hash) => JSON.stringify([\n\t\t\tfinding.ddlSchema,\n\t\t\tfinding.tableName,\n\t\t\thash\n\t\t]);\n\t\tconst rename = (missingFinding, candidate) => {\n\t\t\tconsumed.add(missingFinding.issue);\n\t\t\tconsumed.add(candidate.issue);\n\t\t\tcalls.push(new RenameIndexCall(emissionSchema(missingFinding.ddlSchema), missingFinding.tableName, candidate.node.name, missingFinding.node.name));\n\t\t};\n\t\tconst sortedMissing = [...missing].sort(byName);\n\t\tconst extrasByHash = /* @__PURE__ */ new Map();\n\t\tfor (const finding of extra) {\n\t\t\tconst parsed = parseWireName(finding.node.name);\n\t\t\tif (parsed === void 0) continue;\n\t\t\tconst key = pairingKey(finding, parsed.hash);\n\t\t\tconst group = extrasByHash.get(key) ?? [];\n\t\t\tgroup.push(finding);\n\t\t\textrasByHash.set(key, group);\n\t\t}\n\t\tfor (const group of extrasByHash.values()) group.sort(byName);\n\t\tfor (const missingFinding of sortedMissing) {\n\t\t\tconst parsed = parseWireName(missingFinding.node.name);\n\t\t\tif (parsed === void 0) continue;\n\t\t\tconst candidate = extrasByHash.get(pairingKey(missingFinding, parsed.hash))?.shift();\n\t\t\tif (candidate === void 0) continue;\n\t\t\trename(missingFinding, candidate);\n\t\t}\n\t\tconst sortedExtras = [...extra].sort(byName);\n\t\tfor (const missingFinding of sortedMissing) {\n\t\t\tif (consumed.has(missingFinding.issue)) continue;\n\t\t\tif (missingFinding.node.prefix === void 0) continue;\n\t\t\tconst candidate = sortedExtras.find((extraFinding) => !consumed.has(extraFinding.issue) && extraFinding.ddlSchema === missingFinding.ddlSchema && extraFinding.tableName === missingFinding.tableName && missingFinding.node.contentEquals(extraFinding.node, {\n\t\t\t\tcolumnPresence: \"matching\",\n\t\t\t\tbodies: \"verbatim\"\n\t\t\t}));\n\t\t\tif (candidate === void 0) continue;\n\t\t\trename(missingFinding, candidate);\n\t\t}\n\t\treturn {\n\t\t\tcalls,\n\t\t\tconsumed\n\t\t};\n\t}\n\t/**\n\t* Check-constraint rename post-pass: a `not-found` and a `not-expected`\n\t* check on the same table whose wire-name content hashes match but whose\n\t* prefixes differ is a prefix-only rename, and collapses into one\n\t* `ALTER TABLE … RENAME CONSTRAINT`.\n\t*\n\t* This is the index pass's hash-pairing phase and nothing else. There is\n\t* deliberately no content-pairing phase: a live check body is whatever\n\t* Postgres reprinted, so it never byte-matches the authored text, and\n\t* pairing an exact-named live check by content would bless whatever\n\t* predicate is actually live. Adoption of an old exact-named check stays\n\t* drop + add.\n\t*\n\t* Runs only when the policy allows `widening` (rename's class). Without it\n\t* the pass no-ops and the pair degrades to the slice-1 behavior: an add,\n\t* plus a drop when `destructive` is allowed too.\n\t*/\n\tpairCheckRenames(options, issues) {\n\t\tconst consumed = /* @__PURE__ */ new Set();\n\t\tconst calls = [];\n\t\tif (!options.policy.allowedOperationClasses.includes(\"widening\")) return {\n\t\t\tcalls,\n\t\t\tconsumed\n\t\t};\n\t\tconst missing = [];\n\t\tconst extra = [];\n\t\tfor (const issue of issues) {\n\t\t\tconst node = issueNode(issue);\n\t\t\tif (node === void 0 || !SqlCheckConstraintIR.is(node)) continue;\n\t\t\tconst ddlSchema = issue.path[1];\n\t\t\tconst tableName = issue.path[2];\n\t\t\tif (ddlSchema === void 0 || tableName === void 0) continue;\n\t\t\tif (issueOutcome(issue) === \"not-found\") missing.push({\n\t\t\t\tissue,\n\t\t\t\tnode,\n\t\t\t\tddlSchema,\n\t\t\t\ttableName\n\t\t\t});\n\t\t\telse if (issueOutcome(issue) === \"not-expected\") extra.push({\n\t\t\t\tissue,\n\t\t\t\tnode,\n\t\t\t\tddlSchema,\n\t\t\t\ttableName\n\t\t\t});\n\t\t}\n\t\tif (missing.length === 0 || extra.length === 0) return {\n\t\t\tcalls,\n\t\t\tconsumed\n\t\t};\n\t\tconst byName = (a, b) => a.node.name < b.node.name ? -1 : a.node.name > b.node.name ? 1 : 0;\n\t\tconst emissionSchema = (ddlSchema) => resolveNamespaceIdForDdlSchema(options.contract, ddlSchema) === UNBOUND_NAMESPACE_ID ? UNBOUND_NAMESPACE_ID : ddlSchema;\n\t\tconst pairingKey = (finding, hash) => JSON.stringify([\n\t\t\tfinding.ddlSchema,\n\t\t\tfinding.tableName,\n\t\t\thash\n\t\t]);\n\t\tconst sortedMissing = [...missing].sort(byName);\n\t\tconst extrasByHash = /* @__PURE__ */ new Map();\n\t\tfor (const finding of extra) {\n\t\t\tconst parsed = parseWireName(finding.node.name);\n\t\t\tif (parsed === void 0) continue;\n\t\t\tconst key = pairingKey(finding, parsed.hash);\n\t\t\tconst group = extrasByHash.get(key) ?? [];\n\t\t\tgroup.push(finding);\n\t\t\textrasByHash.set(key, group);\n\t\t}\n\t\tfor (const group of extrasByHash.values()) group.sort(byName);\n\t\tfor (const missingFinding of sortedMissing) {\n\t\t\tconst parsed = parseWireName(missingFinding.node.name);\n\t\t\tif (parsed === void 0) continue;\n\t\t\tconst candidate = extrasByHash.get(pairingKey(missingFinding, parsed.hash))?.shift();\n\t\t\tif (candidate === void 0) continue;\n\t\t\tconsumed.add(missingFinding.issue);\n\t\t\tconsumed.add(candidate.issue);\n\t\t\tcalls.push(new RenameCheckConstraintCall(emissionSchema(missingFinding.ddlSchema), missingFinding.tableName, candidate.node.name, missingFinding.node.name));\n\t\t}\n\t\treturn {\n\t\t\tcalls,\n\t\t\tconsumed\n\t\t};\n\t}\n\t/**\n\t* Maps the RLS policy findings of the one combined tree diff\n\t* (`buildPostgresPlanDiff`, already ownership-filtered) into\n\t* `CREATE POLICY` / `DROP POLICY` / `ALTER POLICY … RENAME TO` ops — a\n\t* `not-equal` finding (an exact-named policy whose content drifted)\n\t* becomes drop + create, or a disallowed-call conflict when the policy\n\t* forbids the destructive drop. It\n\t* does not re-diff — it consumes exactly the policy-node subset of the\n\t* shared diff's issues. Enablement is NOT decided here: `ENABLE`/`DISABLE\n\t* ROW LEVEL SECURITY` derive from the table's marker-driven `rlsEnabled`\n\t* attribute diff on the relational side.\n\t*\n\t* Rename post-pass (the index pass's structure): hash pairing pairs a\n\t* `not-found` and a `not-expected` policy on the SAME table whose\n\t* wire-name content hashes match but prefixes differ (prefix-only rename);\n\t* content pairing then pairs remaining wire-named-missing policies against remaining\n\t* extras of any name shape by verbatim content (the node-owned `contentEquals` —\n\t* exact→wire adoption). Multi-candidate groups pair deterministically\n\t* by sorted name; leftovers proceed as create/drop; an exact-named\n\t* missing policy never content-pairs.\n\t*\n\t* The pairing runs only when the policy allows `widening` (rename's\n\t* class). Without it (db-init's additive-only set), pairing degrades\n\t* deliberately to the additive half: the new name is CREATEd and the old\n\t* policy survives live until a widening/destructive-allowed plan runs —\n\t* emitting an ungated widening rename would only fail at the runner's\n\t* class re-enforcement.\n\t*/\n\tplanPostgresSchemaDiff(options, filteredDiffIssues) {\n\t\tconst allowsDestructive = options.policy.allowedOperationClasses.includes(\"destructive\");\n\t\tconst allowsWidening = options.policy.allowedOperationClasses.includes(\"widening\");\n\t\tconst missing = [];\n\t\tconst extra = [];\n\t\tconst changed = [];\n\t\tfor (const issue of filteredDiffIssues) if (issueOutcome(issue) === \"not-equal\") {\n\t\t\tconst expected = issue.expected;\n\t\t\tPostgresPolicySchemaNode.assert(expected);\n\t\t\tchanged.push({\n\t\t\t\tnode: expected,\n\t\t\t\tschemaForTable: resolveDdlSchemaForNamespaceStorage(options.contract.storage, expected.namespaceId)\n\t\t\t});\n\t\t} else if (issueOutcome(issue) === \"not-found\") {\n\t\t\tconst expected = issue.expected;\n\t\t\tPostgresPolicySchemaNode.assert(expected);\n\t\t\tmissing.push({\n\t\t\t\tnode: expected,\n\t\t\t\tschemaForTable: resolveDdlSchemaForNamespaceStorage(options.contract.storage, expected.namespaceId)\n\t\t\t});\n\t\t} else if (issueOutcome(issue) === \"not-expected\") {\n\t\t\tconst actual = issue.actual;\n\t\t\tPostgresPolicySchemaNode.assert(actual);\n\t\t\textra.push({\n\t\t\t\tnode: actual,\n\t\t\t\tschemaForTable: resolveDdlSchemaForNamespaceStorage(options.contract.storage, actual.namespaceId)\n\t\t\t});\n\t\t}\n\t\tconst calls = [];\n\t\tconst conflicts = [];\n\t\tconst suppressions = [];\n\t\tconst renamedExtras = /* @__PURE__ */ new Set();\n\t\tconst renamedMissing = /* @__PURE__ */ new Set();\n\t\tconst pairingKey = (finding, hash) => JSON.stringify([\n\t\t\tfinding.schemaForTable,\n\t\t\tfinding.node.tableName,\n\t\t\thash\n\t\t]);\n\t\tif (allowsWidening) {\n\t\t\tconst extrasByGroup = /* @__PURE__ */ new Map();\n\t\t\tfor (const finding of extra) {\n\t\t\t\tconst parsed = parseWireName(finding.node.name);\n\t\t\t\tif (parsed === void 0) continue;\n\t\t\t\tconst key = pairingKey(finding, parsed.hash);\n\t\t\t\tconst group = extrasByGroup.get(key) ?? [];\n\t\t\t\tgroup.push(finding);\n\t\t\t\textrasByGroup.set(key, group);\n\t\t\t}\n\t\t\tfor (const group of extrasByGroup.values()) group.sort((a, b) => a.node.name < b.node.name ? -1 : a.node.name > b.node.name ? 1 : 0);\n\t\t\tconst sortedMissing = [...missing].sort((a, b) => a.node.name < b.node.name ? -1 : a.node.name > b.node.name ? 1 : 0);\n\t\t\tfor (const missingFinding of sortedMissing) {\n\t\t\t\tconst parsed = parseWireName(missingFinding.node.name);\n\t\t\t\tif (parsed === void 0) continue;\n\t\t\t\tconst candidate = extrasByGroup.get(pairingKey(missingFinding, parsed.hash))?.shift();\n\t\t\t\tif (candidate === void 0) continue;\n\t\t\t\trenamedExtras.add(candidate);\n\t\t\t\trenamedMissing.add(missingFinding);\n\t\t\t\tcalls.push(new RenamePostgresRlsPolicyCall(missingFinding.schemaForTable, missingFinding.node.tableName, candidate.node.name, missingFinding.node.name));\n\t\t\t}\n\t\t\tconst sortedExtras = [...extra].sort((a, b) => a.node.name < b.node.name ? -1 : a.node.name > b.node.name ? 1 : 0);\n\t\t\tfor (const missingFinding of sortedMissing) {\n\t\t\t\tif (renamedMissing.has(missingFinding)) continue;\n\t\t\t\tif (missingFinding.node.prefix === void 0) continue;\n\t\t\t\tconst candidate = sortedExtras.find((extraFinding) => !renamedExtras.has(extraFinding) && extraFinding.schemaForTable === missingFinding.schemaForTable && extraFinding.node.tableName === missingFinding.node.tableName && missingFinding.node.contentEquals(extraFinding.node));\n\t\t\t\tif (candidate === void 0) continue;\n\t\t\t\trenamedExtras.add(candidate);\n\t\t\t\trenamedMissing.add(missingFinding);\n\t\t\t\tcalls.push(new RenamePostgresRlsPolicyCall(missingFinding.schemaForTable, missingFinding.node.tableName, candidate.node.name, missingFinding.node.name));\n\t\t\t}\n\t\t}\n\t\tfor (const finding of changed) {\n\t\t\tconst replacement = {\n\t\t\t\tdrop: new DropPostgresRlsPolicyCall(finding.schemaForTable, finding.node.tableName, finding.node.name),\n\t\t\t\tcreate: new CreatePostgresRlsPolicyCall(finding.schemaForTable, finding.node.tableName, policyNodeToContractPolicy(finding.node))\n\t\t\t};\n\t\t\tconst graded = gradePolicyReplacement(replacement, options.contract, options.policy.allowedOperationClasses);\n\t\t\tif (graded.disposition === \"suppress\") {\n\t\t\t\tsuppressions.push(graded.record);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (graded.disposition === \"conflict\") {\n\t\t\t\tconflicts.push(graded.conflict);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcalls.push(replacement.drop);\n\t\t\tcalls.push(replacement.create);\n\t\t}\n\t\tfor (const finding of missing) {\n\t\t\tif (renamedMissing.has(finding)) continue;\n\t\t\tcalls.push(new CreatePostgresRlsPolicyCall(finding.schemaForTable, finding.node.tableName, policyNodeToContractPolicy(finding.node)));\n\t\t}\n\t\tif (allowsDestructive) for (const finding of extra) {\n\t\t\tif (renamedExtras.has(finding)) continue;\n\t\t\tcalls.push(new DropPostgresRlsPolicyCall(finding.schemaForTable, finding.node.tableName, finding.node.name));\n\t\t}\n\t\treturn {\n\t\t\tcalls,\n\t\t\tconflicts,\n\t\t\tsuppressions\n\t\t};\n\t}\n\tensureAdditivePolicy(policy) {\n\t\tif (!policy.allowedOperationClasses.includes(\"additive\")) return plannerFailure([{\n\t\t\tkind: \"unsupportedOperation\",\n\t\t\tsummary: \"Migration planner requires additive operations be allowed\",\n\t\t\twhy: \"The planner requires the \\\"additive\\\" operation class to be allowed in the policy.\"\n\t\t}]);\n\t\treturn null;\n\t}\n};\n/**\n* A diff issue whose node is an RLS policy — the structural half of the one\n* combined tree diff, routed to `planPostgresSchemaDiff` instead of\n* `planIssues`.\n*/\nfunction isPolicyDiffIssue(issue) {\n\tconst node = issue.expected ?? issue.actual;\n\treturn node !== void 0 && PostgresPolicySchemaNode.is(node);\n}\n/**\n* Drops a `not-expected` issue when it is a whole extra storage entity (a table\n* or a native enum) that some space in the composition owns. Each such node\n* yields its own storage coordinate (see {@link postgresNodeStorageCoordinate}),\n* so `declaresEntity` answers over the whole composition on one uniform\n* coordinate: a positive answer means a sibling owns this entity here — leave\n* it; a negative answer means a genuine orphan — drop it. A node with no storage\n* coordinate (a namespace, or a deeper column/constraint drift on an owned\n* table) is this space's own and is always kept. No oracle ⇒ keep everything.\n*/\nfunction retainUnownedExtras(issues, ownership, contract) {\n\tif (ownership === void 0) return issues;\n\treturn issues.filter((issue) => {\n\t\tif (issueOutcome(issue) !== \"not-expected\") return true;\n\t\tconst node = issueNode(issue);\n\t\tif (node === void 0) return true;\n\t\tconst coordinate = postgresNodeStorageCoordinate(node);\n\t\tif (coordinate === void 0) return true;\n\t\tconst ddlSchemaName = issueSchemaName(issue);\n\t\tif (ddlSchemaName === void 0) return true;\n\t\tconst namespaceId = resolveNamespaceIdForDdlSchema(contract, ddlSchemaName);\n\t\treturn !ownership.declaresEntity({\n\t\t\tnamespaceId,\n\t\t\t...coordinate\n\t\t});\n\t});\n}\n/**\n* Returns the one namespace node the relational strategy layer probes for\n* live-table existence and reads codec-hook context off — the namespace\n* matching the planner's resolved schema name, or the first namespace when\n* none matches. `undefined` when the tree has no namespaces, so the strategy\n* context uses its empty-schema default.\n*\n* The relational strategies key tables by bare name, so they can only probe one\n* namespace at a time; probing across every namespace at once is future work.\n*\n* Returns the real `PostgresNamespaceSchemaNode` reference rather than a\n* projection: `storageTypePlanCallStrategy` hands this same value to codec\n* `planTypeOperations` hooks as `schema`, and hooks read the Postgres-specific\n* `nativeEnums` field off it (via `PostgresNamespaceSchemaNode.is`) to decide\n* whether a native enum type already exists — a projection that only copies\n* `tables` would silently drop that signal. `StrategyContext.schema`'s\n* declared type (`SqlSchemaIR`, shared with SQLite's flat shape) doesn't\n* capture this, so the return is `blindCast` the same way `namespaceSchemaNodes`\n* in the family's relational walk already treats a namespace node as a\n* structurally-`SqlSchemaIR`-shaped value.\n*/\nfunction relationalNamespaceNode(schema, schemaName) {\n\tconst namespaceNodes = Object.values(schema.namespaces);\n\tconst namespaceNode = namespaceNodes.find((node) => node.schemaName === schemaName) ?? namespaceNodes[0];\n\tif (namespaceNode === void 0) return void 0;\n\treturn blindCast(namespaceNode);\n}\n/**\n* Grades a {@link PolicyReplacement} as one unit against the table's\n* control policy, BEFORE the pair becomes calls or a conflict. This runs\n* ahead of `partitionCallsByControlPolicy`, which later re-grades the\n* surviving calls per-call — a no-op here, since only managed units\n* survive this grading.\n*\n* A replacement is deliberately STRICTER than the shared\n* `callAllowedUnderControlPolicy` rule: `tolerated` permits whole-object\n* creation, but a replacement's create is the second half of a repair of\n* an existing object, not a new object — so ANY non-managed control\n* (external, observed, tolerated) suppresses the whole unit. Drift on an\n* object the plan does not manage is reported, never repaired; the\n* suppression subject names the drifted policy (`rlsPolicy`) so the\n* report says which policy drifted, matching the conflict path's\n* `location.rlsPolicy`.\n*/\nfunction gradePolicyReplacement(replacement, contract, allowedOperationClasses) {\n\tconst subject = resolvePostgresCallControlPolicySubject(replacement.drop, contract);\n\tconst controlPolicy = controlPolicyForCall(subject, contract.defaultControlPolicy);\n\tif (controlPolicy !== \"managed\") return {\n\t\tdisposition: \"suppress\",\n\t\trecord: {\n\t\t\tsubject: subject === void 0 ? void 0 : {\n\t\t\t\t...subject,\n\t\t\t\trlsPolicy: replacement.drop.policyName\n\t\t\t},\n\t\t\tpolicy: controlPolicy,\n\t\t\tfactoryName: void 0,\n\t\t\tcreatesNewObject: false\n\t\t}\n\t};\n\tif (!allowedOperationClasses.includes(\"destructive\")) return {\n\t\tdisposition: \"conflict\",\n\t\tconflict: conflictForDisallowedCall(replacement.drop, allowedOperationClasses)\n\t};\n\treturn { disposition: \"plan\" };\n}\n/**\n* Rebuilds the `PostgresRlsPolicy` contract entity `CreatePostgresRlsPolicyCall`\n* carries (its `renderTypeScript`/`createRlsPolicy` paths serialize the whole\n* entity, `namespaceId` included). This reconstructs rather than looking the\n* original up in the contract on purpose: the diff node's `namespaceId` is the\n* *resolved DDL schema* (set when the expected tree was built), which is the\n* value the emitted op must carry; the contract-stored entity holds the raw,\n* pre-resolution coordinate, so a lookup would change the migration output.\n*/\nfunction policyNodeToContractPolicy(node) {\n\treturn new PostgresRlsPolicy({\n\t\tnaming: namingOf(node.name, node.prefix),\n\t\ttableName: node.tableName,\n\t\tnamespaceId: node.namespaceId,\n\t\toperation: node.operation,\n\t\troles: [...node.roles],\n\t\tusing: node.using,\n\t\twithCheck: node.withCheck,\n\t\tpermissive: node.permissive\n\t});\n}\n//#endregion\nexport { createPostgresMigrationPlanner as t };\n\n//# sourceMappingURL=planner-BycBXxqk.mjs.map"],"mappings":"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"}