@prisma-next/target-sqlite 0.14.0 → 0.15.0-dev.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/codecs-BGeJavlQ.d.mts.map +1 -1
  2. package/dist/codecs.mjs +220 -2
  3. package/dist/codecs.mjs.map +1 -1
  4. package/dist/contract-free.mjs +1 -1
  5. package/dist/{control-tables-7KwMyJ6i.mjs → control-tables-D_o8dKRB.mjs} +2 -2
  6. package/dist/{control-tables-7KwMyJ6i.mjs.map → control-tables-D_o8dKRB.mjs.map} +1 -1
  7. package/dist/control-tables.mjs +1 -1
  8. package/dist/control.d.mts +3 -4
  9. package/dist/control.d.mts.map +1 -1
  10. package/dist/control.mjs +17 -28
  11. package/dist/control.mjs.map +1 -1
  12. package/dist/{descriptor-meta-DxmEeTJ-.mjs → descriptor-meta-D1fap-5t.mjs} +4 -11
  13. package/dist/descriptor-meta-D1fap-5t.mjs.map +1 -0
  14. package/dist/descriptor-meta-runtime-BkXK3OjD.mjs +12 -0
  15. package/dist/descriptor-meta-runtime-BkXK3OjD.mjs.map +1 -0
  16. package/dist/migration.d.mts +2 -2
  17. package/dist/migration.mjs +2 -2
  18. package/dist/native-type-normalizer.mjs +13 -1
  19. package/dist/native-type-normalizer.mjs.map +1 -0
  20. package/dist/{op-factory-call-DmdfD1yd.mjs → op-factory-call-BlMqc5G_.mjs} +134 -117
  21. package/dist/op-factory-call-BlMqc5G_.mjs.map +1 -0
  22. package/dist/op-factory-call.d.mts +2 -2
  23. package/dist/op-factory-call.d.mts.map +1 -1
  24. package/dist/op-factory-call.mjs +1 -1
  25. package/dist/pack.mjs +1 -1
  26. package/dist/planner-CxbLEZHF.mjs +815 -0
  27. package/dist/planner-CxbLEZHF.mjs.map +1 -0
  28. package/dist/{planner-produced-sqlite-migration-0xPEm3R1.mjs → planner-produced-sqlite-migration-D5415zDp.mjs} +46 -17
  29. package/dist/planner-produced-sqlite-migration-D5415zDp.mjs.map +1 -0
  30. package/dist/{planner-produced-sqlite-migration-CpgsY-M9.d.mts → planner-produced-sqlite-migration-DKopa0rd.d.mts} +3 -3
  31. package/dist/{planner-produced-sqlite-migration-CpgsY-M9.d.mts.map → planner-produced-sqlite-migration-DKopa0rd.d.mts.map} +1 -1
  32. package/dist/planner-produced-sqlite-migration.d.mts +1 -1
  33. package/dist/planner-produced-sqlite-migration.mjs +1 -1
  34. package/dist/planner.d.mts +47 -11
  35. package/dist/planner.d.mts.map +1 -1
  36. package/dist/planner.mjs +1 -1
  37. package/dist/runtime.d.mts +6 -4
  38. package/dist/runtime.d.mts.map +1 -1
  39. package/dist/runtime.mjs +3 -3
  40. package/dist/{shared-Dhc8mLK1.d.mts → shared-CaiRyjA0.d.mts} +2 -3
  41. package/dist/{shared-Dhc8mLK1.d.mts.map → shared-CaiRyjA0.d.mts.map} +1 -1
  42. package/dist/{sqlite-contract-serializer--iaDgC8e.mjs → sqlite-contract-view-B8qeCczc.mjs} +35 -10
  43. package/dist/sqlite-contract-view-B8qeCczc.mjs.map +1 -0
  44. package/dist/sqlite-contract-view-J32K82Gi.d.mts +29 -0
  45. package/dist/sqlite-contract-view-J32K82Gi.d.mts.map +1 -0
  46. package/dist/{sqlite-migration-DVfhQwN_.d.mts → sqlite-migration-Dzz9p0Gw.d.mts} +35 -6
  47. package/dist/sqlite-migration-Dzz9p0Gw.d.mts.map +1 -0
  48. package/dist/sqlite-migration-WdRHavfF.mjs +123 -0
  49. package/dist/sqlite-migration-WdRHavfF.mjs.map +1 -0
  50. package/package.json +20 -20
  51. package/src/core/codecs.ts +10 -3
  52. package/src/core/control-target.ts +13 -18
  53. package/src/core/errors.ts +14 -12
  54. package/src/core/migrations/column-ddl-rendering.ts +177 -0
  55. package/src/core/migrations/diff-database-schema.ts +230 -0
  56. package/src/core/migrations/issue-planner.ts +333 -498
  57. package/src/core/migrations/op-factory-call.ts +5 -0
  58. package/src/core/migrations/operations/shared.ts +3 -5
  59. package/src/core/migrations/operations/tables.ts +108 -68
  60. package/src/core/migrations/planner-strategies.ts +119 -137
  61. package/src/core/migrations/planner.ts +118 -30
  62. package/src/core/migrations/render-typescript.ts +42 -15
  63. package/src/core/migrations/runner.ts +4 -10
  64. package/src/core/migrations/sqlite-migration.ts +69 -31
  65. package/src/core/sqlite-contract-serializer.ts +29 -14
  66. package/src/core/sqlite-contract-view.ts +41 -0
  67. package/src/core/sqlite-schema-verifier.ts +6 -3
  68. package/src/core/sqlite-unbound-database.ts +8 -8
  69. package/src/exports/runtime.ts +1 -0
  70. package/dist/codecs-DsC4OGmU.mjs +0 -220
  71. package/dist/codecs-DsC4OGmU.mjs.map +0 -1
  72. package/dist/descriptor-meta-DxmEeTJ-.mjs.map +0 -1
  73. package/dist/native-type-normalizer-CiSyVmMP.mjs +0 -14
  74. package/dist/native-type-normalizer-CiSyVmMP.mjs.map +0 -1
  75. package/dist/op-factory-call-DmdfD1yd.mjs.map +0 -1
  76. package/dist/planner-Ciq8p_dL.mjs +0 -622
  77. package/dist/planner-Ciq8p_dL.mjs.map +0 -1
  78. package/dist/planner-produced-sqlite-migration-0xPEm3R1.mjs.map +0 -1
  79. package/dist/sqlite-contract-serializer--iaDgC8e.mjs.map +0 -1
  80. package/dist/sqlite-migration-A0rwqPOG.mjs +0 -92
  81. package/dist/sqlite-migration-A0rwqPOG.mjs.map +0 -1
  82. package/dist/sqlite-migration-DVfhQwN_.d.mts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"codecs-BGeJavlQ.d.mts","names":[],"sources":["../src/core/codec-helpers.ts","../src/core/codecs.ts","../src/core/registry.ts"],"mappings":";;;;;;;;;KAIY,WAAA;EAAA,UAKI,GAAA,WAAc,WAAA;AAAA,aACjB,WAAS;;;cC+BT,eAAA,SAAwB,SAAA,QAC5B,oBAAA;EAKD,MAAA,CAAO,KAAA,UAAe,IAAA,EAAM,gBAAA,GAAmB,OAAA;EAG/C,MAAA,CAAO,IAAA,UAAc,IAAA,EAAM,gBAAA,GAAmB,OAAA;EAGpD,UAAA,CAAW,KAAA,WAAgB,SAAA;EAG3B,UAAA,CAAW,IAAA,EAAM,SAAA;AAAA;AAAA,cAKN,oBAAA,SAA6B,mBAAA;EAAA,SACtB,OAAA;EAAA,SACA,MAAA;EAAA,SACA,WAAA;EAAA,SACA,YAAA,kCAAY,gBAAA;EACrB,OAAA,KAAY,GAAA,EAAK,oBAAA,KAAyB,eAAA;AAAA;AAAA,cAOxC,gBAAA,0DAAgB,UAAA,CAAA,eAAA;AAAA,cAMhB,kBAAA,SAA2B,SAAA,QAC/B,uBAAA;EAKD,MAAA,CAAO,KAAA,UAAe,IAAA,EAAM,gBAAA,GAAmB,OAAA;EAG/C,MAAA,CAAO,IAAA,UAAc,IAAA,EAAM,gBAAA,GAAmB,OAAA;EAGpD,UAAA,CAAW,KAAA,WAAgB,SAAA;EAG3B,UAAA,CAAW,IAAA,EAAM,SAAA;AAAA;AAAA,cAKN,uBAAA,SAAgC,mBAAA;EAAA,SACzB,OAAA;EAAA,SACA,MAAA;EAAA,SACA,WAAA;EAAA,SACA,YAAA,kCAAY,gBAAA;EACrB,OAAA,KAAY,GAAA,EAAK,oBAAA,KAAyB,kBAAA;AAAA;AAAA,cAOxC,mBAAA,0DAAmB,UAAA,CAAA,kBAAA;AAAA,cAMnB,eAAA,SAAwB,SAAA,QAC5B,oBAAA;EAKD,MAAA,CAAO,KAAA,UAAe,IAAA,EAAM,gBAAA,GAAmB,OAAA;EAG/C,MAAA,CAAO,IAAA,UAAc,IAAA,EAAM,gBAAA,GAAmB,OAAA;EAGpD,UAAA,CAAW,KAAA,WAAgB,SAAA;EAG3B,UAAA,CAAW,IAAA,EAAM,SAAA;AAAA;AAAA,cAKN,oBAAA,SAA6B,mBAAA;EAAA,SACtB,OAAA;EAAA,SACA,MAAA;EAAA,SACA,WAAA;EAAA,SACA,YAAA,kCAAY,gBAAA;EACrB,OAAA,KAAY,GAAA,EAAK,oBAAA,KAAyB,eAAA;AAAA;AAAA,cAOxC,gBAAA,0DAAgB,UAAA,CAAA,eAAA;AAAA,cAMhB,eAAA,SAAwB,SAAA,QAC5B,oBAAA,yBAEP,UAAA,EACA,UAAA;EAEM,MAAA,CAAO,KAAA,EAAO,UAAA,EAAY,IAAA,EAAM,gBAAA,GAAmB,OAAA,CAAQ,UAAA;EAG3D,MAAA,CAAO,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,gBAAA,GAAmB,OAAA,CAAQ,UAAA;EAGhE,UAAA,CAAW,KAAA,EAAO,UAAA,GAAa,SAAA;EAG/B,UAAA,CAAW,IAAA,EAAM,SAAA,GAAY,UAAA;AAAA;AAAA,cAQlB,oBAAA,SAA6B,mBAAA;EAAA,SACtB,OAAA;EAAA,SACA,MAAA;EAAA,SACA,WAAA;EAAA,SACA,YAAA,kCAAY,gBAAA;EACrB,OAAA,KAAY,GAAA,EAAK,oBAAA,KAAyB,eAAA;AAAA;AAAA,cAOxC,gBAAA,0DAAgB,UAAA,CAAA,eAAA;AAAA,cAMhB,mBAAA,SAA4B,SAAA,QAChC,wBAAA,0CAGP,IAAA;EAAA,QAGQ,SAAA;EAOF,MAAA,CAAO,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,gBAAA,GAAmB,OAAA;EAG7C,MAAA,CAAO,IAAA,UAAc,IAAA,EAAM,gBAAA,GAAmB,OAAA,CAAQ,IAAA;EAG5D,UAAA,CAAW,KAAA,EAAO,IAAA,GAAO,SAAA;EAGzB,UAAA,CAAW,IAAA,EAAM,SAAA,GAAY,IAAA;AAAA;AAAA,cAQlB,wBAAA,SAAiC,mBAAA;EAAA,SAC1B,OAAA;EAAA,SACA,MAAA;EAAA,SACA,WAAA;EAAA,SACA,YAAA,kCAAY,gBAAA;EACrB,OAAA,KAAY,GAAA,EAAK,oBAAA,KAAyB,mBAAA;AAAA;AAAA,cAOxC,oBAAA,0DAAoB,UAAA,CAAA,mBAAA;AAAA,cAMpB,eAAA,SAAwB,SAAA,QAC5B,oBAAA,kCAEE,SAAA,EACT,SAAA;EAEM,MAAA,CAAO,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,gBAAA,GAAmB,OAAA;EAGlD,MAAA,CAAO,IAAA,WAAe,SAAA,EAAW,IAAA,EAAM,gBAAA,GAAmB,OAAA,CAAQ,SAAA;EAGxE,UAAA,CAAW,KAAA,EAAO,SAAA,GAAY,SAAA;EAG9B,UAAA,CAAW,IAAA,EAAM,SAAA,GAAY,SAAA;AAAA;AAAA,cAKlB,oBAAA,SAA6B,mBAAA;EAAA,SACtB,OAAA;EAAA,SACA,MAAA;EAAA,SACA,WAAA;EAAA,SACA,YAAA,kCAAY,gBAAA;EACrB,OAAA,KAAY,GAAA,EAAK,oBAAA,KAAyB,eAAA;AAAA;AAAA,cAOxC,gBAAA,0DAAgB,UAAA,CAAA,eAAA;AAAA,cAMhB,iBAAA,SAA0B,SAAA,QAC9B,sBAAA;EAKD,MAAA,CAAO,KAAA,UAAe,IAAA,EAAM,gBAAA,GAAmB,OAAA;EAG/C,MAAA,CAAO,IAAA,mBAAuB,IAAA,EAAM,gBAAA,GAAmB,OAAA;EAG7D,UAAA,CAAW,KAAA,WAAgB,SAAA;EAG3B,UAAA,CAAW,IAAA,EAAM,SAAA;AAAA;AAAA,cAQN,sBAAA,SAA+B,mBAAA;EAAA,SACxB,OAAA;EAAA,SACA,MAAA;EAAA,SACA,WAAA;EAAA,SACA,YAAA,kCAAY,gBAAA;EACrB,OAAA,KAAY,GAAA,EAAK,oBAAA,KAAyB,iBAAA;AAAA;AAAA,cAOxC,kBAAA,0DAAkB,UAAA,CAAA,iBAAA;;;;;;;;cCrTlB,mBAAA,EAAqB,uBACc"}
1
+ {"version":3,"file":"codecs-BGeJavlQ.d.mts","names":[],"sources":["../src/core/codec-helpers.ts","../src/core/codecs.ts","../src/core/registry.ts"],"mappings":"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"}
package/dist/codecs.mjs CHANGED
@@ -1,12 +1,230 @@
1
- import { a as sqliteIntegerColumn, c as sqliteTextColumn, i as sqliteDatetimeColumn, n as sqliteBigintColumn, o as sqliteJsonColumn, r as sqliteBlobColumn, s as sqliteRealColumn, t as codecDescriptors } from "./codecs-DsC4OGmU.mjs";
1
+ import { a as SQLITE_JSON_CODEC_ID, i as SQLITE_INTEGER_CODEC_ID, n as SQLITE_BLOB_CODEC_ID, o as SQLITE_REAL_CODEC_ID, r as SQLITE_DATETIME_CODEC_ID, s as SQLITE_TEXT_CODEC_ID, t as SQLITE_BIGINT_CODEC_ID } from "./codec-ids-DSU7S2Li.mjs";
2
+ import { sqlCharDescriptor, sqlFloatDescriptor, sqlIntDescriptor, sqlVarcharDescriptor } from "@prisma-next/sql-relational-core/ast";
3
+ import { CodecDescriptorImpl, CodecImpl, column, voidParamsSchema } from "@prisma-next/framework-components/codec";
2
4
  import { buildCodecDescriptorRegistry } from "@prisma-next/sql-relational-core/codec-descriptor-registry";
5
+ //#region src/core/codecs.ts
6
+ var SqliteTextCodec = class extends CodecImpl {
7
+ async encode(value, _ctx) {
8
+ return value;
9
+ }
10
+ async decode(wire, _ctx) {
11
+ return wire;
12
+ }
13
+ encodeJson(value) {
14
+ return value;
15
+ }
16
+ decodeJson(json) {
17
+ return json;
18
+ }
19
+ };
20
+ var SqliteTextDescriptor = class extends CodecDescriptorImpl {
21
+ codecId = SQLITE_TEXT_CODEC_ID;
22
+ traits = [
23
+ "equality",
24
+ "order",
25
+ "textual"
26
+ ];
27
+ targetTypes = ["text"];
28
+ paramsSchema = voidParamsSchema;
29
+ factory() {
30
+ return () => new SqliteTextCodec(this);
31
+ }
32
+ };
33
+ const sqliteTextDescriptor = new SqliteTextDescriptor();
34
+ const sqliteTextColumn = () => column(sqliteTextDescriptor.factory(), sqliteTextDescriptor.codecId, void 0, "text");
35
+ var SqliteIntegerCodec = class extends CodecImpl {
36
+ async encode(value, _ctx) {
37
+ return value;
38
+ }
39
+ async decode(wire, _ctx) {
40
+ return wire;
41
+ }
42
+ encodeJson(value) {
43
+ return value;
44
+ }
45
+ decodeJson(json) {
46
+ return json;
47
+ }
48
+ };
49
+ var SqliteIntegerDescriptor = class extends CodecDescriptorImpl {
50
+ codecId = SQLITE_INTEGER_CODEC_ID;
51
+ traits = [
52
+ "equality",
53
+ "order",
54
+ "numeric"
55
+ ];
56
+ targetTypes = ["integer"];
57
+ paramsSchema = voidParamsSchema;
58
+ factory() {
59
+ return () => new SqliteIntegerCodec(this);
60
+ }
61
+ };
62
+ const sqliteIntegerDescriptor = new SqliteIntegerDescriptor();
63
+ const sqliteIntegerColumn = () => column(sqliteIntegerDescriptor.factory(), sqliteIntegerDescriptor.codecId, void 0, "integer");
64
+ var SqliteRealCodec = class extends CodecImpl {
65
+ async encode(value, _ctx) {
66
+ return value;
67
+ }
68
+ async decode(wire, _ctx) {
69
+ return wire;
70
+ }
71
+ encodeJson(value) {
72
+ return value;
73
+ }
74
+ decodeJson(json) {
75
+ return json;
76
+ }
77
+ };
78
+ var SqliteRealDescriptor = class extends CodecDescriptorImpl {
79
+ codecId = SQLITE_REAL_CODEC_ID;
80
+ traits = [
81
+ "equality",
82
+ "order",
83
+ "numeric"
84
+ ];
85
+ targetTypes = ["real"];
86
+ paramsSchema = voidParamsSchema;
87
+ factory() {
88
+ return () => new SqliteRealCodec(this);
89
+ }
90
+ };
91
+ const sqliteRealDescriptor = new SqliteRealDescriptor();
92
+ const sqliteRealColumn = () => column(sqliteRealDescriptor.factory(), sqliteRealDescriptor.codecId, void 0, "real");
93
+ var SqliteBlobCodec = class extends CodecImpl {
94
+ async encode(value, _ctx) {
95
+ return value;
96
+ }
97
+ async decode(wire, _ctx) {
98
+ return wire;
99
+ }
100
+ encodeJson(value) {
101
+ return Buffer.from(value).toString("base64");
102
+ }
103
+ decodeJson(json) {
104
+ if (typeof json !== "string") throw new TypeError("sqlite/blob@1 contract value must be a base64 string");
105
+ return new Uint8Array(Buffer.from(json, "base64"));
106
+ }
107
+ };
108
+ var SqliteBlobDescriptor = class extends CodecDescriptorImpl {
109
+ codecId = SQLITE_BLOB_CODEC_ID;
110
+ traits = ["equality"];
111
+ targetTypes = ["blob"];
112
+ paramsSchema = voidParamsSchema;
113
+ factory() {
114
+ return () => new SqliteBlobCodec(this);
115
+ }
116
+ };
117
+ const sqliteBlobDescriptor = new SqliteBlobDescriptor();
118
+ const sqliteBlobColumn = () => column(sqliteBlobDescriptor.factory(), sqliteBlobDescriptor.codecId, void 0, "blob");
119
+ var SqliteDatetimeCodec = class extends CodecImpl {
120
+ parseDate(value) {
121
+ const date = new Date(value);
122
+ if (Number.isNaN(date.getTime())) throw new TypeError(`sqlite/datetime@1 value must be a valid ISO-8601 string: ${value}`);
123
+ return date;
124
+ }
125
+ async encode(value, _ctx) {
126
+ return value.toISOString();
127
+ }
128
+ async decode(wire, _ctx) {
129
+ return this.parseDate(wire);
130
+ }
131
+ encodeJson(value) {
132
+ return value.toISOString();
133
+ }
134
+ decodeJson(json) {
135
+ if (typeof json !== "string") throw new TypeError("sqlite/datetime@1 contract value must be an ISO-8601 string");
136
+ return this.parseDate(json);
137
+ }
138
+ };
139
+ var SqliteDatetimeDescriptor = class extends CodecDescriptorImpl {
140
+ codecId = SQLITE_DATETIME_CODEC_ID;
141
+ traits = ["equality", "order"];
142
+ targetTypes = ["text"];
143
+ paramsSchema = voidParamsSchema;
144
+ factory() {
145
+ return () => new SqliteDatetimeCodec(this);
146
+ }
147
+ };
148
+ const sqliteDatetimeDescriptor = new SqliteDatetimeDescriptor();
149
+ const sqliteDatetimeColumn = () => column(sqliteDatetimeDescriptor.factory(), sqliteDatetimeDescriptor.codecId, void 0, "text");
150
+ var SqliteJsonCodec = class extends CodecImpl {
151
+ async encode(value, _ctx) {
152
+ return JSON.stringify(value);
153
+ }
154
+ async decode(wire, _ctx) {
155
+ return typeof wire === "string" ? JSON.parse(wire) : wire;
156
+ }
157
+ encodeJson(value) {
158
+ return value;
159
+ }
160
+ decodeJson(json) {
161
+ return json;
162
+ }
163
+ };
164
+ var SqliteJsonDescriptor = class extends CodecDescriptorImpl {
165
+ codecId = SQLITE_JSON_CODEC_ID;
166
+ traits = ["equality"];
167
+ targetTypes = ["text"];
168
+ paramsSchema = voidParamsSchema;
169
+ factory() {
170
+ return () => new SqliteJsonCodec(this);
171
+ }
172
+ };
173
+ const sqliteJsonDescriptor = new SqliteJsonDescriptor();
174
+ const sqliteJsonColumn = () => column(sqliteJsonDescriptor.factory(), sqliteJsonDescriptor.codecId, void 0, "text");
175
+ var SqliteBigintCodec = class extends CodecImpl {
176
+ async encode(value, _ctx) {
177
+ return value;
178
+ }
179
+ async decode(wire, _ctx) {
180
+ return BigInt(wire);
181
+ }
182
+ encodeJson(value) {
183
+ const number = Number(value);
184
+ if (!Number.isSafeInteger(number)) throw new TypeError("sqlite/bigint@1 database JSON value must be a safe integer");
185
+ return number;
186
+ }
187
+ decodeJson(json) {
188
+ if (typeof json !== "number") throw new TypeError("sqlite/bigint@1 database JSON value must be a number");
189
+ if (!Number.isSafeInteger(json)) throw new TypeError("sqlite/bigint@1 database JSON value must be a safe integer");
190
+ return BigInt(json);
191
+ }
192
+ };
193
+ var SqliteBigintDescriptor = class extends CodecDescriptorImpl {
194
+ codecId = SQLITE_BIGINT_CODEC_ID;
195
+ traits = [
196
+ "equality",
197
+ "order",
198
+ "numeric"
199
+ ];
200
+ targetTypes = ["integer"];
201
+ paramsSchema = voidParamsSchema;
202
+ factory() {
203
+ return () => new SqliteBigintCodec(this);
204
+ }
205
+ };
206
+ const sqliteBigintDescriptor = new SqliteBigintDescriptor();
207
+ const sqliteBigintColumn = () => column(sqliteBigintDescriptor.factory(), sqliteBigintDescriptor.codecId, void 0, "integer");
208
+ //#endregion
3
209
  //#region src/core/registry.ts
4
210
  /**
5
211
  * Registry of every codec descriptor shipped by `@prisma-next/target-sqlite`.
6
212
  *
7
213
  * Public consumer surface for the sqlite codec set: the sqlite adapter and any other consumer that needs to enumerate or look up a sqlite codec by id consumes this rather than the raw descriptor array. See ADR 208.
8
214
  */
9
- const sqliteCodecRegistry = buildCodecDescriptorRegistry(codecDescriptors);
215
+ const sqliteCodecRegistry = buildCodecDescriptorRegistry([
216
+ sqlCharDescriptor,
217
+ sqlVarcharDescriptor,
218
+ sqlIntDescriptor,
219
+ sqlFloatDescriptor,
220
+ sqliteTextDescriptor,
221
+ sqliteIntegerDescriptor,
222
+ sqliteRealDescriptor,
223
+ sqliteBlobDescriptor,
224
+ sqliteDatetimeDescriptor,
225
+ sqliteJsonDescriptor,
226
+ sqliteBigintDescriptor
227
+ ]);
10
228
  //#endregion
11
229
  export { sqliteBigintColumn, sqliteBlobColumn, sqliteCodecRegistry, sqliteDatetimeColumn, sqliteIntegerColumn, sqliteJsonColumn, sqliteRealColumn, sqliteTextColumn };
12
230
 
@@ -1 +1 @@
1
- {"version":3,"file":"codecs.mjs","names":[],"sources":["../src/core/registry.ts"],"sourcesContent":["import { buildCodecDescriptorRegistry } from '@prisma-next/sql-relational-core/codec-descriptor-registry';\nimport type { CodecDescriptorRegistry } from '@prisma-next/sql-relational-core/query-lane-context';\nimport { codecDescriptors } from './codecs';\n\n/**\n * Registry of every codec descriptor shipped by `@prisma-next/target-sqlite`.\n *\n * Public consumer surface for the sqlite codec set: the sqlite adapter and any other consumer that needs to enumerate or look up a sqlite codec by id consumes this rather than the raw descriptor array. See ADR 208.\n */\nexport const sqliteCodecRegistry: CodecDescriptorRegistry =\n buildCodecDescriptorRegistry(codecDescriptors);\n"],"mappings":";;;;;;;;AASA,MAAa,sBACX,6BAA6B,gBAAgB"}
1
+ {"version":3,"file":"codecs.mjs","names":[],"sources":["../src/core/codecs.ts","../src/core/registry.ts"],"sourcesContent":["/**\n * Native SQLite target codecs (TML-2357). Mirrors the Postgres codec class form in `packages/3-targets/3-targets/postgres/src/core/codecs.ts`.\n *\n * Each codec ships as three artifacts:\n *\n * 1. A `SqliteXCodec` class extending {@link CodecImpl} that wraps the encode/decode/encodeJson/decodeJson conversions inline. SQLite's runtime conversions are simple enough that there is no shared helper module; the class bodies are the single source of truth. 2. A `SqliteXDescriptor` class extending {@link CodecDescriptorImpl} declaring the codec id, traits, target types, and params schema. SQLite codecs do not carry\n * `meta` (no per-target native-type meta today) and are all non-parameterized. 3. A per-codec column helper (`sqliteXColumn`) that calls `descriptor.factory()` directly and packages the result into a {@link ColumnSpec} via the framework {@link column} packager. The helper is tied to its descriptor with `satisfies ColumnHelperFor` + `ColumnHelperForStrict` (every SQLite codec's resolved type is well-defined).\n *\n * After TML-2357 this is the canonical source of SQLite codec metadata and runtime behaviour — the legacy `mkCodec` / `defineCodec` carriers (and the parallel `byScalar` / `codecDescriptorDefinitions` collection exports) retired with the deletion sweep.\n *\n * Audit: every SQLite codec is non-parameterized and parameter-stateless; `factory()` takes no params (`P = void`) and returns a fresh codec constructed solely from `this`.\n */\n\nimport type { JsonValue } from '@prisma-next/contract/types';\nimport {\n type AnyCodecDescriptor,\n type CodecCallContext,\n CodecDescriptorImpl,\n CodecImpl,\n type CodecInstanceContext,\n type ColumnHelperFor,\n type ColumnHelperForStrict,\n column,\n voidParamsSchema,\n} from '@prisma-next/framework-components/codec';\nimport {\n sqlCharDescriptor,\n sqlFloatDescriptor,\n sqlIntDescriptor,\n sqlVarcharDescriptor,\n} from '@prisma-next/sql-relational-core/ast';\nimport {\n SQLITE_BIGINT_CODEC_ID,\n SQLITE_BLOB_CODEC_ID,\n SQLITE_DATETIME_CODEC_ID,\n SQLITE_INTEGER_CODEC_ID,\n SQLITE_JSON_CODEC_ID,\n SQLITE_REAL_CODEC_ID,\n SQLITE_TEXT_CODEC_ID,\n} from './codec-ids';\n\nexport class SqliteTextCodec extends CodecImpl<\n typeof SQLITE_TEXT_CODEC_ID,\n readonly ['equality', 'order', 'textual'],\n string,\n string\n> {\n async encode(value: string, _ctx: CodecCallContext): Promise<string> {\n return value;\n }\n async decode(wire: string, _ctx: CodecCallContext): Promise<string> {\n return wire;\n }\n encodeJson(value: string): JsonValue {\n return value;\n }\n decodeJson(json: JsonValue): string {\n return json as string;\n }\n}\n\nexport class SqliteTextDescriptor extends CodecDescriptorImpl<void> {\n override readonly codecId = SQLITE_TEXT_CODEC_ID;\n override readonly traits = ['equality', 'order', 'textual'] as const;\n override readonly targetTypes = ['text'] as const;\n override readonly paramsSchema = voidParamsSchema;\n override factory(): (ctx: CodecInstanceContext) => SqliteTextCodec {\n return () => new SqliteTextCodec(this);\n }\n}\n\nexport const sqliteTextDescriptor = new SqliteTextDescriptor();\n\nexport const sqliteTextColumn = () =>\n column(sqliteTextDescriptor.factory(), sqliteTextDescriptor.codecId, undefined, 'text');\n\nsqliteTextColumn satisfies ColumnHelperFor<SqliteTextDescriptor>;\nsqliteTextColumn satisfies ColumnHelperForStrict<SqliteTextDescriptor>;\n\nexport class SqliteIntegerCodec extends CodecImpl<\n typeof SQLITE_INTEGER_CODEC_ID,\n readonly ['equality', 'order', 'numeric'],\n number,\n number\n> {\n async encode(value: number, _ctx: CodecCallContext): Promise<number> {\n return value;\n }\n async decode(wire: number, _ctx: CodecCallContext): Promise<number> {\n return wire;\n }\n encodeJson(value: number): JsonValue {\n return value;\n }\n decodeJson(json: JsonValue): number {\n return json as number;\n }\n}\n\nexport class SqliteIntegerDescriptor extends CodecDescriptorImpl<void> {\n override readonly codecId = SQLITE_INTEGER_CODEC_ID;\n override readonly traits = ['equality', 'order', 'numeric'] as const;\n override readonly targetTypes = ['integer'] as const;\n override readonly paramsSchema = voidParamsSchema;\n override factory(): (ctx: CodecInstanceContext) => SqliteIntegerCodec {\n return () => new SqliteIntegerCodec(this);\n }\n}\n\nexport const sqliteIntegerDescriptor = new SqliteIntegerDescriptor();\n\nexport const sqliteIntegerColumn = () =>\n column(sqliteIntegerDescriptor.factory(), sqliteIntegerDescriptor.codecId, undefined, 'integer');\n\nsqliteIntegerColumn satisfies ColumnHelperFor<SqliteIntegerDescriptor>;\nsqliteIntegerColumn satisfies ColumnHelperForStrict<SqliteIntegerDescriptor>;\n\nexport class SqliteRealCodec extends CodecImpl<\n typeof SQLITE_REAL_CODEC_ID,\n readonly ['equality', 'order', 'numeric'],\n number,\n number\n> {\n async encode(value: number, _ctx: CodecCallContext): Promise<number> {\n return value;\n }\n async decode(wire: number, _ctx: CodecCallContext): Promise<number> {\n return wire;\n }\n encodeJson(value: number): JsonValue {\n return value;\n }\n decodeJson(json: JsonValue): number {\n return json as number;\n }\n}\n\nexport class SqliteRealDescriptor extends CodecDescriptorImpl<void> {\n override readonly codecId = SQLITE_REAL_CODEC_ID;\n override readonly traits = ['equality', 'order', 'numeric'] as const;\n override readonly targetTypes = ['real'] as const;\n override readonly paramsSchema = voidParamsSchema;\n override factory(): (ctx: CodecInstanceContext) => SqliteRealCodec {\n return () => new SqliteRealCodec(this);\n }\n}\n\nexport const sqliteRealDescriptor = new SqliteRealDescriptor();\n\nexport const sqliteRealColumn = () =>\n column(sqliteRealDescriptor.factory(), sqliteRealDescriptor.codecId, undefined, 'real');\n\nsqliteRealColumn satisfies ColumnHelperFor<SqliteRealDescriptor>;\nsqliteRealColumn satisfies ColumnHelperForStrict<SqliteRealDescriptor>;\n\nexport class SqliteBlobCodec extends CodecImpl<\n typeof SQLITE_BLOB_CODEC_ID,\n readonly ['equality'],\n Uint8Array,\n Uint8Array\n> {\n async encode(value: Uint8Array, _ctx: CodecCallContext): Promise<Uint8Array> {\n return value;\n }\n async decode(wire: Uint8Array, _ctx: CodecCallContext): Promise<Uint8Array> {\n return wire;\n }\n encodeJson(value: Uint8Array): JsonValue {\n return Buffer.from(value).toString('base64');\n }\n decodeJson(json: JsonValue): Uint8Array {\n if (typeof json !== 'string') {\n throw new TypeError('sqlite/blob@1 contract value must be a base64 string');\n }\n return new Uint8Array(Buffer.from(json, 'base64'));\n }\n}\n\nexport class SqliteBlobDescriptor extends CodecDescriptorImpl<void> {\n override readonly codecId = SQLITE_BLOB_CODEC_ID;\n override readonly traits = ['equality'] as const;\n override readonly targetTypes = ['blob'] as const;\n override readonly paramsSchema = voidParamsSchema;\n override factory(): (ctx: CodecInstanceContext) => SqliteBlobCodec {\n return () => new SqliteBlobCodec(this);\n }\n}\n\nexport const sqliteBlobDescriptor = new SqliteBlobDescriptor();\n\nexport const sqliteBlobColumn = () =>\n column(sqliteBlobDescriptor.factory(), sqliteBlobDescriptor.codecId, undefined, 'blob');\n\nsqliteBlobColumn satisfies ColumnHelperFor<SqliteBlobDescriptor>;\nsqliteBlobColumn satisfies ColumnHelperForStrict<SqliteBlobDescriptor>;\n\nexport class SqliteDatetimeCodec extends CodecImpl<\n typeof SQLITE_DATETIME_CODEC_ID,\n readonly ['equality', 'order'],\n string,\n Date\n> {\n // Reject `Invalid Date` (NaN-time) at every decode ingress so consumers never receive a Date object whose downstream operations silently produce NaN. Mirrors the stricter ISO-8601 validation on the postgres timestamp helpers.\n private parseDate(value: string): Date {\n const date = new Date(value);\n if (Number.isNaN(date.getTime())) {\n throw new TypeError(`sqlite/datetime@1 value must be a valid ISO-8601 string: ${value}`);\n }\n return date;\n }\n async encode(value: Date, _ctx: CodecCallContext): Promise<string> {\n return value.toISOString();\n }\n async decode(wire: string, _ctx: CodecCallContext): Promise<Date> {\n return this.parseDate(wire);\n }\n encodeJson(value: Date): JsonValue {\n return value.toISOString();\n }\n decodeJson(json: JsonValue): Date {\n if (typeof json !== 'string') {\n throw new TypeError('sqlite/datetime@1 contract value must be an ISO-8601 string');\n }\n return this.parseDate(json);\n }\n}\n\nexport class SqliteDatetimeDescriptor extends CodecDescriptorImpl<void> {\n override readonly codecId = SQLITE_DATETIME_CODEC_ID;\n override readonly traits = ['equality', 'order'] as const;\n override readonly targetTypes = ['text'] as const;\n override readonly paramsSchema = voidParamsSchema;\n override factory(): (ctx: CodecInstanceContext) => SqliteDatetimeCodec {\n return () => new SqliteDatetimeCodec(this);\n }\n}\n\nexport const sqliteDatetimeDescriptor = new SqliteDatetimeDescriptor();\n\nexport const sqliteDatetimeColumn = () =>\n column(sqliteDatetimeDescriptor.factory(), sqliteDatetimeDescriptor.codecId, undefined, 'text');\n\nsqliteDatetimeColumn satisfies ColumnHelperFor<SqliteDatetimeDescriptor>;\nsqliteDatetimeColumn satisfies ColumnHelperForStrict<SqliteDatetimeDescriptor>;\n\nexport class SqliteJsonCodec extends CodecImpl<\n typeof SQLITE_JSON_CODEC_ID,\n readonly ['equality'],\n string | JsonValue,\n JsonValue\n> {\n async encode(value: JsonValue, _ctx: CodecCallContext): Promise<string> {\n return JSON.stringify(value);\n }\n async decode(wire: string | JsonValue, _ctx: CodecCallContext): Promise<JsonValue> {\n return typeof wire === 'string' ? (JSON.parse(wire) as JsonValue) : wire;\n }\n encodeJson(value: JsonValue): JsonValue {\n return value;\n }\n decodeJson(json: JsonValue): JsonValue {\n return json;\n }\n}\n\nexport class SqliteJsonDescriptor extends CodecDescriptorImpl<void> {\n override readonly codecId = SQLITE_JSON_CODEC_ID;\n override readonly traits = ['equality'] as const;\n override readonly targetTypes = ['text'] as const;\n override readonly paramsSchema = voidParamsSchema;\n override factory(): (ctx: CodecInstanceContext) => SqliteJsonCodec {\n return () => new SqliteJsonCodec(this);\n }\n}\n\nexport const sqliteJsonDescriptor = new SqliteJsonDescriptor();\n\nexport const sqliteJsonColumn = () =>\n column(sqliteJsonDescriptor.factory(), sqliteJsonDescriptor.codecId, undefined, 'text');\n\nsqliteJsonColumn satisfies ColumnHelperFor<SqliteJsonDescriptor>;\nsqliteJsonColumn satisfies ColumnHelperForStrict<SqliteJsonDescriptor>;\n\nexport class SqliteBigintCodec extends CodecImpl<\n typeof SQLITE_BIGINT_CODEC_ID,\n readonly ['equality', 'order', 'numeric'],\n number | bigint,\n bigint\n> {\n async encode(value: bigint, _ctx: CodecCallContext): Promise<number | bigint> {\n return value;\n }\n async decode(wire: number | bigint, _ctx: CodecCallContext): Promise<bigint> {\n return BigInt(wire);\n }\n encodeJson(value: bigint): JsonValue {\n const number = Number(value);\n if (!Number.isSafeInteger(number)) {\n throw new TypeError('sqlite/bigint@1 database JSON value must be a safe integer');\n }\n return number;\n }\n decodeJson(json: JsonValue): bigint {\n if (typeof json !== 'number') {\n throw new TypeError('sqlite/bigint@1 database JSON value must be a number');\n }\n if (!Number.isSafeInteger(json)) {\n throw new TypeError('sqlite/bigint@1 database JSON value must be a safe integer');\n }\n return BigInt(json);\n }\n}\n\nexport class SqliteBigintDescriptor extends CodecDescriptorImpl<void> {\n override readonly codecId = SQLITE_BIGINT_CODEC_ID;\n override readonly traits = ['equality', 'order', 'numeric'] as const;\n override readonly targetTypes = ['integer'] as const;\n override readonly paramsSchema = voidParamsSchema;\n override factory(): (ctx: CodecInstanceContext) => SqliteBigintCodec {\n return () => new SqliteBigintCodec(this);\n }\n}\n\nexport const sqliteBigintDescriptor = new SqliteBigintDescriptor();\n\nexport const sqliteBigintColumn = () =>\n column(sqliteBigintDescriptor.factory(), sqliteBigintDescriptor.codecId, undefined, 'integer');\n\nsqliteBigintColumn satisfies ColumnHelperFor<SqliteBigintDescriptor>;\nsqliteBigintColumn satisfies ColumnHelperForStrict<SqliteBigintDescriptor>;\n\nexport const codecDescriptors: readonly AnyCodecDescriptor[] = [\n sqlCharDescriptor,\n sqlVarcharDescriptor,\n sqlIntDescriptor,\n sqlFloatDescriptor,\n sqliteTextDescriptor,\n sqliteIntegerDescriptor,\n sqliteRealDescriptor,\n sqliteBlobDescriptor,\n sqliteDatetimeDescriptor,\n sqliteJsonDescriptor,\n sqliteBigintDescriptor,\n];\n","import { buildCodecDescriptorRegistry } from '@prisma-next/sql-relational-core/codec-descriptor-registry';\nimport type { CodecDescriptorRegistry } from '@prisma-next/sql-relational-core/query-lane-context';\nimport { codecDescriptors } from './codecs';\n\n/**\n * Registry of every codec descriptor shipped by `@prisma-next/target-sqlite`.\n *\n * Public consumer surface for the sqlite codec set: the sqlite adapter and any other consumer that needs to enumerate or look up a sqlite codec by id consumes this rather than the raw descriptor array. See ADR 208.\n */\nexport const sqliteCodecRegistry: CodecDescriptorRegistry =\n buildCodecDescriptorRegistry(codecDescriptors);\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { a as SQLITE_JSON_CODEC_ID, i as SQLITE_INTEGER_CODEC_ID, r as SQLITE_DATETIME_CODEC_ID, s as SQLITE_TEXT_CODEC_ID } from "./codec-ids-DSU7S2Li.mjs";
2
2
  import { i as tableExistsAst, n as columnExistsAst, r as indexExistsAst, t as createTable } from "./ddl-DrtjQMFK.mjs";
3
3
  import { TableSource } from "@prisma-next/sql-relational-core/ast";
4
- import { col, fn, lit, table } from "@prisma-next/sql-relational-core/contract-free";
5
4
  import { APP_SPACE_ID } from "@prisma-next/framework-components/control";
5
+ import { col, fn, lit, table } from "@prisma-next/sql-relational-core/contract-free";
6
6
  //#region src/contract-free/columns.ts
7
7
  const desc = (codecId, opts) => ({
8
8
  codecId,
@@ -5,8 +5,8 @@ const LEDGER_TABLE_NAME = "_prisma_ledger";
5
5
  * Control tables the runner creates/manages. The planner must not drop these
6
6
  * when reconciling "extra" tables against the contract.
7
7
  */
8
- const CONTROL_TABLE_NAMES = new Set([MARKER_TABLE_NAME, LEDGER_TABLE_NAME]);
8
+ const CONTROL_TABLE_NAMES = /* @__PURE__ */ new Set([MARKER_TABLE_NAME, LEDGER_TABLE_NAME]);
9
9
  //#endregion
10
10
  export { LEDGER_TABLE_NAME as n, MARKER_TABLE_NAME as r, CONTROL_TABLE_NAMES as t };
11
11
 
12
- //# sourceMappingURL=control-tables-7KwMyJ6i.mjs.map
12
+ //# sourceMappingURL=control-tables-D_o8dKRB.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"control-tables-7KwMyJ6i.mjs","names":[],"sources":["../src/core/control-tables.ts"],"sourcesContent":["export const MARKER_TABLE_NAME = '_prisma_marker';\nexport const LEDGER_TABLE_NAME = '_prisma_ledger';\n\n/**\n * Control tables the runner creates/manages. The planner must not drop these\n * when reconciling \"extra\" tables against the contract.\n */\nexport const CONTROL_TABLE_NAMES: ReadonlySet<string> = new Set([\n MARKER_TABLE_NAME,\n LEDGER_TABLE_NAME,\n]);\n"],"mappings":";AAAA,MAAa,oBAAoB;AACjC,MAAa,oBAAoB;;;;;AAMjC,MAAa,sBAA2C,IAAI,IAAI,CAC9D,mBACA,iBACF,CAAC"}
1
+ {"version":3,"file":"control-tables-D_o8dKRB.mjs","names":[],"sources":["../src/core/control-tables.ts"],"sourcesContent":["export const MARKER_TABLE_NAME = '_prisma_marker';\nexport const LEDGER_TABLE_NAME = '_prisma_ledger';\n\n/**\n * Control tables the runner creates/manages. The planner must not drop these\n * when reconciling \"extra\" tables against the contract.\n */\nexport const CONTROL_TABLE_NAMES: ReadonlySet<string> = new Set([\n MARKER_TABLE_NAME,\n LEDGER_TABLE_NAME,\n]);\n"],"mappings":";AAAA,MAAa,oBAAoB;AACjC,MAAa,oBAAoB;;;;;AAMjC,MAAa,sCAA2C,IAAI,IAAI,CAC9D,mBACA,iBACF,CAAC"}
@@ -1,2 +1,2 @@
1
- import { n as LEDGER_TABLE_NAME, r as MARKER_TABLE_NAME, t as CONTROL_TABLE_NAMES } from "./control-tables-7KwMyJ6i.mjs";
1
+ import { n as LEDGER_TABLE_NAME, r as MARKER_TABLE_NAME, t as CONTROL_TABLE_NAMES } from "./control-tables-D_o8dKRB.mjs";
2
2
  export { CONTROL_TABLE_NAMES, LEDGER_TABLE_NAME, MARKER_TABLE_NAME };
@@ -1,7 +1,6 @@
1
1
  import { t as SqlitePlanTargetDetails } from "./planner-target-details-xR6UfIcz.mjs";
2
+ import { SqlNamespaceBase, SqlNamespaceEntries, SqlNamespaceInput, StorageTable } from "@prisma-next/sql-contract/types";
2
3
  import { SqlControlTargetDescriptor } from "@prisma-next/family-sql/control";
3
- import { SqlNamespaceEntries, SqlNamespaceTablesInput, StorageTable } from "@prisma-next/sql-contract/types";
4
- import { NamespaceBase } from "@prisma-next/framework-components/ir";
5
4
 
6
5
  //#region src/core/control-target.d.ts
7
6
  declare const sqliteControlTargetDescriptor: SqlControlTargetDescriptor<'sqlite', SqlitePlanTargetDetails>;
@@ -16,7 +15,7 @@ type SqliteDatabaseInput = {
16
15
  * `entries.table` and unqualified `qualifyTable()` emission for runtime
17
16
  * SQL rendering.
18
17
  */
19
- declare class SqliteDatabase extends NamespaceBase {
18
+ declare class SqliteDatabase extends SqlNamespaceBase {
20
19
  readonly kind: string;
21
20
  readonly id: string;
22
21
  readonly entries: SqlNamespaceEntries;
@@ -56,7 +55,7 @@ declare class SqliteUnboundDatabase extends SqliteDatabase {
56
55
  * user-declared SQLite namespaces, so this throw is a structural
57
56
  * safety net rather than a user-facing surface.
58
57
  */
59
- declare function sqliteCreateNamespace(input: SqlNamespaceTablesInput): SqliteDatabase | SqliteUnboundDatabase;
58
+ declare function sqliteCreateNamespace(input: SqlNamespaceInput): SqliteDatabase | SqliteUnboundDatabase;
60
59
  //#endregion
61
60
  export { type SqlitePlanTargetDetails, SqliteUnboundDatabase, sqliteControlTargetDescriptor as default, sqliteCreateNamespace };
62
61
  //# sourceMappingURL=control.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"control.d.mts","names":[],"sources":["../src/core/control-target.ts","../src/core/sqlite-unbound-database.ts"],"mappings":";;;;;;cAgCM,6BAAA,EAA+B,0BAA0B,WAAW,uBAAA;;;KClB9D,mBAAA;EAAA,SACD,EAAA;EAAA,SACA,OAAA,EAAS,mBAAmB;AAAA;ADH4C;;;;AAmBc;AAnBd,cCatE,cAAA,SAAuB,aAAA;EAAA,SACjB,IAAA;EAAA,SAER,EAAA;EAAA,SACA,OAAA,EAAS,mBAAA;cAEN,KAAA,EAAO,mBAAA;EAAA,IAyBf,KAAA,IAAS,QAAA,CAAS,MAAA,SAAe,YAAA;EAIrC,SAAA;EAIA,YAAA,CAAa,SAAA;AAAA;;;AAjDwB;AAUvC;;;;;;;;;;;;;;cA6Da,qBAAA,SAA8B,cAAc;EAAA,gBACvC,QAAA,EAAU,qBAAA;EAAA,QAEnB,WAAA;AAAA;;;;;;;;;AAzBuB;AAsBhC;iBAmCgB,qBAAA,CACd,KAAA,EAAO,uBAAA,GACN,cAAA,GAAiB,qBAAA"}
1
+ {"version":3,"file":"control.d.mts","names":[],"sources":["../src/core/control-target.ts","../src/core/sqlite-unbound-database.ts"],"mappings":";;;;;cAyBM,6BAAA,EAA+B,0BAA0B,WAAW,uBAAA;;;KCX9D,mBAAA;EAAA,SACD,EAAA;EAAA,SACA,OAAA,EAAS,mBAAmB;AAAA;ADA4C;;;;AASc;AATd,cCUtE,cAAA,SAAuB,gBAAA;EAAA,SACjB,IAAA;EAAA,SAER,EAAA;EAAA,SACA,OAAA,EAAS,mBAAA;cAEN,KAAA,EAAO,mBAAA;EAAA,IAyBf,KAAA,IAAS,QAAA,CAAS,MAAA,SAAe,YAAA;EAIrC,SAAA;EAIA,YAAA,CAAa,SAAA;AAAA;;;AAjDwB;AAUvC;;;;;;;;;;;;;;cA6Da,qBAAA,SAA8B,cAAc;EAAA,gBACvC,QAAA,EAAU,qBAAA;EAAA,QAEnB,WAAA;AAAA;;;;;;;;;AAzBuB;AAsBhC;iBAmCgB,qBAAA,CACd,KAAA,EAAO,iBAAA,GACN,cAAA,GAAiB,qBAAA"}
package/dist/control.mjs CHANGED
@@ -1,17 +1,14 @@
1
- import { t as sqliteTargetDescriptorMeta } from "./descriptor-meta-DxmEeTJ-.mjs";
2
- import { t as parseSqliteDefault } from "./default-normalizer-DuoHj9-O.mjs";
3
- import { t as normalizeSqliteNativeType } from "./native-type-normalizer-CiSyVmMP.mjs";
4
- import { r as MARKER_TABLE_NAME } from "./control-tables-7KwMyJ6i.mjs";
5
- import { h as renderDefaultLiteral } from "./op-factory-call-DmdfD1yd.mjs";
6
- import { n as createSqliteMigrationPlanner } from "./planner-Ciq8p_dL.mjs";
7
- import { n as SqliteUnboundDatabase, r as sqliteCreateNamespace, t as SqliteContractSerializer } from "./sqlite-contract-serializer--iaDgC8e.mjs";
8
- import { contractToSchemaIR, runnerFailure, runnerSuccess } from "@prisma-next/family-sql/control";
1
+ import { t as sqliteTargetDescriptorMeta } from "./descriptor-meta-D1fap-5t.mjs";
2
+ import { a as verifySqliteDatabaseSchema, i as sqliteContractToSchema, n as createSqliteMigrationPlanner, r as diffSqliteSchema } from "./planner-CxbLEZHF.mjs";
3
+ import { r as MARKER_TABLE_NAME } from "./control-tables-D_o8dKRB.mjs";
4
+ import { i as sqliteCreateNamespace, n as SqliteContractSerializer, r as SqliteUnboundDatabase } from "./sqlite-contract-view-B8qeCczc.mjs";
9
5
  import { SqlStorage } from "@prisma-next/sql-contract/types";
10
- import { verifySqlSchema } from "@prisma-next/family-sql/schema-verify";
6
+ import { relationalNodeEntityKind, relationalNodeGranularity } from "@prisma-next/sql-schema-ir/types";
7
+ import { runnerFailure, runnerSuccess } from "@prisma-next/family-sql/control";
8
+ import { APP_SPACE_ID } from "@prisma-next/framework-components/control";
11
9
  import { blindCast } from "@prisma-next/utils/casts";
12
10
  import { ifDefined } from "@prisma-next/utils/defined";
13
11
  import { notOk, ok, okVoid } from "@prisma-next/utils/result";
14
- import { APP_SPACE_ID } from "@prisma-next/framework-components/control";
15
12
  import { SqlSchemaVerifierBase } from "@prisma-next/family-sql/ir";
16
13
  //#region src/core/migrations/runner.ts
17
14
  function createSqliteMigrationRunner(family) {
@@ -60,19 +57,16 @@ var SqliteMigrationRunner = class {
60
57
  executedOperations = applyResult.value.executedOperations;
61
58
  }
62
59
  if (space === APP_SPACE_ID) {
63
- const schemaIR = await this.family.introspect({
60
+ const schemaNode = await this.family.introspect({
64
61
  driver,
65
62
  contract: options.destinationContract
66
63
  });
67
- const schemaVerifyResult = verifySqlSchema({
64
+ const schemaVerifyResult = verifySqliteDatabaseSchema({
68
65
  contract: options.destinationContract,
69
- schema: schemaIR,
66
+ actualSchema: schemaNode,
70
67
  strict: options.strictVerification ?? true,
71
- context: options.context ?? {},
72
68
  typeMetadataRegistry: this.family.typeMetadataRegistry,
73
- frameworkComponents: options.frameworkComponents,
74
- normalizeDefault: parseSqliteDefault,
75
- normalizeNativeType: normalizeSqliteNativeType
69
+ frameworkComponents: options.frameworkComponents
76
70
  });
77
71
  if (!schemaVerifyResult.ok) return runnerFailure("SCHEMA_VERIFY_FAILED", schemaVerifyResult.summary, {
78
72
  why: "The resulting database schema does not satisfy the destination contract.",
@@ -397,17 +391,15 @@ var SqliteSchemaVerifier = class extends SqlSchemaVerifierBase {
397
391
  function isSqlContract(contract) {
398
392
  return contract === null || contract.storage instanceof SqlStorage;
399
393
  }
400
- function sqliteRenderDefault(def, _column) {
401
- if (def.kind === "function") {
402
- if (def.expression === "now()") return "datetime('now')";
403
- return def.expression;
404
- }
405
- return renderDefaultLiteral(def.value);
406
- }
407
394
  const sqliteControlTargetDescriptor = {
408
395
  ...sqliteTargetDescriptorMeta,
409
396
  contractSerializer: new SqliteContractSerializer(),
410
397
  schemaVerifier: new SqliteSchemaVerifier(),
398
+ diffSchema(input) {
399
+ return diffSqliteSchema(input);
400
+ },
401
+ classifySubjectGranularity: relationalNodeGranularity,
402
+ classifyEntityKind: relationalNodeEntityKind,
411
403
  migrations: {
412
404
  createPlanner(adapter) {
413
405
  return createSqliteMigrationPlanner(adapter);
@@ -417,10 +409,7 @@ const sqliteControlTargetDescriptor = {
417
409
  },
418
410
  contractToSchema(contract, _frameworkComponents) {
419
411
  if (!isSqlContract(contract)) throw new Error("sqliteControlTargetDescriptor.contractToSchema received a non-SQL contract; expected Contract<SqlStorage>");
420
- return contractToSchemaIR(contract, {
421
- annotationNamespace: "sqlite",
422
- renderDefault: sqliteRenderDefault
423
- });
412
+ return sqliteContractToSchema(contract);
424
413
  }
425
414
  },
426
415
  create() {