@syncular/core 0.0.6-159 → 0.0.6-165
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/blobs.d.ts +14 -7
- package/dist/blobs.d.ts.map +1 -1
- package/dist/blobs.js.map +1 -1
- package/dist/column-codecs.d.ts +3 -0
- package/dist/column-codecs.d.ts.map +1 -1
- package/dist/column-codecs.js +24 -0
- package/dist/column-codecs.js.map +1 -1
- package/dist/kysely-column-codecs.d.ts.map +1 -1
- package/dist/kysely-column-codecs.js +15 -38
- package/dist/kysely-column-codecs.js.map +1 -1
- package/dist/scopes/index.d.ts +5 -0
- package/dist/scopes/index.d.ts.map +1 -1
- package/dist/scopes/index.js +27 -0
- package/dist/scopes/index.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/table-registry.d.ts +10 -0
- package/dist/utils/table-registry.d.ts.map +1 -0
- package/dist/utils/table-registry.js +54 -0
- package/dist/utils/table-registry.js.map +1 -0
- package/dist/utils/url.d.ts +3 -0
- package/dist/utils/url.d.ts.map +1 -0
- package/dist/utils/url.js +20 -0
- package/dist/utils/url.js.map +1 -0
- package/package.json +1 -1
- package/src/blobs.ts +24 -7
- package/src/column-codecs.ts +29 -0
- package/src/kysely-column-codecs.ts +24 -45
- package/src/scopes/index.ts +42 -0
- package/src/types.ts +8 -2
- package/src/utils/index.ts +2 -0
- package/src/utils/table-registry.ts +67 -0
- package/src/utils/url.ts +29 -0
package/dist/blobs.d.ts
CHANGED
|
@@ -46,6 +46,8 @@ export interface BlobTransport {
|
|
|
46
46
|
export interface BlobSignUploadOptions {
|
|
47
47
|
/** SHA-256 hash (for naming and checksum validation) */
|
|
48
48
|
hash: string;
|
|
49
|
+
/** Optional tenant/partition namespace for storage lookups */
|
|
50
|
+
partitionId?: string;
|
|
49
51
|
/** Content size in bytes */
|
|
50
52
|
size: number;
|
|
51
53
|
/** MIME type */
|
|
@@ -70,9 +72,14 @@ export interface BlobSignedUpload {
|
|
|
70
72
|
export interface BlobSignDownloadOptions {
|
|
71
73
|
/** SHA-256 hash */
|
|
72
74
|
hash: string;
|
|
75
|
+
/** Optional tenant/partition namespace for storage lookups */
|
|
76
|
+
partitionId?: string;
|
|
73
77
|
/** URL expiration in seconds */
|
|
74
78
|
expiresIn: number;
|
|
75
79
|
}
|
|
80
|
+
export interface BlobStoragePartitionOptions {
|
|
81
|
+
partitionId?: string;
|
|
82
|
+
}
|
|
76
83
|
/**
|
|
77
84
|
* Adapter for blob storage backends (S3, R2, custom).
|
|
78
85
|
* Implementations handle actual storage; the sync server orchestrates.
|
|
@@ -92,16 +99,16 @@ export interface BlobStorageAdapter {
|
|
|
92
99
|
/**
|
|
93
100
|
* Check if a blob exists in storage.
|
|
94
101
|
*/
|
|
95
|
-
exists(hash: string): Promise<boolean>;
|
|
102
|
+
exists(hash: string, options?: BlobStoragePartitionOptions): Promise<boolean>;
|
|
96
103
|
/**
|
|
97
104
|
* Delete a blob (for garbage collection).
|
|
98
105
|
*/
|
|
99
|
-
delete(hash: string): Promise<void>;
|
|
106
|
+
delete(hash: string, options?: BlobStoragePartitionOptions): Promise<void>;
|
|
100
107
|
/**
|
|
101
108
|
* Get blob metadata from storage (optional).
|
|
102
109
|
* Used to verify uploads completed successfully.
|
|
103
110
|
*/
|
|
104
|
-
getMetadata?(hash: string): Promise<{
|
|
111
|
+
getMetadata?(hash: string, options?: BlobStoragePartitionOptions): Promise<{
|
|
105
112
|
size: number;
|
|
106
113
|
mimeType?: string;
|
|
107
114
|
} | null>;
|
|
@@ -109,20 +116,20 @@ export interface BlobStorageAdapter {
|
|
|
109
116
|
* Store blob data directly (for adapters that support direct storage).
|
|
110
117
|
* Used for snapshot chunks and other internal data.
|
|
111
118
|
*/
|
|
112
|
-
put?(hash: string, data: Uint8Array, metadata?: Record<string, unknown
|
|
119
|
+
put?(hash: string, data: Uint8Array, metadata?: Record<string, unknown>, options?: BlobStoragePartitionOptions): Promise<void>;
|
|
113
120
|
/**
|
|
114
121
|
* Store blob data directly from a stream.
|
|
115
122
|
* Preferred for large payloads to avoid full buffering in memory.
|
|
116
123
|
*/
|
|
117
|
-
putStream?(hash: string, stream: ReadableStream<Uint8Array>, metadata?: Record<string, unknown
|
|
124
|
+
putStream?(hash: string, stream: ReadableStream<Uint8Array>, metadata?: Record<string, unknown>, options?: BlobStoragePartitionOptions): Promise<void>;
|
|
118
125
|
/**
|
|
119
126
|
* Get blob data directly (for adapters that support direct retrieval).
|
|
120
127
|
*/
|
|
121
|
-
get?(hash: string): Promise<Uint8Array | null>;
|
|
128
|
+
get?(hash: string, options?: BlobStoragePartitionOptions): Promise<Uint8Array | null>;
|
|
122
129
|
/**
|
|
123
130
|
* Get blob data directly as a stream (for adapters that support stream retrieval).
|
|
124
131
|
*/
|
|
125
|
-
getStream?(hash: string): Promise<ReadableStream<Uint8Array> | null>;
|
|
132
|
+
getStream?(hash: string, options?: BlobStoragePartitionOptions): Promise<ReadableStream<Uint8Array> | null>;
|
|
126
133
|
}
|
|
127
134
|
/**
|
|
128
135
|
* Create a BlobRef from upload metadata.
|
package/dist/blobs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blobs.d.ts","sourceRoot":"","sources":["../src/blobs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAM/C;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC;QACV,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;QAC9B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACxC,CAAC,CAAC;IAEH;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEvE;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QACpC,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;CACJ;AAMD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB;IAClB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEtE;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhE;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"blobs.d.ts","sourceRoot":"","sources":["../src/blobs.ts"],"names":[],"mappings":"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"}
|
package/dist/blobs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blobs.js","sourceRoot":"","sources":["../src/blobs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"blobs.js","sourceRoot":"","sources":["../src/blobs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwKH,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAM7B,EAAW;IACV,MAAM,GAAG,GAAY;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;IACF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AAAA,CACZ;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAiB;IACzD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;AAAA,CAC1B;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe,EAAU;IACtD,OAAO,UAAU,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;AAAA,CAC1C"}
|
package/dist/column-codecs.d.ts
CHANGED
|
@@ -33,6 +33,9 @@ export declare function toTableColumnCodecs(table: string, codecSource: ColumnCo
|
|
|
33
33
|
dialect?: ColumnCodecDialect;
|
|
34
34
|
sqlTypes?: Record<string, string | undefined>;
|
|
35
35
|
}): TableColumnCodecs;
|
|
36
|
+
export declare function createTableColumnCodecsResolver(codecSource: ColumnCodecSource | undefined, options?: {
|
|
37
|
+
dialect?: ColumnCodecDialect;
|
|
38
|
+
}): (table: string, row: Record<string, unknown>) => TableColumnCodecs;
|
|
36
39
|
export declare function applyCodecToDbValue(codec: AnyColumnCodec, value: unknown, dialect?: ColumnCodecDialect): unknown;
|
|
37
40
|
export declare function applyCodecFromDbValue(codec: AnyColumnCodec, value: unknown, dialect?: ColumnCodecDialect): unknown;
|
|
38
41
|
export declare function applyCodecsToDbRow(row: Record<string, unknown>, tableCodecs: TableColumnCodecs, dialect?: ColumnCodecDialect): Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-codecs.d.ts","sourceRoot":"","sources":["../src/column-codecs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"column-codecs.d.ts","sourceRoot":"","sources":["../src/column-codecs.ts"],"names":[],"mappings":"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"}
|
package/dist/column-codecs.js
CHANGED
|
@@ -25,6 +25,30 @@ export function toTableColumnCodecs(table, codecSource, columns, options = {}) {
|
|
|
25
25
|
}
|
|
26
26
|
return out;
|
|
27
27
|
}
|
|
28
|
+
export function createTableColumnCodecsResolver(codecSource, options = {}) {
|
|
29
|
+
const tableCaches = new Map();
|
|
30
|
+
return (table, row) => {
|
|
31
|
+
if (!codecSource)
|
|
32
|
+
return {};
|
|
33
|
+
const columns = Object.keys(row);
|
|
34
|
+
if (columns.length === 0)
|
|
35
|
+
return {};
|
|
36
|
+
const cacheKey = columns.slice().sort().join('\u0000');
|
|
37
|
+
let perTableCache = tableCaches.get(table);
|
|
38
|
+
if (!perTableCache) {
|
|
39
|
+
perTableCache = new Map();
|
|
40
|
+
tableCaches.set(table, perTableCache);
|
|
41
|
+
}
|
|
42
|
+
const cached = perTableCache.get(cacheKey);
|
|
43
|
+
if (cached)
|
|
44
|
+
return cached;
|
|
45
|
+
const resolved = toTableColumnCodecs(table, codecSource, columns, {
|
|
46
|
+
dialect: options.dialect,
|
|
47
|
+
});
|
|
48
|
+
perTableCache.set(cacheKey, resolved);
|
|
49
|
+
return resolved;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
28
52
|
export function applyCodecToDbValue(codec, value, dialect = 'sqlite') {
|
|
29
53
|
if (value === null || value === undefined)
|
|
30
54
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-codecs.js","sourceRoot":"","sources":["../src/column-codecs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"column-codecs.js","sourceRoot":"","sources":["../src/column-codecs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kysely-column-codecs.d.ts","sourceRoot":"","sources":["../src/kysely-column-codecs.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,YAAY,EAGjB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAE9B,KAAK,WAAW,EAEhB,KAAK,iBAAiB,EAItB,KAAK,UAAU,EAIhB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAGvB,MAAM,iBAAiB,CAAC;AAEzB,UAAU,wBAAwB;IAChC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;
|
|
1
|
+
{"version":3,"file":"kysely-column-codecs.d.ts","sourceRoot":"","sources":["../src/kysely-column-codecs.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,YAAY,EAGjB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAE9B,KAAK,WAAW,EAEhB,KAAK,iBAAiB,EAItB,KAAK,UAAU,EAIhB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAGvB,MAAM,iBAAiB,CAAC;AAEzB,UAAU,wBAAwB;IAChC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAkbD,qBAAa,kBAAmB,YAAW,YAAY;;IASrD,YAAY,OAAO,EAAE,wBAAwB,EAM5C;IAED,cAAc,CAAC,EACb,IAAI,EACJ,OAAO,EACR,EAAE,wBAAwB,GAAG,iBAAiB,CAO9C;IAEK,eAAe,CAAC,EACpB,MAAM,EACN,OAAO,EACR,EAAE,yBAAyB,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAU9D;CAiDF;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,wBAAwB,GAChC,kBAAkB,CAEpB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OperationNodeTransformer, } from 'kysely';
|
|
2
|
-
import { applyCodecFromDbValue, applyCodecToDbValue,
|
|
2
|
+
import { applyCodecFromDbValue, applyCodecToDbValue, createTableColumnCodecsResolver, } from './column-codecs.js';
|
|
3
3
|
function isIdentifierNode(node) {
|
|
4
4
|
return node?.kind === 'IdentifierNode';
|
|
5
5
|
}
|
|
@@ -264,30 +264,16 @@ function buildResultPlan(node) {
|
|
|
264
264
|
return planForDelete(node);
|
|
265
265
|
return null;
|
|
266
266
|
}
|
|
267
|
-
function cacheKey(table, columns) {
|
|
268
|
-
const sorted = [...columns].sort().join('\u0000');
|
|
269
|
-
return `${table}\u0001${sorted}`;
|
|
270
|
-
}
|
|
271
267
|
class ColumnCodecsTransformer extends OperationNodeTransformer {
|
|
272
|
-
#codecs;
|
|
273
268
|
#dialect;
|
|
274
|
-
#
|
|
269
|
+
#resolveTableCodecs;
|
|
275
270
|
#currentUpdateTable = null;
|
|
276
271
|
constructor(options) {
|
|
277
272
|
super();
|
|
278
|
-
this.#codecs = options.codecs;
|
|
279
273
|
this.#dialect = options.dialect ?? 'sqlite';
|
|
280
|
-
|
|
281
|
-
resolveTableCodecs(table, columns) {
|
|
282
|
-
const key = cacheKey(table, columns);
|
|
283
|
-
const cached = this.#tableCodecsCache.get(key);
|
|
284
|
-
if (cached)
|
|
285
|
-
return cached;
|
|
286
|
-
const resolved = toTableColumnCodecs(table, this.#codecs, columns, {
|
|
274
|
+
this.#resolveTableCodecs = createTableColumnCodecsResolver(options.codecs, {
|
|
287
275
|
dialect: this.#dialect,
|
|
288
276
|
});
|
|
289
|
-
this.#tableCodecsCache.set(key, resolved);
|
|
290
|
-
return resolved;
|
|
291
277
|
}
|
|
292
278
|
transformInsertQuery(node) {
|
|
293
279
|
const transformed = super.transformInsertQuery(node);
|
|
@@ -305,7 +291,7 @@ class ColumnCodecsTransformer extends OperationNodeTransformer {
|
|
|
305
291
|
.filter((columnName) => Boolean(columnName));
|
|
306
292
|
if (columns.length === 0)
|
|
307
293
|
return transformed;
|
|
308
|
-
const tableCodecs = this
|
|
294
|
+
const tableCodecs = this.#resolveTableCodecs(tableName, Object.fromEntries(columns.map((column) => [column, null])));
|
|
309
295
|
let didChange = false;
|
|
310
296
|
const nextValueRows = transformed.values.values.map((valueNode) => {
|
|
311
297
|
if (!isPrimitiveValueListNode(valueNode))
|
|
@@ -360,9 +346,9 @@ class ColumnCodecsTransformer extends OperationNodeTransformer {
|
|
|
360
346
|
const columnName = getColumnName(transformed.column);
|
|
361
347
|
if (!columnName)
|
|
362
348
|
return transformed;
|
|
363
|
-
const tableCodecs = this
|
|
364
|
-
columnName,
|
|
365
|
-
|
|
349
|
+
const tableCodecs = this.#resolveTableCodecs(this.#currentUpdateTable, {
|
|
350
|
+
[columnName]: null,
|
|
351
|
+
});
|
|
366
352
|
const codec = tableCodecs[columnName];
|
|
367
353
|
if (!codec)
|
|
368
354
|
return transformed;
|
|
@@ -384,11 +370,12 @@ export class ColumnCodecsPlugin {
|
|
|
384
370
|
#dialect;
|
|
385
371
|
#transformer;
|
|
386
372
|
#resultPlans = new WeakMap();
|
|
387
|
-
#
|
|
388
|
-
#resultCodecCache = new Map();
|
|
373
|
+
#resolveTableCodecs;
|
|
389
374
|
constructor(options) {
|
|
390
375
|
this.#dialect = options.dialect ?? 'sqlite';
|
|
391
|
-
this.#
|
|
376
|
+
this.#resolveTableCodecs = createTableColumnCodecsResolver(options.codecs, {
|
|
377
|
+
dialect: this.#dialect,
|
|
378
|
+
});
|
|
392
379
|
this.#transformer = new ColumnCodecsTransformer(options);
|
|
393
380
|
}
|
|
394
381
|
transformQuery({ node, queryId, }) {
|
|
@@ -411,26 +398,14 @@ export class ColumnCodecsPlugin {
|
|
|
411
398
|
rows,
|
|
412
399
|
};
|
|
413
400
|
}
|
|
414
|
-
#resolveTableCodecs(table, columns) {
|
|
415
|
-
const key = cacheKey(table, columns);
|
|
416
|
-
const cached = this.#resultCodecCache.get(key);
|
|
417
|
-
if (cached)
|
|
418
|
-
return cached;
|
|
419
|
-
const resolved = toTableColumnCodecs(table, this.#codecs, columns, {
|
|
420
|
-
dialect: this.#dialect,
|
|
421
|
-
});
|
|
422
|
-
this.#resultCodecCache.set(key, resolved);
|
|
423
|
-
return resolved;
|
|
424
|
-
}
|
|
425
401
|
#transformRow(row, plan) {
|
|
426
402
|
const source = row;
|
|
427
403
|
const target = { ...source };
|
|
428
|
-
const rowColumns = Object.keys(source);
|
|
429
404
|
if (plan.selectAllTables.length > 0) {
|
|
430
405
|
const codecCandidates = new Map();
|
|
431
406
|
const ambiguousColumns = new Set();
|
|
432
407
|
for (const table of plan.selectAllTables) {
|
|
433
|
-
const tableCodecs = this.#resolveTableCodecs(table,
|
|
408
|
+
const tableCodecs = this.#resolveTableCodecs(table, source);
|
|
434
409
|
for (const [column, codec] of Object.entries(tableCodecs)) {
|
|
435
410
|
if (!(column in source))
|
|
436
411
|
continue;
|
|
@@ -451,7 +426,9 @@ export class ColumnCodecsPlugin {
|
|
|
451
426
|
for (const ref of plan.explicit) {
|
|
452
427
|
if (!(ref.outputKey in source))
|
|
453
428
|
continue;
|
|
454
|
-
const tableCodecs = this.#resolveTableCodecs(ref.table,
|
|
429
|
+
const tableCodecs = this.#resolveTableCodecs(ref.table, {
|
|
430
|
+
[ref.column]: source[ref.outputKey],
|
|
431
|
+
});
|
|
455
432
|
const codec = tableCodecs[ref.column];
|
|
456
433
|
if (!codec)
|
|
457
434
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kysely-column-codecs.js","sourceRoot":"","sources":["../src/kysely-column-codecs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kysely-column-codecs.js","sourceRoot":"","sources":["../src/kysely-column-codecs.ts"],"names":[],"mappings":"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"}
|
package/dist/scopes/index.d.ts
CHANGED
|
@@ -97,6 +97,10 @@ export declare function defineScopePatterns<const Definitions extends readonly S
|
|
|
97
97
|
* // → { 'user:{user_id}': 'user_id' }
|
|
98
98
|
*/
|
|
99
99
|
export declare function normalizeScopes(scopes: readonly ScopeDefinition[]): Record<ScopePattern, string>;
|
|
100
|
+
export declare function createSingleVariableScopeMetadata(scopes: readonly ScopeDefinition[]): {
|
|
101
|
+
scopePatterns: ScopePattern[];
|
|
102
|
+
scopeColumnsByVariable: Record<string, string>;
|
|
103
|
+
};
|
|
100
104
|
/**
|
|
101
105
|
* Extract variable names from a scope pattern.
|
|
102
106
|
*
|
|
@@ -105,4 +109,5 @@ export declare function normalizeScopes(scopes: readonly ScopeDefinition[]): Rec
|
|
|
105
109
|
* extractScopeVars('event_date:{year}:{month}') // ['year', 'month']
|
|
106
110
|
*/
|
|
107
111
|
export declare function extractScopeVars(pattern: ScopePattern): string[];
|
|
112
|
+
export declare function collectScopeVars(scopePatterns: readonly ScopePattern[]): Set<string>;
|
|
108
113
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scopes/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,YAAY,IAC3D,MAAM,SAAS,OAAO,GAClB,MAAM,GACN,OAAO,SAAS,GAAG,MAAM,IAAI,MAAM,GAAG,IAAI,MAAM,IAAI,EAAE,GACpD,GAAG,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAChC,KAAK,CAAC;AAEd;;GAEG;AACH,MAAM,MAAM,0BAA0B,CAAC,UAAU,SAAS,eAAe,IACvE,UAAU,SAAS,YAAY,GAC3B,UAAU,GACV,UAAU,SAAS;IAAE,OAAO,EAAE,MAAM,OAAO,SAAS,YAAY,CAAA;CAAE,GAChE,OAAO,GACP,KAAK,CAAC;AAEd;;GAEG;AACH,MAAM,MAAM,wBAAwB,CAClC,WAAW,SAAS,SAAS,eAAe,EAAE,IAC5C,oBAAoB,CAAC,0BAA0B,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAE1E;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAAC,SAAS,SAAS,MAAM,IAAI,OAAO,CAChE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAC9B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uBAAuB,CACjC,WAAW,SAAS,SAAS,eAAe,EAAE,IAC5C,kBAAkB,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,SAAS,SAAS,MAAM,IAAI,OAAO,CACjE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAC1B,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,CAAC,WAAW,SAAS,SAAS,eAAe,EAAE,EACpD,MAAM,EAAE,WAAW,GAAG,WAAW,CAElC;AA+BD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,eAAe,EAAE,GACjC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAgB9B;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CAIhE"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scopes/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,YAAY,IAC3D,MAAM,SAAS,OAAO,GAClB,MAAM,GACN,OAAO,SAAS,GAAG,MAAM,IAAI,MAAM,GAAG,IAAI,MAAM,IAAI,EAAE,GACpD,GAAG,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAChC,KAAK,CAAC;AAEd;;GAEG;AACH,MAAM,MAAM,0BAA0B,CAAC,UAAU,SAAS,eAAe,IACvE,UAAU,SAAS,YAAY,GAC3B,UAAU,GACV,UAAU,SAAS;IAAE,OAAO,EAAE,MAAM,OAAO,SAAS,YAAY,CAAA;CAAE,GAChE,OAAO,GACP,KAAK,CAAC;AAEd;;GAEG;AACH,MAAM,MAAM,wBAAwB,CAClC,WAAW,SAAS,SAAS,eAAe,EAAE,IAC5C,oBAAoB,CAAC,0BAA0B,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAE1E;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAAC,SAAS,SAAS,MAAM,IAAI,OAAO,CAChE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAC9B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uBAAuB,CACjC,WAAW,SAAS,SAAS,eAAe,EAAE,IAC5C,kBAAkB,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,SAAS,SAAS,MAAM,IAAI,OAAO,CACjE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAC1B,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,CAAC,WAAW,SAAS,SAAS,eAAe,EAAE,EACpD,MAAM,EAAE,WAAW,GAAG,WAAW,CAElC;AA+BD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,eAAe,EAAE,GACjC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAgB9B;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,SAAS,eAAe,EAAE,GACjC;IACD,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChD,CAuBA;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CAIhE;AAED,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,SAAS,YAAY,EAAE,GACrC,GAAG,CAAC,MAAM,CAAC,CAQb"}
|
package/dist/scopes/index.js
CHANGED
|
@@ -59,6 +59,24 @@ export function normalizeScopes(scopes) {
|
|
|
59
59
|
}
|
|
60
60
|
return result;
|
|
61
61
|
}
|
|
62
|
+
export function createSingleVariableScopeMetadata(scopes) {
|
|
63
|
+
const scopeColumnMap = normalizeScopes(scopes);
|
|
64
|
+
const scopePatterns = Object.keys(scopeColumnMap);
|
|
65
|
+
const scopeColumnsByVariable = {};
|
|
66
|
+
for (const [pattern, columnName] of Object.entries(scopeColumnMap)) {
|
|
67
|
+
const vars = extractScopeVars(pattern);
|
|
68
|
+
if (vars.length !== 1) {
|
|
69
|
+
throw new Error(`Scope pattern "${pattern}" must contain exactly one placeholder (got ${vars.length}).`);
|
|
70
|
+
}
|
|
71
|
+
const variableName = vars[0];
|
|
72
|
+
const existingColumn = scopeColumnsByVariable[variableName];
|
|
73
|
+
if (existingColumn && existingColumn !== columnName) {
|
|
74
|
+
throw new Error(`Scope variable "${variableName}" is mapped to multiple columns: "${existingColumn}" and "${columnName}".`);
|
|
75
|
+
}
|
|
76
|
+
scopeColumnsByVariable[variableName] = columnName;
|
|
77
|
+
}
|
|
78
|
+
return { scopePatterns, scopeColumnsByVariable };
|
|
79
|
+
}
|
|
62
80
|
// ── Value operations (public) ────────────────────────────────────────
|
|
63
81
|
/**
|
|
64
82
|
* Extract variable names from a scope pattern.
|
|
@@ -73,4 +91,13 @@ export function extractScopeVars(pattern) {
|
|
|
73
91
|
return [];
|
|
74
92
|
return matches.map((m) => m.slice(1, -1));
|
|
75
93
|
}
|
|
94
|
+
export function collectScopeVars(scopePatterns) {
|
|
95
|
+
const keys = new Set();
|
|
96
|
+
for (const pattern of scopePatterns) {
|
|
97
|
+
for (const key of extractScopeVars(pattern)) {
|
|
98
|
+
keys.add(key);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return keys;
|
|
102
|
+
}
|
|
76
103
|
//# sourceMappingURL=index.js.map
|
package/dist/scopes/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scopes/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA2GH;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAEjC,MAAmB,EAAe;IAClC,OAAO,MAAM,CAAC;AAAA,CACf;AAED,wEAAwE;AAExE;;;GAGG;AACH,SAAS,kBAAkB,CAAC,OAAe,EAIlC;IACP,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,CAAC,CAAE;QACjB,WAAW,EAAE,KAAK,CAAC,CAAC,CAAE;QACtB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAE;KAClB,CAAC;AAAA,CACH;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,OAAe,EAAiB;IAC1D,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,MAAM,EAAE,WAAW,IAAI,IAAI,CAAC;AAAA,CACpC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAkC,EACJ;IAC9B,MAAM,MAAM,GAAiC,EAAE,CAAC;IAChD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CACb,kBAAkB,KAAK,iDAAiD,CACzE,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAAA,CACf;AAED,wEAAwE;AAExE;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAqB,EAAY;IAChE,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAAA,CAC3C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scopes/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -141,6 +141,7 @@ export interface SyncTransport {
|
|
|
141
141
|
*/
|
|
142
142
|
fetchSnapshotChunk(request: {
|
|
143
143
|
chunkId: string;
|
|
144
|
+
scopeValues?: Record<string, string | string[]>;
|
|
144
145
|
}, options?: SyncTransportOptions): Promise<Uint8Array>;
|
|
145
146
|
/**
|
|
146
147
|
* Optional streaming snapshot chunk download.
|
|
@@ -150,6 +151,7 @@ export interface SyncTransport {
|
|
|
150
151
|
*/
|
|
151
152
|
fetchSnapshotChunkStream?(request: {
|
|
152
153
|
chunkId: string;
|
|
154
|
+
scopeValues?: Record<string, string | string[]>;
|
|
153
155
|
}, options?: SyncTransportOptions): Promise<ReadableStream<Uint8Array>>;
|
|
154
156
|
/**
|
|
155
157
|
* Optional blob operations.
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwMH;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAGzB,MAAM;IACN,IAAI;IAHtB,YACE,OAAe,EACC,MAAe,EACf,IAAa,EAC7B;QACA,KAAK,CAAC,OAAO,CAAC,CAAC;sBAHC,MAAM;oBACN,IAAI;QAGpB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IAAA,CAClC;CACF"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,UAAU,CAAC;AACzB,cAAc,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,UAAU,CAAC;AACzB,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,OAAO,CAAC"}
|
package/dist/utils/index.js
CHANGED
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,UAAU,CAAC;AACzB,cAAc,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,UAAU,CAAC;AACzB,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,OAAO,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type TableEntry = {
|
|
2
|
+
table: string;
|
|
3
|
+
dependsOn?: readonly string[];
|
|
4
|
+
};
|
|
5
|
+
export declare function registerTableOrThrow(registeredTables: Set<string>, table: string, duplicateTableError: (table: string) => string): void;
|
|
6
|
+
export declare function createTableLookup<T extends TableEntry>(handlers: readonly T[], duplicateTableError: (table: string) => string): ReadonlyMap<string, T>;
|
|
7
|
+
export declare function assertKnownTableDependencies<T extends TableEntry>(handlers: readonly T[], byTable: ReadonlyMap<string, T>, unknownDependencyError: (table: string, dependency: string) => string): void;
|
|
8
|
+
export declare function topologicallySortTablesByDependencies<T extends TableEntry>(byTable: ReadonlyMap<string, T>, targetTable?: string): T[];
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=table-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-registry.d.ts","sourceRoot":"","sources":["../../src/utils/table-registry.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,CAAC;AACF,wBAAgB,oBAAoB,CAClC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,KAAK,EAAE,MAAM,EACb,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAC7C,IAAI,CAGN;AACD,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,UAAU,EACpD,QAAQ,EAAE,SAAS,CAAC,EAAE,EACtB,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAC7C,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CASxB;AACD,wBAAgB,4BAA4B,CAAC,CAAC,SAAS,UAAU,EAC/D,QAAQ,EAAE,SAAS,CAAC,EAAE,EACtB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EAC/B,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,GACpE,IAAI,CAQN;AACD,wBAAgB,qCAAqC,CAAC,CAAC,SAAS,UAAU,EACxE,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EAC/B,WAAW,CAAC,EAAE,MAAM,GACnB,CAAC,EAAE,CAyBL"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export function registerTableOrThrow(registeredTables, table, duplicateTableError) {
|
|
2
|
+
if (registeredTables.has(table))
|
|
3
|
+
throw new Error(duplicateTableError(table));
|
|
4
|
+
registeredTables.add(table);
|
|
5
|
+
}
|
|
6
|
+
export function createTableLookup(handlers, duplicateTableError) {
|
|
7
|
+
const byTable = new Map();
|
|
8
|
+
for (const handler of handlers) {
|
|
9
|
+
if (byTable.has(handler.table)) {
|
|
10
|
+
throw new Error(duplicateTableError(handler.table));
|
|
11
|
+
}
|
|
12
|
+
byTable.set(handler.table, handler);
|
|
13
|
+
}
|
|
14
|
+
return byTable;
|
|
15
|
+
}
|
|
16
|
+
export function assertKnownTableDependencies(handlers, byTable, unknownDependencyError) {
|
|
17
|
+
for (const handler of handlers) {
|
|
18
|
+
for (const dependency of handler.dependsOn ?? []) {
|
|
19
|
+
if (!byTable.has(dependency)) {
|
|
20
|
+
throw new Error(unknownDependencyError(handler.table, dependency));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export function topologicallySortTablesByDependencies(byTable, targetTable) {
|
|
26
|
+
const visited = new Set();
|
|
27
|
+
const visiting = new Set();
|
|
28
|
+
const sorted = [];
|
|
29
|
+
const visit = (table) => {
|
|
30
|
+
if (visited.has(table))
|
|
31
|
+
return;
|
|
32
|
+
if (visiting.has(table)) {
|
|
33
|
+
throw new Error(`Circular dependency detected involving table "${table}"`);
|
|
34
|
+
}
|
|
35
|
+
const handler = byTable.get(table);
|
|
36
|
+
if (!handler)
|
|
37
|
+
throw new Error(`Unknown table: ${table}`);
|
|
38
|
+
visiting.add(table);
|
|
39
|
+
for (const dependency of handler.dependsOn ?? [])
|
|
40
|
+
visit(dependency);
|
|
41
|
+
visiting.delete(table);
|
|
42
|
+
visited.add(table);
|
|
43
|
+
sorted.push(handler);
|
|
44
|
+
};
|
|
45
|
+
if (targetTable) {
|
|
46
|
+
visit(targetTable);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
for (const table of byTable.keys())
|
|
50
|
+
visit(table);
|
|
51
|
+
}
|
|
52
|
+
return sorted;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=table-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-registry.js","sourceRoot":"","sources":["../../src/utils/table-registry.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,oBAAoB,CAClC,gBAA6B,EAC7B,KAAa,EACb,mBAA8C,EACxC;IACN,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAAA,CAC7B;AACD,MAAM,UAAU,iBAAiB,CAC/B,QAAsB,EACtB,mBAA8C,EACtB;IACxB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAa,CAAC;IACrC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,OAAO,CAAC;AAAA,CAChB;AACD,MAAM,UAAU,4BAA4B,CAC1C,QAAsB,EACtB,OAA+B,EAC/B,sBAAqE,EAC/D;IACN,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;AAAA,CACF;AACD,MAAM,UAAU,qCAAqC,CACnD,OAA+B,EAC/B,WAAoB,EACf;IACL,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO;QAC/B,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,iDAAiD,KAAK,GAAG,CAC1D,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;QACzD,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,SAAS,IAAI,EAAE;YAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACpE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAAA,CACtB,CAAC;IACF,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,WAAW,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE;YAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,MAAM,CAAC;AAAA,CACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAKA,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAYR"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const ABSOLUTE_URL_SCHEME_REGEX = /^[a-zA-Z][a-zA-Z0-9+.-]*:/;
|
|
2
|
+
const trimTrailingSlashes = (value) => value.replace(/\/+$/, '');
|
|
3
|
+
export function normalizeSyncBaseUrl(url) {
|
|
4
|
+
const trimmed = trimTrailingSlashes(url.trim());
|
|
5
|
+
if (!trimmed.endsWith('/sync'))
|
|
6
|
+
return trimmed;
|
|
7
|
+
const baseUrl = trimmed.slice(0, -'/sync'.length);
|
|
8
|
+
return baseUrl.length > 0 ? baseUrl : '/';
|
|
9
|
+
}
|
|
10
|
+
export function resolveUrlFromBase(baseUrl, path, origin) {
|
|
11
|
+
const normalizedPath = path.replace(/^\/+/, '');
|
|
12
|
+
const normalizedBaseUrl = trimTrailingSlashes(baseUrl);
|
|
13
|
+
if (ABSOLUTE_URL_SCHEME_REGEX.test(baseUrl)) {
|
|
14
|
+
return new URL(normalizedPath, baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`).toString();
|
|
15
|
+
}
|
|
16
|
+
if (origin)
|
|
17
|
+
return new URL(`${normalizedBaseUrl}/${normalizedPath}`, origin).toString();
|
|
18
|
+
return `${normalizedBaseUrl}/${normalizedPath}`;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAAA,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AAE9D,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAU,EAAE,CACpD,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAE5B,MAAM,UAAU,oBAAoB,CAAC,GAAW,EAAU;IACxD,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAAA,CAC3C;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,IAAY,EACZ,MAAe,EACP;IACR,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,GAAG,CACZ,cAAc,EACd,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAChD,CAAC,QAAQ,EAAE,CAAC;IACf,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,GAAG,CAAC,GAAG,iBAAiB,IAAI,cAAc,EAAE,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9E,OAAO,GAAG,iBAAiB,IAAI,cAAc,EAAE,CAAC;AAAA,CACjD"}
|
package/package.json
CHANGED
package/src/blobs.ts
CHANGED
|
@@ -56,6 +56,8 @@ export interface BlobTransport {
|
|
|
56
56
|
export interface BlobSignUploadOptions {
|
|
57
57
|
/** SHA-256 hash (for naming and checksum validation) */
|
|
58
58
|
hash: string;
|
|
59
|
+
/** Optional tenant/partition namespace for storage lookups */
|
|
60
|
+
partitionId?: string;
|
|
59
61
|
/** Content size in bytes */
|
|
60
62
|
size: number;
|
|
61
63
|
/** MIME type */
|
|
@@ -82,10 +84,16 @@ export interface BlobSignedUpload {
|
|
|
82
84
|
export interface BlobSignDownloadOptions {
|
|
83
85
|
/** SHA-256 hash */
|
|
84
86
|
hash: string;
|
|
87
|
+
/** Optional tenant/partition namespace for storage lookups */
|
|
88
|
+
partitionId?: string;
|
|
85
89
|
/** URL expiration in seconds */
|
|
86
90
|
expiresIn: number;
|
|
87
91
|
}
|
|
88
92
|
|
|
93
|
+
export interface BlobStoragePartitionOptions {
|
|
94
|
+
partitionId?: string;
|
|
95
|
+
}
|
|
96
|
+
|
|
89
97
|
/**
|
|
90
98
|
* Adapter for blob storage backends (S3, R2, custom).
|
|
91
99
|
* Implementations handle actual storage; the sync server orchestrates.
|
|
@@ -108,19 +116,20 @@ export interface BlobStorageAdapter {
|
|
|
108
116
|
/**
|
|
109
117
|
* Check if a blob exists in storage.
|
|
110
118
|
*/
|
|
111
|
-
exists(hash: string): Promise<boolean>;
|
|
119
|
+
exists(hash: string, options?: BlobStoragePartitionOptions): Promise<boolean>;
|
|
112
120
|
|
|
113
121
|
/**
|
|
114
122
|
* Delete a blob (for garbage collection).
|
|
115
123
|
*/
|
|
116
|
-
delete(hash: string): Promise<void>;
|
|
124
|
+
delete(hash: string, options?: BlobStoragePartitionOptions): Promise<void>;
|
|
117
125
|
|
|
118
126
|
/**
|
|
119
127
|
* Get blob metadata from storage (optional).
|
|
120
128
|
* Used to verify uploads completed successfully.
|
|
121
129
|
*/
|
|
122
130
|
getMetadata?(
|
|
123
|
-
hash: string
|
|
131
|
+
hash: string,
|
|
132
|
+
options?: BlobStoragePartitionOptions
|
|
124
133
|
): Promise<{ size: number; mimeType?: string } | null>;
|
|
125
134
|
|
|
126
135
|
/**
|
|
@@ -130,7 +139,8 @@ export interface BlobStorageAdapter {
|
|
|
130
139
|
put?(
|
|
131
140
|
hash: string,
|
|
132
141
|
data: Uint8Array,
|
|
133
|
-
metadata?: Record<string, unknown
|
|
142
|
+
metadata?: Record<string, unknown>,
|
|
143
|
+
options?: BlobStoragePartitionOptions
|
|
134
144
|
): Promise<void>;
|
|
135
145
|
|
|
136
146
|
/**
|
|
@@ -140,18 +150,25 @@ export interface BlobStorageAdapter {
|
|
|
140
150
|
putStream?(
|
|
141
151
|
hash: string,
|
|
142
152
|
stream: ReadableStream<Uint8Array>,
|
|
143
|
-
metadata?: Record<string, unknown
|
|
153
|
+
metadata?: Record<string, unknown>,
|
|
154
|
+
options?: BlobStoragePartitionOptions
|
|
144
155
|
): Promise<void>;
|
|
145
156
|
|
|
146
157
|
/**
|
|
147
158
|
* Get blob data directly (for adapters that support direct retrieval).
|
|
148
159
|
*/
|
|
149
|
-
get?(
|
|
160
|
+
get?(
|
|
161
|
+
hash: string,
|
|
162
|
+
options?: BlobStoragePartitionOptions
|
|
163
|
+
): Promise<Uint8Array | null>;
|
|
150
164
|
|
|
151
165
|
/**
|
|
152
166
|
* Get blob data directly as a stream (for adapters that support stream retrieval).
|
|
153
167
|
*/
|
|
154
|
-
getStream?(
|
|
168
|
+
getStream?(
|
|
169
|
+
hash: string,
|
|
170
|
+
options?: BlobStoragePartitionOptions
|
|
171
|
+
): Promise<ReadableStream<Uint8Array> | null>;
|
|
155
172
|
}
|
|
156
173
|
|
|
157
174
|
// ============================================================================
|
package/src/column-codecs.ts
CHANGED
|
@@ -88,6 +88,35 @@ export function toTableColumnCodecs(
|
|
|
88
88
|
return out;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
+
export function createTableColumnCodecsResolver(
|
|
92
|
+
codecSource: ColumnCodecSource | undefined,
|
|
93
|
+
options: { dialect?: ColumnCodecDialect } = {}
|
|
94
|
+
): (table: string, row: Record<string, unknown>) => TableColumnCodecs {
|
|
95
|
+
const tableCaches = new Map<string, Map<string, TableColumnCodecs>>();
|
|
96
|
+
|
|
97
|
+
return (table, row) => {
|
|
98
|
+
if (!codecSource) return {};
|
|
99
|
+
const columns = Object.keys(row);
|
|
100
|
+
if (columns.length === 0) return {};
|
|
101
|
+
|
|
102
|
+
const cacheKey = columns.slice().sort().join('\u0000');
|
|
103
|
+
let perTableCache = tableCaches.get(table);
|
|
104
|
+
if (!perTableCache) {
|
|
105
|
+
perTableCache = new Map<string, TableColumnCodecs>();
|
|
106
|
+
tableCaches.set(table, perTableCache);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const cached = perTableCache.get(cacheKey);
|
|
110
|
+
if (cached) return cached;
|
|
111
|
+
|
|
112
|
+
const resolved = toTableColumnCodecs(table, codecSource, columns, {
|
|
113
|
+
dialect: options.dialect,
|
|
114
|
+
});
|
|
115
|
+
perTableCache.set(cacheKey, resolved);
|
|
116
|
+
return resolved;
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
|
|
91
120
|
export function applyCodecToDbValue(
|
|
92
121
|
codec: AnyColumnCodec,
|
|
93
122
|
value: unknown,
|
|
@@ -28,8 +28,8 @@ import {
|
|
|
28
28
|
applyCodecToDbValue,
|
|
29
29
|
type ColumnCodecDialect,
|
|
30
30
|
type ColumnCodecSource,
|
|
31
|
+
createTableColumnCodecsResolver,
|
|
31
32
|
type TableColumnCodecs,
|
|
32
|
-
toTableColumnCodecs,
|
|
33
33
|
} from './column-codecs';
|
|
34
34
|
|
|
35
35
|
interface ColumnCodecPluginOptions {
|
|
@@ -343,35 +343,20 @@ function buildResultPlan(node: RootOperationNode): QueryResultPlan | null {
|
|
|
343
343
|
return null;
|
|
344
344
|
}
|
|
345
345
|
|
|
346
|
-
function cacheKey(table: string, columns: readonly string[]): string {
|
|
347
|
-
const sorted = [...columns].sort().join('\u0000');
|
|
348
|
-
return `${table}\u0001${sorted}`;
|
|
349
|
-
}
|
|
350
|
-
|
|
351
346
|
class ColumnCodecsTransformer extends OperationNodeTransformer {
|
|
352
|
-
readonly #codecs: ColumnCodecSource;
|
|
353
347
|
readonly #dialect: ColumnCodecDialect;
|
|
354
|
-
readonly #
|
|
348
|
+
readonly #resolveTableCodecs: (
|
|
349
|
+
table: string,
|
|
350
|
+
row: Record<string, unknown>
|
|
351
|
+
) => TableColumnCodecs;
|
|
355
352
|
#currentUpdateTable: string | null = null;
|
|
356
353
|
|
|
357
354
|
constructor(options: ColumnCodecPluginOptions) {
|
|
358
355
|
super();
|
|
359
|
-
this.#codecs = options.codecs;
|
|
360
356
|
this.#dialect = options.dialect ?? 'sqlite';
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
resolveTableCodecs(
|
|
364
|
-
table: string,
|
|
365
|
-
columns: readonly string[]
|
|
366
|
-
): TableColumnCodecs {
|
|
367
|
-
const key = cacheKey(table, columns);
|
|
368
|
-
const cached = this.#tableCodecsCache.get(key);
|
|
369
|
-
if (cached) return cached;
|
|
370
|
-
const resolved = toTableColumnCodecs(table, this.#codecs, columns, {
|
|
357
|
+
this.#resolveTableCodecs = createTableColumnCodecsResolver(options.codecs, {
|
|
371
358
|
dialect: this.#dialect,
|
|
372
359
|
});
|
|
373
|
-
this.#tableCodecsCache.set(key, resolved);
|
|
374
|
-
return resolved;
|
|
375
360
|
}
|
|
376
361
|
|
|
377
362
|
protected override transformInsertQuery(
|
|
@@ -393,7 +378,10 @@ class ColumnCodecsTransformer extends OperationNodeTransformer {
|
|
|
393
378
|
.filter((columnName): columnName is string => Boolean(columnName));
|
|
394
379
|
if (columns.length === 0) return transformed;
|
|
395
380
|
|
|
396
|
-
const tableCodecs = this
|
|
381
|
+
const tableCodecs = this.#resolveTableCodecs(
|
|
382
|
+
tableName,
|
|
383
|
+
Object.fromEntries(columns.map((column) => [column, null]))
|
|
384
|
+
);
|
|
397
385
|
|
|
398
386
|
let didChange = false;
|
|
399
387
|
const nextValueRows = transformed.values.values.map((valueNode) => {
|
|
@@ -456,9 +444,9 @@ class ColumnCodecsTransformer extends OperationNodeTransformer {
|
|
|
456
444
|
const columnName = getColumnName(transformed.column);
|
|
457
445
|
if (!columnName) return transformed;
|
|
458
446
|
|
|
459
|
-
const tableCodecs = this
|
|
460
|
-
columnName,
|
|
461
|
-
|
|
447
|
+
const tableCodecs = this.#resolveTableCodecs(this.#currentUpdateTable, {
|
|
448
|
+
[columnName]: null,
|
|
449
|
+
});
|
|
462
450
|
const codec = tableCodecs[columnName];
|
|
463
451
|
if (!codec) return transformed;
|
|
464
452
|
|
|
@@ -485,12 +473,16 @@ export class ColumnCodecsPlugin implements KyselyPlugin {
|
|
|
485
473
|
readonly #dialect: ColumnCodecDialect;
|
|
486
474
|
readonly #transformer: ColumnCodecsTransformer;
|
|
487
475
|
readonly #resultPlans = new WeakMap<object, QueryResultPlan>();
|
|
488
|
-
readonly #
|
|
489
|
-
|
|
476
|
+
readonly #resolveTableCodecs: (
|
|
477
|
+
table: string,
|
|
478
|
+
row: Record<string, unknown>
|
|
479
|
+
) => TableColumnCodecs;
|
|
490
480
|
|
|
491
481
|
constructor(options: ColumnCodecPluginOptions) {
|
|
492
482
|
this.#dialect = options.dialect ?? 'sqlite';
|
|
493
|
-
this.#
|
|
483
|
+
this.#resolveTableCodecs = createTableColumnCodecsResolver(options.codecs, {
|
|
484
|
+
dialect: this.#dialect,
|
|
485
|
+
});
|
|
494
486
|
this.#transformer = new ColumnCodecsTransformer(options);
|
|
495
487
|
}
|
|
496
488
|
|
|
@@ -521,31 +513,16 @@ export class ColumnCodecsPlugin implements KyselyPlugin {
|
|
|
521
513
|
};
|
|
522
514
|
}
|
|
523
515
|
|
|
524
|
-
#resolveTableCodecs(
|
|
525
|
-
table: string,
|
|
526
|
-
columns: readonly string[]
|
|
527
|
-
): TableColumnCodecs {
|
|
528
|
-
const key = cacheKey(table, columns);
|
|
529
|
-
const cached = this.#resultCodecCache.get(key);
|
|
530
|
-
if (cached) return cached;
|
|
531
|
-
const resolved = toTableColumnCodecs(table, this.#codecs, columns, {
|
|
532
|
-
dialect: this.#dialect,
|
|
533
|
-
});
|
|
534
|
-
this.#resultCodecCache.set(key, resolved);
|
|
535
|
-
return resolved;
|
|
536
|
-
}
|
|
537
|
-
|
|
538
516
|
#transformRow(row: UnknownRow, plan: QueryResultPlan): UnknownRow {
|
|
539
517
|
const source = row as Record<string, unknown>;
|
|
540
518
|
const target: Record<string, unknown> = { ...source };
|
|
541
|
-
const rowColumns = Object.keys(source);
|
|
542
519
|
|
|
543
520
|
if (plan.selectAllTables.length > 0) {
|
|
544
521
|
const codecCandidates = new Map<string, AnyColumnCodec>();
|
|
545
522
|
const ambiguousColumns = new Set<string>();
|
|
546
523
|
|
|
547
524
|
for (const table of plan.selectAllTables) {
|
|
548
|
-
const tableCodecs = this.#resolveTableCodecs(table,
|
|
525
|
+
const tableCodecs = this.#resolveTableCodecs(table, source);
|
|
549
526
|
for (const [column, codec] of Object.entries(tableCodecs)) {
|
|
550
527
|
if (!(column in source)) continue;
|
|
551
528
|
const existing = codecCandidates.get(column);
|
|
@@ -569,7 +546,9 @@ export class ColumnCodecsPlugin implements KyselyPlugin {
|
|
|
569
546
|
|
|
570
547
|
for (const ref of plan.explicit) {
|
|
571
548
|
if (!(ref.outputKey in source)) continue;
|
|
572
|
-
const tableCodecs = this.#resolveTableCodecs(ref.table,
|
|
549
|
+
const tableCodecs = this.#resolveTableCodecs(ref.table, {
|
|
550
|
+
[ref.column]: source[ref.outputKey],
|
|
551
|
+
});
|
|
573
552
|
const codec = tableCodecs[ref.column];
|
|
574
553
|
if (!codec) continue;
|
|
575
554
|
target[ref.outputKey] = applyCodecFromDbValue(
|
package/src/scopes/index.ts
CHANGED
|
@@ -179,6 +179,36 @@ export function normalizeScopes(
|
|
|
179
179
|
return result;
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
+
export function createSingleVariableScopeMetadata(
|
|
183
|
+
scopes: readonly ScopeDefinition[]
|
|
184
|
+
): {
|
|
185
|
+
scopePatterns: ScopePattern[];
|
|
186
|
+
scopeColumnsByVariable: Record<string, string>;
|
|
187
|
+
} {
|
|
188
|
+
const scopeColumnMap = normalizeScopes(scopes);
|
|
189
|
+
const scopePatterns = Object.keys(scopeColumnMap) as ScopePattern[];
|
|
190
|
+
const scopeColumnsByVariable: Record<string, string> = {};
|
|
191
|
+
|
|
192
|
+
for (const [pattern, columnName] of Object.entries(scopeColumnMap)) {
|
|
193
|
+
const vars = extractScopeVars(pattern);
|
|
194
|
+
if (vars.length !== 1) {
|
|
195
|
+
throw new Error(
|
|
196
|
+
`Scope pattern "${pattern}" must contain exactly one placeholder (got ${vars.length}).`
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
const variableName = vars[0]!;
|
|
200
|
+
const existingColumn = scopeColumnsByVariable[variableName];
|
|
201
|
+
if (existingColumn && existingColumn !== columnName) {
|
|
202
|
+
throw new Error(
|
|
203
|
+
`Scope variable "${variableName}" is mapped to multiple columns: "${existingColumn}" and "${columnName}".`
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
scopeColumnsByVariable[variableName] = columnName;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
return { scopePatterns, scopeColumnsByVariable };
|
|
210
|
+
}
|
|
211
|
+
|
|
182
212
|
// ── Value operations (public) ────────────────────────────────────────
|
|
183
213
|
|
|
184
214
|
/**
|
|
@@ -193,3 +223,15 @@ export function extractScopeVars(pattern: ScopePattern): string[] {
|
|
|
193
223
|
if (!matches) return [];
|
|
194
224
|
return matches.map((m) => m.slice(1, -1));
|
|
195
225
|
}
|
|
226
|
+
|
|
227
|
+
export function collectScopeVars(
|
|
228
|
+
scopePatterns: readonly ScopePattern[]
|
|
229
|
+
): Set<string> {
|
|
230
|
+
const keys = new Set<string>();
|
|
231
|
+
for (const pattern of scopePatterns) {
|
|
232
|
+
for (const key of extractScopeVars(pattern)) {
|
|
233
|
+
keys.add(key);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return keys;
|
|
237
|
+
}
|
package/src/types.ts
CHANGED
|
@@ -175,7 +175,10 @@ export interface SyncTransport {
|
|
|
175
175
|
* Download an encoded bootstrap snapshot chunk.
|
|
176
176
|
*/
|
|
177
177
|
fetchSnapshotChunk(
|
|
178
|
-
request: {
|
|
178
|
+
request: {
|
|
179
|
+
chunkId: string;
|
|
180
|
+
scopeValues?: Record<string, string | string[]>;
|
|
181
|
+
},
|
|
179
182
|
options?: SyncTransportOptions
|
|
180
183
|
): Promise<Uint8Array>;
|
|
181
184
|
|
|
@@ -186,7 +189,10 @@ export interface SyncTransport {
|
|
|
186
189
|
* incrementally without materializing the entire chunk in memory.
|
|
187
190
|
*/
|
|
188
191
|
fetchSnapshotChunkStream?(
|
|
189
|
-
request: {
|
|
192
|
+
request: {
|
|
193
|
+
chunkId: string;
|
|
194
|
+
scopeValues?: Record<string, string | string[]>;
|
|
195
|
+
},
|
|
190
196
|
options?: SyncTransportOptions
|
|
191
197
|
): Promise<ReadableStream<Uint8Array>>;
|
|
192
198
|
|
package/src/utils/index.ts
CHANGED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
type TableEntry = {
|
|
2
|
+
table: string;
|
|
3
|
+
dependsOn?: readonly string[];
|
|
4
|
+
};
|
|
5
|
+
export function registerTableOrThrow(
|
|
6
|
+
registeredTables: Set<string>,
|
|
7
|
+
table: string,
|
|
8
|
+
duplicateTableError: (table: string) => string
|
|
9
|
+
): void {
|
|
10
|
+
if (registeredTables.has(table)) throw new Error(duplicateTableError(table));
|
|
11
|
+
registeredTables.add(table);
|
|
12
|
+
}
|
|
13
|
+
export function createTableLookup<T extends TableEntry>(
|
|
14
|
+
handlers: readonly T[],
|
|
15
|
+
duplicateTableError: (table: string) => string
|
|
16
|
+
): ReadonlyMap<string, T> {
|
|
17
|
+
const byTable = new Map<string, T>();
|
|
18
|
+
for (const handler of handlers) {
|
|
19
|
+
if (byTable.has(handler.table)) {
|
|
20
|
+
throw new Error(duplicateTableError(handler.table));
|
|
21
|
+
}
|
|
22
|
+
byTable.set(handler.table, handler);
|
|
23
|
+
}
|
|
24
|
+
return byTable;
|
|
25
|
+
}
|
|
26
|
+
export function assertKnownTableDependencies<T extends TableEntry>(
|
|
27
|
+
handlers: readonly T[],
|
|
28
|
+
byTable: ReadonlyMap<string, T>,
|
|
29
|
+
unknownDependencyError: (table: string, dependency: string) => string
|
|
30
|
+
): void {
|
|
31
|
+
for (const handler of handlers) {
|
|
32
|
+
for (const dependency of handler.dependsOn ?? []) {
|
|
33
|
+
if (!byTable.has(dependency)) {
|
|
34
|
+
throw new Error(unknownDependencyError(handler.table, dependency));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export function topologicallySortTablesByDependencies<T extends TableEntry>(
|
|
40
|
+
byTable: ReadonlyMap<string, T>,
|
|
41
|
+
targetTable?: string
|
|
42
|
+
): T[] {
|
|
43
|
+
const visited = new Set<string>();
|
|
44
|
+
const visiting = new Set<string>();
|
|
45
|
+
const sorted: T[] = [];
|
|
46
|
+
const visit = (table: string) => {
|
|
47
|
+
if (visited.has(table)) return;
|
|
48
|
+
if (visiting.has(table)) {
|
|
49
|
+
throw new Error(
|
|
50
|
+
`Circular dependency detected involving table "${table}"`
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
const handler = byTable.get(table);
|
|
54
|
+
if (!handler) throw new Error(`Unknown table: ${table}`);
|
|
55
|
+
visiting.add(table);
|
|
56
|
+
for (const dependency of handler.dependsOn ?? []) visit(dependency);
|
|
57
|
+
visiting.delete(table);
|
|
58
|
+
visited.add(table);
|
|
59
|
+
sorted.push(handler);
|
|
60
|
+
};
|
|
61
|
+
if (targetTable) {
|
|
62
|
+
visit(targetTable);
|
|
63
|
+
} else {
|
|
64
|
+
for (const table of byTable.keys()) visit(table);
|
|
65
|
+
}
|
|
66
|
+
return sorted;
|
|
67
|
+
}
|
package/src/utils/url.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const ABSOLUTE_URL_SCHEME_REGEX = /^[a-zA-Z][a-zA-Z0-9+.-]*:/;
|
|
2
|
+
|
|
3
|
+
const trimTrailingSlashes = (value: string): string =>
|
|
4
|
+
value.replace(/\/+$/, '');
|
|
5
|
+
|
|
6
|
+
export function normalizeSyncBaseUrl(url: string): string {
|
|
7
|
+
const trimmed = trimTrailingSlashes(url.trim());
|
|
8
|
+
if (!trimmed.endsWith('/sync')) return trimmed;
|
|
9
|
+
const baseUrl = trimmed.slice(0, -'/sync'.length);
|
|
10
|
+
return baseUrl.length > 0 ? baseUrl : '/';
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function resolveUrlFromBase(
|
|
14
|
+
baseUrl: string,
|
|
15
|
+
path: string,
|
|
16
|
+
origin?: string
|
|
17
|
+
): string {
|
|
18
|
+
const normalizedPath = path.replace(/^\/+/, '');
|
|
19
|
+
const normalizedBaseUrl = trimTrailingSlashes(baseUrl);
|
|
20
|
+
if (ABSOLUTE_URL_SCHEME_REGEX.test(baseUrl)) {
|
|
21
|
+
return new URL(
|
|
22
|
+
normalizedPath,
|
|
23
|
+
baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`
|
|
24
|
+
).toString();
|
|
25
|
+
}
|
|
26
|
+
if (origin)
|
|
27
|
+
return new URL(`${normalizedBaseUrl}/${normalizedPath}`, origin).toString();
|
|
28
|
+
return `${normalizedBaseUrl}/${normalizedPath}`;
|
|
29
|
+
}
|