@prisma-next/target-postgres 0.14.0-dev.8 → 0.14.0-dev.80

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 (266) hide show
  1. package/dist/authoring-Bi9aa8zG.mjs +574 -0
  2. package/dist/authoring-Bi9aa8zG.mjs.map +1 -0
  3. package/dist/canonicalize-CAbXtVtB.d.mts +37 -0
  4. package/dist/canonicalize-CAbXtVtB.d.mts.map +1 -0
  5. package/dist/{codec-ids-CnXu9Qy3.d.mts → codec-ids-BzrFF-I4.d.mts} +3 -2
  6. package/dist/codec-ids-BzrFF-I4.d.mts.map +1 -0
  7. package/dist/{codec-ids-BvytN2P8.mjs → codec-ids-C_-Hj6bL.mjs} +3 -2
  8. package/dist/codec-ids-C_-Hj6bL.mjs.map +1 -0
  9. package/dist/codec-ids.d.mts +2 -2
  10. package/dist/codec-ids.mjs +2 -2
  11. package/dist/{codec-types-DHCkwPKE.d.mts → codec-types-BiIWziRO.d.mts} +3 -2
  12. package/dist/codec-types-BiIWziRO.d.mts.map +1 -0
  13. package/dist/codec-types.d.mts +1 -1
  14. package/dist/codecs-BemGS69L.mjs +927 -0
  15. package/dist/codecs-BemGS69L.mjs.map +1 -0
  16. package/dist/{codecs--0A5_4Bq.d.mts → codecs-Cm-nS4mQ.d.mts} +111 -4
  17. package/dist/codecs-Cm-nS4mQ.d.mts.map +1 -0
  18. package/dist/codecs.d.mts +2 -2
  19. package/dist/codecs.mjs +3 -757
  20. package/dist/codecs.mjs.map +1 -1
  21. package/dist/contract-free.d.mts +33 -3
  22. package/dist/contract-free.d.mts.map +1 -1
  23. package/dist/contract-free.mjs +23 -7
  24. package/dist/contract-free.mjs.map +1 -1
  25. package/dist/control-policy-5LE2kwfb.mjs +1285 -0
  26. package/dist/control-policy-5LE2kwfb.mjs.map +1 -0
  27. package/dist/control.d.mts +2 -2
  28. package/dist/control.d.mts.map +1 -1
  29. package/dist/control.mjs +866 -36
  30. package/dist/control.mjs.map +1 -1
  31. package/dist/data-transform-BOWpliq8.mjs.map +1 -1
  32. package/dist/{data-transform-DDgWdB5o.d.mts → data-transform-DPzwBMhW.d.mts} +3 -3
  33. package/dist/{data-transform-DDgWdB5o.d.mts.map → data-transform-DPzwBMhW.d.mts.map} +1 -1
  34. package/dist/data-transform.d.mts +1 -1
  35. package/dist/{ddl-QDyOSeLc.mjs → ddl-BQzITB_e.mjs} +128 -6
  36. package/dist/ddl-BQzITB_e.mjs.map +1 -0
  37. package/dist/ddl.d.mts +3 -2
  38. package/dist/ddl.mjs +2 -2
  39. package/dist/default-normalizer.d.mts +1 -1
  40. package/dist/default-normalizer.d.mts.map +1 -1
  41. package/dist/default-normalizer.mjs +247 -1
  42. package/dist/default-normalizer.mjs.map +1 -0
  43. package/dist/descriptor-meta-DzL6vXAz.mjs +22 -0
  44. package/dist/descriptor-meta-DzL6vXAz.mjs.map +1 -0
  45. package/dist/descriptor-meta-runtime-UwYdV8fD.mjs +12 -0
  46. package/dist/descriptor-meta-runtime-UwYdV8fD.mjs.map +1 -0
  47. package/dist/diff-database-schema-DULhiCNM.mjs +305 -0
  48. package/dist/diff-database-schema-DULhiCNM.mjs.map +1 -0
  49. package/dist/diff-database-schema.d.mts +46 -0
  50. package/dist/diff-database-schema.d.mts.map +1 -0
  51. package/dist/diff-database-schema.mjs +2 -0
  52. package/dist/errors-DO-w0EUS.mjs +35 -0
  53. package/dist/errors-DO-w0EUS.mjs.map +1 -0
  54. package/dist/errors.d.mts +11 -9
  55. package/dist/errors.d.mts.map +1 -1
  56. package/dist/errors.mjs +1 -1
  57. package/dist/issue-planner.d.mts +35 -11
  58. package/dist/issue-planner.d.mts.map +1 -1
  59. package/dist/issue-planner.mjs +2 -2
  60. package/dist/migration.d.mts +5 -5
  61. package/dist/migration.d.mts.map +1 -1
  62. package/dist/migration.mjs +4 -4
  63. package/dist/namespace-ids-xtp_ZY86.mjs +7 -0
  64. package/dist/namespace-ids-xtp_ZY86.mjs.map +1 -0
  65. package/dist/native-type-normalizer.mjs +37 -1
  66. package/dist/native-type-normalizer.mjs.map +1 -0
  67. package/dist/nodes-Bc2N3tMy.d.mts +170 -0
  68. package/dist/nodes-Bc2N3tMy.d.mts.map +1 -0
  69. package/dist/nodes-DJC5B8Id.mjs +192 -0
  70. package/dist/nodes-DJC5B8Id.mjs.map +1 -0
  71. package/dist/{op-factory-call-DmQEc3XV.d.mts → op-factory-call-Bn9zDx4_.d.mts} +114 -15
  72. package/dist/op-factory-call-Bn9zDx4_.d.mts.map +1 -0
  73. package/dist/{op-factory-call-D_p5vxwt.mjs → op-factory-call-D6yu-PlS.mjs} +469 -32
  74. package/dist/op-factory-call-D6yu-PlS.mjs.map +1 -0
  75. package/dist/op-factory-call.d.mts +2 -2
  76. package/dist/op-factory-call.mjs +2 -2
  77. package/dist/pack.d.mts +300 -3
  78. package/dist/pack.d.mts.map +1 -1
  79. package/dist/pack.mjs +1 -1
  80. package/dist/planner-DwDxdYxi.mjs +390 -0
  81. package/dist/planner-DwDxdYxi.mjs.map +1 -0
  82. package/dist/{planner-ddl-builders-B2wOwLqI.mjs → planner-ddl-builders-BKlmGDJl.mjs} +17 -28
  83. package/dist/planner-ddl-builders-BKlmGDJl.mjs.map +1 -0
  84. package/dist/planner-ddl-builders.d.mts +4 -6
  85. package/dist/planner-ddl-builders.d.mts.map +1 -1
  86. package/dist/planner-ddl-builders.mjs +2 -2
  87. package/dist/planner-identity-values-CJPha2Sz.mjs.map +1 -1
  88. package/dist/planner-identity-values.d.mts +8 -2
  89. package/dist/planner-identity-values.d.mts.map +1 -1
  90. package/dist/planner-identity-values.mjs +2 -2
  91. package/dist/{planner-produced-postgres-migration-QqHa2C2l.d.mts → planner-produced-postgres-migration-BEY1T0Xm.d.mts} +4 -4
  92. package/dist/{planner-produced-postgres-migration-QqHa2C2l.d.mts.map → planner-produced-postgres-migration-BEY1T0Xm.d.mts.map} +1 -1
  93. package/dist/{planner-produced-postgres-migration-Cji5vxUf.mjs → planner-produced-postgres-migration-BGPpq56_.mjs} +3 -3
  94. package/dist/{planner-produced-postgres-migration-Cji5vxUf.mjs.map → planner-produced-postgres-migration-BGPpq56_.mjs.map} +1 -1
  95. package/dist/planner-produced-postgres-migration.d.mts +1 -1
  96. package/dist/planner-produced-postgres-migration.mjs +1 -1
  97. package/dist/{planner-sql-checks-jqUUGyQR.mjs → planner-sql-checks-CDXn2uaS.mjs} +5 -5
  98. package/dist/{planner-sql-checks-jqUUGyQR.mjs.map → planner-sql-checks-CDXn2uaS.mjs.map} +1 -1
  99. package/dist/planner-sql-checks.d.mts +2 -2
  100. package/dist/planner-sql-checks.d.mts.map +1 -1
  101. package/dist/planner-sql-checks.mjs +1 -1
  102. package/dist/{planner-target-details-CIY6tLeo.d.mts → planner-target-details-HkP4RrRO.d.mts} +2 -2
  103. package/dist/planner-target-details-HkP4RrRO.d.mts.map +1 -0
  104. package/dist/planner-target-details.d.mts +1 -1
  105. package/dist/planner.d.mts +72 -17
  106. package/dist/planner.d.mts.map +1 -1
  107. package/dist/planner.mjs +3 -2
  108. package/dist/{postgres-contract-serializer-k3TAcPMY.mjs → postgres-contract-view-C3LPCLP_.mjs} +45 -41
  109. package/dist/postgres-contract-view-C3LPCLP_.mjs.map +1 -0
  110. package/dist/postgres-contract-view-C9j5cqP0.d.mts +34 -0
  111. package/dist/postgres-contract-view-C9j5cqP0.d.mts.map +1 -0
  112. package/dist/postgres-database-schema-node-CJv5bfbs.d.mts +262 -0
  113. package/dist/postgres-database-schema-node-CJv5bfbs.d.mts.map +1 -0
  114. package/dist/{postgres-migration-Y4YBJqkS.d.mts → postgres-migration-DbckK1su.d.mts} +58 -9
  115. package/dist/postgres-migration-DbckK1su.d.mts.map +1 -0
  116. package/dist/{postgres-migration-B5jKrXv3.mjs → postgres-migration-et1td40f.mjs} +78 -45
  117. package/dist/postgres-migration-et1td40f.mjs.map +1 -0
  118. package/dist/postgres-native-enum-BwVNf0Ku.mjs +45 -0
  119. package/dist/postgres-native-enum-BwVNf0Ku.mjs.map +1 -0
  120. package/dist/postgres-rls-policy--CSddvMR.d.mts +52 -0
  121. package/dist/postgres-rls-policy--CSddvMR.d.mts.map +1 -0
  122. package/dist/postgres-role-schema-node-Cm-j0ZGM.mjs +190 -0
  123. package/dist/postgres-role-schema-node-Cm-j0ZGM.mjs.map +1 -0
  124. package/dist/postgres-schema-DKq6s1P3.d.mts +269 -0
  125. package/dist/postgres-schema-DKq6s1P3.d.mts.map +1 -0
  126. package/dist/{postgres-schema-COGZ1ark.mjs → postgres-schema-DYATroNx.mjs} +200 -11
  127. package/dist/postgres-schema-DYATroNx.mjs.map +1 -0
  128. package/dist/postgres-table-schema-node-D6LvInCe.mjs +216 -0
  129. package/dist/postgres-table-schema-node-D6LvInCe.mjs.map +1 -0
  130. package/dist/render-ops.d.mts +1 -1
  131. package/dist/{render-typescript-KMgosran.mjs → render-typescript-7yqILcwr.mjs} +45 -16
  132. package/dist/render-typescript-7yqILcwr.mjs.map +1 -0
  133. package/dist/render-typescript.mjs +1 -1
  134. package/dist/resolve-ddl-schema-DpGte50u.mjs +22 -0
  135. package/dist/resolve-ddl-schema-DpGte50u.mjs.map +1 -0
  136. package/dist/rls-canonicalize.d.mts +20 -0
  137. package/dist/rls-canonicalize.d.mts.map +1 -0
  138. package/dist/rls-canonicalize.mjs +2 -0
  139. package/dist/runtime.d.mts +6 -8
  140. package/dist/runtime.d.mts.map +1 -1
  141. package/dist/runtime.mjs +3 -3
  142. package/dist/runtime.mjs.map +1 -1
  143. package/dist/schema-ir-annotations.d.mts +15 -0
  144. package/dist/schema-ir-annotations.d.mts.map +1 -0
  145. package/dist/schema-ir-annotations.mjs +2 -0
  146. package/dist/{sql-utils-DcfMz4MQ.mjs → sql-utils-SU4FDvIV.mjs} +12 -3
  147. package/dist/{sql-utils-DcfMz4MQ.mjs.map → sql-utils-SU4FDvIV.mjs.map} +1 -1
  148. package/dist/sql-utils.d.mts +8 -1
  149. package/dist/sql-utils.d.mts.map +1 -1
  150. package/dist/sql-utils.mjs +2 -2
  151. package/dist/types.d.mts +4 -140
  152. package/dist/types.mjs +5 -2
  153. package/dist/wire-name-rHHtr1h0.mjs +75 -0
  154. package/dist/wire-name-rHHtr1h0.mjs.map +1 -0
  155. package/package.json +26 -20
  156. package/src/contract-free/checks.ts +153 -0
  157. package/src/contract-free/control-bootstrap.ts +20 -3
  158. package/src/contract-free/ddl.ts +98 -1
  159. package/src/core/authoring.ts +509 -2
  160. package/src/core/codec-helpers.ts +33 -7
  161. package/src/core/codec-ids.ts +1 -0
  162. package/src/core/codec-type-map.ts +2 -0
  163. package/src/core/codecs.ts +193 -12
  164. package/src/core/ddl/nodes.ts +185 -2
  165. package/src/core/default-normalizer.ts +122 -2
  166. package/src/core/descriptor-meta.ts +10 -1
  167. package/src/core/entity-kinds.ts +41 -0
  168. package/src/core/errors.ts +14 -12
  169. package/src/core/migrations/bound-schema.ts +10 -0
  170. package/src/core/migrations/column-ddl-rendering.ts +117 -0
  171. package/src/core/migrations/contract-to-postgres-database-schema-node.ts +189 -0
  172. package/src/core/migrations/control-policy.ts +217 -65
  173. package/src/core/migrations/diff-database-schema.ts +252 -0
  174. package/src/core/migrations/issue-planner.ts +817 -656
  175. package/src/core/migrations/op-factory-call.ts +383 -23
  176. package/src/core/migrations/operations/columns.ts +24 -12
  177. package/src/core/migrations/operations/constraints.ts +1 -1
  178. package/src/core/migrations/operations/data-transform.ts +6 -0
  179. package/src/core/migrations/operations/dependencies.ts +2 -1
  180. package/src/core/migrations/operations/native-enum-types.ts +62 -0
  181. package/src/core/migrations/operations/rls.ts +187 -0
  182. package/src/core/migrations/operations/shared.ts +0 -30
  183. package/src/core/migrations/planner-ddl-builders.ts +31 -59
  184. package/src/core/migrations/planner-identity-values.ts +1 -1
  185. package/src/core/migrations/planner-recipes.ts +31 -13
  186. package/src/core/migrations/planner-sql-checks.ts +1 -1
  187. package/src/core/migrations/planner-strategies.ts +248 -216
  188. package/src/core/migrations/planner-target-details.ts +3 -1
  189. package/src/core/migrations/planner.ts +357 -67
  190. package/src/core/migrations/postgres-migration.ts +118 -86
  191. package/src/core/migrations/render-typescript.ts +42 -15
  192. package/src/core/migrations/resolve-ddl-schema.ts +26 -0
  193. package/src/core/migrations/runner.ts +11 -16
  194. package/src/core/migrations/verify-postgres-namespaces.ts +46 -31
  195. package/src/core/namespace-ids.ts +3 -0
  196. package/src/core/postgres-contract-serializer.ts +46 -71
  197. package/src/core/postgres-contract-view.ts +48 -0
  198. package/src/core/postgres-native-enum.ts +61 -0
  199. package/src/core/postgres-rls-enablement.ts +34 -0
  200. package/src/core/postgres-rls-policy.ts +64 -0
  201. package/src/core/postgres-role.ts +59 -0
  202. package/src/core/postgres-schema-verifier.ts +10 -7
  203. package/src/core/postgres-schema.ts +85 -15
  204. package/src/core/postgres-validators.ts +34 -0
  205. package/src/core/psl-infer/infer-psl-contract.ts +1273 -0
  206. package/src/core/psl-infer/postgres-default-mapping.ts +16 -0
  207. package/src/core/psl-infer/postgres-type-map.ts +128 -0
  208. package/src/core/rls/canonicalize.ts +48 -0
  209. package/src/core/rls/wire-name.ts +33 -0
  210. package/src/core/schema-ir/node-storage-coordinate.ts +26 -0
  211. package/src/core/schema-ir/postgres-database-schema-node.ts +61 -0
  212. package/src/core/schema-ir/postgres-namespace-schema-node.ts +70 -0
  213. package/src/core/schema-ir/postgres-native-enum-schema-node.ts +83 -0
  214. package/src/core/schema-ir/postgres-policy-schema-node.ts +90 -0
  215. package/src/core/schema-ir/postgres-role-schema-node.ts +65 -0
  216. package/src/core/schema-ir/postgres-table-schema-node.ts +140 -0
  217. package/src/core/schema-ir/schema-node-kinds.ts +122 -0
  218. package/src/core/sql-utils.ts +15 -2
  219. package/src/exports/codecs.ts +3 -0
  220. package/src/exports/contract-free.ts +11 -1
  221. package/src/exports/control.ts +27 -33
  222. package/src/exports/ddl.ts +8 -0
  223. package/src/exports/diff-database-schema.ts +7 -0
  224. package/src/exports/issue-planner.ts +1 -1
  225. package/src/exports/migration.ts +1 -0
  226. package/src/exports/op-factory-call.ts +4 -0
  227. package/src/exports/planner-ddl-builders.ts +0 -2
  228. package/src/exports/planner-identity-values.ts +4 -1
  229. package/src/exports/planner.ts +1 -0
  230. package/src/exports/rls-canonicalize.ts +7 -0
  231. package/src/exports/runtime.ts +1 -0
  232. package/src/exports/schema-ir-annotations.ts +1 -0
  233. package/src/exports/sql-utils.ts +1 -0
  234. package/src/exports/types.ts +37 -0
  235. package/dist/codec-ids-BvytN2P8.mjs.map +0 -1
  236. package/dist/codec-ids-CnXu9Qy3.d.mts.map +0 -1
  237. package/dist/codec-types-DHCkwPKE.d.mts.map +0 -1
  238. package/dist/codecs--0A5_4Bq.d.mts.map +0 -1
  239. package/dist/ddl-QDyOSeLc.mjs.map +0 -1
  240. package/dist/default-normalizer-DyyCHQWs.mjs +0 -131
  241. package/dist/default-normalizer-DyyCHQWs.mjs.map +0 -1
  242. package/dist/descriptor-meta-CpGygXpI.mjs +0 -140
  243. package/dist/descriptor-meta-CpGygXpI.mjs.map +0 -1
  244. package/dist/errors-CUk87ByX.mjs +0 -33
  245. package/dist/errors-CUk87ByX.mjs.map +0 -1
  246. package/dist/issue-planner-DL6g3CmE.mjs +0 -824
  247. package/dist/issue-planner-DL6g3CmE.mjs.map +0 -1
  248. package/dist/native-type-normalizer-Bc9XJzWC.mjs +0 -38
  249. package/dist/native-type-normalizer-Bc9XJzWC.mjs.map +0 -1
  250. package/dist/nodes-Bbhs2rwj.mjs +0 -76
  251. package/dist/nodes-Bbhs2rwj.mjs.map +0 -1
  252. package/dist/nodes-pLeLgdis.d.mts +0 -67
  253. package/dist/nodes-pLeLgdis.d.mts.map +0 -1
  254. package/dist/op-factory-call-D_p5vxwt.mjs.map +0 -1
  255. package/dist/op-factory-call-DmQEc3XV.d.mts.map +0 -1
  256. package/dist/planner-Bs_baQax.mjs +0 -324
  257. package/dist/planner-Bs_baQax.mjs.map +0 -1
  258. package/dist/planner-ddl-builders-B2wOwLqI.mjs.map +0 -1
  259. package/dist/planner-target-details-CIY6tLeo.d.mts.map +0 -1
  260. package/dist/postgres-contract-serializer-k3TAcPMY.mjs.map +0 -1
  261. package/dist/postgres-migration-B5jKrXv3.mjs.map +0 -1
  262. package/dist/postgres-migration-Y4YBJqkS.d.mts.map +0 -1
  263. package/dist/postgres-schema-COGZ1ark.mjs.map +0 -1
  264. package/dist/render-typescript-KMgosran.mjs.map +0 -1
  265. package/dist/types.d.mts.map +0 -1
  266. package/src/core/postgres-enum-type-schema.ts +0 -17
@@ -0,0 +1,140 @@
1
+ import type { DiffableNode } from '@prisma-next/framework-components/control';
2
+ import { freezeNode } from '@prisma-next/framework-components/ir';
3
+ import {
4
+ assertNode,
5
+ PrimaryKey,
6
+ type SqlAnnotations,
7
+ SqlCheckConstraintIR,
8
+ SqlColumnIR,
9
+ SqlForeignKeyIR,
10
+ SqlIndexIR,
11
+ SqlSchemaIRNode,
12
+ type SqlTableIRInput,
13
+ SqlUniqueIR,
14
+ } from '@prisma-next/sql-schema-ir/types';
15
+ import { blindCast } from '@prisma-next/utils/casts';
16
+ import type { PostgresPolicySchemaNode } from './postgres-policy-schema-node';
17
+ import { PostgresSchemaNodeKind } from './schema-node-kinds';
18
+
19
+ export interface PostgresTableSchemaNodeInput extends SqlTableIRInput {
20
+ readonly policies?: readonly PostgresPolicySchemaNode[];
21
+ /**
22
+ * Whether row-level security is enabled on this table. Expected side:
23
+ * stamped from the contract's `entries.rls` marker (never from the
24
+ * policy set). Actual side: stamped from `pg_class.relrowsecurity` at
25
+ * introspection. Required with no default so every construction site
26
+ * supplies a deliberate value.
27
+ */
28
+ readonly rlsEnabled: boolean;
29
+ }
30
+
31
+ /**
32
+ * Postgres-specific table schema-diff node. Carries all `SqlTableIR` fields
33
+ * plus `policies`, and implements `DiffableNode` so the table instance is
34
+ * directly the diff-tree node — no separate wrapper needed.
35
+ *
36
+ * Extends `SqlSchemaIRNode` directly rather than `SqlTableIR` because
37
+ * `SqlTableIR` calls `freezeNode` in its own constructor, which prevents
38
+ * subclass field initialisation.
39
+ *
40
+ * `id` is the table name. `isEqualTo` compares id + `rlsEnabled` — the
41
+ * table's one own diffable attribute; all other structural drift is
42
+ * expressed by its children. `children()` returns every column, the primary
43
+ * key (when present), every foreign key, unique, index, and check constraint,
44
+ * plus the policy nodes — one flat list, so a drifted column and a drifted
45
+ * policy are both reported by the same walk. Order is deterministic (object
46
+ * key order for columns, array order for the rest) so two structurally equal
47
+ * tables always produce the same child list.
48
+ */
49
+ export class PostgresTableSchemaNode extends SqlSchemaIRNode implements DiffableNode {
50
+ override readonly nodeKind = PostgresSchemaNodeKind.table;
51
+
52
+ readonly name: string;
53
+ readonly columns: Readonly<Record<string, SqlColumnIR>>;
54
+ readonly foreignKeys: ReadonlyArray<SqlForeignKeyIR>;
55
+ readonly uniques: ReadonlyArray<SqlUniqueIR>;
56
+ readonly indexes: ReadonlyArray<SqlIndexIR>;
57
+ declare readonly primaryKey?: PrimaryKey;
58
+ declare readonly annotations?: SqlAnnotations;
59
+ declare readonly checks?: ReadonlyArray<SqlCheckConstraintIR>;
60
+ readonly policies: readonly PostgresPolicySchemaNode[];
61
+ readonly rlsEnabled: boolean;
62
+
63
+ constructor(input: PostgresTableSchemaNodeInput) {
64
+ super();
65
+ this.name = input.name;
66
+ this.rlsEnabled = input.rlsEnabled;
67
+ this.columns = Object.freeze(
68
+ Object.fromEntries(
69
+ Object.entries(input.columns).map(([key, col]) => [
70
+ key,
71
+ col instanceof SqlColumnIR ? col : new SqlColumnIR(col),
72
+ ]),
73
+ ),
74
+ );
75
+ this.foreignKeys = Object.freeze(
76
+ input.foreignKeys.map((fk) => (fk instanceof SqlForeignKeyIR ? fk : new SqlForeignKeyIR(fk))),
77
+ );
78
+ this.uniques = Object.freeze(
79
+ input.uniques.map((u) => (u instanceof SqlUniqueIR ? u : new SqlUniqueIR(u))),
80
+ );
81
+ this.indexes = Object.freeze(
82
+ input.indexes.map((i) => (i instanceof SqlIndexIR ? i : new SqlIndexIR(i))),
83
+ );
84
+ if (input.primaryKey !== undefined) {
85
+ this.primaryKey =
86
+ input.primaryKey instanceof PrimaryKey
87
+ ? input.primaryKey
88
+ : new PrimaryKey(input.primaryKey);
89
+ }
90
+ if (input.annotations !== undefined) this.annotations = input.annotations;
91
+ if (input.checks !== undefined && input.checks.length > 0) {
92
+ this.checks = Object.freeze(
93
+ input.checks.map((c) =>
94
+ c instanceof SqlCheckConstraintIR ? c : new SqlCheckConstraintIR(c),
95
+ ),
96
+ );
97
+ }
98
+ this.policies = Object.freeze([...(input.policies ?? [])]);
99
+ freezeNode(this);
100
+ }
101
+
102
+ get id(): string {
103
+ return this.name;
104
+ }
105
+
106
+ /**
107
+ * Equal iff the ids (names) match AND `rlsEnabled` matches — the table's
108
+ * one own attribute in the diff; all other structural drift is expressed
109
+ * by children. A paired `not-equal` therefore always means enablement
110
+ * drift, which the planner maps to ENABLE/DISABLE ROW LEVEL SECURITY.
111
+ */
112
+ isEqualTo(other: DiffableNode): boolean {
113
+ const node = blindCast<
114
+ SqlSchemaIRNode,
115
+ 'every diff-tree node the differ pairs is a SqlSchemaIRNode'
116
+ >(other);
117
+ PostgresTableSchemaNode.assert(node);
118
+ return this.id === node.id && this.rlsEnabled === node.rlsEnabled;
119
+ }
120
+
121
+ children(): readonly DiffableNode[] {
122
+ return [
123
+ ...Object.values(this.columns),
124
+ ...(this.primaryKey ? [this.primaryKey] : []),
125
+ ...this.foreignKeys,
126
+ ...this.uniques,
127
+ ...this.indexes,
128
+ ...(this.checks ?? []),
129
+ ...this.policies,
130
+ ];
131
+ }
132
+
133
+ static is(node: SqlSchemaIRNode): node is PostgresTableSchemaNode {
134
+ return node.nodeKind === PostgresSchemaNodeKind.table;
135
+ }
136
+
137
+ static assert(node: SqlSchemaIRNode): asserts node is PostgresTableSchemaNode {
138
+ assertNode(node, 'PostgresTableSchemaNode', PostgresTableSchemaNode.is);
139
+ }
140
+ }
@@ -0,0 +1,122 @@
1
+ import type {
2
+ DiffableNode,
3
+ DiffSubjectGranularity,
4
+ } from '@prisma-next/framework-components/control';
5
+ import {
6
+ relationalNodeEntityKind,
7
+ relationalNodeGranularity,
8
+ type SqlSchemaIRNode,
9
+ } from '@prisma-next/sql-schema-ir/types';
10
+
11
+ /**
12
+ * A Postgres schema-diff-tree node: a `SqlSchemaIRNode` that also implements
13
+ * `DiffableNode` (the five `Postgres*SchemaNode` classes). `SqlSchemaIRNode`
14
+ * alone is not a `DiffableNode` — its relational subclasses (`SqlColumnIR`, …)
15
+ * carry no `id`/`isEqualTo`/`children` — so this intersection is the honest node
16
+ * type the differ produces and the planner consumes (`SchemaDiff<SqlSchemaDiffNode>`).
17
+ */
18
+ export type SqlSchemaDiffNode = SqlSchemaIRNode & DiffableNode;
19
+
20
+ /**
21
+ * The `nodeKind` discriminant for each Postgres schema-diff node. Each node
22
+ * carries a unique value; the static `is`/`assert` guards compare against these
23
+ * identifiers rather than spelling the string inline or using `instanceof`. The
24
+ * field is an enumerable own property carried on every node instance.
25
+ */
26
+ export const PostgresSchemaNodeKind = {
27
+ database: 'postgres-database',
28
+ namespace: 'postgres-namespace',
29
+ table: 'postgres-table',
30
+ policy: 'postgres-policy',
31
+ role: 'postgres-role',
32
+ nativeEnum: 'postgres-native-enum',
33
+ } as const;
34
+
35
+ export type PostgresSchemaNodeKind =
36
+ (typeof PostgresSchemaNodeKind)[keyof typeof PostgresSchemaNodeKind];
37
+
38
+ /**
39
+ * The one real map from a Postgres-specific `nodeKind` to the
40
+ * framework-neutral {@link DiffSubjectGranularity} its diff issues carry —
41
+ * resolution is by `nodeKind` equality against this map, never a
42
+ * `nodeKind`-suffix string match and never anything stamped on the node.
43
+ */
44
+ const POSTGRES_NODE_GRANULARITY: Readonly<Record<PostgresSchemaNodeKind, DiffSubjectGranularity>> =
45
+ {
46
+ [PostgresSchemaNodeKind.database]: 'structural',
47
+ [PostgresSchemaNodeKind.namespace]: 'namespace',
48
+ [PostgresSchemaNodeKind.table]: 'entity',
49
+ // A policy set is owned by the managed table it attaches to; a role is
50
+ // referenced by the contract but not owned (the framework names it in a
51
+ // policy but never owns the cluster's role list). Both classify as
52
+ // `structural`. The asymmetry for roles — a missing declared one fails, an
53
+ // undeclared live one is tolerated unconditionally — comes from the
54
+ // control policy the diff resolves a role issue against (`external`),
55
+ // not from the granularity.
56
+ [PostgresSchemaNodeKind.policy]: 'structural',
57
+ [PostgresSchemaNodeKind.role]: 'structural',
58
+ [PostgresSchemaNodeKind.nativeEnum]: 'entity',
59
+ };
60
+
61
+ function isPostgresSchemaNodeKind(nodeKind: string): nodeKind is PostgresSchemaNodeKind {
62
+ return Object.hasOwn(POSTGRES_NODE_GRANULARITY, nodeKind);
63
+ }
64
+
65
+ /** Looks up the subject granularity for a Postgres-specific `nodeKind`. */
66
+ export function postgresNodeGranularity(nodeKind: PostgresSchemaNodeKind): DiffSubjectGranularity {
67
+ return POSTGRES_NODE_GRANULARITY[nodeKind];
68
+ }
69
+
70
+ /**
71
+ * The subject granularity for any node kind that appears in a Postgres diff
72
+ * tree — the tree mixes Postgres-specific kinds (database/namespace/table/
73
+ * policy/role) with the relational leaf kinds (columns, constraints, indexes,
74
+ * …), so this dispatches to whichever family/target map owns the kind. Called
75
+ * on demand by consumers (the family verdict, the framework aggregate's
76
+ * unclaimed-elements sweep, via the {@link
77
+ * import('@prisma-next/framework-components/control').SchemaSubjectClassifierCapable}
78
+ * capability) — never stamped onto the issue or the node.
79
+ */
80
+ export function postgresDiffSubjectGranularity(nodeKind: string): DiffSubjectGranularity {
81
+ return isPostgresSchemaNodeKind(nodeKind)
82
+ ? postgresNodeGranularity(nodeKind)
83
+ : relationalNodeGranularity(nodeKind);
84
+ }
85
+
86
+ /**
87
+ * The map from a Postgres-specific `nodeKind` to its storage `entityKind` — the
88
+ * same vocabulary the contract storage's `entries` dictionary keys use. The
89
+ * whole-table and native-enum kinds each have an entity of their own;
90
+ * database/namespace/policy/role nodes map to nothing here (a namespace is
91
+ * addressed by id, not by an `entries` kind; policies and roles are
92
+ * structural, never a sibling space's unclaimed entity).
93
+ *
94
+ * The native enum keys under its PHYSICAL type name in `entries.native_enum`
95
+ * (ADR 221), so its diff node's `typeName` addresses the entity on the generic
96
+ * coordinate directly — no by-type-name walk needed. This lets the framework's
97
+ * unclaimed-elements sweep classify enum ownership the same coordinate way it
98
+ * classifies tables.
99
+ */
100
+ const POSTGRES_NODE_ENTITY_KIND: Partial<Readonly<Record<PostgresSchemaNodeKind, string>>> = {
101
+ [PostgresSchemaNodeKind.table]: 'table',
102
+ [PostgresSchemaNodeKind.nativeEnum]: 'native_enum',
103
+ };
104
+
105
+ /** Looks up the storage entityKind for a Postgres-specific `nodeKind`. */
106
+ export function postgresNodeEntityKind(nodeKind: PostgresSchemaNodeKind): string | undefined {
107
+ return POSTGRES_NODE_ENTITY_KIND[nodeKind];
108
+ }
109
+
110
+ /**
111
+ * The storage `entityKind` for any node kind that appears in a Postgres diff
112
+ * tree — sibling of {@link postgresDiffSubjectGranularity}, dispatching the
113
+ * same way to whichever family/target map owns the kind. Called on demand by
114
+ * the framework aggregate's unclaimed-elements sweep via the {@link
115
+ * import('@prisma-next/framework-components/control').SchemaSubjectClassifierCapable}
116
+ * capability — never stamped onto the issue or the node.
117
+ */
118
+ export function postgresDiffSubjectEntityKind(nodeKind: string): string | undefined {
119
+ return isPostgresSchemaNodeKind(nodeKind)
120
+ ? postgresNodeEntityKind(nodeKind)
121
+ : relationalNodeEntityKind(nodeKind);
122
+ }
@@ -81,6 +81,19 @@ export function qualifyName(schemaName: string, objectName: string): string {
81
81
  return `${quoteIdentifier(schemaName)}.${quoteIdentifier(objectName)}`;
82
82
  }
83
83
 
84
+ /**
85
+ * Quotes a possibly dot-qualified name segment-by-segment:
86
+ * `order_status` -> `"order_status"`, `auth.aal_level` -> `"auth"."aal_level"`.
87
+ * A single-segment name round-trips to exactly {@link quoteIdentifier}; whole-
88
+ * string quoting (`"auth.aal_level"`) would be one wrong identifier.
89
+ */
90
+ export function quoteQualifiedName(name: string): string {
91
+ return name
92
+ .split('.')
93
+ .map((segment) => quoteIdentifier(segment))
94
+ .join('.');
95
+ }
96
+
84
97
  /**
85
98
  * Validates that an enum value doesn't exceed PostgreSQL's label length limit.
86
99
  *
@@ -93,10 +106,10 @@ export function qualifyName(schemaName: string, objectName: string): string {
93
106
  * @throws {SqlEscapeError} If the value exceeds the maximum length
94
107
  */
95
108
  export function validateEnumValueLength(value: string, enumTypeName: string): void {
96
- if (value.length > MAX_IDENTIFIER_LENGTH) {
109
+ if (new TextEncoder().encode(value).length > MAX_IDENTIFIER_LENGTH) {
97
110
  throw new SqlEscapeError(
98
111
  `Enum value "${value.slice(0, 20)}..." for type "${enumTypeName}" exceeds PostgreSQL's ` +
99
- `${MAX_IDENTIFIER_LENGTH}-character label limit`,
112
+ `${MAX_IDENTIFIER_LENGTH}-byte label limit`,
100
113
  value,
101
114
  'literal',
102
115
  );
@@ -2,6 +2,8 @@ export type {
2
2
  PgBitDescriptor,
3
3
  PgBoolDescriptor,
4
4
  PgCharDescriptor,
5
+ PgEnumCodec,
6
+ PgEnumDescriptor,
5
7
  PgFloat4Descriptor,
6
8
  PgFloat8Descriptor,
7
9
  PgFloatDescriptor,
@@ -26,6 +28,7 @@ export {
26
28
  pgBitColumn,
27
29
  pgBoolColumn,
28
30
  pgCharColumn,
31
+ pgEnumDescriptor,
29
32
  pgFloat4Column,
30
33
  pgFloat8Column,
31
34
  pgFloatColumn,
@@ -12,6 +12,10 @@ export {
12
12
  type IndexExistsCheckBuilder,
13
13
  indexExistsAst,
14
14
  noNullValuesAst,
15
+ type RlsEnabledCheckBuilder,
16
+ type RlsPolicyExistsCheckBuilder,
17
+ rlsEnabledAst,
18
+ rlsPolicyExistsAst,
15
19
  type TableExistsCheckBuilder,
16
20
  type TablePrimaryKeyCheckBuilder,
17
21
  tableExistsAst,
@@ -24,5 +28,11 @@ export {
24
28
  buildControlTableBootstrapQueries,
25
29
  buildSignMarkerBootstrapQueries,
26
30
  } from '../contract-free/control-bootstrap';
27
- export { addColumnAction, alterTable, createSchema, createTable } from '../contract-free/ddl';
31
+ export {
32
+ addColumnAction,
33
+ alterTable,
34
+ createSchema,
35
+ createTable,
36
+ dropDefaultAction,
37
+ } from '../contract-free/ddl';
28
38
  export { PostgresTableSource } from '../core/ast/table-source';
@@ -1,41 +1,30 @@
1
- import type { ColumnDefault, Contract } from '@prisma-next/contract/types';
1
+ import type { ColumnDefault } from '@prisma-next/contract/types';
2
2
  import type { SqlControlTargetDescriptor } from '@prisma-next/family-sql/control';
3
- import { contractToSchemaIR, extractCodecControlHooks } from '@prisma-next/family-sql/control';
3
+ import { buildNativeTypeExpander } from '@prisma-next/family-sql/control';
4
4
  import type { SqlControlAdapter } from '@prisma-next/family-sql/control-adapter';
5
- import type { TargetBoundComponentDescriptor } from '@prisma-next/framework-components/components';
6
5
  import type {
7
6
  ControlTargetInstance,
8
7
  MigrationRunner,
9
8
  } from '@prisma-next/framework-components/control';
10
- import type { SqlStorage, StorageColumn } from '@prisma-next/sql-contract/types';
9
+ import type { StorageColumn } from '@prisma-next/sql-contract/types';
10
+ import { blindCast } from '@prisma-next/utils/casts';
11
11
  import { ifDefined } from '@prisma-next/utils/defined';
12
12
  import { postgresTargetDescriptorMeta } from '../core/descriptor-meta';
13
+ import { contractToPostgresDatabaseSchemaNode } from '../core/migrations/contract-to-postgres-database-schema-node';
14
+ import { diffPostgresSchema } from '../core/migrations/diff-database-schema';
13
15
  import { createPostgresMigrationPlanner } from '../core/migrations/planner';
14
16
  import { renderDefaultLiteral } from '../core/migrations/planner-ddl-builders';
15
17
  import type { PostgresPlanTargetDetails } from '../core/migrations/planner-target-details';
16
18
  import { createPostgresMigrationRunner } from '../core/migrations/runner';
17
19
  import { PostgresContractSerializer } from '../core/postgres-contract-serializer';
20
+ import type { PostgresContract } from '../core/postgres-schema';
18
21
  import { PostgresSchemaVerifier } from '../core/postgres-schema-verifier';
19
-
20
- function buildNativeTypeExpander(
21
- frameworkComponents?: ReadonlyArray<TargetBoundComponentDescriptor<'sql', 'postgres'>>,
22
- ) {
23
- if (!frameworkComponents) {
24
- return undefined;
25
- }
26
- const codecHooks = extractCodecControlHooks(frameworkComponents);
27
- return (input: {
28
- readonly nativeType: string;
29
- readonly codecId?: string;
30
- readonly typeParams?: Record<string, unknown>;
31
- }) => {
32
- if (!input.typeParams) return input.nativeType;
33
- if (!input.codecId) return input.nativeType;
34
- const hooks = codecHooks.get(input.codecId);
35
- if (!hooks?.expandNativeType) return input.nativeType;
36
- return hooks.expandNativeType(input);
37
- };
38
- }
22
+ import { inferPostgresPslContract } from '../core/psl-infer/infer-psl-contract';
23
+ import { PostgresDatabaseSchemaNode } from '../core/schema-ir/postgres-database-schema-node';
24
+ import {
25
+ postgresDiffSubjectEntityKind,
26
+ postgresDiffSubjectGranularity,
27
+ } from '../core/schema-ir/schema-node-kinds';
39
28
 
40
29
  export function postgresRenderDefault(def: ColumnDefault, column: StorageColumn): string {
41
30
  if (def.kind === 'function') {
@@ -49,6 +38,15 @@ const postgresTargetDescriptor: SqlControlTargetDescriptor<'postgres', PostgresP
49
38
  ...postgresTargetDescriptorMeta,
50
39
  contractSerializer: new PostgresContractSerializer(),
51
40
  schemaVerifier: new PostgresSchemaVerifier(),
41
+ inferPslContract(schema, describedContracts) {
42
+ PostgresDatabaseSchemaNode.assert(schema);
43
+ return inferPostgresPslContract(schema, describedContracts);
44
+ },
45
+ diffSchema(input) {
46
+ return diffPostgresSchema(input);
47
+ },
48
+ classifySubjectGranularity: postgresDiffSubjectGranularity,
49
+ classifyEntityKind: postgresDiffSubjectEntityKind,
52
50
  migrations: {
53
51
  createPlanner(adapter: SqlControlAdapter<'postgres'>) {
54
52
  return createPostgresMigrationPlanner(adapter);
@@ -58,15 +56,11 @@ const postgresTargetDescriptor: SqlControlTargetDescriptor<'postgres', PostgresP
58
56
  },
59
57
  contractToSchema(contract, frameworkComponents) {
60
58
  const expander = buildNativeTypeExpander(frameworkComponents);
61
- // Blind cast: the framework SPI signature
62
- // (`control-migration-types.ts § contractToSchema`) types
63
- // `contract` as the generic `Contract | null`. Inside the
64
- // postgres target descriptor we know any contract reaching
65
- // this method is SQL-family — the family contract resolver
66
- // would have refused to construct a postgres target binding
67
- // otherwise — so we narrow the generic to
68
- // `Contract<SqlStorage>` for the lowering call.
69
- return contractToSchemaIR(contract as unknown as Contract<SqlStorage> | null, {
59
+ const postgresContract = blindCast<
60
+ PostgresContract | null,
61
+ 'the family resolver only binds this hook for a Postgres-target contract'
62
+ >(contract);
63
+ return contractToPostgresDatabaseSchemaNode(postgresContract, {
70
64
  annotationNamespace: 'pg',
71
65
  ...ifDefined('expandNativeType', expander),
72
66
  renderDefault: postgresRenderDefault,
@@ -3,9 +3,17 @@ export {
3
3
  type AlterTableActionVisitor,
4
4
  type AnyAlterTableAction,
5
5
  type AnyPostgresDdlNode,
6
+ DropDefaultAction,
7
+ PostgresAlterPolicyRename,
6
8
  PostgresAlterTable,
9
+ PostgresCreatePolicy,
7
10
  PostgresCreateSchema,
8
11
  PostgresCreateTable,
12
+ PostgresCreateType,
9
13
  PostgresDdlNode,
10
14
  type PostgresDdlVisitor,
15
+ PostgresDisableRowLevelSecurity,
16
+ PostgresDropPolicy,
17
+ PostgresDropType,
18
+ type RlsPolicyOperation,
11
19
  } from '../core/ddl/nodes';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Own entry point (rather than folded into `exports/planner.ts`) because
3
+ * cross-package tests need `buildPostgresPlanDiff` as a public import to
4
+ * drive the one-differ path directly — they cannot reach it via a relative
5
+ * `src` import.
6
+ */
7
+ export { buildPostgresPlanDiff } from '../core/migrations/diff-database-schema';
@@ -1 +1 @@
1
- export { planIssues } from '../core/migrations/issue-planner';
1
+ export { coalesceSubtreeIssues, planIssues } from '../core/migrations/issue-planner';
@@ -10,6 +10,7 @@ export { MigrationCLI } from '@prisma-next/cli/migration-cli';
10
10
  // directly. The planner emits an import from this same module.
11
11
  export { placeholder } from '@prisma-next/errors/migration';
12
12
  export {
13
+ checkExpression,
13
14
  col,
14
15
  fn,
15
16
  foreignKey,
@@ -2,11 +2,14 @@ export {
2
2
  AddCheckConstraintCall,
3
3
  AddColumnCall,
4
4
  AddForeignKeyCall,
5
+ AddNativeEnumValueCall,
6
+ AddNotNullColumnWithTempDefaultCall,
5
7
  AddPrimaryKeyCall,
6
8
  AddUniqueCall,
7
9
  AlterColumnTypeCall,
8
10
  CreateExtensionCall,
9
11
  CreateIndexCall,
12
+ CreateNativeEnumTypeCall,
10
13
  CreateSchemaCall,
11
14
  CreateTableCall,
12
15
  DataTransformCall,
@@ -15,6 +18,7 @@ export {
15
18
  DropConstraintCall,
16
19
  DropDefaultCall,
17
20
  DropIndexCall,
21
+ DropNativeEnumTypeCall,
18
22
  DropNotNullCall,
19
23
  DropTableCall,
20
24
  RawSqlCall,
@@ -1,7 +1,5 @@
1
1
  export {
2
- buildAddColumnSql,
3
2
  buildColumnDefaultSql,
4
3
  buildColumnTypeSql,
5
- buildCreateTableSql,
6
4
  renderDefaultLiteral,
7
5
  } from '../core/migrations/planner-ddl-builders';
@@ -1 +1,4 @@
1
- export { buildBuiltinIdentityValue } from '../core/migrations/planner-identity-values';
1
+ export {
2
+ buildBuiltinIdentityValue,
3
+ resolveIdentityValue,
4
+ } from '../core/migrations/planner-identity-values';
@@ -1 +1,2 @@
1
+ export { contractToPostgresDatabaseSchemaNode } from '../core/migrations/contract-to-postgres-database-schema-node';
1
2
  export { createPostgresMigrationPlanner } from '../core/migrations/planner';
@@ -0,0 +1,7 @@
1
+ export {
2
+ type ContentHashParts,
3
+ computeContentHash,
4
+ normalizePredicate,
5
+ type RlsPolicyOperation,
6
+ } from '../core/rls/canonicalize';
7
+ export { parseRlsPolicyWireName, type RlsPolicyWireName } from '../core/rls/wire-name';
@@ -6,6 +6,7 @@ import type {
6
6
  import { postgresTargetDescriptorMetaRuntime } from '../core/descriptor-meta-runtime';
7
7
 
8
8
  export { PostgresContractSerializer } from '../core/postgres-contract-serializer';
9
+ export { PostgresContractView } from '../core/postgres-contract-view';
9
10
 
10
11
  export interface PostgresRuntimeTargetInstance extends RuntimeTargetInstance<'sql', 'postgres'> {}
11
12
 
@@ -0,0 +1 @@
1
+ export { resolveDdlSchemaForNamespaceStorage } from '../core/migrations/resolve-ddl-schema';
@@ -2,6 +2,7 @@ export {
2
2
  escapeLiteral,
3
3
  qualifyName,
4
4
  quoteIdentifier,
5
+ quoteQualifiedName,
5
6
  SqlEscapeError,
6
7
  validateEnumValueLength,
7
8
  } from '../core/sql-utils';
@@ -1,6 +1,43 @@
1
+ export { PostgresNativeEnum, type PostgresNativeEnumInput } from '../core/postgres-native-enum';
1
2
  export {
3
+ PostgresRlsEnablement,
4
+ type PostgresRlsEnablementInput,
5
+ } from '../core/postgres-rls-enablement';
6
+ export {
7
+ PostgresRlsPolicy,
8
+ type PostgresRlsPolicyInput,
9
+ type RlsPolicyOperation,
10
+ } from '../core/postgres-rls-policy';
11
+ export { PostgresRole, type PostgresRoleInput } from '../core/postgres-role';
12
+ export {
13
+ isPostgresSchema,
14
+ type PostgresContract,
2
15
  PostgresSchema,
3
16
  PostgresUnboundSchema,
4
17
  postgresCreateNamespace,
5
18
  } from '../core/postgres-schema';
19
+ export {
20
+ PostgresDatabaseSchemaNode,
21
+ type PostgresDatabaseSchemaNodeInput,
22
+ } from '../core/schema-ir/postgres-database-schema-node';
23
+ export {
24
+ PostgresNamespaceSchemaNode,
25
+ type PostgresNamespaceSchemaNodeInput,
26
+ } from '../core/schema-ir/postgres-namespace-schema-node';
27
+ export {
28
+ PostgresNativeEnumSchemaNode,
29
+ type PostgresNativeEnumSchemaNodeInput,
30
+ } from '../core/schema-ir/postgres-native-enum-schema-node';
31
+ export {
32
+ PostgresPolicySchemaNode,
33
+ type PostgresPolicySchemaNodeInput,
34
+ } from '../core/schema-ir/postgres-policy-schema-node';
35
+ export {
36
+ PostgresRoleSchemaNode,
37
+ type PostgresRoleSchemaNodeInput,
38
+ } from '../core/schema-ir/postgres-role-schema-node';
39
+ export {
40
+ PostgresTableSchemaNode,
41
+ type PostgresTableSchemaNodeInput,
42
+ } from '../core/schema-ir/postgres-table-schema-node';
6
43
  export type { PostgresColumnDefault } from '../core/types';
@@ -1 +0,0 @@
1
- {"version":3,"file":"codec-ids-BvytN2P8.mjs","names":[],"sources":["../src/core/codec-ids.ts"],"sourcesContent":["export {\n SQL_CHAR_CODEC_ID,\n SQL_FLOAT_CODEC_ID,\n SQL_INT_CODEC_ID,\n SQL_TEXT_CODEC_ID,\n SQL_TIMESTAMP_CODEC_ID,\n SQL_VARCHAR_CODEC_ID,\n} from '@prisma-next/sql-relational-core/ast';\nexport const PG_TEXT_CODEC_ID = 'pg/text@1' as const;\nexport const PG_TEXT_ARRAY_CODEC_ID = 'pg/text-array@1' as const;\nexport const PG_CHAR_CODEC_ID = 'pg/char@1' as const;\nexport const PG_VARCHAR_CODEC_ID = 'pg/varchar@1' as const;\nexport const PG_INT_CODEC_ID = 'pg/int@1' as const;\nexport const PG_INT2_CODEC_ID = 'pg/int2@1' as const;\nexport const PG_INT4_CODEC_ID = 'pg/int4@1' as const;\nexport const PG_INT8_CODEC_ID = 'pg/int8@1' as const;\nexport const PG_FLOAT_CODEC_ID = 'pg/float@1' as const;\nexport const PG_FLOAT4_CODEC_ID = 'pg/float4@1' as const;\nexport const PG_FLOAT8_CODEC_ID = 'pg/float8@1' as const;\nexport const PG_NUMERIC_CODEC_ID = 'pg/numeric@1' as const;\nexport const PG_BOOL_CODEC_ID = 'pg/bool@1' as const;\nexport const PG_BIT_CODEC_ID = 'pg/bit@1' as const;\nexport const PG_VARBIT_CODEC_ID = 'pg/varbit@1' as const;\nexport const PG_TIMESTAMP_CODEC_ID = 'pg/timestamp@1' as const;\nexport const PG_TIMESTAMPTZ_CODEC_ID = 'pg/timestamptz@1' as const;\nexport const PG_TIME_CODEC_ID = 'pg/time@1' as const;\nexport const PG_TIMETZ_CODEC_ID = 'pg/timetz@1' as const;\nexport const PG_INTERVAL_CODEC_ID = 'pg/interval@1' as const;\nexport const PG_JSON_CODEC_ID = 'pg/json@1' as const;\nexport const PG_JSONB_CODEC_ID = 'pg/jsonb@1' as const;\nexport const PG_BYTEA_CODEC_ID = 'pg/bytea@1' as const;\nexport const PG_UUID_CODEC_ID = 'pg/uuid@1' as const;\n"],"mappings":";;AAQA,MAAa,mBAAmB;AAChC,MAAa,yBAAyB;AACtC,MAAa,mBAAmB;AAChC,MAAa,sBAAsB;AACnC,MAAa,kBAAkB;AAC/B,MAAa,mBAAmB;AAChC,MAAa,mBAAmB;AAChC,MAAa,mBAAmB;AAChC,MAAa,oBAAoB;AACjC,MAAa,qBAAqB;AAClC,MAAa,qBAAqB;AAClC,MAAa,sBAAsB;AACnC,MAAa,mBAAmB;AAChC,MAAa,kBAAkB;AAC/B,MAAa,qBAAqB;AAClC,MAAa,wBAAwB;AACrC,MAAa,0BAA0B;AACvC,MAAa,mBAAmB;AAChC,MAAa,qBAAqB;AAClC,MAAa,uBAAuB;AACpC,MAAa,mBAAmB;AAChC,MAAa,oBAAoB;AACjC,MAAa,oBAAoB;AACjC,MAAa,mBAAmB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"codec-ids-CnXu9Qy3.d.mts","names":[],"sources":["../src/core/codec-ids.ts"],"mappings":";;;cAQa,gBAAA;AAAA,cACA,sBAAA;AAAA,cACA,gBAAA;AAAA,cACA,mBAAA;AAAA,cACA,eAAA;AAAA,cACA,gBAAA;AAAA,cACA,gBAAA;AAAA,cACA,gBAAA;AAAA,cACA,iBAAA;AAAA,cACA,kBAAA;AAAA,cACA,kBAAA;AAAA,cACA,mBAAA;AAAA,cACA,gBAAA;AAAA,cACA,eAAA;AAAA,cACA,kBAAA;AAAA,cACA,qBAAA;AAAA,cACA,uBAAA;AAAA,cACA,gBAAA;AAAA,cACA,kBAAA;AAAA,cACA,oBAAA;AAAA,cACA,gBAAA;AAAA,cACA,iBAAA;AAAA,cACA,iBAAA;AAAA,cACA,gBAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"codec-types-DHCkwPKE.d.mts","names":[],"sources":["../src/core/codec-type-map.ts","../src/exports/codec-types.ts"],"mappings":";;;;;cA4Ca,kBAAA;EAAA;;;;;;iBA8BH,gBAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;KAEE,OAAA,6BAAoC,CAAA,0BAA2B,CAAA,CAAE,CAAA,IAAK,CAAA,CAAE,CAAA,EAAG,CAAA;AAAA,KAE3E,kBAAA,UAA4B,kBAAkB;AAAA,KAE9C,mBAAA,GAAsB,iBAAiB,CAAC,kBAAA;;;KCrExC,UAAA,GAAa,OAAO,CAAC,mBAAA;AAAA,KAI5B,OAAA,kBAAyB,MAAA,qBAA2B,CAAA,0BAClC,KAAA,GAAQ,KAAA,CAAM,CAAA;AAAA,KAGhC,aAAA,eAA4B,MAAA,qBAA2B,OAAA,SAAgB,KAAA;AAAA,KAEhE,IAAA,qBAAyB,aAAa;EAAG,YAAA,EAAc,CAAA;AAAA;AAAA,KACvD,OAAA,qBAA4B,aAAa;EAAG,eAAA,EAAiB,CAAA;AAAA;AAAA,KAC7D,OAAA,+DAAsE,aAAA;EAChF,kBAAA,EAAoB,CAAA;EACpB,cAAA,EAAgB,CAAA;AAAA;AAAA,KAEN,GAAA,qBAAwB,aAAa;EAAG,WAAA,EAAa,CAAA;AAAA;AAAA,KACrD,MAAA,qBAA2B,aAAa;EAAG,cAAA,EAAgB,CAAA;AAAA;AAAA,KAC3D,SAAA,6CAAsD,aAAa;EAC7E,oBAAA,EAAsB,CAAA;AAAA;AAAA,KAEZ,WAAA,6CAAwD,aAAa;EAC/E,sBAAA,EAAwB,CAAA;AAAA;AAAA,KAEd,IAAA,6CAAiD,aAAa;EAAG,eAAA,EAAiB,CAAA;AAAA;AAAA,KAClF,MAAA,6CAAmD,aAAa;EAC1E,iBAAA,EAAmB,CAAA;AAAA;AAAA,KAET,QAAA,6CAAqD,aAAa;EAC5E,mBAAA,EAAqB,CAAA;AAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"codecs--0A5_4Bq.d.mts","names":[],"sources":["../src/core/codecs.ts"],"mappings":"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"}