@prisma-next/target-postgres 0.16.0-dev.3 → 0.16.0-dev.30

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 (166) hide show
  1. package/README.md +1 -1
  2. package/dist/{authoring-34L18kA1.mjs → authoring-DnO1B0N9.mjs} +29 -18
  3. package/dist/authoring-DnO1B0N9.mjs.map +1 -0
  4. package/dist/canonicalize-C7zKHw8m.mjs +59 -0
  5. package/dist/canonicalize-C7zKHw8m.mjs.map +1 -0
  6. package/dist/{canonicalize-D1F4vUnP.d.mts → canonicalize-CQlxSR4D.d.mts} +3 -18
  7. package/dist/canonicalize-CQlxSR4D.d.mts.map +1 -0
  8. package/dist/{codec-types-CQ07nOz-.d.mts → codec-types-DdoPc2dy.d.mts} +3 -2
  9. package/dist/codec-types-DdoPc2dy.d.mts.map +1 -0
  10. package/dist/codec-types.d.mts +1 -1
  11. package/dist/{codecs-G4DTY0F_.d.mts → codecs-CGE5dh94.d.mts} +7 -2
  12. package/dist/codecs-CGE5dh94.d.mts.map +1 -0
  13. package/dist/{codecs-TCsGgW-Y.mjs → codecs-Deand7sy.mjs} +84 -26
  14. package/dist/codecs-Deand7sy.mjs.map +1 -0
  15. package/dist/codecs.d.mts +2 -2
  16. package/dist/codecs.mjs +2 -2
  17. package/dist/contract-free.d.mts +1 -1
  18. package/dist/contract-free.d.mts.map +1 -1
  19. package/dist/contract-free.mjs +2 -2
  20. package/dist/{control-policy-CZKdMztu.mjs → control-policy-DEwdS3oK.mjs} +29 -29
  21. package/dist/control-policy-DEwdS3oK.mjs.map +1 -0
  22. package/dist/control.mjs +91 -239
  23. package/dist/control.mjs.map +1 -1
  24. package/dist/data-transform-BOWpliq8.mjs.map +1 -1
  25. package/dist/{ddl-DHXKzQ99.mjs → ddl-BQC6u-L9.mjs} +28 -4
  26. package/dist/{ddl-DHXKzQ99.mjs.map → ddl-BQC6u-L9.mjs.map} +1 -1
  27. package/dist/ddl.d.mts +3 -3
  28. package/dist/ddl.mjs +2 -2
  29. package/dist/{descriptor-meta-qubYaxQA.mjs → descriptor-meta-DGlJurgA.mjs} +4 -4
  30. package/dist/{descriptor-meta-qubYaxQA.mjs.map → descriptor-meta-DGlJurgA.mjs.map} +1 -1
  31. package/dist/{diff-database-schema-C-hnJ5mr.mjs → diff-database-schema-qRPwuYBH.mjs} +37 -15
  32. package/dist/diff-database-schema-qRPwuYBH.mjs.map +1 -0
  33. package/dist/diff-database-schema.mjs +1 -1
  34. package/dist/{errors-ByDS0xJL.mjs → errors-DBSNx7EJ.mjs} +6 -2
  35. package/dist/errors-DBSNx7EJ.mjs.map +1 -0
  36. package/dist/errors.d.mts +4 -1
  37. package/dist/errors.d.mts.map +1 -1
  38. package/dist/errors.mjs +2 -2
  39. package/dist/issue-planner.d.mts +2 -2
  40. package/dist/issue-planner.d.mts.map +1 -1
  41. package/dist/issue-planner.mjs +1 -1
  42. package/dist/migration.d.mts +2 -2
  43. package/dist/migration.mjs +2 -2
  44. package/dist/{nodes-DJC5B8Id.mjs → nodes-04EILM-z.mjs} +65 -2
  45. package/dist/nodes-04EILM-z.mjs.map +1 -0
  46. package/dist/{nodes-CQzM2hR0.d.mts → nodes-DjCsN-uv.d.mts} +69 -4
  47. package/dist/nodes-DjCsN-uv.d.mts.map +1 -0
  48. package/dist/{op-factory-call-DT7kdjVP.d.mts → op-factory-call-0TB5XNij.d.mts} +46 -8
  49. package/dist/op-factory-call-0TB5XNij.d.mts.map +1 -0
  50. package/dist/{op-factory-call-DuRj7WXX.mjs → op-factory-call-CIaPDDUc.mjs} +147 -64
  51. package/dist/op-factory-call-CIaPDDUc.mjs.map +1 -0
  52. package/dist/op-factory-call.d.mts +2 -2
  53. package/dist/op-factory-call.mjs +2 -2
  54. package/dist/pack.d.mts +2 -2
  55. package/dist/pack.d.mts.map +1 -1
  56. package/dist/pack.mjs +1 -1
  57. package/dist/{planner-DPGxFcXo.mjs → planner-BhnkIJX-.mjs} +121 -13
  58. package/dist/planner-BhnkIJX-.mjs.map +1 -0
  59. package/dist/{planner-ddl-builders-BKlmGDJl.mjs → planner-ddl-builders-CVo3L7Nd.mjs} +12 -7
  60. package/dist/planner-ddl-builders-CVo3L7Nd.mjs.map +1 -0
  61. package/dist/planner-ddl-builders.d.mts.map +1 -1
  62. package/dist/planner-ddl-builders.mjs +1 -1
  63. package/dist/{planner-produced-postgres-migration-CFDpqWWE.mjs → planner-produced-postgres-migration-BE3EJIRK.mjs} +9 -6
  64. package/dist/planner-produced-postgres-migration-BE3EJIRK.mjs.map +1 -0
  65. package/dist/{planner-produced-postgres-migration-C-dwGdb2.d.mts → planner-produced-postgres-migration-CRAHl6ak.d.mts} +3 -3
  66. package/dist/planner-produced-postgres-migration-CRAHl6ak.d.mts.map +1 -0
  67. package/dist/planner-produced-postgres-migration.d.mts +1 -1
  68. package/dist/planner-produced-postgres-migration.mjs +1 -1
  69. package/dist/{planner-schema-lookup-CiVaAQP-.mjs → planner-schema-lookup-D3Y_OL-C.mjs} +3 -3
  70. package/dist/planner-schema-lookup-D3Y_OL-C.mjs.map +1 -0
  71. package/dist/planner-schema-lookup.mjs +1 -1
  72. package/dist/{planner-sql-checks-BuB877wH.mjs → planner-sql-checks-CmiQ6Nei.mjs} +3 -3
  73. package/dist/{planner-sql-checks-BuB877wH.mjs.map → planner-sql-checks-CmiQ6Nei.mjs.map} +1 -1
  74. package/dist/planner-sql-checks.mjs +1 -1
  75. package/dist/planner.d.mts +27 -1
  76. package/dist/planner.d.mts.map +1 -1
  77. package/dist/planner.mjs +2 -2
  78. package/dist/{postgres-contract-view-DebHMqGR.mjs → postgres-contract-view-BeIEyZfD.mjs} +3 -3
  79. package/dist/{postgres-contract-view-DebHMqGR.mjs.map → postgres-contract-view-BeIEyZfD.mjs.map} +1 -1
  80. package/dist/{postgres-migration-C_OPFhIF.mjs → postgres-migration--BzvpA92.mjs} +9 -6
  81. package/dist/postgres-migration--BzvpA92.mjs.map +1 -0
  82. package/dist/{postgres-migration-DLIvzHjX.d.mts → postgres-migration-BXelnqHO.d.mts} +15 -10
  83. package/dist/postgres-migration-BXelnqHO.d.mts.map +1 -0
  84. package/dist/{postgres-schema-CewLYHB7.mjs → postgres-schema-CTplQZDK.mjs} +2 -2
  85. package/dist/{postgres-schema-CewLYHB7.mjs.map → postgres-schema-CTplQZDK.mjs.map} +1 -1
  86. package/dist/{render-ops-BREh1kHe.mjs → render-ops-TcY9XEkz.mjs} +7 -2
  87. package/dist/render-ops-TcY9XEkz.mjs.map +1 -0
  88. package/dist/render-ops.d.mts.map +1 -1
  89. package/dist/render-ops.mjs +1 -1
  90. package/dist/{render-typescript-7yqILcwr.mjs → render-typescript-Ta7_6CGf.mjs} +20 -8
  91. package/dist/render-typescript-Ta7_6CGf.mjs.map +1 -0
  92. package/dist/render-typescript.d.mts +2 -0
  93. package/dist/render-typescript.d.mts.map +1 -1
  94. package/dist/render-typescript.mjs +1 -1
  95. package/dist/{resolve-ddl-schema-D0wi_P9Q.mjs → resolve-ddl-schema-BAsJEKW8.mjs} +2 -2
  96. package/dist/{resolve-ddl-schema-D0wi_P9Q.mjs.map → resolve-ddl-schema-BAsJEKW8.mjs.map} +1 -1
  97. package/dist/rls-canonicalize.d.mts +2 -26
  98. package/dist/rls-canonicalize.mjs +2 -2
  99. package/dist/runtime.mjs +1 -1
  100. package/dist/schema-ir-annotations.mjs +1 -1
  101. package/dist/{sql-utils-SU4FDvIV.mjs → sql-utils-B2lzkKfP.mjs} +22 -19
  102. package/dist/sql-utils-B2lzkKfP.mjs.map +1 -0
  103. package/dist/sql-utils.d.mts +4 -9
  104. package/dist/sql-utils.d.mts.map +1 -1
  105. package/dist/sql-utils.mjs +2 -2
  106. package/dist/types.mjs +1 -1
  107. package/package.json +20 -20
  108. package/src/contract-free/ddl.ts +47 -0
  109. package/src/core/authoring.ts +35 -26
  110. package/src/core/codec-helpers.ts +69 -16
  111. package/src/core/codec-type-map.ts +2 -0
  112. package/src/core/codecs.ts +29 -14
  113. package/src/core/ddl/nodes.ts +104 -0
  114. package/src/core/errors.ts +30 -0
  115. package/src/core/migrations/column-ddl-rendering.ts +2 -1
  116. package/src/core/migrations/contract-to-postgres-database-schema-node.ts +38 -14
  117. package/src/core/migrations/issue-planner.ts +40 -13
  118. package/src/core/migrations/op-factory-call.ts +189 -44
  119. package/src/core/migrations/operations/constraints.ts +3 -2
  120. package/src/core/migrations/operations/data-transform.ts +1 -1
  121. package/src/core/migrations/operations/indexes.ts +80 -32
  122. package/src/core/migrations/operations/rls.ts +4 -1
  123. package/src/core/migrations/planner-ddl-builders.ts +16 -6
  124. package/src/core/migrations/planner-produced-postgres-migration.ts +8 -1
  125. package/src/core/migrations/planner-schema-lookup.ts +2 -2
  126. package/src/core/migrations/planner.ts +163 -5
  127. package/src/core/migrations/postgres-migration.ts +26 -8
  128. package/src/core/migrations/render-ops.ts +4 -1
  129. package/src/core/migrations/render-typescript.ts +20 -8
  130. package/src/core/migrations/runner.ts +7 -3
  131. package/src/core/psl-infer/infer-psl-contract.ts +36 -185
  132. package/src/core/psl-infer/postgres-type-map.ts +43 -65
  133. package/src/core/rls/canonicalize.ts +4 -21
  134. package/src/core/sql-utils.ts +16 -27
  135. package/src/exports/codecs.ts +2 -0
  136. package/src/exports/ddl.ts +4 -0
  137. package/src/exports/errors.ts +1 -1
  138. package/src/exports/op-factory-call.ts +1 -0
  139. package/src/exports/rls-canonicalize.ts +0 -6
  140. package/src/exports/sql-utils.ts +0 -1
  141. package/dist/authoring-34L18kA1.mjs.map +0 -1
  142. package/dist/canonicalize-D1F4vUnP.d.mts.map +0 -1
  143. package/dist/codec-types-CQ07nOz-.d.mts.map +0 -1
  144. package/dist/codecs-G4DTY0F_.d.mts.map +0 -1
  145. package/dist/codecs-TCsGgW-Y.mjs.map +0 -1
  146. package/dist/control-policy-CZKdMztu.mjs.map +0 -1
  147. package/dist/diff-database-schema-C-hnJ5mr.mjs.map +0 -1
  148. package/dist/errors-ByDS0xJL.mjs.map +0 -1
  149. package/dist/nodes-CQzM2hR0.d.mts.map +0 -1
  150. package/dist/nodes-DJC5B8Id.mjs.map +0 -1
  151. package/dist/op-factory-call-DT7kdjVP.d.mts.map +0 -1
  152. package/dist/op-factory-call-DuRj7WXX.mjs.map +0 -1
  153. package/dist/planner-DPGxFcXo.mjs.map +0 -1
  154. package/dist/planner-ddl-builders-BKlmGDJl.mjs.map +0 -1
  155. package/dist/planner-produced-postgres-migration-C-dwGdb2.d.mts.map +0 -1
  156. package/dist/planner-produced-postgres-migration-CFDpqWWE.mjs.map +0 -1
  157. package/dist/planner-schema-lookup-CiVaAQP-.mjs.map +0 -1
  158. package/dist/postgres-migration-C_OPFhIF.mjs.map +0 -1
  159. package/dist/postgres-migration-DLIvzHjX.d.mts.map +0 -1
  160. package/dist/render-ops-BREh1kHe.mjs.map +0 -1
  161. package/dist/render-typescript-7yqILcwr.mjs.map +0 -1
  162. package/dist/rls-canonicalize.d.mts.map +0 -1
  163. package/dist/sql-utils-SU4FDvIV.mjs.map +0 -1
  164. package/dist/wire-name-DbQ9-2RC.mjs +0 -104
  165. package/dist/wire-name-DbQ9-2RC.mjs.map +0 -1
  166. package/src/core/rls/wire-name.ts +0 -33
@@ -1,6 +1,6 @@
1
- import { P as createExtension } from "./op-factory-call-DuRj7WXX.mjs";
1
+ import { F as createExtension } from "./op-factory-call-CIaPDDUc.mjs";
2
2
  import { t as dataTransform } from "./data-transform-BOWpliq8.mjs";
3
- import { t as PostgresMigration } from "./postgres-migration-C_OPFhIF.mjs";
3
+ import { t as PostgresMigration } from "./postgres-migration--BzvpA92.mjs";
4
4
  import { checkExpression, col, fn, foreignKey, lit, primaryKey, unique } from "@prisma-next/sql-relational-core/contract-free";
5
5
  import { placeholder } from "@prisma-next/errors/migration";
6
6
  import { MigrationCLI } from "@prisma-next/cli/migration-cli";
@@ -172,6 +172,69 @@ var PostgresAlterPolicyRename = class extends PostgresDdlNode {
172
172
  return visitor.alterPolicyRename(this);
173
173
  }
174
174
  };
175
+ var PostgresCreateIndex = class extends PostgresDdlNode {
176
+ kind = "create-index";
177
+ /** Absent ⇔ unqualified (the unbound namespace — `search_path` decides). */
178
+ schema;
179
+ table;
180
+ name;
181
+ unique;
182
+ elements;
183
+ type;
184
+ options;
185
+ /**
186
+ * Partial-index predicate (WHERE body, without the keyword). Inserted
187
+ * verbatim, never quoted or escaped.
188
+ */
189
+ where;
190
+ constructor(options) {
191
+ super();
192
+ this.schema = options.schema;
193
+ this.table = options.table;
194
+ this.name = options.name;
195
+ this.unique = options.unique;
196
+ this.elements = "columns" in options.elements ? { columns: Object.freeze([...options.elements.columns]) } : { expression: options.elements.expression };
197
+ this.type = options.type;
198
+ this.options = options.options;
199
+ this.where = options.where;
200
+ this.freeze();
201
+ }
202
+ accept(visitor) {
203
+ return visitor.createIndex(this);
204
+ }
205
+ };
206
+ var PostgresDropIndex = class extends PostgresDdlNode {
207
+ kind = "drop-index";
208
+ /** Absent ⇔ unqualified (the unbound namespace). */
209
+ schema;
210
+ name;
211
+ constructor(options) {
212
+ super();
213
+ this.schema = options.schema;
214
+ this.name = options.name;
215
+ this.freeze();
216
+ }
217
+ accept(visitor) {
218
+ return visitor.dropIndex(this);
219
+ }
220
+ };
221
+ var PostgresAlterIndexRename = class extends PostgresDdlNode {
222
+ kind = "alter-index-rename";
223
+ /** Absent ⇔ unqualified (the unbound namespace). */
224
+ schema;
225
+ from;
226
+ to;
227
+ constructor(options) {
228
+ super();
229
+ this.schema = options.schema;
230
+ this.from = options.from;
231
+ this.to = options.to;
232
+ this.freeze();
233
+ }
234
+ accept(visitor) {
235
+ return visitor.alterIndexRename(this);
236
+ }
237
+ };
175
238
  var PostgresDisableRowLevelSecurity = class extends PostgresDdlNode {
176
239
  kind = "disable-row-level-security";
177
240
  schema;
@@ -187,6 +250,6 @@ var PostgresDisableRowLevelSecurity = class extends PostgresDdlNode {
187
250
  }
188
251
  };
189
252
  //#endregion
190
- export { PostgresCreatePolicy as a, PostgresCreateType as c, PostgresDropPolicy as d, PostgresDropType as f, PostgresAlterTable as i, PostgresDdlNode as l, DropDefaultAction as n, PostgresCreateSchema as o, PostgresAlterPolicyRename as r, PostgresCreateTable as s, AddColumnAction as t, PostgresDisableRowLevelSecurity as u };
253
+ export { PostgresAlterTable as a, PostgresCreateSchema as c, PostgresDdlNode as d, PostgresDisableRowLevelSecurity as f, PostgresDropType as h, PostgresAlterPolicyRename as i, PostgresCreateTable as l, PostgresDropPolicy as m, DropDefaultAction as n, PostgresCreateIndex as o, PostgresDropIndex as p, PostgresAlterIndexRename as r, PostgresCreatePolicy as s, AddColumnAction as t, PostgresCreateType as u };
191
254
 
192
- //# sourceMappingURL=nodes-DJC5B8Id.mjs.map
255
+ //# sourceMappingURL=nodes-04EILM-z.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodes-04EILM-z.mjs","names":[],"sources":["../src/core/ddl/nodes.ts"],"sourcesContent":["import {\n type DdlColumn,\n DdlNode,\n type DdlTableConstraint,\n} from '@prisma-next/sql-relational-core/ast';\nimport type { RlsPolicyOperation } from '../rls/canonicalize';\n\n// ---------------------------------------------------------------------------\n// AlterTableAction — nested polymorphic hierarchy\n// ---------------------------------------------------------------------------\n\nexport interface AlterTableActionVisitor<R> {\n addColumn(action: AddColumnAction): R;\n dropDefault(action: DropDefaultAction): R;\n}\n\nexport abstract class AlterTableAction {\n abstract readonly kind: string;\n abstract accept<R>(visitor: AlterTableActionVisitor<R>): R;\n}\n\nexport class AddColumnAction extends AlterTableAction {\n readonly kind = 'add-column' as const;\n readonly column: DdlColumn;\n\n constructor(column: DdlColumn) {\n super();\n this.column = column;\n Object.freeze(this);\n }\n\n override accept<R>(visitor: AlterTableActionVisitor<R>): R {\n return visitor.addColumn(this);\n }\n}\n\nexport class DropDefaultAction extends AlterTableAction {\n readonly kind = 'drop-default' as const;\n readonly columnName: string;\n\n constructor(columnName: string) {\n super();\n this.columnName = columnName;\n Object.freeze(this);\n }\n\n override accept<R>(visitor: AlterTableActionVisitor<R>): R {\n return visitor.dropDefault(this);\n }\n}\n\n/**\n * The set of ALTER TABLE subactions currently expressible as typed DDL.\n *\n * The remaining actions — SetDefault, SetNotNull, DropNotNull,\n * AlterColumnType — are still emitted as raw SQL by `operations/columns.ts`\n * and join this union as they are converted to typed DDL. Until then it is\n * intentionally partial: only the ALTER subactions used by the\n * already-converted ops (AddColumn, DropDefault) appear here.\n */\nexport type AnyAlterTableAction = AddColumnAction | DropDefaultAction;\n\n// ---------------------------------------------------------------------------\n// Top-level DDL visitor\n// ---------------------------------------------------------------------------\n\nexport interface PostgresDdlVisitor<R> {\n createTable(node: PostgresCreateTable): R;\n createSchema(node: PostgresCreateSchema): R;\n createType(node: PostgresCreateType): R;\n dropType(node: PostgresDropType): R;\n alterTable(node: PostgresAlterTable): R;\n createPolicy(node: PostgresCreatePolicy): R;\n dropPolicy(node: PostgresDropPolicy): R;\n alterPolicyRename(node: PostgresAlterPolicyRename): R;\n createIndex(node: PostgresCreateIndex): R;\n dropIndex(node: PostgresDropIndex): R;\n alterIndexRename(node: PostgresAlterIndexRename): R;\n disableRowLevelSecurity(node: PostgresDisableRowLevelSecurity): R;\n}\n\nexport abstract class PostgresDdlNode extends DdlNode {\n abstract accept<R>(visitor: PostgresDdlVisitor<R>): R;\n}\n\nfunction freezeDdlColumns(columns: readonly DdlColumn[]): ReadonlyArray<DdlColumn> {\n return Object.freeze([...columns]);\n}\n\nfunction freezeConstraints(\n constraints: readonly DdlTableConstraint[] | undefined,\n): ReadonlyArray<DdlTableConstraint> | undefined {\n return constraints ? Object.freeze([...constraints]) : undefined;\n}\n\nexport class PostgresCreateTable extends PostgresDdlNode {\n readonly kind = 'create-table' as const;\n readonly table: string;\n readonly schema: string | undefined;\n readonly ifNotExists: boolean | undefined;\n readonly columns: ReadonlyArray<DdlColumn>;\n readonly constraints: ReadonlyArray<DdlTableConstraint> | undefined;\n\n constructor(options: {\n readonly table: string;\n readonly schema?: string;\n readonly ifNotExists?: boolean;\n readonly columns: readonly DdlColumn[];\n readonly constraints?: readonly DdlTableConstraint[];\n }) {\n super();\n this.table = options.table;\n this.schema = options.schema;\n this.ifNotExists = options.ifNotExists;\n this.columns = freezeDdlColumns(options.columns);\n this.constraints = freezeConstraints(options.constraints);\n this.freeze();\n }\n\n override accept<R>(visitor: PostgresDdlVisitor<R>): R {\n return visitor.createTable(this);\n }\n}\n\nexport class PostgresCreateSchema extends PostgresDdlNode {\n readonly kind = 'create-schema' as const;\n readonly schema: string;\n readonly ifNotExists: boolean | undefined;\n\n constructor(options: { readonly schema: string; readonly ifNotExists?: boolean }) {\n super();\n this.schema = options.schema;\n this.ifNotExists = options.ifNotExists;\n this.freeze();\n }\n\n override accept<R>(visitor: PostgresDdlVisitor<R>): R {\n return visitor.createSchema(this);\n }\n}\n\nexport class PostgresCreateType extends PostgresDdlNode {\n readonly kind = 'create-type' as const;\n readonly schema: string | undefined;\n readonly name: string;\n readonly values: ReadonlyArray<string>;\n\n constructor(options: {\n readonly schema?: string;\n readonly name: string;\n readonly values: readonly string[];\n }) {\n super();\n this.schema = options.schema;\n this.name = options.name;\n this.values = Object.freeze([...options.values]);\n this.freeze();\n }\n\n override accept<R>(visitor: PostgresDdlVisitor<R>): R {\n return visitor.createType(this);\n }\n}\n\nexport class PostgresDropType extends PostgresDdlNode {\n readonly kind = 'drop-type' as const;\n readonly schema: string | undefined;\n readonly name: string;\n\n constructor(options: { readonly schema?: string; readonly name: string }) {\n super();\n this.schema = options.schema;\n this.name = options.name;\n this.freeze();\n }\n\n override accept<R>(visitor: PostgresDdlVisitor<R>): R {\n return visitor.dropType(this);\n }\n}\n\nexport class PostgresAlterTable extends PostgresDdlNode {\n readonly kind = 'alter-table' as const;\n readonly table: string;\n readonly schema: string | undefined;\n readonly actions: ReadonlyArray<AnyAlterTableAction>;\n\n constructor(options: {\n readonly table: string;\n readonly schema?: string;\n readonly actions: readonly AnyAlterTableAction[];\n }) {\n super();\n this.table = options.table;\n this.schema = options.schema;\n this.actions = Object.freeze([...options.actions]);\n this.freeze();\n }\n\n override accept<R>(visitor: PostgresDdlVisitor<R>): R {\n return visitor.alterTable(this);\n }\n}\n\nexport type { RlsPolicyOperation };\n\nexport class PostgresCreatePolicy extends PostgresDdlNode {\n readonly kind = 'create-policy' as const;\n readonly schema: string;\n readonly table: string;\n readonly name: string;\n readonly permissive: boolean;\n readonly operation: RlsPolicyOperation;\n readonly roles: ReadonlyArray<string>;\n readonly using: string | undefined;\n readonly withCheck: string | undefined;\n\n constructor(options: {\n readonly schema: string;\n readonly table: string;\n readonly name: string;\n readonly permissive: boolean;\n readonly operation: RlsPolicyOperation;\n readonly roles: readonly string[];\n readonly using?: string;\n readonly withCheck?: string;\n }) {\n super();\n this.schema = options.schema;\n this.table = options.table;\n this.name = options.name;\n this.permissive = options.permissive;\n this.operation = options.operation;\n this.roles = Object.freeze([...options.roles]);\n this.using = options.using;\n this.withCheck = options.withCheck;\n this.freeze();\n }\n\n override accept<R>(visitor: PostgresDdlVisitor<R>): R {\n return visitor.createPolicy(this);\n }\n}\n\nexport class PostgresDropPolicy extends PostgresDdlNode {\n readonly kind = 'drop-policy' as const;\n readonly schema: string;\n readonly table: string;\n readonly name: string;\n\n constructor(options: { readonly schema: string; readonly table: string; readonly name: string }) {\n super();\n this.schema = options.schema;\n this.table = options.table;\n this.name = options.name;\n this.freeze();\n }\n\n override accept<R>(visitor: PostgresDdlVisitor<R>): R {\n return visitor.dropPolicy(this);\n }\n}\n\nexport class PostgresAlterPolicyRename extends PostgresDdlNode {\n readonly kind = 'alter-policy-rename' as const;\n readonly schema: string;\n readonly table: string;\n readonly name: string;\n readonly newName: string;\n\n constructor(options: {\n readonly schema: string;\n readonly table: string;\n readonly name: string;\n readonly newName: string;\n }) {\n super();\n this.schema = options.schema;\n this.table = options.table;\n this.name = options.name;\n this.newName = options.newName;\n this.freeze();\n }\n\n override accept<R>(visitor: PostgresDdlVisitor<R>): R {\n return visitor.alterPolicyRename(this);\n }\n}\n\n/**\n * The element list between the parens of CREATE INDEX: either a column\n * tuple (each identifier quoted by the renderer) or one opaque expression\n * string covering the entire list, inserted verbatim — the same opaque-SQL\n * stance as RLS policy predicates (ADR 234).\n */\nexport type DdlIndexElements =\n | { readonly columns: readonly string[] }\n | { readonly expression: string };\n\nexport class PostgresCreateIndex extends PostgresDdlNode {\n readonly kind = 'create-index' as const;\n /** Absent ⇔ unqualified (the unbound namespace — `search_path` decides). */\n readonly schema: string | undefined;\n readonly table: string;\n readonly name: string;\n readonly unique: boolean;\n readonly elements: DdlIndexElements;\n readonly type: string | undefined;\n readonly options: Record<string, unknown> | undefined;\n /**\n * Partial-index predicate (WHERE body, without the keyword). Inserted\n * verbatim, never quoted or escaped.\n */\n readonly where: string | undefined;\n\n constructor(options: {\n readonly schema: string | undefined;\n readonly table: string;\n readonly name: string;\n readonly unique: boolean;\n readonly elements: DdlIndexElements;\n readonly type: string | undefined;\n readonly options: Record<string, unknown> | undefined;\n readonly where: string | undefined;\n }) {\n super();\n this.schema = options.schema;\n this.table = options.table;\n this.name = options.name;\n this.unique = options.unique;\n this.elements =\n 'columns' in options.elements\n ? { columns: Object.freeze([...options.elements.columns]) }\n : { expression: options.elements.expression };\n this.type = options.type;\n this.options = options.options;\n this.where = options.where;\n this.freeze();\n }\n\n override accept<R>(visitor: PostgresDdlVisitor<R>): R {\n return visitor.createIndex(this);\n }\n}\n\nexport class PostgresDropIndex extends PostgresDdlNode {\n readonly kind = 'drop-index' as const;\n /** Absent ⇔ unqualified (the unbound namespace). */\n readonly schema: string | undefined;\n readonly name: string;\n\n constructor(options: { readonly schema: string | undefined; readonly name: string }) {\n super();\n this.schema = options.schema;\n this.name = options.name;\n this.freeze();\n }\n\n override accept<R>(visitor: PostgresDdlVisitor<R>): R {\n return visitor.dropIndex(this);\n }\n}\n\nexport class PostgresAlterIndexRename extends PostgresDdlNode {\n readonly kind = 'alter-index-rename' as const;\n /** Absent ⇔ unqualified (the unbound namespace). */\n readonly schema: string | undefined;\n readonly from: string;\n readonly to: string;\n\n constructor(options: {\n readonly schema: string | undefined;\n readonly from: string;\n readonly to: string;\n }) {\n super();\n this.schema = options.schema;\n this.from = options.from;\n this.to = options.to;\n this.freeze();\n }\n\n override accept<R>(visitor: PostgresDdlVisitor<R>): R {\n return visitor.alterIndexRename(this);\n }\n}\n\nexport class PostgresDisableRowLevelSecurity extends PostgresDdlNode {\n readonly kind = 'disable-row-level-security' as const;\n readonly schema: string;\n readonly table: string;\n\n constructor(options: { readonly schema: string; readonly table: string }) {\n super();\n this.schema = options.schema;\n this.table = options.table;\n this.freeze();\n }\n\n override accept<R>(visitor: PostgresDdlVisitor<R>): R {\n return visitor.disableRowLevelSecurity(this);\n }\n}\n\nexport type AnyPostgresDdlNode =\n | PostgresCreateTable\n | PostgresCreateSchema\n | PostgresCreateType\n | PostgresDropType\n | PostgresAlterTable\n | PostgresCreatePolicy\n | PostgresDropPolicy\n | PostgresAlterPolicyRename\n | PostgresCreateIndex\n | PostgresDropIndex\n | PostgresAlterIndexRename\n | PostgresDisableRowLevelSecurity;\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { r as RlsPolicyOperation } from "./canonicalize-D1F4vUnP.mjs";
1
+ import { r as RlsPolicyOperation } from "./canonicalize-CQlxSR4D.mjs";
2
2
  import { DdlColumn, DdlNode, DdlTableConstraint } from "@prisma-next/sql-relational-core/ast";
3
3
  //#region src/core/ddl/nodes.d.ts
4
4
  interface AlterTableActionVisitor<R> {
@@ -40,6 +40,9 @@ interface PostgresDdlVisitor<R> {
40
40
  createPolicy(node: PostgresCreatePolicy): R;
41
41
  dropPolicy(node: PostgresDropPolicy): R;
42
42
  alterPolicyRename(node: PostgresAlterPolicyRename): R;
43
+ createIndex(node: PostgresCreateIndex): R;
44
+ dropIndex(node: PostgresDropIndex): R;
45
+ alterIndexRename(node: PostgresAlterIndexRename): R;
43
46
  disableRowLevelSecurity(node: PostgresDisableRowLevelSecurity): R;
44
47
  }
45
48
  declare abstract class PostgresDdlNode extends DdlNode {
@@ -153,6 +156,68 @@ declare class PostgresAlterPolicyRename extends PostgresDdlNode {
153
156
  });
154
157
  accept<R>(visitor: PostgresDdlVisitor<R>): R;
155
158
  }
159
+ /**
160
+ * The element list between the parens of CREATE INDEX: either a column
161
+ * tuple (each identifier quoted by the renderer) or one opaque expression
162
+ * string covering the entire list, inserted verbatim — the same opaque-SQL
163
+ * stance as RLS policy predicates (ADR 234).
164
+ */
165
+ type DdlIndexElements = {
166
+ readonly columns: readonly string[];
167
+ } | {
168
+ readonly expression: string;
169
+ };
170
+ declare class PostgresCreateIndex extends PostgresDdlNode {
171
+ readonly kind: "create-index";
172
+ /** Absent ⇔ unqualified (the unbound namespace — `search_path` decides). */
173
+ readonly schema: string | undefined;
174
+ readonly table: string;
175
+ readonly name: string;
176
+ readonly unique: boolean;
177
+ readonly elements: DdlIndexElements;
178
+ readonly type: string | undefined;
179
+ readonly options: Record<string, unknown> | undefined;
180
+ /**
181
+ * Partial-index predicate (WHERE body, without the keyword). Inserted
182
+ * verbatim, never quoted or escaped.
183
+ */
184
+ readonly where: string | undefined;
185
+ constructor(options: {
186
+ readonly schema: string | undefined;
187
+ readonly table: string;
188
+ readonly name: string;
189
+ readonly unique: boolean;
190
+ readonly elements: DdlIndexElements;
191
+ readonly type: string | undefined;
192
+ readonly options: Record<string, unknown> | undefined;
193
+ readonly where: string | undefined;
194
+ });
195
+ accept<R>(visitor: PostgresDdlVisitor<R>): R;
196
+ }
197
+ declare class PostgresDropIndex extends PostgresDdlNode {
198
+ readonly kind: "drop-index";
199
+ /** Absent ⇔ unqualified (the unbound namespace). */
200
+ readonly schema: string | undefined;
201
+ readonly name: string;
202
+ constructor(options: {
203
+ readonly schema: string | undefined;
204
+ readonly name: string;
205
+ });
206
+ accept<R>(visitor: PostgresDdlVisitor<R>): R;
207
+ }
208
+ declare class PostgresAlterIndexRename extends PostgresDdlNode {
209
+ readonly kind: "alter-index-rename";
210
+ /** Absent ⇔ unqualified (the unbound namespace). */
211
+ readonly schema: string | undefined;
212
+ readonly from: string;
213
+ readonly to: string;
214
+ constructor(options: {
215
+ readonly schema: string | undefined;
216
+ readonly from: string;
217
+ readonly to: string;
218
+ });
219
+ accept<R>(visitor: PostgresDdlVisitor<R>): R;
220
+ }
156
221
  declare class PostgresDisableRowLevelSecurity extends PostgresDdlNode {
157
222
  readonly kind: "disable-row-level-security";
158
223
  readonly schema: string;
@@ -163,7 +228,7 @@ declare class PostgresDisableRowLevelSecurity extends PostgresDdlNode {
163
228
  });
164
229
  accept<R>(visitor: PostgresDdlVisitor<R>): R;
165
230
  }
166
- type AnyPostgresDdlNode = PostgresCreateTable | PostgresCreateSchema | PostgresCreateType | PostgresDropType | PostgresAlterTable | PostgresCreatePolicy | PostgresDropPolicy | PostgresAlterPolicyRename | PostgresDisableRowLevelSecurity;
231
+ type AnyPostgresDdlNode = PostgresCreateTable | PostgresCreateSchema | PostgresCreateType | PostgresDropType | PostgresAlterTable | PostgresCreatePolicy | PostgresDropPolicy | PostgresAlterPolicyRename | PostgresCreateIndex | PostgresDropIndex | PostgresAlterIndexRename | PostgresDisableRowLevelSecurity;
167
232
  //#endregion
168
- export { DropDefaultAction as a, PostgresCreatePolicy as c, PostgresCreateType as d, PostgresDdlNode as f, PostgresDropType as g, PostgresDropPolicy as h, AnyPostgresDdlNode as i, PostgresCreateSchema as l, PostgresDisableRowLevelSecurity as m, AlterTableActionVisitor as n, PostgresAlterPolicyRename as o, PostgresDdlVisitor as p, AnyAlterTableAction as r, PostgresAlterTable as s, AddColumnAction as t, PostgresCreateTable as u };
169
- //# sourceMappingURL=nodes-CQzM2hR0.d.mts.map
233
+ export { PostgresDisableRowLevelSecurity as _, DdlIndexElements as a, PostgresDropType as b, PostgresAlterPolicyRename as c, PostgresCreatePolicy as d, PostgresCreateSchema as f, PostgresDdlVisitor as g, PostgresDdlNode as h, AnyPostgresDdlNode as i, PostgresAlterTable as l, PostgresCreateType as m, AlterTableActionVisitor as n, DropDefaultAction as o, PostgresCreateTable as p, AnyAlterTableAction as r, PostgresAlterIndexRename as s, AddColumnAction as t, PostgresCreateIndex as u, PostgresDropIndex as v, PostgresDropPolicy as y };
234
+ //# sourceMappingURL=nodes-DjCsN-uv.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodes-DjCsN-uv.d.mts","names":[],"sources":["../src/core/ddl/nodes.ts"],"mappings":";;;UAWiB,wBAAwB;EACvC,UAAU,QAAQ,kBAAkB;EACpC,YAAY,QAAQ,oBAAoB;;uBAGpB;oBACF;WACT,OAAO,GAAG,SAAS,wBAAwB,KAAK;;cAG9C,wBAAwB;WAC1B;WACA,QAAQ;cAEL,QAAQ;EAMX,OAAO,GAAG,SAAS,wBAAwB,KAAK;;cAK9C,0BAA0B;WAC5B;WACA;cAEG;EAMH,OAAO,GAAG,SAAS,wBAAwB,KAAK;;;;;;;;;;;KAc/C,sBAAsB,kBAAkB;UAMnC,mBAAmB;EAClC,YAAY,MAAM,sBAAsB;EACxC,aAAa,MAAM,uBAAuB;EAC1C,WAAW,MAAM,qBAAqB;EACtC,SAAS,MAAM,mBAAmB;EAClC,WAAW,MAAM,qBAAqB;EACtC,aAAa,MAAM,uBAAuB;EAC1C,WAAW,MAAM,qBAAqB;EACtC,kBAAkB,MAAM,4BAA4B;EACpD,YAAY,MAAM,sBAAsB;EACxC,UAAU,MAAM,oBAAoB;EACpC,iBAAiB,MAAM,2BAA2B;EAClD,wBAAwB,MAAM,kCAAkC;;uBAG5C,wBAAwB;WACnC,OAAO,GAAG,SAAS,mBAAmB,KAAK;;cAazC,4BAA4B;WAC9B;WACA;WACA;WACA;WACA,SAAS,cAAc;WACvB,aAAa,cAAc;cAExB;aACD;aACA;aACA;aACA,kBAAkB;aAClB,uBAAuB;;EAWzB,OAAO,GAAG,SAAS,mBAAmB,KAAK;;cAKzC,6BAA6B;WAC/B;WACA;WACA;cAEG;aAAoB;aAAyB;;EAOhD,OAAO,GAAG,SAAS,mBAAmB,KAAK;;cAKzC,2BAA2B;WAC7B;WACA;WACA;WACA,QAAQ;cAEL;aACD;aACA;aACA;;EASF,OAAO,GAAG,SAAS,mBAAmB,KAAK;;cAKzC,yBAAyB;WAC3B;WACA;WACA;cAEG;aAAoB;aAA0B;;EAOjD,OAAO,GAAG,SAAS,mBAAmB,KAAK;;cAKzC,2BAA2B;WAC7B;WACA;WACA;WACA,SAAS,cAAc;cAEpB;aACD;aACA;aACA,kBAAkB;;EASpB,OAAO,GAAG,SAAS,mBAAmB,KAAK;;cAOzC,6BAA6B;WAC/B;WACA;WACA;WACA;WACA;WACA,WAAW;WACX,OAAO;WACP;WACA;cAEG;aACD;aACA;aACA;aACA;aACA,WAAW;aACX;aACA;aACA;;EAcF,OAAO,GAAG,SAAS,mBAAmB,KAAK;;cAKzC,2BAA2B;WAC7B;WACA;WACA;WACA;cAEG;aAAoB;aAAyB;aAAwB;;EAQxE,OAAO,GAAG,SAAS,mBAAmB,KAAK;;cAKzC,kCAAkC;WACpC;WACA;WACA;WACA;WACA;cAEG;aACD;aACA;aACA;aACA;;EAUF,OAAO,GAAG,SAAS,mBAAmB,KAAK;;;;;;;;KAW1C;WACG;;WACA;;cAEF,4BAA4B;WAC9B;;WAEA;WACA;WACA;WACA;WACA,UAAU;WACV;WACA,SAAS;;;;;WAKT;cAEG;aACD;aACA;aACA;aACA;aACA,UAAU;aACV;aACA,SAAS;aACT;;EAiBF,OAAO,GAAG,SAAS,mBAAmB,KAAK;;cAKzC,0BAA0B;WAC5B;;WAEA;WACA;cAEG;aAAoB;aAAqC;;EAO5D,OAAO,GAAG,SAAS,mBAAmB,KAAK;;cAKzC,iCAAiC;WACnC;;WAEA;WACA;WACA;cAEG;aACD;aACA;aACA;;EASF,OAAO,GAAG,SAAS,mBAAmB,KAAK;;cAKzC,wCAAwC;WAC1C;WACA;WACA;cAEG;aAAoB;aAAyB;;EAOhD,OAAO,GAAG,SAAS,mBAAmB,KAAK;;KAK1C,qBACR,sBACA,uBACA,qBACA,mBACA,qBACA,uBACA,qBACA,4BACA,sBACA,oBACA,2BACA"}
@@ -26,6 +26,29 @@ interface ForeignKeySpec {
26
26
  readonly onUpdate?: ReferentialAction;
27
27
  }
28
28
  //#endregion
29
+ //#region src/core/migrations/operations/indexes.d.ts
30
+ interface CreateIndexExtras {
31
+ readonly type?: string;
32
+ readonly options?: Record<string, unknown>;
33
+ /**
34
+ * Partial-index predicate (WHERE body, without the keyword). Inserted
35
+ * verbatim, never quoted or escaped — the same opaque-SQL stance as RLS
36
+ * policy predicates.
37
+ */
38
+ readonly where?: string;
39
+ readonly unique?: boolean;
40
+ }
41
+ /**
42
+ * The element list between the parens of CREATE INDEX: either a column
43
+ * tuple (each identifier quoted) or one opaque expression string covering
44
+ * the entire list, inserted verbatim.
45
+ */
46
+ type CreateIndexElements = {
47
+ readonly columns: readonly string[];
48
+ } | {
49
+ readonly expression: string;
50
+ };
51
+ //#endregion
29
52
  //#region src/core/migrations/op-factory-call.d.ts
30
53
  type Op = SqlMigrationPlanOperation<PostgresPlanTargetDetails>;
31
54
  declare abstract class PostgresOpFactoryCallNode extends TsExpression implements OpFactoryCall {
@@ -288,14 +311,29 @@ declare class CreateIndexCall extends PostgresOpFactoryCallNode {
288
311
  readonly schemaName: string;
289
312
  readonly tableName: string;
290
313
  readonly indexName: string;
291
- readonly columns: readonly string[];
314
+ /** Column tuple when the index is column-based; absent for expression indexes. */
315
+ readonly columns: readonly string[] | undefined;
316
+ /** Opaque whole element list when the index is expression-based. */
317
+ readonly expression: string | undefined;
292
318
  readonly indexType: string | undefined;
293
319
  readonly options: Record<string, unknown> | undefined;
320
+ readonly where: string | undefined;
321
+ readonly unique: boolean;
294
322
  readonly label: string;
295
- constructor(schemaName: string, tableName: string, indexName: string, columns: readonly string[], extras?: {
296
- readonly type?: string;
297
- readonly options?: Record<string, unknown>;
298
- });
323
+ constructor(schemaName: string, tableName: string, indexName: string, elements: CreateIndexElements, extras?: CreateIndexExtras);
324
+ toOp(lowerer?: ExecuteRequestLowerer): Promise<Op>;
325
+ renderTypeScript(): string;
326
+ importRequirements(): readonly ImportRequirement[];
327
+ }
328
+ declare class RenameIndexCall extends PostgresOpFactoryCallNode {
329
+ readonly factoryName: "renameIndex";
330
+ readonly operationClass: "widening";
331
+ readonly schemaName: string;
332
+ readonly tableName: string;
333
+ readonly oldIndexName: string;
334
+ readonly newIndexName: string;
335
+ readonly label: string;
336
+ constructor(schemaName: string, tableName: string, oldIndexName: string, newIndexName: string);
299
337
  toOp(lowerer?: ExecuteRequestLowerer): Promise<Op>;
300
338
  renderTypeScript(): string;
301
339
  importRequirements(): readonly ImportRequirement[];
@@ -476,7 +514,7 @@ declare class RenamePostgresRlsPolicyCall extends PostgresOpFactoryCallNode {
476
514
  renderTypeScript(): string;
477
515
  importRequirements(): readonly ImportRequirement[];
478
516
  }
479
- type PostgresOpFactoryCall = CreateTableCall | DropTableCall | AddColumnCall | DropColumnCall | AlterColumnTypeCall | SetNotNullCall | DropNotNullCall | SetDefaultCall | DropDefaultCall | AddNotNullColumnDirectCall | AddNotNullColumnWithTempDefaultCall | AddPrimaryKeyCall | AddForeignKeyCall | AddUniqueCall | AddCheckConstraintCall | DropCheckConstraintCall | CreateIndexCall | DropIndexCall | DropConstraintCall | RawSqlCall | CreateExtensionCall | CreateSchemaCall | CreateNativeEnumTypeCall | DropNativeEnumTypeCall | AddNativeEnumValueCall | CreatePostgresRlsPolicyCall | DropPostgresRlsPolicyCall | EnableRowLevelSecurityCall | DisableRowLevelSecurityCall | RenamePostgresRlsPolicyCall | DataTransformCall;
517
+ type PostgresOpFactoryCall = CreateTableCall | DropTableCall | AddColumnCall | DropColumnCall | AlterColumnTypeCall | SetNotNullCall | DropNotNullCall | SetDefaultCall | DropDefaultCall | AddNotNullColumnDirectCall | AddNotNullColumnWithTempDefaultCall | AddPrimaryKeyCall | AddForeignKeyCall | AddUniqueCall | AddCheckConstraintCall | DropCheckConstraintCall | CreateIndexCall | RenameIndexCall | DropIndexCall | DropConstraintCall | RawSqlCall | CreateExtensionCall | CreateSchemaCall | CreateNativeEnumTypeCall | DropNativeEnumTypeCall | AddNativeEnumValueCall | CreatePostgresRlsPolicyCall | DropPostgresRlsPolicyCall | EnableRowLevelSecurityCall | DisableRowLevelSecurityCall | RenamePostgresRlsPolicyCall | DataTransformCall;
480
518
  //#endregion
481
- export { RenamePostgresRlsPolicyCall as A, DropNativeEnumTypeCall as C, EnableRowLevelSecurityCall as D, DropTableCall as E, SetNotNullCall as M, ForeignKeySpec as N, PostgresOpFactoryCall as O, Op$1 as P, DropIndexCall as S, DropPostgresRlsPolicyCall as T, DisableRowLevelSecurityCall as _, AddNotNullColumnWithTempDefaultCall as a, DropConstraintCall as b, AlterColumnTypeCall as c, CreateIndexCall as d, CreateNativeEnumTypeCall as f, DataTransformCall as g, CreateTableCall as h, AddNativeEnumValueCall as i, SetDefaultCall as j, RawSqlCall as k, AlterColumnTypeOptions as l, CreateSchemaCall as m, AddColumnCall as n, AddPrimaryKeyCall as o, CreatePostgresRlsPolicyCall as p, AddForeignKeyCall as r, AddUniqueCall as s, AddCheckConstraintCall as t, CreateExtensionCall as u, DropCheckConstraintCall as v, DropNotNullCall as w, DropDefaultCall as x, DropColumnCall as y };
482
- //# sourceMappingURL=op-factory-call-DT7kdjVP.d.mts.map
519
+ export { RenameIndexCall as A, DropNativeEnumTypeCall as C, EnableRowLevelSecurityCall as D, DropTableCall as E, ForeignKeySpec as F, Op$1 as I, SetDefaultCall as M, SetNotNullCall as N, PostgresOpFactoryCall as O, CreateIndexExtras as P, DropIndexCall as S, DropPostgresRlsPolicyCall as T, DisableRowLevelSecurityCall as _, AddNotNullColumnWithTempDefaultCall as a, DropConstraintCall as b, AlterColumnTypeCall as c, CreateIndexCall as d, CreateNativeEnumTypeCall as f, DataTransformCall as g, CreateTableCall as h, AddNativeEnumValueCall as i, RenamePostgresRlsPolicyCall as j, RawSqlCall as k, AlterColumnTypeOptions as l, CreateSchemaCall as m, AddColumnCall as n, AddPrimaryKeyCall as o, CreatePostgresRlsPolicyCall as p, AddForeignKeyCall as r, AddUniqueCall as s, AddCheckConstraintCall as t, CreateExtensionCall as u, DropCheckConstraintCall as v, DropNotNullCall as w, DropDefaultCall as x, DropColumnCall as y };
520
+ //# sourceMappingURL=op-factory-call-0TB5XNij.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op-factory-call-0TB5XNij.d.mts","names":[],"sources":["../src/core/migrations/operations/shared.ts","../src/core/migrations/operations/indexes.ts","../src/core/migrations/op-factory-call.ts"],"mappings":";;;;;;;;;;KAKY,OAAK,0BAA0B;;;;;;UAO1B;WACN;WACA;WACA;aACE;aACA;aACA;;WAEF,WAAW;WACX,WAAW;;;;UCOL;WACN;WACA,UAAU;;;;;;WAMV;WACA;;;;;;;KAQC;WACG;;WACA;;;;KCkDV,KAAK,0BAA0B;uBAgBrB,kCAAkC,wBAAwB;oBACrD;oBACA,gBAAgB;oBAChB;WACT,KAAK,UAAU,UAAU,KAAK,QAAQ;EAE/C,+BAA+B;YAIrB;;cAuGC,wBAAwB;WAC1B;WACA;WACA;WACA;WACA,kBAAkB;WAClB,sBAAsB;WACtB;cAGP,oBACA,mBACA,kBAAkB,aAClB,uBAAuB;EAWnB,KAAK,UAAU,wBAAwB,QAAQ;EAsCrD;EAiBS,+BAA+B;;cAe7B,sBAAsB;WACxB;WACA;WACA;WACA;WACA;cAEG,oBAAoB;EAQ1B,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;EASS,+BAA+B;;cAS7B,sBAAsB;WACxB;WACA;WACA;WACA;WACA,QAAQ;WACR;cAEG,oBAAoB,mBAAmB,QAAQ;EASrD,KAAK,UAAU,wBAAwB,QAAQ;EA+BrD;EAUS,+BAA+B;;cAW7B,uBAAuB;WACzB;WACA;WACA;WACA;WACA;WACA;cAEG,oBAAoB,mBAAmB;EAS7C,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;EAUS,+BAA+B;;UAKzB;WACN;WACA;WACA;WACA;;cAGE,4BAA4B;WAC9B;WACA;WACA;WACA;WACA;WACA,SAAS;WACT;cAGP,oBACA,mBACA,oBACA,SAAS;EAWL,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;EAWS,+BAA+B;;cAK7B,uBAAuB;WACzB;WACA;WACA;WACA;WACA;WACA;cAEG,oBAAoB,mBAAmB;EAS7C,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;EAUS,+BAA+B;;cAK7B,wBAAwB;WAC1B;WACA;WACA;WACA;WACA;WACA;cAEG,oBAAoB,mBAAmB;EAS7C,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;EAUS,+BAA+B;;cAK7B,uBAAuB;WACzB;WACA;WACA;WACA;WACA;WACA;WACA;cAGP,oBACA,mBACA,oBACA,oBACA;EAYI,KAAK,UAAU,wBAAwB,QAAQ;EAkBrD;EAcS,+BAA+B;;cAK7B,wBAAwB;WAC1B;WACA;WACA;WACA;WACA;WACA;cAEG,oBAAoB,mBAAmB;EAS7C,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;EAUS,+BAA+B;;;;;;;;;;cAiB7B,mCAAmC;WACrC;WACA;WACA;WACA;WACA;WACA,QAAQ;WACR;cAEG,oBAAoB,mBAAmB,oBAAoB,QAAQ;EAUzE,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;;;;;;;;;;;;cAeW,4CAA4C;WAC9C;WACA;WACA;WACA;WACA;WACA,QAAQ;WACR,YAAY,YAAY;WACxB,cAAc,eAAe;WAC7B;WACA;cAEG;aACD;aACA;aACA;aACA,QAAQ;aACR,YAAY,YAAY;aACxB,cAAc,eAAe;aAC7B;;EAcL,KAAK,UAAU,wBAAwB,QAAQ;EAoBrD;;cAuBW,0BAA0B;WAC5B;WACA;WACA;WACA;WACA;WACA;WACA;cAGP,oBACA,mBACA,wBACA;EAWI,KAAK,UAAU,wBAAwB,QAAQ;EAiBrD;EAIS,+BAA+B;;cAK7B,sBAAsB;WACxB;WACA;WACA;WACA;WACA;WACA;WACA;cAGP,oBACA,mBACA,wBACA;EAWI,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;EAIS,+BAA+B;;cAK7B,0BAA0B;WAC5B;WACA;WACA;WACA;WACA,IAAI;WACJ;cAEG,oBAAoB,mBAAmB,IAAI;EASjD,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;EAUS,+BAA+B;;cAK7B,2BAA2B;WAC7B;WACA;WACA;WACA;WACA;WACA;WACA;cAGP,oBACA,mBACA,wBACA;EAWI,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;EAQS,+BAA+B;;cAK7B,+BAA+B;WACjC;WACA;WACA;WACA;WACA;WACA;WACA;WACA;cAGP,oBACA,mBACA,wBACA,gBACA;EAYI,KAAK,UAAU,wBAAwB,QAAQ;EAkBrD;EAIS,+BAA+B;;cAK7B,gCAAgC;WAClC;WACA;WACA;WACA;WACA;WACA;cAEG,oBAAoB,mBAAmB;EAS7C,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;EAIS,+BAA+B;;cAS7B,wBAAwB;WAC1B;WACA;WACA;WACA;WACA;;WAEA;;WAEA;WAGA;WACA,SAAS;WACT;WACA;WACA;cAGP,oBACA,mBACA,mBACA,UAAU,qBACV,SAAS;EAgBL,KAAK,UAAU,wBAAwB,QAAQ;EA8BrD;EA4BS,+BAA+B;;cAK7B,wBAAwB;WAC1B;WAKA;WACA;WACA;WACA;WACA;WACA;cAEG,oBAAoB,mBAAmB,sBAAsB;EAUnE,KAAK,UAAU,wBAAwB,QAAQ;EAiBrD;EAWS,+BAA+B;;cAK7B,sBAAsB;WACxB;WACA;WACA;WACA;WACA;WACA;cAEG,oBAAoB,mBAAmB;EAS7C,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;EAUS,+BAA+B;;;;;;;;;;;;;;;cAsB7B,mBAAmB;WACrB;WACA,gBAAgB;WAChB;WACA,IAAI;cAED,IAAI;EAQhB,QAAQ;EAIR;;cASW,4BAA4B;WAC9B;WACA;WACA;WACA;cAEG;EAOZ,QAAQ;EAIR;;cAKW,yBAAyB;WAC3B;WACA;WACA;WACA;cAEG;EAON,KAAK,UAAU,wBAAwB,QAAQ;EA4BrD;EAIS,+BAA+B;;cAS7B,iCAAiC;WACnC;WACA;WACA;WACA;WACA;WACA;cAEG,oBAAoB,kBAAkB;EAS5C,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;EASS,+BAA+B;;cAK7B,+BAA+B;WACjC;WACA;WACA;WACA;WACA;cAEG,oBAAoB;EAQ1B,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;EAQS,+BAA+B;;;;;;;;;;;;cAyB7B,+BAA+B;WACjC;WACA;WACA;WACA;WACA;WACA;WACA;cAEG,oBAAoB,kBAAkB;EAW5C,KAAK,UAAU,wBAAwB,QAAQ;EA6CrD;EASS,+BAA+B;;;;;;;;;cAgB7B,0BAA0B;WAC5B;WACA,gBAAgB;WAChB;WACA;WACA;cAGP,eACA,mBACA,iBACA,iBAAgB;EAUlB,QAAQ;EAIR;EASS,+BAA+B;;cAQ7B,oCAAoC;WACtC;WACA;WACA;WACA;WACA,QAAQ;WACR;cAEG,oBAAoB,mBAAmB,QAAQ;EASrD,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;EAgBS,+BAA+B;;cAK7B,kCAAkC;WACpC;WACA;WACA;WACA;WACA;WACA;cAEG,oBAAoB,mBAAmB;EAS7C,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;EAIS,+BAA+B;;cAK7B,mCAAmC;WACrC;WACA;WACA;WACA;WACA;cAEG,oBAAoB;EAQ1B,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;EAIS,+BAA+B;;cAK7B,oCAAoC;WACtC;WACA;WACA;WACA;WACA;cAEG,oBAAoB;EAQ1B,KAAK,UAAU,wBAAwB,QAAQ;EAWrD;EAIS,+BAA+B;;cAK7B,oCAAoC;WACtC;WAKA;WACA;WACA;WACA;WACA;WACA;cAEG,oBAAoB,mBAAmB,uBAAuB;EAUpE,KAAK,UAAU,wBAAwB,QAAQ;EAiBrD;EAIS,+BAA+B;;KAK9B,wBACR,kBACA,gBACA,gBACA,iBACA,sBACA,iBACA,kBACA,iBACA,kBACA,6BACA,sCACA,oBACA,oBACA,gBACA,yBACA,0BACA,kBACA,kBACA,gBACA,qBACA,aACA,sBACA,mBACA,2BACA,yBACA,yBACA,8BACA,4BACA,6BACA,8BACA,8BACA"}