@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.
- package/dist/authoring-Bi9aa8zG.mjs +574 -0
- package/dist/authoring-Bi9aa8zG.mjs.map +1 -0
- package/dist/canonicalize-CAbXtVtB.d.mts +37 -0
- package/dist/canonicalize-CAbXtVtB.d.mts.map +1 -0
- package/dist/{codec-ids-CnXu9Qy3.d.mts → codec-ids-BzrFF-I4.d.mts} +3 -2
- package/dist/codec-ids-BzrFF-I4.d.mts.map +1 -0
- package/dist/{codec-ids-BvytN2P8.mjs → codec-ids-C_-Hj6bL.mjs} +3 -2
- package/dist/codec-ids-C_-Hj6bL.mjs.map +1 -0
- package/dist/codec-ids.d.mts +2 -2
- package/dist/codec-ids.mjs +2 -2
- package/dist/{codec-types-DHCkwPKE.d.mts → codec-types-BiIWziRO.d.mts} +3 -2
- package/dist/codec-types-BiIWziRO.d.mts.map +1 -0
- package/dist/codec-types.d.mts +1 -1
- package/dist/codecs-BemGS69L.mjs +927 -0
- package/dist/codecs-BemGS69L.mjs.map +1 -0
- package/dist/{codecs--0A5_4Bq.d.mts → codecs-Cm-nS4mQ.d.mts} +111 -4
- package/dist/codecs-Cm-nS4mQ.d.mts.map +1 -0
- package/dist/codecs.d.mts +2 -2
- package/dist/codecs.mjs +3 -757
- package/dist/codecs.mjs.map +1 -1
- package/dist/contract-free.d.mts +33 -3
- package/dist/contract-free.d.mts.map +1 -1
- package/dist/contract-free.mjs +23 -7
- package/dist/contract-free.mjs.map +1 -1
- package/dist/control-policy-5LE2kwfb.mjs +1285 -0
- package/dist/control-policy-5LE2kwfb.mjs.map +1 -0
- package/dist/control.d.mts +2 -2
- package/dist/control.d.mts.map +1 -1
- package/dist/control.mjs +866 -36
- package/dist/control.mjs.map +1 -1
- package/dist/data-transform-BOWpliq8.mjs.map +1 -1
- package/dist/{data-transform-DDgWdB5o.d.mts → data-transform-DPzwBMhW.d.mts} +3 -3
- package/dist/{data-transform-DDgWdB5o.d.mts.map → data-transform-DPzwBMhW.d.mts.map} +1 -1
- package/dist/data-transform.d.mts +1 -1
- package/dist/{ddl-QDyOSeLc.mjs → ddl-BQzITB_e.mjs} +128 -6
- package/dist/ddl-BQzITB_e.mjs.map +1 -0
- package/dist/ddl.d.mts +3 -2
- package/dist/ddl.mjs +2 -2
- package/dist/default-normalizer.d.mts +1 -1
- package/dist/default-normalizer.d.mts.map +1 -1
- package/dist/default-normalizer.mjs +247 -1
- package/dist/default-normalizer.mjs.map +1 -0
- package/dist/descriptor-meta-DzL6vXAz.mjs +22 -0
- package/dist/descriptor-meta-DzL6vXAz.mjs.map +1 -0
- package/dist/descriptor-meta-runtime-UwYdV8fD.mjs +12 -0
- package/dist/descriptor-meta-runtime-UwYdV8fD.mjs.map +1 -0
- package/dist/diff-database-schema-DULhiCNM.mjs +305 -0
- package/dist/diff-database-schema-DULhiCNM.mjs.map +1 -0
- package/dist/diff-database-schema.d.mts +46 -0
- package/dist/diff-database-schema.d.mts.map +1 -0
- package/dist/diff-database-schema.mjs +2 -0
- package/dist/errors-DO-w0EUS.mjs +35 -0
- package/dist/errors-DO-w0EUS.mjs.map +1 -0
- package/dist/errors.d.mts +11 -9
- package/dist/errors.d.mts.map +1 -1
- package/dist/errors.mjs +1 -1
- package/dist/issue-planner.d.mts +35 -11
- package/dist/issue-planner.d.mts.map +1 -1
- package/dist/issue-planner.mjs +2 -2
- package/dist/migration.d.mts +5 -5
- package/dist/migration.d.mts.map +1 -1
- package/dist/migration.mjs +4 -4
- package/dist/namespace-ids-xtp_ZY86.mjs +7 -0
- package/dist/namespace-ids-xtp_ZY86.mjs.map +1 -0
- package/dist/native-type-normalizer.mjs +37 -1
- package/dist/native-type-normalizer.mjs.map +1 -0
- package/dist/nodes-Bc2N3tMy.d.mts +170 -0
- package/dist/nodes-Bc2N3tMy.d.mts.map +1 -0
- package/dist/nodes-DJC5B8Id.mjs +192 -0
- package/dist/nodes-DJC5B8Id.mjs.map +1 -0
- package/dist/{op-factory-call-DmQEc3XV.d.mts → op-factory-call-Bn9zDx4_.d.mts} +114 -15
- package/dist/op-factory-call-Bn9zDx4_.d.mts.map +1 -0
- package/dist/{op-factory-call-D_p5vxwt.mjs → op-factory-call-D6yu-PlS.mjs} +469 -32
- package/dist/op-factory-call-D6yu-PlS.mjs.map +1 -0
- package/dist/op-factory-call.d.mts +2 -2
- package/dist/op-factory-call.mjs +2 -2
- package/dist/pack.d.mts +300 -3
- package/dist/pack.d.mts.map +1 -1
- package/dist/pack.mjs +1 -1
- package/dist/planner-DwDxdYxi.mjs +390 -0
- package/dist/planner-DwDxdYxi.mjs.map +1 -0
- package/dist/{planner-ddl-builders-B2wOwLqI.mjs → planner-ddl-builders-BKlmGDJl.mjs} +17 -28
- package/dist/planner-ddl-builders-BKlmGDJl.mjs.map +1 -0
- package/dist/planner-ddl-builders.d.mts +4 -6
- package/dist/planner-ddl-builders.d.mts.map +1 -1
- package/dist/planner-ddl-builders.mjs +2 -2
- package/dist/planner-identity-values-CJPha2Sz.mjs.map +1 -1
- package/dist/planner-identity-values.d.mts +8 -2
- package/dist/planner-identity-values.d.mts.map +1 -1
- package/dist/planner-identity-values.mjs +2 -2
- package/dist/{planner-produced-postgres-migration-QqHa2C2l.d.mts → planner-produced-postgres-migration-BEY1T0Xm.d.mts} +4 -4
- package/dist/{planner-produced-postgres-migration-QqHa2C2l.d.mts.map → planner-produced-postgres-migration-BEY1T0Xm.d.mts.map} +1 -1
- package/dist/{planner-produced-postgres-migration-Cji5vxUf.mjs → planner-produced-postgres-migration-BGPpq56_.mjs} +3 -3
- package/dist/{planner-produced-postgres-migration-Cji5vxUf.mjs.map → planner-produced-postgres-migration-BGPpq56_.mjs.map} +1 -1
- package/dist/planner-produced-postgres-migration.d.mts +1 -1
- package/dist/planner-produced-postgres-migration.mjs +1 -1
- package/dist/{planner-sql-checks-jqUUGyQR.mjs → planner-sql-checks-CDXn2uaS.mjs} +5 -5
- package/dist/{planner-sql-checks-jqUUGyQR.mjs.map → planner-sql-checks-CDXn2uaS.mjs.map} +1 -1
- package/dist/planner-sql-checks.d.mts +2 -2
- package/dist/planner-sql-checks.d.mts.map +1 -1
- package/dist/planner-sql-checks.mjs +1 -1
- package/dist/{planner-target-details-CIY6tLeo.d.mts → planner-target-details-HkP4RrRO.d.mts} +2 -2
- package/dist/planner-target-details-HkP4RrRO.d.mts.map +1 -0
- package/dist/planner-target-details.d.mts +1 -1
- package/dist/planner.d.mts +72 -17
- package/dist/planner.d.mts.map +1 -1
- package/dist/planner.mjs +3 -2
- package/dist/{postgres-contract-serializer-k3TAcPMY.mjs → postgres-contract-view-C3LPCLP_.mjs} +45 -41
- package/dist/postgres-contract-view-C3LPCLP_.mjs.map +1 -0
- package/dist/postgres-contract-view-C9j5cqP0.d.mts +34 -0
- package/dist/postgres-contract-view-C9j5cqP0.d.mts.map +1 -0
- package/dist/postgres-database-schema-node-CJv5bfbs.d.mts +262 -0
- package/dist/postgres-database-schema-node-CJv5bfbs.d.mts.map +1 -0
- package/dist/{postgres-migration-Y4YBJqkS.d.mts → postgres-migration-DbckK1su.d.mts} +58 -9
- package/dist/postgres-migration-DbckK1su.d.mts.map +1 -0
- package/dist/{postgres-migration-B5jKrXv3.mjs → postgres-migration-et1td40f.mjs} +78 -45
- package/dist/postgres-migration-et1td40f.mjs.map +1 -0
- package/dist/postgres-native-enum-BwVNf0Ku.mjs +45 -0
- package/dist/postgres-native-enum-BwVNf0Ku.mjs.map +1 -0
- package/dist/postgres-rls-policy--CSddvMR.d.mts +52 -0
- package/dist/postgres-rls-policy--CSddvMR.d.mts.map +1 -0
- package/dist/postgres-role-schema-node-Cm-j0ZGM.mjs +190 -0
- package/dist/postgres-role-schema-node-Cm-j0ZGM.mjs.map +1 -0
- package/dist/postgres-schema-DKq6s1P3.d.mts +269 -0
- package/dist/postgres-schema-DKq6s1P3.d.mts.map +1 -0
- package/dist/{postgres-schema-COGZ1ark.mjs → postgres-schema-DYATroNx.mjs} +200 -11
- package/dist/postgres-schema-DYATroNx.mjs.map +1 -0
- package/dist/postgres-table-schema-node-D6LvInCe.mjs +216 -0
- package/dist/postgres-table-schema-node-D6LvInCe.mjs.map +1 -0
- package/dist/render-ops.d.mts +1 -1
- package/dist/{render-typescript-KMgosran.mjs → render-typescript-7yqILcwr.mjs} +45 -16
- package/dist/render-typescript-7yqILcwr.mjs.map +1 -0
- package/dist/render-typescript.mjs +1 -1
- package/dist/resolve-ddl-schema-DpGte50u.mjs +22 -0
- package/dist/resolve-ddl-schema-DpGte50u.mjs.map +1 -0
- package/dist/rls-canonicalize.d.mts +20 -0
- package/dist/rls-canonicalize.d.mts.map +1 -0
- package/dist/rls-canonicalize.mjs +2 -0
- package/dist/runtime.d.mts +6 -8
- package/dist/runtime.d.mts.map +1 -1
- package/dist/runtime.mjs +3 -3
- package/dist/runtime.mjs.map +1 -1
- package/dist/schema-ir-annotations.d.mts +15 -0
- package/dist/schema-ir-annotations.d.mts.map +1 -0
- package/dist/schema-ir-annotations.mjs +2 -0
- package/dist/{sql-utils-DcfMz4MQ.mjs → sql-utils-SU4FDvIV.mjs} +12 -3
- package/dist/{sql-utils-DcfMz4MQ.mjs.map → sql-utils-SU4FDvIV.mjs.map} +1 -1
- package/dist/sql-utils.d.mts +8 -1
- package/dist/sql-utils.d.mts.map +1 -1
- package/dist/sql-utils.mjs +2 -2
- package/dist/types.d.mts +4 -140
- package/dist/types.mjs +5 -2
- package/dist/wire-name-rHHtr1h0.mjs +75 -0
- package/dist/wire-name-rHHtr1h0.mjs.map +1 -0
- package/package.json +26 -20
- package/src/contract-free/checks.ts +153 -0
- package/src/contract-free/control-bootstrap.ts +20 -3
- package/src/contract-free/ddl.ts +98 -1
- package/src/core/authoring.ts +509 -2
- package/src/core/codec-helpers.ts +33 -7
- package/src/core/codec-ids.ts +1 -0
- package/src/core/codec-type-map.ts +2 -0
- package/src/core/codecs.ts +193 -12
- package/src/core/ddl/nodes.ts +185 -2
- package/src/core/default-normalizer.ts +122 -2
- package/src/core/descriptor-meta.ts +10 -1
- package/src/core/entity-kinds.ts +41 -0
- package/src/core/errors.ts +14 -12
- package/src/core/migrations/bound-schema.ts +10 -0
- package/src/core/migrations/column-ddl-rendering.ts +117 -0
- package/src/core/migrations/contract-to-postgres-database-schema-node.ts +189 -0
- package/src/core/migrations/control-policy.ts +217 -65
- package/src/core/migrations/diff-database-schema.ts +252 -0
- package/src/core/migrations/issue-planner.ts +817 -656
- package/src/core/migrations/op-factory-call.ts +383 -23
- package/src/core/migrations/operations/columns.ts +24 -12
- package/src/core/migrations/operations/constraints.ts +1 -1
- package/src/core/migrations/operations/data-transform.ts +6 -0
- package/src/core/migrations/operations/dependencies.ts +2 -1
- package/src/core/migrations/operations/native-enum-types.ts +62 -0
- package/src/core/migrations/operations/rls.ts +187 -0
- package/src/core/migrations/operations/shared.ts +0 -30
- package/src/core/migrations/planner-ddl-builders.ts +31 -59
- package/src/core/migrations/planner-identity-values.ts +1 -1
- package/src/core/migrations/planner-recipes.ts +31 -13
- package/src/core/migrations/planner-sql-checks.ts +1 -1
- package/src/core/migrations/planner-strategies.ts +248 -216
- package/src/core/migrations/planner-target-details.ts +3 -1
- package/src/core/migrations/planner.ts +357 -67
- package/src/core/migrations/postgres-migration.ts +118 -86
- package/src/core/migrations/render-typescript.ts +42 -15
- package/src/core/migrations/resolve-ddl-schema.ts +26 -0
- package/src/core/migrations/runner.ts +11 -16
- package/src/core/migrations/verify-postgres-namespaces.ts +46 -31
- package/src/core/namespace-ids.ts +3 -0
- package/src/core/postgres-contract-serializer.ts +46 -71
- package/src/core/postgres-contract-view.ts +48 -0
- package/src/core/postgres-native-enum.ts +61 -0
- package/src/core/postgres-rls-enablement.ts +34 -0
- package/src/core/postgres-rls-policy.ts +64 -0
- package/src/core/postgres-role.ts +59 -0
- package/src/core/postgres-schema-verifier.ts +10 -7
- package/src/core/postgres-schema.ts +85 -15
- package/src/core/postgres-validators.ts +34 -0
- package/src/core/psl-infer/infer-psl-contract.ts +1273 -0
- package/src/core/psl-infer/postgres-default-mapping.ts +16 -0
- package/src/core/psl-infer/postgres-type-map.ts +128 -0
- package/src/core/rls/canonicalize.ts +48 -0
- package/src/core/rls/wire-name.ts +33 -0
- package/src/core/schema-ir/node-storage-coordinate.ts +26 -0
- package/src/core/schema-ir/postgres-database-schema-node.ts +61 -0
- package/src/core/schema-ir/postgres-namespace-schema-node.ts +70 -0
- package/src/core/schema-ir/postgres-native-enum-schema-node.ts +83 -0
- package/src/core/schema-ir/postgres-policy-schema-node.ts +90 -0
- package/src/core/schema-ir/postgres-role-schema-node.ts +65 -0
- package/src/core/schema-ir/postgres-table-schema-node.ts +140 -0
- package/src/core/schema-ir/schema-node-kinds.ts +122 -0
- package/src/core/sql-utils.ts +15 -2
- package/src/exports/codecs.ts +3 -0
- package/src/exports/contract-free.ts +11 -1
- package/src/exports/control.ts +27 -33
- package/src/exports/ddl.ts +8 -0
- package/src/exports/diff-database-schema.ts +7 -0
- package/src/exports/issue-planner.ts +1 -1
- package/src/exports/migration.ts +1 -0
- package/src/exports/op-factory-call.ts +4 -0
- package/src/exports/planner-ddl-builders.ts +0 -2
- package/src/exports/planner-identity-values.ts +4 -1
- package/src/exports/planner.ts +1 -0
- package/src/exports/rls-canonicalize.ts +7 -0
- package/src/exports/runtime.ts +1 -0
- package/src/exports/schema-ir-annotations.ts +1 -0
- package/src/exports/sql-utils.ts +1 -0
- package/src/exports/types.ts +37 -0
- package/dist/codec-ids-BvytN2P8.mjs.map +0 -1
- package/dist/codec-ids-CnXu9Qy3.d.mts.map +0 -1
- package/dist/codec-types-DHCkwPKE.d.mts.map +0 -1
- package/dist/codecs--0A5_4Bq.d.mts.map +0 -1
- package/dist/ddl-QDyOSeLc.mjs.map +0 -1
- package/dist/default-normalizer-DyyCHQWs.mjs +0 -131
- package/dist/default-normalizer-DyyCHQWs.mjs.map +0 -1
- package/dist/descriptor-meta-CpGygXpI.mjs +0 -140
- package/dist/descriptor-meta-CpGygXpI.mjs.map +0 -1
- package/dist/errors-CUk87ByX.mjs +0 -33
- package/dist/errors-CUk87ByX.mjs.map +0 -1
- package/dist/issue-planner-DL6g3CmE.mjs +0 -824
- package/dist/issue-planner-DL6g3CmE.mjs.map +0 -1
- package/dist/native-type-normalizer-Bc9XJzWC.mjs +0 -38
- package/dist/native-type-normalizer-Bc9XJzWC.mjs.map +0 -1
- package/dist/nodes-Bbhs2rwj.mjs +0 -76
- package/dist/nodes-Bbhs2rwj.mjs.map +0 -1
- package/dist/nodes-pLeLgdis.d.mts +0 -67
- package/dist/nodes-pLeLgdis.d.mts.map +0 -1
- package/dist/op-factory-call-D_p5vxwt.mjs.map +0 -1
- package/dist/op-factory-call-DmQEc3XV.d.mts.map +0 -1
- package/dist/planner-Bs_baQax.mjs +0 -324
- package/dist/planner-Bs_baQax.mjs.map +0 -1
- package/dist/planner-ddl-builders-B2wOwLqI.mjs.map +0 -1
- package/dist/planner-target-details-CIY6tLeo.d.mts.map +0 -1
- package/dist/postgres-contract-serializer-k3TAcPMY.mjs.map +0 -1
- package/dist/postgres-migration-B5jKrXv3.mjs.map +0 -1
- package/dist/postgres-migration-Y4YBJqkS.d.mts.map +0 -1
- package/dist/postgres-schema-COGZ1ark.mjs.map +0 -1
- package/dist/render-typescript-KMgosran.mjs.map +0 -1
- package/dist/types.d.mts.map +0 -1
- 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
|
+
}
|
package/src/core/sql-utils.ts
CHANGED
|
@@ -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}-
|
|
112
|
+
`${MAX_IDENTIFIER_LENGTH}-byte label limit`,
|
|
100
113
|
value,
|
|
101
114
|
'literal',
|
|
102
115
|
);
|
package/src/exports/codecs.ts
CHANGED
|
@@ -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 {
|
|
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';
|
package/src/exports/control.ts
CHANGED
|
@@ -1,41 +1,30 @@
|
|
|
1
|
-
import type { ColumnDefault
|
|
1
|
+
import type { ColumnDefault } from '@prisma-next/contract/types';
|
|
2
2
|
import type { SqlControlTargetDescriptor } from '@prisma-next/family-sql/control';
|
|
3
|
-
import {
|
|
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 {
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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,
|
package/src/exports/ddl.ts
CHANGED
|
@@ -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';
|
package/src/exports/migration.ts
CHANGED
|
@@ -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,
|
package/src/exports/planner.ts
CHANGED
package/src/exports/runtime.ts
CHANGED
|
@@ -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';
|
package/src/exports/sql-utils.ts
CHANGED
package/src/exports/types.ts
CHANGED
|
@@ -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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"}
|