@rudderjs/database 1.3.1 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/native/adapter.d.ts +7 -4
- package/dist/native/adapter.d.ts.map +1 -1
- package/dist/native/adapter.js +19 -5
- package/dist/native/adapter.js.map +1 -1
- package/dist/native/index.d.ts +2 -0
- package/dist/native/index.d.ts.map +1 -1
- package/dist/native/index.js +2 -0
- package/dist/native/index.js.map +1 -1
- package/dist/native/intent-guard.d.ts +7 -0
- package/dist/native/intent-guard.d.ts.map +1 -0
- package/dist/native/intent-guard.js +42 -0
- package/dist/native/intent-guard.js.map +1 -0
- package/dist/native/schema/intent-replay.d.ts +27 -0
- package/dist/native/schema/intent-replay.d.ts.map +1 -0
- package/dist/native/schema/intent-replay.js +173 -0
- package/dist/native/schema/intent-replay.js.map +1 -0
- package/dist/native/schema/schema-types.d.ts +8 -5
- package/dist/native/schema/schema-types.d.ts.map +1 -1
- package/dist/native/schema/schema-types.js +9 -7
- package/dist/native/schema/schema-types.js.map +1 -1
- package/dist/native/schema/types-generator.d.ts +32 -7
- package/dist/native/schema/types-generator.d.ts.map +1 -1
- package/dist/native/schema/types-generator.js +43 -9
- package/dist/native/schema/types-generator.js.map +1 -1
- package/package.json +1 -1
package/dist/native/adapter.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type { Driver, Row } from './driver.js';
|
|
|
4
4
|
import type { ReadReplicaPicker } from './replica-picker.js';
|
|
5
5
|
import { SchemaBuilder } from './schema/schema-builder.js';
|
|
6
6
|
import type { ModelCastInfo } from './schema/schema-types.js';
|
|
7
|
+
import type { TableIntent } from './schema/intent-replay.js';
|
|
7
8
|
/** Supported native drivers. SQLite (better-sqlite3), Postgres (porsager
|
|
8
9
|
* `postgres`), and MySQL (`mysql2`). */
|
|
9
10
|
export type NativeDriverName = 'sqlite' | 'pg' | 'mysql';
|
|
@@ -153,11 +154,13 @@ export declare class NativeAdapter implements OrmAdapter {
|
|
|
153
154
|
/**
|
|
154
155
|
* Generate `.rudder/types/models.d.ts` from THIS connection's live
|
|
155
156
|
* schema (GATE 7-types) — introspect every table, fold in each model's
|
|
156
|
-
* declared `casts
|
|
157
|
-
*
|
|
158
|
-
*
|
|
157
|
+
* declared `casts` plus the blueprint-declared `intent` recovered by
|
|
158
|
+
* migration replay (`cast > intent > storage type`), and (re)write the
|
|
159
|
+
* registry. Node-only; the fs-writing orchestrator is lazily imported so the
|
|
160
|
+
* adapter's static eval graph stays import-light. Returns the written path +
|
|
161
|
+
* table count for the CLI to report.
|
|
159
162
|
*/
|
|
160
|
-
generateSchemaTypes(cwd: string, models?: ModelCastInfo[]): Promise<{
|
|
163
|
+
generateSchemaTypes(cwd: string, models?: ModelCastInfo[], intent?: TableIntent): Promise<{
|
|
161
164
|
path: string;
|
|
162
165
|
tableCount: number;
|
|
163
166
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/native/adapter.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC/I,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAI3C,OAAO,KAAK,EAAE,MAAM,EAAyB,GAAG,EAAqB,MAAM,aAAa,CAAA;AAExF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAM5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/native/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/native/adapter.js
CHANGED
|
@@ -20,6 +20,7 @@ import { PostgresDriver } from './drivers/postgres.js';
|
|
|
20
20
|
import { MysqlDriver } from './drivers/mysql.js';
|
|
21
21
|
import { SchemaBuilder } from './schema/schema-builder.js';
|
|
22
22
|
import { readColumns } from './schema/introspect.js';
|
|
23
|
+
import { isIntentReplayActive, refuseIntentReplayStatement } from './intent-guard.js';
|
|
23
24
|
const NATIVE_CLIENT_CACHE_KEY = '__rudderjs_native_client__';
|
|
24
25
|
function nativeClientCache() {
|
|
25
26
|
const g = globalThis;
|
|
@@ -66,6 +67,13 @@ function cacheNativeClient(cacheKey, entry) {
|
|
|
66
67
|
* reported (Laravel parity — `QueryExecuted` doesn't fire on a query error).
|
|
67
68
|
* `affectingExecute` is forwarded only when the underlying driver implements it,
|
|
68
69
|
* so capability checks (`typeof ex.affectingExecute === 'function'`) still hold.
|
|
70
|
+
*
|
|
71
|
+
* This wrapper is also the single funnel EVERY NativeAdapter statement flows
|
|
72
|
+
* through (write executor, read replicas, transaction scopes), so it hosts the
|
|
73
|
+
* blueprint-intent replay guard: while `collectBlueprintIntent` re-runs applied
|
|
74
|
+
* migrations' `up()` bodies to recover declared column types, a runtime
|
|
75
|
+
* statement (a `DB.statement` backfill, a Model write) must throw rather than
|
|
76
|
+
* re-execute. See `./intent-guard.ts`.
|
|
69
77
|
*/
|
|
70
78
|
function instrumentExecutor(exec, listeners, connection,
|
|
71
79
|
/** Read/write-split side tag for query events. Only set when the connection
|
|
@@ -87,6 +95,8 @@ target) {
|
|
|
87
95
|
};
|
|
88
96
|
const wrapped = {
|
|
89
97
|
async execute(sql, bindings) {
|
|
98
|
+
if (isIntentReplayActive())
|
|
99
|
+
refuseIntentReplayStatement();
|
|
90
100
|
const startedAt = performance.now();
|
|
91
101
|
const rows = await exec.execute(sql, bindings);
|
|
92
102
|
emit(sql, bindings, startedAt);
|
|
@@ -97,6 +107,8 @@ target) {
|
|
|
97
107
|
if (typeof affecting.affectingExecute === 'function') {
|
|
98
108
|
const affectingExecute = affecting.affectingExecute.bind(exec);
|
|
99
109
|
wrapped.affectingExecute = async (sql, bindings) => {
|
|
110
|
+
if (isIntentReplayActive())
|
|
111
|
+
refuseIntentReplayStatement();
|
|
100
112
|
const startedAt = performance.now();
|
|
101
113
|
const result = await affectingExecute(sql, bindings);
|
|
102
114
|
emit(sql, bindings, startedAt);
|
|
@@ -350,13 +362,15 @@ export class NativeAdapter {
|
|
|
350
362
|
/**
|
|
351
363
|
* Generate `.rudder/types/models.d.ts` from THIS connection's live
|
|
352
364
|
* schema (GATE 7-types) — introspect every table, fold in each model's
|
|
353
|
-
* declared `casts
|
|
354
|
-
*
|
|
355
|
-
*
|
|
365
|
+
* declared `casts` plus the blueprint-declared `intent` recovered by
|
|
366
|
+
* migration replay (`cast > intent > storage type`), and (re)write the
|
|
367
|
+
* registry. Node-only; the fs-writing orchestrator is lazily imported so the
|
|
368
|
+
* adapter's static eval graph stays import-light. Returns the written path +
|
|
369
|
+
* table count for the CLI to report.
|
|
356
370
|
*/
|
|
357
|
-
async generateSchemaTypes(cwd, models = []) {
|
|
371
|
+
async generateSchemaTypes(cwd, models = [], intent) {
|
|
358
372
|
const { generateSchemaTypes } = await import('./schema/schema-types.js');
|
|
359
|
-
return generateSchemaTypes(this.executor, this.dialect, cwd, models);
|
|
373
|
+
return generateSchemaTypes(this.executor, this.dialect, cwd, models, intent);
|
|
360
374
|
}
|
|
361
375
|
/**
|
|
362
376
|
* Database overview for `rudder db:show` — dialect, version, database name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/native/adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/native/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/native/index.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ export * from './schema/introspect.js';
|
|
|
21
21
|
export * from './schema/inspect.js';
|
|
22
22
|
export * from './schema/types-generator.js';
|
|
23
23
|
export * from './schema/schema-types.js';
|
|
24
|
+
export * from './schema/intent-replay.js';
|
|
25
|
+
export * from './intent-guard.js';
|
|
24
26
|
export * from './schema/migration.js';
|
|
25
27
|
export * from './schema/schema-facade.js';
|
|
26
28
|
export * from './schema/migrator.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AA4BA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAGlC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AA4BA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAGlC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,2BAA2B,CAAA;AACzC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA"}
|
package/dist/native/index.js
CHANGED
|
@@ -49,6 +49,8 @@ export * from './schema/introspect.js';
|
|
|
49
49
|
export * from './schema/inspect.js';
|
|
50
50
|
export * from './schema/types-generator.js';
|
|
51
51
|
export * from './schema/schema-types.js';
|
|
52
|
+
export * from './schema/intent-replay.js';
|
|
53
|
+
export * from './intent-guard.js';
|
|
52
54
|
export * from './schema/migration.js';
|
|
53
55
|
export * from './schema/schema-facade.js';
|
|
54
56
|
export * from './schema/migrator.js';
|
package/dist/native/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,uEAAuE;AACvE,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,SAAS;AACT,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,0EAA0E;AAC1E,iFAAiF;AACjF,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,wEAAwE;AACxE,qEAAqE;AAErE,eAAe;AACf,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAElC,8EAA8E;AAC9E,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,uEAAuE;AACvE,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,SAAS;AACT,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,0EAA0E;AAC1E,iFAAiF;AACjF,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,wEAAwE;AACxE,qEAAqE;AAErE,eAAe;AACf,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAElC,8EAA8E;AAC9E,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,2BAA2B,CAAA;AACzC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Whether a blueprint-intent replay is currently in progress. */
|
|
2
|
+
export declare function isIntentReplayActive(): boolean;
|
|
3
|
+
/** Throw the replay-window error a runtime statement must surface. */
|
|
4
|
+
export declare function refuseIntentReplayStatement(): never;
|
|
5
|
+
/** Run `fn` with the replay guard armed, disarming afterwards even on throw. */
|
|
6
|
+
export declare function withIntentReplayGuard<T>(fn: () => Promise<T>): Promise<T>;
|
|
7
|
+
//# sourceMappingURL=intent-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent-guard.d.ts","sourceRoot":"","sources":["../../src/native/intent-guard.ts"],"names":[],"mappings":"AAuBA,kEAAkE;AAClE,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,sEAAsE;AACtE,wBAAgB,2BAA2B,IAAI,KAAK,CAQnD;AAED,gFAAgF;AAChF,wBAAsB,qBAAqB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAO/E"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// ─── Blueprint-intent replay guard ─────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// While `collectBlueprintIntent` replays applied migration files to recover
|
|
4
|
+
// their declared column types (see `schema/intent-replay.ts`), a migration's
|
|
5
|
+
// `up()` may contain RUNTIME statements alongside its `Schema` calls — a
|
|
6
|
+
// `DB.statement(...)` data backfill, a Model write. Re-executing those on
|
|
7
|
+
// every `schema:types` run would corrupt data, so the replay window arms this
|
|
8
|
+
// guard and `instrumentExecutor` (the single funnel every NativeAdapter
|
|
9
|
+
// statement flows through — write executor, read replicas, and transaction
|
|
10
|
+
// scopes alike) refuses with {@link NativeOrmError} `NATIVE_INTENT_REPLAY`.
|
|
11
|
+
// The replayer catches the throw per-migration and simply skips the rest of
|
|
12
|
+
// that migration's intent — types fall back to the introspected storage
|
|
13
|
+
// mapping, never to a wrong answer.
|
|
14
|
+
//
|
|
15
|
+
// Module-level state is safe here: the replay runs serially inside a CLI
|
|
16
|
+
// process (`migrate` / `schema:types`), where nothing else is querying. The
|
|
17
|
+
// orm shim (`@rudderjs/orm/native`) re-exports this same module instance, so
|
|
18
|
+
// both import paths share one flag.
|
|
19
|
+
import { NativeOrmError } from './errors.js';
|
|
20
|
+
let active = false;
|
|
21
|
+
/** Whether a blueprint-intent replay is currently in progress. */
|
|
22
|
+
export function isIntentReplayActive() {
|
|
23
|
+
return active;
|
|
24
|
+
}
|
|
25
|
+
/** Throw the replay-window error a runtime statement must surface. */
|
|
26
|
+
export function refuseIntentReplayStatement() {
|
|
27
|
+
throw new NativeOrmError('NATIVE_INTENT_REPLAY', `[RudderJS ORM native] A database statement was attempted during blueprint-intent replay. ` +
|
|
28
|
+
`Migration up() bodies are re-run (against a recording schema only) to recover declared column ` +
|
|
29
|
+
`types for schema:types — runtime statements (DB.*, Model queries) are never re-executed. ` +
|
|
30
|
+
`This migration's remaining intent is skipped; its columns keep their introspected types.`);
|
|
31
|
+
}
|
|
32
|
+
/** Run `fn` with the replay guard armed, disarming afterwards even on throw. */
|
|
33
|
+
export async function withIntentReplayGuard(fn) {
|
|
34
|
+
active = true;
|
|
35
|
+
try {
|
|
36
|
+
return await fn();
|
|
37
|
+
}
|
|
38
|
+
finally {
|
|
39
|
+
active = false;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=intent-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent-guard.js","sourceRoot":"","sources":["../../src/native/intent-guard.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,yEAAyE;AACzE,0EAA0E;AAC1E,8EAA8E;AAC9E,wEAAwE;AACxE,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,wEAAwE;AACxE,oCAAoC;AACpC,EAAE;AACF,yEAAyE;AACzE,4EAA4E;AAC5E,6EAA6E;AAC7E,oCAAoC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,IAAI,MAAM,GAAG,KAAK,CAAA;AAElB,kEAAkE;AAClE,MAAM,UAAU,oBAAoB;IAClC,OAAO,MAAM,CAAA;AACf,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,2BAA2B;IACzC,MAAM,IAAI,cAAc,CACtB,sBAAsB,EACtB,2FAA2F;QAC3F,gGAAgG;QAChG,2FAA2F;QAC3F,0FAA0F,CAC3F,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAI,EAAoB;IACjE,MAAM,GAAG,IAAI,CAAA;IACb,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAA;IACnB,CAAC;YAAS,CAAC;QACT,MAAM,GAAG,KAAK,CAAA;IAChB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ColumnType } from './column.js';
|
|
2
|
+
import type { LoadedMigration } from './migrator.js';
|
|
3
|
+
/** Declared column types per table, recovered from blueprint replay:
|
|
4
|
+
* table → column → the blueprint's {@link ColumnType}. */
|
|
5
|
+
export type TableIntent = Map<string, Map<string, ColumnType>>;
|
|
6
|
+
/** Outcome of {@link collectBlueprintIntent}. */
|
|
7
|
+
export interface BlueprintIntentResult {
|
|
8
|
+
intent: TableIntent;
|
|
9
|
+
/** Migrations whose `up()` threw during replay (runtime statements, schema
|
|
10
|
+
* reads the ledger couldn't satisfy, …). Their intent recorded before the
|
|
11
|
+
* throw is kept — an applied migration's earlier ops did run historically —
|
|
12
|
+
* but the remainder is skipped. */
|
|
13
|
+
skipped: string[];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Replay the APPLIED migrations (filtered + ordered by `applied`, the
|
|
17
|
+
* `migrations` state table's apply order) and return the declared column
|
|
18
|
+
* types per table. Applied migrations whose files are gone are skipped
|
|
19
|
+
* silently (same tolerance as `migrate:status`); an `up()` that throws —
|
|
20
|
+
* the guard refusing a runtime statement, usually — lands in `skipped` and
|
|
21
|
+
* contributes only the intent it recorded before the throw.
|
|
22
|
+
*
|
|
23
|
+
* Binds with `pretend: true` so `Schema.connection()` refuses during replay
|
|
24
|
+
* (DDL on a second connection would execute for real).
|
|
25
|
+
*/
|
|
26
|
+
export declare function collectBlueprintIntent(migrations: LoadedMigration[], applied: string[]): Promise<BlueprintIntentResult>;
|
|
27
|
+
//# sourceMappingURL=intent-replay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent-replay.d.ts","sourceRoot":"","sources":["../../../src/native/schema/intent-replay.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AASpD;2DAC2D;AAC3D,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;AAE9D,iDAAiD;AACjD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAG,WAAW,CAAA;IACpB;;;wCAGoC;IACpC,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAyHD;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,eAAe,EAAE,EAC7B,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,qBAAqB,CAAC,CAmBhC"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
// ─── Blueprint-intent replay (schema:types fallback layer) ──
|
|
2
|
+
//
|
|
3
|
+
// On SQLite a `t.boolean()` / `t.json()` column introspects as its storage
|
|
4
|
+
// affinity (INTEGER / TEXT), so the typed registry only got the right TS type
|
|
5
|
+
// when the model declared a matching cast. The migration files already carry
|
|
6
|
+
// the INTENT — this module recovers it at generation time by REPLAYING the
|
|
7
|
+
// applied migrations' `up()` bodies against a recording schema builder that
|
|
8
|
+
// applies each blueprint to an in-memory ledger instead of executing DDL.
|
|
9
|
+
//
|
|
10
|
+
// Why replay (vs persisting intent at migrate time, or a sidecar file per
|
|
11
|
+
// migration): the migration files are already the committed source of truth,
|
|
12
|
+
// so replay needs no state-table schema change, no extra artifacts to commit,
|
|
13
|
+
// and — decisively — works retroactively for every existing app whose
|
|
14
|
+
// migrations ran before this feature shipped. See the plan doc
|
|
15
|
+
// `docs/plans/2026-06-05-schema-types-cast-folding-needs-import-time-registration.md`.
|
|
16
|
+
//
|
|
17
|
+
// Replay is bounded to APPLIED migrations (the `migrations` state table, in
|
|
18
|
+
// apply order) so a pending migration's intent — e.g. a future `.change()` —
|
|
19
|
+
// can never claim a type ahead of the live schema. It is also PURE:
|
|
20
|
+
// `hasTable` / `hasColumn` answer from the ledger (mirroring the historical
|
|
21
|
+
// schema state at that point in the sequence), and the guard in
|
|
22
|
+
// `../intent-guard.ts` makes any runtime statement inside an `up()` (a
|
|
23
|
+
// `DB.statement` backfill, a Model write) throw instead of re-executing —
|
|
24
|
+
// the replayer catches per-migration and skips the rest of that migration's
|
|
25
|
+
// intent. Intent is a fallback REFINEMENT only (cast > intent > introspected
|
|
26
|
+
// storage type): a column missing from the ledger just keeps its storage type.
|
|
27
|
+
import { Blueprint } from './blueprint.js';
|
|
28
|
+
import { AlterBlueprint } from './alter-blueprint.js';
|
|
29
|
+
import { SchemaBuilder } from './schema-builder.js';
|
|
30
|
+
import { withSchema } from './schema-facade.js';
|
|
31
|
+
import { SqliteDialect } from '../dialect.js';
|
|
32
|
+
import { withIntentReplayGuard, refuseIntentReplayStatement } from '../intent-guard.js';
|
|
33
|
+
/** The in-memory schema the replay maintains. Apply order mirrors the real
|
|
34
|
+
* migrator's, so the ledger at step N is the declared schema as of step N. */
|
|
35
|
+
class IntentLedger {
|
|
36
|
+
tables = new Map();
|
|
37
|
+
table(name) {
|
|
38
|
+
let cols = this.tables.get(name);
|
|
39
|
+
if (!cols) {
|
|
40
|
+
cols = new Map();
|
|
41
|
+
this.tables.set(name, cols);
|
|
42
|
+
}
|
|
43
|
+
return cols;
|
|
44
|
+
}
|
|
45
|
+
/** CREATE TABLE — replaces any prior entry (drop + recreate). */
|
|
46
|
+
create(name, columns) {
|
|
47
|
+
const cols = new Map();
|
|
48
|
+
for (const c of columns)
|
|
49
|
+
cols.set(c.name, c.type);
|
|
50
|
+
this.tables.set(name, cols);
|
|
51
|
+
}
|
|
52
|
+
/** ADD COLUMN / `.change()` — both upsert the declared type. */
|
|
53
|
+
setColumn(table, column, type) {
|
|
54
|
+
this.table(table).set(column, type);
|
|
55
|
+
}
|
|
56
|
+
dropColumn(table, column) {
|
|
57
|
+
this.tables.get(table)?.delete(column);
|
|
58
|
+
}
|
|
59
|
+
renameColumn(table, from, to) {
|
|
60
|
+
const cols = this.tables.get(table);
|
|
61
|
+
if (!cols)
|
|
62
|
+
return;
|
|
63
|
+
const type = cols.get(from);
|
|
64
|
+
if (type === undefined)
|
|
65
|
+
return;
|
|
66
|
+
cols.delete(from);
|
|
67
|
+
cols.set(to, type);
|
|
68
|
+
}
|
|
69
|
+
renameTable(from, to) {
|
|
70
|
+
const cols = this.tables.get(from);
|
|
71
|
+
if (!cols)
|
|
72
|
+
return;
|
|
73
|
+
this.tables.delete(from);
|
|
74
|
+
this.tables.set(to, cols);
|
|
75
|
+
}
|
|
76
|
+
dropTable(name) {
|
|
77
|
+
this.tables.delete(name);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/** A throwing executor: nothing in the replay path may reach one — a call
|
|
81
|
+
* means an un-overridden {@link SchemaBuilder} method slipped through. */
|
|
82
|
+
const inertExecutor = {
|
|
83
|
+
execute() {
|
|
84
|
+
return refuseIntentReplayStatement();
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* A {@link SchemaBuilder} that applies blueprints to an {@link IntentLedger}
|
|
89
|
+
* instead of compiling/executing DDL. Subclasses the real builder (the
|
|
90
|
+
* `Schema` facade types against the class, whose private fields make it
|
|
91
|
+
* nominal) over an inert executor + a dummy dialect — every public method is
|
|
92
|
+
* overridden, so neither is ever consulted.
|
|
93
|
+
*/
|
|
94
|
+
class IntentSchemaBuilder extends SchemaBuilder {
|
|
95
|
+
ledger;
|
|
96
|
+
constructor(ledger) {
|
|
97
|
+
super(inertExecutor, new SqliteDialect());
|
|
98
|
+
this.ledger = ledger;
|
|
99
|
+
}
|
|
100
|
+
async create(table, build) {
|
|
101
|
+
const blueprint = new Blueprint(table);
|
|
102
|
+
build(blueprint);
|
|
103
|
+
this.ledger.create(table, blueprint.columns);
|
|
104
|
+
}
|
|
105
|
+
async table(table, build) {
|
|
106
|
+
const blueprint = new AlterBlueprint(table);
|
|
107
|
+
build(blueprint);
|
|
108
|
+
// Order mirrors the real ALTER: adds/changes, renames, then drops.
|
|
109
|
+
for (const col of blueprint.columns)
|
|
110
|
+
this.ledger.setColumn(table, col.name, col.type);
|
|
111
|
+
for (const { from, to } of blueprint.renamedColumns)
|
|
112
|
+
this.ledger.renameColumn(table, from, to);
|
|
113
|
+
for (const name of blueprint.droppedColumns)
|
|
114
|
+
this.ledger.dropColumn(table, name);
|
|
115
|
+
}
|
|
116
|
+
async rename(from, to) {
|
|
117
|
+
this.ledger.renameTable(from, to);
|
|
118
|
+
}
|
|
119
|
+
async drop(table) {
|
|
120
|
+
this.ledger.dropTable(table);
|
|
121
|
+
}
|
|
122
|
+
async dropIfExists(table) {
|
|
123
|
+
this.ledger.dropTable(table);
|
|
124
|
+
}
|
|
125
|
+
async allTables() {
|
|
126
|
+
return [...this.ledger.tables.keys()];
|
|
127
|
+
}
|
|
128
|
+
async dropAllTables() {
|
|
129
|
+
this.ledger.tables.clear();
|
|
130
|
+
}
|
|
131
|
+
/** Answer from the ledger — the declared schema as of this replay step. A
|
|
132
|
+
* table created outside blueprints (raw DDL) reads as absent; an `up()`
|
|
133
|
+
* branching on that may diverge from its historical run, which at worst
|
|
134
|
+
* loses intent for the affected columns (they keep their storage types). */
|
|
135
|
+
async hasTable(table) {
|
|
136
|
+
return this.ledger.tables.has(table);
|
|
137
|
+
}
|
|
138
|
+
async hasColumn(table, column) {
|
|
139
|
+
return this.ledger.tables.get(table)?.has(column) ?? false;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Replay the APPLIED migrations (filtered + ordered by `applied`, the
|
|
144
|
+
* `migrations` state table's apply order) and return the declared column
|
|
145
|
+
* types per table. Applied migrations whose files are gone are skipped
|
|
146
|
+
* silently (same tolerance as `migrate:status`); an `up()` that throws —
|
|
147
|
+
* the guard refusing a runtime statement, usually — lands in `skipped` and
|
|
148
|
+
* contributes only the intent it recorded before the throw.
|
|
149
|
+
*
|
|
150
|
+
* Binds with `pretend: true` so `Schema.connection()` refuses during replay
|
|
151
|
+
* (DDL on a second connection would execute for real).
|
|
152
|
+
*/
|
|
153
|
+
export async function collectBlueprintIntent(migrations, applied) {
|
|
154
|
+
const ledger = new IntentLedger();
|
|
155
|
+
const builder = new IntentSchemaBuilder(ledger);
|
|
156
|
+
const byName = new Map(migrations.map((m) => [m.name, m.migration]));
|
|
157
|
+
const skipped = [];
|
|
158
|
+
await withIntentReplayGuard(async () => {
|
|
159
|
+
for (const name of applied) {
|
|
160
|
+
const migration = byName.get(name);
|
|
161
|
+
if (!migration)
|
|
162
|
+
continue;
|
|
163
|
+
try {
|
|
164
|
+
await withSchema(builder, () => migration.up(), { pretend: true });
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
skipped.push(name);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
return { intent: ledger.tables, skipped };
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=intent-replay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent-replay.js","sourceRoot":"","sources":["../../../src/native/schema/intent-replay.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Executor } from '../driver.js';
|
|
2
2
|
import type { Dialect } from '../dialect.js';
|
|
3
3
|
import { type TableTypes } from './types-generator.js';
|
|
4
|
+
import type { TableIntent } from './intent-replay.js';
|
|
4
5
|
/** A model's contribution to type resolution: its table name + declared casts. */
|
|
5
6
|
export interface ModelCastInfo {
|
|
6
7
|
table: string;
|
|
@@ -8,11 +9,13 @@ export interface ModelCastInfo {
|
|
|
8
9
|
}
|
|
9
10
|
/**
|
|
10
11
|
* Introspect every user table and build the {@link TableTypes} for each, folding
|
|
11
|
-
* in `casts` for any table a model declares them on (matched by table name)
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* in `casts` for any table a model declares them on (matched by table name) and
|
|
13
|
+
* the blueprint-declared `intent` recovered by migration replay (fallback for
|
|
14
|
+
* cast-less columns — `cast > intent > storage type`). Pure-ish: only reads the
|
|
15
|
+
* DB, returns data — the file write is separate so this is unit-testable
|
|
16
|
+
* against an in-memory connection.
|
|
14
17
|
*/
|
|
15
|
-
export declare function collectSchemaTypes(executor: Executor, dialect: Dialect, models?: ModelCastInfo[]): Promise<TableTypes[]>;
|
|
18
|
+
export declare function collectSchemaTypes(executor: Executor, dialect: Dialect, models?: ModelCastInfo[], intent?: TableIntent): Promise<TableTypes[]>;
|
|
16
19
|
/**
|
|
17
20
|
* Default output path for the generated registry, relative to an app root.
|
|
18
21
|
*
|
|
@@ -27,7 +30,7 @@ export declare function registryDtsPath(cwd: string): string;
|
|
|
27
30
|
* `.rudder/types/models.d.ts`. Returns the written path + table count
|
|
28
31
|
* for the CLI to report. Creating the dir is idempotent.
|
|
29
32
|
*/
|
|
30
|
-
export declare function generateSchemaTypes(executor: Executor, dialect: Dialect, cwd: string, models?: ModelCastInfo[]): Promise<{
|
|
33
|
+
export declare function generateSchemaTypes(executor: Executor, dialect: Dialect, cwd: string, models?: ModelCastInfo[], intent?: TableIntent): Promise<{
|
|
31
34
|
path: string;
|
|
32
35
|
tableCount: number;
|
|
33
36
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-types.d.ts","sourceRoot":"","sources":["../../../src/native/schema/schema-types.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,OAAO,EAA+E,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"schema-types.d.ts","sourceRoot":"","sources":["../../../src/native/schema/schema-types.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,OAAO,EAA+E,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACnI,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC9B;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,aAAa,EAAO,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,EAAE,CAAC,CAgBvB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAQD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,aAAa,EAAO,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAe/C"}
|
|
@@ -12,11 +12,13 @@ import { readTables, readColumns } from './introspect.js';
|
|
|
12
12
|
import { buildTableTypes, emitRegistryDts, sqliteTypeToTs, pgTypeToTs, mysqlTypeToTs } from './types-generator.js';
|
|
13
13
|
/**
|
|
14
14
|
* Introspect every user table and build the {@link TableTypes} for each, folding
|
|
15
|
-
* in `casts` for any table a model declares them on (matched by table name)
|
|
16
|
-
*
|
|
17
|
-
*
|
|
15
|
+
* in `casts` for any table a model declares them on (matched by table name) and
|
|
16
|
+
* the blueprint-declared `intent` recovered by migration replay (fallback for
|
|
17
|
+
* cast-less columns — `cast > intent > storage type`). Pure-ish: only reads the
|
|
18
|
+
* DB, returns data — the file write is separate so this is unit-testable
|
|
19
|
+
* against an in-memory connection.
|
|
18
20
|
*/
|
|
19
|
-
export async function collectSchemaTypes(executor, dialect, models = []) {
|
|
21
|
+
export async function collectSchemaTypes(executor, dialect, models = [], intent) {
|
|
20
22
|
const castsByTable = new Map(models.map((m) => [m.table, m.casts]));
|
|
21
23
|
// Per-dialect storage→TS mapper: Postgres / MySQL data types differ from
|
|
22
24
|
// SQLite's fuzzy affinities (e.g. `jsonb`, `timestamptz`, `numeric`/`decimal`
|
|
@@ -28,7 +30,7 @@ export async function collectSchemaTypes(executor, dialect, models = []) {
|
|
|
28
30
|
const out = [];
|
|
29
31
|
for (const table of tables) {
|
|
30
32
|
const columns = await readColumns(executor, dialect, table);
|
|
31
|
-
out.push(buildTableTypes(table, columns, castsByTable.get(table) ?? {}, typeToTs));
|
|
33
|
+
out.push(buildTableTypes(table, columns, castsByTable.get(table) ?? {}, typeToTs, intent?.get(table)));
|
|
32
34
|
}
|
|
33
35
|
return out;
|
|
34
36
|
}
|
|
@@ -53,8 +55,8 @@ function legacyRegistryDtsPath(cwd) {
|
|
|
53
55
|
* `.rudder/types/models.d.ts`. Returns the written path + table count
|
|
54
56
|
* for the CLI to report. Creating the dir is idempotent.
|
|
55
57
|
*/
|
|
56
|
-
export async function generateSchemaTypes(executor, dialect, cwd, models = []) {
|
|
57
|
-
const tables = await collectSchemaTypes(executor, dialect, models);
|
|
58
|
+
export async function generateSchemaTypes(executor, dialect, cwd, models = [], intent) {
|
|
59
|
+
const tables = await collectSchemaTypes(executor, dialect, models, intent);
|
|
58
60
|
const contents = emitRegistryDts(tables);
|
|
59
61
|
const path = registryDtsPath(cwd);
|
|
60
62
|
await mkdir(dirname(path), { recursive: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-types.js","sourceRoot":"","sources":["../../../src/native/schema/schema-types.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,4EAA4E;AAC5E,+EAA+E;AAC/E,wEAAwE;AACxE,6EAA6E;AAC7E,+EAA+E;AAC/E,oCAAoC;AAEpC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAGzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAmB,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"schema-types.js","sourceRoot":"","sources":["../../../src/native/schema/schema-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { RawColumn } from './introspect.js';
|
|
2
|
+
import type { ColumnType } from './column.js';
|
|
2
3
|
import type { BuiltInCast } from '@rudderjs/contracts';
|
|
3
4
|
/** A column's resolved TypeScript type plus whether it's optional on read. */
|
|
4
5
|
export interface GeneratedColumnType {
|
|
@@ -54,15 +55,39 @@ export declare function mysqlTypeToTs(declared: string): string;
|
|
|
54
55
|
*/
|
|
55
56
|
export declare function castToTs(cast: BuiltInCast | string): string | null;
|
|
56
57
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
58
|
+
* The TS type a blueprint's declared {@link ColumnType} refines a CAST-LESS
|
|
59
|
+
* column to — the middle layer of the precedence `cast > blueprint intent >
|
|
60
|
+
* introspected storage type`. Returns null for types where the storage mapping
|
|
61
|
+
* is already faithful (or where folding the intent would lie about runtime):
|
|
62
|
+
*
|
|
63
|
+
* - `boolean` → `boolean`: writes are safe everywhere (every driver binds
|
|
64
|
+
* `true`/`false`, the sqlite driver maps them to 1/0); reads return `0`/`1`
|
|
65
|
+
* on sqlite (and mysql `tinyint(1)`) without a `boolean` cast — truthiness
|
|
66
|
+
* behaves identically, but strict `=== true` comparisons need the cast.
|
|
67
|
+
* This is the deliberate 90%-case trade-off the plan doc's option 3 names.
|
|
68
|
+
* - `json`/`jsonb` → `unknown`: SOUND on every dialect — sqlite reads the raw
|
|
69
|
+
* TEXT (a string ⊆ unknown; a `json` cast gets parsed reads), and the
|
|
70
|
+
* binding funnel JSON-stringifies object/array writes, which `unknown`
|
|
71
|
+
* admits and the affinity type `string` wrongly rejected.
|
|
72
|
+
* - date family (`date`/`dateTime`/`timestamp`/`time`) → null, deliberately:
|
|
73
|
+
* on sqlite a cast-less column reads as TEXT *and* better-sqlite3 REJECTS a
|
|
74
|
+
* `Date` binding — emitting `Date` would make tsc bless writes that throw
|
|
75
|
+
* at runtime. The `date`/`datetime` cast (which parses reads AND serializes
|
|
76
|
+
* writes) is the correct tool; pg/mysql introspection already yields `Date`.
|
|
77
|
+
*/
|
|
78
|
+
export declare function blueprintIntentToTs(type: ColumnType): string | null;
|
|
79
|
+
/**
|
|
80
|
+
* Resolve one column's TS type — `cast > blueprint intent > storage mapping` —
|
|
81
|
+
* and widen nullable columns with `| null`. The primary key and NOT NULL
|
|
59
82
|
* columns stay non-null. `typeToTs` is the per-dialect storage mapper
|
|
60
|
-
* ({@link sqliteTypeToTs} by default; {@link pgTypeToTs} for Postgres)
|
|
83
|
+
* ({@link sqliteTypeToTs} by default; {@link pgTypeToTs} for Postgres);
|
|
84
|
+
* `intent` is the column's blueprint-declared type when the migration replay
|
|
85
|
+
* recovered one (see `intent-replay.ts`).
|
|
61
86
|
*/
|
|
62
|
-
export declare function resolveColumnType(col: RawColumn, casts: Record<string, string>, typeToTs?: (declared: string) => string): GeneratedColumnType;
|
|
63
|
-
/** Build one table's {@link TableTypes} from its columns + casts
|
|
64
|
-
* given per-dialect storage mapper (defaults to
|
|
65
|
-
export declare function buildTableTypes(table: string, columns: RawColumn[], casts?: Record<string, string>, typeToTs?: (declared: string) => string): TableTypes;
|
|
87
|
+
export declare function resolveColumnType(col: RawColumn, casts: Record<string, string>, typeToTs?: (declared: string) => string, intent?: ReadonlyMap<string, ColumnType>): GeneratedColumnType;
|
|
88
|
+
/** Build one table's {@link TableTypes} from its columns + casts + blueprint
|
|
89
|
+
* intent, using the given per-dialect storage mapper (defaults to SQLite). */
|
|
90
|
+
export declare function buildTableTypes(table: string, columns: RawColumn[], casts?: Record<string, string>, typeToTs?: (declared: string) => string, intent?: ReadonlyMap<string, ColumnType>): TableTypes;
|
|
66
91
|
/**
|
|
67
92
|
* Emit the full `registry.d.ts` contents: a `declare module '@rudderjs/orm'`
|
|
68
93
|
* augmentation extending `SchemaRegistry` with one entry per table. Tables are
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-generator.d.ts","sourceRoot":"","sources":["../../../src/native/schema/types-generator.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,8EAA8E;AAC9E,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,EAAE,EAAQ,MAAM,CAAA;IAChB,qDAAqD;IACrD,IAAI,EAAM,MAAM,CAAA;CACjB;AAED,gEAAgE;AAChE,MAAM,WAAW,UAAU;IACzB,KAAK,EAAI,MAAM,CAAA;IACf,OAAO,EAAE,mBAAmB,EAAE,CAAA;CAC/B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAsBnD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyBtD;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBlE;AAED
|
|
1
|
+
{"version":3,"file":"types-generator.d.ts","sourceRoot":"","sources":["../../../src/native/schema/types-generator.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,8EAA8E;AAC9E,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,EAAE,EAAQ,MAAM,CAAA;IAChB,qDAAqD;IACrD,IAAI,EAAM,MAAM,CAAA;CACjB;AAED,gEAAgE;AAChE,MAAM,WAAW,UAAU;IACzB,KAAK,EAAI,MAAM,CAAA;IACf,OAAO,EAAE,mBAAmB,EAAE,CAAA;CAC/B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAsBnD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyBtD;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBlE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAOnE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,QAAQ,GAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAuB,EACvD,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,GACvC,mBAAmB,CAUrB;AAED;+EAC+E;AAC/E,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,SAAS,EAAE,EACpB,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAClC,QAAQ,GAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAuB,EACvD,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,GACvC,UAAU,CAEZ;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAiB5D"}
|
|
@@ -135,22 +135,56 @@ export function castToTs(cast) {
|
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
137
|
/**
|
|
138
|
-
*
|
|
139
|
-
*
|
|
138
|
+
* The TS type a blueprint's declared {@link ColumnType} refines a CAST-LESS
|
|
139
|
+
* column to — the middle layer of the precedence `cast > blueprint intent >
|
|
140
|
+
* introspected storage type`. Returns null for types where the storage mapping
|
|
141
|
+
* is already faithful (or where folding the intent would lie about runtime):
|
|
142
|
+
*
|
|
143
|
+
* - `boolean` → `boolean`: writes are safe everywhere (every driver binds
|
|
144
|
+
* `true`/`false`, the sqlite driver maps them to 1/0); reads return `0`/`1`
|
|
145
|
+
* on sqlite (and mysql `tinyint(1)`) without a `boolean` cast — truthiness
|
|
146
|
+
* behaves identically, but strict `=== true` comparisons need the cast.
|
|
147
|
+
* This is the deliberate 90%-case trade-off the plan doc's option 3 names.
|
|
148
|
+
* - `json`/`jsonb` → `unknown`: SOUND on every dialect — sqlite reads the raw
|
|
149
|
+
* TEXT (a string ⊆ unknown; a `json` cast gets parsed reads), and the
|
|
150
|
+
* binding funnel JSON-stringifies object/array writes, which `unknown`
|
|
151
|
+
* admits and the affinity type `string` wrongly rejected.
|
|
152
|
+
* - date family (`date`/`dateTime`/`timestamp`/`time`) → null, deliberately:
|
|
153
|
+
* on sqlite a cast-less column reads as TEXT *and* better-sqlite3 REJECTS a
|
|
154
|
+
* `Date` binding — emitting `Date` would make tsc bless writes that throw
|
|
155
|
+
* at runtime. The `date`/`datetime` cast (which parses reads AND serializes
|
|
156
|
+
* writes) is the correct tool; pg/mysql introspection already yields `Date`.
|
|
157
|
+
*/
|
|
158
|
+
export function blueprintIntentToTs(type) {
|
|
159
|
+
switch (type) {
|
|
160
|
+
case 'boolean': return 'boolean';
|
|
161
|
+
case 'json':
|
|
162
|
+
case 'jsonb': return 'unknown';
|
|
163
|
+
default: return null;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Resolve one column's TS type — `cast > blueprint intent > storage mapping` —
|
|
168
|
+
* and widen nullable columns with `| null`. The primary key and NOT NULL
|
|
140
169
|
* columns stay non-null. `typeToTs` is the per-dialect storage mapper
|
|
141
|
-
* ({@link sqliteTypeToTs} by default; {@link pgTypeToTs} for Postgres)
|
|
170
|
+
* ({@link sqliteTypeToTs} by default; {@link pgTypeToTs} for Postgres);
|
|
171
|
+
* `intent` is the column's blueprint-declared type when the migration replay
|
|
172
|
+
* recovered one (see `intent-replay.ts`).
|
|
142
173
|
*/
|
|
143
|
-
export function resolveColumnType(col, casts, typeToTs = sqliteTypeToTs) {
|
|
174
|
+
export function resolveColumnType(col, casts, typeToTs = sqliteTypeToTs, intent) {
|
|
144
175
|
const declaredCast = casts[col.name];
|
|
145
|
-
const
|
|
176
|
+
const intentType = intent?.get(col.name);
|
|
177
|
+
const base = (declaredCast && castToTs(declaredCast)) ||
|
|
178
|
+
(intentType && blueprintIntentToTs(intentType)) ||
|
|
179
|
+
typeToTs(col.type);
|
|
146
180
|
// A column is nullable on read when it permits NULL and isn't the PK.
|
|
147
181
|
const nullable = !col.notNull && col.pk === 0;
|
|
148
182
|
return { name: col.name, ts: nullable ? `${base} | null` : base };
|
|
149
183
|
}
|
|
150
|
-
/** Build one table's {@link TableTypes} from its columns + casts
|
|
151
|
-
* given per-dialect storage mapper (defaults to
|
|
152
|
-
export function buildTableTypes(table, columns, casts = {}, typeToTs = sqliteTypeToTs) {
|
|
153
|
-
return { table, columns: columns.map((c) => resolveColumnType(c, casts, typeToTs)) };
|
|
184
|
+
/** Build one table's {@link TableTypes} from its columns + casts + blueprint
|
|
185
|
+
* intent, using the given per-dialect storage mapper (defaults to SQLite). */
|
|
186
|
+
export function buildTableTypes(table, columns, casts = {}, typeToTs = sqliteTypeToTs, intent) {
|
|
187
|
+
return { table, columns: columns.map((c) => resolveColumnType(c, casts, typeToTs, intent)) };
|
|
154
188
|
}
|
|
155
189
|
/**
|
|
156
190
|
* Emit the full `registry.d.ts` contents: a `declare module '@rudderjs/orm'`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-generator.js","sourceRoot":"","sources":["../../../src/native/schema/types-generator.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,+EAA+E;AAC/E,iFAAiF;AACjF,2EAA2E;AAC3E,mFAAmF;AACnF,2EAA2E;AAC3E,gFAAgF;AAChF,mBAAmB;AACnB,EAAE;AACF,4EAA4E;AAC5E,gFAAgF;AAChF,4EAA4E;AAC5E,0BAA0B;
|
|
1
|
+
{"version":3,"file":"types-generator.js","sourceRoot":"","sources":["../../../src/native/schema/types-generator.ts"],"names":[],"mappings":"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"}
|