@prisma/orm-target-sqlite 8.0.0-rc.20-dev.8 → 8.0.0-rc.20-dev.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/{adapter-xs2nBMBo.d.mts → adapter-C3hrAasJ.d.mts} +4 -4
  2. package/dist/{adapter-xs2nBMBo.d.mts.map → adapter-C3hrAasJ.d.mts.map} +1 -1
  3. package/dist/adapter.d.mts +1 -1
  4. package/dist/adapter__adapter.d.mts +1 -1
  5. package/dist/{aggregates-DC8nyCjN.d.mts → aggregates-UBmpuURb.d.mts} +4 -4
  6. package/dist/{aggregates-DC8nyCjN.d.mts.map → aggregates-UBmpuURb.d.mts.map} +1 -1
  7. package/dist/{migration-BiEvYZud.d.mts → migration-BHhnGEA2.d.mts} +2 -2
  8. package/dist/{migration-BiEvYZud.d.mts.map → migration-BHhnGEA2.d.mts.map} +1 -1
  9. package/dist/{migration-8iTYuvo3.mjs → migration-D0UlBTQw.mjs} +2 -2
  10. package/dist/{migration-8iTYuvo3.mjs.map → migration-D0UlBTQw.mjs.map} +1 -1
  11. package/dist/{op-factory-call-CbRRVCjr.d.mts → op-factory-call-B8bJlvkP.d.mts} +38 -5
  12. package/dist/{op-factory-call-CbRRVCjr.d.mts.map → op-factory-call-B8bJlvkP.d.mts.map} +1 -1
  13. package/dist/{op-factory-call-lluKW6u9-D2x8W4qv.mjs → op-factory-call-DADakw8V-yXzHuXlv.mjs} +146 -4
  14. package/dist/op-factory-call-DADakw8V-yXzHuXlv.mjs.map +1 -0
  15. package/dist/{pack-BT-BNRPc.d.mts → pack-B3YrlPJI.d.mts} +2 -2
  16. package/dist/{pack-BT-BNRPc.d.mts.map → pack-B3YrlPJI.d.mts.map} +1 -1
  17. package/dist/{planner-B73VGVF0-Dl4v3Bcx.mjs → planner-1zVd0jR2-mkF3bIWw.mjs} +101 -12
  18. package/dist/planner-1zVd0jR2-mkF3bIWw.mjs.map +1 -0
  19. package/dist/{planner-j4kgbkbY.d.mts → planner-DcOz-1na.d.mts} +2 -2
  20. package/dist/{planner-j4kgbkbY.d.mts.map → planner-DcOz-1na.d.mts.map} +1 -1
  21. package/dist/{planner-produced-sqlite-migration-B-05qsmU-BpCrTiPQ.mjs → planner-produced-sqlite-migration-Dgme3v9a-BzrIbSW_.mjs} +4 -4
  22. package/dist/{planner-produced-sqlite-migration-B-05qsmU-BpCrTiPQ.mjs.map → planner-produced-sqlite-migration-Dgme3v9a-BzrIbSW_.mjs.map} +1 -1
  23. package/dist/planner-produced-sqlite-migration-DxyN096L.d.mts +1 -0
  24. package/dist/{planner-produced-sqlite-migration-HnOjnBHx-B_d6P_xk.d.mts → planner-produced-sqlite-migration-DyUPHRKW-CFtZi2VG.d.mts} +3 -3
  25. package/dist/planner-produced-sqlite-migration-DyUPHRKW-CFtZi2VG.d.mts.map +1 -0
  26. package/dist/{render-ops-Dq0lrks_-BNZp7Sj9.mjs → render-ops-CwuscSzF-D3hoxOT_.mjs} +3 -3
  27. package/dist/{render-ops-Dq0lrks_-BNZp7Sj9.mjs.map → render-ops-CwuscSzF-D3hoxOT_.mjs.map} +1 -1
  28. package/dist/{sqlite-migration-DXkxomAv-BSjN30Zu.mjs → sqlite-migration-BLyz5GQr-BMImgGTB.mjs} +24 -3
  29. package/dist/sqlite-migration-BLyz5GQr-BMImgGTB.mjs.map +1 -0
  30. package/dist/{sqlite-migration-BNHxL3Xy-CGdqsq1O.d.mts → sqlite-migration-CcXBptQr-DlKSNedI.d.mts} +29 -3
  31. package/dist/sqlite-migration-CcXBptQr-DlKSNedI.d.mts.map +1 -0
  32. package/dist/target.d.mts +9 -9
  33. package/dist/target.mjs +7 -7
  34. package/dist/target__aggregates.d.mts +1 -1
  35. package/dist/target__control.mjs +44 -5
  36. package/dist/target__control.mjs.map +1 -1
  37. package/dist/target__migration.d.mts +2 -2
  38. package/dist/target__migration.mjs +2 -2
  39. package/dist/target__op-factory-call.d.mts +2 -2
  40. package/dist/target__op-factory-call.mjs +2 -2
  41. package/dist/target__pack.d.mts +1 -1
  42. package/dist/target__planner-produced-sqlite-migration.d.mts +2 -2
  43. package/dist/target__planner-produced-sqlite-migration.mjs +1 -1
  44. package/dist/target__planner.d.mts +1 -1
  45. package/dist/target__planner.mjs +1 -1
  46. package/dist/target__render-ops.mjs +1 -1
  47. package/package.json +9 -9
  48. package/dist/op-factory-call-lluKW6u9-D2x8W4qv.mjs.map +0 -1
  49. package/dist/planner-B73VGVF0-Dl4v3Bcx.mjs.map +0 -1
  50. package/dist/planner-produced-sqlite-migration-BkkAIXsc.d.mts +0 -1
  51. package/dist/planner-produced-sqlite-migration-HnOjnBHx-B_d6P_xk.d.mts.map +0 -1
  52. package/dist/sqlite-migration-BNHxL3Xy-CGdqsq1O.d.mts.map +0 -1
  53. package/dist/sqlite-migration-DXkxomAv-BSjN30Zu.mjs.map +0 -1
@@ -64,7 +64,7 @@ declare const sqliteAdapterContractContributions: {
64
64
  readonly operation: "sum";
65
65
  readonly input: {
66
66
  readonly kind: "codec";
67
- readonly codecId: "sql/int@1" | "sqlite/integer@1" | "sqlite/bigint@1" | "sqlite/bigintnumber@1";
67
+ readonly codecId: "sql/int@1" | "sqlite/bigintnumber@1" | "sqlite/bigint@1" | "sqlite/integer@1";
68
68
  };
69
69
  readonly output: {
70
70
  readonly kind: "codec";
@@ -75,7 +75,7 @@ declare const sqliteAdapterContractContributions: {
75
75
  readonly operation: "sumBigInt";
76
76
  readonly input: {
77
77
  readonly kind: "codec";
78
- readonly codecId: "sql/int@1" | "sqlite/integer@1" | "sqlite/bigint@1" | "sqlite/bigintnumber@1";
78
+ readonly codecId: "sql/int@1" | "sqlite/bigintnumber@1" | "sqlite/bigint@1" | "sqlite/integer@1";
79
79
  };
80
80
  readonly output: {
81
81
  readonly kind: "codec";
@@ -100,7 +100,7 @@ declare const sqliteAdapterContractContributions: {
100
100
  readonly operation: "avg";
101
101
  readonly input: {
102
102
  readonly kind: "codec";
103
- readonly codecId: "sql/int@1" | "sql/float@1" | "sqlite/integer@1" | "sqlite/bigint@1" | "sqlite/real@1" | "sqlite/bigintnumber@1";
103
+ readonly codecId: "sql/int@1" | "sql/float@1" | "sqlite/bigintnumber@1" | "sqlite/bigint@1" | "sqlite/integer@1" | "sqlite/real@1";
104
104
  };
105
105
  readonly output: {
106
106
  readonly kind: "codec";
@@ -194,4 +194,4 @@ declare const sqliteAdapterContractContributions: {
194
194
  };
195
195
  //#endregion
196
196
  export { sqliteAdapterContractContributions as n, sqliteAdapterCapabilities as t };
197
- //# sourceMappingURL=adapter-xs2nBMBo.d.mts.map
197
+ //# sourceMappingURL=adapter-C3hrAasJ.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-xs2nBMBo.d.mts","names":[],"sources":["../../../../3-targets/sqlite/2-adapter/dist/adapter.d.mts"],"mappings":";;;;cAGc,2BAA2B;WAC9B;aACE;aACA;aACA;aACA;aACA;aACA;aACA;aACA;aACA;;;;;;;;cAQC;WACH,cAAc;aACZ;eACE;eACA;eACA;eACA;eACA;eACA;eACA;eACA;eACA;;;WAGJ;aACE;eACE;eACA;iBACE;;eAEF;iBACE;iBACA;;eAEF;eACA;eACA,6EAA6E;;eAE7E;eACA;iBACE;;eAEF;iBACE;iBACA;;eAEF;eACA;eACA,6EAA6E;;eAE7E,8EAA8E;eAC9E;eACA;iBACE;iBACA;;eAEF;iBACE;iBACA;;eAEF;;eAEA;eACA;iBACE;iBACA;;eAEF;iBACE;iBACA;;eAEF;eACA,6EAA6E;;eAE7E,8EAA8E;eAC9E;eACA;iBACE;iBACA;;eAEF;iBACE;iBACA;;eAEF;;eAEA,8EAA8E;eAC9E;eACA;iBACE;iBACA;;eAEF;iBACE;iBACA;;eAEF;;eAEA;eACA;iBACE;iBACA;;eAEF;iBACE;;eAEF;;eAEA;eACA;iBACE;iBACA;;eAEF;iBACE;;eAEF;;eAEA;eACA;iBACE;iBACA;;eAEF;iBACE;;eAEF;;eAEA;eACA;iBACE;iBACA;;eAEF;iBACE;;eAEF;eACA,6EAA6E;;eAE7E;eACA;iBACE;iBACA;;eAEF;iBACE;;eAEF;;eAEA;eACA;iBACE;iBACA;;eAEF;iBACE;;eAEF;;eAEA;eACA;iBACE;iBACA;;eAEF;iBACE;;eAEF;;eAEA;eACA;iBACE;iBACA;;eAEF;iBACE;;eAEF;eACA,6EAA6E"}
1
+ {"version":3,"file":"adapter-C3hrAasJ.d.mts","names":[],"sources":["../../../../3-targets/sqlite/2-adapter/dist/adapter.d.mts"],"mappings":";;;;cAGc,2BAA2B;WAC9B;aACE;aACA;aACA;aACA;aACA;aACA;aACA;aACA;aACA;;;;;;;;cAQC;WACH,cAAc;aACZ;eACE;eACA;eACA;eACA;eACA;eACA;eACA;eACA;eACA;;;WAGJ;aACE;eACE;eACA;iBACE;;eAEF;iBACE;iBACA;;eAEF;eACA;eACA,6EAA6E;;eAE7E;eACA;iBACE;;eAEF;iBACE;iBACA;;eAEF;eACA;eACA,6EAA6E;;eAE7E,8EAA8E;eAC9E;eACA;iBACE;iBACA;;eAEF;iBACE;iBACA;;eAEF;;eAEA;eACA;iBACE;iBACA;;eAEF;iBACE;iBACA;;eAEF;eACA,6EAA6E;;eAE7E,8EAA8E;eAC9E;eACA;iBACE;iBACA;;eAEF;iBACE;iBACA;;eAEF;;eAEA,8EAA8E;eAC9E;eACA;iBACE;iBACA;;eAEF;iBACE;iBACA;;eAEF;;eAEA;eACA;iBACE;iBACA;;eAEF;iBACE;;eAEF;;eAEA;eACA;iBACE;iBACA;;eAEF;iBACE;;eAEF;;eAEA;eACA;iBACE;iBACA;;eAEF;iBACE;;eAEF;;eAEA;eACA;iBACE;iBACA;;eAEF;iBACE;;eAEF;eACA,6EAA6E;;eAE7E;eACA;iBACE;iBACA;;eAEF;iBACE;;eAEF;;eAEA;eACA;iBACE;iBACA;;eAEF;iBACE;;eAEF;;eAEA;eACA;iBACE;iBACA;;eAEF;iBACE;;eAEF;;eAEA;eACA;iBACE;iBACA;;eAEF;iBACE;;eAEF;eACA,6EAA6E"}
@@ -1,7 +1,7 @@
1
1
  import { n as SqliteContract, r as SqliteLoweredStatement, t as SqliteAdapterOptions } from "./types-RJMd2PlL-BTGAJrBQ.mjs";
2
2
  import { m as createSqliteCodecRegistryWithBuiltins, o as SqliteCodecRegistry, p as createSqliteBuiltinCodecLookup, t as JsonValue$1 } from "./codecs-BJYruC-a-BKDGae3k.mjs";
3
3
  import { i as sqliteRawCodecInferer, r as renderLoweredSql, t as createSqliteAdapter } from "./adapter-xFPDhkod-BsdLsy9N.mjs";
4
- import { n as sqliteAdapterContractContributions, t as sqliteAdapterCapabilities } from "./adapter-xs2nBMBo.mjs";
4
+ import { n as sqliteAdapterContractContributions, t as sqliteAdapterCapabilities } from "./adapter-C3hrAasJ.mjs";
5
5
  import { t as CodecTypes } from "./codec-types-COh75Bop-CUehAexc.mjs";
6
6
  import "./codec-types-PONhVn74.mjs";
7
7
  import { a as jsonColumn, c as textColumn, i as integerColumn, n as blobColumn, o as rawColumn, r as datetimeColumn, s as realColumn, t as bigintColumn } from "./column-types-Dxm0BpPv.mjs";
@@ -1,4 +1,4 @@
1
1
  import { t as SqliteAdapterOptions } from "./types-RJMd2PlL-BTGAJrBQ.mjs";
2
2
  import { i as sqliteRawCodecInferer, t as createSqliteAdapter } from "./adapter-xFPDhkod-BsdLsy9N.mjs";
3
- import { n as sqliteAdapterContractContributions, t as sqliteAdapterCapabilities } from "./adapter-xs2nBMBo.mjs";
3
+ import { n as sqliteAdapterContractContributions, t as sqliteAdapterCapabilities } from "./adapter-C3hrAasJ.mjs";
4
4
  export { type SqliteAdapterOptions, createSqliteAdapter, sqliteAdapterCapabilities, sqliteAdapterContractContributions, sqliteRawCodecInferer };
@@ -33,7 +33,7 @@ declare const sqliteAggregateDescriptors: readonly [{
33
33
  readonly operation: "sum";
34
34
  readonly input: {
35
35
  readonly kind: "codec";
36
- readonly codecId: "sql/int@1" | "sqlite/integer@1" | "sqlite/bigint@1" | "sqlite/bigintnumber@1";
36
+ readonly codecId: "sql/int@1" | "sqlite/bigintnumber@1" | "sqlite/bigint@1" | "sqlite/integer@1";
37
37
  };
38
38
  readonly output: {
39
39
  readonly kind: "codec";
@@ -44,7 +44,7 @@ declare const sqliteAggregateDescriptors: readonly [{
44
44
  readonly operation: "sumBigInt";
45
45
  readonly input: {
46
46
  readonly kind: "codec";
47
- readonly codecId: "sql/int@1" | "sqlite/integer@1" | "sqlite/bigint@1" | "sqlite/bigintnumber@1";
47
+ readonly codecId: "sql/int@1" | "sqlite/bigintnumber@1" | "sqlite/bigint@1" | "sqlite/integer@1";
48
48
  };
49
49
  readonly output: {
50
50
  readonly kind: "codec";
@@ -69,7 +69,7 @@ declare const sqliteAggregateDescriptors: readonly [{
69
69
  readonly operation: "avg";
70
70
  readonly input: {
71
71
  readonly kind: "codec";
72
- readonly codecId: "sql/int@1" | "sql/float@1" | "sqlite/integer@1" | "sqlite/bigint@1" | "sqlite/real@1" | "sqlite/bigintnumber@1";
72
+ readonly codecId: "sql/int@1" | "sql/float@1" | "sqlite/bigintnumber@1" | "sqlite/bigint@1" | "sqlite/integer@1" | "sqlite/real@1";
73
73
  };
74
74
  readonly output: {
75
75
  readonly kind: "codec";
@@ -161,4 +161,4 @@ declare const sqliteAggregateDescriptors: readonly [{
161
161
  }];
162
162
  //#endregion
163
163
  export { sqliteAggregateDescriptors as t };
164
- //# sourceMappingURL=aggregates-DC8nyCjN.d.mts.map
164
+ //# sourceMappingURL=aggregates-UBmpuURb.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregates-DC8nyCjN.d.mts","names":[],"sources":["../../../../3-targets/sqlite/1-target/dist/aggregates.d.mts"],"mappings":";;;;;;cAKc;WACH;WACA;aACE;;WAEF;aACE;aACA;;WAEF;WACA;WACA,OAAO;;WAEP;WACA;aACE;;WAEF;aACE;aACA;;WAEF;WACA;WACA,OAAO;;WAEP,QAAQ;WACR;WACA;aACE;aACA;;WAEF;aACE;aACA;;WAEF;;WAEA;WACA;aACE;aACA;;WAEF;aACE;aACA;;WAEF;WACA,OAAO;;WAEP,QAAQ;WACR;WACA;aACE;aACA;;WAEF;aACE;aACA;;WAEF;;WAEA,QAAQ;WACR;WACA;aACE;aACA;;WAEF;aACE;aACA;;WAEF;;WAEA;WACA;aACE;aACA;;WAEF;aACE;;WAEF;;WAEA;WACA;aACE;aACA;;WAEF;aACE;;WAEF;;WAEA;WACA;aACE;aACA;;WAEF;aACE;;WAEF;;WAEA;WACA;aACE;aACA;;WAEF;aACE;;WAEF;WACA,OAAO;;WAEP;WACA;aACE;aACA;;WAEF;aACE;;WAEF;;WAEA;WACA;aACE;aACA;;WAEF;aACE;;WAEF;;WAEA;WACA;aACE;aACA;;WAEF;aACE;;WAEF;;WAEA;WACA;aACE;aACA;;WAEF;aACE;;WAEF;WACA,OAAO"}
1
+ {"version":3,"file":"aggregates-UBmpuURb.d.mts","names":[],"sources":["../../../../3-targets/sqlite/1-target/dist/aggregates.d.mts"],"mappings":";;;;;;cAKc;WACH;WACA;aACE;;WAEF;aACE;aACA;;WAEF;WACA;WACA,OAAO;;WAEP;WACA;aACE;;WAEF;aACE;aACA;;WAEF;WACA;WACA,OAAO;;WAEP,QAAQ;WACR;WACA;aACE;aACA;;WAEF;aACE;aACA;;WAEF;;WAEA;WACA;aACE;aACA;;WAEF;aACE;aACA;;WAEF;WACA,OAAO;;WAEP,QAAQ;WACR;WACA;aACE;aACA;;WAEF;aACE;aACA;;WAEF;;WAEA,QAAQ;WACR;WACA;aACE;aACA;;WAEF;aACE;aACA;;WAEF;;WAEA;WACA;aACE;aACA;;WAEF;aACE;;WAEF;;WAEA;WACA;aACE;aACA;;WAEF;aACE;;WAEF;;WAEA;WACA;aACE;aACA;;WAEF;aACE;;WAEF;;WAEA;WACA;aACE;aACA;;WAEF;aACE;;WAEF;WACA,OAAO;;WAEP;WACA;aACE;aACA;;WAEF;aACE;;WAEF;;WAEA;WACA;aACE;aACA;;WAEF;aACE;;WAEF;;WAEA;WACA;aACE;aACA;;WAEF;aACE;;WAEF;;WAEA;WACA;aACE;aACA;;WAEF;aACE;;WAEF;WACA,OAAO"}
@@ -1,5 +1,5 @@
1
1
  import { t as Op } from "./tables-C9afyQN9-CkIhVNYn.mjs";
2
- import "./sqlite-migration-BNHxL3Xy-CGdqsq1O.mjs";
2
+ import "./sqlite-migration-CcXBptQr-DlKSNedI.mjs";
3
3
  import { col as col$1, fn as fn$1, foreignKey, lit as lit$1, primaryKey, unique } from "@prisma/orm-family-sql/relational-core/contract-free";
4
4
  import { placeholder } from "@prisma/orm-framework/errors/migration";
5
5
  import { MigrationCLI } from "@prisma/orm-toolchain/cli/migration-cli";
@@ -41,4 +41,4 @@ declare function dataTransform(opts: DataTransformOptions): Op;
41
41
  declare function rawSql(op: Op): Op;
42
42
  //#endregion
43
43
  export { fn$1 as a, placeholder as c, sql as d, unique as f, dataTransform as i, primaryKey as l, MigrationCLI as n, foreignKey as o, col$1 as r, lit$1 as s, DataTransformOptions as t, rawSql as u };
44
- //# sourceMappingURL=migration-BiEvYZud.d.mts.map
44
+ //# sourceMappingURL=migration-BHhnGEA2.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migration-BiEvYZud.d.mts","names":[],"sources":["../../../../3-targets/sqlite/1-target/dist/migration.d.mts"],"mappings":";;;;;;;;UAOU;;WAEC;;WAEA;;WAEA;;;;;WAKA;;;;;;;;;WASA;;iBAEM,cAAc,MAAM,uBAAuB;;;;;;;;;;iBAU3C,OAAO,IAAI,KAAK"}
1
+ {"version":3,"file":"migration-BHhnGEA2.d.mts","names":[],"sources":["../../../../3-targets/sqlite/1-target/dist/migration.d.mts"],"mappings":";;;;;;;;UAOU;;WAEC;;WAEA;;WAEA;;;;;WAKA;;;;;;;;;WASA;;iBAEM,cAAc,MAAM,uBAAuB;;;;;;;;;;iBAU3C,OAAO,IAAI,KAAK"}
@@ -1,5 +1,5 @@
1
1
  import { t as buildTargetDetails } from "./planner-target-details-Daaeo8s9-BGAN4JVc.mjs";
2
- import { C as step } from "./op-factory-call-lluKW6u9-D2x8W4qv.mjs";
2
+ import { T as step } from "./op-factory-call-DADakw8V-yXzHuXlv.mjs";
3
3
  import { col as col$1, fn as fn$1, foreignKey, lit as lit$1, primaryKey, unique } from "@prisma/orm-family-sql/relational-core/contract-free";
4
4
  import { placeholder } from "@prisma/orm-framework/errors/migration";
5
5
  import { MigrationCLI } from "@prisma/orm-toolchain/cli/migration-cli";
@@ -45,4 +45,4 @@ function rawSql(op) {
45
45
  //#endregion
46
46
  export { foreignKey as a, primaryKey as c, unique as d, fn$1 as i, rawSql as l, col$1 as n, lit$1 as o, dataTransform as r, placeholder as s, MigrationCLI as t, sql as u };
47
47
 
48
- //# sourceMappingURL=migration-8iTYuvo3.mjs.map
48
+ //# sourceMappingURL=migration-D0UlBTQw.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"migration-8iTYuvo3.mjs","names":[],"sources":["../../../../3-targets/sqlite/1-target/dist/migration.mjs"],"sourcesContent":["import { t as SqliteMigration } from \"./sqlite-migration-DXkxomAv.mjs\";\nimport { S as step } from \"./op-factory-call-lluKW6u9.mjs\";\nimport { t as buildTargetDetails } from \"./planner-target-details-Daaeo8s9.mjs\";\nimport { placeholder } from \"@internal/errors/migration\";\nimport { col, fn, foreignKey, lit, primaryKey, unique } from \"@internal/sql-relational-core/contract-free\";\nimport { MigrationCLI } from \"@internal/cli/migration-cli\";\nimport { sql } from \"@internal/sql-contract/sql-expression\";\n//#region src/core/migrations/operations/data-transform.ts\n/**\n* User-facing `dataTransform` factory for the SQLite migration authoring\n* surface. Invoked directly inside a `migration.ts` file to supply a\n* user-authored SQL statement that runs with operation class `'data'`.\n*\n* Typical use: the planner emits a `DataTransformCall` stub when a NOT NULL\n* tightening requires a backfill. The rendered `migration.ts` exposes the\n* backfill as a `placeholder(\"…\")` slot the user fills in with an\n* `UPDATE … WHERE col IS NULL` statement. The filled-in `dataTransform(...)`\n* invocation returns a runnable operation the runner executes before the\n* subsequent recreate-table op copies data into the tightened schema.\n*/\nfunction dataTransform(opts) {\n\treturn {\n\t\tid: opts.id,\n\t\tlabel: opts.label,\n\t\tsummary: opts.description,\n\t\toperationClass: \"data\",\n\t\ttarget: {\n\t\t\tid: \"sqlite\",\n\t\t\tdetails: buildTargetDetails(\"table\", opts.table)\n\t\t},\n\t\tprecheck: [],\n\t\texecute: [step(opts.description, opts.run())],\n\t\tpostcheck: []\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/raw.ts\n/**\n* Identity factory for an already-materialized\n* `SqlMigrationPlanOperation<SqlitePlanTargetDetails>`. Mirrors the Postgres\n* `rawSql` factory: the planner uses this to carry ops produced by SQL-family\n* paths (codec lifecycle hooks, raw-SQL escape hatches) alongside structured\n* call IR without reverse-engineering their shape.\n*/\nfunction rawSql(op) {\n\treturn op;\n}\n//#endregion\nexport { SqliteMigration as Migration, MigrationCLI, col, dataTransform, fn, foreignKey, lit, placeholder, primaryKey, rawSql, sql, unique };\n\n//# sourceMappingURL=migration.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,SAAS,cAAc,MAAM;CAC5B,OAAO;EACN,IAAI,KAAK;EACT,OAAO,KAAK;EACZ,SAAS,KAAK;EACd,gBAAgB;EAChB,QAAQ;GACP,IAAI;GACJ,SAAS,mBAAmB,SAAS,KAAK,KAAK;EAChD;EACA,UAAU,CAAC;EACX,SAAS,CAAC,KAAK,KAAK,aAAa,KAAK,IAAI,CAAC,CAAC;EAC5C,WAAW,CAAC;CACb;AACD;;;;;;;;AAUA,SAAS,OAAO,IAAI;CACnB,OAAO;AACR"}
1
+ {"version":3,"file":"migration-D0UlBTQw.mjs","names":[],"sources":["../../../../3-targets/sqlite/1-target/dist/migration.mjs"],"sourcesContent":["import { t as SqliteMigration } from \"./sqlite-migration-BLyz5GQr.mjs\";\nimport { w as step } from \"./op-factory-call-DADakw8V.mjs\";\nimport { t as buildTargetDetails } from \"./planner-target-details-Daaeo8s9.mjs\";\nimport { placeholder } from \"@internal/errors/migration\";\nimport { col, fn, foreignKey, lit, primaryKey, unique } from \"@internal/sql-relational-core/contract-free\";\nimport { MigrationCLI } from \"@internal/cli/migration-cli\";\nimport { sql } from \"@internal/sql-contract/sql-expression\";\n//#region src/core/migrations/operations/data-transform.ts\n/**\n* User-facing `dataTransform` factory for the SQLite migration authoring\n* surface. Invoked directly inside a `migration.ts` file to supply a\n* user-authored SQL statement that runs with operation class `'data'`.\n*\n* Typical use: the planner emits a `DataTransformCall` stub when a NOT NULL\n* tightening requires a backfill. The rendered `migration.ts` exposes the\n* backfill as a `placeholder(\"…\")` slot the user fills in with an\n* `UPDATE … WHERE col IS NULL` statement. The filled-in `dataTransform(...)`\n* invocation returns a runnable operation the runner executes before the\n* subsequent recreate-table op copies data into the tightened schema.\n*/\nfunction dataTransform(opts) {\n\treturn {\n\t\tid: opts.id,\n\t\tlabel: opts.label,\n\t\tsummary: opts.description,\n\t\toperationClass: \"data\",\n\t\ttarget: {\n\t\t\tid: \"sqlite\",\n\t\t\tdetails: buildTargetDetails(\"table\", opts.table)\n\t\t},\n\t\tprecheck: [],\n\t\texecute: [step(opts.description, opts.run())],\n\t\tpostcheck: []\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/raw.ts\n/**\n* Identity factory for an already-materialized\n* `SqlMigrationPlanOperation<SqlitePlanTargetDetails>`. Mirrors the Postgres\n* `rawSql` factory: the planner uses this to carry ops produced by SQL-family\n* paths (codec lifecycle hooks, raw-SQL escape hatches) alongside structured\n* call IR without reverse-engineering their shape.\n*/\nfunction rawSql(op) {\n\treturn op;\n}\n//#endregion\nexport { SqliteMigration as Migration, MigrationCLI, col, dataTransform, fn, foreignKey, lit, placeholder, primaryKey, rawSql, sql, unique };\n\n//# sourceMappingURL=migration.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,SAAS,cAAc,MAAM;CAC5B,OAAO;EACN,IAAI,KAAK;EACT,OAAO,KAAK;EACZ,SAAS,KAAK;EACd,gBAAgB;EAChB,QAAQ;GACP,IAAI;GACJ,SAAS,mBAAmB,SAAS,KAAK,KAAK;EAChD;EACA,UAAU,CAAC;EACX,SAAS,CAAC,KAAK,KAAK,aAAa,KAAK,IAAI,CAAC,CAAC;EAC5C,WAAW,CAAC;CACb;AACD;;;;;;;;AAUA,SAAS,OAAO,IAAI;CACnB,OAAO;AACR"}
@@ -1,8 +1,8 @@
1
1
  import { t as SqlitePlanTargetDetails } from "./planner-target-details-B-qtfkmj-DIGpv7YQ.mjs";
2
2
  import { a as SqliteTableSpec, i as SqliteIndexSpec, n as RecreatePostcheck, r as SqliteColumnSpec } from "./tables-C9afyQN9-CkIhVNYn.mjs";
3
3
  import { DdlColumn, DdlTableConstraint } from "@prisma/orm-family-sql/relational-core/ast";
4
- import { OpFactoryCall } from "@prisma/orm-framework/components/control";
5
- import { MigrationOperationClass, SqlMigrationPlanOperation, SqlSlot } from "@prisma/orm-family-sql/family/control";
4
+ import { EnumValueCoordinateJson, OpFactoryCall } from "@prisma/orm-framework/components/control";
5
+ import { MigrationOperationClass, SqlMigrationPlanOperation, SqlSlot, StoredValueCodec } from "@prisma/orm-family-sql/family/control";
6
6
  import { ImportRequirement, TsExpression } from "@prisma/orm-framework/ts-render";
7
7
  import { ExecuteRequestLowerer, Lowerer } from "@prisma/orm-family-sql/family/control-adapter";
8
8
  //#region ../../../3-targets/sqlite/1-target/dist/op-factory-call.d.mts
@@ -175,6 +175,39 @@ declare class DropIndexCall extends SqliteOpFactoryCallNode {
175
175
  renderTypeScript(): string;
176
176
  importRequirements(): readonly ImportRequirement[];
177
177
  }
178
+ /** Changes one stored value of a column to another, in every row that holds it. */
179
+ declare class ReplaceStoredValueCall extends SqliteOpFactoryCallNode {
180
+ readonly factoryName: "replaceStoredValue";
181
+ readonly operationClass: "widening";
182
+ readonly tableName: string;
183
+ readonly columnName: string;
184
+ readonly from: string | number;
185
+ readonly to: string | number;
186
+ /** The column's codec, which writes `from` and `to` as the database stores them. */
187
+ readonly codec: StoredValueCodec | undefined;
188
+ readonly label: string;
189
+ constructor(tableName: string, columnName: string, from: string | number, to: string | number, codec?: StoredValueCodec);
190
+ toOp(): Promise<Op>;
191
+ renderTypeScript(): string;
192
+ importRequirements(): readonly ImportRequirement[];
193
+ }
194
+ /** Removes one stored value of a column by setting it to NULL in every row that holds it. */
195
+ declare class RemoveStoredValueCall extends SqliteOpFactoryCallNode {
196
+ readonly factoryName: "removeStoredValue";
197
+ readonly operationClass: "destructive";
198
+ readonly tableName: string;
199
+ readonly columnName: string;
200
+ readonly value: string | number;
201
+ /** The column's codec, which writes `value` as the database stores it. */
202
+ readonly codec: StoredValueCodec | undefined;
203
+ /** The enum value whose stored value is removed, which the check that fails while rows of a required column hold it names. */
204
+ readonly enumValue: EnumValueCoordinateJson | undefined;
205
+ readonly label: string;
206
+ constructor(tableName: string, columnName: string, value: string | number, codec?: StoredValueCodec, enumValue?: EnumValueCoordinateJson);
207
+ toOp(): Promise<Op>;
208
+ renderTypeScript(): string;
209
+ importRequirements(): readonly ImportRequirement[];
210
+ }
178
211
  /**
179
212
  * A planner-generated data-transform stub. The current default strategy
180
213
  * (`nullabilityTighteningBackfillStrategy`) emits one of these with a
@@ -219,7 +252,7 @@ declare class RawSqlCall extends SqliteOpFactoryCallNode {
219
252
  toOp(_lowerer?: Lowerer): Op;
220
253
  renderTypeScript(): string;
221
254
  }
222
- type SqliteOpFactoryCall = CreateTableCall | DropTableCall | RecreateTableCall | RenameTableCall | RenameColumnCall | AddColumnCall | DropColumnCall | CreateIndexCall | DropIndexCall | DataTransformCall | RawSqlCall;
255
+ type SqliteOpFactoryCall = CreateTableCall | DropTableCall | RecreateTableCall | RenameTableCall | RenameColumnCall | AddColumnCall | DropColumnCall | CreateIndexCall | DropIndexCall | ReplaceStoredValueCall | RemoveStoredValueCall | DataTransformCall | RawSqlCall;
223
256
  //#endregion
224
- export { DropColumnCall as a, RawSqlCall as c, RenameTableCall as d, SqliteOpFactoryCall as f, DataTransformCall as i, RecreateTableCall as l, CreateIndexCall as n, DropIndexCall as o, CreateTableCall as r, DropTableCall as s, AddColumnCall as t, RenameColumnCall as u };
225
- //# sourceMappingURL=op-factory-call-CbRRVCjr.d.mts.map
257
+ export { DropColumnCall as a, RawSqlCall as c, RenameColumnCall as d, RenameTableCall as f, DataTransformCall as i, RecreateTableCall as l, SqliteOpFactoryCall as m, CreateIndexCall as n, DropIndexCall as o, ReplaceStoredValueCall as p, CreateTableCall as r, DropTableCall as s, AddColumnCall as t, RemoveStoredValueCall as u };
258
+ //# sourceMappingURL=op-factory-call-B8bJlvkP.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"op-factory-call-CbRRVCjr.d.mts","names":[],"sources":["../../../../3-targets/sqlite/1-target/dist/op-factory-call.d.mts"],"mappings":";;;;;;;;;KAQK,KAAK,0BAA0B;uBACb,gCAAgC,wBAAwB;oBAC3D;oBACA,gBAAgB;oBAChB;WACT,KAAK,UAAU,UAAU,KAAK,QAAQ;;EAE/C,MAAM,UAAU,kCAAkC,KAAK,QAAQ;EAC/D,+BAA+B;YACrB;;cAEE,wBAAwB;;WAE3B;WACA;WACA;WACA,kBAAkB;WAClB,sBAAsB;WACtB;EACT,YAAY,mBAAmB,kBAAkB,aAAa,uBAAuB;EACrF,KAAK,UAAU,wBAAwB,QAAQ;EAC/C;EACA,+BAA+B;;cAEnB,sBAAsB;WACzB;WACA;WACA;WACA;EACT,YAAY;EACZ,KAAK,UAAU,wBAAwB,QAAQ;EAC/C;EACA,+BAA+B;;;UAGvB;WACC,MAAM;WACN,QAAQ;;;KAGd,sBAAsB,gBAAgB;cAC7B,wBAAwB;WAC3B;WACA;WACA;;WAEA;WACA;;WAEA,4BAA4B;;;;;WAK5B,qBAAqB;EAC9B,YAAY,sBAAsB,mBAAmB,4BAA4B;;MAE7E;EACJ,MAAM,UAAU,iCAAiC,QAAQ;EACzD,KAAK,UAAU,wBAAwB,QAAQ;EAC/C;EACA,+BAA+B;;cAEnB,yBAAyB;WAC5B;WACA;WACA;WACA;;WAEA;WACA;;WAEA,4BAA4B;;;;;WAK5B,qBAAqB;EAC9B,YAAY,mBAAmB,uBAAuB,oBAAoB,4BAA4B;EACtG,MAAM,UAAU,iCAAiC,QAAQ;EACzD,KAAK,UAAU,wBAAwB,QAAQ;EAC/C;EACA,+BAA+B;;cAEnB,0BAA0B;;WAE7B;WACA,gBAAgB;WAChB;WACA,eAAe;WACf;WACA,kBAAkB;WAClB;WACA,qBAAqB;WACrB;;WAEA,iBAAiB,SAAS,eAAe;;WAEzC,iBAAiB,SAAS,eAAe;;WAEzC;EACT,YAAY;IACV;IACA,eAAe;IACf;IACA,kBAAkB;IAClB;IACA,qBAAqB;IACrB,gBAAgB;IAChB,kBAAkB,SAAS,eAAe;IAC1C,kBAAkB,SAAS,eAAe;IAC1C;;EAEF,KAAK,UAAU,wBAAwB,QAAQ;EAC/C;EACA,+BAA+B;;cAEnB,sBAAsB;;WAEzB;WACA;WACA;WACA;WACA,QAAQ;WACR;EACT,YAAY,mBAAmB,QAAQ;EACvC,KAAK,UAAU,wBAAwB,QAAQ;EAC/C;EACA,+BAA+B;;cAEnB,uBAAuB;WAC1B;WACA;WACA;WACA;WACA;EACT,YAAY,mBAAmB;EAC/B,KAAK,UAAU,wBAAwB,QAAQ;EAC/C;EACA,+BAA+B;;cAEnB,wBAAwB;WAC3B;WACA;WACA;WACA;WACA;WACA;EACT,YAAY,mBAAmB,mBAAmB;;MAE9C;EACJ,KAAK,UAAU,wBAAwB,QAAQ;EAC/C;EACA,+BAA+B;;cAEnB,sBAAsB;WACzB;WACA;WACA;WACA;WACA;EACT,YAAY,mBAAmB;;MAE3B;EACJ,KAAK,UAAU,wBAAwB,QAAQ;EAC/C;EACA,+BAA+B;;;;;;;;;;;;;;cAcnB,0BAA0B;WAC7B;WACA;WACA;WACA;WACA;WACA;;WAEA;EACT,YAAY,YAAY,eAAe,mBAAmB,oBAAoB;EAC9E,KAAK,WAAW,UAAU,QAAQ;EAClC;EACA,+BAA+B;;;;;;;;;;;cAWnB,mBAAmB;WACtB;WACA,gBAAgB;WAChB;WACA,IAAI;EACb,YAAY,IAAI;EAChB,KAAK,WAAW,UAAU;EAC1B;;KAEG,sBAAsB,kBAAkB,gBAAgB,oBAAoB,kBAAkB,mBAAmB,gBAAgB,iBAAiB,kBAAkB,gBAAgB,oBAAoB"}
1
+ {"version":3,"file":"op-factory-call-B8bJlvkP.d.mts","names":[],"sources":["../../../../3-targets/sqlite/1-target/dist/op-factory-call.d.mts"],"mappings":"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"}
@@ -11,12 +11,12 @@ import { assertNever } from "@prisma/orm-framework/utils/internal-error";
11
11
  import "@prisma/orm-family-sql/contract/data-type";
12
12
  import { type } from "arktype";
13
13
  import { expectAbsent, expectPresent, issueOutcome } from "@prisma/orm-framework/components/control";
14
- import { checkSqlExpressionText, convertedColumnMeta, createSqlTextSources, isUnfilledSlot, requiredColumnMeta, slotSource, sqlOfSlot } from "@prisma/orm-family-sql/family/control";
14
+ import { checkSqlExpressionText, convertedColumnMeta, createSqlTextSources, encodeStoredValue, isUnfilledSlot, requiredColumnMeta, rowsHoldingValueMeta, slotSource, sqlOfSlot } from "@prisma/orm-family-sql/family/control";
15
15
  import { RelationalSchemaNodeKind, sqlColumnTypesEqual } from "@prisma/orm-family-sql/schema-ir/types";
16
16
  import { errorMigrationOperationOptionRemoved, unfilledPlaceholderOperation } from "@prisma/orm-framework/errors/migration";
17
17
  import { REFERENTIAL_ACTION_SQL } from "@prisma/orm-family-sql/contract/referential-action-sql";
18
18
  import { TsExpression, jsonToTsSource, tsArraySource, tsObjectSource, tsQuotedTextSource } from "@prisma/orm-framework/ts-render";
19
- //#region ../../../3-targets/sqlite/1-target/dist/op-factory-call-lluKW6u9.mjs
19
+ //#region ../../../3-targets/sqlite/1-target/dist/op-factory-call-DADakw8V.mjs
20
20
  function foldAsciiLetters(identifier) {
21
21
  return identifier.replace(/[A-Z]/g, (letter) => letter.toLowerCase());
22
22
  }
@@ -122,6 +122,14 @@ function columnShapeCheck(tableName, column) {
122
122
  sql: `SELECT COUNT(*) > 0 FROM pragma_table_info(${text(tableName)}) WHERE name = ${text(column.name)} AND LOWER(type) = ${text(column.typeSql.toLowerCase())} AND "notnull" = ${column.notNull ? 1 : 0}`
123
123
  };
124
124
  }
125
+ /** Checks that the column takes NULL, or that no row holds `value` in it. */
126
+ function columnTakesNullOrValueAbsentCheck(tableName, columnName, value, description) {
127
+ return {
128
+ description,
129
+ sql: `SELECT (SELECT COUNT(*) > 0 FROM pragma_table_info(${text(tableName)}) WHERE name = ${text(columnName)} AND "notnull" = 0) OR NOT EXISTS (SELECT 1 FROM ${quoteIdentifier(tableName)} WHERE ${quoteIdentifier(columnName)} = ?1) AS result`,
130
+ params: [value]
131
+ };
132
+ }
125
133
  /** Checks that the index is on the table, covers exactly these columns in this order, and is unique or not. */
126
134
  function indexDefinitionCheck(tableName, indexName, columns, unique) {
127
135
  const positions = columns.map((column, seqno) => `(${seqno}, ${text(column)})`).join(", ");
@@ -200,6 +208,50 @@ async function renameColumn(tableName, fromName, toName, lowerer) {
200
208
  postcheck: [step(`verify column "${toName}" exists on "${tableName}"`, toPresent.sql, toPresent.params, expectPresent(`column "${toName}" on "${tableName}"`)), step(`verify column "${fromName}" no longer exists on "${tableName}"`, fromAbsent.sql, fromAbsent.params, expectAbsent(`column "${fromName}" on "${tableName}"`))]
201
209
  };
202
210
  }
211
+ /** A stored value as operation ids, labels and step descriptions write it. */
212
+ function storedValueText(value) {
213
+ return JSON.stringify(value);
214
+ }
215
+ function idText(value) {
216
+ return String(value);
217
+ }
218
+ function valueAbsentCheck(tableName, columnName, value) {
219
+ return step(`verify no row of "${tableName}" holds value ${storedValueText(value)} in column "${columnName}"`, `SELECT NOT EXISTS (SELECT 1 FROM ${quoteIdentifier(tableName)} WHERE ${quoteIdentifier(columnName)} = ?1) AS result`, [value]);
220
+ }
221
+ function replaceStoredValue(tableName, columnName, from, to) {
222
+ const column = quoteIdentifier(columnName);
223
+ return {
224
+ id: `replaceStoredValue.${tableName}.${columnName}.${idText(from)}`,
225
+ label: `Replace value ${storedValueText(from)} with ${storedValueText(to)} in column "${columnName}" of "${tableName}"`,
226
+ operationClass: "widening",
227
+ target: {
228
+ id: "sqlite",
229
+ details: buildTargetDetails("column", columnName, tableName)
230
+ },
231
+ precheck: [],
232
+ execute: [step(`replace value ${storedValueText(from)} with ${storedValueText(to)} in column "${columnName}"`, `UPDATE ${quoteIdentifier(tableName)} SET ${column} = ?2 WHERE ${column} = ?1`, [from, to])],
233
+ postcheck: [valueAbsentCheck(tableName, columnName, from)]
234
+ };
235
+ }
236
+ function removeStoredValue(tableName, columnName, value, mark) {
237
+ const column = quoteIdentifier(columnName);
238
+ const takesNull = `ensure column "${columnName}" of "${tableName}" takes NULL, or no row holds ${storedValueText(value)} in it`;
239
+ return {
240
+ id: `removeStoredValue.${tableName}.${columnName}.${idText(value)}`,
241
+ label: `Remove value ${storedValueText(value)} from column "${columnName}" of "${tableName}"`,
242
+ operationClass: "destructive",
243
+ target: {
244
+ id: "sqlite",
245
+ details: buildTargetDetails("column", columnName, tableName)
246
+ },
247
+ precheck: [{
248
+ ...columnTakesNullOrValueAbsentCheck(tableName, columnName, value, takesNull),
249
+ ...mark === void 0 ? {} : { meta: rowsHoldingValueMeta(mark) }
250
+ }],
251
+ execute: [step(`remove value ${storedValueText(value)} from column "${columnName}"`, `UPDATE ${quoteIdentifier(tableName)} SET ${column} = NULL WHERE ${column} = ?1`, [value])],
252
+ postcheck: [valueAbsentCheck(tableName, columnName, value)]
253
+ };
254
+ }
203
255
  function buildCreateIndexSql(tableName, indexName, columns, unique = false) {
204
256
  return `CREATE ${unique ? "UNIQUE " : ""}INDEX ${quoteIdentifier(indexName)} ON ${quoteIdentifier(tableName)} (${columns.map(quoteIdentifier).join(", ")})`;
205
257
  }
@@ -1283,6 +1335,96 @@ var DropIndexCall = class extends SqliteOpFactoryCallNode {
1283
1335
  return [];
1284
1336
  }
1285
1337
  };
1338
+ function replaceStoredValueSource(tableName, columnName, from, to, codec) {
1339
+ return `this.replaceStoredValue({ ${[
1340
+ `table: ${jsonToTsSource(tableName)}`,
1341
+ `column: ${jsonToTsSource(columnName)}`,
1342
+ `from: ${from}`,
1343
+ `to: ${to}`,
1344
+ ...codecRefSource(codec)
1345
+ ].join(", ")} })`;
1346
+ }
1347
+ function codecRefSource(codec) {
1348
+ return codec === void 0 ? [] : [`codecRef: ${jsonToTsSource(codec.codecRef)}`];
1349
+ }
1350
+ function requireStoredValue(value, factory, tableName, columnName, argument) {
1351
+ if (typeof value === "string" || typeof value === "number" && Number.isFinite(value)) return value;
1352
+ const got = value;
1353
+ throw sqliteError("CONTRACT.ARGUMENT_INVALID", `${factory}({ table: ${jsonToTsSource(tableName)}, column: ${jsonToTsSource(columnName)} }): ${argument} must be a string or a number; got ${typeof got === "number" || got === void 0 ? String(got) : JSON.stringify(got)}`, { meta: { what: `${factory} ${argument}` } });
1354
+ }
1355
+ /** Changes one stored value of a column to another, in every row that holds it. */
1356
+ var ReplaceStoredValueCall = class extends SqliteOpFactoryCallNode {
1357
+ factoryName = "replaceStoredValue";
1358
+ operationClass = "widening";
1359
+ tableName;
1360
+ columnName;
1361
+ from;
1362
+ to;
1363
+ /** The column's codec, which writes `from` and `to` as the database stores them. */
1364
+ codec;
1365
+ label;
1366
+ constructor(tableName, columnName, from, to, codec) {
1367
+ super();
1368
+ this.codec = codec;
1369
+ this.tableName = tableName;
1370
+ this.columnName = columnName;
1371
+ this.from = requireStoredValue(from, this.factoryName, tableName, columnName, "from");
1372
+ this.to = requireStoredValue(to, this.factoryName, tableName, columnName, "to");
1373
+ this.label = `Replace value ${storedValueText(from)} with ${storedValueText(to)} in column "${columnName}" of "${tableName}"`;
1374
+ this.freeze();
1375
+ }
1376
+ async toOp() {
1377
+ return replaceStoredValue(this.tableName, this.columnName, await encodeStoredValue(this.from, this.codec), await encodeStoredValue(this.to, this.codec));
1378
+ }
1379
+ renderTypeScript() {
1380
+ return replaceStoredValueSource(this.tableName, this.columnName, jsonToTsSource(this.from), jsonToTsSource(this.to), this.codec);
1381
+ }
1382
+ importRequirements() {
1383
+ return [];
1384
+ }
1385
+ };
1386
+ /** Removes one stored value of a column by setting it to NULL in every row that holds it. */
1387
+ var RemoveStoredValueCall = class extends SqliteOpFactoryCallNode {
1388
+ factoryName = "removeStoredValue";
1389
+ operationClass = "destructive";
1390
+ tableName;
1391
+ columnName;
1392
+ value;
1393
+ /** The column's codec, which writes `value` as the database stores it. */
1394
+ codec;
1395
+ /** The enum value whose stored value is removed, which the check that fails while rows of a required column hold it names. */
1396
+ enumValue;
1397
+ label;
1398
+ constructor(tableName, columnName, value, codec, enumValue) {
1399
+ super();
1400
+ this.codec = codec;
1401
+ this.enumValue = enumValue;
1402
+ this.tableName = tableName;
1403
+ this.columnName = columnName;
1404
+ this.value = requireStoredValue(value, this.factoryName, tableName, columnName, "value");
1405
+ this.label = `Remove value ${storedValueText(value)} from column "${columnName}" of "${tableName}"`;
1406
+ this.freeze();
1407
+ }
1408
+ async toOp() {
1409
+ return removeStoredValue(this.tableName, this.columnName, await encodeStoredValue(this.value, this.codec), this.enumValue === void 0 ? void 0 : {
1410
+ enumValue: this.enumValue,
1411
+ value: this.value,
1412
+ ...this.codec === void 0 ? {} : { codecRef: this.codec.codecRef }
1413
+ });
1414
+ }
1415
+ renderTypeScript() {
1416
+ return `this.removeStoredValue({ ${[
1417
+ `table: ${jsonToTsSource(this.tableName)}`,
1418
+ `column: ${jsonToTsSource(this.columnName)}`,
1419
+ `value: ${jsonToTsSource(this.value)}`,
1420
+ ...codecRefSource(this.codec),
1421
+ ...this.enumValue === void 0 ? [] : [`enumValue: ${jsonToTsSource(this.enumValue)}`]
1422
+ ].join(", ")} })`;
1423
+ }
1424
+ importRequirements() {
1425
+ return [];
1426
+ }
1427
+ };
1286
1428
  /**
1287
1429
  * A planner-generated data-transform stub. The current default strategy
1288
1430
  * (`nullabilityTighteningBackfillStrategy`) emits one of these with a
@@ -1409,6 +1551,6 @@ function renderPostcheck(postcheck) {
1409
1551
  }));
1410
1552
  }
1411
1553
  //#endregion
1412
- export { step as C, sqliteIdentifiersCollide as S, indexReplacementCalls as _, DropColumnCall as a, renameTableSteps as b, INLINE_AUTOINCREMENT_PRIMARY_KEY as c, RenameColumnCall as d, RenameTableCall as f, conversionCopyOf as g, buildRecreateSummary as h, DataTransformCall as i, RawSqlCall as l, buildRecreatePostchecks as m, CreateIndexCall as n, DropIndexCall as o, affinityStorageClasses as p, CreateTableCall as r, DropTableCall as s, AddColumnCall as t, RecreateTableCall as u, isSqliteOpFactoryCall as v, sqliteDefaultToDdlColumnDefault as x, rebuiltTableName as y };
1554
+ export { sqliteDefaultToDdlColumnDefault as C, renameTableSteps as S, step as T, buildRecreateSummary as _, DropColumnCall as a, isSqliteOpFactoryCall as b, INLINE_AUTOINCREMENT_PRIMARY_KEY as c, RemoveStoredValueCall as d, RenameColumnCall as f, buildRecreatePostchecks as g, affinityStorageClasses as h, DataTransformCall as i, RawSqlCall as l, ReplaceStoredValueCall as m, CreateIndexCall as n, DropIndexCall as o, RenameTableCall as p, CreateTableCall as r, DropTableCall as s, AddColumnCall as t, RecreateTableCall as u, conversionCopyOf as v, sqliteIdentifiersCollide as w, rebuiltTableName as x, indexReplacementCalls as y };
1413
1555
 
1414
- //# sourceMappingURL=op-factory-call-lluKW6u9-D2x8W4qv.mjs.map
1556
+ //# sourceMappingURL=op-factory-call-DADakw8V-yXzHuXlv.mjs.map