@prisma-next/family-sql 0.13.0-dev.28 → 0.13.0-dev.29
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-type-constructors-CN60DEWb.mjs → authoring-type-constructors-CjFfO6LM.mjs} +20 -20
- package/dist/authoring-type-constructors-CjFfO6LM.mjs.map +1 -0
- package/dist/{control-adapter-B_s-UMXg.d.mts → control-adapter-Cmw9LvEP.d.mts} +4 -20
- package/dist/control-adapter-Cmw9LvEP.d.mts.map +1 -0
- package/dist/control-adapter.d.mts +1 -1
- package/dist/control.d.mts +4 -4
- package/dist/control.d.mts.map +1 -1
- package/dist/control.mjs +17 -73
- package/dist/control.mjs.map +1 -1
- package/dist/migration.d.mts +1 -1
- package/dist/pack.d.mts +3 -3
- package/dist/pack.mjs +1 -1
- package/dist/schema-verify.d.mts +1 -1
- package/dist/schema-verify.mjs +1 -1
- package/dist/{types-BR5vHjvX.d.mts → types-kgstZ_Zd.d.mts} +2 -2
- package/dist/{types-BR5vHjvX.d.mts.map → types-kgstZ_Zd.d.mts.map} +1 -1
- package/dist/{verify-sql-schema-DcMaT5Zj.d.mts → verify-sql-schema-thU-jKpf.d.mts} +2 -14
- package/dist/verify-sql-schema-thU-jKpf.d.mts.map +1 -0
- package/dist/{verify-sql-schema-CC7EOR2x.mjs → verify-sql-schema-xT4udQLQ.mjs} +10 -117
- package/dist/verify-sql-schema-xT4udQLQ.mjs.map +1 -0
- package/package.json +21 -21
- package/src/core/authoring-entity-types.ts +20 -20
- package/src/core/control-adapter.ts +2 -37
- package/src/core/control-instance.ts +0 -4
- package/src/core/migrations/contract-to-schema-ir.ts +4 -83
- package/src/core/psl-contract-infer/postgres-type-map.ts +5 -22
- package/src/core/psl-contract-infer/sql-schema-ir-to-psl-ast.ts +17 -70
- package/src/core/schema-verify/verify-sql-schema.ts +8 -144
- package/dist/authoring-type-constructors-CN60DEWb.mjs.map +0 -1
- package/dist/control-adapter-B_s-UMXg.d.mts.map +0 -1
- package/dist/verify-sql-schema-CC7EOR2x.mjs.map +0 -1
- package/dist/verify-sql-schema-DcMaT5Zj.d.mts.map +0 -1
package/dist/migration.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { T as SqlPlanTargetDetails, p as SqlMigrationPlanOperation } from "./types-
|
|
1
|
+
import { T as SqlPlanTargetDetails, p as SqlMigrationPlanOperation } from "./types-kgstZ_Zd.mjs";
|
|
2
2
|
import { Migration } from "@prisma-next/migration-tools/migration";
|
|
3
3
|
|
|
4
4
|
//#region src/core/sql-migration.d.ts
|
package/dist/pack.d.mts
CHANGED
|
@@ -230,10 +230,10 @@ declare const sqlFamilyPack: {
|
|
|
230
230
|
};
|
|
231
231
|
readonly entityTypes: import("@prisma-next/framework-components/authoring").AuthoringEntityTypeNamespace;
|
|
232
232
|
readonly pslBlockDescriptors: {
|
|
233
|
-
readonly
|
|
233
|
+
readonly enum: {
|
|
234
234
|
readonly kind: "pslBlock";
|
|
235
|
-
readonly keyword: "
|
|
236
|
-
readonly discriminator: "
|
|
235
|
+
readonly keyword: "enum";
|
|
236
|
+
readonly discriminator: "enum";
|
|
237
237
|
readonly name: {
|
|
238
238
|
readonly required: true;
|
|
239
239
|
};
|
package/dist/pack.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as sqlFamilyPslBlockDescriptors, n as sqlFamilyAuthoringFieldPresets, r as sqlFamilyEntityTypes, t as sqlFamilyAuthoringTypes } from "./authoring-type-constructors-
|
|
1
|
+
import { i as sqlFamilyPslBlockDescriptors, n as sqlFamilyAuthoringFieldPresets, r as sqlFamilyEntityTypes, t as sqlFamilyAuthoringTypes } from "./authoring-type-constructors-CjFfO6LM.mjs";
|
|
2
2
|
//#region src/exports/pack.ts
|
|
3
3
|
const sqlFamilyPack = {
|
|
4
4
|
kind: "family",
|
package/dist/schema-verify.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as verifySqlSchema, n as NativeTypeNormalizer, r as VerifySqlSchemaOptions } from "./verify-sql-schema-
|
|
1
|
+
import { i as verifySqlSchema, n as NativeTypeNormalizer, r as VerifySqlSchemaOptions } from "./verify-sql-schema-thU-jKpf.mjs";
|
|
2
2
|
import { SchemaIssue } from "@prisma-next/framework-components/control";
|
|
3
3
|
import { ControlPolicy } from "@prisma-next/contract/types";
|
|
4
4
|
import { SqlIndexIR, SqlUniqueIR } from "@prisma-next/sql-schema-ir/types";
|
package/dist/schema-verify.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as isUniqueConstraintSatisfied, n as arraysEqual, r as isIndexSatisfied, t as verifySqlSchema } from "./verify-sql-schema-
|
|
1
|
+
import { i as isUniqueConstraintSatisfied, n as arraysEqual, r as isIndexSatisfied, t as verifySqlSchema } from "./verify-sql-schema-xT4udQLQ.mjs";
|
|
2
2
|
export { arraysEqual, isIndexSatisfied, isUniqueConstraintSatisfied, verifySqlSchema };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as SqlControlAdapter } from "./control-adapter-
|
|
1
|
+
import { r as SqlControlAdapter } from "./control-adapter-Cmw9LvEP.mjs";
|
|
2
2
|
import { ContractSerializer, ContractSpace, ControlAdapterDescriptor, ControlExtensionDescriptor, ControlFamilyInstance, ControlStack, MigratableTargetDescriptor, MigrationOperationPolicy, MigrationPlan, MigrationPlanOperation, MigrationPlannerConflict, MigrationPlannerFailureResult, MigrationPlannerSuccessResult, MigrationRunnerExecutionChecks, MigrationRunnerFailure, MigrationRunnerPerSpaceSuccessValue, MigrationRunnerResult, OpFactoryCall, OperationContext, OperationPreview, OperationPreviewCapable, PslContractInferCapable, SchemaIssue, SchemaVerifier, SchemaViewCapable, SignDatabaseResult, VerifyDatabaseResult, VerifyDatabaseSchemaResult } from "@prisma-next/framework-components/control";
|
|
3
3
|
import { SqlControlDriverInstance, SqlStorage, StorageColumn, StorageTable, StorageTypeInstance } from "@prisma-next/sql-contract/types";
|
|
4
4
|
import { PslDocumentAst } from "@prisma-next/framework-components/psl-ast";
|
|
@@ -517,4 +517,4 @@ interface CreateSqlMigrationPlanOptions<TTargetDetails> {
|
|
|
517
517
|
}
|
|
518
518
|
//#endregion
|
|
519
519
|
export { SqlPlannerResult as A, SqlMigrationRunnerResult as C, SqlPlannerConflictKind as D, SqlPlannerConflict as E, StorageTypePlanResult as M, SqlControlFamilyInstance as N, SqlPlannerConflictLocation as O, SqlMigrationRunnerFailure as S, SqlPlanTargetDetails as T, SqlMigrationPlannerPlanOptions as _, FieldEvent as a, SqlMigrationRunnerExecuteCallbacks as b, SqlControlAdapterDescriptor as c, SqlMigrationPlan as d, SqlMigrationPlanContractInfo as f, SqlMigrationPlanner as g, SqlMigrationPlanOperationTarget as h, ExpandNativeTypeInput as i, SqlPlannerSuccessResult as j, SqlPlannerFailureResult as k, SqlControlExtensionDescriptor as l, SqlMigrationPlanOperationStep as m, CodecControlHooks as n, FieldEventContext as o, SqlMigrationPlanOperation as p, CreateSqlMigrationPlanOptions as r, ResolveIdentityValueInput as s, AnyRecord as t, SqlControlTargetDescriptor as u, SqlMigrationRunner as v, SqlMigrationRunnerSuccessValue as w, SqlMigrationRunnerExecuteOptions as x, SqlMigrationRunnerErrorCode as y };
|
|
520
|
-
//# sourceMappingURL=types-
|
|
520
|
+
//# sourceMappingURL=types-kgstZ_Zd.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-
|
|
1
|
+
{"version":3,"file":"types-kgstZ_Zd.d.mts","names":[],"sources":["../src/core/control-instance.ts","../src/core/migrations/types.ts"],"mappings":";;;;;;;;;;;;;;UA4KU,eAAA;EAAA,SACC,MAAA;EAAA,SACA,QAAA;EAAA,SACA,QAAA;EAAA,SACA,UAAA;AAAA;AAAA,KAGN,uBAAA,GAA0B,GAAG,SAAS,eAAA;AAAA,UAEjC,sBAAA;EAAA,SACC,gBAAA,EAAkB,aAAA,CAAc,eAAA;EAAA,SAChC,YAAA,EAAc,aAAA;EAAA,SACd,oBAAA,EAAsB,uBAAA;AAAA;AAAA,UAGhB,wBAAA,SACP,qBAAA,QAA6B,WAAA,GACnC,iBAAA,CAAkB,WAAA,GAClB,uBAAA,CAAwB,WAAA,GACxB,uBAAA,EACA,sBAAA;EAhBO;;AAAU;AAAA;;;;AAGqC;EAsBxD,mBAAA,CAAoB,YAAA,YAAwB,QAAA;EAE5C,MAAA,CAAO,OAAA;IAAA,SACI,MAAA,EAAQ,wBAAA;IAAA,SACR,QAAA;IAAA,SACA,gBAAA;IAAA,SACA,YAAA;IAAA,SACA,UAAA;EAAA,IACP,OAAA,CAAQ,oBAAA;EAzB0C;;;;;;;;;AAAA;EAqCtD,YAAA,CAAa,OAAA;IAAA,SACF,QAAA;IAAA,SACA,MAAA,EAAQ,WAAA;IAAA,SACR,MAAA;IAAA,SACA,mBAAA,EAAqB,aAAA,CAAc,8BAAA;EAAA,IAC1C,0BAAA;EAEJ,IAAA,CAAK,OAAA;IAAA,SACM,MAAA,EAAQ,wBAAA;IAAA,SACR,QAAA;IAAA,SACA,YAAA;IAAA,SACA,UAAA;EAAA,IACP,OAAA,CAAQ,kBAAA;EAEZ,UAAA,CAAW,OAAA;IAAA,SACA,MAAA,EAAQ,wBAAA;IAAA,SACR,QAAA;EAAA,IACP,OAAA,CAAQ,WAAA;EAEZ,gBAAA,CAAiB,QAAA,EAAU,WAAA,GAAc,cAAA;EAEzC,QAAA,CACE,GAAA,EAAK,WAAA,GAAc,OAAA,EACnB,OAAA,EAAS,cAAA,YACR,OAAA,CAAQ,iBAAA;EAPC;;;;;EAcZ,UAAA,CAAW,OAAA;IAAA,SACA,MAAA,EAAQ,wBAAA;IAAA,SACR,KAAA;IAAA,SACA,WAAA;MAAA,SACE,WAAA;MAAA,SACA,WAAA;MAAA,SACA,UAAA;IAAA;EAAA,IAET,OAAA;EAgCA;;;;EA1BJ,YAAA,CAAa,OAAA;IAAA,SACF,MAAA,EAAQ,wBAAA;IAAA,SACR,KAAA;IAAA,SACA,YAAA;IAAA,SACA,WAAA;MAAA,SACE,WAAA;MAAA,SACA,WAAA;MAAA,SACA,UAAA;IAAA;EAAA,IAET,OAAA;EAtFF;;;;EA4FF,gBAAA,CAAiB,OAAA;IAAA,SACN,MAAA,EAAQ,wBAAA;IAAA,SACR,KAAA;IAAA,SACA,KAAA;MAAA,SACE,MAAA;MAAA,SACA,IAAA;MAAA,SACA,EAAA;MAAA,SACA,aAAA;MAAA,SACA,aAAA;MAAA,SACA,UAAA;IAAA;EAAA,IAET,OAAA;EAEJ,4BAAA,aAAyC,OAAA;EAEzC,0BAAA,aAAuC,OAAA;EAEvC,kBAAA,CAAmB,UAAA,WAAqB,sBAAA,KAA2B,gBAAA;AAAA;;;KCrQzD,SAAA,GAAY,QAAQ,CAAC,MAAA;AAAA,UAEhB,qBAAA;EAAA,SACN,UAAA,WAAqB,yBAAyB,CAAC,cAAA;AAAA;ADCsB;;;AAAA,UCK/D,qBAAA;EAAA,SACN,UAAA;EAAA,SACA,OAAA;EAAA,SACA,UAAA,GAAa,MAAM;AAAA;;AD+HT;AAAA;;;;AAGqC;UCxHzC,yBAAA;EAAA,SACN,UAAA;EAAA,SACA,OAAA;EAAA,SACA,UAAA,GAAa,MAAM;AAAA;;;;;;;;;;;;;AD0H0B;AAGxD;KC5GY,UAAA;;;;;;;;;;;;;UAcK,iBAAA;EAAA,SACN,WAAA;EAAA,SACA,SAAA;EAAA,SACA,SAAA;EAAA,SACA,UAAA,GAAa,YAAA;EAAA,SACb,QAAA,GAAW,YAAA;EAAA,SACX,UAAA,GAAa,aAAA;EAAA,SACb,QAAA,GAAW,aAAA;AAAA;AAAA,UAGL,iBAAA;EACf,kBAAA,IAAsB,OAAA;IAAA,SACX,QAAA;IAAA,SACA,YAAA,EAAc,mBAAA;IAAA,SACd,QAAA,EAAU,QAAA,CAAS,UAAA;IAAA,SACnB,MAAA,EAAQ,WAAA;IAAA,SACR,UAAA;IAAA,SACA,MAAA,EAAQ,wBAAA;EAAA,MACb,qBAAA,CAAsB,cAAA;EAC5B,UAAA,IAAc,OAAA;IAAA,SACH,QAAA;IAAA,SACA,YAAA,EAAc,mBAAA;IAAA,SACd,MAAA,EAAQ,WAAA;IAAA,SACR,UAAA;EAAA,eACI,WAAA;EACf,eAAA,IAAmB,OAAA;IAAA,SACR,MAAA,EAAQ,wBAAA;IAAA,SACR,UAAA;EAAA,MACL,OAAA,CAAQ,MAAA,SAAe,mBAAA;EDuEL;;;;;;;;;;EC5DxB,gBAAA,IAAoB,KAAA,EAAO,qBAAA;EDqEP;;;;;;;;;EC3DpB,oBAAA,IAAwB,KAAA,EAAO,yBAAA;EDmE3B;;;;;;;;;;;;;;ECpDJ,YAAA,IAAgB,KAAA,EAAO,UAAA,EAAY,GAAA,EAAK,iBAAA,cAA+B,aAAA;AAAA;AAAA,UAGxD,6BAAA,mCACP,0BAAA,QAAkC,SAAA;EAAA,SACjC,eAAA,SAAwB,uBAAA;EDkE5B;;;;;;;;;;;EAAA,SCtDI,aAAA,GAAgB,aAAA,CAAc,QAAA,CAAS,UAAA;AAAA;AAAA,UAGjC,2BAAA,mCACP,wBAAA,QAAgC,SAAA,EAAW,iBAAA,CAAkB,SAAA;EAAA,SAC5D,eAAA,SAAwB,uBAAA;AAAA;AAAA,UAGlB,6BAAA;EAAA,SACN,WAAA;EAAA,SACA,GAAA;ED4DP;;;;;;;;EAAA,SCnDO,MAAA;EAAA,SACA,IAAA,GAAO,SAAS;AAAA;;;;;;;;UAUV,oBAAA;EAAA,SACN,MAAA;EAAA,SACA,IAAI;AAAA;AAAA,UAGE,+BAAA;EAAA,SACN,EAAA;EAAA,SACA,OAAA,GAAU,cAAc;AAAA;AAAA,UAGlB,yBAAA,yBAAkD,sBAAA;EAAA,SACxD,OAAA;EAAA,SACA,MAAA,EAAQ,+BAAA,CAAgC,cAAA;EAAA,SACxC,QAAA,WAAmB,6BAAA;EAAA,SACnB,OAAA,WAAkB,6BAAA;EAAA,SAClB,SAAA,WAAoB,6BAAA;EAAA,SACpB,IAAA,GAAO,SAAA;AAAA;AAAA,UAGD,4BAAA;EAAA,SACN,WAAA;EAAA,SACA,WAAW;AAAA;AAAA,UAGL,gBAAA,yBAAyC,aAAA;EDoExD;;;;;;;AAEmF;;;;ACrQrF;;;EDmQE,SCrDS,OAAA;EA9M4B;AAEvC;;;EAFuC,SAmN5B,MAAA,GAAS,4BAAA;EAjNmB;;;EAAA,SAqN5B,WAAA,EAAa,4BAAA;EAAA,SACb,UAAA,YACL,yBAAA,CAA0B,cAAA,IAC1B,OAAA,CAAQ,yBAAA,CAA0B,cAAA;EAvNgC;AAMxE;;;;;;;EANwE,SAiO7D,kBAAA;EAAA,SACA,IAAA,GAAO,SAAA;AAAA;AAAA,KAGN,sBAAA;AAAA,UASK,0BAAA;EAAA,SACN,SAAA;EAAA,SACA,KAAA;EAAA,SACA,MAAA;EAAA,SACA,KAAA;EAAA,SACA,UAAA;EAAA,SACA,IAAA;AAAA;AAAA,UAGM,kBAAA,SAA2B,wBAAA;EAAA,SACjC,IAAA,EAAM,sBAAA;EAAA,SACN,QAAA,GAAW,0BAAA;EAAA,SACX,IAAA,GAAO,SAAA;AAAA;AAAA,UAGD,uBAAA,yBACP,IAAA,CAAK,6BAAA;EAAA,SACJ,IAAA;EAAA,SACA,IAAA,EAAM,gBAAA,CAAiB,cAAA;AAAA;AAAA,UAGjB,uBAAA,SAAgC,IAAA,CAAK,6BAAA;EAAA,SAC3C,IAAA;EAAA,SACA,SAAA,WAAoB,kBAAA;AAAA;AAAA,KAGnB,gBAAA,mBACR,uBAAA,CAAwB,cAAA,IACxB,uBAAA;AAAA,UAEa,8BAAA;EAAA,SACN,QAAA,EAAU,QAAA,CAAS,UAAA;EAAA,SACnB,MAAA,EAAQ,WAAA;EAAA,SACR,MAAA,EAAQ,wBAAA;EAAA,SACR,UAAA;EAvNa;;;;;;;EAAA,SA+Nb,OAAA;EA5NwB;AAGnC;;;;;;;;;;;;;;;EAHmC,SA6OxB,YAAA,EAAc,QAAA,CAAS,UAAA;EAxN1B;;;;;;EAAA,SA+NG,mBAAA,EAAqB,aAAA,CAAc,8BAAA;AAAA;AAAA,UAG7B,mBAAA;EACf,IAAA,CAAK,OAAA,EAAS,8BAAA,GAAiC,gBAAA,CAAiB,cAAA;AAAA;AAAA,UAGjD,kCAAA;EACf,gBAAA,EAAkB,SAAA,EAAW,yBAAA,CAA0B,cAAA;EACvD,mBAAA,EAAqB,SAAA,EAAW,yBAAA,CAA0B,cAAA;AAAA;AAAA,UAG3C,gCAAA;EAAA,SACN,IAAA,EAAM,gBAAA,CAAiB,cAAA;EAAA,SACvB,MAAA,EAAQ,wBAAA;EAzPN;;;;;;;EAAA,SAiQF,KAAA;EA5PE;;;;EAAA,SAiQF,mBAAA,EAAqB,QAAA,CAAS,UAAA;EAnQzB;;;;EAAA,SAwQL,MAAA,EAAQ,wBAAA;EAAA,SACR,UAAA;EAAA,SACA,kBAAA;EAAA,SACA,SAAA,GAAY,kCAAA,CAAmC,cAAA;EAAA,SAC/C,OAAA,GAAU,gBAAA;EAnQU;;;;EAAA,SAwQpB,eAAA,GAAkB,8BAAA;EAnPI;;;;;;EAAA,SA0PtB,mBAAA,EAAqB,aAAA,CAAc,8BAAA;EA3O2B;;AAAa;AAGtF;EAHyE,SAgP9D,cAAA,WAAyB,yBAAA;AAAA;AAAA,KAGxB,2BAAA;AAAA,UAYK,yBAAA,SAAkC,sBAAA;EAAA,SACxC,IAAA,EAAM,2BAAA;EAAA,SACN,IAAA,GAAO,SAAA;AAAA;AAAA,UAGD,8BAAA,SAAuC,mCAAmC;AAAA,KAE/E,wBAAA,GAA2B,MAAA,CACrC,8BAAA,EACA,yBAAA;AAAA,UAGe,kBAAA;EAvQP;;;;;;;;;AAakD;AAG5D;;;EAqQE,OAAA,CAAQ,OAAA;IAAA,SACG,MAAA,EAAQ,wBAAA;IAAA,SACR,eAAA,EAAiB,aAAA,CAAc,gCAAA,CAAiC,cAAA;EAAA,IACvE,OAAA,CAAQ,qBAAA;EAvQJ;;;;;;;;;;EAmRR,mBAAA,CACE,OAAA,EAAS,gCAAA,CAAiC,cAAA,IACzC,OAAA,CAAQ,wBAAA;AAAA;AAAA,UAGI,0BAAA,6DAGG,QAAA,CAAS,UAAA,IAAc,QAAA,CAAS,UAAA,WAC1C,0BAAA,QAAkC,SAAA,EAAW,wBAAA;EAAA,SAC5C,eAAA,SAAwB,uBAAA;;;;;;;WAOxB,kBAAA,EAAoB,kBAAA,CAAmB,SAAA;EApRvB;AAAA;AAU3B;;;;EAV2B,SA2RhB,cAAA,EAAgB,cAAA,CAAe,SAAA,EAAW,WAAA;EACnD,aAAA,CAAc,OAAA,EAAS,iBAAA,CAAkB,SAAA,IAAa,mBAAA,CAAoB,cAAA;EAC1E,YAAA,CAAa,MAAA,EAAQ,wBAAA,GAA2B,kBAAA,CAAmB,cAAA;AAAA;AAAA,UAGpD,6BAAA;EAAA,SACN,QAAA;EAjRA;;;EAAA,SAqRA,OAAA;EAAA,SACA,MAAA,GAAS,4BAAA;EAAA,SACT,WAAA,EAAa,4BAAA;EAAA,SACb,UAAA,WAAqB,yBAAA,CAA0B,cAAA;EApRhB;;;;;EAAA,SA0R/B,kBAAA;EAAA,SACA,IAAA,GAAO,SAAA;AAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OperationContext, VerifyDatabaseSchemaResult } from "@prisma-next/framework-components/control";
|
|
2
|
-
import {
|
|
2
|
+
import { SqlStorage } from "@prisma-next/sql-contract/types";
|
|
3
3
|
import { ColumnDefault, Contract } from "@prisma-next/contract/types";
|
|
4
4
|
import { SqlSchemaIR } from "@prisma-next/sql-schema-ir/types";
|
|
5
5
|
import { TargetBoundComponentDescriptor } from "@prisma-next/framework-components/components";
|
|
@@ -49,18 +49,6 @@ interface VerifySqlSchemaOptions {
|
|
|
49
49
|
* with contract native types (e.g., Postgres 'varchar' → 'character varying').
|
|
50
50
|
*/
|
|
51
51
|
readonly normalizeNativeType?: NativeTypeNormalizer;
|
|
52
|
-
/**
|
|
53
|
-
* Bridging adapter that resolves the existing values for a `PostgresEnumStorageEntry`
|
|
54
|
-
* (looked up by its native type) from the introspected schema IR. Targets
|
|
55
|
-
* supply this so the family-level verifier can walk `PostgresEnumStorageEntry` instances
|
|
56
|
-
* natively without reaching into target-specific `schema.annotations`
|
|
57
|
-
* shapes itself.
|
|
58
|
-
*
|
|
59
|
-
* Returning `null` indicates the type is missing from the database; the
|
|
60
|
-
* verifier emits a `type_missing` issue. A non-null array triggers a
|
|
61
|
-
* value-set comparison against the contract's `PostgresEnumStorageEntry.values`.
|
|
62
|
-
*/
|
|
63
|
-
readonly resolveExistingEnumValues?: (schema: SqlSchemaIR, enumType: PostgresEnumStorageEntry, namespaceId: string) => readonly string[] | null;
|
|
64
52
|
}
|
|
65
53
|
/**
|
|
66
54
|
* Verifies that a SqlSchemaIR matches a Contract.
|
|
@@ -75,4 +63,4 @@ interface VerifySqlSchemaOptions {
|
|
|
75
63
|
declare function verifySqlSchema(options: VerifySqlSchemaOptions): VerifyDatabaseSchemaResult;
|
|
76
64
|
//#endregion
|
|
77
65
|
export { verifySqlSchema as i, NativeTypeNormalizer as n, VerifySqlSchemaOptions as r, DefaultNormalizer as t };
|
|
78
|
-
//# sourceMappingURL=verify-sql-schema-
|
|
66
|
+
//# sourceMappingURL=verify-sql-schema-thU-jKpf.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-sql-schema-thU-jKpf.d.mts","names":[],"sources":["../src/core/schema-verify/verify-sql-schema.ts"],"mappings":";;;;;;;;;;AAmDkB;KAHN,iBAAA,IACV,UAAA,UACA,UAAA,aACG,aAAa;;;;AAOoC;AAKtD;KALY,oBAAA,IAAwB,UAAkB;;;;UAKrC,sBAAA;EAQI;EAAA,SANV,QAAA,EAAU,QAAA,CAAS,UAAA;EAagB;EAAA,SAXnC,MAAA,EAAQ,WAAA;EAiBW;EAAA,SAfnB,MAAA;EAqB0C;EAAA,SAnB1C,OAAA,GAAU,gBAAA;EANV;EAAA,SAQA,oBAAA,EAAsB,WAAA;IAAsB,UAAA;EAAA;EANpC;;;;EAAA,SAWR,mBAAA,EAAqB,aAAA,CAAc,8BAAA;EALb;;;;;EAAA,SAWtB,gBAAA,GAAmB,iBAAA;EAAA;;;;AAMuB;EANvB,SAMnB,mBAAA,GAAsB,oBAAA;AAAA;;;;;;;AAa2D;;;;iBAA5E,eAAA,CAAgB,OAAA,EAAS,sBAAA,GAAyB,0BAA0B"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { blindCast } from "@prisma-next/utils/casts";
|
|
2
1
|
import { assertUniqueCodecOwner, dispositionForCategory } from "@prisma-next/framework-components/control";
|
|
3
2
|
import { defaultIndexName } from "@prisma-next/sql-schema-ir/naming";
|
|
4
3
|
import { ifDefined } from "@prisma-next/utils/defined";
|
|
5
4
|
import { UNBOUND_NAMESPACE_ID } from "@prisma-next/framework-components/ir";
|
|
6
|
-
import { StorageTable,
|
|
5
|
+
import { StorageTable, isStorageTypeInstance } from "@prisma-next/sql-contract/types";
|
|
7
6
|
import { effectiveControlPolicy } from "@prisma-next/contract/types";
|
|
8
7
|
import { canonicalStringify } from "@prisma-next/utils/canonical-stringify";
|
|
9
8
|
//#region src/core/assembly.ts
|
|
@@ -52,17 +51,12 @@ function resolveColumnTypeMetadata(column, storageTypes) {
|
|
|
52
51
|
if (!column.typeRef) return column;
|
|
53
52
|
const referenced = storageTypes[column.typeRef];
|
|
54
53
|
if (!referenced) throw new Error(`Column references storage type "${column.typeRef}" but it is not defined in storage.types.`);
|
|
55
|
-
if (isPostgresEnumStorageEntry(referenced)) return {
|
|
56
|
-
codecId: referenced.codecId,
|
|
57
|
-
nativeType: referenced.nativeType,
|
|
58
|
-
typeParams: { values: referenced.values }
|
|
59
|
-
};
|
|
60
54
|
if (isStorageTypeInstance(referenced)) return {
|
|
61
55
|
codecId: referenced.codecId,
|
|
62
56
|
nativeType: referenced.nativeType,
|
|
63
57
|
typeParams: referenced.typeParams
|
|
64
58
|
};
|
|
65
|
-
throw new Error(`Storage type "${column.typeRef}" has an unknown polymorphic kind; expected codec-
|
|
59
|
+
throw new Error(`Storage type "${column.typeRef}" has an unknown polymorphic kind; expected a codec-typed StorageTypeInstance.`);
|
|
66
60
|
}
|
|
67
61
|
/**
|
|
68
62
|
* Resolves a `ValueSetRef` to its permitted values from the contract storage.
|
|
@@ -220,12 +214,7 @@ function contractToSchemaIR(contract, options) {
|
|
|
220
214
|
if (options.annotationNamespace.length === 0) throw new Error("annotationNamespace must be a non-empty string");
|
|
221
215
|
if (!contract) return { tables: {} };
|
|
222
216
|
const storage = contract.storage;
|
|
223
|
-
const
|
|
224
|
-
for (const ns of Object.values(storage.namespaces)) {
|
|
225
|
-
const nsEnums = ns.entries["type"];
|
|
226
|
-
if (nsEnums) for (const [k, v] of Object.entries(nsEnums)) allTypes[k] = blindCast(v);
|
|
227
|
-
}
|
|
228
|
-
const storageTypes = allTypes;
|
|
217
|
+
const storageTypes = { ...storage.types ?? {} };
|
|
229
218
|
const tables = {};
|
|
230
219
|
for (const ns of Object.values(storage.namespaces)) for (const [tableName, tableDefRaw] of Object.entries(ns.entries.table ?? {})) {
|
|
231
220
|
if (!(tableDefRaw instanceof StorageTable)) throw new Error(`contractToSchemaIR: expected StorageTable at namespaces.${ns.id}.entries.table.${tableName}`);
|
|
@@ -238,48 +227,10 @@ function contractToSchemaIR(contract, options) {
|
|
|
238
227
|
...ifDefined("annotations", deriveAnnotations(storage, options.annotationNamespace, options.resolveEnumNamespaceSchema))
|
|
239
228
|
};
|
|
240
229
|
}
|
|
241
|
-
|
|
242
|
-
* Normalises a native enum storage entry to the codec-typed annotation shape
|
|
243
|
-
* `{codecId, nativeType, typeParams}` the introspector writes and
|
|
244
|
-
* `readExistingEnumValues` reads (`existing.codecId` + `existing.typeParams.values`).
|
|
245
|
-
* Without this the projector would emit the raw `PostgresEnumStorageEntry`
|
|
246
|
-
* shape (top-level `values`, no `typeParams`) and the enum would read as new.
|
|
247
|
-
*/
|
|
248
|
-
function normalizeEnumAnnotation(entry) {
|
|
249
|
-
return toStorageTypeInstance({
|
|
250
|
-
codecId: entry.codecId,
|
|
251
|
-
nativeType: entry.nativeType,
|
|
252
|
-
typeParams: { values: entry.values }
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
function deriveAnnotations(storage, annotationNamespace, resolveEnumNamespaceSchema) {
|
|
230
|
+
function deriveAnnotations(storage, annotationNamespace, _resolveEnumNamespaceSchema) {
|
|
256
231
|
const storageTypes = {};
|
|
257
|
-
const
|
|
258
|
-
const
|
|
259
|
-
const schemaName = resolveEnumNamespaceSchema ? resolveEnumNamespaceSchema(storage, namespaceId) : "public";
|
|
260
|
-
const bySchema = enumTypes[schemaName] ?? {};
|
|
261
|
-
bySchema[entry.nativeType] = normalizeEnumAnnotation(entry);
|
|
262
|
-
enumTypes[schemaName] = bySchema;
|
|
263
|
-
};
|
|
264
|
-
for (const typeInstance of Object.values(storage.types ?? {})) {
|
|
265
|
-
if (isPostgresEnumStorageEntry(typeInstance)) {
|
|
266
|
-
addEnum(UNBOUND_NAMESPACE_ID, typeInstance);
|
|
267
|
-
continue;
|
|
268
|
-
}
|
|
269
|
-
if (isStorageTypeInstance(typeInstance)) storageTypes[typeInstance.nativeType] = typeInstance;
|
|
270
|
-
}
|
|
271
|
-
for (const [namespaceId, ns] of Object.entries(storage.namespaces)) {
|
|
272
|
-
const nsEnums = ns.entries["type"];
|
|
273
|
-
if (!nsEnums) continue;
|
|
274
|
-
for (const entry of Object.values(nsEnums)) {
|
|
275
|
-
if (!isPostgresEnumStorageEntry(entry)) continue;
|
|
276
|
-
addEnum(namespaceId, entry);
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
const envelope = {
|
|
280
|
-
...Object.keys(storageTypes).length > 0 ? { storageTypes } : {},
|
|
281
|
-
...Object.keys(enumTypes).length > 0 ? { enumTypes } : {}
|
|
282
|
-
};
|
|
232
|
+
for (const typeInstance of Object.values(storage.types ?? {})) if (isStorageTypeInstance(typeInstance)) storageTypes[typeInstance.nativeType] = typeInstance;
|
|
233
|
+
const envelope = { ...Object.keys(storageTypes).length > 0 ? { storageTypes } : {} };
|
|
283
234
|
if (Object.keys(envelope).length === 0) return void 0;
|
|
284
235
|
return { [annotationNamespace]: envelope };
|
|
285
236
|
}
|
|
@@ -838,22 +789,17 @@ function verifyCheckConstraints(contractChecks, schemaChecks, tableName, namespa
|
|
|
838
789
|
* @returns VerifyDatabaseSchemaResult with verification tree and issues
|
|
839
790
|
*/
|
|
840
791
|
function verifySqlSchema(options) {
|
|
841
|
-
const { contract, schema, strict, context, typeMetadataRegistry, normalizeDefault, normalizeNativeType
|
|
792
|
+
const { contract, schema, strict, context, typeMetadataRegistry, normalizeDefault, normalizeNativeType } = options;
|
|
842
793
|
const startTime = Date.now();
|
|
843
794
|
const codecHooks = extractCodecControlHooks(options.frameworkComponents);
|
|
844
795
|
const { contractStorageHash, contractProfileHash, contractTarget } = extractContractMetadata(contract);
|
|
845
|
-
const allStorageTypesMap = { ...contract.storage.types ?? {} };
|
|
846
|
-
for (const ns of Object.values(contract.storage.namespaces)) {
|
|
847
|
-
const nsEnums = blindCast(ns.entries).type;
|
|
848
|
-
if (nsEnums) for (const [k, v] of Object.entries(nsEnums)) allStorageTypesMap[k] = v;
|
|
849
|
-
}
|
|
850
796
|
const { issues, rootChildren } = verifySchemaTables({
|
|
851
797
|
contract,
|
|
852
798
|
schema,
|
|
853
799
|
strict,
|
|
854
800
|
typeMetadataRegistry,
|
|
855
801
|
codecHooks,
|
|
856
|
-
storageTypes:
|
|
802
|
+
storageTypes: contract.storage.types ?? {},
|
|
857
803
|
...ifDefined("normalizeDefault", normalizeDefault),
|
|
858
804
|
...ifDefined("normalizeNativeType", normalizeNativeType)
|
|
859
805
|
});
|
|
@@ -892,22 +838,6 @@ function verifySqlSchema(options) {
|
|
|
892
838
|
schema
|
|
893
839
|
}) : [], effectiveControlPolicy(void 0, contract.defaultControlPolicy));
|
|
894
840
|
}
|
|
895
|
-
for (const nsId of Object.keys(contract.storage.namespaces)) {
|
|
896
|
-
const ns = contract.storage.namespaces[nsId];
|
|
897
|
-
if (!ns) continue;
|
|
898
|
-
const nsEnums = ns.entries["type"];
|
|
899
|
-
if (!nsEnums) continue;
|
|
900
|
-
for (const [typeName, entry] of Object.entries(nsEnums)) {
|
|
901
|
-
if (!isPostgresEnumStorageEntry(entry)) continue;
|
|
902
|
-
pushTypeNode(typeName, `storage.namespaces.${nsId}.entries.type.${typeName}`, verifyEnumType({
|
|
903
|
-
typeName,
|
|
904
|
-
typeInstance: entry,
|
|
905
|
-
schema,
|
|
906
|
-
resolveExistingEnumValues,
|
|
907
|
-
namespaceId: nsId
|
|
908
|
-
}), effectiveControlPolicy(entry.control, contract.defaultControlPolicy));
|
|
909
|
-
}
|
|
910
|
-
}
|
|
911
841
|
if (typeNodes.length > 0) {
|
|
912
842
|
const typesStatus = typeNodes.some((n) => n.status === "fail") ? "fail" : typeNodes.some((n) => n.status === "warn") ? "warn" : "pass";
|
|
913
843
|
rootChildren.push({
|
|
@@ -953,38 +883,6 @@ function verifySqlSchema(options) {
|
|
|
953
883
|
timings: { total: totalTime }
|
|
954
884
|
};
|
|
955
885
|
}
|
|
956
|
-
/**
|
|
957
|
-
* Native verification walk for `PostgresEnumStorageEntry` instances (no codec hook).
|
|
958
|
-
*
|
|
959
|
-
* Bridges the native `PostgresEnumStorageEntry.values` against the introspected schema
|
|
960
|
-
* IR via the target-supplied `resolveExistingEnumValues` adapter. Without an
|
|
961
|
-
* adapter, the verifier conservatively reports the enum as missing — there
|
|
962
|
-
* is no other way for the family layer to learn about live enum types.
|
|
963
|
-
*/
|
|
964
|
-
function verifyEnumType(options) {
|
|
965
|
-
const { typeName, typeInstance, schema, namespaceId, resolveExistingEnumValues } = options;
|
|
966
|
-
const desired = typeInstance.values;
|
|
967
|
-
const existing = resolveExistingEnumValues?.(schema, typeInstance, namespaceId) ?? null;
|
|
968
|
-
if (!existing) return [{
|
|
969
|
-
kind: "type_missing",
|
|
970
|
-
typeName,
|
|
971
|
-
namespaceId,
|
|
972
|
-
message: `Type "${typeName}" is missing from database`
|
|
973
|
-
}];
|
|
974
|
-
if (arraysEqual(existing, desired)) return [];
|
|
975
|
-
const existingSet = new Set(existing);
|
|
976
|
-
const desiredSet = new Set(desired);
|
|
977
|
-
const addedValues = desired.filter((v) => !existingSet.has(v));
|
|
978
|
-
const removedValues = existing.filter((v) => !desiredSet.has(v));
|
|
979
|
-
return [{
|
|
980
|
-
kind: "enum_values_changed",
|
|
981
|
-
namespaceId,
|
|
982
|
-
typeName,
|
|
983
|
-
addedValues,
|
|
984
|
-
removedValues,
|
|
985
|
-
message: removedValues.length === 0 ? `Enum type "${typeName}" needs new values: ${addedValues.join(", ")}` : `Enum type "${typeName}" values changed (requires rebuild): +[${addedValues.join(", ")}] -[${removedValues.join(", ")}]`
|
|
986
|
-
}];
|
|
987
|
-
}
|
|
988
886
|
function extractContractMetadata(contract) {
|
|
989
887
|
return {
|
|
990
888
|
contractStorageHash: contract.storage.storageHash,
|
|
@@ -1519,17 +1417,12 @@ function resolveContractColumnTypeMetadata(contractColumn, storageTypes, context
|
|
|
1519
1417
|
const columnLabel = context ? `Column "${context.tableName}"."${context.columnName}"` : "Column";
|
|
1520
1418
|
throw new Error(`${columnLabel} references storage type "${contractColumn.typeRef}" but it is not defined in storage.types.`);
|
|
1521
1419
|
}
|
|
1522
|
-
if (isPostgresEnumStorageEntry(referencedType)) return {
|
|
1523
|
-
codecId: referencedType.codecId,
|
|
1524
|
-
nativeType: referencedType.nativeType,
|
|
1525
|
-
typeParams: { values: referencedType.values }
|
|
1526
|
-
};
|
|
1527
1420
|
if (isStorageTypeInstance(referencedType)) return {
|
|
1528
1421
|
codecId: referencedType.codecId,
|
|
1529
1422
|
nativeType: referencedType.nativeType,
|
|
1530
1423
|
typeParams: referencedType.typeParams
|
|
1531
1424
|
};
|
|
1532
|
-
throw new Error(`Storage type "${contractColumn.typeRef}" has an unknown
|
|
1425
|
+
throw new Error(`Storage type "${contractColumn.typeRef}" has an unknown kind; expected a codec-typed StorageTypeInstance.`);
|
|
1533
1426
|
}
|
|
1534
1427
|
/**
|
|
1535
1428
|
* Describes a column default for display purposes.
|
|
@@ -1605,4 +1498,4 @@ function formatLiteralValue(value) {
|
|
|
1605
1498
|
//#endregion
|
|
1606
1499
|
export { contractToSchemaIR as a, extractCodecControlHooks as c, isUniqueConstraintSatisfied as i, arraysEqual as n, detectDestructiveChanges as o, isIndexSatisfied as r, resolveValueSetValues as s, verifySqlSchema as t };
|
|
1607
1500
|
|
|
1608
|
-
//# sourceMappingURL=verify-sql-schema-
|
|
1501
|
+
//# sourceMappingURL=verify-sql-schema-xT4udQLQ.mjs.map
|