@prisma-next/target-postgres 0.4.0-dev.9 → 0.5.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/dist/codec-ids-CojIXVf9.mjs +29 -0
  2. package/dist/codec-ids-CojIXVf9.mjs.map +1 -0
  3. package/dist/codec-ids.d.mts +28 -0
  4. package/dist/codec-ids.d.mts.map +1 -0
  5. package/dist/codec-ids.mjs +3 -0
  6. package/dist/codec-types.d.mts +42 -0
  7. package/dist/codec-types.d.mts.map +1 -0
  8. package/dist/codec-types.mjs +3 -0
  9. package/dist/codecs-BoahtY_Q.mjs +385 -0
  10. package/dist/codecs-BoahtY_Q.mjs.map +1 -0
  11. package/dist/codecs-D-F2KJqt.d.mts +299 -0
  12. package/dist/codecs-D-F2KJqt.d.mts.map +1 -0
  13. package/dist/codecs.d.mts +2 -0
  14. package/dist/codecs.mjs +3 -0
  15. package/dist/control.d.mts +1 -9
  16. package/dist/control.d.mts.map +1 -1
  17. package/dist/control.mjs +23 -5101
  18. package/dist/control.mjs.map +1 -1
  19. package/dist/data-transform-CxFRBIUp.d.mts +32 -0
  20. package/dist/data-transform-CxFRBIUp.d.mts.map +1 -0
  21. package/dist/data-transform-VfEGzXWt.mjs +39 -0
  22. package/dist/data-transform-VfEGzXWt.mjs.map +1 -0
  23. package/dist/data-transform.d.mts +2 -0
  24. package/dist/data-transform.mjs +3 -0
  25. package/dist/default-normalizer-DNOpRoOF.mjs +131 -0
  26. package/dist/default-normalizer-DNOpRoOF.mjs.map +1 -0
  27. package/dist/default-normalizer.d.mts +19 -0
  28. package/dist/default-normalizer.d.mts.map +1 -0
  29. package/dist/default-normalizer.mjs +3 -0
  30. package/dist/{descriptor-meta-DkvCmY98.mjs → descriptor-meta-BVoVtyp-.mjs} +1 -1
  31. package/dist/{descriptor-meta-DkvCmY98.mjs.map → descriptor-meta-BVoVtyp-.mjs.map} +1 -1
  32. package/dist/errors-AFvEPZ1R.mjs +34 -0
  33. package/dist/errors-AFvEPZ1R.mjs.map +1 -0
  34. package/dist/errors.d.mts +27 -0
  35. package/dist/errors.d.mts.map +1 -0
  36. package/dist/errors.mjs +3 -0
  37. package/dist/issue-planner-CFjB0_oO.mjs +879 -0
  38. package/dist/issue-planner-CFjB0_oO.mjs.map +1 -0
  39. package/dist/issue-planner.d.mts +85 -0
  40. package/dist/issue-planner.d.mts.map +1 -0
  41. package/dist/issue-planner.mjs +3 -0
  42. package/dist/migration.d.mts +90 -0
  43. package/dist/migration.d.mts.map +1 -0
  44. package/dist/migration.mjs +24 -0
  45. package/dist/migration.mjs.map +1 -0
  46. package/dist/native-type-normalizer-CInai_oY.mjs +38 -0
  47. package/dist/native-type-normalizer-CInai_oY.mjs.map +1 -0
  48. package/dist/native-type-normalizer.d.mts +18 -0
  49. package/dist/native-type-normalizer.d.mts.map +1 -0
  50. package/dist/native-type-normalizer.mjs +3 -0
  51. package/dist/op-factory-call-BKlruaiC.mjs +605 -0
  52. package/dist/op-factory-call-BKlruaiC.mjs.map +1 -0
  53. package/dist/op-factory-call-C3bWXKSP.d.mts +304 -0
  54. package/dist/op-factory-call-C3bWXKSP.d.mts.map +1 -0
  55. package/dist/op-factory-call.d.mts +3 -0
  56. package/dist/op-factory-call.mjs +3 -0
  57. package/dist/pack.d.mts +1 -1
  58. package/dist/pack.mjs +1 -1
  59. package/dist/planner-CLUvVhUN.mjs +98 -0
  60. package/dist/planner-CLUvVhUN.mjs.map +1 -0
  61. package/dist/planner-ddl-builders-Dxvw1LHw.mjs +132 -0
  62. package/dist/planner-ddl-builders-Dxvw1LHw.mjs.map +1 -0
  63. package/dist/planner-ddl-builders.d.mts +22 -0
  64. package/dist/planner-ddl-builders.d.mts.map +1 -0
  65. package/dist/planner-ddl-builders.mjs +3 -0
  66. package/dist/planner-identity-values-Dju-o5GF.mjs +91 -0
  67. package/dist/planner-identity-values-Dju-o5GF.mjs.map +1 -0
  68. package/dist/planner-identity-values.d.mts +20 -0
  69. package/dist/planner-identity-values.d.mts.map +1 -0
  70. package/dist/planner-identity-values.mjs +3 -0
  71. package/dist/planner-produced-postgres-migration-CRRTno6Z.d.mts +20 -0
  72. package/dist/planner-produced-postgres-migration-CRRTno6Z.d.mts.map +1 -0
  73. package/dist/planner-produced-postgres-migration-DSSPq8QS.mjs +33 -0
  74. package/dist/planner-produced-postgres-migration-DSSPq8QS.mjs.map +1 -0
  75. package/dist/planner-produced-postgres-migration.d.mts +5 -0
  76. package/dist/planner-produced-postgres-migration.mjs +3 -0
  77. package/dist/planner-schema-lookup-B7lkypwn.mjs +29 -0
  78. package/dist/planner-schema-lookup-B7lkypwn.mjs.map +1 -0
  79. package/dist/planner-schema-lookup.d.mts +22 -0
  80. package/dist/planner-schema-lookup.d.mts.map +1 -0
  81. package/dist/planner-schema-lookup.mjs +3 -0
  82. package/dist/planner-sql-checks-7jkgm9TX.mjs +241 -0
  83. package/dist/planner-sql-checks-7jkgm9TX.mjs.map +1 -0
  84. package/dist/planner-sql-checks.d.mts +55 -0
  85. package/dist/planner-sql-checks.d.mts.map +1 -0
  86. package/dist/planner-sql-checks.mjs +3 -0
  87. package/dist/planner-target-details-DH-azLu-.d.mts +11 -0
  88. package/dist/planner-target-details-DH-azLu-.d.mts.map +1 -0
  89. package/dist/planner-target-details.d.mts +2 -0
  90. package/dist/planner-target-details.mjs +1 -0
  91. package/dist/planner.d.mts +68 -0
  92. package/dist/planner.d.mts.map +1 -0
  93. package/dist/planner.mjs +4 -0
  94. package/dist/postgres-migration-BjA3Zmts.d.mts +50 -0
  95. package/dist/postgres-migration-BjA3Zmts.d.mts.map +1 -0
  96. package/dist/postgres-migration-qtmtbONe.mjs +52 -0
  97. package/dist/postgres-migration-qtmtbONe.mjs.map +1 -0
  98. package/dist/render-ops-D6_DHdOK.mjs +8 -0
  99. package/dist/render-ops-D6_DHdOK.mjs.map +1 -0
  100. package/dist/render-ops.d.mts +11 -0
  101. package/dist/render-ops.d.mts.map +1 -0
  102. package/dist/render-ops.mjs +3 -0
  103. package/dist/render-typescript-1rF_SB4g.mjs +85 -0
  104. package/dist/render-typescript-1rF_SB4g.mjs.map +1 -0
  105. package/dist/render-typescript.d.mts +15 -0
  106. package/dist/render-typescript.d.mts.map +1 -0
  107. package/dist/render-typescript.mjs +3 -0
  108. package/dist/runtime.d.mts +15 -3
  109. package/dist/runtime.d.mts.map +1 -1
  110. package/dist/runtime.mjs +10 -1
  111. package/dist/runtime.mjs.map +1 -1
  112. package/dist/shared-Bxkt8pNO.d.mts +41 -0
  113. package/dist/shared-Bxkt8pNO.d.mts.map +1 -0
  114. package/dist/sql-utils-r-Lw535w.mjs +76 -0
  115. package/dist/sql-utils-r-Lw535w.mjs.map +1 -0
  116. package/dist/sql-utils.d.mts +59 -0
  117. package/dist/sql-utils.d.mts.map +1 -0
  118. package/dist/sql-utils.mjs +3 -0
  119. package/dist/statement-builders-BPnmt6wx.mjs +116 -0
  120. package/dist/statement-builders-BPnmt6wx.mjs.map +1 -0
  121. package/dist/statement-builders.d.mts +23 -0
  122. package/dist/statement-builders.d.mts.map +1 -0
  123. package/dist/statement-builders.mjs +3 -0
  124. package/dist/tables-BmdW_FWO.mjs +477 -0
  125. package/dist/tables-BmdW_FWO.mjs.map +1 -0
  126. package/dist/types-ClK03Ojd.d.mts +10 -0
  127. package/dist/types-ClK03Ojd.d.mts.map +1 -0
  128. package/dist/types.d.mts +2 -0
  129. package/dist/types.mjs +1 -0
  130. package/package.json +38 -19
  131. package/src/core/codec-ids.ts +30 -0
  132. package/src/core/codecs.ts +645 -0
  133. package/src/core/default-normalizer.ts +131 -0
  134. package/src/core/descriptor-meta.ts +1 -1
  135. package/src/core/errors.ts +33 -0
  136. package/src/core/json-schema-type-expression.ts +131 -0
  137. package/src/core/migrations/issue-planner.ts +832 -0
  138. package/src/core/migrations/op-factory-call.ts +858 -0
  139. package/src/core/migrations/operations/columns.ts +285 -0
  140. package/src/core/migrations/operations/constraints.ts +191 -0
  141. package/src/core/migrations/operations/data-transform.ts +119 -0
  142. package/src/core/migrations/operations/dependencies.ts +36 -0
  143. package/src/core/migrations/operations/enums.ts +113 -0
  144. package/src/core/migrations/operations/indexes.ts +61 -0
  145. package/src/core/migrations/operations/raw.ts +15 -0
  146. package/src/core/migrations/operations/shared.ts +67 -0
  147. package/src/core/migrations/operations/tables.ts +63 -0
  148. package/src/core/migrations/planner-ddl-builders.ts +1 -1
  149. package/src/core/migrations/planner-produced-postgres-migration.ts +67 -0
  150. package/src/core/migrations/planner-recipes.ts +1 -1
  151. package/src/core/migrations/planner-sql-checks.ts +1 -1
  152. package/src/core/migrations/planner-strategies.ts +592 -151
  153. package/src/core/migrations/planner-target-details.ts +0 -6
  154. package/src/core/migrations/planner.ts +65 -785
  155. package/src/core/migrations/postgres-migration.ts +73 -0
  156. package/src/core/migrations/render-ops.ts +9 -0
  157. package/src/core/migrations/render-typescript.ts +105 -0
  158. package/src/core/migrations/runner.ts +2 -4
  159. package/src/core/native-type-normalizer.ts +49 -0
  160. package/src/core/sql-utils.ts +104 -0
  161. package/src/exports/codec-ids.ts +1 -0
  162. package/src/exports/codec-types.ts +51 -0
  163. package/src/exports/codecs.ts +2 -0
  164. package/src/exports/control.ts +9 -142
  165. package/src/exports/data-transform.ts +1 -0
  166. package/src/exports/default-normalizer.ts +1 -0
  167. package/src/exports/errors.ts +1 -0
  168. package/src/exports/issue-planner.ts +1 -0
  169. package/src/exports/migration.ts +46 -0
  170. package/src/exports/native-type-normalizer.ts +1 -0
  171. package/src/exports/op-factory-call.ts +25 -0
  172. package/src/exports/planner-ddl-builders.ts +8 -0
  173. package/src/exports/planner-identity-values.ts +1 -0
  174. package/src/exports/planner-produced-postgres-migration.ts +1 -0
  175. package/src/exports/planner-schema-lookup.ts +6 -0
  176. package/src/exports/planner-sql-checks.ts +11 -0
  177. package/src/exports/planner-target-details.ts +1 -0
  178. package/src/exports/planner.ts +1 -0
  179. package/src/exports/render-ops.ts +1 -0
  180. package/src/exports/render-typescript.ts +1 -0
  181. package/src/exports/runtime.ts +19 -4
  182. package/src/exports/sql-utils.ts +7 -0
  183. package/src/exports/statement-builders.ts +7 -0
  184. package/src/exports/types.ts +1 -0
  185. package/dist/migration-builders.d.mts +0 -88
  186. package/dist/migration-builders.d.mts.map +0 -1
  187. package/dist/migration-builders.mjs +0 -3
  188. package/dist/operation-descriptors-CxymFSgK.mjs +0 -52
  189. package/dist/operation-descriptors-CxymFSgK.mjs.map +0 -1
  190. package/src/core/migrations/descriptor-planner.ts +0 -464
  191. package/src/core/migrations/operation-descriptors.ts +0 -166
  192. package/src/core/migrations/operation-resolver.ts +0 -929
  193. package/src/core/migrations/planner-reconciliation.ts +0 -798
  194. package/src/core/migrations/scaffolding.ts +0 -140
  195. package/src/exports/migration-builders.ts +0 -56
@@ -1,140 +0,0 @@
1
- import type {
2
- MigrationScaffoldContext,
3
- OperationDescriptor,
4
- } from '@prisma-next/framework-components/control';
5
- import { relative } from 'pathe';
6
-
7
- /**
8
- * Postgres's internal plan shape. Happens to be descriptor-shaped today — that
9
- * is a target-internal choice; the framework has no opinion.
10
- */
11
- type PostgresPlan = readonly OperationDescriptor[];
12
-
13
- function serializeQueryInput(input: unknown): string {
14
- if (typeof input === 'boolean') return String(input);
15
- if (typeof input === 'symbol') return 'TODO /* fill in using db.sql.from(...) */';
16
- if (input === null || input === undefined) return 'null';
17
- if (Array.isArray(input)) {
18
- if (input.length === 0) return '[]';
19
- if (input.every((item) => typeof item === 'symbol'))
20
- return '[TODO /* fill in using db.sql.from(...) */]';
21
- return `[${input.map(serializeQueryInput).join(', ')}]`;
22
- }
23
- return JSON.stringify(input);
24
- }
25
-
26
- function renderDescriptor(desc: OperationDescriptor): string {
27
- switch (desc.kind) {
28
- case 'createTable':
29
- return `createTable(${JSON.stringify(desc['table'])})`;
30
- case 'dropTable':
31
- return `dropTable(${JSON.stringify(desc['table'])})`;
32
- case 'addColumn': {
33
- const args = [JSON.stringify(desc['table']), JSON.stringify(desc['column'])];
34
- if (desc['overrides']) {
35
- args.push(JSON.stringify(desc['overrides']));
36
- }
37
- return `addColumn(${args.join(', ')})`;
38
- }
39
- case 'dropColumn':
40
- return `dropColumn(${JSON.stringify(desc['table'])}, ${JSON.stringify(desc['column'])})`;
41
- case 'alterColumnType': {
42
- const opts: Record<string, unknown> = {};
43
- if (desc['using']) opts['using'] = desc['using'];
44
- if (desc['toType']) opts['toType'] = desc['toType'];
45
- const hasOpts = Object.keys(opts).length > 0;
46
- return hasOpts
47
- ? `alterColumnType(${JSON.stringify(desc['table'])}, ${JSON.stringify(desc['column'])}, ${JSON.stringify(opts)})`
48
- : `alterColumnType(${JSON.stringify(desc['table'])}, ${JSON.stringify(desc['column'])})`;
49
- }
50
- case 'setNotNull':
51
- return `setNotNull(${JSON.stringify(desc['table'])}, ${JSON.stringify(desc['column'])})`;
52
- case 'dropNotNull':
53
- return `dropNotNull(${JSON.stringify(desc['table'])}, ${JSON.stringify(desc['column'])})`;
54
- case 'setDefault':
55
- return `setDefault(${JSON.stringify(desc['table'])}, ${JSON.stringify(desc['column'])})`;
56
- case 'dropDefault':
57
- return `dropDefault(${JSON.stringify(desc['table'])}, ${JSON.stringify(desc['column'])})`;
58
- case 'addPrimaryKey':
59
- return `addPrimaryKey(${JSON.stringify(desc['table'])})`;
60
- case 'addUnique':
61
- return `addUnique(${JSON.stringify(desc['table'])}, ${JSON.stringify(desc['columns'])})`;
62
- case 'addForeignKey':
63
- return `addForeignKey(${JSON.stringify(desc['table'])}, ${JSON.stringify(desc['columns'])})`;
64
- case 'dropConstraint':
65
- return `dropConstraint(${JSON.stringify(desc['table'])}, ${JSON.stringify(desc['constraintName'])})`;
66
- case 'createIndex':
67
- return `createIndex(${JSON.stringify(desc['table'])}, ${JSON.stringify(desc['columns'])})`;
68
- case 'dropIndex':
69
- return `dropIndex(${JSON.stringify(desc['table'])}, ${JSON.stringify(desc['indexName'])})`;
70
- case 'createEnumType':
71
- return desc['values']
72
- ? `createEnumType(${JSON.stringify(desc['typeName'])}, ${JSON.stringify(desc['values'])})`
73
- : `createEnumType(${JSON.stringify(desc['typeName'])})`;
74
- case 'addEnumValues':
75
- return `addEnumValues(${JSON.stringify(desc['typeName'])}, ${JSON.stringify(desc['values'])})`;
76
- case 'dropEnumType':
77
- return `dropEnumType(${JSON.stringify(desc['typeName'])})`;
78
- case 'renameType':
79
- return `renameType(${JSON.stringify(desc['fromName'])}, ${JSON.stringify(desc['toName'])})`;
80
- case 'createDependency':
81
- return `createDependency(${JSON.stringify(desc['dependencyId'])})`;
82
- case 'dataTransform':
83
- return `dataTransform(${JSON.stringify(desc['name'])}, {\n check: ${serializeQueryInput(desc['check'])},\n run: ${serializeQueryInput(desc['run'])},\n })`;
84
- default:
85
- throw new Error(`Unknown Postgres descriptor kind: ${desc.kind}`);
86
- }
87
- }
88
-
89
- function renderPreamble(
90
- plan: PostgresPlan,
91
- context: MigrationScaffoldContext,
92
- ): ReadonlyArray<string> {
93
- const hasDataTransform = plan.some((d) => d.kind === 'dataTransform');
94
-
95
- if (hasDataTransform && context.contractJsonPath) {
96
- const relativeContractDts = relative(context.packageDir, context.contractJsonPath).replace(
97
- /\.json$/,
98
- '.d',
99
- );
100
- const importList = [...new Set(plan.map((d) => d.kind))];
101
- importList.push('TODO');
102
- return [
103
- `import type { Contract } from "${relativeContractDts}"`,
104
- `import { createBuilders } from "@prisma-next/target-postgres/migration-builders"`,
105
- '',
106
- `const { ${importList.join(', ')} } = createBuilders<Contract>()`,
107
- ];
108
- }
109
-
110
- const importList = [...new Set(plan.map((d) => d.kind))];
111
- if (importList.length === 0) {
112
- importList.push('createTable');
113
- }
114
- if (hasDataTransform) {
115
- importList.push('TODO');
116
- }
117
- return [
118
- `import { ${importList.join(', ')} } from "@prisma-next/target-postgres/migration-builders"`,
119
- ];
120
- }
121
-
122
- /**
123
- * Render a Postgres descriptor list to a `migration.ts` source string.
124
- *
125
- * Internal to the Postgres target — no longer part of the framework SPI.
126
- * Invoked from two paths:
127
- * - the migrations capability's `renderDescriptorTypeScript` hook (called by
128
- * the CLI after `planWithDescriptors` to seed an editable authoring
129
- * surface, and by `emptyMigration()` to produce the `migration new` stub);
130
- * - directly by this package's unit tests.
131
- */
132
- export function renderDescriptorTypeScript(
133
- descriptors: readonly OperationDescriptor[],
134
- context: MigrationScaffoldContext,
135
- ): string {
136
- const preamble = renderPreamble(descriptors, context);
137
- const calls = descriptors.map((d) => ` ${renderDescriptor(d)},`);
138
- const body = calls.length > 0 ? `\n${calls.join('\n')}\n` : '';
139
- return [...preamble, '', `export default () => [${body}]`, ''].join('\n');
140
- }
@@ -1,56 +0,0 @@
1
- // Re-export everything from the local operation-descriptors module,
2
- // which itself re-exports structural descriptors from sql-family
3
- // and adds postgres-specific data transform support.
4
- export {
5
- type AddColumnDescriptor,
6
- type AddEnumValuesDescriptor,
7
- type AddForeignKeyDescriptor,
8
- type AddPrimaryKeyDescriptor,
9
- type AddUniqueDescriptor,
10
- type AlterColumnTypeDescriptor,
11
- addColumn,
12
- addEnumValues,
13
- addForeignKey,
14
- addPrimaryKey,
15
- addUnique,
16
- alterColumnType,
17
- type Buildable,
18
- builders,
19
- type CreateDependencyDescriptor,
20
- type CreateEnumTypeDescriptor,
21
- type CreateIndexDescriptor,
22
- type CreateTableDescriptor,
23
- createBuilders,
24
- createDependency,
25
- createEnumType,
26
- createIndex,
27
- createTable,
28
- type DataTransformDescriptor,
29
- type DropColumnDescriptor,
30
- type DropConstraintDescriptor,
31
- type DropDefaultDescriptor,
32
- type DropEnumTypeDescriptor,
33
- type DropIndexDescriptor,
34
- type DropNotNullDescriptor,
35
- type DropTableDescriptor,
36
- dataTransform,
37
- dropColumn,
38
- dropConstraint,
39
- dropDefault,
40
- dropEnumType,
41
- dropIndex,
42
- dropNotNull,
43
- dropTable,
44
- type PostgresMigrationOpDescriptor,
45
- type QueryPlanInput,
46
- type RenameTypeDescriptor,
47
- type RunInput,
48
- renameType,
49
- type SetDefaultDescriptor,
50
- type SetNotNullDescriptor,
51
- type SqlMigrationOpDescriptor,
52
- setDefault,
53
- setNotNull,
54
- TODO,
55
- type TodoMarker,
56
- } from '../core/migrations/operation-descriptors';