@prisma-next/family-sql 0.7.0 → 0.8.0-dev.10

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 (42) hide show
  1. package/dist/control-adapter.d.mts +11 -1
  2. package/dist/control-adapter.d.mts.map +1 -1
  3. package/dist/control.d.mts +3 -3
  4. package/dist/control.d.mts.map +1 -1
  5. package/dist/control.mjs +36 -29
  6. package/dist/control.mjs.map +1 -1
  7. package/dist/ir.d.mts +135 -0
  8. package/dist/ir.d.mts.map +1 -0
  9. package/dist/ir.mjs +37 -0
  10. package/dist/ir.mjs.map +1 -0
  11. package/dist/migration.d.mts +1 -1
  12. package/dist/runtime.mjs +1 -1
  13. package/dist/schema-verify.d.mts +2 -1
  14. package/dist/schema-verify.d.mts.map +1 -1
  15. package/dist/schema-verify.mjs +1 -1
  16. package/dist/sql-contract-serializer-ayJ5Radj.mjs +125 -0
  17. package/dist/sql-contract-serializer-ayJ5Radj.mjs.map +1 -0
  18. package/dist/{timestamp-now-generator-BWp8S2sa.mjs → timestamp-now-generator-r7BP5n3l.mjs} +1 -1
  19. package/dist/{timestamp-now-generator-BWp8S2sa.mjs.map → timestamp-now-generator-r7BP5n3l.mjs.map} +1 -1
  20. package/dist/{types-Da-eOg20.d.mts → types-CA8h-8mQ.d.mts} +29 -25
  21. package/dist/types-CA8h-8mQ.d.mts.map +1 -0
  22. package/dist/{verify-pRYxnpiG.mjs → verify-Crewz6hG.mjs} +1 -1
  23. package/dist/{verify-pRYxnpiG.mjs.map → verify-Crewz6hG.mjs.map} +1 -1
  24. package/dist/{verify-sql-schema-DV-UsTG9.mjs → verify-sql-schema-BXw7yx6L.mjs} +53 -7
  25. package/dist/verify-sql-schema-BXw7yx6L.mjs.map +1 -0
  26. package/dist/{verify-sql-schema-CPHiuYHR.d.mts → verify-sql-schema-Bfvz07Ik.d.mts} +14 -2
  27. package/dist/verify-sql-schema-Bfvz07Ik.d.mts.map +1 -0
  28. package/dist/verify.mjs +1 -1
  29. package/package.json +24 -23
  30. package/src/core/control-adapter.ts +14 -0
  31. package/src/core/control-instance.ts +23 -50
  32. package/src/core/ir/sql-contract-serializer-base.ts +136 -0
  33. package/src/core/ir/sql-contract-serializer.ts +18 -0
  34. package/src/core/ir/sql-schema-verifier-base.ts +56 -0
  35. package/src/core/migrations/contract-to-schema-ir.ts +71 -22
  36. package/src/core/migrations/types.ts +25 -5
  37. package/src/core/schema-verify/verify-sql-schema.ts +117 -21
  38. package/src/exports/control.ts +1 -1
  39. package/src/exports/ir.ts +6 -0
  40. package/dist/types-Da-eOg20.d.mts.map +0 -1
  41. package/dist/verify-sql-schema-CPHiuYHR.d.mts.map +0 -1
  42. package/dist/verify-sql-schema-DV-UsTG9.mjs.map +0 -1
@@ -1,5 +1,6 @@
1
- import { n as NativeTypeNormalizer, t as DefaultNormalizer } from "./verify-sql-schema-CPHiuYHR.mjs";
1
+ import { n as NativeTypeNormalizer, t as DefaultNormalizer } from "./verify-sql-schema-Bfvz07Ik.mjs";
2
2
  import { ControlAdapterInstance, ControlDriverInstance, ControlStack } from "@prisma-next/framework-components/control";
3
+ import { PostgresEnumStorageEntry } from "@prisma-next/sql-contract/types";
3
4
  import { ContractMarkerRecord } from "@prisma-next/contract/types";
4
5
  import { AnyQueryAst, LoweredStatement, LowererContext } from "@prisma-next/sql-relational-core/ast";
5
6
  import { SqlSchemaIR } from "@prisma-next/sql-schema-ir/types";
@@ -61,6 +62,15 @@ interface SqlControlAdapter<TTarget extends string = string> extends ControlAdap
61
62
  * before comparison with contract native types during schema verification.
62
63
  */
63
64
  readonly normalizeNativeType?: NativeTypeNormalizer;
65
+ /**
66
+ * Optional bridging adapter for resolving the existing values of a
67
+ * native enum type from the introspected schema IR. Targets supply
68
+ * this so the family-level schema verifier can walk
69
+ * `PostgresEnumStorageEntry` entries natively without needing to
70
+ * know the target-specific `schema.annotations` shape
71
+ * (e.g. `schema.annotations.pg.storageTypes`).
72
+ */
73
+ readonly resolveExistingEnumValues?: (schema: SqlSchemaIR, enumType: PostgresEnumStorageEntry) => readonly string[] | null;
64
74
  /**
65
75
  * Lower a SQL query AST into a target-flavored `{ sql, params }` payload.
66
76
  *
@@ -1 +1 @@
1
- {"version":3,"file":"control-adapter.d.mts","names":[],"sources":["../src/core/control-adapter.ts"],"mappings":";;;;;;;;;AAoBA;;;;UAAiB,iBAAA,0CACP,sBAAA,QAA8B,OAAA;EAiB5B;;;;;;;;;;;;;;;EADV,UAAA,CACE,MAAA,EAAQ,qBAAA,QAA6B,OAAA,GACrC,KAAA,WACC,OAAA,CAAQ,oBAAA;EAsDgD;;;;;;;EA7C3D,cAAA,CACE,MAAA,EAAQ,qBAAA,QAA6B,OAAA,IACpC,OAAA,CAAQ,WAAA,SAAoB,oBAAA;EAbrB;;;;;;;;;;;;EA2BV,UAAA,CACE,MAAA,EAAQ,qBAAA,QAA6B,OAAA,GACrC,QAAA,YACA,MAAA,YACC,OAAA,CAAQ,WAAA;EAJX;;;;;EAAA,SAWS,gBAAA,GAAmB,iBAAA;EAPzB;;;;;EAAA,SAcM,mBAAA,GAAsB,oBAAA;EAW/B;;;;;;;;AASF;EATE,KAAA,CAAM,GAAA,EAAK,WAAA,EAAa,OAAA,EAAS,cAAA,YAA0B,gBAAA;AAAA;;;;;;;UAS5C,2BAAA;EAOf;;;;;;EAAA,MAAA,CAAO,KAAA,EAAO,YAAA,QAAoB,OAAA,IAAW,iBAAA,CAAkB,OAAA;AAAA"}
1
+ {"version":3,"file":"control-adapter.d.mts","names":[],"sources":["../src/core/control-adapter.ts"],"mappings":";;;;;;;;;;AAqBA;;;;UAAiB,iBAAA,0CACP,sBAAA,QAA8B,OAAA;EAiB5B;;;;;;;;;;;;;;;EADV,UAAA,CACE,MAAA,EAAQ,qBAAA,QAA6B,OAAA,GACrC,KAAA,WACC,OAAA,CAAQ,oBAAA;EAmEA;;;;;;;EA1DX,cAAA,CACE,MAAA,EAAQ,qBAAA,QAA6B,OAAA,IACpC,OAAA,CAAQ,WAAA,SAAoB,oBAAA;EA9BO;;;;;;;;;;;;EA4CtC,UAAA,CACE,MAAA,EAAQ,qBAAA,QAA6B,OAAA,GACrC,QAAA,YACA,MAAA,YACC,OAAA,CAAQ,WAAA;EAlBA;;;;;EAAA,SAyBF,gBAAA,GAAmB,iBAAA;EAT1B;;;;;EAAA,SAgBO,mBAAA,GAAsB,oBAAA;EAAtB;;;;;;;;EAAA,SAUA,yBAAA,IACP,MAAA,EAAQ,WAAA,EACR,QAAA,EAAU,wBAAA;EAYN;;;;;;AASR;;;EATE,KAAA,CAAM,GAAA,EAAK,WAAA,EAAa,OAAA,EAAS,cAAA,YAA0B,gBAAA;AAAA;;;;;;;UAS5C,2BAAA;EAOmB;;;;;;EAAlC,MAAA,CAAO,KAAA,EAAO,YAAA,QAAoB,OAAA,IAAW,iBAAA,CAAkB,OAAA;AAAA"}
@@ -1,10 +1,10 @@
1
- import { A as SqlPlannerConflictKind, C as SqlMigrationRunnerExecuteCallbacks, D as SqlMigrationRunnerSuccessValue, E as SqlMigrationRunnerResult, F as StorageTypePlanResult, I as SchemaVerifyOptions, L as SqlControlFamilyInstance, M as SqlPlannerFailureResult, N as SqlPlannerResult, O as SqlPlanTargetDetails, P as SqlPlannerSuccessResult, S as SqlMigrationRunnerErrorCode, T as SqlMigrationRunnerFailure, _ as SqlMigrationPlanOperationStep, a as FieldEvent, b as SqlMigrationPlannerPlanOptions, c as MultiSpaceRunnerResult, d as SqlControlAdapterDescriptor, f as SqlControlExtensionDescriptor, g as SqlMigrationPlanOperation, h as SqlMigrationPlanContractInfo, i as ExpandNativeTypeInput, j as SqlPlannerConflictLocation, k as SqlPlannerConflict, l as MultiSpaceRunnerSuccessValue, m as SqlMigrationPlan, n as CodecControlHooks, o as FieldEventContext, p as SqlControlTargetDescriptor, r as CreateSqlMigrationPlanOptions, s as MultiSpaceRunnerFailure, t as AnyRecord, u as ResolveIdentityValueInput, v as SqlMigrationPlanOperationTarget, w as SqlMigrationRunnerExecuteOptions, x as SqlMigrationRunner, y as SqlMigrationPlanner } from "./types-Da-eOg20.mjs";
1
+ import { A as SqlPlannerConflictKind, C as SqlMigrationRunnerExecuteCallbacks, D as SqlMigrationRunnerSuccessValue, E as SqlMigrationRunnerResult, F as StorageTypePlanResult, I as SqlControlFamilyInstance, M as SqlPlannerFailureResult, N as SqlPlannerResult, O as SqlPlanTargetDetails, P as SqlPlannerSuccessResult, S as SqlMigrationRunnerErrorCode, T as SqlMigrationRunnerFailure, _ as SqlMigrationPlanOperationStep, a as FieldEvent, b as SqlMigrationPlannerPlanOptions, c as MultiSpaceRunnerResult, d as SqlControlAdapterDescriptor, f as SqlControlExtensionDescriptor, g as SqlMigrationPlanOperation, h as SqlMigrationPlanContractInfo, i as ExpandNativeTypeInput, j as SqlPlannerConflictLocation, k as SqlPlannerConflict, l as MultiSpaceRunnerSuccessValue, m as SqlMigrationPlan, n as CodecControlHooks, o as FieldEventContext, p as SqlControlTargetDescriptor, r as CreateSqlMigrationPlanOptions, s as MultiSpaceRunnerFailure, t as AnyRecord, u as ResolveIdentityValueInput, v as SqlMigrationPlanOperationTarget, w as SqlMigrationRunnerExecuteOptions, x as SqlMigrationRunner, y as SqlMigrationPlanner } from "./types-CA8h-8mQ.mjs";
2
2
  import { ControlFamilyDescriptor, ControlStack, MigrationOperationClass, MigrationOperationPolicy, MigrationOperationPolicy as MigrationOperationPolicy$1, MigrationPlan, MigrationPlanOperation, MigrationPlanner, MigrationPlannerConflict, MigrationPlannerConflict as MigrationPlannerConflict$1, MigrationPlannerResult, MutationDefaultGeneratorDescriptor, OpFactoryCall, TargetMigrationsCapability, assembleAuthoringContributions } from "@prisma-next/framework-components/control";
3
+ import { SqlStorage, StorageColumn } from "@prisma-next/sql-contract/types";
3
4
  import { NotOk, Ok } from "@prisma-next/utils/result";
4
5
  import { ColumnDefault, Contract } from "@prisma-next/contract/types";
5
6
  import { SqlSchemaIR } from "@prisma-next/sql-schema-ir/types";
6
7
  import { TargetBoundComponentDescriptor } from "@prisma-next/framework-components/components";
7
- import { SqlStorage, StorageColumn } from "@prisma-next/sql-contract/types";
8
8
  import { EmissionSpi } from "@prisma-next/framework-components/emission";
9
9
 
10
10
  //#region src/core/control-descriptor.d.ts
@@ -411,5 +411,5 @@ declare function temporalAuthoringPresets<const CodecId extends string, const Na
411
411
  //#region src/exports/control.d.ts
412
412
  declare const _default: SqlFamilyDescriptor;
413
413
  //#endregion
414
- export { type CodecControlHooks, type ContractToSchemaIROptions, type CreateSqlMigrationPlanOptions, type DefaultRenderer, type ExpandNativeTypeInput, type FieldEvent, type FieldEventContext, INIT_ADDITIVE_POLICY, type MigrationOperationClass, type MigrationOperationPolicy, type MigrationPlan, type MigrationPlanOperation, type MigrationPlanner, type MigrationPlannerConflict, type MigrationPlannerResult, type MultiSpaceRunnerFailure, type MultiSpaceRunnerResult, type MultiSpaceRunnerSuccessValue, type NativeTypeExpander, type PlanFieldEventOperationsOptions, type ResolveIdentityValueInput, type SchemaVerifyOptions, type SqlControlAdapterDescriptor, type SqlControlExtensionDescriptor, type SqlControlFamilyInstance, type SqlControlTargetDescriptor, type SqlMigrationPlan, type SqlMigrationPlanContractInfo, type SqlMigrationPlanOperation, type SqlMigrationPlanOperationStep, type SqlMigrationPlanOperationTarget, type SqlMigrationPlanner, type SqlMigrationPlannerPlanOptions, type SqlMigrationRunner, type SqlMigrationRunnerErrorCode, type SqlMigrationRunnerExecuteCallbacks, type SqlMigrationRunnerExecuteOptions, type SqlMigrationRunnerFailure, type SqlMigrationRunnerResult, type SqlMigrationRunnerSuccessValue, type SqlPlanTargetDetails, type SqlPlannerConflict, type SqlPlannerConflictKind, type SqlPlannerConflictLocation, type SqlPlannerFailureResult, type SqlPlannerResult, type SqlPlannerSuccessResult, type StorageTypePlanResult, type TargetMigrationsCapability, assembleAuthoringContributions, contractToSchemaIR, createMigrationPlan, _default as default, detectDestructiveChanges, extractCodecControlHooks, planFieldEventOperations, plannerFailure, plannerSuccess, runnerFailure, runnerSuccess, temporalAuthoringPresets, timestampNowControlDescriptor };
414
+ export { type CodecControlHooks, type ContractToSchemaIROptions, type CreateSqlMigrationPlanOptions, type DefaultRenderer, type ExpandNativeTypeInput, type FieldEvent, type FieldEventContext, INIT_ADDITIVE_POLICY, type MigrationOperationClass, type MigrationOperationPolicy, type MigrationPlan, type MigrationPlanOperation, type MigrationPlanner, type MigrationPlannerConflict, type MigrationPlannerResult, type MultiSpaceRunnerFailure, type MultiSpaceRunnerResult, type MultiSpaceRunnerSuccessValue, type NativeTypeExpander, type PlanFieldEventOperationsOptions, type ResolveIdentityValueInput, type SqlControlAdapterDescriptor, type SqlControlExtensionDescriptor, type SqlControlFamilyInstance, type SqlControlTargetDescriptor, type SqlMigrationPlan, type SqlMigrationPlanContractInfo, type SqlMigrationPlanOperation, type SqlMigrationPlanOperationStep, type SqlMigrationPlanOperationTarget, type SqlMigrationPlanner, type SqlMigrationPlannerPlanOptions, type SqlMigrationRunner, type SqlMigrationRunnerErrorCode, type SqlMigrationRunnerExecuteCallbacks, type SqlMigrationRunnerExecuteOptions, type SqlMigrationRunnerFailure, type SqlMigrationRunnerResult, type SqlMigrationRunnerSuccessValue, type SqlPlanTargetDetails, type SqlPlannerConflict, type SqlPlannerConflictKind, type SqlPlannerConflictLocation, type SqlPlannerFailureResult, type SqlPlannerResult, type SqlPlannerSuccessResult, type StorageTypePlanResult, type TargetMigrationsCapability, assembleAuthoringContributions, contractToSchemaIR, createMigrationPlan, _default as default, detectDestructiveChanges, extractCodecControlHooks, planFieldEventOperations, plannerFailure, plannerSuccess, runnerFailure, runnerSuccess, temporalAuthoringPresets, timestampNowControlDescriptor };
415
415
  //# sourceMappingURL=control.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"control.d.mts","names":[],"sources":["../src/core/control-descriptor.ts","../src/core/assembly.ts","../src/core/migrations/contract-to-schema-ir.ts","../src/core/migrations/field-event-planner.ts","../src/core/migrations/plan-helpers.ts","../src/core/migrations/policies.ts","../src/core/timestamp-now-generator.ts","../src/exports/control.ts"],"mappings":";;;;;;;;;;cAUa,mBAAA,YACA,uBAAA,QAA+B,wBAAA;EAAA,SAEjC,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;EAAA,SACA,OAAA;EAAA,SACA,QAAA,EAAU,WAAA;EAAA,SACV,SAAA;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKT,MAAA,0BAAA,CACE,KAAA,EAAO,YAAA,QAAoB,SAAA,IAC1B,wBAAA;AAAA;;;iBCHW,wBAAA,CACd,WAAA,EAAa,aAAA,CAAc,8BAAA,mBAC1B,GAAA,SAAY,iBAAA;;;;;;;;;ADdf;;;;KEuBY,kBAAA,IAAsB,KAAA;EAAA,SACvB,UAAA;EAAA,SACA,OAAA;EAAA,SACA,UAAA,GAAa,MAAA;AAAA;;;;;;;;;;KAYZ,eAAA,IAAmB,GAAA,EAAK,aAAA,EAAe,MAAA,EAAQ,aAAA;;;;;;;;;;iBAuI3C,wBAAA,CACd,IAAA,EAAM,UAAA,SACN,EAAA,EAAI,UAAA,YACM,0BAAA;AAAA,UAiCK,yBAAA;EAAA,SACN,mBAAA;EAAA,SACA,gBAAA,GAAmB,kBAAA;EAAA,SACnB,aAAA,GAAgB,eAAA;AAAA;;;;;;;;;;;;;;;iBAiBX,kBAAA,CACd,QAAA,EAAU,QAAA,CAAS,UAAA,UACnB,OAAA,EAAS,yBAAA,GACR,WAAA;;;UCrNc,+BAAA;EHZI;;;;EAAA,SGiBV,aAAA,EAAe,QAAA,CAAS,UAAA;;;;WAIxB,WAAA,EAAa,QAAA,CAAS,UAAA;;;;;;;;;;WAUtB,UAAA,EAAY,WAAA,SAAoB,iBAAA;AAAA;AAAA,iBAY3B,wBAAA,CACd,OAAA,EAAS,+BAAA,YACC,aAAA;;;iBCiCI,mBAAA,gBAAA,CACd,OAAA,EAAS,6BAAA,CAA8B,cAAA,IACtC,gBAAA,CAAiB,cAAA;AAAA,iBAcJ,cAAA,gBAAA,CACd,IAAA,EAAM,gBAAA,CAAiB,cAAA,IACtB,uBAAA,CAAwB,cAAA;AAAA,iBAOX,cAAA,CAAe,SAAA,WAAoB,kBAAA,KAAuB,uBAAA;;;;iBAoB1D,aAAA,CAAc,KAAA;EAC5B,iBAAA;EACA,kBAAA;AAAA,IACE,EAAA,CAAG,8BAAA;;;;iBAYS,aAAA,CACd,IAAA,EAAM,2BAAA,EACN,OAAA,UACA,OAAA;EAAY,GAAA;EAAc,IAAA,GAAO,SAAA;AAAA,IAChC,KAAA,CAAM,yBAAA;;;;;;cC1JI,oBAAA,EAAsB,0BAAA;;;;;;;;;;;;;;iBCsBnB,6BAAA,CAAA,GAAiC,kCAAA;;;;;;;;;;;iBAoBjC,wBAAA,+DAAA,CAGd,KAAA;EAAA,SAAkB,OAAA,EAAS,OAAA;EAAA,SAAkB,UAAA,EAAY,UAAA;AAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cCyBlB,QAAA"}
1
+ {"version":3,"file":"control.d.mts","names":[],"sources":["../src/core/control-descriptor.ts","../src/core/assembly.ts","../src/core/migrations/contract-to-schema-ir.ts","../src/core/migrations/field-event-planner.ts","../src/core/migrations/plan-helpers.ts","../src/core/migrations/policies.ts","../src/core/timestamp-now-generator.ts","../src/exports/control.ts"],"mappings":";;;;;;;;;;cAUa,mBAAA,YACA,uBAAA,QAA+B,wBAAA;EAAA,SAEjC,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;EAAA,SACA,OAAA;EAAA,SACA,QAAA,EAAU,WAAA;EAAA,SACV,SAAA;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKT,MAAA,0BAAA,CACE,KAAA,EAAO,YAAA,QAAoB,SAAA,IAC1B,wBAAA;AAAA;;;iBCHW,wBAAA,CACd,WAAA,EAAa,aAAA,CAAc,8BAAA,mBAC1B,GAAA,SAAY,iBAAA;;;;;;;;;ADdf;;;;KE2BY,kBAAA,IAAsB,KAAA;EAAA,SACvB,UAAA;EAAA,SACA,OAAA;EAAA,SACA,UAAA,GAAa,MAAA;AAAA;;;;;;;;;;KAYZ,eAAA,IAAmB,GAAA,EAAK,aAAA,EAAe,MAAA,EAAQ,aAAA;;;;;;;;;;iBA+J3C,wBAAA,CACd,IAAA,EAAM,UAAA,SACN,EAAA,EAAI,UAAA,YACM,0BAAA;AAAA,UAiCK,yBAAA;EAAA,SACN,mBAAA;EAAA,SACA,gBAAA,GAAmB,kBAAA;EAAA,SACnB,aAAA,GAAgB,eAAA;AAAA;;;;;;;;;;;;;;;iBAiBX,kBAAA,CACd,QAAA,EAAU,QAAA,CAAS,UAAA,UACnB,OAAA,EAAS,yBAAA,GACR,WAAA;;;UCjPc,+BAAA;EHZI;;;;EAAA,SGiBV,aAAA,EAAe,QAAA,CAAS,UAAA;;;;WAIxB,WAAA,EAAa,QAAA,CAAS,UAAA;;;;;;;;;;WAUtB,UAAA,EAAY,WAAA,SAAoB,iBAAA;AAAA;AAAA,iBAY3B,wBAAA,CACd,OAAA,EAAS,+BAAA,YACC,aAAA;;;iBCiCI,mBAAA,gBAAA,CACd,OAAA,EAAS,6BAAA,CAA8B,cAAA,IACtC,gBAAA,CAAiB,cAAA;AAAA,iBAcJ,cAAA,gBAAA,CACd,IAAA,EAAM,gBAAA,CAAiB,cAAA,IACtB,uBAAA,CAAwB,cAAA;AAAA,iBAOX,cAAA,CAAe,SAAA,WAAoB,kBAAA,KAAuB,uBAAA;;;;iBAoB1D,aAAA,CAAc,KAAA;EAC5B,iBAAA;EACA,kBAAA;AAAA,IACE,EAAA,CAAG,8BAAA;;;;iBAYS,aAAA,CACd,IAAA,EAAM,2BAAA,EACN,OAAA,UACA,OAAA;EAAY,GAAA;EAAc,IAAA,GAAO,SAAA;AAAA,IAChC,KAAA,CAAM,yBAAA;;;;;;cC1JI,oBAAA,EAAsB,0BAAA;;;;;;;;;;;;;;iBCsBnB,6BAAA,CAAA,GAAiC,kCAAA;;;;;;;;;;;iBAoBjC,wBAAA,+DAAA,CAGd,KAAA;EAAA,SAAkB,OAAA,EAAS,OAAA;EAAA,SAAkB,UAAA,EAAY,UAAA;AAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cCyBlB,QAAA"}
package/dist/control.mjs CHANGED
@@ -1,15 +1,15 @@
1
1
  import { n as sqlFamilyAuthoringFieldPresets, t as sqlFamilyAuthoringTypes } from "./authoring-type-constructors-F4JpCJl7.mjs";
2
- import { a as extractCodecControlHooks, t as verifySqlSchema } from "./verify-sql-schema-DV-UsTG9.mjs";
3
- import { t as collectSupportedCodecTypeIds } from "./verify-pRYxnpiG.mjs";
4
- import { n as temporalAuthoringPresets, r as timestampNowControlDescriptor } from "./timestamp-now-generator-BWp8S2sa.mjs";
2
+ import { t as SqlContractSerializer } from "./sql-contract-serializer-ayJ5Radj.mjs";
3
+ import { a as extractCodecControlHooks, t as verifySqlSchema } from "./verify-sql-schema-BXw7yx6L.mjs";
4
+ import { t as collectSupportedCodecTypeIds } from "./verify-Crewz6hG.mjs";
5
+ import { n as temporalAuthoringPresets, r as timestampNowControlDescriptor } from "./timestamp-now-generator-r7BP5n3l.mjs";
5
6
  import { sqlEmission } from "@prisma-next/sql-contract-emitter";
6
- import { emptyCodecLookup } from "@prisma-next/framework-components/codec";
7
7
  import { APP_SPACE_ID, SchemaTreeNode, VERIFY_CODE_HASH_MISMATCH, VERIFY_CODE_MARKER_MISSING, VERIFY_CODE_TARGET_MISMATCH, assembleAuthoringContributions } from "@prisma-next/framework-components/control";
8
8
  import { assertDescriptorSelfConsistency } from "@prisma-next/migration-tools/spaces";
9
- import { validateContract } from "@prisma-next/sql-contract/validate";
10
9
  import { ensureSchemaStatement, ensureTableStatement, writeContractMarker } from "@prisma-next/sql-runtime";
11
10
  import { defaultIndexName } from "@prisma-next/sql-schema-ir/naming";
12
11
  import { ifDefined } from "@prisma-next/utils/defined";
12
+ import { isPostgresEnumStorageEntry, isStorageTypeInstance, toStorageTypeInstance } from "@prisma-next/sql-contract/types";
13
13
  import { notOk, ok } from "@prisma-next/utils/result";
14
14
  //#region src/core/operation-preview.ts
15
15
  function isDdlStatement(sqlStatement) {
@@ -1097,18 +1097,22 @@ function createSqlFamilyInstance(stack) {
1097
1097
  if (!isSqlControlAdapter(controlAdapter)) throw new Error("Adapter does not implement SqlControlAdapter (missing introspect, readMarker, or readAllMarkers)");
1098
1098
  return controlAdapter;
1099
1099
  };
1100
+ const targetSerializer = target.contractSerializer;
1101
+ const deserializeWithTargetSerializer = (contractJson) => {
1102
+ return (targetSerializer ?? new SqlContractSerializer()).deserializeContract(contractJson);
1103
+ };
1100
1104
  return {
1101
1105
  familyId: "sql",
1102
1106
  codecTypeImports,
1103
1107
  extensionIds,
1104
1108
  typeMetadataRegistry,
1105
1109
  validateContract(contractJson) {
1106
- return validateContract(contractJson, emptyCodecLookup);
1110
+ return deserializeWithTargetSerializer(contractJson);
1107
1111
  },
1108
1112
  async verify(verifyOptions) {
1109
1113
  const { driver, contract: rawContract, expectedTargetId, contractPath, configPath } = verifyOptions;
1110
1114
  const startTime = Date.now();
1111
- const contract = validateContract(rawContract, emptyCodecLookup);
1115
+ const contract = deserializeWithTargetSerializer(rawContract);
1112
1116
  const contractStorageHash = contract.storage.storageHash;
1113
1117
  const contractProfileHash = contract.profileHash;
1114
1118
  const contractTarget = contract.target;
@@ -1196,23 +1200,8 @@ function createSqlFamilyInstance(stack) {
1196
1200
  ...configPath ? { configPath } : {}
1197
1201
  });
1198
1202
  },
1199
- async schemaVerify(options) {
1200
- const { driver, contract: contractInput, strict, context, frameworkComponents } = options;
1201
- const contract = validateContract(contractInput, emptyCodecLookup);
1202
- const controlAdapter = getControlAdapter();
1203
- return verifySqlSchema({
1204
- contract,
1205
- schema: await controlAdapter.introspect(driver, contractInput),
1206
- strict,
1207
- ...ifDefined("context", context),
1208
- typeMetadataRegistry,
1209
- frameworkComponents,
1210
- ...ifDefined("normalizeDefault", controlAdapter.normalizeDefault),
1211
- ...ifDefined("normalizeNativeType", controlAdapter.normalizeNativeType)
1212
- });
1213
- },
1214
- schemaVerifyAgainstSchema(options) {
1215
- const contract = validateContract(options.contract, emptyCodecLookup);
1203
+ verifySchema(options) {
1204
+ const contract = deserializeWithTargetSerializer(options.contract);
1216
1205
  const controlAdapter = getControlAdapter();
1217
1206
  return verifySqlSchema({
1218
1207
  contract,
@@ -1221,13 +1210,14 @@ function createSqlFamilyInstance(stack) {
1221
1210
  typeMetadataRegistry,
1222
1211
  frameworkComponents: options.frameworkComponents,
1223
1212
  ...ifDefined("normalizeDefault", controlAdapter.normalizeDefault),
1224
- ...ifDefined("normalizeNativeType", controlAdapter.normalizeNativeType)
1213
+ ...ifDefined("normalizeNativeType", controlAdapter.normalizeNativeType),
1214
+ ...ifDefined("resolveExistingEnumValues", controlAdapter.resolveExistingEnumValues)
1225
1215
  });
1226
1216
  },
1227
1217
  async sign(options) {
1228
1218
  const { driver, contract: contractInput, contractPath, configPath } = options;
1229
1219
  const startTime = Date.now();
1230
- const contract = validateContract(contractInput, emptyCodecLookup);
1220
+ const contract = deserializeWithTargetSerializer(contractInput);
1231
1221
  const contractStorageHash = contract.storage.storageHash;
1232
1222
  const contractProfileHash = "profileHash" in contract && typeof contract.profileHash === "string" ? contract.profileHash : contractStorageHash;
1233
1223
  const contractTarget = contract.target;
@@ -1436,11 +1426,17 @@ function resolveColumnTypeMetadata(column, storageTypes) {
1436
1426
  if (!column.typeRef) return column;
1437
1427
  const referenced = storageTypes[column.typeRef];
1438
1428
  if (!referenced) throw new Error(`Column references storage type "${column.typeRef}" but it is not defined in storage.types.`);
1439
- return {
1429
+ if (isPostgresEnumStorageEntry(referenced)) return {
1430
+ codecId: referenced.codecId,
1431
+ nativeType: referenced.nativeType,
1432
+ typeParams: { values: referenced.values }
1433
+ };
1434
+ if (isStorageTypeInstance(referenced)) return {
1440
1435
  codecId: referenced.codecId,
1441
1436
  nativeType: referenced.nativeType,
1442
1437
  typeParams: referenced.typeParams
1443
1438
  };
1439
+ throw new Error(`Storage type "${column.typeRef}" has an unknown polymorphic kind; expected codec-instance or postgres-enum.`);
1444
1440
  }
1445
1441
  function convertUnique(unique) {
1446
1442
  return {
@@ -1550,9 +1546,20 @@ function contractToSchemaIR(contract, options) {
1550
1546
  };
1551
1547
  }
1552
1548
  function deriveAnnotations(storage, annotationNamespace) {
1553
- if (!storage.types || Object.keys(storage.types).length === 0) return void 0;
1549
+ const types = storage.types;
1550
+ if (!types || Object.keys(types).length === 0) return void 0;
1554
1551
  const byNativeType = {};
1555
- for (const typeInstance of Object.values(storage.types)) byNativeType[typeInstance.nativeType] = typeInstance;
1552
+ for (const typeInstance of Object.values(types)) {
1553
+ if (isPostgresEnumStorageEntry(typeInstance)) {
1554
+ byNativeType[typeInstance.nativeType] = toStorageTypeInstance({
1555
+ codecId: typeInstance.codecId,
1556
+ nativeType: typeInstance.nativeType,
1557
+ typeParams: { values: typeInstance.values }
1558
+ });
1559
+ continue;
1560
+ }
1561
+ if (isStorageTypeInstance(typeInstance)) byNativeType[typeInstance.nativeType] = typeInstance;
1562
+ }
1556
1563
  return { [annotationNamespace]: { storageTypes: byNativeType } };
1557
1564
  }
1558
1565
  //#endregion