@prisma/orm-family-sql 8.0.0-rc.14-dev.11 → 8.0.0-rc.14-dev.12

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.
@@ -1,5 +1,5 @@
1
1
  import { t as StorageColumn } from "./storage-table-DSeWszOL-CI-cItEK.mjs";
2
- import { c as SqlStorage } from "./sql-storage-BSxD7_vv-C4ugLH39.mjs";
2
+ import { a as SqlNamespaceEntries, c as SqlStorage } from "./sql-storage-BSxD7_vv-C4ugLH39.mjs";
3
3
  import { O as SqlControlDriverInstance } from "./types-DTUyRqZv-DLh98w8w.mjs";
4
4
  import "./types-BoMDdzjD.mjs";
5
5
  import { r as SqlOperationDescriptors } from "./index-DrUd8HwS.mjs";
@@ -13,14 +13,15 @@ import { _ as SqlSchemaIR, y as SqlSchemaIRNode } from "./types-DinsvYdY-Dv_n3Ta
13
13
  import "./types-BBT7jidC.mjs";
14
14
  import { i as SqlControlAdapter } from "./control-adapter-C4_cgvzB-BhRxZg-n.mjs";
15
15
  import { t as sqlFamilyEnumSpec } from "./authoring-entity-types-CZ-vdwYS-BCsVtN8A.mjs";
16
- import { A as SqlPlannerSuccessResult, C as SqlMigrationRunnerSuccessValue, O as SqlPlannerFailureResult, T as SqlPlannerConflict, _ as SqlMigrationRunner, h as SqlMigrationPlanner, n as CodecControlHooks, r as CreateSqlMigrationPlanOptions, t as AnyRecord, u as SqlMigrationPlan, v as SqlMigrationRunnerErrorCode, x as SqlMigrationRunnerFailure } from "./types-BKJWoQ40-Dg7V0ErT.mjs";
16
+ import { A as SqlPlannerSuccessResult, C as SqlMigrationRunnerSuccessValue, O as SqlPlannerFailureResult, T as SqlPlannerConflict, _ as SqlMigrationRunner, h as SqlMigrationPlanner, n as CodecControlHooks, r as CreateSqlMigrationPlanOptions, t as AnyRecord, u as SqlMigrationPlan, v as SqlMigrationRunnerErrorCode, x as SqlMigrationRunnerFailure } from "./types-BHKZ4M-a-DYsrOHhh.mjs";
17
17
  import { t as SqlSchemaDiffFn } from "./schema-differ-DpG_gnur-gLIPLPVI.mjs";
18
+ import { StructuredError } from "@prisma/orm-framework/utils/structured-error";
18
19
  import { PresetStorageTemplate, TIMESTAMP_NOW_GENERATOR_ID } from "@prisma/orm-framework/components/authoring";
19
20
  import { ColumnDefault, Contract, ControlPolicy } from "@prisma/orm-framework/contract/types";
20
21
  import { CodecLookupWithDescriptors, DataType, DataTypeLookup } from "@prisma/orm-framework/components/codec";
21
22
  import { TargetBoundComponentDescriptor } from "@prisma/orm-framework/components/components";
22
23
  import { AssembledAuthoringContributions, ContractSerializer, ControlFamilyDescriptor, ControlFamilyInstance, ControlStack, DiffSubjectGranularity, MigratableTargetDescriptor, MigrationOperationClass, MigrationOperationPolicy, MigrationOperationPolicy as MigrationOperationPolicy$1, MigrationPlan as MigrationPlan$1, MigrationPlanOperation, MigrationPlanOperation as MigrationPlanOperation$1, MigrationPlanner, MigrationPlannerConflict, MigrationPlannerConflict as MigrationPlannerConflict$1, MigrationPlannerResult, OpFactoryCall, OperationPreview, OperationPreviewCapable, PslContractBuildCapable, PslContractInferCapable, SchemaDiffIssue, SchemaVerifier, SchemaViewCapable, SignDatabaseResult, TargetMigrationsCapability, VerifyDatabaseResult, VerifyDatabaseSchemaResult, assembleAuthoringContributions } from "@prisma/orm-framework/components/control";
23
- import { NotOk, Ok } from "@prisma/orm-framework/utils/result";
24
+ import { NotOk, Ok, Result } from "@prisma/orm-framework/utils/result";
24
25
  import { PslDocumentAst } from "@prisma/orm-framework/components/psl-ast";
25
26
  import { EmissionSpi, TypesImportSpec } from "@prisma/orm-framework/components/emission";
26
27
  //#region ../../../2-sql/9-family/dist/control.d.mts
@@ -566,6 +567,41 @@ interface SqlControlTargetDescriptor<TTargetId extends string, TTargetDetails, T
566
567
  createRunner(family: SqlControlFamilyInstance): SqlMigrationRunner<TTargetDetails>;
567
568
  }
568
569
  //#endregion
570
+ //#region src/core/migrations/apply-table-rename.d.ts
571
+ /** A table a migration renames: `namespaceId` is `undefined` when the migration leaves the namespace to the contracts. */
572
+ interface TableRename {
573
+ readonly namespaceId: string | undefined;
574
+ readonly from: string;
575
+ readonly to: string;
576
+ }
577
+ /** A rename after its table was found in the start contract. */
578
+ interface ResolvedTableRename {
579
+ readonly namespaceId: string;
580
+ readonly from: string;
581
+ readonly to: string;
582
+ }
583
+ /**
584
+ * Renames a target's own references to a renamed table inside one namespace's entries: entity kinds the family does not know, such as a target's row-level-security markers, that name a table.
585
+ */
586
+ type RenameTableReferences = (entries: SqlNamespaceEntries, rename: ResolvedTableRename) => SqlNamespaceEntries;
587
+ interface ApplyTableRenameInput {
588
+ readonly startContract: Contract<SqlStorage> | null;
589
+ readonly endContract: Contract<SqlStorage>;
590
+ readonly rename: TableRename;
591
+ readonly renameTableReferences: RenameTableReferences | undefined;
592
+ }
593
+ interface AppliedTableRename {
594
+ /** The start contract with the table under its new name. */
595
+ readonly contract: Contract<SqlStorage>;
596
+ readonly rename: ResolvedTableRename;
597
+ }
598
+ /**
599
+ * Resolves the table a migration renames against its start and end contracts and returns the start contract with that table under its new name, so a diff against the end contract sees the table under one name. The table must exist in the start contract (in exactly one namespace when the namespace is not given), and the new name must exist in the end contract and not in the start contract; otherwise the rename is refused with `MIGRATION.TABLE_RENAME_UNMATCHED`.
600
+ *
601
+ * Foreign keys that name the renamed table on either side are retargeted. Index, unique, check and primary-key names are carried unchanged. Target entity kinds that name the table are renamed by the target's `renameTableReferences`.
602
+ */
603
+ declare function applyTableRename(input: ApplyTableRenameInput): Result<AppliedTableRename, StructuredError>;
604
+ //#endregion
569
605
  //#region src/core/migrations/data-type-resolver.d.ts
570
606
  /** The data type a codec represents, or `undefined` when no component registers it. */
571
607
  type DataTypeResolver = (codecId: string) => DataType | undefined;
@@ -888,6 +924,18 @@ declare const TABLE_NAME_CASE_CHANGED_CODE = "MIGRATION.TABLE_NAME_CASE_CHANGED"
888
924
  interface TableNameCaseGuardTable {
889
925
  readonly name: string;
890
926
  }
927
+ /** A table rename the operator performs by hand, for the target to write the statements of. */
928
+ interface TableRenameByHand {
929
+ readonly namespaceId: string;
930
+ readonly from: string;
931
+ readonly to: string;
932
+ }
933
+ /** A table rename to write as a migration call; `namespaceId` is `undefined` when the call does not need to name the namespace. */
934
+ interface TableRenameInMigration {
935
+ readonly namespaceId: string | undefined;
936
+ readonly from: string;
937
+ readonly to: string;
938
+ }
891
939
  /**
892
940
  * Finds every (drop `X`, create `Y`) pair in the same namespace where `X` is
893
941
  * `Y` with its first letter lowered. That shape is the signature of a schema
@@ -903,6 +951,10 @@ declare function detectTableNameCaseChanges(input: {
903
951
  readonly issues: readonly SchemaDiffIssue[];
904
952
  readonly tableOf: (issue: SchemaDiffIssue) => TableNameCaseGuardTable | undefined;
905
953
  readonly namespaceIdOf: (issue: SchemaDiffIssue) => string;
954
+ readonly renameByHandStatements: (rename: TableRenameByHand) => readonly string[];
955
+ readonly renameTableCall: (rename: TableRenameInMigration) => string;
956
+ readonly contract: Contract<SqlStorage>;
957
+ readonly defaultNamespaceId: string;
906
958
  }): SqlPlannerConflict[];
907
959
  //#endregion
908
960
  //#region src/core/timestamp-now-generator.d.ts
@@ -1009,5 +1061,5 @@ declare function temporalCodecPresetWithPrecision<const CodecId extends string,
1009
1061
  //#region src/exports/control.d.ts
1010
1062
  declare const _default: SqlFamilyDescriptor;
1011
1063
  //#endregion
1012
- export { contractToSchemaIR as A, plannerSuccess as B, TableNameCaseGuardTable as C, buildDataTypeResolver as D, assembleAuthoringContributions as E, extractCodecControlHooks as F, runnerSuccess as H, partitionCallsByControlPolicy as I, partitionIssuesByControlPolicy as L, createMigrationPlan as M, detectDestructiveChanges as N, buildNativeTypeExpander as O, detectTableNameCaseChanges as P, planFieldEventOperations as R, TABLE_NAME_CASE_CHANGED_CODE as S, _default as T, temporalCodecPresetWithPrecision as U, runnerFailure as V, temporalStringAuthoringPresets as W, SqlControlFamilyInstance as _, DefaultResolver as a, SqlPslBuildContext as b, MigrationOperationClass as c, MigrationPlanOperation$1 as d, MigrationPlanner as f, PlanFieldEventOperationsOptions as g, NativeTypeExpander as h, DefaultRenderer as i, controlPolicyForCall as j, contractNamespaceToSchemaIR as k, MigrationOperationPolicy$1 as l, MigrationPlannerResult as m, ControlPolicySubject as n, EnumNamespaceSchemaResolver as o, MigrationPlannerConflict$1 as p, DataTypeResolver as r, INIT_ADDITIVE_POLICY as s, ContractToSchemaIROptions as t, MigrationPlan$1 as u, SqlControlTargetDescriptor as v, TargetMigrationsCapability as w, SuppressionRecord as x, SqlDescribedContractSpace as y, plannerFailure as z };
1013
- //# sourceMappingURL=control-xT2HdvBb.d.mts.map
1064
+ export { TableRenameInMigration as A, createMigrationPlan as B, SqlDescribedContractSpace as C, TableNameCaseGuardTable as D, TABLE_NAME_CASE_CHANGED_CODE as E, buildDataTypeResolver as F, partitionIssuesByControlPolicy as G, detectTableNameCaseChanges as H, buildNativeTypeExpander as I, plannerSuccess as J, planFieldEventOperations as K, contractNamespaceToSchemaIR as L, _default as M, applyTableRename as N, TableRename as O, assembleAuthoringContributions as P, temporalStringAuthoringPresets as Q, contractToSchemaIR as R, SqlControlTargetDescriptor as S, SuppressionRecord as T, extractCodecControlHooks as U, detectDestructiveChanges as V, partitionCallsByControlPolicy as W, runnerSuccess as X, runnerFailure as Y, temporalCodecPresetWithPrecision as Z, NativeTypeExpander as _, DataTypeResolver as a, ResolvedTableRename as b, EnumNamespaceSchemaResolver as c, MigrationOperationPolicy$1 as d, MigrationPlan$1 as f, MigrationPlannerResult as g, MigrationPlannerConflict$1 as h, ControlPolicySubject as i, TargetMigrationsCapability as j, TableRenameByHand as k, INIT_ADDITIVE_POLICY as l, MigrationPlanner as m, ApplyTableRenameInput as n, DefaultRenderer as o, MigrationPlanOperation$1 as p, plannerFailure as q, ContractToSchemaIROptions as r, DefaultResolver as s, AppliedTableRename as t, MigrationOperationClass as u, PlanFieldEventOperationsOptions as v, SqlPslBuildContext as w, SqlControlFamilyInstance as x, RenameTableReferences as y, controlPolicyForCall as z };
1065
+ //# sourceMappingURL=control-BFgBjkQh.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-BFgBjkQh.d.mts","names":[],"sources":["../../../../2-sql/9-family/dist/control.d.mts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;UAoBU;WACC;WACA;WACA;WACA;;KAEN,0BAA0B,YAAY;UACjC;WACC,kBAAkB,cAAc;WAChC,cAAc;WACd,sBAAsB;;UAEvB,iCAAiC,6BAA6B,kBAAkB,kBAAkB,kBAAkB,wBAAwB,kBAAkB,wBAAwB,SAAS,cAAc,yBAAyB;;;;;;;;;EAS9O,oBAAoB,wBAAwB;EAC5C,OAAO;aACI,QAAQ;aACR;aACA;aACA;aACA;MACP,QAAQ;;;;;;;;;;EAUZ,aAAa;aACF;aACA,QAAQ;aACR;aACA,qBAAqB,cAAc;MAC1C;;;;;;;;;;EAUJ,2BAA2B,OAAO,kBAAkB;;;;;;;;EAQpD,mBAAmB,OAAO;EAC1B,KAAK;aACM,QAAQ;aACR;aACA;aACA;MACP,QAAQ;EACZ,WAAW;aACA,QAAQ;aACR;MACP,QAAQ;EACZ,iBAAiB,UAAU,kBAAkB;EAC7C,SAAS,KAAK,cAAc,SAAS,SAAS,0BAA0B,QAAQ;;;;;;EAMhF,WAAW;aACA,QAAQ;aACR;aACA;eACE;eACA;eACA;;MAET;;;;;EAKJ,aAAa;aACF,QAAQ;aACR;aACA;aACA;eACE;eACA;eACA;;MAET;;;;;EAKJ,iBAAiB;aACN,QAAQ;aACR;aACA;eACE;eACA;eACA;eACA;eACA;eACA;eACA;;MAET;EACJ,yCAAyC;EACzC,mBAAmB,qBAAqB,2BAA6B;;;;cAIzD,+BAA+B,+BAA+B;WACjE;WACA;WACA;WACA;WACA,UAAU;WACV,oBAAoB;WACpB;aACE;eACE;iBACE;iBACA;mBACE;mBACA;mBACA;qBACE;;;;eAIN;iBACE;iBACA;mBACE;mBACA;mBACA;qBACE;;;;eAIN;iBACE;iBACA;mBACE;mBACA;mBACA;qBACE;uBACE;uBACA;uBACA;uBACA;uBACA;;;;iBAIN;mBACE;mBACA;mBACA;qBACE;uBACE;uBACA;uBACA;uBACA;;;;;eAKR;iBACE;iBACA;mBACE;mBACA;mBACA;qBACE;;;;eAIN;iBACE;iBACA;mBACE;mBACA;mBACA;qBACE;;;;eAIN;iBACE;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;;qBAEF;uBACE;yBACE;yBACA;;;qBAGJ;;;iBAGJ;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;;qBAEF;uBACE;yBACE;yBACA;;;qBAGJ;;;iBAGJ;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;;qBAEF;uBACE;yBACE;yBACA;;;qBAGJ;;;iBAGJ;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;yBACE;yBACA;yBACA;yBACA;yBACA;;;;mBAIN;qBACE;qBACA;qBACA;uBACE;yBACE;yBACA;yBACA;yBACA;;;qBAGJ;uBACE;yBACE;yBACA;yBACA;2BACE;6BACE;6BACA;6BACA;;;;;qBAKR;;;iBAGJ;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;;qBAEF;uBACE;yBACE;yBACA;;;qBAGJ;;;iBAGJ;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;;qBAEF;uBACE;yBACE;yBACA;;;qBAGJ;;;;;aAKR;eACE;iBACE;mBACE;mBACA;mBACA;qBACE;qBACA;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;uBACE;yBACE;yBACA;;;;;;;aAOZ,gEAAgE;aAChE;eACE;QACP;QACA;QACA;QACA;QACA;UACE;;QAEF,aAAa;QACb;UACE,2CAA2C;YACzC;4CACgC;;;;aAI/B;eACE;iBACE,0CAA0C;UACjD;0CACgC;iBACzB,yCAAyC;UAChD;mBACS;0CACuB;iBACzB,6CAA6C;UACpD;mBACS;0CACuB;iBACzB,4CAA4C;UACnD;mBACS;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA,UAAU;0CACa;iBACzB,4CAA4C;mBAC1C;mBACA;mBACA;0CACuB;iBACzB,8CAA8C;UACrD;0CACgC;iBACzB,oDAAoD;UAC3D;0CACgC;iBACzB,2CAA2C;UAClD,qCAAqC,uDAAuD;UAC5F;0CACgC;;eAE3B;iBACE,0CAA0C;UACjD;0CACgC;iBACzB,yCAAyC;mBACvC;0CACuB;iBACzB,6CAA6C;mBAC3C;0CACuB;iBACzB,8CAA8C;UACrD;UACA;0CACgC;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"}
@@ -1,8 +1,8 @@
1
1
  import { u as namingOf } from "./naming-Cc_t1q6s-CouBOmqZ.mjs";
2
2
  import { t as sqlContractCanonicalizationHooks } from "./canonicalization-hooks-dmXkOR4a.mjs";
3
- import { c as StorageTable } from "./storage-table-ZzbR-xzQ-C8gXT45E.mjs";
3
+ import { c as StorageTable, n as ForeignKey } from "./storage-table-ZzbR-xzQ-C8gXT45E.mjs";
4
4
  import { a as sqlExpressionAuthoringEntry, o as sqlExpressionDataType, r as assertNothingCastsFromSqlExpression, t as SQL_EXPRESSION_DATA_TYPE_ID } from "./sql-expression-BXx0Ilj-.mjs";
5
- import { u as isStorageTypeInstance } from "./types-BmXzMDQL.mjs";
5
+ import { c as isMaterializedSqlNamespace, o as SqlStorage, u as isStorageTypeInstance } from "./types-BmXzMDQL.mjs";
6
6
  import { c as SqlSchemaIR, n as RelationalSchemaNodeKind, u as SqlTableIR } from "./types-C5QzgUrH-B7IJM6qN.mjs";
7
7
  import { f as sqlAttributeSpecs } from "./sql-attribute-specs-Bs9QDuS7-DmIRJUz9.mjs";
8
8
  import { t as sqlEmission } from "./dist-DeiKZwAD.mjs";
@@ -12,7 +12,7 @@ import { t as sqlFamilyError } from "./errors-B5g0xWro-mWH2C07F.mjs";
12
12
  import { t as SqlContractSerializer } from "./sql-contract-serializer-C90xg7_q-DBJSt3MT.mjs";
13
13
  import { t as collectSupportedCodecTypeIds } from "./verify-BVk5bjdH-BXgGLM2U.mjs";
14
14
  import { TEMPORAL_ON_CREATE_ARG, TEMPORAL_ON_UPDATE_ARG, TIMESTAMP_NOW_GENERATOR_ID, temporalAuthoringPresets, temporalPhaseTemplate } from "@prisma/orm-framework/components/authoring";
15
- import { isPlainRecord } from "@prisma/orm-framework/components/ir";
15
+ import { UNBOUND_NAMESPACE_ID, isPlainRecord } from "@prisma/orm-framework/components/ir";
16
16
  import { InternalError } from "@prisma/orm-framework/utils/internal-error";
17
17
  import { effectiveControlPolicy } from "@prisma/orm-framework/contract/types";
18
18
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
@@ -619,6 +619,118 @@ var SqlFamilyDescriptor = class {
619
619
  return createSqlFamilyInstance(stack);
620
620
  }
621
621
  };
622
+ const TABLE_RENAME_UNMATCHED_CODE = "MIGRATION.TABLE_RENAME_UNMATCHED";
623
+ function tableLabel(namespaceId, tableName) {
624
+ return namespaceId === void 0 || namespaceId === UNBOUND_NAMESPACE_ID ? tableName : `${namespaceId}.${tableName}`;
625
+ }
626
+ function namespacesDeclaring(contract, tableName) {
627
+ return Object.values(contract.storage.namespaces).filter((namespace) => Object.hasOwn(namespace.entries.table ?? {}, tableName)).map((namespace) => namespace.id);
628
+ }
629
+ function declares(contract, namespaceId, tableName) {
630
+ return Object.hasOwn(contract.storage.namespaces[namespaceId]?.entries.table ?? {}, tableName);
631
+ }
632
+ function unmatched(rename, reason) {
633
+ return sqlFamilyError(TABLE_RENAME_UNMATCHED_CODE, `renameTable "${tableLabel(rename.namespaceId, rename.from)}" to "${rename.to}" does not match the migration's contracts: ${reason}.`, {
634
+ why: "renameTable must name a table of the migration's start contract and a new name that the end contract has and the start contract does not. Make the rename its own schema change, so the migration's start contract is the schema before the rename and its end contract the schema after it, and check the spelling and the namespace.",
635
+ meta: {
636
+ from: rename.from,
637
+ to: rename.to
638
+ }
639
+ });
640
+ }
641
+ function resolveTableRename(rename, startContract, endContract) {
642
+ const namespaceIds = rename.namespaceId === void 0 ? namespacesDeclaring(startContract, rename.from) : declares(startContract, rename.namespaceId, rename.from) ? [rename.namespaceId] : [];
643
+ const [namespaceId, ...others] = namespaceIds;
644
+ if (namespaceId === void 0) return notOk(unmatched(rename, `table "${tableLabel(rename.namespaceId, rename.from)}" does not exist in the start contract`));
645
+ if (others.length > 0) return notOk(unmatched(rename, `table "${rename.from}" is declared in more than one namespace (${namespaceIds.join(", ")}); name its namespace`));
646
+ if (declares(startContract, namespaceId, rename.to)) return notOk(unmatched(rename, `table "${tableLabel(namespaceId, rename.to)}" already exists in the start contract`));
647
+ if (!declares(endContract, namespaceId, rename.to)) return notOk(unmatched(rename, `table "${tableLabel(namespaceId, rename.to)}" does not exist in the end contract`));
648
+ return ok({
649
+ namespaceId,
650
+ from: rename.from,
651
+ to: rename.to
652
+ });
653
+ }
654
+ function renamedReference(reference, rename) {
655
+ if (!(reference.spaceId === void 0) || reference.namespaceId !== rename.namespaceId || reference.tableName !== rename.from) return reference;
656
+ return {
657
+ ...reference,
658
+ tableName: rename.to
659
+ };
660
+ }
661
+ function renameForeignKeys(table, rename) {
662
+ if (!table.foreignKeys.some((fk) => renamedReference(fk.source, rename) !== fk.source || renamedReference(fk.target, rename) !== fk.target)) return table;
663
+ return new StorageTable({
664
+ ...table,
665
+ foreignKeys: table.foreignKeys.map((fk) => new ForeignKey({
666
+ ...fk,
667
+ source: renamedReference(fk.source, rename),
668
+ target: renamedReference(fk.target, rename)
669
+ }))
670
+ });
671
+ }
672
+ /**
673
+ * The same namespace instance with only `entries` replaced: every own
674
+ * property, including the non-enumerable `kind`, is carried over onto the
675
+ * same prototype, so the target's namespace class (its `qualifyTable`,
676
+ * `ddlSchemaName`, entity getters) keeps working on the copy. This is the
677
+ * one place a frozen contract node is rebuilt without its constructor: the
678
+ * constructors re-hydrate `entries` from raw input, which the already
679
+ * hydrated entities here do not need.
680
+ */
681
+ function withEntries(namespace, entries) {
682
+ const copy = Object.create(Object.getPrototypeOf(namespace), {
683
+ ...Object.getOwnPropertyDescriptors(namespace),
684
+ entries: {
685
+ value: Object.freeze(entries),
686
+ enumerable: true,
687
+ writable: false,
688
+ configurable: false
689
+ }
690
+ });
691
+ return Object.freeze(copy);
692
+ }
693
+ function renameTableInNamespace(namespace, rename, renameTableReferences) {
694
+ const ownsTable = rename.namespaceId === namespace.id;
695
+ const tables = Object.entries(namespace.entries.table ?? {}).map(([name, table]) => [ownsTable && name === rename.from ? rename.to : name, renameForeignKeys(table, rename)]);
696
+ if (tables.every(([name, table]) => namespace.entries.table?.[name] === table)) return namespace;
697
+ if (!isMaterializedSqlNamespace(namespace)) throw new InternalError(`applyTableRename: namespace "${namespace.id}" is not a materialized SQL namespace`);
698
+ const renamedTables = {
699
+ ...namespace.entries,
700
+ table: Object.fromEntries(tables)
701
+ };
702
+ return withEntries(namespace, renameTableReferences === void 0 || !ownsTable ? renamedTables : renameTableReferences(renamedTables, rename));
703
+ }
704
+ function renameTableInContract(contract, rename, renameTableReferences) {
705
+ const namespaces = Object.fromEntries(Object.entries(contract.storage.namespaces).map(([id, namespace]) => [id, renameTableInNamespace(namespace, rename, renameTableReferences)]));
706
+ const materialized = {};
707
+ for (const [id, namespace] of Object.entries(namespaces)) {
708
+ if (!isMaterializedSqlNamespace(namespace)) throw new InternalError(`applyTableRename: namespace "${id}" is not a materialized SQL namespace`);
709
+ materialized[id] = namespace;
710
+ }
711
+ return {
712
+ ...contract,
713
+ storage: new SqlStorage({
714
+ storageHash: contract.storage.storageHash,
715
+ ...contract.storage.types === void 0 ? {} : { types: contract.storage.types },
716
+ namespaces: materialized
717
+ })
718
+ };
719
+ }
720
+ /**
721
+ * Resolves the table a migration renames against its start and end contracts and returns the start contract with that table under its new name, so a diff against the end contract sees the table under one name. The table must exist in the start contract (in exactly one namespace when the namespace is not given), and the new name must exist in the end contract and not in the start contract; otherwise the rename is refused with `MIGRATION.TABLE_RENAME_UNMATCHED`.
722
+ *
723
+ * Foreign keys that name the renamed table on either side are retargeted. Index, unique, check and primary-key names are carried unchanged. Target entity kinds that name the table are renamed by the target's `renameTableReferences`.
724
+ */
725
+ function applyTableRename(input) {
726
+ if (input.startContract === null) return notOk(unmatched(input.rename, "the migration has no start contract"));
727
+ const resolved = resolveTableRename(input.rename, input.startContract, input.endContract);
728
+ if (!resolved.ok) return resolved;
729
+ return ok({
730
+ contract: renameTableInContract(input.startContract, resolved.value, input.renameTableReferences),
731
+ rename: resolved.value
732
+ });
733
+ }
622
734
  function convertColumn(name, column, storageTypes, expandNativeType, renderDefault, resolveDefault, dataTypeOf) {
623
735
  const resolved = resolveColumnTypeMetadata(column, storageTypes);
624
736
  const baseNativeType = expandNativeType ? expandNativeType({
@@ -1311,6 +1423,11 @@ function plannedTable(node, namespaceId) {
1311
1423
  tableName: node.name
1312
1424
  };
1313
1425
  }
1426
+ function renameNeedsNamespace(drop, dropped, contract, defaultNamespaceId) {
1427
+ if (drop.namespaceId !== UNBOUND_NAMESPACE_ID && drop.namespaceId !== defaultNamespaceId) return true;
1428
+ const declaredElsewhere = (namespaceId, tableName) => namespaceId !== drop.namespaceId && tableName === drop.tableName;
1429
+ return dropped.some((other) => declaredElsewhere(other.namespaceId, other.tableName)) || Object.values(contract.storage.namespaces).some((namespace) => Object.keys(namespace.entries.table ?? {}).some((tableName) => declaredElsewhere(namespace.id, tableName)));
1430
+ }
1314
1431
  /**
1315
1432
  * Finds every (drop `X`, create `Y`) pair in the same namespace where `X` is
1316
1433
  * `Y` with its first letter lowered. That shape is the signature of a schema
@@ -1336,10 +1453,19 @@ function detectTableNameCaseChanges(input) {
1336
1453
  for (const create of created) {
1337
1454
  const drop = dropped.find((candidate) => candidate.namespaceId === create.namespaceId && candidate.tableName === lowerFirst(create.tableName));
1338
1455
  if (drop === void 0) continue;
1456
+ const renameCall = input.renameTableCall({
1457
+ namespaceId: renameNeedsNamespace(drop, dropped, input.contract, input.defaultNamespaceId) ? drop.namespaceId : void 0,
1458
+ from: drop.tableName,
1459
+ to: create.tableName
1460
+ });
1339
1461
  conflicts.push({
1340
1462
  kind: "tableNameCaseChanged",
1341
1463
  summary: `${TABLE_NAME_CASE_CHANGED_CODE}: table "${create.tableName}" would be created and table "${drop.tableName}" dropped. Prisma 8 changed the default table name: a model with no @@map now names its table verbatim, so model ${create.tableName} points at "${create.tableName}" instead of "${drop.tableName}".`,
1342
- why: `To keep table "${drop.tableName}" and its rows, add @@map("${drop.tableName}") to model ${create.tableName} (or run the add-model-map codemod over the schema) and plan again. Prisma 8 has no rename-table operation, so a deliberate rename is done by hand: run ALTER TABLE "${drop.tableName}" RENAME TO "${create.tableName}" (schema-qualified where applicable), after which the plan is empty.`,
1464
+ why: `To keep table "${drop.tableName}" and its rows, add @@map("${drop.tableName}") to model ${create.tableName} (or run the add-model-map codemod over the schema) and plan again. To rename the table and keep its rows instead: in a project with migration history, make the rename its own schema change, create its migration with prisma migration new --from <hash of the migration the database is at>, and add ${renameCall} to the migration's operations, which renames the table and the objects named after it; in a project that uses db update, rename it by hand with ${input.renameByHandStatements({
1465
+ namespaceId: create.namespaceId,
1466
+ from: drop.tableName,
1467
+ to: create.tableName
1468
+ }).join("; ")}, then run db update again.`,
1343
1469
  location: {
1344
1470
  namespaceId: create.namespaceId,
1345
1471
  entityKind: "table",
@@ -1403,6 +1529,6 @@ function temporalCodecPresetWithPrecision(input) {
1403
1529
  }
1404
1530
  var control_default = new SqlFamilyDescriptor();
1405
1531
  //#endregion
1406
- export { plannerSuccess as _, buildNativeTypeExpander as a, temporalCodecPresetWithPrecision as b, controlPolicyForCall as c, detectDestructiveChanges as d, detectTableNameCaseChanges as f, plannerFailure as g, planFieldEventOperations as h, buildDataTypeResolver as i, control_default as l, partitionIssuesByControlPolicy as m, TABLE_NAME_CASE_CHANGED_CODE as n, contractNamespaceToSchemaIR as o, partitionCallsByControlPolicy as p, assembleAuthoringContributions as r, contractToSchemaIR as s, INIT_ADDITIVE_POLICY as t, createMigrationPlan as u, runnerFailure as v, temporalStringAuthoringPresets as x, runnerSuccess as y };
1532
+ export { temporalStringAuthoringPresets as S, plannerFailure as _, buildDataTypeResolver as a, runnerSuccess as b, contractToSchemaIR as c, createMigrationPlan as d, detectDestructiveChanges as f, planFieldEventOperations as g, partitionIssuesByControlPolicy as h, assembleAuthoringContributions as i, controlPolicyForCall as l, partitionCallsByControlPolicy as m, TABLE_NAME_CASE_CHANGED_CODE as n, buildNativeTypeExpander as o, detectTableNameCaseChanges as p, applyTableRename as r, contractNamespaceToSchemaIR as s, INIT_ADDITIVE_POLICY as t, control_default as u, plannerSuccess as v, temporalCodecPresetWithPrecision as x, runnerFailure as y };
1407
1533
 
1408
- //# sourceMappingURL=control-DMbej03E.mjs.map
1534
+ //# sourceMappingURL=control-D7yb7l7O.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-D7yb7l7O.mjs","names":[],"sources":["../../../../2-sql/9-family/dist/control.mjs"],"sourcesContent":["import { i as sqlFamilyPslBlockDescriptors, n as sqlFamilyAuthoringFieldPresets, r as sqlFamilyEntityTypes, t as sqlFamilyAuthoringTypes } from \"./authoring-type-constructors-DIyheCzv.mjs\";\nimport { n as classifyDiffSubjectGranularity, o as verifySqlSchemaByDiff, s as extractCodecControlHooks, t as classifyDiffEntityKind } from \"./schema-verify-DI0aJQ9d.mjs\";\nimport { t as sqlFamilyError } from \"./errors-B5g0xWro.mjs\";\nimport { t as SqlContractSerializer } from \"./sql-contract-serializer-C90xg7_q.mjs\";\nimport { t as collectSupportedCodecTypeIds } from \"./verify-BVk5bjdH.mjs\";\nimport { SQL_EXPRESSION_DATA_TYPE_ID, assertNothingCastsFromSqlExpression, sqlExpressionAuthoringEntry, sqlExpressionDataType } from \"@internal/sql-contract/sql-expression\";\nimport { sqlEmission } from \"@internal/sql-contract-emitter\";\nimport { sqlAttributeSpecs } from \"@internal/sql-contract-psl/attribute-specs\";\nimport { TEMPORAL_ON_CREATE_ARG, TEMPORAL_ON_UPDATE_ARG, TIMESTAMP_NOW_GENERATOR_ID, temporalAuthoringPresets, temporalPhaseTemplate } from \"@internal/framework-components/authoring\";\nimport { APP_SPACE_ID, SchemaTreeNode, VERIFY_CODE_HASH_MISMATCH, VERIFY_CODE_MARKER_MISSING, VERIFY_CODE_TARGET_MISMATCH, assembleAuthoringContributions, assembleDataTypes, extractCodecLookup, issueOutcome } from \"@internal/framework-components/control\";\nimport { UNBOUND_NAMESPACE_ID, isPlainRecord } from \"@internal/framework-components/ir\";\nimport { assertDescriptorSelfConsistency } from \"@internal/migration-tools/spaces\";\nimport { sqlContractCanonicalizationHooks } from \"@internal/sql-contract/canonicalization-hooks\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { effectiveControlPolicy } from \"@internal/contract/types\";\nimport { ForeignKey, SqlStorage, StorageTable, isMaterializedSqlNamespace, isStorageTypeInstance } from \"@internal/sql-contract/types\";\nimport { checkSqlDefaultBody } from \"@internal/sql-contract/validators\";\nimport { notOk, ok } from \"@internal/utils/result\";\nimport { namingOf } from \"@internal/sql-schema-ir/naming\";\nimport { RelationalSchemaNodeKind, SqlSchemaIR, SqlTableIR } from \"@internal/sql-schema-ir/types\";\n//#region src/core/operation-preview.ts\nfunction isDdlStatement(sqlStatement) {\n\tconst trimmed = sqlStatement.trim().toLowerCase();\n\treturn trimmed.startsWith(\"create \") || trimmed.startsWith(\"alter \") || trimmed.startsWith(\"drop \");\n}\nfunction hasExecuteSteps(operation) {\n\tconst execute = Reflect.get(operation, \"execute\");\n\tif (!Array.isArray(execute)) return false;\n\treturn execute.every((step) => typeof step === \"object\" && step !== null && \"sql\" in step);\n}\n/**\n* Extracts a best-effort SQL DDL preview for CLI plan output.\n* Presentation-only: never used to decide migration correctness.\n*/\nfunction extractSqlDdl(operations) {\n\tconst statements = [];\n\tfor (const operation of operations) {\n\t\tif (!hasExecuteSteps(operation)) continue;\n\t\tfor (const step of operation.execute) if (typeof step.sql === \"string\" && isDdlStatement(step.sql)) statements.push(step.sql.trim());\n\t}\n\treturn statements;\n}\n/**\n* Wraps `extractSqlDdl` into the family-agnostic `OperationPreview` shape.\n* Each statement carries `language: 'sql'`.\n*/\nfunction sqlOperationsToPreview(operations) {\n\treturn { statements: extractSqlDdl(operations).map((text) => ({\n\t\ttext,\n\t\tlanguage: \"sql\"\n\t})) };\n}\n//#endregion\n//#region src/core/control-instance.ts\nfunction missingDescriptorOperationError(targetId, operation) {\n\treturn sqlFamilyError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `SQL target \"${targetId}\" is missing the required ${operation} descriptor operation`, {\n\t\twhy: `The target descriptor does not contribute the ${operation} operation the SQL family requires for this call.`,\n\t\tfix: `Use a target package whose control descriptor implements ${operation}.`,\n\t\tmeta: {\n\t\t\ttargetId,\n\t\t\toperation\n\t\t}\n\t});\n}\nfunction extractCodecTypeIdsFromContract(contract) {\n\tconst typeIds = /* @__PURE__ */ new Set();\n\tif (typeof contract === \"object\" && contract !== null && \"storage\" in contract && typeof contract.storage === \"object\" && contract.storage !== null && \"namespaces\" in contract.storage && typeof contract.storage.namespaces === \"object\" && contract.storage.namespaces !== null) {\n\t\tconst namespaces = blindCast(contract.storage.namespaces);\n\t\tfor (const ns of Object.values(namespaces)) {\n\t\t\tconst tbls = ns.entries[\"table\"];\n\t\t\tif (typeof tbls !== \"object\" || tbls === null) continue;\n\t\t\tfor (const table of Object.values(tbls)) if (typeof table === \"object\" && table !== null && \"columns\" in table && typeof table.columns === \"object\" && table.columns !== null) {\n\t\t\t\tconst columns = blindCast(table.columns);\n\t\t\t\tfor (const column of Object.values(columns)) if (column && typeof column === \"object\" && \"codecId\" in column && typeof column.codecId === \"string\") typeIds.add(column.codecId);\n\t\t\t}\n\t\t}\n\t}\n\treturn Array.from(typeIds).sort();\n}\nfunction createVerifyResult(options) {\n\tconst contract = { storageHash: options.contractStorageHash };\n\tif (options.contractProfileHash) contract.profileHash = options.contractProfileHash;\n\tconst target = { expected: options.expectedTargetId };\n\tif (options.actualTargetId) target.actual = options.actualTargetId;\n\tconst meta = { contractPath: options.contractPath };\n\tif (options.configPath) meta.configPath = options.configPath;\n\treturn {\n\t\tok: options.ok,\n\t\tsummary: options.summary,\n\t\tcontract,\n\t\ttarget,\n\t\tmeta,\n\t\ttimings: { total: options.totalTime },\n\t\t...ifDefined(\"code\", options.code),\n\t\t...options.marker ? { marker: {\n\t\t\tstorageHash: options.marker.storageHash,\n\t\t\tprofileHash: options.marker.profileHash\n\t\t} } : {},\n\t\t...ifDefined(\"missingCodecs\", options.missingCodecs),\n\t\t...ifDefined(\"codecCoverageSkipped\", options.codecCoverageSkipped)\n\t};\n}\nfunction buildSqlTypeMetadataRegistry(options) {\n\tconst { target, adapter, extensions } = options;\n\tconst registry = /* @__PURE__ */ new Map();\n\tconst targetId = adapter.targetId;\n\tconst descriptors = [\n\t\ttarget,\n\t\tadapter,\n\t\t...extensions\n\t];\n\tfor (const descriptor of descriptors) {\n\t\tconst storageTypes = descriptor.types?.storage;\n\t\tif (!storageTypes) continue;\n\t\tfor (const storageType of storageTypes) if (storageType.familyId === \"sql\" && storageType.targetId === targetId) registry.set(storageType.typeId, {\n\t\t\ttypeId: storageType.typeId,\n\t\t\tfamilyId: \"sql\",\n\t\t\ttargetId: storageType.targetId,\n\t\t\t...storageType.nativeType !== void 0 ? { nativeType: storageType.nativeType } : {}\n\t\t});\n\t}\n\treturn registry;\n}\n/**\n* Builds a map from each extension id to the set of extension ids it\n* transitively depends on. Uses the same declared-dependency data that\n* `buildExtensionLoadOrder` in control-stack uses.\n*/\nfunction buildTransitiveDependsOnMap(extensions) {\n\tconst directDeps = /* @__PURE__ */ new Map();\n\tfor (const ext of extensions) {\n\t\tconst packs = ext.contractSpace?.contractJson?.extensions;\n\t\tconst deps = packs !== null && typeof packs === \"object\" ? Object.keys(packs) : [];\n\t\tdirectDeps.set(ext.id, deps);\n\t}\n\tconst result = /* @__PURE__ */ new Map();\n\tconst resolve = (id, visiting) => {\n\t\tconst cached = result.get(id);\n\t\tif (cached !== void 0) return cached;\n\t\tconst set = /* @__PURE__ */ new Set();\n\t\tresult.set(id, set);\n\t\tfor (const depId of directDeps.get(id) ?? []) {\n\t\t\tset.add(depId);\n\t\t\tif (!visiting.has(depId)) {\n\t\t\t\tvisiting.add(depId);\n\t\t\t\tfor (const transitive of resolve(depId, visiting)) set.add(transitive);\n\t\t\t\tvisiting.delete(depId);\n\t\t\t}\n\t\t}\n\t\treturn set;\n\t};\n\tfor (const ext of extensions) resolve(ext.id, /* @__PURE__ */ new Set([ext.id]));\n\treturn result;\n}\n/**\n* Asserts that no cross-space FK in any extension points against the\n* dependency direction.\n*\n* A cross-space FK (target.spaceId present) from extension A pointing at\n* space B is a violation when B depends on A (directly or transitively),\n* because that means A is pointing \"upward\" against the dependency arrows\n* established by the extension load order.\n*\n* Throws with a diagnostic naming the violating extension (source), the\n* target space, and the direction violation.\n*/\nfunction isObjectRecord(v) {\n\treturn typeof v === \"object\" && v !== null;\n}\nfunction assertNoCrossSpaceFkReverseReferences(extensions) {\n\tconst dependsOnMap = buildTransitiveDependsOnMap(extensions);\n\tfor (const ext of extensions) {\n\t\tconst namespaces = ext.contractSpace?.contractJson?.storage?.namespaces;\n\t\tif (!isObjectRecord(namespaces)) continue;\n\t\tfor (const ns of Object.values(namespaces)) {\n\t\t\tif (!isObjectRecord(ns)) continue;\n\t\t\tconst entries = ns[\"entries\"];\n\t\t\tif (!isObjectRecord(entries)) continue;\n\t\t\tfor (const slot of Object.values(entries)) {\n\t\t\t\tif (!isObjectRecord(slot)) continue;\n\t\t\t\tfor (const table of Object.values(slot)) {\n\t\t\t\t\tif (!isObjectRecord(table)) continue;\n\t\t\t\t\tconst foreignKeys = table[\"foreignKeys\"];\n\t\t\t\t\tif (!Array.isArray(foreignKeys)) continue;\n\t\t\t\t\tfor (const fk of foreignKeys) {\n\t\t\t\t\t\tif (!isObjectRecord(fk)) continue;\n\t\t\t\t\t\tconst target = fk[\"target\"];\n\t\t\t\t\t\tif (!isObjectRecord(target)) continue;\n\t\t\t\t\t\tif (target[\"spaceId\"] === void 0) continue;\n\t\t\t\t\t\tconst targetSpaceId = target[\"spaceId\"];\n\t\t\t\t\t\tif (typeof targetSpaceId !== \"string\") continue;\n\t\t\t\t\t\tif (dependsOnMap.get(targetSpaceId)?.has(ext.id)) throw sqlFamilyError(\"CONTRACT.FOREIGN_KEY_INVALID\", `Cross-space FK reverse-reference detected: extension \"${ext.id}\" has a cross-space FK targeting space \"${targetSpaceId}\", but \"${targetSpaceId}\" depends on \"${ext.id}\". Cross-space FKs must follow the dependency direction (a space can only reference spaces it depends on, not spaces that depend on it).`, {\n\t\t\t\t\t\t\twhy: \"The foreign key points against the contract-space dependency direction.\",\n\t\t\t\t\t\t\tfix: \"Move the foreign key to the depending space, or restructure the extension dependencies so the referencing space depends on the referenced one.\",\n\t\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\t\textensionId: ext.id,\n\t\t\t\t\t\t\t\ttargetSpaceId\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\nfunction createSqlFamilyInstance(stack) {\n\tif (!stack.adapter) throw new InternalError(\"SQL family requires an adapter descriptor in ControlStack\");\n\tassertNothingCastsFromSqlExpression(stack.declaredDataTypes);\n\tconst target = blindCast(stack.target);\n\tconst adapter = blindCast(stack.adapter);\n\tconst extensions = blindCast(stack.extensions);\n\tfor (const extension of extensions) if (extension.contractSpace) {\n\t\tconst { contractJson, headRef } = extension.contractSpace;\n\t\tassertDescriptorSelfConsistency({\n\t\t\textensionId: extension.id,\n\t\t\ttarget: contractJson.target,\n\t\t\ttargetFamily: contractJson.targetFamily,\n\t\t\tstorage: contractJson.storage,\n\t\t\theadRefHash: headRef.hash,\n\t\t\t...sqlContractCanonicalizationHooks\n\t\t});\n\t}\n\tassertNoCrossSpaceFkReverseReferences(extensions);\n\tconst { codecTypeImports, extensionIds } = stack;\n\tconst typeMetadataRegistry = buildSqlTypeMetadataRegistry({\n\t\ttarget,\n\t\tadapter,\n\t\textensions\n\t});\n\tlet controlAdapter;\n\tconst getControlAdapter = () => controlAdapter ??= adapter.create(stack);\n\tconst targetSerializer = blindCast(target).contractSerializer;\n\tconst targetInferPslContract = blindCast(target).inferPslContract;\n\tconst pslBuildContext = {\n\t\tauthoringContributions: stack.authoringContributions,\n\t\tcodecLookup: stack.codecLookup,\n\t\tdataTypeLookup: stack.dataTypeLookup\n\t};\n\tconst targetBuildPslContract = blindCast(target).buildPslContract;\n\tconst diffSchema = blindCast(target).diffSchema;\n\tconst targetGranularityOf = blindCast(target).classifySubjectGranularity;\n\tconst targetEntityKindOf = blindCast(target).classifyEntityKind;\n\tconst describedContracts = extensions.flatMap((extension) => extension.contractSpace ? [{\n\t\tspaceId: extension.id,\n\t\tcontract: extension.contractSpace.contractJson\n\t}] : []);\n\tconst deserializeWithTargetSerializer = (contractOrJson) => {\n\t\tconst serializer = targetSerializer ?? new SqlContractSerializer();\n\t\tconst json = targetSerializer !== void 0 && !isPlainRecord(contractOrJson) ? targetSerializer.serializeContract(blindCast(contractOrJson)) : contractOrJson;\n\t\treturn serializer.deserializeContract(json);\n\t};\n\treturn {\n\t\tfamilyId: \"sql\",\n\t\tcodecTypeImports,\n\t\textensionIds,\n\t\ttypeMetadataRegistry,\n\t\tdeserializeContract(contractJson) {\n\t\t\treturn deserializeWithTargetSerializer(contractJson);\n\t\t},\n\t\tasync verify(verifyOptions) {\n\t\t\tconst { driver, contract: rawContract, expectedTargetId, contractPath, configPath } = verifyOptions;\n\t\t\tconst startTime = Date.now();\n\t\t\tconst contract = deserializeWithTargetSerializer(rawContract);\n\t\t\tconst contractStorageHash = contract.storage.storageHash;\n\t\t\tconst contractProfileHash = contract.profileHash;\n\t\t\tconst contractTarget = contract.target;\n\t\t\tconst marker = await getControlAdapter().readMarker(driver, APP_SPACE_ID);\n\t\t\tlet missingCodecs;\n\t\t\tlet codecCoverageSkipped = false;\n\t\t\tconst supportedTypeIds = collectSupportedCodecTypeIds([\n\t\t\t\tadapter,\n\t\t\t\ttarget,\n\t\t\t\t...extensions\n\t\t\t]);\n\t\t\tif (supportedTypeIds.length === 0) codecCoverageSkipped = true;\n\t\t\telse {\n\t\t\t\tconst supportedSet = new Set(supportedTypeIds);\n\t\t\t\tconst missing = extractCodecTypeIdsFromContract(contract).filter((id) => !supportedSet.has(id));\n\t\t\t\tif (missing.length > 0) missingCodecs = missing;\n\t\t\t}\n\t\t\tif (!marker) return createVerifyResult({\n\t\t\t\tok: false,\n\t\t\t\tcode: VERIFY_CODE_MARKER_MISSING,\n\t\t\t\tsummary: \"Marker missing\",\n\t\t\t\tcontractStorageHash,\n\t\t\t\texpectedTargetId,\n\t\t\t\tcontractPath,\n\t\t\t\ttotalTime: Date.now() - startTime,\n\t\t\t\t...contractProfileHash ? { contractProfileHash } : {},\n\t\t\t\t...missingCodecs ? { missingCodecs } : {},\n\t\t\t\t...codecCoverageSkipped ? { codecCoverageSkipped } : {},\n\t\t\t\t...configPath ? { configPath } : {}\n\t\t\t});\n\t\t\tif (contractTarget !== expectedTargetId) return createVerifyResult({\n\t\t\t\tok: false,\n\t\t\t\tcode: VERIFY_CODE_TARGET_MISMATCH,\n\t\t\t\tsummary: \"Target mismatch\",\n\t\t\t\tcontractStorageHash,\n\t\t\t\tmarker,\n\t\t\t\texpectedTargetId,\n\t\t\t\tactualTargetId: contractTarget,\n\t\t\t\tcontractPath,\n\t\t\t\ttotalTime: Date.now() - startTime,\n\t\t\t\t...contractProfileHash ? { contractProfileHash } : {},\n\t\t\t\t...missingCodecs ? { missingCodecs } : {},\n\t\t\t\t...codecCoverageSkipped ? { codecCoverageSkipped } : {},\n\t\t\t\t...configPath ? { configPath } : {}\n\t\t\t});\n\t\t\tif (marker.storageHash !== contractStorageHash) return createVerifyResult({\n\t\t\t\tok: false,\n\t\t\t\tcode: VERIFY_CODE_HASH_MISMATCH,\n\t\t\t\tsummary: \"Hash mismatch\",\n\t\t\t\tcontractStorageHash,\n\t\t\t\tmarker,\n\t\t\t\texpectedTargetId,\n\t\t\t\tcontractPath,\n\t\t\t\ttotalTime: Date.now() - startTime,\n\t\t\t\t...contractProfileHash ? { contractProfileHash } : {},\n\t\t\t\t...missingCodecs ? { missingCodecs } : {},\n\t\t\t\t...codecCoverageSkipped ? { codecCoverageSkipped } : {},\n\t\t\t\t...configPath ? { configPath } : {}\n\t\t\t});\n\t\t\tif (contractProfileHash && marker.profileHash !== contractProfileHash) return createVerifyResult({\n\t\t\t\tok: false,\n\t\t\t\tcode: VERIFY_CODE_HASH_MISMATCH,\n\t\t\t\tsummary: \"Hash mismatch\",\n\t\t\t\tcontractStorageHash,\n\t\t\t\tcontractProfileHash,\n\t\t\t\tmarker,\n\t\t\t\texpectedTargetId,\n\t\t\t\tcontractPath,\n\t\t\t\ttotalTime: Date.now() - startTime,\n\t\t\t\t...missingCodecs ? { missingCodecs } : {},\n\t\t\t\t...codecCoverageSkipped ? { codecCoverageSkipped } : {},\n\t\t\t\t...configPath ? { configPath } : {}\n\t\t\t});\n\t\t\treturn createVerifyResult({\n\t\t\t\tok: true,\n\t\t\t\tsummary: \"Database matches contract\",\n\t\t\t\tcontractStorageHash,\n\t\t\t\tmarker,\n\t\t\t\texpectedTargetId,\n\t\t\t\tcontractPath,\n\t\t\t\ttotalTime: Date.now() - startTime,\n\t\t\t\t...contractProfileHash ? { contractProfileHash } : {},\n\t\t\t\t...missingCodecs ? { missingCodecs } : {},\n\t\t\t\t...codecCoverageSkipped ? { codecCoverageSkipped } : {},\n\t\t\t\t...configPath ? { configPath } : {}\n\t\t\t});\n\t\t},\n\t\tverifySchema(options) {\n\t\t\tconst contract = deserializeWithTargetSerializer(options.contract);\n\t\t\tif (!diffSchema) throw missingDescriptorOperationError(target.targetId, \"diffSchema\");\n\t\t\tif (!targetGranularityOf) throw missingDescriptorOperationError(target.targetId, \"classifySubjectGranularity\");\n\t\t\treturn verifySqlSchemaByDiff({\n\t\t\t\tcontract,\n\t\t\t\tschema: options.schema,\n\t\t\t\tstrict: options.strict,\n\t\t\t\tframeworkComponents: options.frameworkComponents,\n\t\t\t\tdiffSchema,\n\t\t\t\tgranularityOf: targetGranularityOf\n\t\t\t});\n\t\t},\n\t\t/**\n\t\t* Classifies a diff issue's subject granularity on demand, by resolving\n\t\t* its node's `nodeKind` through the target's classifier — the\n\t\t* {@link import('@internal/framework-components/control').SchemaSubjectClassifierCapable}\n\t\t* capability. Framework consumers spanning contract spaces (the\n\t\t* migration aggregate's unclaimed-elements sweep) detect and call this\n\t\t* instead of reaching into the concrete schema-IR node, which they\n\t\t* cannot read; nothing is stamped on the issue or the node.\n\t\t*/\n\t\tclassifySubjectGranularity(issue) {\n\t\t\tif (!targetGranularityOf) throw missingDescriptorOperationError(target.targetId, \"classifySubjectGranularity\");\n\t\t\treturn classifyDiffSubjectGranularity(issue, targetGranularityOf);\n\t\t},\n\t\t/**\n\t\t* Classifies a diff issue's subject storage `entityKind` on demand, by\n\t\t* resolving its node's `nodeKind` through the target's classifier —\n\t\t* the sibling of `classifySubjectGranularity` above, and part of the\n\t\t* same {@link import('@internal/framework-components/control').SchemaSubjectClassifierCapable}\n\t\t* capability.\n\t\t*/\n\t\tclassifyEntityKind(issue) {\n\t\t\tif (!targetEntityKindOf) throw missingDescriptorOperationError(target.targetId, \"classifyEntityKind\");\n\t\t\treturn classifyDiffEntityKind(issue, targetEntityKindOf);\n\t\t},\n\t\tasync sign(options) {\n\t\t\tconst { driver, contract: contractInput, contractPath, configPath } = options;\n\t\t\tconst startTime = Date.now();\n\t\t\tconst contract = deserializeWithTargetSerializer(contractInput);\n\t\t\tconst contractStorageHash = contract.storage.storageHash;\n\t\t\tconst contractProfileHash = \"profileHash\" in contract && typeof contract.profileHash === \"string\" ? contract.profileHash : contractStorageHash;\n\t\t\tconst contractTarget = contract.target;\n\t\t\tconst controlAdapter = getControlAdapter();\n\t\t\tconst lowererContext = { contract };\n\t\t\tfor (const query of controlAdapter.bootstrapSignMarkerQueries()) {\n\t\t\t\tconst lowered = await controlAdapter.lowerToExecuteRequest(query, lowererContext);\n\t\t\t\tawait driver.query(lowered.sql, lowered.params);\n\t\t\t}\n\t\t\tconst existingMarker = await controlAdapter.readMarker(driver, APP_SPACE_ID);\n\t\t\tlet markerCreated = false;\n\t\t\tlet markerUpdated = false;\n\t\t\tlet previousHashes;\n\t\t\tif (!existingMarker) {\n\t\t\t\tawait controlAdapter.insertMarker(driver, APP_SPACE_ID, {\n\t\t\t\t\tstorageHash: contractStorageHash,\n\t\t\t\t\tprofileHash: contractProfileHash\n\t\t\t\t});\n\t\t\t\tmarkerCreated = true;\n\t\t\t} else {\n\t\t\t\tconst existingStorageHash = existingMarker.storageHash;\n\t\t\t\tconst existingProfileHash = existingMarker.profileHash;\n\t\t\t\tif (!(existingStorageHash === contractStorageHash) || !(existingProfileHash === contractProfileHash)) {\n\t\t\t\t\tpreviousHashes = {\n\t\t\t\t\t\tstorageHash: existingStorageHash,\n\t\t\t\t\t\tprofileHash: existingProfileHash\n\t\t\t\t\t};\n\t\t\t\t\tif (!await controlAdapter.updateMarker(driver, APP_SPACE_ID, existingStorageHash, {\n\t\t\t\t\t\tstorageHash: contractStorageHash,\n\t\t\t\t\t\tprofileHash: contractProfileHash\n\t\t\t\t\t})) throw sqlFamilyError(\"MIGRATION.MARKER_CAS_FAILURE\", \"CAS conflict: marker was modified by another process during sign\", {\n\t\t\t\t\t\twhy: \"Another process updated the contract marker between the read and the compare-and-swap write.\",\n\t\t\t\t\t\tfix: \"Re-run the sign command; if it keeps failing, make sure only one migration process runs at a time.\",\n\t\t\t\t\t\tmeta: { space: APP_SPACE_ID }\n\t\t\t\t\t});\n\t\t\t\t\tmarkerUpdated = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet summary;\n\t\t\tif (markerCreated) summary = \"Database signed (marker created)\";\n\t\t\telse if (markerUpdated) summary = `Database signed (marker updated from ${previousHashes?.storageHash ?? \"unknown\"})`;\n\t\t\telse summary = \"Database already signed with this contract\";\n\t\t\tconst totalTime = Date.now() - startTime;\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tsummary,\n\t\t\t\tcontract: {\n\t\t\t\t\tstorageHash: contractStorageHash,\n\t\t\t\t\tprofileHash: contractProfileHash\n\t\t\t\t},\n\t\t\t\ttarget: {\n\t\t\t\t\texpected: contractTarget,\n\t\t\t\t\tactual: contractTarget\n\t\t\t\t},\n\t\t\t\tmarker: {\n\t\t\t\t\tcreated: markerCreated,\n\t\t\t\t\tupdated: markerUpdated,\n\t\t\t\t\t...previousHashes ? { previous: previousHashes } : {}\n\t\t\t\t},\n\t\t\t\tmeta: {\n\t\t\t\t\tcontractPath,\n\t\t\t\t\t...configPath ? { configPath } : {}\n\t\t\t\t},\n\t\t\t\ttimings: { total: totalTime }\n\t\t\t};\n\t\t},\n\t\tasync readMarker(options) {\n\t\t\treturn getControlAdapter().readMarker(options.driver, options.space);\n\t\t},\n\t\tasync readAllMarkers(options) {\n\t\t\treturn getControlAdapter().readAllMarkers(options.driver);\n\t\t},\n\t\tasync readLedger(options) {\n\t\t\treturn getControlAdapter().readLedger(options.driver, options.space);\n\t\t},\n\t\tasync initMarker(options) {\n\t\t\treturn getControlAdapter().initMarker(options.driver, options.space, options.destination);\n\t\t},\n\t\tasync updateMarker(options) {\n\t\t\treturn getControlAdapter().updateMarker(options.driver, options.space, options.expectedFrom, options.destination);\n\t\t},\n\t\tasync writeLedgerEntry(options) {\n\t\t\treturn getControlAdapter().writeLedgerEntry(options.driver, options.space, options.entry);\n\t\t},\n\t\tasync introspect(options) {\n\t\t\treturn getControlAdapter().introspect(options.driver, options.contract);\n\t\t},\n\t\tinferPslContract(schemaIR) {\n\t\t\tif (!targetInferPslContract) throw sqlFamilyError(\"CONTRACT.INFER_UNSUPPORTED\", `Target \"${target.targetId}\" does not support contract infer (no inferPslContract on its descriptor).`, {\n\t\t\t\twhy: \"The target descriptor does not provide the inferPslContract hook, so a PSL contract cannot be inferred from the database schema.\",\n\t\t\t\tfix: \"Use a target package that supports contract infer, or author the contract instead of inferring it.\",\n\t\t\t\tmeta: { targetId: target.targetId }\n\t\t\t});\n\t\t\treturn targetInferPslContract(schemaIR, pslBuildContext, describedContracts);\n\t\t},\n\t\tbuildPslContract(contract) {\n\t\t\tif (!targetBuildPslContract) throw sqlFamilyError(\"CONTRACT.PRINT_UNSUPPORTED\", `Target \"${target.targetId}\" does not support contract print (no buildPslContract on its descriptor).`, {\n\t\t\t\twhy: \"The target descriptor does not provide the buildPslContract hook, so the contract cannot be printed as a Prisma 8 PSL file.\",\n\t\t\t\tfix: \"Use a target whose descriptor provides buildPslContract, or write the Prisma 8 PSL file by hand.\",\n\t\t\t\tmeta: { targetId: target.targetId }\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tdocument: targetBuildPslContract(contract, pslBuildContext),\n\t\t\t\tsourceSettings: ifDefined(\"defaultControlPolicy\", contract.defaultControlPolicy)\n\t\t\t};\n\t\t},\n\t\tlowerAst(ast, context) {\n\t\t\treturn getControlAdapter().lowerToExecuteRequest(ast, context);\n\t\t},\n\t\tbootstrapControlTableQueries() {\n\t\t\treturn getControlAdapter().bootstrapControlTableQueries();\n\t\t},\n\t\ttoOperationPreview(operations) {\n\t\t\treturn sqlOperationsToPreview(operations);\n\t\t},\n\t\ttoSchemaView(schema) {\n\t\t\tconst root = blindCast(schema);\n\t\t\tconst namespaceEntries = root.namespaces !== void 0 ? Object.entries(root.namespaces).map(([namespaceKey, namespace]) => [namespaceKey, namespace.tables]) : [[void 0, root.tables ?? {}]];\n\t\t\tconst qualify = namespaceEntries.length > 1;\n\t\t\tconst tableNodes = namespaceEntries.flatMap(([namespaceKey, tables]) => Object.entries(tables).map(([tableName, table]) => [\n\t\t\t\tqualify && namespaceKey !== void 0 ? `${namespaceKey}.${tableName}` : tableName,\n\t\t\t\ttableName,\n\t\t\t\ttable\n\t\t\t])).map(([displayName, tableName, table]) => {\n\t\t\t\tconst children = [];\n\t\t\t\tconst columnNodes = [];\n\t\t\t\tfor (const [columnName, column] of Object.entries(table.columns)) {\n\t\t\t\t\tconst label = `${columnName}: ${column.nativeType} (${column.nullable ? \"nullable\" : \"not nullable\"})`;\n\t\t\t\t\tcolumnNodes.push(new SchemaTreeNode({\n\t\t\t\t\t\tkind: \"field\",\n\t\t\t\t\t\tid: `column-${displayName}-${columnName}`,\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tnativeType: column.nativeType,\n\t\t\t\t\t\t\tnullable: column.nullable,\n\t\t\t\t\t\t\t...ifDefined(\"default\", column.default)\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\tif (columnNodes.length > 0) children.push(new SchemaTreeNode({\n\t\t\t\t\tkind: \"collection\",\n\t\t\t\t\tid: `columns-${displayName}`,\n\t\t\t\t\tlabel: \"columns\",\n\t\t\t\t\tchildren: columnNodes\n\t\t\t\t}));\n\t\t\t\tif (table.primaryKey) {\n\t\t\t\t\tconst pkColumns = table.primaryKey.columns.join(\", \");\n\t\t\t\t\tchildren.push(new SchemaTreeNode({\n\t\t\t\t\t\tkind: \"index\",\n\t\t\t\t\t\tid: `primary-key-${displayName}`,\n\t\t\t\t\t\tlabel: `primary key: ${pkColumns}`,\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tcolumns: table.primaryKey.columns,\n\t\t\t\t\t\t\t...table.primaryKey.name ? { name: table.primaryKey.name } : {}\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\tfor (const unique of table.uniques) {\n\t\t\t\t\tconst name = unique.name ?? `${tableName}_${unique.columns.join(\"_\")}_unique`;\n\t\t\t\t\tconst label = `unique ${name}`;\n\t\t\t\t\tchildren.push(new SchemaTreeNode({\n\t\t\t\t\t\tkind: \"index\",\n\t\t\t\t\t\tid: `unique-${displayName}-${name}`,\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tcolumns: unique.columns,\n\t\t\t\t\t\t\tunique: true\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\tfor (const index of table.indexes) {\n\t\t\t\t\tconst name = index.name;\n\t\t\t\t\tconst label = index.unique ? `unique index ${name}` : `index ${name}`;\n\t\t\t\t\tchildren.push(new SchemaTreeNode({\n\t\t\t\t\t\tkind: \"index\",\n\t\t\t\t\t\tid: `index-${displayName}-${name}`,\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tcolumns: index.columns,\n\t\t\t\t\t\t\tunique: index.unique\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\tconst tableMeta = {};\n\t\t\t\tif (table.primaryKey) {\n\t\t\t\t\ttableMeta[\"primaryKey\"] = table.primaryKey.columns;\n\t\t\t\t\tif (table.primaryKey.name) tableMeta[\"primaryKeyName\"] = table.primaryKey.name;\n\t\t\t\t}\n\t\t\t\tif (table.foreignKeys.length > 0) tableMeta[\"foreignKeys\"] = table.foreignKeys.map((fk) => ({\n\t\t\t\t\tcolumns: fk.columns,\n\t\t\t\t\treferencedTable: fk.referencedTable,\n\t\t\t\t\treferencedColumns: fk.referencedColumns,\n\t\t\t\t\t...fk.name ? { name: fk.name } : {}\n\t\t\t\t}));\n\t\t\t\treturn new SchemaTreeNode({\n\t\t\t\t\tkind: \"entity\",\n\t\t\t\t\tid: `table-${displayName}`,\n\t\t\t\t\tlabel: `table ${displayName}`,\n\t\t\t\t\t...Object.keys(tableMeta).length > 0 ? { meta: tableMeta } : {},\n\t\t\t\t\t...children.length > 0 ? { children } : {}\n\t\t\t\t});\n\t\t\t});\n\t\t\treturn { root: new SchemaTreeNode({\n\t\t\t\tkind: \"root\",\n\t\t\t\tid: \"sql-schema\",\n\t\t\t\tlabel: \"database\",\n\t\t\t\t...tableNodes.length > 0 ? { children: tableNodes } : {}\n\t\t\t}) };\n\t\t}\n\t};\n}\n//#endregion\n//#region src/core/control-descriptor.ts\nvar SqlFamilyDescriptor = class {\n\tkind = \"family\";\n\tid = \"sql\";\n\tfamilyId = \"sql\";\n\tversion = \"0.0.1\";\n\temission = sqlEmission;\n\tdataTypes = [sqlExpressionDataType];\n\tauthoring = {\n\t\tfield: sqlFamilyAuthoringFieldPresets,\n\t\ttype: sqlFamilyAuthoringTypes,\n\t\tentityTypes: sqlFamilyEntityTypes,\n\t\tpslBlockDescriptors: sqlFamilyPslBlockDescriptors,\n\t\tattributeSpecs: sqlAttributeSpecs,\n\t\tdataTypes: { [SQL_EXPRESSION_DATA_TYPE_ID]: sqlExpressionAuthoringEntry }\n\t};\n\tcreate(stack) {\n\t\treturn createSqlFamilyInstance(stack);\n\t}\n};\n//#endregion\n//#region src/core/migrations/apply-table-rename.ts\nconst TABLE_RENAME_UNMATCHED_CODE = \"MIGRATION.TABLE_RENAME_UNMATCHED\";\nfunction tableLabel(namespaceId, tableName) {\n\treturn namespaceId === void 0 || namespaceId === UNBOUND_NAMESPACE_ID ? tableName : `${namespaceId}.${tableName}`;\n}\nfunction namespacesDeclaring(contract, tableName) {\n\treturn Object.values(contract.storage.namespaces).filter((namespace) => Object.hasOwn(namespace.entries.table ?? {}, tableName)).map((namespace) => namespace.id);\n}\nfunction declares(contract, namespaceId, tableName) {\n\treturn Object.hasOwn(contract.storage.namespaces[namespaceId]?.entries.table ?? {}, tableName);\n}\nfunction unmatched(rename, reason) {\n\treturn sqlFamilyError(TABLE_RENAME_UNMATCHED_CODE, `renameTable \"${tableLabel(rename.namespaceId, rename.from)}\" to \"${rename.to}\" does not match the migration's contracts: ${reason}.`, {\n\t\twhy: \"renameTable must name a table of the migration's start contract and a new name that the end contract has and the start contract does not. Make the rename its own schema change, so the migration's start contract is the schema before the rename and its end contract the schema after it, and check the spelling and the namespace.\",\n\t\tmeta: {\n\t\t\tfrom: rename.from,\n\t\t\tto: rename.to\n\t\t}\n\t});\n}\nfunction resolveTableRename(rename, startContract, endContract) {\n\tconst namespaceIds = rename.namespaceId === void 0 ? namespacesDeclaring(startContract, rename.from) : declares(startContract, rename.namespaceId, rename.from) ? [rename.namespaceId] : [];\n\tconst [namespaceId, ...others] = namespaceIds;\n\tif (namespaceId === void 0) return notOk(unmatched(rename, `table \"${tableLabel(rename.namespaceId, rename.from)}\" does not exist in the start contract`));\n\tif (others.length > 0) return notOk(unmatched(rename, `table \"${rename.from}\" is declared in more than one namespace (${namespaceIds.join(\", \")}); name its namespace`));\n\tif (declares(startContract, namespaceId, rename.to)) return notOk(unmatched(rename, `table \"${tableLabel(namespaceId, rename.to)}\" already exists in the start contract`));\n\tif (!declares(endContract, namespaceId, rename.to)) return notOk(unmatched(rename, `table \"${tableLabel(namespaceId, rename.to)}\" does not exist in the end contract`));\n\treturn ok({\n\t\tnamespaceId,\n\t\tfrom: rename.from,\n\t\tto: rename.to\n\t});\n}\nfunction renamedReference(reference, rename) {\n\tif (!(reference.spaceId === void 0) || reference.namespaceId !== rename.namespaceId || reference.tableName !== rename.from) return reference;\n\treturn {\n\t\t...reference,\n\t\ttableName: rename.to\n\t};\n}\nfunction renameForeignKeys(table, rename) {\n\tif (!table.foreignKeys.some((fk) => renamedReference(fk.source, rename) !== fk.source || renamedReference(fk.target, rename) !== fk.target)) return table;\n\treturn new StorageTable({\n\t\t...table,\n\t\tforeignKeys: table.foreignKeys.map((fk) => new ForeignKey({\n\t\t\t...fk,\n\t\t\tsource: renamedReference(fk.source, rename),\n\t\t\ttarget: renamedReference(fk.target, rename)\n\t\t}))\n\t});\n}\n/**\n* The same namespace instance with only `entries` replaced: every own\n* property, including the non-enumerable `kind`, is carried over onto the\n* same prototype, so the target's namespace class (its `qualifyTable`,\n* `ddlSchemaName`, entity getters) keeps working on the copy. This is the\n* one place a frozen contract node is rebuilt without its constructor: the\n* constructors re-hydrate `entries` from raw input, which the already\n* hydrated entities here do not need.\n*/\nfunction withEntries(namespace, entries) {\n\tconst copy = Object.create(Object.getPrototypeOf(namespace), {\n\t\t...Object.getOwnPropertyDescriptors(namespace),\n\t\tentries: {\n\t\t\tvalue: Object.freeze(entries),\n\t\t\tenumerable: true,\n\t\t\twritable: false,\n\t\t\tconfigurable: false\n\t\t}\n\t});\n\treturn Object.freeze(copy);\n}\nfunction renameTableInNamespace(namespace, rename, renameTableReferences) {\n\tconst ownsTable = rename.namespaceId === namespace.id;\n\tconst tables = Object.entries(namespace.entries.table ?? {}).map(([name, table]) => [ownsTable && name === rename.from ? rename.to : name, renameForeignKeys(table, rename)]);\n\tif (tables.every(([name, table]) => namespace.entries.table?.[name] === table)) return namespace;\n\tif (!isMaterializedSqlNamespace(namespace)) throw new InternalError(`applyTableRename: namespace \"${namespace.id}\" is not a materialized SQL namespace`);\n\tconst renamedTables = {\n\t\t...namespace.entries,\n\t\ttable: Object.fromEntries(tables)\n\t};\n\treturn withEntries(namespace, renameTableReferences === void 0 || !ownsTable ? renamedTables : renameTableReferences(renamedTables, rename));\n}\nfunction renameTableInContract(contract, rename, renameTableReferences) {\n\tconst namespaces = Object.fromEntries(Object.entries(contract.storage.namespaces).map(([id, namespace]) => [id, renameTableInNamespace(namespace, rename, renameTableReferences)]));\n\tconst materialized = {};\n\tfor (const [id, namespace] of Object.entries(namespaces)) {\n\t\tif (!isMaterializedSqlNamespace(namespace)) throw new InternalError(`applyTableRename: namespace \"${id}\" is not a materialized SQL namespace`);\n\t\tmaterialized[id] = namespace;\n\t}\n\treturn {\n\t\t...contract,\n\t\tstorage: new SqlStorage({\n\t\t\tstorageHash: contract.storage.storageHash,\n\t\t\t...contract.storage.types === void 0 ? {} : { types: contract.storage.types },\n\t\t\tnamespaces: materialized\n\t\t})\n\t};\n}\n/**\n* Resolves the table a migration renames against its start and end contracts and returns the start contract with that table under its new name, so a diff against the end contract sees the table under one name. The table must exist in the start contract (in exactly one namespace when the namespace is not given), and the new name must exist in the end contract and not in the start contract; otherwise the rename is refused with `MIGRATION.TABLE_RENAME_UNMATCHED`.\n*\n* Foreign keys that name the renamed table on either side are retargeted. Index, unique, check and primary-key names are carried unchanged. Target entity kinds that name the table are renamed by the target's `renameTableReferences`.\n*/\nfunction applyTableRename(input) {\n\tif (input.startContract === null) return notOk(unmatched(input.rename, \"the migration has no start contract\"));\n\tconst resolved = resolveTableRename(input.rename, input.startContract, input.endContract);\n\tif (!resolved.ok) return resolved;\n\treturn ok({\n\t\tcontract: renameTableInContract(input.startContract, resolved.value, input.renameTableReferences),\n\t\trename: resolved.value\n\t});\n}\n//#endregion\n//#region src/core/migrations/contract-to-schema-ir.ts\nfunction convertColumn(name, column, storageTypes, expandNativeType, renderDefault, resolveDefault, dataTypeOf) {\n\tconst resolved = resolveColumnTypeMetadata(column, storageTypes);\n\tconst baseNativeType = expandNativeType ? expandNativeType({\n\t\tnativeType: resolved.nativeType,\n\t\tcodecId: resolved.codecId,\n\t\t...ifDefined(\"typeParams\", resolved.typeParams)\n\t}) : resolved.nativeType;\n\tconst nativeType = baseNativeType;\n\tconst resolvedNativeType = column.many ? `${baseNativeType}[]` : baseNativeType;\n\tconst rawColumnDefault = column.default ?? void 0;\n\tconst resolvedColumnDefault = rawColumnDefault !== void 0 && resolveDefault ? resolveDefault(rawColumnDefault, resolvedNativeType) : rawColumnDefault;\n\treturn {\n\t\tname,\n\t\tnativeType,\n\t\tnullable: column.nullable,\n\t\t...ifDefined(\"many\", column.many),\n\t\t...ifDefined(\"default\", column.default != null && renderDefault ? renderDefault(column.default, column) : void 0),\n\t\tresolvedNativeType,\n\t\t...ifDefined(\"resolvedDefault\", resolvedColumnDefault),\n\t\t...ifDefined(\"authoredDefault\", rawColumnDefault),\n\t\tcodecRef: buildColumnCodecRef(resolved, column.many),\n\t\tcodecBaseNativeType: resolved.nativeType,\n\t\t...column.typeRef !== void 0 ? { codecNamedType: true } : {},\n\t\t...ifDefined(\"dataType\", dataTypeOf?.(resolved.codecId))\n\t};\n}\n/**\n* Builds the column's `CodecRef` from its resolved (post-`typeRef`) codec\n* identity — the same construction the query AST and the migration DDL\n* renderer already use (TML-2456, TML-2918).\n*/\nfunction buildColumnCodecRef(resolved, many) {\n\treturn {\n\t\tcodecId: resolved.codecId,\n\t\t...ifDefined(\"typeParams\", resolved.typeParams !== void 0 ? blindCast(resolved.typeParams) : void 0),\n\t\t...ifDefined(\"many\", many)\n\t};\n}\nfunction resolveColumnTypeMetadata(column, storageTypes) {\n\tif (!column.typeRef) return column;\n\tconst referenced = storageTypes[column.typeRef];\n\tif (!referenced) throw sqlFamilyError(\"CONTRACT.TYPE_UNKNOWN\", `Column references storage type \"${column.typeRef}\" but it is not defined in storage.types.`, {\n\t\twhy: \"The column typeRef does not resolve to any entry in the contract storage.types map.\",\n\t\tfix: \"Regenerate the contract from its authoring source; do not hand-edit contract JSON.\",\n\t\tmeta: { typeRef: column.typeRef }\n\t});\n\tif (isStorageTypeInstance(referenced)) return {\n\t\tcodecId: referenced.codecId,\n\t\tnativeType: referenced.nativeType,\n\t\ttypeParams: referenced.typeParams\n\t};\n\tthrow new InternalError(`Storage type \"${column.typeRef}\" has an unknown polymorphic kind; expected a codec-typed StorageTypeInstance.`);\n}\nfunction convertCheck(check, tableName, tableColumns) {\n\treturn {\n\t\tnaming: namingOf(check.name, check.prefix),\n\t\texpression: check.expression,\n\t\tdependsOn: flatColumnDependsOn(tableName, tableColumns)\n\t};\n}\nfunction convertUnique(unique, tableName) {\n\treturn {\n\t\tcolumns: unique.columns,\n\t\t...ifDefined(\"name\", unique.name),\n\t\tdependsOn: flatColumnDependsOn(tableName, unique.columns)\n\t};\n}\nfunction convertIndex(index, tableName, tableColumns) {\n\tconst base = {\n\t\tnaming: namingOf(index.name, index.prefix),\n\t\twhere: index.where,\n\t\tunique: index.unique,\n\t\tpartial: index.where !== void 0,\n\t\ttype: index.type,\n\t\toptions: index.options,\n\t\tannotations: void 0,\n\t\tdependsOn: flatColumnDependsOn(tableName, index.columns ?? tableColumns)\n\t};\n\treturn index.expression !== void 0 ? {\n\t\t...base,\n\t\texpression: index.expression\n\t} : {\n\t\t...base,\n\t\tcolumns: index.columns ?? []\n\t};\n}\n/**\n* The referenced table's chain in the flat (single-schema) tree\n* `contractToSchemaIR`/`contractNamespaceToSchemaIR` build: the root\n* (`SqlSchemaIR`, fixed `'database'` id) followed by the table's own id.\n* Postgres discards this when it re-derives the FK against its own\n* multi-schema tree shape (`contractToPostgresDatabaseSchemaNode`); SQLite's\n* flat tree uses it as-is.\n*/\nfunction flatSchemaDependsOn(tableName) {\n\treturn [{\n\t\tnodeKind: RelationalSchemaNodeKind.schema,\n\t\tid: \"database\"\n\t}, {\n\t\tnodeKind: RelationalSchemaNodeKind.table,\n\t\tid: tableName\n\t}];\n}\n/**\n* The chains from a table-child object (foreign key, index, unique, primary\n* key) to each of the own columns it is built on, in the flat tree. Dropping\n* a covered column auto-drops the object, so the object's drop must precede\n* the column's; the graph derives that direction from these edges.\n*/\nfunction flatColumnDependsOn(tableName, columns) {\n\treturn columns.map((column) => [\n\t\t{\n\t\t\tnodeKind: RelationalSchemaNodeKind.schema,\n\t\t\tid: \"database\"\n\t\t},\n\t\t{\n\t\t\tnodeKind: RelationalSchemaNodeKind.table,\n\t\t\tid: tableName\n\t\t},\n\t\t{\n\t\t\tnodeKind: RelationalSchemaNodeKind.column,\n\t\t\tid: `column:${column}`\n\t\t}\n\t]);\n}\n/**\n* The FK's referenced-namespace identity comes from the target's namespace\n* node, not the raw namespace-id string. An unbound target namespace stamps\n* no `referencedSchema` at all — the FK node's id renders the absence as the\n* empty segment, which is what flat (single-schema) introspection produces,\n* so both diff sides' FK ids meet by construction. A bound namespace (or a\n* cross-space target whose namespace lives in another contract's storage)\n* stamps its coordinate verbatim; namespaced targets (Postgres) resolve the\n* real DDL schema downstream.\n*\n* `dependsOn` carries the referenced table (created before the FK, dropped\n* after it) plus the FK's own columns (dropped after the FK, since dropping a\n* column auto-drops the FK built on it).\n*/\nfunction convertForeignKey(fk, storage) {\n\tconst targetIsUnbound = storage.namespaces[fk.target.namespaceId]?.isUnbound === true;\n\treturn {\n\t\tcolumns: fk.source.columns,\n\t\treferencedTable: fk.target.tableName,\n\t\t...targetIsUnbound ? {} : { referencedSchema: fk.target.namespaceId },\n\t\treferencedColumns: fk.target.columns,\n\t\t...ifDefined(\"name\", fk.name),\n\t\t...ifDefined(\"onDelete\", fk.onDelete),\n\t\t...ifDefined(\"onUpdate\", fk.onUpdate),\n\t\tdependsOn: [flatSchemaDependsOn(fk.target.tableName), ...flatColumnDependsOn(fk.source.tableName, fk.source.columns)]\n\t};\n}\nfunction convertTable(name, table, storageTypes, expandNativeType, renderDefault, resolveDefault, dataTypeOf, storage) {\n\tconst columns = {};\n\tfor (const [colName, colDef] of Object.entries(table.columns)) columns[colName] = convertColumn(colName, colDef, storageTypes, expandNativeType, renderDefault, resolveDefault, dataTypeOf);\n\tconst checks = table.checks && table.checks.length > 0 ? table.checks.map((c) => convertCheck(c, name, Object.keys(table.columns))) : void 0;\n\treturn new SqlTableIR({\n\t\tname,\n\t\tcolumns,\n\t\t...ifDefined(\"primaryKey\", table.primaryKey !== void 0 ? {\n\t\t\tcolumns: table.primaryKey.columns,\n\t\t\t...ifDefined(\"name\", table.primaryKey.name),\n\t\t\tdependsOn: flatColumnDependsOn(name, table.primaryKey.columns)\n\t\t} : void 0),\n\t\tforeignKeys: table.foreignKeys.map((fk) => convertForeignKey(fk, storage)),\n\t\tuniques: table.uniques.map((u) => convertUnique(u, name)),\n\t\tindexes: table.indexes.map((i) => convertIndex(i, name, Object.keys(table.columns))),\n\t\t...ifDefined(\"checks\", checks)\n\t});\n}\n/**\n* Detects destructive changes between two contract storages.\n*\n* The additive-only planner silently ignores removals (tables, columns).\n* This function detects those removals so callers can report them as conflicts\n* rather than silently producing an empty plan.\n*\n* Returns an empty array if no destructive changes are found.\n*/\nfunction detectDestructiveChanges(from, to) {\n\tif (!from) return [];\n\tconst hasOwn = (value, key) => Object.hasOwn(value, key);\n\tconst conflicts = [];\n\tconst namespaceIds = [.../* @__PURE__ */ new Set([...Object.keys(from.namespaces), ...Object.keys(to.namespaces)])].sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n\tfor (const namespaceId of namespaceIds) {\n\t\tconst fromNs = from.namespaces[namespaceId];\n\t\tconst toNs = to.namespaces[namespaceId];\n\t\tconst fromTables = fromNs?.entries.table;\n\t\tif (!fromTables) continue;\n\t\tfor (const tableName of Object.keys(fromTables)) {\n\t\t\tconst toTableRaw = toNs?.entries.table?.[tableName];\n\t\t\tif (!StorageTable.is(toTableRaw)) {\n\t\t\t\tconflicts.push({\n\t\t\t\t\tkind: \"tableRemoved\",\n\t\t\t\t\tsummary: `Table \"${tableName}\" was removed`\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst toTable = toTableRaw;\n\t\t\tconst fromTableRaw = fromTables[tableName];\n\t\t\tif (!StorageTable.is(fromTableRaw)) continue;\n\t\t\tconst fromTable = fromTableRaw;\n\t\t\tfor (const columnName of Object.keys(fromTable.columns)) if (!hasOwn(toTable.columns, columnName)) conflicts.push({\n\t\t\t\tkind: \"columnRemoved\",\n\t\t\t\tsummary: `Column \"${tableName}\".\"${columnName}\" was removed`\n\t\t\t});\n\t\t}\n\t}\n\treturn conflicts;\n}\n/**\n* Converts a `Contract` to `SqlSchemaIR`.\n*\n* Reads `contract.storage` for tables and `contract.storage.types` for type\n* annotations. Storage-type annotations are written under\n* `options.annotationNamespace`.\n*\n* Drops codec metadata (`codecId`, `typeRef`) since the schema IR only represents\n* structural information. When `expandNativeType` is provided, parameterized types\n* are expanded (e.g. `character` + `{ length: 36 }` → `character(36)`) so the\n* resulting IR compares correctly against the \"to\" contract during planning.\n*\n* Returns an empty schema IR when `contract` is `null` (new project).\n*/\n/**\n* Converts the tables of a single namespace into a `SqlSchemaIR`, keyed by\n* table name within that namespace. Unlike {@link contractToSchemaIR}, which\n* flattens every namespace's tables into one bare-keyed record (and throws on a\n* cross-namespace name collision), this scopes the table iteration to one\n* namespace so the same table name can exist in two schemas.\n*\n* The full `storage` is still passed to `convertTable`, so value-set / enum /\n* type resolution that legitimately spans namespaces is unaffected. Foreign\n* keys are built purely from the FK descriptor (`fk.target`), so cross-namespace\n* FKs survive per-namespace conversion. The `annotations` block (storage-type\n* derived) is omitted here — the per-namespace tree consumer reads only the\n* per-table fields.\n*/\nfunction contractNamespaceToSchemaIR(storage, namespaceId, options) {\n\tif (options.annotationNamespace.length === 0) throw sqlFamilyError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", \"annotationNamespace must be a non-empty string\", {\n\t\twhy: \"The calling target pack passed an empty annotationNamespace to the contract-to-schema-IR projection.\",\n\t\tfix: \"Fix the target pack to pass its non-empty annotation namespace (e.g. \\\"pg\\\").\",\n\t\tmeta: { option: \"annotationNamespace\" }\n\t});\n\tconst namespace = storage.namespaces[namespaceId];\n\tif (!namespace) return new SqlSchemaIR({ tables: {} });\n\tconst storageTypes = { ...storage.types ?? {} };\n\tconst tables = {};\n\tfor (const [tableName, tableDefRaw] of Object.entries(namespace.entries.table ?? {})) {\n\t\tStorageTable.assert(tableDefRaw, `namespaces.${namespaceId}.entries.table.${tableName}`);\n\t\ttables[tableName] = convertTable(tableName, tableDefRaw, storageTypes, options.expandNativeType, options.renderDefault, options.resolveDefault, options.dataTypeOf, storage);\n\t}\n\treturn new SqlSchemaIR({ tables });\n}\nfunction contractToSchemaIR(contract, options) {\n\tif (options.annotationNamespace.length === 0) throw sqlFamilyError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", \"annotationNamespace must be a non-empty string\", {\n\t\twhy: \"The calling target pack passed an empty annotationNamespace to the contract-to-schema-IR projection.\",\n\t\tfix: \"Fix the target pack to pass its non-empty annotation namespace (e.g. \\\"pg\\\").\",\n\t\tmeta: { option: \"annotationNamespace\" }\n\t});\n\tif (!contract) return new SqlSchemaIR({ tables: {} });\n\tconst storage = contract.storage;\n\tconst storageTypes = { ...storage.types ?? {} };\n\tconst tables = {};\n\tfor (const ns of Object.values(storage.namespaces)) for (const [tableName, tableDefRaw] of Object.entries(ns.entries.table ?? {})) {\n\t\tStorageTable.assert(tableDefRaw, `namespaces.${ns.id}.entries.table.${tableName}`);\n\t\tconst tableDef = tableDefRaw;\n\t\tif (tables[tableName] !== void 0) throw sqlFamilyError(\"CONTRACT.TABLE_AMBIGUOUS\", `contractToSchemaIR: duplicate SQL table name \"${tableName}\" across namespaces (ambiguous for flat SqlSchemaIR.tables).`, {\n\t\t\twhy: \"Two namespaces declare a table with the same name, which is ambiguous for the flat schema-IR table map.\",\n\t\t\tfix: \"Rename one of the tables so every table name is unique across namespaces.\",\n\t\t\tmeta: { table: tableName }\n\t\t});\n\t\ttables[tableName] = convertTable(tableName, tableDef, storageTypes, options.expandNativeType, options.renderDefault, options.resolveDefault, options.dataTypeOf, storage);\n\t}\n\treturn new SqlSchemaIR({\n\t\ttables,\n\t\t...ifDefined(\"annotations\", deriveAnnotations(storage, options.annotationNamespace, options.resolveEnumNamespaceSchema))\n\t});\n}\nfunction deriveAnnotations(storage, annotationNamespace, _resolveEnumNamespaceSchema) {\n\tconst storageTypes = {};\n\tfor (const typeInstance of Object.values(storage.types ?? {})) if (isStorageTypeInstance(typeInstance)) storageTypes[typeInstance.nativeType] = typeInstance;\n\tconst envelope = { ...Object.keys(storageTypes).length > 0 ? { storageTypes } : {} };\n\tif (Object.keys(envelope).length === 0) return void 0;\n\treturn { [annotationNamespace]: envelope };\n}\n//#endregion\n//#region src/core/migrations/control-policy.ts\n/**\n* The control policy that governs a single call. The `external` default is an\n* un-overridable namespace floor: when the contract default is `external`, no\n* per-object `managed` override can escalate DDL above the floor, so the\n* policy is forced to `external` regardless of the node's own declaration.\n* Every other default defers to the node's effective control policy.\n*/\nfunction controlPolicyForCall(subject, defaultControlPolicy) {\n\tif (defaultControlPolicy === \"external\") return \"external\";\n\treturn effectiveControlPolicy(subject?.explicitNodeControlPolicy, defaultControlPolicy);\n}\n/**\n* Whether a call is allowed to emit under a given control policy.\n*\n* - `managed` — full lifecycle, every op allowed.\n* - `tolerated` — create-if-absent only: allowed iff the call creates a whole\n* new top-level object (and its subject was positively resolved). Anything\n* that modifies an existing object, and anything whose subject could not be\n* resolved, is suppressed.\n* - `external` / `observed` — no DDL at all.\n*/\nfunction callAllowedUnderControlPolicy(policy, subject) {\n\tswitch (policy) {\n\t\tcase \"managed\": return true;\n\t\tcase \"tolerated\": return subject?.createsNewObject === true;\n\t\tcase \"external\":\n\t\tcase \"observed\": return false;\n\t}\n}\n/**\n* Partition the calls produced for a single set of subjects into those the\n* effective control policy permits (`kept`) and a list of\n* {@link SuppressionRecord}s describing the suppressed calls.\n*\n* **Prefer {@link partitionIssuesByControlPolicy}** for the schema-issue\n* pipeline: it filters subjects out of the planner's *input* so the planner\n* never has to reason about un-modeled state on `external`/`observed`\n* subjects. This call-level helper remains for paths that bypass the issue\n* pipeline — currently the codec-emitted field-event ops, which originate\n* from declared contract fields rather than from introspected schema state\n* and therefore cannot trip the diff engine.\n*/\nfunction partitionCallsByControlPolicy(options) {\n\tconst defaultControlPolicy = options.contract.defaultControlPolicy;\n\tconst kept = [];\n\tconst suppressions = [];\n\tfor (const call of options.calls) {\n\t\tconst subject = options.resolveControlPolicySubject(call);\n\t\tconst policy = controlPolicyForCall(subject, defaultControlPolicy);\n\t\tif (callAllowedUnderControlPolicy(policy, subject)) kept.push(call);\n\t\telse suppressions.push({\n\t\t\tsubject,\n\t\t\tpolicy,\n\t\t\tfactoryName: options.resolveFactoryName(call),\n\t\t\tcreatesNewObject: subject?.createsNewObject ?? false\n\t\t});\n\t}\n\treturn Object.freeze({\n\t\tkept: Object.freeze(kept),\n\t\tsuppressions: Object.freeze(suppressions)\n\t});\n}\n/**\n* Partition a list of schema-issue-shaped inputs by the effective control\n* policy of each issue's subject *before* the planner is invoked.\n*\n* `plannable` is the list of issues whose subject's effective policy permits\n* the planner to act on them (`managed`, or `tolerated` for whole-object\n* creation issues only). Issues for `external`/`observed` subjects, and\n* non-creation issues for `tolerated` subjects, are dropped from the planner's\n* input entirely — they never enter introspection-driven planning, never feed\n* the diff engine, and never produce DDL calls that would have to be\n* post-filtered. This sidesteps a class of failure where the diff engine\n* cannot reason about the live shape of a subject the user marked as\n* out-of-scope (`external`).\n*\n* `suppressions` is one {@link SuppressionRecord} per suppressed subject (not\n* per suppressed issue). Its `factoryName` is the creation factory name when any\n* of the subject's issues is whole-object creation (e.g. `createTable`), else\n* `undefined` — the family never invents a modification verb for an op that\n* produced no call; the target renders the message.\n*\n* Unresolved-subject issues (`resolveControlPolicySubject` returns\n* `undefined`) emit one record each; they cannot be deduplicated because they\n* carry no subject coordinate.\n*/\nfunction partitionIssuesByControlPolicy(options) {\n\tconst defaultControlPolicy = options.contract.defaultControlPolicy;\n\tconst plannable = [];\n\tconst suppressedSubjects = /* @__PURE__ */ new Map();\n\tconst unresolvedSuppressions = [];\n\tfor (const issue of options.issues) {\n\t\tconst subject = options.resolveControlPolicySubject(issue);\n\t\tconst policy = controlPolicyForCall(subject, defaultControlPolicy);\n\t\tconst creationFactoryName = options.resolveCreationFactoryName(issue);\n\t\tif (policy === \"managed\") {\n\t\t\tplannable.push(issue);\n\t\t\tcontinue;\n\t\t}\n\t\tif (policy === \"tolerated\" && subject !== void 0 && creationFactoryName !== void 0 && subject.createsNewObject) {\n\t\t\tplannable.push(issue);\n\t\t\tcontinue;\n\t\t}\n\t\tif (subject === void 0) {\n\t\t\tunresolvedSuppressions.push({\n\t\t\t\tsubject: void 0,\n\t\t\t\tpolicy,\n\t\t\t\tfactoryName: creationFactoryName,\n\t\t\t\tcreatesNewObject: false\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst key = subjectKey(subject);\n\t\tconst existing = suppressedSubjects.get(key);\n\t\tif (existing) {\n\t\t\tif (existing.creationFactoryName === void 0 && creationFactoryName !== void 0) existing.creationFactoryName = creationFactoryName;\n\t\t} else suppressedSubjects.set(key, {\n\t\t\tsubject,\n\t\t\tpolicy,\n\t\t\t...ifDefined(\"creationFactoryName\", creationFactoryName)\n\t\t});\n\t}\n\tconst suppressions = [...unresolvedSuppressions];\n\tfor (const entry of suppressedSubjects.values()) suppressions.push({\n\t\tsubject: entry.subject,\n\t\tpolicy: entry.policy,\n\t\tfactoryName: entry.creationFactoryName,\n\t\tcreatesNewObject: entry.subject.createsNewObject\n\t});\n\treturn Object.freeze({\n\t\tplannable: Object.freeze(plannable),\n\t\tsuppressions: Object.freeze(suppressions)\n\t});\n}\nfunction subjectKey(subject) {\n\treturn `${subject.namespaceId}\\u0000${subject.entityKind ?? \"\"}\\u0000${subject.entityName ?? \"\"}\\u0000${subject.rlsPolicy ?? \"\"}`;\n}\n//#endregion\n//#region src/core/migrations/data-type-resolver.ts\n/**\n* Builds the resolver the contract→IR derivation uses to give each column its data type (ADR 254):\n* the codec's descriptor names the type, and the composed components register it. Codecs and\n* data types from extension packs are found the same way as the target's own, and a codec id two\n* components contribute is refused, as everywhere else in the stack. Returns `undefined` when no\n* framework components are supplied, so callers can omit the option.\n*/\nfunction buildDataTypeResolver(frameworkComponents) {\n\tif (!frameworkComponents) return;\n\tconst dataTypes = assembleDataTypes(frameworkComponents).lookup;\n\tconst codecs = extractCodecLookup(frameworkComponents);\n\treturn (codecId) => {\n\t\tconst dataTypeId = codecs.descriptorFor(codecId)?.dataType;\n\t\treturn dataTypeId === void 0 ? void 0 : dataTypes.get(dataTypeId);\n\t};\n}\n//#endregion\n//#region src/core/migrations/field-event-planner.ts\nfunction planFieldEventOperations(options) {\n\tconst priorContract = options.priorContract;\n\tconst newContract = options.newContract;\n\tconst added = [];\n\tconst dropped = [];\n\tconst altered = [];\n\tconst namespaceIds = unionSorted(priorContract ? Object.keys(priorContract.storage.namespaces) : [], Object.keys(newContract.storage.namespaces));\n\tfor (const namespaceId of namespaceIds) {\n\t\tconst priorNs = priorContract?.storage.namespaces[namespaceId];\n\t\tconst newNs = newContract.storage.namespaces[namespaceId];\n\t\tconst priorTables = priorNs?.entries.table;\n\t\tconst newTables = newNs?.entries.table;\n\t\tconst tableNames = unionSorted(priorTables ? Object.keys(priorTables) : [], newTables ? Object.keys(newTables) : []);\n\t\tfor (const tableName of tableNames) {\n\t\t\tconst priorTableRaw = priorTables?.[tableName];\n\t\t\tconst newTableRaw = newTables?.[tableName];\n\t\t\tconst priorTable = StorageTable.is(priorTableRaw) ? priorTableRaw : void 0;\n\t\t\tconst newTable = StorageTable.is(newTableRaw) ? newTableRaw : void 0;\n\t\t\tconst fieldNames = unionSorted(priorTable ? Object.keys(priorTable.columns) : [], newTable ? Object.keys(newTable.columns) : []);\n\t\t\tfor (const fieldName of fieldNames) {\n\t\t\t\tconst priorField = priorTable?.columns[fieldName];\n\t\t\t\tconst newField = newTable?.columns[fieldName];\n\t\t\t\tconst entry = {\n\t\t\t\t\tnamespaceId,\n\t\t\t\t\ttableName,\n\t\t\t\t\tfieldName,\n\t\t\t\t\tpriorTable,\n\t\t\t\t\tnewTable,\n\t\t\t\t\tpriorField,\n\t\t\t\t\tnewField\n\t\t\t\t};\n\t\t\t\tif (priorField === void 0 && newField !== void 0) added.push(entry);\n\t\t\t\telse if (priorField !== void 0 && newField === void 0) dropped.push(entry);\n\t\t\t\telse if (priorField !== void 0 && newField !== void 0) {\n\t\t\t\t\tif (isAlteration(priorField, newField)) altered.push(entry);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tconst calls = [];\n\tappendCalls(\"added\", added, options.codecHooks, calls, (e) => e.newField?.codecId);\n\tappendCalls(\"dropped\", dropped, options.codecHooks, calls, (e) => e.priorField?.codecId);\n\tappendCalls(\"altered\", altered, options.codecHooks, calls, (e) => e.newField?.codecId);\n\treturn calls;\n}\nfunction appendCalls(event, entries, codecHooks, calls, pickCodecId) {\n\tfor (const entry of entries) {\n\t\tconst codecId = pickCodecId(entry);\n\t\tif (codecId === void 0) continue;\n\t\tconst hook = codecHooks.get(codecId);\n\t\tif (!hook?.onFieldEvent) continue;\n\t\tconst ctx = buildContext(event, entry);\n\t\tconst emitted = hook.onFieldEvent(event, ctx);\n\t\tfor (const call of emitted) calls.push(call);\n\t}\n}\n/**\n* The context's prior/new sides are scoped to the event:\n*\n* - `'added'` — only `newTable` / `newField` populated.\n* - `'dropped'` — only `priorTable` / `priorField` populated.\n* - `'altered'` — both sides populated.\n*/\nfunction buildContext(event, entry) {\n\tconst base = {\n\t\tnamespaceId: entry.namespaceId,\n\t\ttableName: entry.tableName,\n\t\tfieldName: entry.fieldName\n\t};\n\tif (event === \"added\") return {\n\t\t...base,\n\t\t...entry.newTable !== void 0 ? { newTable: entry.newTable } : {},\n\t\t...entry.newField !== void 0 ? { newField: entry.newField } : {}\n\t};\n\tif (event === \"dropped\") return {\n\t\t...base,\n\t\t...entry.priorTable !== void 0 ? { priorTable: entry.priorTable } : {},\n\t\t...entry.priorField !== void 0 ? { priorField: entry.priorField } : {}\n\t};\n\treturn {\n\t\t...base,\n\t\t...entry.priorTable !== void 0 ? { priorTable: entry.priorTable } : {},\n\t\t...entry.newTable !== void 0 ? { newTable: entry.newTable } : {},\n\t\t...entry.priorField !== void 0 ? { priorField: entry.priorField } : {},\n\t\t...entry.newField !== void 0 ? { newField: entry.newField } : {}\n\t};\n}\n/**\n* `'altered'` predicate. Returns `false` whenever `codecId` differs —\n* any codec change suppresses the `altered` event entirely, including\n* cases where another property also differs in the same diff. Codec\n* rotation is a v1 non-goal; avoiding the mixed event keeps the\n* migration semantics for codec changes explicit rather than smuggling\n* them through as `altered`.\n*\n* For non-`codecId` diffs, returns `true` iff any other column property\n* differs.\n*/\nfunction isAlteration(prior, current) {\n\tif (prior.codecId !== current.codecId) return false;\n\treturn !sameStorageColumn(prior, current);\n}\nfunction sameStorageColumn(a, b) {\n\tif (a === b) return true;\n\tif (a.nativeType !== b.nativeType) return false;\n\tif (a.nullable !== b.nullable) return false;\n\tif (a.typeRef !== b.typeRef) return false;\n\tif (!sameJson(a.typeParams, b.typeParams)) return false;\n\tif (!sameJson(a.default, b.default)) return false;\n\treturn true;\n}\nfunction sameJson(a, b) {\n\tif (a === b) return true;\n\tif (a === void 0 || b === void 0) return false;\n\treturn JSON.stringify(a) === JSON.stringify(b);\n}\nfunction unionSorted(a, b) {\n\tconst set = /* @__PURE__ */ new Set();\n\tfor (const name of a) set.add(name);\n\tfor (const name of b) set.add(name);\n\treturn [...set].sort((x, y) => x < y ? -1 : x > y ? 1 : 0);\n}\n//#endregion\n//#region src/core/migrations/native-type-expander.ts\n/**\n* Builds the codec-hook-composed `expandNativeType` callback the contract→IR\n* derivation uses to expand parameterized native types (e.g. `character` +\n* `{ length: 36 }` → `character(36)`). Returns `undefined` when no framework\n* components are supplied, so callers can omit the option entirely.\n*/\nfunction buildNativeTypeExpander(frameworkComponents) {\n\tif (!frameworkComponents) return;\n\tconst codecHooks = extractCodecControlHooks(frameworkComponents);\n\treturn (input) => {\n\t\tif (!input.typeParams) return input.nativeType;\n\t\tif (!input.codecId) return input.nativeType;\n\t\tconst hooks = codecHooks.get(input.codecId);\n\t\tif (!hooks?.expandNativeType) return input.nativeType;\n\t\treturn hooks.expandNativeType(input);\n\t};\n}\n//#endregion\n//#region src/core/migrations/plan-helpers.ts\nconst readOnlyEmptyObject = Object.freeze({});\nfunction cloneRecord(value) {\n\tif (value === readOnlyEmptyObject) return value;\n\treturn blindCast(Object.freeze({ ...value }));\n}\nfunction freezeSteps(steps) {\n\tif (steps.length === 0) return Object.freeze([]);\n\treturn Object.freeze(steps.map((step) => Object.freeze({\n\t\tdescription: step.description,\n\t\tsql: step.sql,\n\t\t...step.params ? { params: Object.freeze([...step.params]) } : {},\n\t\t...step.meta ? { meta: cloneRecord(step.meta) } : {}\n\t})));\n}\nfunction freezeDetailsValue(value) {\n\tif (value === null || value === void 0) return value;\n\tif (typeof value !== \"object\") return value;\n\tif (Array.isArray(value)) return blindCast(Object.freeze([...value]));\n\treturn blindCast(Object.freeze({ ...value }));\n}\nfunction freezeTargetDetails(target) {\n\treturn Object.freeze({\n\t\tid: target.id,\n\t\t...target.details !== void 0 ? { details: freezeDetailsValue(target.details) } : {}\n\t});\n}\nfunction freezeOperation(operation) {\n\treturn Object.freeze({\n\t\tid: operation.id,\n\t\tlabel: operation.label,\n\t\t...operation.summary ? { summary: operation.summary } : {},\n\t\toperationClass: operation.operationClass,\n\t\t...operation.invariantId ? { invariantId: operation.invariantId } : {},\n\t\ttarget: freezeTargetDetails(operation.target),\n\t\tprecheck: freezeSteps(operation.precheck),\n\t\texecute: freezeSteps(operation.execute),\n\t\tpostcheck: freezeSteps(operation.postcheck),\n\t\t...operation.meta ? { meta: cloneRecord(operation.meta) } : {}\n\t});\n}\nfunction freezeOperations(operations) {\n\tif (operations.length === 0) return Object.freeze([]);\n\treturn Object.freeze(operations.map((operation) => freezeOperation(operation)));\n}\nfunction createMigrationPlan(options) {\n\treturn Object.freeze({\n\t\ttargetId: options.targetId,\n\t\tspaceId: options.spaceId,\n\t\t...options.origin !== void 0 ? { origin: options.origin ? Object.freeze({ ...options.origin }) : null } : {},\n\t\tdestination: Object.freeze({ ...options.destination }),\n\t\toperations: freezeOperations(options.operations),\n\t\tprovidedInvariants: Object.freeze([...options.providedInvariants]),\n\t\t...options.meta ? { meta: cloneRecord(options.meta) } : {}\n\t});\n}\nfunction plannerSuccess(plan, warnings) {\n\treturn Object.freeze({\n\t\tkind: \"success\",\n\t\tplan,\n\t\t...warnings && warnings.length > 0 ? { warnings: Object.freeze(warnings.map((conflict) => Object.freeze({\n\t\t\tkind: conflict.kind,\n\t\t\tsummary: conflict.summary,\n\t\t\t...conflict.why ? { why: conflict.why } : {},\n\t\t\t...conflict.location ? { location: Object.freeze({ ...conflict.location }) } : {},\n\t\t\t...conflict.meta ? { meta: cloneRecord(conflict.meta) } : {}\n\t\t}))) } : {}\n\t});\n}\nfunction plannerFailure(conflicts) {\n\treturn Object.freeze({\n\t\tkind: \"failure\",\n\t\tconflicts: Object.freeze(conflicts.map((conflict) => Object.freeze({\n\t\t\tkind: conflict.kind,\n\t\t\tsummary: conflict.summary,\n\t\t\t...conflict.why ? { why: conflict.why } : {},\n\t\t\t...conflict.location ? { location: Object.freeze({ ...conflict.location }) } : {},\n\t\t\t...conflict.meta ? { meta: cloneRecord(conflict.meta) } : {}\n\t\t})))\n\t});\n}\n/**\n* Creates a successful migration runner result.\n*/\nfunction runnerSuccess(value) {\n\treturn ok(Object.freeze({\n\t\toperationsPlanned: value.operationsPlanned,\n\t\toperationsExecuted: value.operationsExecuted\n\t}));\n}\n/**\n* Creates a failed migration runner result.\n*/\nfunction runnerFailure(code, summary, options) {\n\treturn notOk(Object.freeze({\n\t\tcode,\n\t\tsummary,\n\t\t...options?.why ? { why: options.why } : {},\n\t\t...options?.meta ? { meta: cloneRecord(options.meta) } : {}\n\t}));\n}\n//#endregion\n//#region src/core/migrations/policies.ts\n/**\n* Policy used by `db init`: additive-only operations, no widening/destructive steps.\n*/\nconst INIT_ADDITIVE_POLICY = Object.freeze({ allowedOperationClasses: Object.freeze([\"additive\"]) });\n//#endregion\n//#region src/core/migrations/table-name-case-guard.ts\nconst TABLE_NAME_CASE_CHANGED_CODE = \"MIGRATION.TABLE_NAME_CASE_CHANGED\";\nfunction lowerFirst(value) {\n\treturn value.charAt(0).toLowerCase() + value.slice(1);\n}\nfunction plannedTable(node, namespaceId) {\n\treturn {\n\t\tnamespaceId,\n\t\ttableName: node.name\n\t};\n}\nfunction renameNeedsNamespace(drop, dropped, contract, defaultNamespaceId) {\n\tif (drop.namespaceId !== UNBOUND_NAMESPACE_ID && drop.namespaceId !== defaultNamespaceId) return true;\n\tconst declaredElsewhere = (namespaceId, tableName) => namespaceId !== drop.namespaceId && tableName === drop.tableName;\n\treturn dropped.some((other) => declaredElsewhere(other.namespaceId, other.tableName)) || Object.values(contract.storage.namespaces).some((namespace) => Object.keys(namespace.entries.table ?? {}).some((tableName) => declaredElsewhere(namespace.id, tableName)));\n}\n/**\n* Finds every (drop `X`, create `Y`) pair in the same namespace where `X` is\n* `Y` with its first letter lowered. That shape is the signature of a schema\n* upgraded across the release in which a model with no `@@map` stopped\n* lowering the first letter of its table name: planning it would drop the\n* user's table and recreate it empty. Columns are deliberately not compared,\n* so a user who also changed a field in the same upgrade is still protected.\n*\n* Returns one conflict per pair, carrying `MIGRATION.TABLE_NAME_CASE_CHANGED`\n* in `meta.code`, or an empty array when the plan has no such pair.\n*/\nfunction detectTableNameCaseChanges(input) {\n\tconst dropped = [];\n\tconst created = [];\n\tfor (const issue of input.issues) {\n\t\tconst outcome = issueOutcome(issue);\n\t\tif (outcome === \"not-equal\") continue;\n\t\tconst table = input.tableOf(issue);\n\t\tif (table === void 0) continue;\n\t\t(outcome === \"not-expected\" ? dropped : created).push(plannedTable(table, input.namespaceIdOf(issue)));\n\t}\n\tconst conflicts = [];\n\tfor (const create of created) {\n\t\tconst drop = dropped.find((candidate) => candidate.namespaceId === create.namespaceId && candidate.tableName === lowerFirst(create.tableName));\n\t\tif (drop === void 0) continue;\n\t\tconst renameCall = input.renameTableCall({\n\t\t\tnamespaceId: renameNeedsNamespace(drop, dropped, input.contract, input.defaultNamespaceId) ? drop.namespaceId : void 0,\n\t\t\tfrom: drop.tableName,\n\t\t\tto: create.tableName\n\t\t});\n\t\tconflicts.push({\n\t\t\tkind: \"tableNameCaseChanged\",\n\t\t\tsummary: `${TABLE_NAME_CASE_CHANGED_CODE}: table \"${create.tableName}\" would be created and table \"${drop.tableName}\" dropped. Prisma 8 changed the default table name: a model with no @@map now names its table verbatim, so model ${create.tableName} points at \"${create.tableName}\" instead of \"${drop.tableName}\".`,\n\t\t\twhy: `To keep table \"${drop.tableName}\" and its rows, add @@map(\"${drop.tableName}\") to model ${create.tableName} (or run the add-model-map codemod over the schema) and plan again. To rename the table and keep its rows instead: in a project with migration history, make the rename its own schema change, create its migration with prisma migration new --from <hash of the migration the database is at>, and add ${renameCall} to the migration's operations, which renames the table and the objects named after it; in a project that uses db update, rename it by hand with ${input.renameByHandStatements({\n\t\t\t\tnamespaceId: create.namespaceId,\n\t\t\t\tfrom: drop.tableName,\n\t\t\t\tto: create.tableName\n\t\t\t}).join(\"; \")}, then run db update again.`,\n\t\t\tlocation: {\n\t\t\t\tnamespaceId: create.namespaceId,\n\t\t\t\tentityKind: \"table\",\n\t\t\t\tentityName: create.tableName\n\t\t\t},\n\t\t\tmeta: {\n\t\t\t\tcode: TABLE_NAME_CASE_CHANGED_CODE,\n\t\t\t\tdroppedTable: drop.tableName,\n\t\t\t\tcreatedTable: create.tableName\n\t\t\t}\n\t\t});\n\t}\n\treturn conflicts;\n}\n//#endregion\n//#region src/core/timestamp-now-generator.ts\nfunction temporalStringAuthoringPresets(input) {\n\tconst presets = temporalAuthoringPresets(input);\n\treturn {\n\t\tcreatedAtString: presets.createdAt,\n\t\tupdatedAtString: presets.updatedAt\n\t};\n}\nconst TEMPORAL_PRECISION_ARG = {\n\tname: \"precision\",\n\tkind: \"number\",\n\toptional: true,\n\tinteger: true,\n\tminimum: 0\n};\n/**\n* Builds a `temporal.<codec>` field preset for a codec that takes a precision\n* parameter (`pg/timestamp-temporal@1`, `pg/timestamptz-temporal@1`). Arguments change field\n* properties only — never the codec, which the caller fixes here.\n*\n* All three arguments are optional: omitting `precision` omits `typeParams`\n* entirely, and omitting a phase omits that phase (both omitted omits\n* `executionDefaults`).\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction temporalCodecPresetWithPrecision(input) {\n\tconst generatorId = input.generatorId ?? TIMESTAMP_NOW_GENERATOR_ID;\n\treturn {\n\t\tkind: \"fieldPreset\",\n\t\targs: [\n\t\t\tTEMPORAL_PRECISION_ARG,\n\t\t\tTEMPORAL_ON_CREATE_ARG,\n\t\t\tTEMPORAL_ON_UPDATE_ARG\n\t\t],\n\t\toutput: {\n\t\t\tcodecId: input.codecId,\n\t\t\tnativeType: input.nativeType,\n\t\t\ttypeParams: { precision: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0\n\t\t\t} },\n\t\t\texecutionDefaults: {\n\t\t\t\tonCreate: temporalPhaseTemplate(1, generatorId),\n\t\t\t\tonUpdate: temporalPhaseTemplate(2, generatorId)\n\t\t\t}\n\t\t}\n\t};\n}\n//#endregion\n//#region src/exports/control.ts\nvar control_default = new SqlFamilyDescriptor();\n//#endregion\nexport { INIT_ADDITIVE_POLICY, TABLE_NAME_CASE_CHANGED_CODE, applyTableRename, assembleAuthoringContributions, buildDataTypeResolver, buildNativeTypeExpander, checkSqlDefaultBody, contractNamespaceToSchemaIR, contractToSchemaIR, controlPolicyForCall, createMigrationPlan, control_default as default, detectDestructiveChanges, detectTableNameCaseChanges, extractCodecControlHooks, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventOperations, plannerFailure, plannerSuccess, runnerFailure, runnerSuccess, temporalCodecPresetWithPrecision, temporalStringAuthoringPresets };\n\n//# sourceMappingURL=control.mjs.map"],"mappings":"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"}
@@ -3,7 +3,7 @@ import "./types-BoMDdzjD.mjs";
3
3
  import { y as SqlSchemaIRNode } from "./types-DinsvYdY-Dv_n3Tac.mjs";
4
4
  import "./types-BBT7jidC.mjs";
5
5
  import "./control-adapter-C4_cgvzB-BhRxZg-n.mjs";
6
- import { n as CodecControlHooks } from "./types-BKJWoQ40-Dg7V0ErT.mjs";
6
+ import { n as CodecControlHooks } from "./types-BHKZ4M-a-DYsrOHhh.mjs";
7
7
  import { t as SqlSchemaDiffFn } from "./schema-differ-DpG_gnur-gLIPLPVI.mjs";
8
8
  import { Contract, ControlPolicy } from "@prisma/orm-framework/contract/types";
9
9
  import { TargetBoundComponentDescriptor } from "@prisma/orm-framework/components/components";
@@ -101,4 +101,4 @@ interface VerifySqlSchemaByDiffInput {
101
101
  declare function verifySqlSchemaByDiff(input: VerifySqlSchemaByDiffInput): VerifyDatabaseSchemaResult;
102
102
  //#endregion
103
103
  export { VerifySqlSchemaByDiffInput as a, computeSqlDiffVerdict as c, StorageTypeVerdictInput as i, computeStorageTypeVerdict as l, SqlDiffVerdictInput as n, classifyDiffSubjectGranularity as o, StorageTypeVerdict as r, classifySqlDiffIssue as s, SqlDiffVerdict as t, verifySqlSchemaByDiff as u };
104
- //# sourceMappingURL=diff-DrA2bRUQ.d.mts.map
104
+ //# sourceMappingURL=diff-CPnJUpHZ.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff-DrA2bRUQ.d.mts","names":[],"sources":["../../../../2-sql/9-family/dist/diff.d.mts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;iBAmBiB,+BAA+B,OAAO,iBAAiB,gBAAgB,qBAAqB,yBAAyB;;;;;;;;;;;;;iBAarH,qBAAqB,OAAO,iBAAiB,gBAAgB,qBAAqB,yBAAyB;UAClH;;WAEC,iBAAiB;;WAEjB,uBAAuB,OAAO,oBAAoB;WAClD;WACA,sBAAsB;;WAEtB,gBAAgB,qBAAqB;;UAEtC;WACC,mBAAmB;WACnB,mBAAmB;;;;;;;;;iBASb,sBAAsB,OAAO,sBAAsB;UAC1D;WACC,UAAU,SAAS;;;;;;;WAOnB,gBAAgB;aACd,QAAQ;;WAEV,YAAY,oBAAoB;;;;;;;;;UASjC;WACC,mBAAmB;WACnB,mBAAmB;;iBAEb,0BAA0B,OAAO,0BAA0B;UAClE;WACC,UAAU,SAAS;WACnB,QAAQ;WACR;WACA,qBAAqB,cAAc;;WAEnC,YAAY;;WAEZ,gBAAgB,qBAAqB;;;;;;;;;iBAS/B,sBAAsB,OAAO,6BAA6B"}
1
+ {"version":3,"file":"diff-CPnJUpHZ.d.mts","names":[],"sources":["../../../../2-sql/9-family/dist/diff.d.mts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;iBAmBiB,+BAA+B,OAAO,iBAAiB,gBAAgB,qBAAqB,yBAAyB;;;;;;;;;;;;;iBAarH,qBAAqB,OAAO,iBAAiB,gBAAgB,qBAAqB,yBAAyB;UAClH;;WAEC,iBAAiB;;WAEjB,uBAAuB,OAAO,oBAAoB;WAClD;WACA,sBAAsB;;WAEtB,gBAAgB,qBAAqB;;UAEtC;WACC,mBAAmB;WACnB,mBAAmB;;;;;;;;;iBASb,sBAAsB,OAAO,sBAAsB;UAC1D;WACC,UAAU,SAAS;;;;;;;WAOnB,gBAAgB;aACd,QAAQ;;WAEV,YAAY,oBAAoB;;;;;;;;;UASjC;WACC,mBAAmB;WACnB,mBAAmB;;iBAEb,0BAA0B,OAAO,0BAA0B;UAClE;WACC,UAAU,SAAS;WACnB,QAAQ;WACR;WACA,qBAAqB,cAAc;;WAEnC,YAAY;;WAEZ,gBAAgB,qBAAqB;;;;;;;;;iBAS/B,sBAAsB,OAAO,6BAA6B"}
package/dist/family.d.mts CHANGED
@@ -1,17 +1,17 @@
1
1
  import { n as resolveStorageTable, t as ResolvedStorageTable } from "./resolve-storage-table-DhgzQjow.mjs";
2
2
  import { h as checkSqlDefaultBody } from "./validators-CZNulH-_.mjs";
3
3
  import { i as SqlControlAdapter, n as Lowerer, o as arraysEqual, r as NativeTypeNormalizer, t as ExecuteRequestLowerer } from "./control-adapter-C4_cgvzB-BhRxZg-n.mjs";
4
- import { A as SqlPlannerSuccessResult, C as SqlMigrationRunnerSuccessValue, D as SqlPlannerConflictLocation, E as SqlPlannerConflictKind, O as SqlPlannerFailureResult, S as SqlMigrationRunnerResult, T as SqlPlannerConflict, _ as SqlMigrationRunner, a as FieldEvent, b as SqlMigrationRunnerExecuteOptions, c as SqlControlAdapterDescriptor, d as SqlMigrationPlanContractInfo, f as SqlMigrationPlanOperation, g as SqlMigrationPlannerPlanOptions, h as SqlMigrationPlanner, i as ExpandNativeTypeInput, j as StorageTypePlanResult, k as SqlPlannerResult, l as SqlControlExtensionDescriptor, m as SqlMigrationPlanOperationTarget, n as CodecControlHooks, o as FieldEventContext, p as SqlMigrationPlanOperationStep, r as CreateSqlMigrationPlanOptions, s as ResolveIdentityValueInput, u as SqlMigrationPlan, v as SqlMigrationRunnerErrorCode, w as SqlPlanTargetDetails, x as SqlMigrationRunnerFailure, y as SqlMigrationRunnerExecuteCallbacks } from "./types-BKJWoQ40-Dg7V0ErT.mjs";
4
+ import { A as SqlPlannerSuccessResult, C as SqlMigrationRunnerSuccessValue, D as SqlPlannerConflictLocation, E as SqlPlannerConflictKind, O as SqlPlannerFailureResult, S as SqlMigrationRunnerResult, T as SqlPlannerConflict, _ as SqlMigrationRunner, a as FieldEvent, b as SqlMigrationRunnerExecuteOptions, c as SqlControlAdapterDescriptor, d as SqlMigrationPlanContractInfo, f as SqlMigrationPlanOperation, g as SqlMigrationPlannerPlanOptions, h as SqlMigrationPlanner, i as ExpandNativeTypeInput, j as StorageTypePlanResult, k as SqlPlannerResult, l as SqlControlExtensionDescriptor, m as SqlMigrationPlanOperationTarget, n as CodecControlHooks, o as FieldEventContext, p as SqlMigrationPlanOperationStep, r as CreateSqlMigrationPlanOptions, s as ResolveIdentityValueInput, u as SqlMigrationPlan, v as SqlMigrationRunnerErrorCode, w as SqlPlanTargetDetails, x as SqlMigrationRunnerFailure, y as SqlMigrationRunnerExecuteCallbacks } from "./types-BHKZ4M-a-DYsrOHhh.mjs";
5
5
  import { n as SqlSchemaDiffInput, r as SqlSchemaDiffResult, t as SqlSchemaDiffFn } from "./schema-differ-DpG_gnur-gLIPLPVI.mjs";
6
- import { A as contractToSchemaIR, B as plannerSuccess, C as TableNameCaseGuardTable, D as buildDataTypeResolver, E as assembleAuthoringContributions, F as extractCodecControlHooks, H as runnerSuccess, I as partitionCallsByControlPolicy, L as partitionIssuesByControlPolicy, M as createMigrationPlan, N as detectDestructiveChanges, O as buildNativeTypeExpander, P as detectTableNameCaseChanges, R as planFieldEventOperations, S as TABLE_NAME_CASE_CHANGED_CODE, U as temporalCodecPresetWithPrecision, V as runnerFailure, W as temporalStringAuthoringPresets, _ as SqlControlFamilyInstance, a as DefaultResolver, b as SqlPslBuildContext, c as MigrationOperationClass, d as MigrationPlanOperation, f as MigrationPlanner, g as PlanFieldEventOperationsOptions, h as NativeTypeExpander, i as DefaultRenderer, j as controlPolicyForCall, k as contractNamespaceToSchemaIR, l as MigrationOperationPolicy, m as MigrationPlannerResult, n as ControlPolicySubject, o as EnumNamespaceSchemaResolver, p as MigrationPlannerConflict, r as DataTypeResolver, s as INIT_ADDITIVE_POLICY, t as ContractToSchemaIROptions, u as MigrationPlan, v as SqlControlTargetDescriptor, w as TargetMigrationsCapability, x as SuppressionRecord, y as SqlDescribedContractSpace, z as plannerFailure } from "./control-xT2HdvBb.mjs";
6
+ import { A as TableRenameInMigration, B as createMigrationPlan, C as SqlDescribedContractSpace, D as TableNameCaseGuardTable, E as TABLE_NAME_CASE_CHANGED_CODE, F as buildDataTypeResolver, G as partitionIssuesByControlPolicy, H as detectTableNameCaseChanges, I as buildNativeTypeExpander, J as plannerSuccess, K as planFieldEventOperations, L as contractNamespaceToSchemaIR, N as applyTableRename, O as TableRename, P as assembleAuthoringContributions, Q as temporalStringAuthoringPresets, R as contractToSchemaIR, S as SqlControlTargetDescriptor, T as SuppressionRecord, U as extractCodecControlHooks, V as detectDestructiveChanges, W as partitionCallsByControlPolicy, X as runnerSuccess, Y as runnerFailure, Z as temporalCodecPresetWithPrecision, _ as NativeTypeExpander, a as DataTypeResolver, b as ResolvedTableRename, c as EnumNamespaceSchemaResolver, d as MigrationOperationPolicy, f as MigrationPlan, g as MigrationPlannerResult, h as MigrationPlannerConflict, i as ControlPolicySubject, j as TargetMigrationsCapability, k as TableRenameByHand, l as INIT_ADDITIVE_POLICY, m as MigrationPlanner, n as ApplyTableRenameInput, o as DefaultRenderer, p as MigrationPlanOperation, q as plannerFailure, r as ContractToSchemaIROptions, s as DefaultResolver, t as AppliedTableRename, u as MigrationOperationClass, v as PlanFieldEventOperationsOptions, w as SqlPslBuildContext, x as SqlControlFamilyInstance, y as RenameTableReferences, z as controlPolicyForCall } from "./control-BFgBjkQh.mjs";
7
7
  import "./control-adapter-Cj6XQ7Yo.mjs";
8
- import { a as VerifySqlSchemaByDiffInput, c as computeSqlDiffVerdict, i as StorageTypeVerdictInput, l as computeStorageTypeVerdict, n as SqlDiffVerdictInput, o as classifyDiffSubjectGranularity, r as StorageTypeVerdict, s as classifySqlDiffIssue, t as SqlDiffVerdict, u as verifySqlSchemaByDiff } from "./diff-DrA2bRUQ.mjs";
8
+ import { a as VerifySqlSchemaByDiffInput, c as computeSqlDiffVerdict, i as StorageTypeVerdictInput, l as computeStorageTypeVerdict, n as SqlDiffVerdictInput, o as classifyDiffSubjectGranularity, r as StorageTypeVerdict, s as classifySqlDiffIssue, t as SqlDiffVerdict, u as verifySqlSchemaByDiff } from "./diff-CPnJUpHZ.mjs";
9
9
  import { i as SqlSchemaVerifierBase, n as SqlContractSerializerBase, r as SqlEntityHydrationFactory, t as SqlContractSerializer } from "./ir-DI4cwMsy.mjs";
10
- import { t as SqlMigration } from "./migration-CYi19ePw.mjs";
10
+ import { t as SqlMigration } from "./migration-Ixy5Tqxd.mjs";
11
11
  import "./pack-DcSVDz7M.mjs";
12
12
  import { a as PslTypeResolution, i as PslTypeReference, n as DefaultMappingResult, o as mapDefault, r as PslTypeMap, t as DefaultMappingOptions } from "./type-map-DpfnXzun-DZaSuJXh.mjs";
13
13
  import { t as toEnumMemberName } from "./psl-build-BnM1ZTyK.mjs";
14
14
  import { a as buildChildRelationField, c as inferRelations, d as toFieldName, f as toModelName, i as RelationField, l as pluralize, n as InferredRelations, o as deriveBackRelationFieldName, r as PslPrinterOptions, s as deriveRelationFieldName, t as EnumInfo, u as toEnumName } from "./psl-infer-DT5_Lx5r.mjs";
15
15
  import { a as timestampNowRuntimeGenerator, n as UNBOUND_DOMAIN_NAMESPACE_ID, r as resolveDomainModel, t as ResolvedDomainModel } from "./runtime-I-W0bhvd.mjs";
16
16
  import { n as parseContractMarkerRow, t as ContractMarkerRow } from "./verify-zDRnw0Rn.mjs";
17
- export { type CodecControlHooks, type ContractMarkerRow, type ContractToSchemaIROptions, type ControlPolicySubject, type CreateSqlMigrationPlanOptions, type DataTypeResolver, type DefaultMappingOptions, type DefaultMappingResult, type DefaultRenderer, type DefaultResolver, type EnumInfo, type EnumNamespaceSchemaResolver, type ExecuteRequestLowerer, type ExpandNativeTypeInput, type FieldEvent, type FieldEventContext, INIT_ADDITIVE_POLICY, type InferredRelations, type Lowerer, SqlMigration as Migration, type MigrationOperationClass, type MigrationOperationPolicy, type MigrationPlan, type MigrationPlanOperation, type MigrationPlanner, type MigrationPlannerConflict, type MigrationPlannerResult, type NativeTypeExpander, type NativeTypeNormalizer, type PlanFieldEventOperationsOptions, type PslPrinterOptions, type PslTypeMap, type PslTypeReference, type PslTypeResolution, type RelationField, type ResolveIdentityValueInput, type ResolvedDomainModel, type ResolvedStorageTable, SqlContractSerializer, SqlContractSerializerBase, type SqlControlAdapter, type SqlControlExtensionDescriptor, type SqlControlFamilyInstance, type SqlControlTargetDescriptor, type SqlDescribedContractSpace, type SqlDiffVerdict, type SqlDiffVerdictInput, type SqlEntityHydrationFactory, 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 SqlPslBuildContext, type SqlSchemaDiffFn, type SqlSchemaDiffInput, type SqlSchemaDiffResult, SqlSchemaVerifierBase, type StorageTypePlanResult, type StorageTypeVerdict, type StorageTypeVerdictInput, type SuppressionRecord, TABLE_NAME_CASE_CHANGED_CODE, type TableNameCaseGuardTable, type TargetMigrationsCapability, UNBOUND_DOMAIN_NAMESPACE_ID, type VerifySqlSchemaByDiffInput, arraysEqual, assembleAuthoringContributions, buildChildRelationField, buildDataTypeResolver, buildNativeTypeExpander, checkSqlDefaultBody, classifyDiffSubjectGranularity, classifySqlDiffIssue, computeSqlDiffVerdict, computeStorageTypeVerdict, contractNamespaceToSchemaIR, contractToSchemaIR, controlPolicyForCall, createMigrationPlan, deriveBackRelationFieldName, deriveRelationFieldName, detectDestructiveChanges, detectTableNameCaseChanges, extractCodecControlHooks, inferRelations, mapDefault, parseContractMarkerRow, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventOperations, plannerFailure, plannerSuccess, pluralize, resolveDomainModel, resolveStorageTable, runnerFailure, runnerSuccess, temporalCodecPresetWithPrecision, temporalStringAuthoringPresets, timestampNowRuntimeGenerator, toEnumMemberName, toEnumName, toFieldName, toModelName, verifySqlSchemaByDiff };
17
+ export { type AppliedTableRename, type ApplyTableRenameInput, type CodecControlHooks, type ContractMarkerRow, type ContractToSchemaIROptions, type ControlPolicySubject, type CreateSqlMigrationPlanOptions, type DataTypeResolver, type DefaultMappingOptions, type DefaultMappingResult, type DefaultRenderer, type DefaultResolver, type EnumInfo, type EnumNamespaceSchemaResolver, type ExecuteRequestLowerer, type ExpandNativeTypeInput, type FieldEvent, type FieldEventContext, INIT_ADDITIVE_POLICY, type InferredRelations, type Lowerer, SqlMigration as Migration, type MigrationOperationClass, type MigrationOperationPolicy, type MigrationPlan, type MigrationPlanOperation, type MigrationPlanner, type MigrationPlannerConflict, type MigrationPlannerResult, type NativeTypeExpander, type NativeTypeNormalizer, type PlanFieldEventOperationsOptions, type PslPrinterOptions, type PslTypeMap, type PslTypeReference, type PslTypeResolution, type RelationField, type RenameTableReferences, type ResolveIdentityValueInput, type ResolvedDomainModel, type ResolvedStorageTable, type ResolvedTableRename, SqlContractSerializer, SqlContractSerializerBase, type SqlControlAdapter, type SqlControlExtensionDescriptor, type SqlControlFamilyInstance, type SqlControlTargetDescriptor, type SqlDescribedContractSpace, type SqlDiffVerdict, type SqlDiffVerdictInput, type SqlEntityHydrationFactory, 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 SqlPslBuildContext, type SqlSchemaDiffFn, type SqlSchemaDiffInput, type SqlSchemaDiffResult, SqlSchemaVerifierBase, type StorageTypePlanResult, type StorageTypeVerdict, type StorageTypeVerdictInput, type SuppressionRecord, TABLE_NAME_CASE_CHANGED_CODE, type TableNameCaseGuardTable, type TableRename, type TableRenameByHand, type TableRenameInMigration, type TargetMigrationsCapability, UNBOUND_DOMAIN_NAMESPACE_ID, type VerifySqlSchemaByDiffInput, applyTableRename, arraysEqual, assembleAuthoringContributions, buildChildRelationField, buildDataTypeResolver, buildNativeTypeExpander, checkSqlDefaultBody, classifyDiffSubjectGranularity, classifySqlDiffIssue, computeSqlDiffVerdict, computeStorageTypeVerdict, contractNamespaceToSchemaIR, contractToSchemaIR, controlPolicyForCall, createMigrationPlan, deriveBackRelationFieldName, deriveRelationFieldName, detectDestructiveChanges, detectTableNameCaseChanges, extractCodecControlHooks, inferRelations, mapDefault, parseContractMarkerRow, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventOperations, plannerFailure, plannerSuccess, pluralize, resolveDomainModel, resolveStorageTable, runnerFailure, runnerSuccess, temporalCodecPresetWithPrecision, temporalStringAuthoringPresets, timestampNowRuntimeGenerator, toEnumMemberName, toEnumName, toFieldName, toModelName, verifySqlSchemaByDiff };
package/dist/family.mjs CHANGED
@@ -3,7 +3,7 @@ import { n as checkSqlDefaultBody } from "./validators-BlqrBU7I.mjs";
3
3
  import { a as computeStorageTypeVerdict, i as computeSqlDiffVerdict, n as classifyDiffSubjectGranularity, o as extractCodecControlHooks, r as classifySqlDiffIssue, s as verifySqlSchemaByDiff } from "./schema-verify-DI0aJQ9d-DL-C6on7.mjs";
4
4
  import { n as SqlContractSerializerBase, t as SqlContractSerializer } from "./sql-contract-serializer-C90xg7_q-DBJSt3MT.mjs";
5
5
  import { n as parseContractMarkerRow } from "./verify-BVk5bjdH-BXgGLM2U.mjs";
6
- import { _ as plannerSuccess, a as buildNativeTypeExpander, b as temporalCodecPresetWithPrecision, c as controlPolicyForCall, d as detectDestructiveChanges, f as detectTableNameCaseChanges, g as plannerFailure, h as planFieldEventOperations, i as buildDataTypeResolver, m as partitionIssuesByControlPolicy, n as TABLE_NAME_CASE_CHANGED_CODE, o as contractNamespaceToSchemaIR, p as partitionCallsByControlPolicy, r as assembleAuthoringContributions, s as contractToSchemaIR, t as INIT_ADDITIVE_POLICY, u as createMigrationPlan, v as runnerFailure, x as temporalStringAuthoringPresets, y as runnerSuccess } from "./control-DMbej03E.mjs";
6
+ import { S as temporalStringAuthoringPresets, _ as plannerFailure, a as buildDataTypeResolver, b as runnerSuccess, c as contractToSchemaIR, d as createMigrationPlan, f as detectDestructiveChanges, g as planFieldEventOperations, h as partitionIssuesByControlPolicy, i as assembleAuthoringContributions, l as controlPolicyForCall, m as partitionCallsByControlPolicy, n as TABLE_NAME_CASE_CHANGED_CODE, o as buildNativeTypeExpander, p as detectTableNameCaseChanges, r as applyTableRename, s as contractNamespaceToSchemaIR, t as INIT_ADDITIVE_POLICY, v as plannerSuccess, x as temporalCodecPresetWithPrecision, y as runnerFailure } from "./control-D7yb7l7O.mjs";
7
7
  import { t as arraysEqual } from "./diff-B16bL_IR.mjs";
8
8
  import { t as SqlSchemaVerifierBase } from "./ir-I-xciGUH.mjs";
9
9
  import { t as SqlMigration } from "./migration-CK4oePIo.mjs";
@@ -11,4 +11,4 @@ import { s as toEnumMemberName } from "./psl-names-C3cwe0rg-CsuHOV7E.mjs";
11
11
  import { t as mapDefault } from "./psl-build-139T3MMA.mjs";
12
12
  import { a as pluralize, c as toModelName, i as inferRelations, n as deriveBackRelationFieldName, o as toEnumName, r as deriveRelationFieldName, s as toFieldName, t as buildChildRelationField } from "./psl-infer-8kKfa-Ts.mjs";
13
13
  import { i as timestampNowRuntimeGenerator, n as resolveDomainModel, t as UNBOUND_DOMAIN_NAMESPACE_ID } from "./runtime-Z3nD7ix1.mjs";
14
- export { INIT_ADDITIVE_POLICY, SqlMigration as Migration, SqlContractSerializer, SqlContractSerializerBase, SqlSchemaVerifierBase, TABLE_NAME_CASE_CHANGED_CODE, UNBOUND_DOMAIN_NAMESPACE_ID, arraysEqual, assembleAuthoringContributions, buildChildRelationField, buildDataTypeResolver, buildNativeTypeExpander, checkSqlDefaultBody, classifyDiffSubjectGranularity, classifySqlDiffIssue, computeSqlDiffVerdict, computeStorageTypeVerdict, contractNamespaceToSchemaIR, contractToSchemaIR, controlPolicyForCall, createMigrationPlan, deriveBackRelationFieldName, deriveRelationFieldName, detectDestructiveChanges, detectTableNameCaseChanges, extractCodecControlHooks, inferRelations, mapDefault, parseContractMarkerRow, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventOperations, plannerFailure, plannerSuccess, pluralize, resolveDomainModel, resolveStorageTable, runnerFailure, runnerSuccess, temporalCodecPresetWithPrecision, temporalStringAuthoringPresets, timestampNowRuntimeGenerator, toEnumMemberName, toEnumName, toFieldName, toModelName, verifySqlSchemaByDiff };
14
+ export { INIT_ADDITIVE_POLICY, SqlMigration as Migration, SqlContractSerializer, SqlContractSerializerBase, SqlSchemaVerifierBase, TABLE_NAME_CASE_CHANGED_CODE, UNBOUND_DOMAIN_NAMESPACE_ID, applyTableRename, arraysEqual, assembleAuthoringContributions, buildChildRelationField, buildDataTypeResolver, buildNativeTypeExpander, checkSqlDefaultBody, classifyDiffSubjectGranularity, classifySqlDiffIssue, computeSqlDiffVerdict, computeStorageTypeVerdict, contractNamespaceToSchemaIR, contractToSchemaIR, controlPolicyForCall, createMigrationPlan, deriveBackRelationFieldName, deriveRelationFieldName, detectDestructiveChanges, detectTableNameCaseChanges, extractCodecControlHooks, inferRelations, mapDefault, parseContractMarkerRow, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventOperations, plannerFailure, plannerSuccess, pluralize, resolveDomainModel, resolveStorageTable, runnerFailure, runnerSuccess, temporalCodecPresetWithPrecision, temporalStringAuthoringPresets, timestampNowRuntimeGenerator, toEnumMemberName, toEnumName, toFieldName, toModelName, verifySqlSchemaByDiff };
@@ -1,5 +1,5 @@
1
1
  import { h as checkSqlDefaultBody } from "./validators-CZNulH-_.mjs";
2
- import { A as SqlPlannerSuccessResult, C as SqlMigrationRunnerSuccessValue, D as SqlPlannerConflictLocation, E as SqlPlannerConflictKind, O as SqlPlannerFailureResult, S as SqlMigrationRunnerResult, T as SqlPlannerConflict, _ as SqlMigrationRunner, a as FieldEvent, b as SqlMigrationRunnerExecuteOptions, c as SqlControlAdapterDescriptor, d as SqlMigrationPlanContractInfo, f as SqlMigrationPlanOperation, g as SqlMigrationPlannerPlanOptions, h as SqlMigrationPlanner, i as ExpandNativeTypeInput, j as StorageTypePlanResult, k as SqlPlannerResult, l as SqlControlExtensionDescriptor, m as SqlMigrationPlanOperationTarget, n as CodecControlHooks, o as FieldEventContext, p as SqlMigrationPlanOperationStep, r as CreateSqlMigrationPlanOptions, s as ResolveIdentityValueInput, u as SqlMigrationPlan, v as SqlMigrationRunnerErrorCode, w as SqlPlanTargetDetails, x as SqlMigrationRunnerFailure, y as SqlMigrationRunnerExecuteCallbacks } from "./types-BKJWoQ40-Dg7V0ErT.mjs";
2
+ import { A as SqlPlannerSuccessResult, C as SqlMigrationRunnerSuccessValue, D as SqlPlannerConflictLocation, E as SqlPlannerConflictKind, O as SqlPlannerFailureResult, S as SqlMigrationRunnerResult, T as SqlPlannerConflict, _ as SqlMigrationRunner, a as FieldEvent, b as SqlMigrationRunnerExecuteOptions, c as SqlControlAdapterDescriptor, d as SqlMigrationPlanContractInfo, f as SqlMigrationPlanOperation, g as SqlMigrationPlannerPlanOptions, h as SqlMigrationPlanner, i as ExpandNativeTypeInput, j as StorageTypePlanResult, k as SqlPlannerResult, l as SqlControlExtensionDescriptor, m as SqlMigrationPlanOperationTarget, n as CodecControlHooks, o as FieldEventContext, p as SqlMigrationPlanOperationStep, r as CreateSqlMigrationPlanOptions, s as ResolveIdentityValueInput, u as SqlMigrationPlan, v as SqlMigrationRunnerErrorCode, w as SqlPlanTargetDetails, x as SqlMigrationRunnerFailure, y as SqlMigrationRunnerExecuteCallbacks } from "./types-BHKZ4M-a-DYsrOHhh.mjs";
3
3
  import { n as SqlSchemaDiffInput, r as SqlSchemaDiffResult, t as SqlSchemaDiffFn } from "./schema-differ-DpG_gnur-gLIPLPVI.mjs";
4
- import { A as contractToSchemaIR, B as plannerSuccess, C as TableNameCaseGuardTable, D as buildDataTypeResolver, E as assembleAuthoringContributions, F as extractCodecControlHooks, H as runnerSuccess, I as partitionCallsByControlPolicy, L as partitionIssuesByControlPolicy, M as createMigrationPlan, N as detectDestructiveChanges, O as buildNativeTypeExpander, P as detectTableNameCaseChanges, R as planFieldEventOperations, S as TABLE_NAME_CASE_CHANGED_CODE, T as _default, U as temporalCodecPresetWithPrecision, V as runnerFailure, W as temporalStringAuthoringPresets, _ as SqlControlFamilyInstance, a as DefaultResolver, b as SqlPslBuildContext, c as MigrationOperationClass, d as MigrationPlanOperation, f as MigrationPlanner, g as PlanFieldEventOperationsOptions, h as NativeTypeExpander, i as DefaultRenderer, j as controlPolicyForCall, k as contractNamespaceToSchemaIR, l as MigrationOperationPolicy, m as MigrationPlannerResult, n as ControlPolicySubject, o as EnumNamespaceSchemaResolver, p as MigrationPlannerConflict, r as DataTypeResolver, s as INIT_ADDITIVE_POLICY, t as ContractToSchemaIROptions, u as MigrationPlan, v as SqlControlTargetDescriptor, w as TargetMigrationsCapability, x as SuppressionRecord, y as SqlDescribedContractSpace, z as plannerFailure } from "./control-xT2HdvBb.mjs";
5
- export { type CodecControlHooks, type ContractToSchemaIROptions, type ControlPolicySubject, type CreateSqlMigrationPlanOptions, type DataTypeResolver, type DefaultRenderer, type DefaultResolver, type EnumNamespaceSchemaResolver, type ExpandNativeTypeInput, type FieldEvent, type FieldEventContext, INIT_ADDITIVE_POLICY, type MigrationOperationClass, type MigrationOperationPolicy, type MigrationPlan, type MigrationPlanOperation, type MigrationPlanner, type MigrationPlannerConflict, type MigrationPlannerResult, type NativeTypeExpander, type PlanFieldEventOperationsOptions, type ResolveIdentityValueInput, type SqlControlAdapterDescriptor, type SqlControlExtensionDescriptor, type SqlControlFamilyInstance, type SqlControlTargetDescriptor, type SqlDescribedContractSpace, 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 SqlPslBuildContext, type SqlSchemaDiffFn, type SqlSchemaDiffInput, type SqlSchemaDiffResult, type StorageTypePlanResult, type SuppressionRecord, TABLE_NAME_CASE_CHANGED_CODE, type TableNameCaseGuardTable, type TargetMigrationsCapability, assembleAuthoringContributions, buildDataTypeResolver, buildNativeTypeExpander, checkSqlDefaultBody, contractNamespaceToSchemaIR, contractToSchemaIR, controlPolicyForCall, createMigrationPlan, _default as default, detectDestructiveChanges, detectTableNameCaseChanges, extractCodecControlHooks, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventOperations, plannerFailure, plannerSuccess, runnerFailure, runnerSuccess, temporalCodecPresetWithPrecision, temporalStringAuthoringPresets };
4
+ import { A as TableRenameInMigration, B as createMigrationPlan, C as SqlDescribedContractSpace, D as TableNameCaseGuardTable, E as TABLE_NAME_CASE_CHANGED_CODE, F as buildDataTypeResolver, G as partitionIssuesByControlPolicy, H as detectTableNameCaseChanges, I as buildNativeTypeExpander, J as plannerSuccess, K as planFieldEventOperations, L as contractNamespaceToSchemaIR, M as _default, N as applyTableRename, O as TableRename, P as assembleAuthoringContributions, Q as temporalStringAuthoringPresets, R as contractToSchemaIR, S as SqlControlTargetDescriptor, T as SuppressionRecord, U as extractCodecControlHooks, V as detectDestructiveChanges, W as partitionCallsByControlPolicy, X as runnerSuccess, Y as runnerFailure, Z as temporalCodecPresetWithPrecision, _ as NativeTypeExpander, a as DataTypeResolver, b as ResolvedTableRename, c as EnumNamespaceSchemaResolver, d as MigrationOperationPolicy, f as MigrationPlan, g as MigrationPlannerResult, h as MigrationPlannerConflict, i as ControlPolicySubject, j as TargetMigrationsCapability, k as TableRenameByHand, l as INIT_ADDITIVE_POLICY, m as MigrationPlanner, n as ApplyTableRenameInput, o as DefaultRenderer, p as MigrationPlanOperation, q as plannerFailure, r as ContractToSchemaIROptions, s as DefaultResolver, t as AppliedTableRename, u as MigrationOperationClass, v as PlanFieldEventOperationsOptions, w as SqlPslBuildContext, x as SqlControlFamilyInstance, y as RenameTableReferences, z as controlPolicyForCall } from "./control-BFgBjkQh.mjs";
5
+ export { type AppliedTableRename, type ApplyTableRenameInput, type CodecControlHooks, type ContractToSchemaIROptions, type ControlPolicySubject, type CreateSqlMigrationPlanOptions, type DataTypeResolver, type DefaultRenderer, type DefaultResolver, type EnumNamespaceSchemaResolver, type ExpandNativeTypeInput, type FieldEvent, type FieldEventContext, INIT_ADDITIVE_POLICY, type MigrationOperationClass, type MigrationOperationPolicy, type MigrationPlan, type MigrationPlanOperation, type MigrationPlanner, type MigrationPlannerConflict, type MigrationPlannerResult, type NativeTypeExpander, type PlanFieldEventOperationsOptions, type RenameTableReferences, type ResolveIdentityValueInput, type ResolvedTableRename, type SqlControlAdapterDescriptor, type SqlControlExtensionDescriptor, type SqlControlFamilyInstance, type SqlControlTargetDescriptor, type SqlDescribedContractSpace, 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 SqlPslBuildContext, type SqlSchemaDiffFn, type SqlSchemaDiffInput, type SqlSchemaDiffResult, type StorageTypePlanResult, type SuppressionRecord, TABLE_NAME_CASE_CHANGED_CODE, type TableNameCaseGuardTable, type TableRename, type TableRenameByHand, type TableRenameInMigration, type TargetMigrationsCapability, applyTableRename, assembleAuthoringContributions, buildDataTypeResolver, buildNativeTypeExpander, checkSqlDefaultBody, contractNamespaceToSchemaIR, contractToSchemaIR, controlPolicyForCall, createMigrationPlan, _default as default, detectDestructiveChanges, detectTableNameCaseChanges, extractCodecControlHooks, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventOperations, plannerFailure, plannerSuccess, runnerFailure, runnerSuccess, temporalCodecPresetWithPrecision, temporalStringAuthoringPresets };
@@ -1,4 +1,4 @@
1
1
  import { n as checkSqlDefaultBody } from "./validators-BlqrBU7I.mjs";
2
2
  import { o as extractCodecControlHooks } from "./schema-verify-DI0aJQ9d-DL-C6on7.mjs";
3
- import { _ as plannerSuccess, a as buildNativeTypeExpander, b as temporalCodecPresetWithPrecision, c as controlPolicyForCall, d as detectDestructiveChanges, f as detectTableNameCaseChanges, g as plannerFailure, h as planFieldEventOperations, i as buildDataTypeResolver, l as control_default, m as partitionIssuesByControlPolicy, n as TABLE_NAME_CASE_CHANGED_CODE, o as contractNamespaceToSchemaIR, p as partitionCallsByControlPolicy, r as assembleAuthoringContributions, s as contractToSchemaIR, t as INIT_ADDITIVE_POLICY, u as createMigrationPlan, v as runnerFailure, x as temporalStringAuthoringPresets, y as runnerSuccess } from "./control-DMbej03E.mjs";
4
- export { INIT_ADDITIVE_POLICY, TABLE_NAME_CASE_CHANGED_CODE, assembleAuthoringContributions, buildDataTypeResolver, buildNativeTypeExpander, checkSqlDefaultBody, contractNamespaceToSchemaIR, contractToSchemaIR, controlPolicyForCall, createMigrationPlan, control_default as default, detectDestructiveChanges, detectTableNameCaseChanges, extractCodecControlHooks, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventOperations, plannerFailure, plannerSuccess, runnerFailure, runnerSuccess, temporalCodecPresetWithPrecision, temporalStringAuthoringPresets };
3
+ import { S as temporalStringAuthoringPresets, _ as plannerFailure, a as buildDataTypeResolver, b as runnerSuccess, c as contractToSchemaIR, d as createMigrationPlan, f as detectDestructiveChanges, g as planFieldEventOperations, h as partitionIssuesByControlPolicy, i as assembleAuthoringContributions, l as controlPolicyForCall, m as partitionCallsByControlPolicy, n as TABLE_NAME_CASE_CHANGED_CODE, o as buildNativeTypeExpander, p as detectTableNameCaseChanges, r as applyTableRename, s as contractNamespaceToSchemaIR, t as INIT_ADDITIVE_POLICY, u as control_default, v as plannerSuccess, x as temporalCodecPresetWithPrecision, y as runnerFailure } from "./control-D7yb7l7O.mjs";
4
+ export { INIT_ADDITIVE_POLICY, TABLE_NAME_CASE_CHANGED_CODE, applyTableRename, assembleAuthoringContributions, buildDataTypeResolver, buildNativeTypeExpander, checkSqlDefaultBody, contractNamespaceToSchemaIR, contractToSchemaIR, controlPolicyForCall, createMigrationPlan, control_default as default, detectDestructiveChanges, detectTableNameCaseChanges, extractCodecControlHooks, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventOperations, plannerFailure, plannerSuccess, runnerFailure, runnerSuccess, temporalCodecPresetWithPrecision, temporalStringAuthoringPresets };
@@ -1,3 +1,3 @@
1
1
  import { o as arraysEqual, r as NativeTypeNormalizer } from "./control-adapter-C4_cgvzB-BhRxZg-n.mjs";
2
- import { a as VerifySqlSchemaByDiffInput, c as computeSqlDiffVerdict, i as StorageTypeVerdictInput, l as computeStorageTypeVerdict, n as SqlDiffVerdictInput, o as classifyDiffSubjectGranularity, r as StorageTypeVerdict, s as classifySqlDiffIssue, t as SqlDiffVerdict, u as verifySqlSchemaByDiff } from "./diff-DrA2bRUQ.mjs";
2
+ import { a as VerifySqlSchemaByDiffInput, c as computeSqlDiffVerdict, i as StorageTypeVerdictInput, l as computeStorageTypeVerdict, n as SqlDiffVerdictInput, o as classifyDiffSubjectGranularity, r as StorageTypeVerdict, s as classifySqlDiffIssue, t as SqlDiffVerdict, u as verifySqlSchemaByDiff } from "./diff-CPnJUpHZ.mjs";
3
3
  export { type NativeTypeNormalizer, type SqlDiffVerdict, type SqlDiffVerdictInput, type StorageTypeVerdict, type StorageTypeVerdictInput, type VerifySqlSchemaByDiffInput, arraysEqual, classifyDiffSubjectGranularity, classifySqlDiffIssue, computeSqlDiffVerdict, computeStorageTypeVerdict, verifySqlSchemaByDiff };
@@ -1,2 +1,2 @@
1
- import { t as SqlMigration } from "./migration-CYi19ePw.mjs";
1
+ import { t as SqlMigration } from "./migration-Ixy5Tqxd.mjs";
2
2
  export { SqlMigration as Migration };
@@ -1,6 +1,6 @@
1
1
  import { c as SqlStorage } from "./sql-storage-BSxD7_vv-C4ugLH39.mjs";
2
2
  import "./types-BoMDdzjD.mjs";
3
- import { f as SqlMigrationPlanOperation, w as SqlPlanTargetDetails } from "./types-BKJWoQ40-Dg7V0ErT.mjs";
3
+ import { f as SqlMigrationPlanOperation, w as SqlPlanTargetDetails } from "./types-BHKZ4M-a-DYsrOHhh.mjs";
4
4
  import { Contract } from "@prisma/orm-framework/contract/types";
5
5
  import { Migration } from "@prisma/orm-toolchain/migration-tools/migration";
6
6
  //#region ../../../2-sql/9-family/dist/migration.d.mts
@@ -41,4 +41,4 @@ declare abstract class SqlMigration<TDetails extends SqlPlanTargetDetails, TTarg
41
41
  }
42
42
  //#endregion
43
43
  export { SqlMigration as t };
44
- //# sourceMappingURL=migration-CYi19ePw.d.mts.map
44
+ //# sourceMappingURL=migration-Ixy5Tqxd.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migration-CYi19ePw.d.mts","names":[],"sources":["../../../../2-sql/9-family/dist/migration.d.mts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA0BuB,aAAa,iBAAiB,sBAAsB,mCAAmC,cAAc,SAAS,cAAc,SAAS,aAAa,YAAY,SAAS,cAAc,SAAS,qBAAqB,UAAU,0BAA0B,kBAAkB,WAAW,OAAO;;;;;;;;;;;MAW5S"}
1
+ {"version":3,"file":"migration-Ixy5Tqxd.d.mts","names":[],"sources":["../../../../2-sql/9-family/dist/migration.d.mts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA0BuB,aAAa,iBAAiB,sBAAsB,mCAAmC,cAAc,SAAS,cAAc,SAAS,aAAa,YAAY,SAAS,cAAc,SAAS,qBAAqB,UAAU,0BAA0B,kBAAkB,WAAW,OAAO;;;;;;;;;;;MAW5S"}
@@ -11,7 +11,7 @@ import { TargetBoundComponentDescriptor } from "@prisma/orm-framework/components
11
11
  import { ContractSpace, ControlAdapterDescriptor, ControlExtensionDescriptor, MigrationOperationPolicy, MigrationPlan, MigrationPlanOperation, MigrationPlannerConflict, MigrationPlannerFailureResult, MigrationPlannerSuccessResult, MigrationRunnerExecutionChecks, MigrationRunnerFailure, MigrationRunnerPerSpaceSuccessValue, MigrationRunnerResult, OpFactoryCall, OperationContext, SchemaDiffIssue, SchemaOwnership } from "@prisma/orm-framework/components/control";
12
12
  import { Result } from "@prisma/orm-framework/utils/result";
13
13
  import { AggregateMigrationEdgeRef } from "@prisma/orm-toolchain/migration-tools/aggregate";
14
- //#region ../../../2-sql/9-family/dist/types-BKJWoQ40.d.mts
14
+ //#region ../../../2-sql/9-family/dist/types-BHKZ4M-a.d.mts
15
15
  //#region src/core/migrations/types.d.ts
16
16
  type AnyRecord = Readonly<Record<string, unknown>>;
17
17
  interface StorageTypePlanResult<TTargetDetails> {
@@ -423,4 +423,4 @@ interface CreateSqlMigrationPlanOptions<TTargetDetails> {
423
423
  }
424
424
  //#endregion
425
425
  export { SqlPlannerSuccessResult as A, SqlMigrationRunnerSuccessValue as C, SqlPlannerConflictLocation as D, SqlPlannerConflictKind as E, SqlPlannerFailureResult as O, SqlMigrationRunnerResult as S, SqlPlannerConflict as T, SqlMigrationRunner as _, FieldEvent as a, SqlMigrationRunnerExecuteOptions as b, SqlControlAdapterDescriptor as c, SqlMigrationPlanContractInfo as d, SqlMigrationPlanOperation as f, SqlMigrationPlannerPlanOptions as g, SqlMigrationPlanner as h, ExpandNativeTypeInput as i, StorageTypePlanResult as j, SqlPlannerResult as k, SqlControlExtensionDescriptor as l, SqlMigrationPlanOperationTarget as m, CodecControlHooks as n, FieldEventContext as o, SqlMigrationPlanOperationStep as p, CreateSqlMigrationPlanOptions as r, ResolveIdentityValueInput as s, AnyRecord as t, SqlMigrationPlan as u, SqlMigrationRunnerErrorCode as v, SqlPlanTargetDetails as w, SqlMigrationRunnerFailure as x, SqlMigrationRunnerExecuteCallbacks as y };
426
- //# sourceMappingURL=types-BKJWoQ40-Dg7V0ErT.d.mts.map
426
+ //# sourceMappingURL=types-BHKZ4M-a-DYsrOHhh.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types-BKJWoQ40-Dg7V0ErT.d.mts","names":[],"sources":["../../../../2-sql/9-family/dist/types-BKJWoQ40.d.mts"],"mappings":";;;;;;;;;;;;;;;KAUK,YAAY,SAAS;UAChB,sBAAsB;WACrB,qBAAqB,0BAA0B;;;;;UAKhD;WACC;WACA;WACA,aAAa;;;;;;;;;UASd;WACC;WACA;WACA,aAAa;;;;;;;;;;;;;;;;KAgBnB;;;;;;;;;;;;;UAaK;WACC;WACA;WACA;WACA,aAAa;WACb,WAAW;WACX,aAAa;WACb,WAAW;;UAEZ,kBAAkB;;;;;;;;;EAS1B,sBAAsB;aACX;aACA,cAAc;aACd,UAAU,SAAS;aACnB,QAAQ;aACR;aACA,QAAQ;QACb,sBAAsB;EAC5B,cAAc;aACH;aACA,cAAc;aACd,QAAQ;aACR;iBACI;EACf,mBAAmB;aACR,QAAQ;aACR;QACL,QAAQ,eAAe;;;;;;;;;;;EAW7B,oBAAoB,OAAO;;;;;;;;;;EAU3B,wBAAwB,OAAO;;;;;;;;;;;;;;;EAe/B,gBAAgB,OAAO,YAAY,KAAK,+BAA+B;;UAE/D,8BAA8B,kCAAkC,kCAAkC;WACjG,wBAAwB;;;;;;;;;;;;WAYxB,gBAAgB,cAAc,SAAS;;UAExC,4BAA4B,kCAAkC,gCAAgC,WAAW,kBAAkB;WAC1H,wBAAwB;;UAEzB;WACC;WACA;;;;;;;;;WASA;WACA,OAAO;;;;;;;;;UASR;WACC;WACA;;UAED,gCAAgC;WAC/B;WACA,UAAU;;UAEX,0BAA0B,wBAAwB;WACjD;WACA,QAAQ,gCAAgC;WACxC,mBAAmB;WACnB,kBAAkB;WAClB,oBAAoB;WACpB,OAAO;;UAER;WACC;WACA;;UAED,iBAAiB,wBAAwB;;;;;;;;;;;;;;;WAexC;;;;;WAKA,SAAS;;;;WAIT,aAAa;WACb,sBAAsB,0BAA0B,kBAAkB,QAAQ,0BAA0B;;;;;;;;;WASpG;WACA,OAAO;;KAEb;UACK;WACC;WACA;WACA;WACA;WACA;WACA;WACA;;UAED,2BAA2B;WAC1B,MAAM;WACN,WAAW;WACX,OAAO;;UAER,wBAAwB,wBAAwB,KAAK;WACpD;WACA,MAAM,iBAAiB;;UAExB,gCAAgC,KAAK;WACpC;WACA,oBAAoB;;KAE1B,iBAAiB,kBAAkB,wBAAwB,kBAAkB;UACxE;WACC,UAAU,SAAS;;;;;;WAMnB,QAAQ;WACR,QAAQ;WACR;;;;;;;;WAQA;;;;;;;;;;;;;;;;;WAiBA,cAAc,SAAS;;;;;;;WAOvB;;;;;;;WAOA,qBAAqB,cAAc;;;;;;;;;;WAUnC,YAAY;;UAEb,oBAAoB;EAC5B,KAAK,SAAS,iCAAiC,iBAAiB;;UAExD,mCAAmC;EAC3C,kBAAkB,WAAW,0BAA0B;EACvD,qBAAqB,WAAW,0BAA0B;;UAElD,iCAAiC;WAChC,MAAM,iBAAiB;WACvB,QAAQ;;;;;;;;WAQR;;;;;WAKA,qBAAqB,SAAS;;;;;WAK9B,QAAQ;WACR;WACA;WACA,YAAY,mCAAmC;WAC/C,UAAU;;;;;WAKV,kBAAkB;;;;;;;WAOlB,qBAAqB,cAAc;;;;;WAKnC,yBAAyB;;KAE/B;UACK,kCAAkC;WACjC,MAAM;WACN,OAAO;;UAER,uCAAuC;KAC5C,2BAA2B,OAAO,gCAAgC;UAC7D,mBAAmB;;;;;;;;;;;;;;EAc3B,QAAQ;aACG,QAAQ;aACR,iBAAiB,cAAc,iCAAiC;MACvE,QAAQ;;;;;;;;;;;EAWZ,oBAAoB,SAAS,iCAAiC,kBAAkB,QAAQ;;UAEhF,8BAA8B;WAC7B;;;;WAIA;WACA,SAAS;WACT,aAAa;WACb,qBAAqB,0BAA0B;;;;;;WAM/C;WACA,OAAO"}
1
+ {"version":3,"file":"types-BHKZ4M-a-DYsrOHhh.d.mts","names":[],"sources":["../../../../2-sql/9-family/dist/types-BHKZ4M-a.d.mts"],"mappings":";;;;;;;;;;;;;;;KAUK,YAAY,SAAS;UAChB,sBAAsB;WACrB,qBAAqB,0BAA0B;;;;;UAKhD;WACC;WACA;WACA,aAAa;;;;;;;;;UASd;WACC;WACA;WACA,aAAa;;;;;;;;;;;;;;;;KAgBnB;;;;;;;;;;;;;UAaK;WACC;WACA;WACA;WACA,aAAa;WACb,WAAW;WACX,aAAa;WACb,WAAW;;UAEZ,kBAAkB;;;;;;;;;EAS1B,sBAAsB;aACX;aACA,cAAc;aACd,UAAU,SAAS;aACnB,QAAQ;aACR;aACA,QAAQ;QACb,sBAAsB;EAC5B,cAAc;aACH;aACA,cAAc;aACd,QAAQ;aACR;iBACI;EACf,mBAAmB;aACR,QAAQ;aACR;QACL,QAAQ,eAAe;;;;;;;;;;;EAW7B,oBAAoB,OAAO;;;;;;;;;;EAU3B,wBAAwB,OAAO;;;;;;;;;;;;;;;EAe/B,gBAAgB,OAAO,YAAY,KAAK,+BAA+B;;UAE/D,8BAA8B,kCAAkC,kCAAkC;WACjG,wBAAwB;;;;;;;;;;;;WAYxB,gBAAgB,cAAc,SAAS;;UAExC,4BAA4B,kCAAkC,gCAAgC,WAAW,kBAAkB;WAC1H,wBAAwB;;UAEzB;WACC;WACA;;;;;;;;;WASA;WACA,OAAO;;;;;;;;;UASR;WACC;WACA;;UAED,gCAAgC;WAC/B;WACA,UAAU;;UAEX,0BAA0B,wBAAwB;WACjD;WACA,QAAQ,gCAAgC;WACxC,mBAAmB;WACnB,kBAAkB;WAClB,oBAAoB;WACpB,OAAO;;UAER;WACC;WACA;;UAED,iBAAiB,wBAAwB;;;;;;;;;;;;;;;WAexC;;;;;WAKA,SAAS;;;;WAIT,aAAa;WACb,sBAAsB,0BAA0B,kBAAkB,QAAQ,0BAA0B;;;;;;;;;WASpG;WACA,OAAO;;KAEb;UACK;WACC;WACA;WACA;WACA;WACA;WACA;WACA;;UAED,2BAA2B;WAC1B,MAAM;WACN,WAAW;WACX,OAAO;;UAER,wBAAwB,wBAAwB,KAAK;WACpD;WACA,MAAM,iBAAiB;;UAExB,gCAAgC,KAAK;WACpC;WACA,oBAAoB;;KAE1B,iBAAiB,kBAAkB,wBAAwB,kBAAkB;UACxE;WACC,UAAU,SAAS;;;;;;WAMnB,QAAQ;WACR,QAAQ;WACR;;;;;;;;WAQA;;;;;;;;;;;;;;;;;WAiBA,cAAc,SAAS;;;;;;;WAOvB;;;;;;;WAOA,qBAAqB,cAAc;;;;;;;;;;WAUnC,YAAY;;UAEb,oBAAoB;EAC5B,KAAK,SAAS,iCAAiC,iBAAiB;;UAExD,mCAAmC;EAC3C,kBAAkB,WAAW,0BAA0B;EACvD,qBAAqB,WAAW,0BAA0B;;UAElD,iCAAiC;WAChC,MAAM,iBAAiB;WACvB,QAAQ;;;;;;;;WAQR;;;;;WAKA,qBAAqB,SAAS;;;;;WAK9B,QAAQ;WACR;WACA;WACA,YAAY,mCAAmC;WAC/C,UAAU;;;;;WAKV,kBAAkB;;;;;;;WAOlB,qBAAqB,cAAc;;;;;WAKnC,yBAAyB;;KAE/B;UACK,kCAAkC;WACjC,MAAM;WACN,OAAO;;UAER,uCAAuC;KAC5C,2BAA2B,OAAO,gCAAgC;UAC7D,mBAAmB;;;;;;;;;;;;;;EAc3B,QAAQ;aACG,QAAQ;aACR,iBAAiB,cAAc,iCAAiC;MACvE,QAAQ;;;;;;;;;;;EAWZ,oBAAoB,SAAS,iCAAiC,kBAAkB,QAAQ;;UAEhF,8BAA8B;WAC7B;;;;WAIA;WACA,SAAS;WACT,aAAa;WACb,qBAAqB,0BAA0B;;;;;;WAM/C;WACA,OAAO"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/orm-family-sql",
3
- "version": "8.0.0-rc.14-dev.11",
3
+ "version": "8.0.0-rc.14-dev.12",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -9,8 +9,8 @@
9
9
  "dist"
10
10
  ],
11
11
  "dependencies": {
12
- "@prisma/orm-framework": "8.0.0-rc.14-dev.11",
13
- "@prisma/orm-toolchain": "8.0.0-rc.14-dev.11",
12
+ "@prisma/orm-framework": "8.0.0-rc.14-dev.12",
13
+ "@prisma/orm-toolchain": "8.0.0-rc.14-dev.12",
14
14
  "@standard-schema/spec": "^1.1.0",
15
15
  "arktype": "^2.2.2",
16
16
  "pathe": "^2.0.3",
@@ -19,21 +19,21 @@
19
19
  "ts-toolbelt": "^9.6.0"
20
20
  },
21
21
  "devDependencies": {
22
- "@internal/family-sql": "8.0.0-rc.14-dev.11",
23
- "@internal/sql-builder": "8.0.0-rc.14-dev.11",
24
- "@internal/sql-contract": "8.0.0-rc.14-dev.11",
25
- "@internal/sql-contract-emitter": "8.0.0-rc.14-dev.11",
26
- "@internal/sql-contract-prisma7": "8.0.0-rc.14-dev.11",
27
- "@internal/sql-contract-psl": "8.0.0-rc.14-dev.11",
28
- "@internal/sql-contract-ts": "8.0.0-rc.14-dev.11",
29
- "@internal/sql-errors": "8.0.0-rc.14-dev.11",
30
- "@internal/sql-operations": "8.0.0-rc.14-dev.11",
31
- "@internal/sql-orm-client": "8.0.0-rc.14-dev.11",
32
- "@internal/sql-relational-core": "8.0.0-rc.14-dev.11",
33
- "@internal/sql-runtime": "8.0.0-rc.14-dev.11",
34
- "@internal/sql-schema-ir": "8.0.0-rc.14-dev.11",
35
- "@repo/tsconfig": "8.0.0-rc.14-dev.11",
36
- "@repo/tsdown": "8.0.0-rc.14-dev.11",
22
+ "@internal/family-sql": "8.0.0-rc.14-dev.12",
23
+ "@internal/sql-builder": "8.0.0-rc.14-dev.12",
24
+ "@internal/sql-contract": "8.0.0-rc.14-dev.12",
25
+ "@internal/sql-contract-emitter": "8.0.0-rc.14-dev.12",
26
+ "@internal/sql-contract-prisma7": "8.0.0-rc.14-dev.12",
27
+ "@internal/sql-contract-psl": "8.0.0-rc.14-dev.12",
28
+ "@internal/sql-contract-ts": "8.0.0-rc.14-dev.12",
29
+ "@internal/sql-errors": "8.0.0-rc.14-dev.12",
30
+ "@internal/sql-operations": "8.0.0-rc.14-dev.12",
31
+ "@internal/sql-orm-client": "8.0.0-rc.14-dev.12",
32
+ "@internal/sql-relational-core": "8.0.0-rc.14-dev.12",
33
+ "@internal/sql-runtime": "8.0.0-rc.14-dev.12",
34
+ "@internal/sql-schema-ir": "8.0.0-rc.14-dev.12",
35
+ "@repo/tsconfig": "8.0.0-rc.14-dev.12",
36
+ "@repo/tsdown": "8.0.0-rc.14-dev.12",
37
37
  "tsdown": "0.22.14",
38
38
  "typescript": "5.9.3"
39
39
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"control-DMbej03E.mjs","names":[],"sources":["../../../../2-sql/9-family/dist/control.mjs"],"sourcesContent":["import { i as sqlFamilyPslBlockDescriptors, n as sqlFamilyAuthoringFieldPresets, r as sqlFamilyEntityTypes, t as sqlFamilyAuthoringTypes } from \"./authoring-type-constructors-DIyheCzv.mjs\";\nimport { n as classifyDiffSubjectGranularity, o as verifySqlSchemaByDiff, s as extractCodecControlHooks, t as classifyDiffEntityKind } from \"./schema-verify-DI0aJQ9d.mjs\";\nimport { t as sqlFamilyError } from \"./errors-B5g0xWro.mjs\";\nimport { t as SqlContractSerializer } from \"./sql-contract-serializer-C90xg7_q.mjs\";\nimport { t as collectSupportedCodecTypeIds } from \"./verify-BVk5bjdH.mjs\";\nimport { SQL_EXPRESSION_DATA_TYPE_ID, assertNothingCastsFromSqlExpression, sqlExpressionAuthoringEntry, sqlExpressionDataType } from \"@internal/sql-contract/sql-expression\";\nimport { sqlEmission } from \"@internal/sql-contract-emitter\";\nimport { sqlAttributeSpecs } from \"@internal/sql-contract-psl/attribute-specs\";\nimport { TEMPORAL_ON_CREATE_ARG, TEMPORAL_ON_UPDATE_ARG, TIMESTAMP_NOW_GENERATOR_ID, temporalAuthoringPresets, temporalPhaseTemplate } from \"@internal/framework-components/authoring\";\nimport { APP_SPACE_ID, SchemaTreeNode, VERIFY_CODE_HASH_MISMATCH, VERIFY_CODE_MARKER_MISSING, VERIFY_CODE_TARGET_MISMATCH, assembleAuthoringContributions, assembleDataTypes, extractCodecLookup, issueOutcome } from \"@internal/framework-components/control\";\nimport { isPlainRecord } from \"@internal/framework-components/ir\";\nimport { assertDescriptorSelfConsistency } from \"@internal/migration-tools/spaces\";\nimport { sqlContractCanonicalizationHooks } from \"@internal/sql-contract/canonicalization-hooks\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { effectiveControlPolicy } from \"@internal/contract/types\";\nimport { StorageTable, isStorageTypeInstance } from \"@internal/sql-contract/types\";\nimport { checkSqlDefaultBody } from \"@internal/sql-contract/validators\";\nimport { namingOf } from \"@internal/sql-schema-ir/naming\";\nimport { RelationalSchemaNodeKind, SqlSchemaIR, SqlTableIR } from \"@internal/sql-schema-ir/types\";\nimport { notOk, ok } from \"@internal/utils/result\";\n//#region src/core/operation-preview.ts\nfunction isDdlStatement(sqlStatement) {\n\tconst trimmed = sqlStatement.trim().toLowerCase();\n\treturn trimmed.startsWith(\"create \") || trimmed.startsWith(\"alter \") || trimmed.startsWith(\"drop \");\n}\nfunction hasExecuteSteps(operation) {\n\tconst execute = Reflect.get(operation, \"execute\");\n\tif (!Array.isArray(execute)) return false;\n\treturn execute.every((step) => typeof step === \"object\" && step !== null && \"sql\" in step);\n}\n/**\n* Extracts a best-effort SQL DDL preview for CLI plan output.\n* Presentation-only: never used to decide migration correctness.\n*/\nfunction extractSqlDdl(operations) {\n\tconst statements = [];\n\tfor (const operation of operations) {\n\t\tif (!hasExecuteSteps(operation)) continue;\n\t\tfor (const step of operation.execute) if (typeof step.sql === \"string\" && isDdlStatement(step.sql)) statements.push(step.sql.trim());\n\t}\n\treturn statements;\n}\n/**\n* Wraps `extractSqlDdl` into the family-agnostic `OperationPreview` shape.\n* Each statement carries `language: 'sql'`.\n*/\nfunction sqlOperationsToPreview(operations) {\n\treturn { statements: extractSqlDdl(operations).map((text) => ({\n\t\ttext,\n\t\tlanguage: \"sql\"\n\t})) };\n}\n//#endregion\n//#region src/core/control-instance.ts\nfunction missingDescriptorOperationError(targetId, operation) {\n\treturn sqlFamilyError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `SQL target \"${targetId}\" is missing the required ${operation} descriptor operation`, {\n\t\twhy: `The target descriptor does not contribute the ${operation} operation the SQL family requires for this call.`,\n\t\tfix: `Use a target package whose control descriptor implements ${operation}.`,\n\t\tmeta: {\n\t\t\ttargetId,\n\t\t\toperation\n\t\t}\n\t});\n}\nfunction extractCodecTypeIdsFromContract(contract) {\n\tconst typeIds = /* @__PURE__ */ new Set();\n\tif (typeof contract === \"object\" && contract !== null && \"storage\" in contract && typeof contract.storage === \"object\" && contract.storage !== null && \"namespaces\" in contract.storage && typeof contract.storage.namespaces === \"object\" && contract.storage.namespaces !== null) {\n\t\tconst namespaces = blindCast(contract.storage.namespaces);\n\t\tfor (const ns of Object.values(namespaces)) {\n\t\t\tconst tbls = ns.entries[\"table\"];\n\t\t\tif (typeof tbls !== \"object\" || tbls === null) continue;\n\t\t\tfor (const table of Object.values(tbls)) if (typeof table === \"object\" && table !== null && \"columns\" in table && typeof table.columns === \"object\" && table.columns !== null) {\n\t\t\t\tconst columns = blindCast(table.columns);\n\t\t\t\tfor (const column of Object.values(columns)) if (column && typeof column === \"object\" && \"codecId\" in column && typeof column.codecId === \"string\") typeIds.add(column.codecId);\n\t\t\t}\n\t\t}\n\t}\n\treturn Array.from(typeIds).sort();\n}\nfunction createVerifyResult(options) {\n\tconst contract = { storageHash: options.contractStorageHash };\n\tif (options.contractProfileHash) contract.profileHash = options.contractProfileHash;\n\tconst target = { expected: options.expectedTargetId };\n\tif (options.actualTargetId) target.actual = options.actualTargetId;\n\tconst meta = { contractPath: options.contractPath };\n\tif (options.configPath) meta.configPath = options.configPath;\n\treturn {\n\t\tok: options.ok,\n\t\tsummary: options.summary,\n\t\tcontract,\n\t\ttarget,\n\t\tmeta,\n\t\ttimings: { total: options.totalTime },\n\t\t...ifDefined(\"code\", options.code),\n\t\t...options.marker ? { marker: {\n\t\t\tstorageHash: options.marker.storageHash,\n\t\t\tprofileHash: options.marker.profileHash\n\t\t} } : {},\n\t\t...ifDefined(\"missingCodecs\", options.missingCodecs),\n\t\t...ifDefined(\"codecCoverageSkipped\", options.codecCoverageSkipped)\n\t};\n}\nfunction buildSqlTypeMetadataRegistry(options) {\n\tconst { target, adapter, extensions } = options;\n\tconst registry = /* @__PURE__ */ new Map();\n\tconst targetId = adapter.targetId;\n\tconst descriptors = [\n\t\ttarget,\n\t\tadapter,\n\t\t...extensions\n\t];\n\tfor (const descriptor of descriptors) {\n\t\tconst storageTypes = descriptor.types?.storage;\n\t\tif (!storageTypes) continue;\n\t\tfor (const storageType of storageTypes) if (storageType.familyId === \"sql\" && storageType.targetId === targetId) registry.set(storageType.typeId, {\n\t\t\ttypeId: storageType.typeId,\n\t\t\tfamilyId: \"sql\",\n\t\t\ttargetId: storageType.targetId,\n\t\t\t...storageType.nativeType !== void 0 ? { nativeType: storageType.nativeType } : {}\n\t\t});\n\t}\n\treturn registry;\n}\n/**\n* Builds a map from each extension id to the set of extension ids it\n* transitively depends on. Uses the same declared-dependency data that\n* `buildExtensionLoadOrder` in control-stack uses.\n*/\nfunction buildTransitiveDependsOnMap(extensions) {\n\tconst directDeps = /* @__PURE__ */ new Map();\n\tfor (const ext of extensions) {\n\t\tconst packs = ext.contractSpace?.contractJson?.extensions;\n\t\tconst deps = packs !== null && typeof packs === \"object\" ? Object.keys(packs) : [];\n\t\tdirectDeps.set(ext.id, deps);\n\t}\n\tconst result = /* @__PURE__ */ new Map();\n\tconst resolve = (id, visiting) => {\n\t\tconst cached = result.get(id);\n\t\tif (cached !== void 0) return cached;\n\t\tconst set = /* @__PURE__ */ new Set();\n\t\tresult.set(id, set);\n\t\tfor (const depId of directDeps.get(id) ?? []) {\n\t\t\tset.add(depId);\n\t\t\tif (!visiting.has(depId)) {\n\t\t\t\tvisiting.add(depId);\n\t\t\t\tfor (const transitive of resolve(depId, visiting)) set.add(transitive);\n\t\t\t\tvisiting.delete(depId);\n\t\t\t}\n\t\t}\n\t\treturn set;\n\t};\n\tfor (const ext of extensions) resolve(ext.id, /* @__PURE__ */ new Set([ext.id]));\n\treturn result;\n}\n/**\n* Asserts that no cross-space FK in any extension points against the\n* dependency direction.\n*\n* A cross-space FK (target.spaceId present) from extension A pointing at\n* space B is a violation when B depends on A (directly or transitively),\n* because that means A is pointing \"upward\" against the dependency arrows\n* established by the extension load order.\n*\n* Throws with a diagnostic naming the violating extension (source), the\n* target space, and the direction violation.\n*/\nfunction isObjectRecord(v) {\n\treturn typeof v === \"object\" && v !== null;\n}\nfunction assertNoCrossSpaceFkReverseReferences(extensions) {\n\tconst dependsOnMap = buildTransitiveDependsOnMap(extensions);\n\tfor (const ext of extensions) {\n\t\tconst namespaces = ext.contractSpace?.contractJson?.storage?.namespaces;\n\t\tif (!isObjectRecord(namespaces)) continue;\n\t\tfor (const ns of Object.values(namespaces)) {\n\t\t\tif (!isObjectRecord(ns)) continue;\n\t\t\tconst entries = ns[\"entries\"];\n\t\t\tif (!isObjectRecord(entries)) continue;\n\t\t\tfor (const slot of Object.values(entries)) {\n\t\t\t\tif (!isObjectRecord(slot)) continue;\n\t\t\t\tfor (const table of Object.values(slot)) {\n\t\t\t\t\tif (!isObjectRecord(table)) continue;\n\t\t\t\t\tconst foreignKeys = table[\"foreignKeys\"];\n\t\t\t\t\tif (!Array.isArray(foreignKeys)) continue;\n\t\t\t\t\tfor (const fk of foreignKeys) {\n\t\t\t\t\t\tif (!isObjectRecord(fk)) continue;\n\t\t\t\t\t\tconst target = fk[\"target\"];\n\t\t\t\t\t\tif (!isObjectRecord(target)) continue;\n\t\t\t\t\t\tif (target[\"spaceId\"] === void 0) continue;\n\t\t\t\t\t\tconst targetSpaceId = target[\"spaceId\"];\n\t\t\t\t\t\tif (typeof targetSpaceId !== \"string\") continue;\n\t\t\t\t\t\tif (dependsOnMap.get(targetSpaceId)?.has(ext.id)) throw sqlFamilyError(\"CONTRACT.FOREIGN_KEY_INVALID\", `Cross-space FK reverse-reference detected: extension \"${ext.id}\" has a cross-space FK targeting space \"${targetSpaceId}\", but \"${targetSpaceId}\" depends on \"${ext.id}\". Cross-space FKs must follow the dependency direction (a space can only reference spaces it depends on, not spaces that depend on it).`, {\n\t\t\t\t\t\t\twhy: \"The foreign key points against the contract-space dependency direction.\",\n\t\t\t\t\t\t\tfix: \"Move the foreign key to the depending space, or restructure the extension dependencies so the referencing space depends on the referenced one.\",\n\t\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\t\textensionId: ext.id,\n\t\t\t\t\t\t\t\ttargetSpaceId\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\nfunction createSqlFamilyInstance(stack) {\n\tif (!stack.adapter) throw new InternalError(\"SQL family requires an adapter descriptor in ControlStack\");\n\tassertNothingCastsFromSqlExpression(stack.declaredDataTypes);\n\tconst target = blindCast(stack.target);\n\tconst adapter = blindCast(stack.adapter);\n\tconst extensions = blindCast(stack.extensions);\n\tfor (const extension of extensions) if (extension.contractSpace) {\n\t\tconst { contractJson, headRef } = extension.contractSpace;\n\t\tassertDescriptorSelfConsistency({\n\t\t\textensionId: extension.id,\n\t\t\ttarget: contractJson.target,\n\t\t\ttargetFamily: contractJson.targetFamily,\n\t\t\tstorage: contractJson.storage,\n\t\t\theadRefHash: headRef.hash,\n\t\t\t...sqlContractCanonicalizationHooks\n\t\t});\n\t}\n\tassertNoCrossSpaceFkReverseReferences(extensions);\n\tconst { codecTypeImports, extensionIds } = stack;\n\tconst typeMetadataRegistry = buildSqlTypeMetadataRegistry({\n\t\ttarget,\n\t\tadapter,\n\t\textensions\n\t});\n\tlet controlAdapter;\n\tconst getControlAdapter = () => controlAdapter ??= adapter.create(stack);\n\tconst targetSerializer = blindCast(target).contractSerializer;\n\tconst targetInferPslContract = blindCast(target).inferPslContract;\n\tconst pslBuildContext = {\n\t\tauthoringContributions: stack.authoringContributions,\n\t\tcodecLookup: stack.codecLookup,\n\t\tdataTypeLookup: stack.dataTypeLookup\n\t};\n\tconst targetBuildPslContract = blindCast(target).buildPslContract;\n\tconst diffSchema = blindCast(target).diffSchema;\n\tconst targetGranularityOf = blindCast(target).classifySubjectGranularity;\n\tconst targetEntityKindOf = blindCast(target).classifyEntityKind;\n\tconst describedContracts = extensions.flatMap((extension) => extension.contractSpace ? [{\n\t\tspaceId: extension.id,\n\t\tcontract: extension.contractSpace.contractJson\n\t}] : []);\n\tconst deserializeWithTargetSerializer = (contractOrJson) => {\n\t\tconst serializer = targetSerializer ?? new SqlContractSerializer();\n\t\tconst json = targetSerializer !== void 0 && !isPlainRecord(contractOrJson) ? targetSerializer.serializeContract(blindCast(contractOrJson)) : contractOrJson;\n\t\treturn serializer.deserializeContract(json);\n\t};\n\treturn {\n\t\tfamilyId: \"sql\",\n\t\tcodecTypeImports,\n\t\textensionIds,\n\t\ttypeMetadataRegistry,\n\t\tdeserializeContract(contractJson) {\n\t\t\treturn deserializeWithTargetSerializer(contractJson);\n\t\t},\n\t\tasync verify(verifyOptions) {\n\t\t\tconst { driver, contract: rawContract, expectedTargetId, contractPath, configPath } = verifyOptions;\n\t\t\tconst startTime = Date.now();\n\t\t\tconst contract = deserializeWithTargetSerializer(rawContract);\n\t\t\tconst contractStorageHash = contract.storage.storageHash;\n\t\t\tconst contractProfileHash = contract.profileHash;\n\t\t\tconst contractTarget = contract.target;\n\t\t\tconst marker = await getControlAdapter().readMarker(driver, APP_SPACE_ID);\n\t\t\tlet missingCodecs;\n\t\t\tlet codecCoverageSkipped = false;\n\t\t\tconst supportedTypeIds = collectSupportedCodecTypeIds([\n\t\t\t\tadapter,\n\t\t\t\ttarget,\n\t\t\t\t...extensions\n\t\t\t]);\n\t\t\tif (supportedTypeIds.length === 0) codecCoverageSkipped = true;\n\t\t\telse {\n\t\t\t\tconst supportedSet = new Set(supportedTypeIds);\n\t\t\t\tconst missing = extractCodecTypeIdsFromContract(contract).filter((id) => !supportedSet.has(id));\n\t\t\t\tif (missing.length > 0) missingCodecs = missing;\n\t\t\t}\n\t\t\tif (!marker) return createVerifyResult({\n\t\t\t\tok: false,\n\t\t\t\tcode: VERIFY_CODE_MARKER_MISSING,\n\t\t\t\tsummary: \"Marker missing\",\n\t\t\t\tcontractStorageHash,\n\t\t\t\texpectedTargetId,\n\t\t\t\tcontractPath,\n\t\t\t\ttotalTime: Date.now() - startTime,\n\t\t\t\t...contractProfileHash ? { contractProfileHash } : {},\n\t\t\t\t...missingCodecs ? { missingCodecs } : {},\n\t\t\t\t...codecCoverageSkipped ? { codecCoverageSkipped } : {},\n\t\t\t\t...configPath ? { configPath } : {}\n\t\t\t});\n\t\t\tif (contractTarget !== expectedTargetId) return createVerifyResult({\n\t\t\t\tok: false,\n\t\t\t\tcode: VERIFY_CODE_TARGET_MISMATCH,\n\t\t\t\tsummary: \"Target mismatch\",\n\t\t\t\tcontractStorageHash,\n\t\t\t\tmarker,\n\t\t\t\texpectedTargetId,\n\t\t\t\tactualTargetId: contractTarget,\n\t\t\t\tcontractPath,\n\t\t\t\ttotalTime: Date.now() - startTime,\n\t\t\t\t...contractProfileHash ? { contractProfileHash } : {},\n\t\t\t\t...missingCodecs ? { missingCodecs } : {},\n\t\t\t\t...codecCoverageSkipped ? { codecCoverageSkipped } : {},\n\t\t\t\t...configPath ? { configPath } : {}\n\t\t\t});\n\t\t\tif (marker.storageHash !== contractStorageHash) return createVerifyResult({\n\t\t\t\tok: false,\n\t\t\t\tcode: VERIFY_CODE_HASH_MISMATCH,\n\t\t\t\tsummary: \"Hash mismatch\",\n\t\t\t\tcontractStorageHash,\n\t\t\t\tmarker,\n\t\t\t\texpectedTargetId,\n\t\t\t\tcontractPath,\n\t\t\t\ttotalTime: Date.now() - startTime,\n\t\t\t\t...contractProfileHash ? { contractProfileHash } : {},\n\t\t\t\t...missingCodecs ? { missingCodecs } : {},\n\t\t\t\t...codecCoverageSkipped ? { codecCoverageSkipped } : {},\n\t\t\t\t...configPath ? { configPath } : {}\n\t\t\t});\n\t\t\tif (contractProfileHash && marker.profileHash !== contractProfileHash) return createVerifyResult({\n\t\t\t\tok: false,\n\t\t\t\tcode: VERIFY_CODE_HASH_MISMATCH,\n\t\t\t\tsummary: \"Hash mismatch\",\n\t\t\t\tcontractStorageHash,\n\t\t\t\tcontractProfileHash,\n\t\t\t\tmarker,\n\t\t\t\texpectedTargetId,\n\t\t\t\tcontractPath,\n\t\t\t\ttotalTime: Date.now() - startTime,\n\t\t\t\t...missingCodecs ? { missingCodecs } : {},\n\t\t\t\t...codecCoverageSkipped ? { codecCoverageSkipped } : {},\n\t\t\t\t...configPath ? { configPath } : {}\n\t\t\t});\n\t\t\treturn createVerifyResult({\n\t\t\t\tok: true,\n\t\t\t\tsummary: \"Database matches contract\",\n\t\t\t\tcontractStorageHash,\n\t\t\t\tmarker,\n\t\t\t\texpectedTargetId,\n\t\t\t\tcontractPath,\n\t\t\t\ttotalTime: Date.now() - startTime,\n\t\t\t\t...contractProfileHash ? { contractProfileHash } : {},\n\t\t\t\t...missingCodecs ? { missingCodecs } : {},\n\t\t\t\t...codecCoverageSkipped ? { codecCoverageSkipped } : {},\n\t\t\t\t...configPath ? { configPath } : {}\n\t\t\t});\n\t\t},\n\t\tverifySchema(options) {\n\t\t\tconst contract = deserializeWithTargetSerializer(options.contract);\n\t\t\tif (!diffSchema) throw missingDescriptorOperationError(target.targetId, \"diffSchema\");\n\t\t\tif (!targetGranularityOf) throw missingDescriptorOperationError(target.targetId, \"classifySubjectGranularity\");\n\t\t\treturn verifySqlSchemaByDiff({\n\t\t\t\tcontract,\n\t\t\t\tschema: options.schema,\n\t\t\t\tstrict: options.strict,\n\t\t\t\tframeworkComponents: options.frameworkComponents,\n\t\t\t\tdiffSchema,\n\t\t\t\tgranularityOf: targetGranularityOf\n\t\t\t});\n\t\t},\n\t\t/**\n\t\t* Classifies a diff issue's subject granularity on demand, by resolving\n\t\t* its node's `nodeKind` through the target's classifier — the\n\t\t* {@link import('@internal/framework-components/control').SchemaSubjectClassifierCapable}\n\t\t* capability. Framework consumers spanning contract spaces (the\n\t\t* migration aggregate's unclaimed-elements sweep) detect and call this\n\t\t* instead of reaching into the concrete schema-IR node, which they\n\t\t* cannot read; nothing is stamped on the issue or the node.\n\t\t*/\n\t\tclassifySubjectGranularity(issue) {\n\t\t\tif (!targetGranularityOf) throw missingDescriptorOperationError(target.targetId, \"classifySubjectGranularity\");\n\t\t\treturn classifyDiffSubjectGranularity(issue, targetGranularityOf);\n\t\t},\n\t\t/**\n\t\t* Classifies a diff issue's subject storage `entityKind` on demand, by\n\t\t* resolving its node's `nodeKind` through the target's classifier —\n\t\t* the sibling of `classifySubjectGranularity` above, and part of the\n\t\t* same {@link import('@internal/framework-components/control').SchemaSubjectClassifierCapable}\n\t\t* capability.\n\t\t*/\n\t\tclassifyEntityKind(issue) {\n\t\t\tif (!targetEntityKindOf) throw missingDescriptorOperationError(target.targetId, \"classifyEntityKind\");\n\t\t\treturn classifyDiffEntityKind(issue, targetEntityKindOf);\n\t\t},\n\t\tasync sign(options) {\n\t\t\tconst { driver, contract: contractInput, contractPath, configPath } = options;\n\t\t\tconst startTime = Date.now();\n\t\t\tconst contract = deserializeWithTargetSerializer(contractInput);\n\t\t\tconst contractStorageHash = contract.storage.storageHash;\n\t\t\tconst contractProfileHash = \"profileHash\" in contract && typeof contract.profileHash === \"string\" ? contract.profileHash : contractStorageHash;\n\t\t\tconst contractTarget = contract.target;\n\t\t\tconst controlAdapter = getControlAdapter();\n\t\t\tconst lowererContext = { contract };\n\t\t\tfor (const query of controlAdapter.bootstrapSignMarkerQueries()) {\n\t\t\t\tconst lowered = await controlAdapter.lowerToExecuteRequest(query, lowererContext);\n\t\t\t\tawait driver.query(lowered.sql, lowered.params);\n\t\t\t}\n\t\t\tconst existingMarker = await controlAdapter.readMarker(driver, APP_SPACE_ID);\n\t\t\tlet markerCreated = false;\n\t\t\tlet markerUpdated = false;\n\t\t\tlet previousHashes;\n\t\t\tif (!existingMarker) {\n\t\t\t\tawait controlAdapter.insertMarker(driver, APP_SPACE_ID, {\n\t\t\t\t\tstorageHash: contractStorageHash,\n\t\t\t\t\tprofileHash: contractProfileHash\n\t\t\t\t});\n\t\t\t\tmarkerCreated = true;\n\t\t\t} else {\n\t\t\t\tconst existingStorageHash = existingMarker.storageHash;\n\t\t\t\tconst existingProfileHash = existingMarker.profileHash;\n\t\t\t\tif (!(existingStorageHash === contractStorageHash) || !(existingProfileHash === contractProfileHash)) {\n\t\t\t\t\tpreviousHashes = {\n\t\t\t\t\t\tstorageHash: existingStorageHash,\n\t\t\t\t\t\tprofileHash: existingProfileHash\n\t\t\t\t\t};\n\t\t\t\t\tif (!await controlAdapter.updateMarker(driver, APP_SPACE_ID, existingStorageHash, {\n\t\t\t\t\t\tstorageHash: contractStorageHash,\n\t\t\t\t\t\tprofileHash: contractProfileHash\n\t\t\t\t\t})) throw sqlFamilyError(\"MIGRATION.MARKER_CAS_FAILURE\", \"CAS conflict: marker was modified by another process during sign\", {\n\t\t\t\t\t\twhy: \"Another process updated the contract marker between the read and the compare-and-swap write.\",\n\t\t\t\t\t\tfix: \"Re-run the sign command; if it keeps failing, make sure only one migration process runs at a time.\",\n\t\t\t\t\t\tmeta: { space: APP_SPACE_ID }\n\t\t\t\t\t});\n\t\t\t\t\tmarkerUpdated = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet summary;\n\t\t\tif (markerCreated) summary = \"Database signed (marker created)\";\n\t\t\telse if (markerUpdated) summary = `Database signed (marker updated from ${previousHashes?.storageHash ?? \"unknown\"})`;\n\t\t\telse summary = \"Database already signed with this contract\";\n\t\t\tconst totalTime = Date.now() - startTime;\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tsummary,\n\t\t\t\tcontract: {\n\t\t\t\t\tstorageHash: contractStorageHash,\n\t\t\t\t\tprofileHash: contractProfileHash\n\t\t\t\t},\n\t\t\t\ttarget: {\n\t\t\t\t\texpected: contractTarget,\n\t\t\t\t\tactual: contractTarget\n\t\t\t\t},\n\t\t\t\tmarker: {\n\t\t\t\t\tcreated: markerCreated,\n\t\t\t\t\tupdated: markerUpdated,\n\t\t\t\t\t...previousHashes ? { previous: previousHashes } : {}\n\t\t\t\t},\n\t\t\t\tmeta: {\n\t\t\t\t\tcontractPath,\n\t\t\t\t\t...configPath ? { configPath } : {}\n\t\t\t\t},\n\t\t\t\ttimings: { total: totalTime }\n\t\t\t};\n\t\t},\n\t\tasync readMarker(options) {\n\t\t\treturn getControlAdapter().readMarker(options.driver, options.space);\n\t\t},\n\t\tasync readAllMarkers(options) {\n\t\t\treturn getControlAdapter().readAllMarkers(options.driver);\n\t\t},\n\t\tasync readLedger(options) {\n\t\t\treturn getControlAdapter().readLedger(options.driver, options.space);\n\t\t},\n\t\tasync initMarker(options) {\n\t\t\treturn getControlAdapter().initMarker(options.driver, options.space, options.destination);\n\t\t},\n\t\tasync updateMarker(options) {\n\t\t\treturn getControlAdapter().updateMarker(options.driver, options.space, options.expectedFrom, options.destination);\n\t\t},\n\t\tasync writeLedgerEntry(options) {\n\t\t\treturn getControlAdapter().writeLedgerEntry(options.driver, options.space, options.entry);\n\t\t},\n\t\tasync introspect(options) {\n\t\t\treturn getControlAdapter().introspect(options.driver, options.contract);\n\t\t},\n\t\tinferPslContract(schemaIR) {\n\t\t\tif (!targetInferPslContract) throw sqlFamilyError(\"CONTRACT.INFER_UNSUPPORTED\", `Target \"${target.targetId}\" does not support contract infer (no inferPslContract on its descriptor).`, {\n\t\t\t\twhy: \"The target descriptor does not provide the inferPslContract hook, so a PSL contract cannot be inferred from the database schema.\",\n\t\t\t\tfix: \"Use a target package that supports contract infer, or author the contract instead of inferring it.\",\n\t\t\t\tmeta: { targetId: target.targetId }\n\t\t\t});\n\t\t\treturn targetInferPslContract(schemaIR, pslBuildContext, describedContracts);\n\t\t},\n\t\tbuildPslContract(contract) {\n\t\t\tif (!targetBuildPslContract) throw sqlFamilyError(\"CONTRACT.PRINT_UNSUPPORTED\", `Target \"${target.targetId}\" does not support contract print (no buildPslContract on its descriptor).`, {\n\t\t\t\twhy: \"The target descriptor does not provide the buildPslContract hook, so the contract cannot be printed as a Prisma 8 PSL file.\",\n\t\t\t\tfix: \"Use a target whose descriptor provides buildPslContract, or write the Prisma 8 PSL file by hand.\",\n\t\t\t\tmeta: { targetId: target.targetId }\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tdocument: targetBuildPslContract(contract, pslBuildContext),\n\t\t\t\tsourceSettings: ifDefined(\"defaultControlPolicy\", contract.defaultControlPolicy)\n\t\t\t};\n\t\t},\n\t\tlowerAst(ast, context) {\n\t\t\treturn getControlAdapter().lowerToExecuteRequest(ast, context);\n\t\t},\n\t\tbootstrapControlTableQueries() {\n\t\t\treturn getControlAdapter().bootstrapControlTableQueries();\n\t\t},\n\t\ttoOperationPreview(operations) {\n\t\t\treturn sqlOperationsToPreview(operations);\n\t\t},\n\t\ttoSchemaView(schema) {\n\t\t\tconst root = blindCast(schema);\n\t\t\tconst namespaceEntries = root.namespaces !== void 0 ? Object.entries(root.namespaces).map(([namespaceKey, namespace]) => [namespaceKey, namespace.tables]) : [[void 0, root.tables ?? {}]];\n\t\t\tconst qualify = namespaceEntries.length > 1;\n\t\t\tconst tableNodes = namespaceEntries.flatMap(([namespaceKey, tables]) => Object.entries(tables).map(([tableName, table]) => [\n\t\t\t\tqualify && namespaceKey !== void 0 ? `${namespaceKey}.${tableName}` : tableName,\n\t\t\t\ttableName,\n\t\t\t\ttable\n\t\t\t])).map(([displayName, tableName, table]) => {\n\t\t\t\tconst children = [];\n\t\t\t\tconst columnNodes = [];\n\t\t\t\tfor (const [columnName, column] of Object.entries(table.columns)) {\n\t\t\t\t\tconst label = `${columnName}: ${column.nativeType} (${column.nullable ? \"nullable\" : \"not nullable\"})`;\n\t\t\t\t\tcolumnNodes.push(new SchemaTreeNode({\n\t\t\t\t\t\tkind: \"field\",\n\t\t\t\t\t\tid: `column-${displayName}-${columnName}`,\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tnativeType: column.nativeType,\n\t\t\t\t\t\t\tnullable: column.nullable,\n\t\t\t\t\t\t\t...ifDefined(\"default\", column.default)\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\tif (columnNodes.length > 0) children.push(new SchemaTreeNode({\n\t\t\t\t\tkind: \"collection\",\n\t\t\t\t\tid: `columns-${displayName}`,\n\t\t\t\t\tlabel: \"columns\",\n\t\t\t\t\tchildren: columnNodes\n\t\t\t\t}));\n\t\t\t\tif (table.primaryKey) {\n\t\t\t\t\tconst pkColumns = table.primaryKey.columns.join(\", \");\n\t\t\t\t\tchildren.push(new SchemaTreeNode({\n\t\t\t\t\t\tkind: \"index\",\n\t\t\t\t\t\tid: `primary-key-${displayName}`,\n\t\t\t\t\t\tlabel: `primary key: ${pkColumns}`,\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tcolumns: table.primaryKey.columns,\n\t\t\t\t\t\t\t...table.primaryKey.name ? { name: table.primaryKey.name } : {}\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\tfor (const unique of table.uniques) {\n\t\t\t\t\tconst name = unique.name ?? `${tableName}_${unique.columns.join(\"_\")}_unique`;\n\t\t\t\t\tconst label = `unique ${name}`;\n\t\t\t\t\tchildren.push(new SchemaTreeNode({\n\t\t\t\t\t\tkind: \"index\",\n\t\t\t\t\t\tid: `unique-${displayName}-${name}`,\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tcolumns: unique.columns,\n\t\t\t\t\t\t\tunique: true\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\tfor (const index of table.indexes) {\n\t\t\t\t\tconst name = index.name;\n\t\t\t\t\tconst label = index.unique ? `unique index ${name}` : `index ${name}`;\n\t\t\t\t\tchildren.push(new SchemaTreeNode({\n\t\t\t\t\t\tkind: \"index\",\n\t\t\t\t\t\tid: `index-${displayName}-${name}`,\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tcolumns: index.columns,\n\t\t\t\t\t\t\tunique: index.unique\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\tconst tableMeta = {};\n\t\t\t\tif (table.primaryKey) {\n\t\t\t\t\ttableMeta[\"primaryKey\"] = table.primaryKey.columns;\n\t\t\t\t\tif (table.primaryKey.name) tableMeta[\"primaryKeyName\"] = table.primaryKey.name;\n\t\t\t\t}\n\t\t\t\tif (table.foreignKeys.length > 0) tableMeta[\"foreignKeys\"] = table.foreignKeys.map((fk) => ({\n\t\t\t\t\tcolumns: fk.columns,\n\t\t\t\t\treferencedTable: fk.referencedTable,\n\t\t\t\t\treferencedColumns: fk.referencedColumns,\n\t\t\t\t\t...fk.name ? { name: fk.name } : {}\n\t\t\t\t}));\n\t\t\t\treturn new SchemaTreeNode({\n\t\t\t\t\tkind: \"entity\",\n\t\t\t\t\tid: `table-${displayName}`,\n\t\t\t\t\tlabel: `table ${displayName}`,\n\t\t\t\t\t...Object.keys(tableMeta).length > 0 ? { meta: tableMeta } : {},\n\t\t\t\t\t...children.length > 0 ? { children } : {}\n\t\t\t\t});\n\t\t\t});\n\t\t\treturn { root: new SchemaTreeNode({\n\t\t\t\tkind: \"root\",\n\t\t\t\tid: \"sql-schema\",\n\t\t\t\tlabel: \"database\",\n\t\t\t\t...tableNodes.length > 0 ? { children: tableNodes } : {}\n\t\t\t}) };\n\t\t}\n\t};\n}\n//#endregion\n//#region src/core/control-descriptor.ts\nvar SqlFamilyDescriptor = class {\n\tkind = \"family\";\n\tid = \"sql\";\n\tfamilyId = \"sql\";\n\tversion = \"0.0.1\";\n\temission = sqlEmission;\n\tdataTypes = [sqlExpressionDataType];\n\tauthoring = {\n\t\tfield: sqlFamilyAuthoringFieldPresets,\n\t\ttype: sqlFamilyAuthoringTypes,\n\t\tentityTypes: sqlFamilyEntityTypes,\n\t\tpslBlockDescriptors: sqlFamilyPslBlockDescriptors,\n\t\tattributeSpecs: sqlAttributeSpecs,\n\t\tdataTypes: { [SQL_EXPRESSION_DATA_TYPE_ID]: sqlExpressionAuthoringEntry }\n\t};\n\tcreate(stack) {\n\t\treturn createSqlFamilyInstance(stack);\n\t}\n};\n//#endregion\n//#region src/core/migrations/contract-to-schema-ir.ts\nfunction convertColumn(name, column, storageTypes, expandNativeType, renderDefault, resolveDefault, dataTypeOf) {\n\tconst resolved = resolveColumnTypeMetadata(column, storageTypes);\n\tconst baseNativeType = expandNativeType ? expandNativeType({\n\t\tnativeType: resolved.nativeType,\n\t\tcodecId: resolved.codecId,\n\t\t...ifDefined(\"typeParams\", resolved.typeParams)\n\t}) : resolved.nativeType;\n\tconst nativeType = baseNativeType;\n\tconst resolvedNativeType = column.many ? `${baseNativeType}[]` : baseNativeType;\n\tconst rawColumnDefault = column.default ?? void 0;\n\tconst resolvedColumnDefault = rawColumnDefault !== void 0 && resolveDefault ? resolveDefault(rawColumnDefault, resolvedNativeType) : rawColumnDefault;\n\treturn {\n\t\tname,\n\t\tnativeType,\n\t\tnullable: column.nullable,\n\t\t...ifDefined(\"many\", column.many),\n\t\t...ifDefined(\"default\", column.default != null && renderDefault ? renderDefault(column.default, column) : void 0),\n\t\tresolvedNativeType,\n\t\t...ifDefined(\"resolvedDefault\", resolvedColumnDefault),\n\t\t...ifDefined(\"authoredDefault\", rawColumnDefault),\n\t\tcodecRef: buildColumnCodecRef(resolved, column.many),\n\t\tcodecBaseNativeType: resolved.nativeType,\n\t\t...column.typeRef !== void 0 ? { codecNamedType: true } : {},\n\t\t...ifDefined(\"dataType\", dataTypeOf?.(resolved.codecId))\n\t};\n}\n/**\n* Builds the column's `CodecRef` from its resolved (post-`typeRef`) codec\n* identity — the same construction the query AST and the migration DDL\n* renderer already use (TML-2456, TML-2918).\n*/\nfunction buildColumnCodecRef(resolved, many) {\n\treturn {\n\t\tcodecId: resolved.codecId,\n\t\t...ifDefined(\"typeParams\", resolved.typeParams !== void 0 ? blindCast(resolved.typeParams) : void 0),\n\t\t...ifDefined(\"many\", many)\n\t};\n}\nfunction resolveColumnTypeMetadata(column, storageTypes) {\n\tif (!column.typeRef) return column;\n\tconst referenced = storageTypes[column.typeRef];\n\tif (!referenced) throw sqlFamilyError(\"CONTRACT.TYPE_UNKNOWN\", `Column references storage type \"${column.typeRef}\" but it is not defined in storage.types.`, {\n\t\twhy: \"The column typeRef does not resolve to any entry in the contract storage.types map.\",\n\t\tfix: \"Regenerate the contract from its authoring source; do not hand-edit contract JSON.\",\n\t\tmeta: { typeRef: column.typeRef }\n\t});\n\tif (isStorageTypeInstance(referenced)) return {\n\t\tcodecId: referenced.codecId,\n\t\tnativeType: referenced.nativeType,\n\t\ttypeParams: referenced.typeParams\n\t};\n\tthrow new InternalError(`Storage type \"${column.typeRef}\" has an unknown polymorphic kind; expected a codec-typed StorageTypeInstance.`);\n}\nfunction convertCheck(check, tableName, tableColumns) {\n\treturn {\n\t\tnaming: namingOf(check.name, check.prefix),\n\t\texpression: check.expression,\n\t\tdependsOn: flatColumnDependsOn(tableName, tableColumns)\n\t};\n}\nfunction convertUnique(unique, tableName) {\n\treturn {\n\t\tcolumns: unique.columns,\n\t\t...ifDefined(\"name\", unique.name),\n\t\tdependsOn: flatColumnDependsOn(tableName, unique.columns)\n\t};\n}\nfunction convertIndex(index, tableName, tableColumns) {\n\tconst base = {\n\t\tnaming: namingOf(index.name, index.prefix),\n\t\twhere: index.where,\n\t\tunique: index.unique,\n\t\tpartial: index.where !== void 0,\n\t\ttype: index.type,\n\t\toptions: index.options,\n\t\tannotations: void 0,\n\t\tdependsOn: flatColumnDependsOn(tableName, index.columns ?? tableColumns)\n\t};\n\treturn index.expression !== void 0 ? {\n\t\t...base,\n\t\texpression: index.expression\n\t} : {\n\t\t...base,\n\t\tcolumns: index.columns ?? []\n\t};\n}\n/**\n* The referenced table's chain in the flat (single-schema) tree\n* `contractToSchemaIR`/`contractNamespaceToSchemaIR` build: the root\n* (`SqlSchemaIR`, fixed `'database'` id) followed by the table's own id.\n* Postgres discards this when it re-derives the FK against its own\n* multi-schema tree shape (`contractToPostgresDatabaseSchemaNode`); SQLite's\n* flat tree uses it as-is.\n*/\nfunction flatSchemaDependsOn(tableName) {\n\treturn [{\n\t\tnodeKind: RelationalSchemaNodeKind.schema,\n\t\tid: \"database\"\n\t}, {\n\t\tnodeKind: RelationalSchemaNodeKind.table,\n\t\tid: tableName\n\t}];\n}\n/**\n* The chains from a table-child object (foreign key, index, unique, primary\n* key) to each of the own columns it is built on, in the flat tree. Dropping\n* a covered column auto-drops the object, so the object's drop must precede\n* the column's; the graph derives that direction from these edges.\n*/\nfunction flatColumnDependsOn(tableName, columns) {\n\treturn columns.map((column) => [\n\t\t{\n\t\t\tnodeKind: RelationalSchemaNodeKind.schema,\n\t\t\tid: \"database\"\n\t\t},\n\t\t{\n\t\t\tnodeKind: RelationalSchemaNodeKind.table,\n\t\t\tid: tableName\n\t\t},\n\t\t{\n\t\t\tnodeKind: RelationalSchemaNodeKind.column,\n\t\t\tid: `column:${column}`\n\t\t}\n\t]);\n}\n/**\n* The FK's referenced-namespace identity comes from the target's namespace\n* node, not the raw namespace-id string. An unbound target namespace stamps\n* no `referencedSchema` at all — the FK node's id renders the absence as the\n* empty segment, which is what flat (single-schema) introspection produces,\n* so both diff sides' FK ids meet by construction. A bound namespace (or a\n* cross-space target whose namespace lives in another contract's storage)\n* stamps its coordinate verbatim; namespaced targets (Postgres) resolve the\n* real DDL schema downstream.\n*\n* `dependsOn` carries the referenced table (created before the FK, dropped\n* after it) plus the FK's own columns (dropped after the FK, since dropping a\n* column auto-drops the FK built on it).\n*/\nfunction convertForeignKey(fk, storage) {\n\tconst targetIsUnbound = storage.namespaces[fk.target.namespaceId]?.isUnbound === true;\n\treturn {\n\t\tcolumns: fk.source.columns,\n\t\treferencedTable: fk.target.tableName,\n\t\t...targetIsUnbound ? {} : { referencedSchema: fk.target.namespaceId },\n\t\treferencedColumns: fk.target.columns,\n\t\t...ifDefined(\"name\", fk.name),\n\t\t...ifDefined(\"onDelete\", fk.onDelete),\n\t\t...ifDefined(\"onUpdate\", fk.onUpdate),\n\t\tdependsOn: [flatSchemaDependsOn(fk.target.tableName), ...flatColumnDependsOn(fk.source.tableName, fk.source.columns)]\n\t};\n}\nfunction convertTable(name, table, storageTypes, expandNativeType, renderDefault, resolveDefault, dataTypeOf, storage) {\n\tconst columns = {};\n\tfor (const [colName, colDef] of Object.entries(table.columns)) columns[colName] = convertColumn(colName, colDef, storageTypes, expandNativeType, renderDefault, resolveDefault, dataTypeOf);\n\tconst checks = table.checks && table.checks.length > 0 ? table.checks.map((c) => convertCheck(c, name, Object.keys(table.columns))) : void 0;\n\treturn new SqlTableIR({\n\t\tname,\n\t\tcolumns,\n\t\t...ifDefined(\"primaryKey\", table.primaryKey !== void 0 ? {\n\t\t\tcolumns: table.primaryKey.columns,\n\t\t\t...ifDefined(\"name\", table.primaryKey.name),\n\t\t\tdependsOn: flatColumnDependsOn(name, table.primaryKey.columns)\n\t\t} : void 0),\n\t\tforeignKeys: table.foreignKeys.map((fk) => convertForeignKey(fk, storage)),\n\t\tuniques: table.uniques.map((u) => convertUnique(u, name)),\n\t\tindexes: table.indexes.map((i) => convertIndex(i, name, Object.keys(table.columns))),\n\t\t...ifDefined(\"checks\", checks)\n\t});\n}\n/**\n* Detects destructive changes between two contract storages.\n*\n* The additive-only planner silently ignores removals (tables, columns).\n* This function detects those removals so callers can report them as conflicts\n* rather than silently producing an empty plan.\n*\n* Returns an empty array if no destructive changes are found.\n*/\nfunction detectDestructiveChanges(from, to) {\n\tif (!from) return [];\n\tconst hasOwn = (value, key) => Object.hasOwn(value, key);\n\tconst conflicts = [];\n\tconst namespaceIds = [.../* @__PURE__ */ new Set([...Object.keys(from.namespaces), ...Object.keys(to.namespaces)])].sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n\tfor (const namespaceId of namespaceIds) {\n\t\tconst fromNs = from.namespaces[namespaceId];\n\t\tconst toNs = to.namespaces[namespaceId];\n\t\tconst fromTables = fromNs?.entries.table;\n\t\tif (!fromTables) continue;\n\t\tfor (const tableName of Object.keys(fromTables)) {\n\t\t\tconst toTableRaw = toNs?.entries.table?.[tableName];\n\t\t\tif (!StorageTable.is(toTableRaw)) {\n\t\t\t\tconflicts.push({\n\t\t\t\t\tkind: \"tableRemoved\",\n\t\t\t\t\tsummary: `Table \"${tableName}\" was removed`\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst toTable = toTableRaw;\n\t\t\tconst fromTableRaw = fromTables[tableName];\n\t\t\tif (!StorageTable.is(fromTableRaw)) continue;\n\t\t\tconst fromTable = fromTableRaw;\n\t\t\tfor (const columnName of Object.keys(fromTable.columns)) if (!hasOwn(toTable.columns, columnName)) conflicts.push({\n\t\t\t\tkind: \"columnRemoved\",\n\t\t\t\tsummary: `Column \"${tableName}\".\"${columnName}\" was removed`\n\t\t\t});\n\t\t}\n\t}\n\treturn conflicts;\n}\n/**\n* Converts a `Contract` to `SqlSchemaIR`.\n*\n* Reads `contract.storage` for tables and `contract.storage.types` for type\n* annotations. Storage-type annotations are written under\n* `options.annotationNamespace`.\n*\n* Drops codec metadata (`codecId`, `typeRef`) since the schema IR only represents\n* structural information. When `expandNativeType` is provided, parameterized types\n* are expanded (e.g. `character` + `{ length: 36 }` → `character(36)`) so the\n* resulting IR compares correctly against the \"to\" contract during planning.\n*\n* Returns an empty schema IR when `contract` is `null` (new project).\n*/\n/**\n* Converts the tables of a single namespace into a `SqlSchemaIR`, keyed by\n* table name within that namespace. Unlike {@link contractToSchemaIR}, which\n* flattens every namespace's tables into one bare-keyed record (and throws on a\n* cross-namespace name collision), this scopes the table iteration to one\n* namespace so the same table name can exist in two schemas.\n*\n* The full `storage` is still passed to `convertTable`, so value-set / enum /\n* type resolution that legitimately spans namespaces is unaffected. Foreign\n* keys are built purely from the FK descriptor (`fk.target`), so cross-namespace\n* FKs survive per-namespace conversion. The `annotations` block (storage-type\n* derived) is omitted here — the per-namespace tree consumer reads only the\n* per-table fields.\n*/\nfunction contractNamespaceToSchemaIR(storage, namespaceId, options) {\n\tif (options.annotationNamespace.length === 0) throw sqlFamilyError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", \"annotationNamespace must be a non-empty string\", {\n\t\twhy: \"The calling target pack passed an empty annotationNamespace to the contract-to-schema-IR projection.\",\n\t\tfix: \"Fix the target pack to pass its non-empty annotation namespace (e.g. \\\"pg\\\").\",\n\t\tmeta: { option: \"annotationNamespace\" }\n\t});\n\tconst namespace = storage.namespaces[namespaceId];\n\tif (!namespace) return new SqlSchemaIR({ tables: {} });\n\tconst storageTypes = { ...storage.types ?? {} };\n\tconst tables = {};\n\tfor (const [tableName, tableDefRaw] of Object.entries(namespace.entries.table ?? {})) {\n\t\tStorageTable.assert(tableDefRaw, `namespaces.${namespaceId}.entries.table.${tableName}`);\n\t\ttables[tableName] = convertTable(tableName, tableDefRaw, storageTypes, options.expandNativeType, options.renderDefault, options.resolveDefault, options.dataTypeOf, storage);\n\t}\n\treturn new SqlSchemaIR({ tables });\n}\nfunction contractToSchemaIR(contract, options) {\n\tif (options.annotationNamespace.length === 0) throw sqlFamilyError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", \"annotationNamespace must be a non-empty string\", {\n\t\twhy: \"The calling target pack passed an empty annotationNamespace to the contract-to-schema-IR projection.\",\n\t\tfix: \"Fix the target pack to pass its non-empty annotation namespace (e.g. \\\"pg\\\").\",\n\t\tmeta: { option: \"annotationNamespace\" }\n\t});\n\tif (!contract) return new SqlSchemaIR({ tables: {} });\n\tconst storage = contract.storage;\n\tconst storageTypes = { ...storage.types ?? {} };\n\tconst tables = {};\n\tfor (const ns of Object.values(storage.namespaces)) for (const [tableName, tableDefRaw] of Object.entries(ns.entries.table ?? {})) {\n\t\tStorageTable.assert(tableDefRaw, `namespaces.${ns.id}.entries.table.${tableName}`);\n\t\tconst tableDef = tableDefRaw;\n\t\tif (tables[tableName] !== void 0) throw sqlFamilyError(\"CONTRACT.TABLE_AMBIGUOUS\", `contractToSchemaIR: duplicate SQL table name \"${tableName}\" across namespaces (ambiguous for flat SqlSchemaIR.tables).`, {\n\t\t\twhy: \"Two namespaces declare a table with the same name, which is ambiguous for the flat schema-IR table map.\",\n\t\t\tfix: \"Rename one of the tables so every table name is unique across namespaces.\",\n\t\t\tmeta: { table: tableName }\n\t\t});\n\t\ttables[tableName] = convertTable(tableName, tableDef, storageTypes, options.expandNativeType, options.renderDefault, options.resolveDefault, options.dataTypeOf, storage);\n\t}\n\treturn new SqlSchemaIR({\n\t\ttables,\n\t\t...ifDefined(\"annotations\", deriveAnnotations(storage, options.annotationNamespace, options.resolveEnumNamespaceSchema))\n\t});\n}\nfunction deriveAnnotations(storage, annotationNamespace, _resolveEnumNamespaceSchema) {\n\tconst storageTypes = {};\n\tfor (const typeInstance of Object.values(storage.types ?? {})) if (isStorageTypeInstance(typeInstance)) storageTypes[typeInstance.nativeType] = typeInstance;\n\tconst envelope = { ...Object.keys(storageTypes).length > 0 ? { storageTypes } : {} };\n\tif (Object.keys(envelope).length === 0) return void 0;\n\treturn { [annotationNamespace]: envelope };\n}\n//#endregion\n//#region src/core/migrations/control-policy.ts\n/**\n* The control policy that governs a single call. The `external` default is an\n* un-overridable namespace floor: when the contract default is `external`, no\n* per-object `managed` override can escalate DDL above the floor, so the\n* policy is forced to `external` regardless of the node's own declaration.\n* Every other default defers to the node's effective control policy.\n*/\nfunction controlPolicyForCall(subject, defaultControlPolicy) {\n\tif (defaultControlPolicy === \"external\") return \"external\";\n\treturn effectiveControlPolicy(subject?.explicitNodeControlPolicy, defaultControlPolicy);\n}\n/**\n* Whether a call is allowed to emit under a given control policy.\n*\n* - `managed` — full lifecycle, every op allowed.\n* - `tolerated` — create-if-absent only: allowed iff the call creates a whole\n* new top-level object (and its subject was positively resolved). Anything\n* that modifies an existing object, and anything whose subject could not be\n* resolved, is suppressed.\n* - `external` / `observed` — no DDL at all.\n*/\nfunction callAllowedUnderControlPolicy(policy, subject) {\n\tswitch (policy) {\n\t\tcase \"managed\": return true;\n\t\tcase \"tolerated\": return subject?.createsNewObject === true;\n\t\tcase \"external\":\n\t\tcase \"observed\": return false;\n\t}\n}\n/**\n* Partition the calls produced for a single set of subjects into those the\n* effective control policy permits (`kept`) and a list of\n* {@link SuppressionRecord}s describing the suppressed calls.\n*\n* **Prefer {@link partitionIssuesByControlPolicy}** for the schema-issue\n* pipeline: it filters subjects out of the planner's *input* so the planner\n* never has to reason about un-modeled state on `external`/`observed`\n* subjects. This call-level helper remains for paths that bypass the issue\n* pipeline — currently the codec-emitted field-event ops, which originate\n* from declared contract fields rather than from introspected schema state\n* and therefore cannot trip the diff engine.\n*/\nfunction partitionCallsByControlPolicy(options) {\n\tconst defaultControlPolicy = options.contract.defaultControlPolicy;\n\tconst kept = [];\n\tconst suppressions = [];\n\tfor (const call of options.calls) {\n\t\tconst subject = options.resolveControlPolicySubject(call);\n\t\tconst policy = controlPolicyForCall(subject, defaultControlPolicy);\n\t\tif (callAllowedUnderControlPolicy(policy, subject)) kept.push(call);\n\t\telse suppressions.push({\n\t\t\tsubject,\n\t\t\tpolicy,\n\t\t\tfactoryName: options.resolveFactoryName(call),\n\t\t\tcreatesNewObject: subject?.createsNewObject ?? false\n\t\t});\n\t}\n\treturn Object.freeze({\n\t\tkept: Object.freeze(kept),\n\t\tsuppressions: Object.freeze(suppressions)\n\t});\n}\n/**\n* Partition a list of schema-issue-shaped inputs by the effective control\n* policy of each issue's subject *before* the planner is invoked.\n*\n* `plannable` is the list of issues whose subject's effective policy permits\n* the planner to act on them (`managed`, or `tolerated` for whole-object\n* creation issues only). Issues for `external`/`observed` subjects, and\n* non-creation issues for `tolerated` subjects, are dropped from the planner's\n* input entirely — they never enter introspection-driven planning, never feed\n* the diff engine, and never produce DDL calls that would have to be\n* post-filtered. This sidesteps a class of failure where the diff engine\n* cannot reason about the live shape of a subject the user marked as\n* out-of-scope (`external`).\n*\n* `suppressions` is one {@link SuppressionRecord} per suppressed subject (not\n* per suppressed issue). Its `factoryName` is the creation factory name when any\n* of the subject's issues is whole-object creation (e.g. `createTable`), else\n* `undefined` — the family never invents a modification verb for an op that\n* produced no call; the target renders the message.\n*\n* Unresolved-subject issues (`resolveControlPolicySubject` returns\n* `undefined`) emit one record each; they cannot be deduplicated because they\n* carry no subject coordinate.\n*/\nfunction partitionIssuesByControlPolicy(options) {\n\tconst defaultControlPolicy = options.contract.defaultControlPolicy;\n\tconst plannable = [];\n\tconst suppressedSubjects = /* @__PURE__ */ new Map();\n\tconst unresolvedSuppressions = [];\n\tfor (const issue of options.issues) {\n\t\tconst subject = options.resolveControlPolicySubject(issue);\n\t\tconst policy = controlPolicyForCall(subject, defaultControlPolicy);\n\t\tconst creationFactoryName = options.resolveCreationFactoryName(issue);\n\t\tif (policy === \"managed\") {\n\t\t\tplannable.push(issue);\n\t\t\tcontinue;\n\t\t}\n\t\tif (policy === \"tolerated\" && subject !== void 0 && creationFactoryName !== void 0 && subject.createsNewObject) {\n\t\t\tplannable.push(issue);\n\t\t\tcontinue;\n\t\t}\n\t\tif (subject === void 0) {\n\t\t\tunresolvedSuppressions.push({\n\t\t\t\tsubject: void 0,\n\t\t\t\tpolicy,\n\t\t\t\tfactoryName: creationFactoryName,\n\t\t\t\tcreatesNewObject: false\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst key = subjectKey(subject);\n\t\tconst existing = suppressedSubjects.get(key);\n\t\tif (existing) {\n\t\t\tif (existing.creationFactoryName === void 0 && creationFactoryName !== void 0) existing.creationFactoryName = creationFactoryName;\n\t\t} else suppressedSubjects.set(key, {\n\t\t\tsubject,\n\t\t\tpolicy,\n\t\t\t...ifDefined(\"creationFactoryName\", creationFactoryName)\n\t\t});\n\t}\n\tconst suppressions = [...unresolvedSuppressions];\n\tfor (const entry of suppressedSubjects.values()) suppressions.push({\n\t\tsubject: entry.subject,\n\t\tpolicy: entry.policy,\n\t\tfactoryName: entry.creationFactoryName,\n\t\tcreatesNewObject: entry.subject.createsNewObject\n\t});\n\treturn Object.freeze({\n\t\tplannable: Object.freeze(plannable),\n\t\tsuppressions: Object.freeze(suppressions)\n\t});\n}\nfunction subjectKey(subject) {\n\treturn `${subject.namespaceId}\\u0000${subject.entityKind ?? \"\"}\\u0000${subject.entityName ?? \"\"}\\u0000${subject.rlsPolicy ?? \"\"}`;\n}\n//#endregion\n//#region src/core/migrations/data-type-resolver.ts\n/**\n* Builds the resolver the contract→IR derivation uses to give each column its data type (ADR 254):\n* the codec's descriptor names the type, and the composed components register it. Codecs and\n* data types from extension packs are found the same way as the target's own, and a codec id two\n* components contribute is refused, as everywhere else in the stack. Returns `undefined` when no\n* framework components are supplied, so callers can omit the option.\n*/\nfunction buildDataTypeResolver(frameworkComponents) {\n\tif (!frameworkComponents) return;\n\tconst dataTypes = assembleDataTypes(frameworkComponents).lookup;\n\tconst codecs = extractCodecLookup(frameworkComponents);\n\treturn (codecId) => {\n\t\tconst dataTypeId = codecs.descriptorFor(codecId)?.dataType;\n\t\treturn dataTypeId === void 0 ? void 0 : dataTypes.get(dataTypeId);\n\t};\n}\n//#endregion\n//#region src/core/migrations/field-event-planner.ts\nfunction planFieldEventOperations(options) {\n\tconst priorContract = options.priorContract;\n\tconst newContract = options.newContract;\n\tconst added = [];\n\tconst dropped = [];\n\tconst altered = [];\n\tconst namespaceIds = unionSorted(priorContract ? Object.keys(priorContract.storage.namespaces) : [], Object.keys(newContract.storage.namespaces));\n\tfor (const namespaceId of namespaceIds) {\n\t\tconst priorNs = priorContract?.storage.namespaces[namespaceId];\n\t\tconst newNs = newContract.storage.namespaces[namespaceId];\n\t\tconst priorTables = priorNs?.entries.table;\n\t\tconst newTables = newNs?.entries.table;\n\t\tconst tableNames = unionSorted(priorTables ? Object.keys(priorTables) : [], newTables ? Object.keys(newTables) : []);\n\t\tfor (const tableName of tableNames) {\n\t\t\tconst priorTableRaw = priorTables?.[tableName];\n\t\t\tconst newTableRaw = newTables?.[tableName];\n\t\t\tconst priorTable = StorageTable.is(priorTableRaw) ? priorTableRaw : void 0;\n\t\t\tconst newTable = StorageTable.is(newTableRaw) ? newTableRaw : void 0;\n\t\t\tconst fieldNames = unionSorted(priorTable ? Object.keys(priorTable.columns) : [], newTable ? Object.keys(newTable.columns) : []);\n\t\t\tfor (const fieldName of fieldNames) {\n\t\t\t\tconst priorField = priorTable?.columns[fieldName];\n\t\t\t\tconst newField = newTable?.columns[fieldName];\n\t\t\t\tconst entry = {\n\t\t\t\t\tnamespaceId,\n\t\t\t\t\ttableName,\n\t\t\t\t\tfieldName,\n\t\t\t\t\tpriorTable,\n\t\t\t\t\tnewTable,\n\t\t\t\t\tpriorField,\n\t\t\t\t\tnewField\n\t\t\t\t};\n\t\t\t\tif (priorField === void 0 && newField !== void 0) added.push(entry);\n\t\t\t\telse if (priorField !== void 0 && newField === void 0) dropped.push(entry);\n\t\t\t\telse if (priorField !== void 0 && newField !== void 0) {\n\t\t\t\t\tif (isAlteration(priorField, newField)) altered.push(entry);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tconst calls = [];\n\tappendCalls(\"added\", added, options.codecHooks, calls, (e) => e.newField?.codecId);\n\tappendCalls(\"dropped\", dropped, options.codecHooks, calls, (e) => e.priorField?.codecId);\n\tappendCalls(\"altered\", altered, options.codecHooks, calls, (e) => e.newField?.codecId);\n\treturn calls;\n}\nfunction appendCalls(event, entries, codecHooks, calls, pickCodecId) {\n\tfor (const entry of entries) {\n\t\tconst codecId = pickCodecId(entry);\n\t\tif (codecId === void 0) continue;\n\t\tconst hook = codecHooks.get(codecId);\n\t\tif (!hook?.onFieldEvent) continue;\n\t\tconst ctx = buildContext(event, entry);\n\t\tconst emitted = hook.onFieldEvent(event, ctx);\n\t\tfor (const call of emitted) calls.push(call);\n\t}\n}\n/**\n* The context's prior/new sides are scoped to the event:\n*\n* - `'added'` — only `newTable` / `newField` populated.\n* - `'dropped'` — only `priorTable` / `priorField` populated.\n* - `'altered'` — both sides populated.\n*/\nfunction buildContext(event, entry) {\n\tconst base = {\n\t\tnamespaceId: entry.namespaceId,\n\t\ttableName: entry.tableName,\n\t\tfieldName: entry.fieldName\n\t};\n\tif (event === \"added\") return {\n\t\t...base,\n\t\t...entry.newTable !== void 0 ? { newTable: entry.newTable } : {},\n\t\t...entry.newField !== void 0 ? { newField: entry.newField } : {}\n\t};\n\tif (event === \"dropped\") return {\n\t\t...base,\n\t\t...entry.priorTable !== void 0 ? { priorTable: entry.priorTable } : {},\n\t\t...entry.priorField !== void 0 ? { priorField: entry.priorField } : {}\n\t};\n\treturn {\n\t\t...base,\n\t\t...entry.priorTable !== void 0 ? { priorTable: entry.priorTable } : {},\n\t\t...entry.newTable !== void 0 ? { newTable: entry.newTable } : {},\n\t\t...entry.priorField !== void 0 ? { priorField: entry.priorField } : {},\n\t\t...entry.newField !== void 0 ? { newField: entry.newField } : {}\n\t};\n}\n/**\n* `'altered'` predicate. Returns `false` whenever `codecId` differs —\n* any codec change suppresses the `altered` event entirely, including\n* cases where another property also differs in the same diff. Codec\n* rotation is a v1 non-goal; avoiding the mixed event keeps the\n* migration semantics for codec changes explicit rather than smuggling\n* them through as `altered`.\n*\n* For non-`codecId` diffs, returns `true` iff any other column property\n* differs.\n*/\nfunction isAlteration(prior, current) {\n\tif (prior.codecId !== current.codecId) return false;\n\treturn !sameStorageColumn(prior, current);\n}\nfunction sameStorageColumn(a, b) {\n\tif (a === b) return true;\n\tif (a.nativeType !== b.nativeType) return false;\n\tif (a.nullable !== b.nullable) return false;\n\tif (a.typeRef !== b.typeRef) return false;\n\tif (!sameJson(a.typeParams, b.typeParams)) return false;\n\tif (!sameJson(a.default, b.default)) return false;\n\treturn true;\n}\nfunction sameJson(a, b) {\n\tif (a === b) return true;\n\tif (a === void 0 || b === void 0) return false;\n\treturn JSON.stringify(a) === JSON.stringify(b);\n}\nfunction unionSorted(a, b) {\n\tconst set = /* @__PURE__ */ new Set();\n\tfor (const name of a) set.add(name);\n\tfor (const name of b) set.add(name);\n\treturn [...set].sort((x, y) => x < y ? -1 : x > y ? 1 : 0);\n}\n//#endregion\n//#region src/core/migrations/native-type-expander.ts\n/**\n* Builds the codec-hook-composed `expandNativeType` callback the contract→IR\n* derivation uses to expand parameterized native types (e.g. `character` +\n* `{ length: 36 }` → `character(36)`). Returns `undefined` when no framework\n* components are supplied, so callers can omit the option entirely.\n*/\nfunction buildNativeTypeExpander(frameworkComponents) {\n\tif (!frameworkComponents) return;\n\tconst codecHooks = extractCodecControlHooks(frameworkComponents);\n\treturn (input) => {\n\t\tif (!input.typeParams) return input.nativeType;\n\t\tif (!input.codecId) return input.nativeType;\n\t\tconst hooks = codecHooks.get(input.codecId);\n\t\tif (!hooks?.expandNativeType) return input.nativeType;\n\t\treturn hooks.expandNativeType(input);\n\t};\n}\n//#endregion\n//#region src/core/migrations/plan-helpers.ts\nconst readOnlyEmptyObject = Object.freeze({});\nfunction cloneRecord(value) {\n\tif (value === readOnlyEmptyObject) return value;\n\treturn blindCast(Object.freeze({ ...value }));\n}\nfunction freezeSteps(steps) {\n\tif (steps.length === 0) return Object.freeze([]);\n\treturn Object.freeze(steps.map((step) => Object.freeze({\n\t\tdescription: step.description,\n\t\tsql: step.sql,\n\t\t...step.params ? { params: Object.freeze([...step.params]) } : {},\n\t\t...step.meta ? { meta: cloneRecord(step.meta) } : {}\n\t})));\n}\nfunction freezeDetailsValue(value) {\n\tif (value === null || value === void 0) return value;\n\tif (typeof value !== \"object\") return value;\n\tif (Array.isArray(value)) return blindCast(Object.freeze([...value]));\n\treturn blindCast(Object.freeze({ ...value }));\n}\nfunction freezeTargetDetails(target) {\n\treturn Object.freeze({\n\t\tid: target.id,\n\t\t...target.details !== void 0 ? { details: freezeDetailsValue(target.details) } : {}\n\t});\n}\nfunction freezeOperation(operation) {\n\treturn Object.freeze({\n\t\tid: operation.id,\n\t\tlabel: operation.label,\n\t\t...operation.summary ? { summary: operation.summary } : {},\n\t\toperationClass: operation.operationClass,\n\t\t...operation.invariantId ? { invariantId: operation.invariantId } : {},\n\t\ttarget: freezeTargetDetails(operation.target),\n\t\tprecheck: freezeSteps(operation.precheck),\n\t\texecute: freezeSteps(operation.execute),\n\t\tpostcheck: freezeSteps(operation.postcheck),\n\t\t...operation.meta ? { meta: cloneRecord(operation.meta) } : {}\n\t});\n}\nfunction freezeOperations(operations) {\n\tif (operations.length === 0) return Object.freeze([]);\n\treturn Object.freeze(operations.map((operation) => freezeOperation(operation)));\n}\nfunction createMigrationPlan(options) {\n\treturn Object.freeze({\n\t\ttargetId: options.targetId,\n\t\tspaceId: options.spaceId,\n\t\t...options.origin !== void 0 ? { origin: options.origin ? Object.freeze({ ...options.origin }) : null } : {},\n\t\tdestination: Object.freeze({ ...options.destination }),\n\t\toperations: freezeOperations(options.operations),\n\t\tprovidedInvariants: Object.freeze([...options.providedInvariants]),\n\t\t...options.meta ? { meta: cloneRecord(options.meta) } : {}\n\t});\n}\nfunction plannerSuccess(plan, warnings) {\n\treturn Object.freeze({\n\t\tkind: \"success\",\n\t\tplan,\n\t\t...warnings && warnings.length > 0 ? { warnings: Object.freeze(warnings.map((conflict) => Object.freeze({\n\t\t\tkind: conflict.kind,\n\t\t\tsummary: conflict.summary,\n\t\t\t...conflict.why ? { why: conflict.why } : {},\n\t\t\t...conflict.location ? { location: Object.freeze({ ...conflict.location }) } : {},\n\t\t\t...conflict.meta ? { meta: cloneRecord(conflict.meta) } : {}\n\t\t}))) } : {}\n\t});\n}\nfunction plannerFailure(conflicts) {\n\treturn Object.freeze({\n\t\tkind: \"failure\",\n\t\tconflicts: Object.freeze(conflicts.map((conflict) => Object.freeze({\n\t\t\tkind: conflict.kind,\n\t\t\tsummary: conflict.summary,\n\t\t\t...conflict.why ? { why: conflict.why } : {},\n\t\t\t...conflict.location ? { location: Object.freeze({ ...conflict.location }) } : {},\n\t\t\t...conflict.meta ? { meta: cloneRecord(conflict.meta) } : {}\n\t\t})))\n\t});\n}\n/**\n* Creates a successful migration runner result.\n*/\nfunction runnerSuccess(value) {\n\treturn ok(Object.freeze({\n\t\toperationsPlanned: value.operationsPlanned,\n\t\toperationsExecuted: value.operationsExecuted\n\t}));\n}\n/**\n* Creates a failed migration runner result.\n*/\nfunction runnerFailure(code, summary, options) {\n\treturn notOk(Object.freeze({\n\t\tcode,\n\t\tsummary,\n\t\t...options?.why ? { why: options.why } : {},\n\t\t...options?.meta ? { meta: cloneRecord(options.meta) } : {}\n\t}));\n}\n//#endregion\n//#region src/core/migrations/policies.ts\n/**\n* Policy used by `db init`: additive-only operations, no widening/destructive steps.\n*/\nconst INIT_ADDITIVE_POLICY = Object.freeze({ allowedOperationClasses: Object.freeze([\"additive\"]) });\n//#endregion\n//#region src/core/migrations/table-name-case-guard.ts\nconst TABLE_NAME_CASE_CHANGED_CODE = \"MIGRATION.TABLE_NAME_CASE_CHANGED\";\nfunction lowerFirst(value) {\n\treturn value.charAt(0).toLowerCase() + value.slice(1);\n}\nfunction plannedTable(node, namespaceId) {\n\treturn {\n\t\tnamespaceId,\n\t\ttableName: node.name\n\t};\n}\n/**\n* Finds every (drop `X`, create `Y`) pair in the same namespace where `X` is\n* `Y` with its first letter lowered. That shape is the signature of a schema\n* upgraded across the release in which a model with no `@@map` stopped\n* lowering the first letter of its table name: planning it would drop the\n* user's table and recreate it empty. Columns are deliberately not compared,\n* so a user who also changed a field in the same upgrade is still protected.\n*\n* Returns one conflict per pair, carrying `MIGRATION.TABLE_NAME_CASE_CHANGED`\n* in `meta.code`, or an empty array when the plan has no such pair.\n*/\nfunction detectTableNameCaseChanges(input) {\n\tconst dropped = [];\n\tconst created = [];\n\tfor (const issue of input.issues) {\n\t\tconst outcome = issueOutcome(issue);\n\t\tif (outcome === \"not-equal\") continue;\n\t\tconst table = input.tableOf(issue);\n\t\tif (table === void 0) continue;\n\t\t(outcome === \"not-expected\" ? dropped : created).push(plannedTable(table, input.namespaceIdOf(issue)));\n\t}\n\tconst conflicts = [];\n\tfor (const create of created) {\n\t\tconst drop = dropped.find((candidate) => candidate.namespaceId === create.namespaceId && candidate.tableName === lowerFirst(create.tableName));\n\t\tif (drop === void 0) continue;\n\t\tconflicts.push({\n\t\t\tkind: \"tableNameCaseChanged\",\n\t\t\tsummary: `${TABLE_NAME_CASE_CHANGED_CODE}: table \"${create.tableName}\" would be created and table \"${drop.tableName}\" dropped. Prisma 8 changed the default table name: a model with no @@map now names its table verbatim, so model ${create.tableName} points at \"${create.tableName}\" instead of \"${drop.tableName}\".`,\n\t\t\twhy: `To keep table \"${drop.tableName}\" and its rows, add @@map(\"${drop.tableName}\") to model ${create.tableName} (or run the add-model-map codemod over the schema) and plan again. Prisma 8 has no rename-table operation, so a deliberate rename is done by hand: run ALTER TABLE \"${drop.tableName}\" RENAME TO \"${create.tableName}\" (schema-qualified where applicable), after which the plan is empty.`,\n\t\t\tlocation: {\n\t\t\t\tnamespaceId: create.namespaceId,\n\t\t\t\tentityKind: \"table\",\n\t\t\t\tentityName: create.tableName\n\t\t\t},\n\t\t\tmeta: {\n\t\t\t\tcode: TABLE_NAME_CASE_CHANGED_CODE,\n\t\t\t\tdroppedTable: drop.tableName,\n\t\t\t\tcreatedTable: create.tableName\n\t\t\t}\n\t\t});\n\t}\n\treturn conflicts;\n}\n//#endregion\n//#region src/core/timestamp-now-generator.ts\nfunction temporalStringAuthoringPresets(input) {\n\tconst presets = temporalAuthoringPresets(input);\n\treturn {\n\t\tcreatedAtString: presets.createdAt,\n\t\tupdatedAtString: presets.updatedAt\n\t};\n}\nconst TEMPORAL_PRECISION_ARG = {\n\tname: \"precision\",\n\tkind: \"number\",\n\toptional: true,\n\tinteger: true,\n\tminimum: 0\n};\n/**\n* Builds a `temporal.<codec>` field preset for a codec that takes a precision\n* parameter (`pg/timestamp-temporal@1`, `pg/timestamptz-temporal@1`). Arguments change field\n* properties only — never the codec, which the caller fixes here.\n*\n* All three arguments are optional: omitting `precision` omits `typeParams`\n* entirely, and omitting a phase omits that phase (both omitted omits\n* `executionDefaults`).\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction temporalCodecPresetWithPrecision(input) {\n\tconst generatorId = input.generatorId ?? TIMESTAMP_NOW_GENERATOR_ID;\n\treturn {\n\t\tkind: \"fieldPreset\",\n\t\targs: [\n\t\t\tTEMPORAL_PRECISION_ARG,\n\t\t\tTEMPORAL_ON_CREATE_ARG,\n\t\t\tTEMPORAL_ON_UPDATE_ARG\n\t\t],\n\t\toutput: {\n\t\t\tcodecId: input.codecId,\n\t\t\tnativeType: input.nativeType,\n\t\t\ttypeParams: { precision: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0\n\t\t\t} },\n\t\t\texecutionDefaults: {\n\t\t\t\tonCreate: temporalPhaseTemplate(1, generatorId),\n\t\t\t\tonUpdate: temporalPhaseTemplate(2, generatorId)\n\t\t\t}\n\t\t}\n\t};\n}\n//#endregion\n//#region src/exports/control.ts\nvar control_default = new SqlFamilyDescriptor();\n//#endregion\nexport { INIT_ADDITIVE_POLICY, TABLE_NAME_CASE_CHANGED_CODE, assembleAuthoringContributions, buildDataTypeResolver, buildNativeTypeExpander, checkSqlDefaultBody, contractNamespaceToSchemaIR, contractToSchemaIR, controlPolicyForCall, createMigrationPlan, control_default as default, detectDestructiveChanges, detectTableNameCaseChanges, extractCodecControlHooks, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventOperations, plannerFailure, plannerSuccess, runnerFailure, runnerSuccess, temporalCodecPresetWithPrecision, temporalStringAuthoringPresets };\n\n//# sourceMappingURL=control.mjs.map"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"control-xT2HdvBb.d.mts","names":[],"sources":["../../../../2-sql/9-family/dist/control.d.mts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;UAmBU;WACC;WACA;WACA;WACA;;KAEN,0BAA0B,YAAY;UACjC;WACC,kBAAkB,cAAc;WAChC,cAAc;WACd,sBAAsB;;UAEvB,iCAAiC,6BAA6B,kBAAkB,kBAAkB,kBAAkB,wBAAwB,kBAAkB,wBAAwB,SAAS,cAAc,yBAAyB;;;;;;;;;EAS9O,oBAAoB,wBAAwB;EAC5C,OAAO;aACI,QAAQ;aACR;aACA;aACA;aACA;MACP,QAAQ;;;;;;;;;;EAUZ,aAAa;aACF;aACA,QAAQ;aACR;aACA,qBAAqB,cAAc;MAC1C;;;;;;;;;;EAUJ,2BAA2B,OAAO,kBAAkB;;;;;;;;EAQpD,mBAAmB,OAAO;EAC1B,KAAK;aACM,QAAQ;aACR;aACA;aACA;MACP,QAAQ;EACZ,WAAW;aACA,QAAQ;aACR;MACP,QAAQ;EACZ,iBAAiB,UAAU,kBAAkB;EAC7C,SAAS,KAAK,cAAc,SAAS,SAAS,0BAA0B,QAAQ;;;;;;EAMhF,WAAW;aACA,QAAQ;aACR;aACA;eACE;eACA;eACA;;MAET;;;;;EAKJ,aAAa;aACF,QAAQ;aACR;aACA;aACA;eACE;eACA;eACA;;MAET;;;;;EAKJ,iBAAiB;aACN,QAAQ;aACR;aACA;eACE;eACA;eACA;eACA;eACA;eACA;eACA;;MAET;EACJ,yCAAyC;EACzC,mBAAmB,qBAAqB,2BAA6B;;;;cAIzD,+BAA+B,+BAA+B;WACjE;WACA;WACA;WACA;WACA,UAAU;WACV,oBAAoB;WACpB;aACE;eACE;iBACE;iBACA;mBACE;mBACA;mBACA;qBACE;;;;eAIN;iBACE;iBACA;mBACE;mBACA;mBACA;qBACE;;;;eAIN;iBACE;iBACA;mBACE;mBACA;mBACA;qBACE;uBACE;uBACA;uBACA;uBACA;uBACA;;;;iBAIN;mBACE;mBACA;mBACA;qBACE;uBACE;uBACA;uBACA;uBACA;;;;;eAKR;iBACE;iBACA;mBACE;mBACA;mBACA;qBACE;;;;eAIN;iBACE;iBACA;mBACE;mBACA;mBACA;qBACE;;;;eAIN;iBACE;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;;qBAEF;uBACE;yBACE;yBACA;;;qBAGJ;;;iBAGJ;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;;qBAEF;uBACE;yBACE;yBACA;;;qBAGJ;;;iBAGJ;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;;qBAEF;uBACE;yBACE;yBACA;;;qBAGJ;;;iBAGJ;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;yBACE;yBACA;yBACA;yBACA;yBACA;;;;mBAIN;qBACE;qBACA;qBACA;uBACE;yBACE;yBACA;yBACA;yBACA;;;qBAGJ;uBACE;yBACE;yBACA;yBACA;2BACE;6BACE;6BACA;6BACA;;;;;qBAKR;;;iBAGJ;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;;qBAEF;uBACE;yBACE;yBACA;;;qBAGJ;;;iBAGJ;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;;qBAEF;uBACE;yBACE;yBACA;;;qBAGJ;;;;;aAKR;eACE;iBACE;mBACE;mBACA;mBACA;qBACE;qBACA;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;uBACE;yBACE;yBACA;;;;;;;aAOZ,gEAAgE;aAChE;eACE;QACP;QACA;QACA;QACA;QACA;UACE;;QAEF,aAAa;QACb;UACE,2CAA2C;YACzC;4CACgC;;;;aAI/B;eACE;iBACE,0CAA0C;UACjD;0CACgC;iBACzB,yCAAyC;UAChD;mBACS;0CACuB;iBACzB,6CAA6C;UACpD;mBACS;0CACuB;iBACzB,4CAA4C;UACnD;mBACS;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA,UAAU;0CACa;iBACzB,4CAA4C;mBAC1C;mBACA;mBACA;0CACuB;iBACzB,8CAA8C;UACrD;0CACgC;iBACzB,oDAAoD;UAC3D;0CACgC;iBACzB,2CAA2C;UAClD,qCAAqC,uDAAuD;UAC5F;0CACgC;;eAE3B;iBACE,0CAA0C;UACjD;0CACgC;iBACzB,yCAAyC;mBACvC;0CACuB;iBACzB,6CAA6C;mBAC3C;0CACuB;iBACzB,8CAA8C;UACrD;UACA;0CACgC;i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"}