@lunora/shard-engine 1.0.0-alpha.5 → 1.0.0-alpha.50
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/README.md +1 -1
- package/dist/conformance/index.mjs +1 -1
- package/dist/index.d.mts +375 -32
- package/dist/index.d.ts +375 -32
- package/dist/index.mjs +1 -1
- package/dist/packem_shared/ADMIN_FUNCTIONS-oJ7IyZP6.mjs +1 -0
- package/dist/packem_shared/AGGREGATE_SQL_FUNCTION-m1iUU1rv.mjs +1 -0
- package/dist/packem_shared/AGG_COUNT-JTc_jUaL.mjs +1 -0
- package/dist/packem_shared/AUDIT_LOG_TABLE-ONxmEAIz.mjs +8 -0
- package/dist/packem_shared/CDC_LOG_TABLE-gl0FuepJ.mjs +15 -0
- package/dist/packem_shared/CLIENT_WATERMARK_TABLE-CRnrAnJ2.mjs +7 -0
- package/dist/packem_shared/COMMIT_SEQ_FIELD-BUdOMG5y.mjs +4 -0
- package/dist/packem_shared/CURSOR_PREFIX-D4DUGY5z.mjs +1 -0
- package/dist/packem_shared/CountRlsUnsupportedError-Bdfupt3g.mjs +1 -0
- package/dist/packem_shared/DATA_MIGRATION_STATE_TABLE-Cp6pbyAp.mjs +31 -0
- package/dist/packem_shared/DEFAULT_MAX_RELATION_KEYS-B3krmwZL.mjs +1 -0
- package/dist/packem_shared/DEFAULT_MAX_RELAYS-Bjx0HDbs.mjs +1 -0
- package/dist/packem_shared/DEFAULT_PROMOTION_THRESHOLDS-DpUu_mpH.mjs +1 -0
- package/dist/packem_shared/DEFAULT_TRANSACTION_LIMITS-Bcoi7Bvf.mjs +1 -0
- package/dist/packem_shared/DurableStreamRunner-CWqdczw1.mjs +1 -0
- package/dist/packem_shared/GEO_DEFAULT_PRECISION-CqpQZ-J_.mjs +1 -0
- package/dist/packem_shared/GLOBAL_SHAPE_SNAPSHOT_TABLE-DSA6mzyx.mjs +7 -0
- package/dist/packem_shared/GlobalPollTick-BNK4o-XT.mjs +1 -0
- package/dist/packem_shared/IDEMPOTENCY_TABLE-DOpm_oMF.mjs +7 -0
- package/dist/packem_shared/MAIL_RETENTION-DGAQTHHs.mjs +18 -0
- package/dist/packem_shared/MAX_SQL_ROWS-gsiUV0Eo.mjs +5 -0
- package/dist/packem_shared/NotUniqueError-Cxbfyre8.mjs +1 -0
- package/dist/packem_shared/QUEUE_TABLE-s7QJZvBz.mjs +17 -0
- package/dist/packem_shared/RANK_TIEBREAK-D157XEqw.mjs +1 -0
- package/dist/packem_shared/REACTOR_STATE_TABLE-QPRFyxMS.mjs +28 -0
- package/dist/packem_shared/RELATION_EXISTS_KEY-CFUhnZSZ.mjs +1 -0
- package/dist/packem_shared/REPROJECTION_MIGRATION_PREFIX-Czcb6_mO.mjs +1 -0
- package/dist/packem_shared/RLS_UNWRAP_SYMBOL-BWloGsd3.mjs +1 -0
- package/dist/packem_shared/ReactiveCache-BngdZxr9.mjs +1 -0
- package/dist/packem_shared/SCAN_DEP-D7qE3iUe.mjs +1 -0
- package/dist/packem_shared/SCHEMA_HISTORY_MAX_VERSIONS-BluIj2s-.mjs +6 -0
- package/dist/packem_shared/SEARCH_STATE_TABLE-BCqn5ksa.mjs +1 -0
- package/dist/packem_shared/SHAPE_POKE_CURSOR_TABLE-ByJVDHds.mjs +8 -0
- package/dist/packem_shared/ShapeDiffCache-CLm5XXd1.mjs +1 -0
- package/dist/packem_shared/ShardRunner-C9p5DVOx.mjs +1 -0
- package/dist/packem_shared/UNVOUCHABLE_DEP-C68htACn.mjs +1 -0
- package/dist/packem_shared/aggregateTableName-CGi8gxeK.mjs +1 -0
- package/dist/packem_shared/appendStreamChunk-8eH4HB1Q.mjs +19 -0
- package/dist/packem_shared/applyOnDelete-9f4D4g1z.mjs +1 -0
- package/dist/packem_shared/archiveCdcSegment-DU4uzDFQ.mjs +4 -0
- package/dist/packem_shared/{armRestore-BNzdvQ_o.mjs → armRestore-Bu1_8SUa.mjs} +1 -1
- package/dist/packem_shared/awaitWsDrain-CjWMVZOG.mjs +1 -0
- package/dist/packem_shared/backfillAggregateIndexes-BCLXdiIS.mjs +1 -0
- package/dist/packem_shared/base64-DfpzS4o_.mjs +1 -0
- package/dist/packem_shared/buildIndexRange-CBKQmHSS.mjs +1 -0
- package/dist/packem_shared/buildPokeFrames-C8km3IhJ.mjs +1 -0
- package/dist/packem_shared/buildReprojectionMigration-CR2RSgJd.mjs +1 -0
- package/dist/packem_shared/buildSettings-B4igo4rJ.mjs +1 -0
- package/dist/packem_shared/buildShapeDiff-Ds5Q0GJ_.mjs +1 -0
- package/dist/packem_shared/clearMemoryTables-BGbmag2i.mjs +1 -0
- package/dist/packem_shared/compileWhereSql-CCvDjnfy.mjs +1 -0
- package/dist/packem_shared/computeRankPage-BxtyiLn9.mjs +1 -0
- package/dist/packem_shared/createCompanionSync-CJo2Uiq7.mjs +1 -0
- package/dist/packem_shared/createReplicaLink-DujqFlHs.mjs +7 -0
- package/dist/packem_shared/createSystemReader-DcDLFfC-.mjs +1 -0
- package/dist/packem_shared/ctx-db-companions-CN8hWTF_.mjs +1 -0
- package/dist/packem_shared/ctx-db-relay-shapes-CakvRIFx.mjs +17 -0
- package/dist/packem_shared/defineEngineContractSuite-zN1RA5V-.mjs +1 -0
- package/dist/packem_shared/diffExternalSource-DgDJhslq.mjs +1 -0
- package/dist/packem_shared/do-sql-bkXQEBl8.mjs +1 -0
- package/dist/packem_shared/envOptionalPositiveInt-D2pY-c64.mjs +1 -0
- package/dist/packem_shared/estimate-bytes-CzG5x1f8.mjs +1 -0
- package/dist/packem_shared/exportShardRows-CegEECNc.mjs +1 -0
- package/dist/packem_shared/hasTrigger-CjlwI4le.mjs +1 -0
- package/dist/packem_shared/isSoftDeleted-D6x6VWds.mjs +9 -0
- package/dist/packem_shared/liftSourceId-CA3ENhXj.mjs +1 -0
- package/dist/packem_shared/materializeExternalRows-DGjC_8Hc.mjs +1 -0
- package/dist/packem_shared/mergeChangedKeys-D1T-TPUb.mjs +1 -0
- package/dist/packem_shared/param-DlozcSQu.mjs +1 -0
- package/dist/packem_shared/quoteIdentifier-CObIFRhb.mjs +1 -0
- package/dist/packem_shared/runDrizzle-2ULFQR_k.mjs +1 -0
- package/dist/packem_shared/runShardMigrations-D6rTX7Bn.mjs +5 -0
- package/dist/packem_shared/runSocketPool-CZJ2X9cF.mjs +1 -0
- package/dist/packem_shared/selectExpiredIds-D784Mqvh.mjs +1 -0
- package/dist/packem_shared/selectShapeMembers-Dva-Z9VQ.mjs +1 -0
- package/dist/packem_shared/serializeSqlValue-DbI1VQYM.mjs +1 -0
- package/dist/packem_shared/sibling-channel-Cxvk0Zca.mjs +1 -0
- package/dist/packem_shared/sql-projection-BqmxFxQU.mjs +1 -0
- package/dist/packem_shared/stableStringify-DibjylKD.mjs +1 -0
- package/dist/packem_shared/stableWireKey-9bjKL5Gy.mjs +1 -0
- package/dist/packem_shared/where-sql-D6MSVjdL.mjs +1 -0
- package/dist/packem_shared/wire-codec-COhOSEe4.mjs +1 -0
- package/package.json +3 -3
- package/dist/packem_shared/ADMIN_FUNCTIONS-vj2G8OR6.mjs +0 -1
- package/dist/packem_shared/AGGREGATE_SQL_FUNCTION-QYaiuty4.mjs +0 -1
- package/dist/packem_shared/AGG_COUNT-BWXe3gtQ.mjs +0 -1
- package/dist/packem_shared/AUDIT_LOG_TABLE-CaA0jL0L.mjs +0 -8
- package/dist/packem_shared/CDC_LOG_TABLE-BnqlH2eZ.mjs +0 -8
- package/dist/packem_shared/CLIENT_WATERMARK_TABLE-CXsSLU8D.mjs +0 -7
- package/dist/packem_shared/CountRlsUnsupportedError-B2WKJD9v.mjs +0 -1
- package/dist/packem_shared/DATA_MIGRATION_STATE_TABLE-BZMVrLcy.mjs +0 -31
- package/dist/packem_shared/DEFAULT_MAX_RELATION_KEYS-bq00btqV.mjs +0 -1
- package/dist/packem_shared/DEFAULT_MAX_RELAYS-CnCyh6oX.mjs +0 -1
- package/dist/packem_shared/DEFAULT_PROMOTION_THRESHOLDS-Dteg0sZF.mjs +0 -1
- package/dist/packem_shared/DEFAULT_TRANSACTION_LIMITS--TtB8Gpo.mjs +0 -1
- package/dist/packem_shared/FTS_COUNT_COLUMN-D1gY3wwZ-CZHdaRrd.mjs +0 -1
- package/dist/packem_shared/GEO_DEFAULT_PRECISION-okRCkZ6r.mjs +0 -1
- package/dist/packem_shared/GLOBAL_SHAPE_SNAPSHOT_TABLE-DX-6-gBP.mjs +0 -7
- package/dist/packem_shared/IDEMPOTENCY_TABLE-DjkEMp6w.mjs +0 -7
- package/dist/packem_shared/MAIL_RETENTION-KmozO2NQ.mjs +0 -18
- package/dist/packem_shared/MAX_SQL_ROWS-nMwkxv5f.mjs +0 -2
- package/dist/packem_shared/NotUniqueError-C8DLoXSK.mjs +0 -1
- package/dist/packem_shared/QUEUE_TABLE-DYCDvzTG.mjs +0 -17
- package/dist/packem_shared/RANK_TIEBREAK-9NU5s_mi.mjs +0 -1
- package/dist/packem_shared/RELATION_EXISTS_KEY-BaqSIFU1.mjs +0 -1
- package/dist/packem_shared/RLS_UNWRAP_SYMBOL-C6_WX3dG.mjs +0 -1
- package/dist/packem_shared/ReactiveCache-DSGtSVGZ.mjs +0 -1
- package/dist/packem_shared/SCAN_DEP-D_yR9EeV.mjs +0 -1
- package/dist/packem_shared/SCHEMA_HISTORY_MAX_VERSIONS-CHXz6p_z.mjs +0 -6
- package/dist/packem_shared/SEARCH_STATE_TABLE-eLN8U5tz.mjs +0 -1
- package/dist/packem_shared/ShardRunner-DIqVdWtk.mjs +0 -1
- package/dist/packem_shared/aggregateTableName-G-eXyjcz.mjs +0 -1
- package/dist/packem_shared/applyOnDelete-uFRC5p1d.mjs +0 -1
- package/dist/packem_shared/applySelect-B0CF8T7y.mjs +0 -1
- package/dist/packem_shared/awaitWsDrain-Dk50ISgE.mjs +0 -1
- package/dist/packem_shared/backfillAggregateIndexes-BHiewuB-.mjs +0 -1
- package/dist/packem_shared/buildIndexRange-DFsdtPjD.mjs +0 -1
- package/dist/packem_shared/buildPokeFrames-DaPpm5Ss.mjs +0 -1
- package/dist/packem_shared/buildSettings-DT18_DkX.mjs +0 -1
- package/dist/packem_shared/compileWhereSql-BLcfs4QW.mjs +0 -1
- package/dist/packem_shared/computeRankPage-IUSS-zIB.mjs +0 -1
- package/dist/packem_shared/createCompanionSync-DWK0Vlg1.mjs +0 -1
- package/dist/packem_shared/createReadFootprint-DIrrxRTE.mjs +0 -1
- package/dist/packem_shared/createSystemReader-DcDcrtM3.mjs +0 -1
- package/dist/packem_shared/defineEngineContractSuite--yaJW9mT.mjs +0 -1
- package/dist/packem_shared/diffExternalSource-DMpkJta1.mjs +0 -1
- package/dist/packem_shared/estimate-bytes-DzD3PdCc.mjs +0 -1
- package/dist/packem_shared/exportShardRows-kt42wijd.mjs +0 -1
- package/dist/packem_shared/hasTrigger-CbkOHExZ.mjs +0 -1
- package/dist/packem_shared/isSoftDeleted-B-SXkGUo.mjs +0 -9
- package/dist/packem_shared/liftSourceId-DApAbu7Q.mjs +0 -1
- package/dist/packem_shared/materializeExternalRows-DOQJV9p2.mjs +0 -1
- package/dist/packem_shared/mergeChangedKeys-BXtUgIPW.mjs +0 -1
- package/dist/packem_shared/param-B5lF5Jd9.mjs +0 -1
- package/dist/packem_shared/quote-identifier-CGiYFBvY.mjs +0 -1
- package/dist/packem_shared/runDrizzle-GKR3y97k.mjs +0 -1
- package/dist/packem_shared/runShardMigrations-CPxqCh3O.mjs +0 -5
- package/dist/packem_shared/runSocketPool-DPQLVyWF.mjs +0 -1
- package/dist/packem_shared/selectExpiredIds-FzhIEeG1.mjs +0 -1
- package/dist/packem_shared/selectShapeMemberIds-DvE7K6zG.mjs +0 -1
- package/dist/packem_shared/serializeSqlValue-DnpyaLcw.mjs +0 -1
- package/dist/packem_shared/stableStringify-BjLh4gvA.mjs +0 -1
- package/dist/packem_shared/stableWireKey-YEHLaX6X.mjs +0 -1
- package/dist/packem_shared/wire-codec-Ctnni0h6.mjs +0 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LunoraError } from '@lunora/errors';
|
|
2
|
+
import { R2BucketLike, ShardHost, SocketHost, SocketHandle } from '@lunora/platform';
|
|
2
3
|
import { SQL, Name } from 'drizzle-orm';
|
|
3
|
-
import { ShardHost, SocketHost, SocketHandle } from '@lunora/platform';
|
|
4
4
|
interface KeyRange {
|
|
5
5
|
hi: string;
|
|
6
6
|
index: string;
|
|
@@ -27,10 +27,12 @@ interface ScheduledFunctionDoc {
|
|
|
27
27
|
args: Record<string, unknown>;
|
|
28
28
|
attempts?: number;
|
|
29
29
|
enqueuedAt: number;
|
|
30
|
-
functionPath
|
|
30
|
+
functionPath?: string;
|
|
31
31
|
id: string;
|
|
32
|
+
pool?: string;
|
|
32
33
|
scheduledFor: number;
|
|
33
34
|
shardKey?: string;
|
|
35
|
+
workflow?: string;
|
|
34
36
|
}
|
|
35
37
|
interface StorageMetadata {
|
|
36
38
|
contentType?: string;
|
|
@@ -180,9 +182,11 @@ interface SchemaLike {
|
|
|
180
182
|
}
|
|
181
183
|
interface TableDefinitionLike {
|
|
182
184
|
readonly aggregateIndexes?: ReadonlyArray<AggregateIndexDefinitionLike>;
|
|
185
|
+
readonly commitOrderedMode?: boolean;
|
|
183
186
|
readonly geoIndexes?: ReadonlyArray<GeoIndexDefinitionLike>;
|
|
184
187
|
readonly indexes: ReadonlyArray<IndexDefinitionLike>;
|
|
185
188
|
readonly isPublic?: boolean;
|
|
189
|
+
readonly memoryMode?: boolean;
|
|
186
190
|
readonly rankIndexes?: ReadonlyArray<RankIndexDefinitionLike>;
|
|
187
191
|
readonly relationMap?: Record<string, RelationDefinitionLike>;
|
|
188
192
|
readonly searchIndexes?: ReadonlyArray<SearchIndexDefinitionLike>;
|
|
@@ -230,6 +234,7 @@ interface ResolveWithOptions {
|
|
|
230
234
|
groupedCounter: (tableName: string, whereField: string, values: unknown[], policyWhere?: WhereInput) => Promise<Map<unknown, number>>;
|
|
231
235
|
parents: Record<string, unknown>[];
|
|
232
236
|
relationBaseWhere?: (table: string) => undefined | WhereInput;
|
|
237
|
+
relationMask?: RelationMask;
|
|
233
238
|
schema: {
|
|
234
239
|
readonly tables: Record<string, TableDefinitionLike>;
|
|
235
240
|
};
|
|
@@ -248,13 +253,22 @@ interface QueryArgs {
|
|
|
248
253
|
cursor?: null | string;
|
|
249
254
|
includeDeleted?: boolean;
|
|
250
255
|
limit?: number;
|
|
256
|
+
omitContinueCursor?: boolean;
|
|
251
257
|
orderBy?: OrderByInput[];
|
|
252
258
|
relationBaseWhere?: (table: string) => undefined | WhereInput;
|
|
259
|
+
relationMask?: RelationMask;
|
|
253
260
|
restrictsCounts?: boolean;
|
|
254
261
|
select?: ReadonlyArray<string>;
|
|
255
262
|
where?: WhereInput;
|
|
256
263
|
with?: WithInput;
|
|
257
264
|
}
|
|
265
|
+
interface CrossShardReadArgs {
|
|
266
|
+
orderBy?: OrderByInput[];
|
|
267
|
+
relationPolicies?: Record<string, WhereInput>;
|
|
268
|
+
where?: WhereInput;
|
|
269
|
+
with?: WithInput;
|
|
270
|
+
}
|
|
271
|
+
type RelationMask = (table: string, rows: Record<string, unknown>[]) => Record<string, unknown>[];
|
|
258
272
|
interface QueryPage {
|
|
259
273
|
continueCursor: null | string;
|
|
260
274
|
isDone: boolean;
|
|
@@ -264,6 +278,7 @@ interface QueryPage {
|
|
|
264
278
|
interface OrderKey {
|
|
265
279
|
direction: SortDirection;
|
|
266
280
|
field: string;
|
|
281
|
+
nullable: boolean;
|
|
267
282
|
}
|
|
268
283
|
interface RestrictableQueryOptions {
|
|
269
284
|
baseWhere?: WhereInput;
|
|
@@ -414,6 +429,13 @@ interface MutationDelta {
|
|
|
414
429
|
interface DatabaseWriterLike {
|
|
415
430
|
aggregate: (tableName: string, options: AggregateOptions) => Promise<AggregateResult>;
|
|
416
431
|
asId?: (tableName: string, id: string) => string;
|
|
432
|
+
cdcChangedTables?: (sinceSeq: number, options?: {
|
|
433
|
+
cursorOnly?: boolean;
|
|
434
|
+
}) => Promise<{
|
|
435
|
+
cursor: number;
|
|
436
|
+
floor?: number;
|
|
437
|
+
tables: string[];
|
|
438
|
+
} | undefined>;
|
|
417
439
|
count: (tableName: string, where?: RestrictableQueryOptions | WhereInput) => Promise<number>;
|
|
418
440
|
delete: (id: string, expectedTable?: string, options?: {
|
|
419
441
|
hard?: boolean;
|
|
@@ -516,7 +538,6 @@ interface ImportShardResult {
|
|
|
516
538
|
inserted: Record<string, number>;
|
|
517
539
|
}
|
|
518
540
|
declare const selectExportTables: (schema: SchemaLike, requested?: ReadonlyArray<string>) => string[];
|
|
519
|
-
declare const exportShardTable: (writer: DatabaseWriterLike, table: string, batchSize?: number) => AsyncGenerator<ExportRow, void, undefined>;
|
|
520
541
|
declare const exportShardRows: (writer: DatabaseWriterLike, schema: SchemaLike, args: ExportShardArgs) => AsyncGenerator<ExportRow, void, undefined>;
|
|
521
542
|
declare const validateImportRow: (schema: SchemaLike, table: string, record: Record<string, unknown>) => string | undefined;
|
|
522
543
|
declare const importShardRows: (writer: DatabaseWriterLike, schema: SchemaLike, args: ImportShardArgs) => Promise<ImportShardResult>;
|
|
@@ -591,6 +612,7 @@ declare class ReactiveCache {
|
|
|
591
612
|
private readonly maxBytes;
|
|
592
613
|
private readonly now;
|
|
593
614
|
private monotonic;
|
|
615
|
+
private generation;
|
|
594
616
|
constructor(options?: ReactiveCacheOptions);
|
|
595
617
|
run<R>(key: string, deps: Set<string>, run: () => Promise<R>, ranges?: () => ReadonlyArray<KeyRange>): Promise<R>;
|
|
596
618
|
invalidate(table: string, id: string, indexKeys?: ReadonlyArray<IndexKeyEntry>): string[];
|
|
@@ -612,6 +634,7 @@ declare class ReactiveCache {
|
|
|
612
634
|
};
|
|
613
635
|
private dropRangeDeps;
|
|
614
636
|
private collectAndDrop;
|
|
637
|
+
private dropKeys;
|
|
615
638
|
private dropEntry;
|
|
616
639
|
private evict;
|
|
617
640
|
}
|
|
@@ -650,12 +673,18 @@ interface RunTriggersOptions {
|
|
|
650
673
|
}
|
|
651
674
|
declare const runTriggers: (options: RunTriggersOptions) => Promise<void>;
|
|
652
675
|
declare const hasTrigger: (schema: SchemaLike, tableName: string, op: TriggerOpLike) => boolean;
|
|
676
|
+
interface SearchBackfillProgress {
|
|
677
|
+
done: boolean;
|
|
678
|
+
pages: number;
|
|
679
|
+
}
|
|
653
680
|
declare const backfillAggregateIndexes: (sql: SqlExec, schema: SchemaLike) => void;
|
|
654
681
|
declare const backfillRankIndexes: (sql: SqlExec, schema: SchemaLike) => void;
|
|
655
682
|
declare const backfillSearchIndexesForTable: (sql: SqlExec, tableName: string, definition: {
|
|
656
683
|
searchIndexes?: ReadonlyArray<SearchIndexDefinitionLike>;
|
|
657
684
|
}) => void;
|
|
658
|
-
declare const backfillSearchIndexes: (sql: SqlExec, schema: SchemaLike
|
|
685
|
+
declare const backfillSearchIndexes: (sql: SqlExec, schema: SchemaLike, options?: {
|
|
686
|
+
maxPages?: number;
|
|
687
|
+
}) => SearchBackfillProgress;
|
|
659
688
|
declare const CDC_LOG_TABLE = "__cdc_log";
|
|
660
689
|
interface CdcChange {
|
|
661
690
|
doc?: Record<string, unknown>;
|
|
@@ -665,6 +694,7 @@ interface CdcChange {
|
|
|
665
694
|
table: string;
|
|
666
695
|
ts: number;
|
|
667
696
|
}
|
|
697
|
+
declare const CDC_LOG_TABLE_SEQ_INDEX = "__cdc_log_table_seq";
|
|
668
698
|
declare const migrateCdcLog: (sql: SqlExec) => void;
|
|
669
699
|
declare const appendCdcChange: (sql: SqlExec, ts: number, table: string, id: string, op: CdcChange["op"], doc: Record<string, unknown> | undefined) => void;
|
|
670
700
|
declare const readCdcChanges: (sql: SqlExec, options?: {
|
|
@@ -675,9 +705,22 @@ declare const readCdcChanges: (sql: SqlExec, options?: {
|
|
|
675
705
|
changes: CdcChange[];
|
|
676
706
|
cursor: number;
|
|
677
707
|
};
|
|
678
|
-
declare const
|
|
708
|
+
declare const cdcTouchesTables: (sql: SqlExec, sinceSeq: number, tables: ReadonlySet<string>) => boolean;
|
|
709
|
+
declare const cdcCanVouchFor: (sql: SqlExec, deps: ReadonlySet<string>) => boolean;
|
|
710
|
+
interface CdcChangeKey {
|
|
711
|
+
id: string;
|
|
712
|
+
op: CdcChange["op"];
|
|
713
|
+
seq: number;
|
|
714
|
+
}
|
|
715
|
+
declare const readCdcChangeKeys: (sql: SqlExec, table: string, sinceSeq: number, upTo: number) => CdcChangeKey[];
|
|
716
|
+
declare const trimCdcChanges: (sql: SqlExec, throughSeq: number, maxRows: number) => void;
|
|
717
|
+
declare const compactCdcDocs: (sql: SqlExec, throughSeq: number, maxRows: number) => void;
|
|
718
|
+
declare const cdcSeqLeavingRows: (sql: SqlExec, keep: number) => number | undefined;
|
|
679
719
|
declare const readCdcCursor: (sql: SqlExec) => number;
|
|
720
|
+
declare const cursorBelowRetainedFloor: (floor: number | undefined, sinceSeq: number) => boolean;
|
|
721
|
+
declare const cdcTrimmedError: (floor: number, sinceSeq: number, scope: "global" | "shard") => LunoraError;
|
|
680
722
|
declare const minCdcSeq: (sql: SqlExec) => number | undefined;
|
|
723
|
+
declare const minCdcReplayableSeq: (sql: SqlExec) => number | undefined;
|
|
681
724
|
declare const CDC_META_TABLE = "__cdc_meta";
|
|
682
725
|
declare const migrateCdcMeta: (sql: SqlExec) => void;
|
|
683
726
|
declare const readCdcEpoch: (sql: SqlExec) => string;
|
|
@@ -689,7 +732,7 @@ declare const readClientWatermark: (sql: SqlExec, identity: string, clientId: st
|
|
|
689
732
|
declare const advanceClientWatermark: (sql: SqlExec, identity: string, clientId: string, mutationId: number) => void;
|
|
690
733
|
declare const GLOBAL_SHAPE_SNAPSHOT_TABLE = "__global_shape_snapshot";
|
|
691
734
|
declare const migrateGlobalShapeSnapshot: (sql: SqlExec) => void;
|
|
692
|
-
declare const readGlobalShapeSnapshot: (sql: SqlExec, connectionId: string, subId: string) => Map<string, string
|
|
735
|
+
declare const readGlobalShapeSnapshot: (sql: SqlExec, connectionId: string, subId: string) => Map<string, string> | undefined;
|
|
693
736
|
declare const writeGlobalShapeSnapshot: (sql: SqlExec, connectionId: string, subId: string, snapshot: Map<string, string>) => void;
|
|
694
737
|
declare const deleteGlobalShapeSnapshot: (sql: SqlExec, connectionId: string, subId: string) => void;
|
|
695
738
|
declare const deleteGlobalShapeSnapshotsForConnection: (sql: SqlExec, connectionId: string) => void;
|
|
@@ -747,7 +790,7 @@ interface ShapeRow {
|
|
|
747
790
|
id: string;
|
|
748
791
|
}
|
|
749
792
|
declare const selectShapeRows: (sql: SqlExec, table: string, effectiveWhere: WhereInput | undefined) => ShapeRow[];
|
|
750
|
-
declare const
|
|
793
|
+
declare const selectShapeMembers: (sql: SqlExec, table: string, effectiveWhere: WhereInput | undefined, ids: ReadonlyArray<string>) => Map<string, Record<string, unknown>>;
|
|
751
794
|
interface SqlExec {
|
|
752
795
|
exec: <Row = Record<string, unknown>>(sql: string, ...params: unknown[]) => SqlCursor<Row>;
|
|
753
796
|
}
|
|
@@ -776,6 +819,7 @@ interface CtxDbOptions {
|
|
|
776
819
|
globalDb?: DatabaseWriterLike;
|
|
777
820
|
headroom?: TransactionHeadroomTracker;
|
|
778
821
|
idGenerator?: IdGenerator;
|
|
822
|
+
inTransaction?: () => boolean;
|
|
779
823
|
maxRelationKeys?: number;
|
|
780
824
|
onIndexUse?: IndexUseHook;
|
|
781
825
|
onRead?: ReadHook;
|
|
@@ -792,6 +836,7 @@ declare class NotUniqueError extends LunoraError {
|
|
|
792
836
|
constructor(message?: string);
|
|
793
837
|
}
|
|
794
838
|
declare const normalizeIdStructurally: (schema: SchemaLike, tableName: string, id: string) => null | string;
|
|
839
|
+
declare const assertNoExplicitUndefined: (op: "patch" | "replace", document: Record<string, unknown>) => void;
|
|
795
840
|
declare const createShardCtxDb: (options: CtxDbOptions) => DatabaseWriterLike;
|
|
796
841
|
declare const AUDIT_LOG_TABLE = "__lunora_audit__";
|
|
797
842
|
interface AuditEntry {
|
|
@@ -815,6 +860,22 @@ declare const readAuditLog: (sql: SqlExec, options?: {
|
|
|
815
860
|
limit?: number;
|
|
816
861
|
sinceSeq?: number;
|
|
817
862
|
}) => AuditEntry[];
|
|
863
|
+
interface CdcArchiveScope {
|
|
864
|
+
epoch: string;
|
|
865
|
+
shard: string;
|
|
866
|
+
}
|
|
867
|
+
declare const readCdcArchivedThrough: (sql: SqlExec) => number;
|
|
868
|
+
declare const writeCdcArchivedThrough: (sql: SqlExec, seq: number) => void;
|
|
869
|
+
declare const archiveCdcSegment: (bucket: R2BucketLike, scope: CdcArchiveScope, changes: CdcChange[]) => Promise<void>;
|
|
870
|
+
declare const readArchivedCdcChanges: (bucket: R2BucketLike, scope: CdcArchiveScope, sinceSeq: number, limit: number | undefined) => Promise<{
|
|
871
|
+
changes: CdcChange[];
|
|
872
|
+
cursor: number;
|
|
873
|
+
} | undefined>;
|
|
874
|
+
declare const COMMIT_SEQ_TABLE = "__commit_seq";
|
|
875
|
+
declare const COMMIT_SEQ_FIELD = "_commitSeq";
|
|
876
|
+
declare const migrateCommitSeq: (sql: SqlExec) => void;
|
|
877
|
+
declare const readCommitSeq: (sql: SqlExec) => number;
|
|
878
|
+
declare const allocateCommitSeq: (sql: SqlExec) => number;
|
|
818
879
|
interface SubscriptionQuery {
|
|
819
880
|
args?: Record<string, unknown>;
|
|
820
881
|
functionPath?: string;
|
|
@@ -829,9 +890,11 @@ interface ShapeSubscriptionQuery {
|
|
|
829
890
|
sinceSeq?: number;
|
|
830
891
|
}
|
|
831
892
|
interface SubscriptionEnvelope {
|
|
893
|
+
caps?: string[];
|
|
832
894
|
clientId?: string;
|
|
833
895
|
context?: Record<string, unknown>;
|
|
834
896
|
data?: unknown;
|
|
897
|
+
generation?: number;
|
|
835
898
|
id: string;
|
|
836
899
|
query?: SubscriptionQuery;
|
|
837
900
|
shape?: {
|
|
@@ -839,6 +902,7 @@ interface SubscriptionEnvelope {
|
|
|
839
902
|
name: string;
|
|
840
903
|
};
|
|
841
904
|
sinceCheckpoint?: number;
|
|
905
|
+
sinceChunk?: number;
|
|
842
906
|
sinceEpoch?: string;
|
|
843
907
|
topic?: string;
|
|
844
908
|
type: "ack" | "connect" | "shape_subscribe" | "shape_unsubscribe" | "stream" | "subscribe" | "unsubscribe" | "whisper" | "whisper_subscribe" | "whisper_unsubscribe";
|
|
@@ -855,6 +919,7 @@ interface SocketAttachment {
|
|
|
855
919
|
context?: Record<string, unknown>;
|
|
856
920
|
expiresAt?: number;
|
|
857
921
|
identity?: Record<string, unknown>;
|
|
922
|
+
pageDeltas?: boolean;
|
|
858
923
|
shapes?: Record<string, ShapeSubscriptionQuery>;
|
|
859
924
|
subs: Record<string, SubscriptionQuery>;
|
|
860
925
|
userId?: string;
|
|
@@ -900,6 +965,13 @@ interface CompanionSync {
|
|
|
900
965
|
syncSearch: (tableName: string, id: string, document: Record<string, unknown> | undefined, previous?: Record<string, unknown>) => void;
|
|
901
966
|
}
|
|
902
967
|
declare const createCompanionSync: (deps: CompanionSyncDeps) => CompanionSync;
|
|
968
|
+
declare const isMemoryTable: (definition: TableDefinitionLike | undefined) => boolean;
|
|
969
|
+
declare const memoryTableNames: (schema: SchemaLike) => string[];
|
|
970
|
+
declare const clearMemoryTables: (sql: SqlExec, schema: SchemaLike) => number;
|
|
971
|
+
declare const resolveRankSeekTuple: (options: {
|
|
972
|
+
after?: RankPageRowKey;
|
|
973
|
+
cursor?: null | string;
|
|
974
|
+
}) => unknown[] | undefined;
|
|
903
975
|
interface RankPageDeps {
|
|
904
976
|
assertRankPartitionLocal: (tableName: string, definition: TableDefinitionLike, index: RankIndexDefinitionLike) => void;
|
|
905
977
|
ensureRankBackfilled: (tableName: string, index: RankIndexDefinitionLike) => void;
|
|
@@ -917,8 +989,20 @@ interface RankPageComputation {
|
|
|
917
989
|
key: RankPageRowKey;
|
|
918
990
|
}[];
|
|
919
991
|
}
|
|
920
|
-
declare const hydrateDocsById: (deps: RankPageDeps, tableName: string, ids: ReadonlyArray<string>) => Map<string, Record<string, unknown>>;
|
|
921
992
|
declare const computeRankPage: (deps: RankPageDeps, tableName: string, indexName: string, rankPageOptions: RankPageOptions) => RankPageComputation;
|
|
993
|
+
declare const SHAPE_POKE_CURSOR_TABLE = "__shape_poke_cursor";
|
|
994
|
+
declare const migrateShapePokeCursor: (sql: SqlExec) => void;
|
|
995
|
+
declare const readShapePokeCursor: (sql: SqlExec, connectionId: string, subId: string) => number | undefined;
|
|
996
|
+
declare const writeShapePokeCursor: (sql: SqlExec, connectionId: string, subId: string, cursor: number) => void;
|
|
997
|
+
interface ShapePokeCursorRow {
|
|
998
|
+
connectionId: string;
|
|
999
|
+
cursor: number;
|
|
1000
|
+
subId: string;
|
|
1001
|
+
}
|
|
1002
|
+
declare const writeShapePokeCursors: (sql: SqlExec, rows: ReadonlyArray<ShapePokeCursorRow>) => void;
|
|
1003
|
+
declare const minShapePokeCursor: (sql: SqlExec) => number | undefined;
|
|
1004
|
+
declare const deleteShapePokeCursor: (sql: SqlExec, connectionId: string, subId: string) => void;
|
|
1005
|
+
declare const deleteShapePokeCursorsForConnection: (sql: SqlExec, connectionId: string) => void;
|
|
922
1006
|
declare const DATA_MIGRATION_STATE_TABLE = "__lunora_migrations";
|
|
923
1007
|
type MigrationDirection = "down" | "up";
|
|
924
1008
|
type MigrationStatus = "completed" | "failed" | "in_progress";
|
|
@@ -982,10 +1066,10 @@ interface DependencyTracker {
|
|
|
982
1066
|
declare const createDependencyTracker: () => DependencyTracker;
|
|
983
1067
|
declare const runSql: <Row = Record<string, unknown>>(sql: SqlExec, query: string, ...params: unknown[]) => SqlCursor<Row>;
|
|
984
1068
|
declare const runDrizzle: <Row = Record<string, unknown>>(exec: SqlExec, query: SQL) => SqlCursor<Row>;
|
|
1069
|
+
declare const quoteIdentifier: (name: string) => string;
|
|
985
1070
|
declare const serializeSqlValue: (value: unknown) => unknown;
|
|
986
1071
|
declare const DOC_COLUMN = "__doc__";
|
|
987
1072
|
declare const geoTableName: (table: string, indexName: string) => string;
|
|
988
|
-
declare const quoteIdentifier: (name: string) => string;
|
|
989
1073
|
declare const jsonPath: (field: string) => string;
|
|
990
1074
|
declare const jsonPathSql: (field: string) => SQL;
|
|
991
1075
|
declare const qualifiedJsonPath: (table: string, field: string) => string;
|
|
@@ -995,7 +1079,7 @@ declare const AGG_KEY: Name;
|
|
|
995
1079
|
declare const AGG_VALUE: Name;
|
|
996
1080
|
declare const AGG_COUNT: Name;
|
|
997
1081
|
declare const aggUpsertSql: (aggTable: string, key: unknown, value: unknown, count: unknown, set: SQL) => SQL;
|
|
998
|
-
declare const tableColumns: (definition: TableDefinitionLike) => [string, ColumnMetaLike]
|
|
1082
|
+
declare const tableColumns: (definition: TableDefinitionLike) => ReadonlyArray<readonly [string, ColumnMetaLike]>;
|
|
999
1083
|
declare const rowToDocument: (row: Record<string, unknown> | undefined) => Record<string, unknown> | undefined;
|
|
1000
1084
|
declare const tryRowToDocument: (row: Record<string, unknown> | undefined) => Record<string, unknown> | undefined;
|
|
1001
1085
|
declare const isFtsAvailable: (sql: SqlExec) => boolean;
|
|
@@ -1006,6 +1090,79 @@ interface RenderedSql {
|
|
|
1006
1090
|
}
|
|
1007
1091
|
declare const renderSql: (engine: SqlEngine, query: SQL) => RenderedSql;
|
|
1008
1092
|
declare const param: (value: unknown) => SQL;
|
|
1093
|
+
declare const unionAll: (branches: ReadonlyArray<SQL>) => SQL;
|
|
1094
|
+
declare const sqliteInList: (reference: SQL, items: ReadonlyArray<unknown>, negated: boolean, budget?: number) => SQL;
|
|
1095
|
+
type DurableStreamStatus = "complete" | "error" | "running";
|
|
1096
|
+
interface DurableStreamRun {
|
|
1097
|
+
error?: string;
|
|
1098
|
+
errorCode?: string;
|
|
1099
|
+
lastSeq: number;
|
|
1100
|
+
startedAt: number;
|
|
1101
|
+
status: DurableStreamStatus;
|
|
1102
|
+
}
|
|
1103
|
+
interface DurableStreamChunk {
|
|
1104
|
+
dataJson: string;
|
|
1105
|
+
seq: number;
|
|
1106
|
+
}
|
|
1107
|
+
declare const migrateDurableStreams: (sql: SqlExec) => void;
|
|
1108
|
+
declare const readStreamRun: (sql: SqlExec, runKey: string) => DurableStreamRun | undefined;
|
|
1109
|
+
declare const claimStreamRun: (sql: SqlExec, runKey: string, startedAt: number, ttlMs: number) => boolean;
|
|
1110
|
+
declare const deleteStreamRun: (sql: SqlExec, runKey: string) => void;
|
|
1111
|
+
declare const appendStreamChunk: (sql: SqlExec, runKey: string, seq: number, dataJson: string) => void;
|
|
1112
|
+
declare const readStreamChunks: (sql: SqlExec, runKey: string, sinceSeq: number) => DurableStreamChunk[];
|
|
1113
|
+
declare const finishStreamRun: (sql: SqlExec, runKey: string, status: "complete" | "error", lastSeq: number, failure?: {
|
|
1114
|
+
code: string;
|
|
1115
|
+
message: string;
|
|
1116
|
+
}) => void;
|
|
1117
|
+
declare const trimStreamRuns: (sql: SqlExec, now: number) => void;
|
|
1118
|
+
declare const MAX_DURABLE_STREAM_CHUNKS = 50000;
|
|
1119
|
+
declare const MAX_DURABLE_STREAM_BYTES: number;
|
|
1120
|
+
interface DurableStreamSink {
|
|
1121
|
+
readonly chunk: (chunk: {
|
|
1122
|
+
data: unknown;
|
|
1123
|
+
generation?: number;
|
|
1124
|
+
seq: number;
|
|
1125
|
+
}) => boolean;
|
|
1126
|
+
readonly complete: () => void;
|
|
1127
|
+
readonly fail: (failure: {
|
|
1128
|
+
code: string;
|
|
1129
|
+
message: string;
|
|
1130
|
+
}) => void;
|
|
1131
|
+
}
|
|
1132
|
+
type DurableAttachDecision = "attach" | "interrupted" | "reclaim" | "replay-terminal";
|
|
1133
|
+
declare const decideDurableAttach: (run: DurableStreamRun | undefined, context: {
|
|
1134
|
+
generation?: number;
|
|
1135
|
+
live?: {
|
|
1136
|
+
generation: number;
|
|
1137
|
+
};
|
|
1138
|
+
resuming: boolean;
|
|
1139
|
+
}) => DurableAttachDecision;
|
|
1140
|
+
interface DurableStreamAttach {
|
|
1141
|
+
readonly generation?: number;
|
|
1142
|
+
readonly iterator: (signal: AbortSignal) => AsyncIterable<unknown>;
|
|
1143
|
+
readonly runKey: string;
|
|
1144
|
+
readonly sinceChunk: number;
|
|
1145
|
+
readonly sink: DurableStreamSink;
|
|
1146
|
+
readonly ttlMs?: number;
|
|
1147
|
+
}
|
|
1148
|
+
declare class DurableStreamRunner {
|
|
1149
|
+
private lastTrimAt;
|
|
1150
|
+
private readonly runs;
|
|
1151
|
+
private readonly sql;
|
|
1152
|
+
private readonly waitUntil;
|
|
1153
|
+
constructor(dependencies: {
|
|
1154
|
+
sql: () => SqlExec;
|
|
1155
|
+
waitUntil?: (promise: Promise<unknown>) => void;
|
|
1156
|
+
});
|
|
1157
|
+
attach(request: DurableStreamAttach): Promise<void>;
|
|
1158
|
+
detach(runKey: string, sink: DurableStreamSink): void;
|
|
1159
|
+
isLive(runKey: string): boolean;
|
|
1160
|
+
private attachOrThrow;
|
|
1161
|
+
private produce;
|
|
1162
|
+
private trim;
|
|
1163
|
+
}
|
|
1164
|
+
declare const envPositiveInt: (env: unknown, key: string, fallback: number) => number;
|
|
1165
|
+
declare const envOptionalPositiveInt: (env: unknown, key: string) => number | undefined;
|
|
1009
1166
|
interface ExternalSourceDiffResult {
|
|
1010
1167
|
changes: CdcChange[];
|
|
1011
1168
|
nextBaseline: Map<string, string>;
|
|
@@ -1085,6 +1242,19 @@ declare const coveringGeohashes: (center: GeoPoint, radiusMeters: number) => str
|
|
|
1085
1242
|
declare const pointInBoundingBox: (point: GeoPoint, box: GeoBoundingBox) => boolean;
|
|
1086
1243
|
declare const boundingBoxCenter: (box: GeoBoundingBox) => GeoPoint;
|
|
1087
1244
|
declare const boundingBoxGeohashes: (box: GeoBoundingBox) => string[];
|
|
1245
|
+
declare class GlobalPollTick {
|
|
1246
|
+
private readonly changedTables;
|
|
1247
|
+
private readonly reads;
|
|
1248
|
+
private resync;
|
|
1249
|
+
private skippedCount;
|
|
1250
|
+
constructor(changedTables?: Set<string>);
|
|
1251
|
+
get readCount(): number;
|
|
1252
|
+
get resyncRequested(): boolean;
|
|
1253
|
+
get skipped(): number;
|
|
1254
|
+
requestResync(): void;
|
|
1255
|
+
rows(key: string | undefined, load: () => Promise<ShapeRow[]>): Promise<ShapeRow[]>;
|
|
1256
|
+
shouldRead(table: string): boolean;
|
|
1257
|
+
}
|
|
1088
1258
|
declare const ADMIN_FUNCTION_PREFIX = "__lunora_admin__:";
|
|
1089
1259
|
declare const RELATION_FUNCTION_PREFIX = "__lunora_relation__:";
|
|
1090
1260
|
declare const FLAGS_FUNCTION_PREFIX = "__lunora_flags__:";
|
|
@@ -1095,6 +1265,7 @@ declare const ADMIN_FUNCTIONS: {
|
|
|
1095
1265
|
readonly aiGenerateSql: "__lunora_admin__:aiGenerateSql";
|
|
1096
1266
|
readonly aiTableFilter: "__lunora_admin__:aiTableFilter";
|
|
1097
1267
|
readonly assignIssue: "__lunora_admin__:assignIssue";
|
|
1268
|
+
readonly backfillSearch: "__lunora_admin__:backfillSearch";
|
|
1098
1269
|
readonly backRelationCounts: "__lunora_admin__:backRelationCounts";
|
|
1099
1270
|
readonly cdcSync: "__lunora_admin__:cdcSync";
|
|
1100
1271
|
readonly clearCapturedMail: "__lunora_admin__:clearCapturedMail";
|
|
@@ -1133,12 +1304,14 @@ declare const ADMIN_FUNCTIONS: {
|
|
|
1133
1304
|
readonly ignoreIssue: "__lunora_admin__:ignoreIssue";
|
|
1134
1305
|
readonly importShard: "__lunora_admin__:importShard";
|
|
1135
1306
|
readonly listFlags: "__lunora_admin__:listFlags";
|
|
1307
|
+
readonly listReactors: "__lunora_admin__:listReactors";
|
|
1136
1308
|
readonly listQueues: "__lunora_admin__:listQueues";
|
|
1137
1309
|
readonly lintSql: "__lunora_admin__:lintSql";
|
|
1138
1310
|
readonly listTables: "__lunora_admin__:listTables";
|
|
1139
1311
|
readonly listWorkflows: "__lunora_admin__:listWorkflows";
|
|
1140
1312
|
readonly maskPolicies: "__lunora_admin__:maskPolicies";
|
|
1141
1313
|
readonly migrationStatus: "__lunora_admin__:migrationStatus";
|
|
1314
|
+
readonly patchRows: "__lunora_admin__:patchRows";
|
|
1142
1315
|
readonly pitrRestore: "__lunora_admin__:pitrRestore";
|
|
1143
1316
|
readonly rankBefore: "__lunora_admin__:rankBefore";
|
|
1144
1317
|
readonly rankPage: "__lunora_admin__:rankPage";
|
|
@@ -1216,8 +1389,11 @@ interface TablesIndexesResult {
|
|
|
1216
1389
|
indexesByTable: Record<string, TableIndexInfo[]>;
|
|
1217
1390
|
}
|
|
1218
1391
|
interface ColumnMeta {
|
|
1392
|
+
bucket?: string;
|
|
1393
|
+
enumValues?: string[];
|
|
1219
1394
|
isStorage?: boolean;
|
|
1220
1395
|
name: string;
|
|
1396
|
+
nullable?: boolean;
|
|
1221
1397
|
optional: boolean;
|
|
1222
1398
|
pk?: boolean;
|
|
1223
1399
|
ref?: string;
|
|
@@ -1332,6 +1508,19 @@ interface FlagsResult {
|
|
|
1332
1508
|
configured: boolean;
|
|
1333
1509
|
flags: FlagEvaluation[];
|
|
1334
1510
|
}
|
|
1511
|
+
interface ReactorMetadata {
|
|
1512
|
+
errors: number;
|
|
1513
|
+
lastError?: string;
|
|
1514
|
+
lastRanAt?: number;
|
|
1515
|
+
path: string;
|
|
1516
|
+
runs: number;
|
|
1517
|
+
state: "active" | "failing" | "idle";
|
|
1518
|
+
suppressed: number;
|
|
1519
|
+
tables?: ReadonlyArray<string>;
|
|
1520
|
+
}
|
|
1521
|
+
interface ReactorsResult {
|
|
1522
|
+
reactors: ReactorMetadata[];
|
|
1523
|
+
}
|
|
1335
1524
|
interface WorkflowMetadata {
|
|
1336
1525
|
binding: string;
|
|
1337
1526
|
className: string;
|
|
@@ -1413,6 +1602,7 @@ interface ReadTablePageOptions {
|
|
|
1413
1602
|
table: string;
|
|
1414
1603
|
}
|
|
1415
1604
|
interface SelectMatchingIdsOptions {
|
|
1605
|
+
after?: string;
|
|
1416
1606
|
filters?: FilterClause[];
|
|
1417
1607
|
limit?: number;
|
|
1418
1608
|
search?: string;
|
|
@@ -1469,12 +1659,22 @@ interface FanoutPathCounters {
|
|
|
1469
1659
|
socketsIterated: number;
|
|
1470
1660
|
totalMs: number;
|
|
1471
1661
|
}
|
|
1662
|
+
interface ShapeProbeCounters {
|
|
1663
|
+
run: number;
|
|
1664
|
+
served: number;
|
|
1665
|
+
}
|
|
1666
|
+
interface GlobalPollCounters {
|
|
1667
|
+
drains: number;
|
|
1668
|
+
pairsSkipped: number;
|
|
1669
|
+
}
|
|
1472
1670
|
interface FanoutMetricsResult {
|
|
1671
|
+
globalPoll: GlobalPollCounters;
|
|
1473
1672
|
maxRelays: number;
|
|
1474
1673
|
peakSubscribers: number;
|
|
1475
1674
|
promoted: boolean;
|
|
1476
1675
|
relayCount: number;
|
|
1477
1676
|
shapePoke: FanoutPathCounters;
|
|
1677
|
+
shapeProbe: ShapeProbeCounters;
|
|
1478
1678
|
sinceMs: number;
|
|
1479
1679
|
topics: FanoutTopicStat[];
|
|
1480
1680
|
totalConnections: number;
|
|
@@ -1488,6 +1688,10 @@ interface FanoutAttachmentLike {
|
|
|
1488
1688
|
}
|
|
1489
1689
|
declare const DEFAULT_FANOUT_TOPIC_LIMIT = 20;
|
|
1490
1690
|
declare const createFanoutCounters: () => FanoutPathCounters;
|
|
1691
|
+
declare const createShapeProbeCounters: () => ShapeProbeCounters;
|
|
1692
|
+
declare const createGlobalPollCounters: () => GlobalPollCounters;
|
|
1693
|
+
declare const recordGlobalPollPass: (counters: GlobalPollCounters, drains: number, pairsSkipped: number) => GlobalPollCounters;
|
|
1694
|
+
declare const recordShapeProbePass: (counters: ShapeProbeCounters, run: number, served: number) => ShapeProbeCounters;
|
|
1491
1695
|
declare const recordFanoutPass: (counters: FanoutPathCounters, iterated: number, delivered: number, ms: number) => FanoutPathCounters;
|
|
1492
1696
|
declare const summarizeFanoutTopics: (attachments: FanoutAttachmentLike[], limit?: number) => {
|
|
1493
1697
|
peakSubscribers: number;
|
|
@@ -1556,7 +1760,11 @@ interface PitrRestoreArgs {
|
|
|
1556
1760
|
}
|
|
1557
1761
|
declare const readBookmark: (storage: PitrStorage, time?: number | string) => Promise<PitrBookmarkResult>;
|
|
1558
1762
|
declare const armRestore: (storage: PitrStorage, args: PitrRestoreArgs) => Promise<Omit<PitrRestoreResult, "restarted">>;
|
|
1559
|
-
declare const
|
|
1763
|
+
declare const tiebreakDirectionFor: (keys: ReadonlyArray<{
|
|
1764
|
+
direction?: string;
|
|
1765
|
+
}>) => SortDirection;
|
|
1766
|
+
declare const normalizeOrderKeys: (orderBy: OrderByInput[] | undefined, shape?: Record<string, ValidatorLike>) => OrderKey[];
|
|
1767
|
+
declare const CURSOR_PREFIX = "~2";
|
|
1560
1768
|
declare const encodeCursor: (record: Record<string, unknown>, keys: OrderKey[]) => string;
|
|
1561
1769
|
declare const decodeCursor: (cursor: string) => unknown[];
|
|
1562
1770
|
declare const buildSeekWhere: (keys: OrderKey[], cursorValues: unknown[]) => WhereInput;
|
|
@@ -1609,7 +1817,6 @@ declare const clearQueueMessages: (sql: SqlExec) => {
|
|
|
1609
1817
|
declare const encodePartitionKey: (partitionBy: ReadonlyArray<string>, source: Record<string, unknown>) => string;
|
|
1610
1818
|
declare const RANK_TIEBREAK = "__id__";
|
|
1611
1819
|
declare const sortColumnName: (i: number) => string;
|
|
1612
|
-
declare const matchesRankStaticWhere: (document: Record<string, unknown>, predicate: Record<string, unknown>) => boolean;
|
|
1613
1820
|
declare const resolveRankPartition: (index: RankIndexDefinitionLike, where: Record<string, unknown> | undefined) => Record<string, unknown> | undefined;
|
|
1614
1821
|
declare const rankTableName: (table: string, indexName: string) => string;
|
|
1615
1822
|
declare const rankKeyFromDocument: (index: RankIndexDefinitionLike, document_: Record<string, unknown>) => {
|
|
@@ -1617,6 +1824,35 @@ declare const rankKeyFromDocument: (index: RankIndexDefinitionLike, document_: R
|
|
|
1617
1824
|
rowId: string;
|
|
1618
1825
|
sortValues: unknown[];
|
|
1619
1826
|
};
|
|
1827
|
+
declare const matchesRankStaticWhere: (document: Record<string, unknown>, predicate: Record<string, unknown>) => boolean;
|
|
1828
|
+
declare const REACTOR_STATE_TABLE = "__reactor_state";
|
|
1829
|
+
interface ReactorState {
|
|
1830
|
+
digest: string;
|
|
1831
|
+
lastError?: string;
|
|
1832
|
+
lastRanAt: number;
|
|
1833
|
+
stats: ReactorStats;
|
|
1834
|
+
tables?: ReadonlyArray<string>;
|
|
1835
|
+
}
|
|
1836
|
+
interface ReactorStats {
|
|
1837
|
+
errors: number;
|
|
1838
|
+
runs: number;
|
|
1839
|
+
suppressed: number;
|
|
1840
|
+
}
|
|
1841
|
+
declare const migrateReactorState: (sql: SqlExec) => void;
|
|
1842
|
+
declare const readReactorState: (sql: SqlExec, path: string) => ReactorState | undefined;
|
|
1843
|
+
declare const listReactorStates: (sql: SqlExec) => {
|
|
1844
|
+
path: string;
|
|
1845
|
+
state: ReactorState;
|
|
1846
|
+
}[];
|
|
1847
|
+
type ReactorDispatchResult = "error" | "ran" | "suppressed";
|
|
1848
|
+
declare const writeReactorState: (sql: SqlExec, path: string, outcome: {
|
|
1849
|
+
digest?: string;
|
|
1850
|
+
error?: string;
|
|
1851
|
+
now: number;
|
|
1852
|
+
result: ReactorDispatchResult;
|
|
1853
|
+
tables?: ReadonlyArray<string>;
|
|
1854
|
+
}) => void;
|
|
1855
|
+
declare const reactorNeedsRun: (state: Pick<ReactorState, "tables"> | undefined, changed: ReadonlySet<string>) => boolean;
|
|
1620
1856
|
interface ReadFootprint {
|
|
1621
1857
|
onRead: (table: string, idOrScan?: string) => void;
|
|
1622
1858
|
onReadRange: (range: KeyRange) => void;
|
|
@@ -1624,6 +1860,8 @@ interface ReadFootprint {
|
|
|
1624
1860
|
tables: Set<string>;
|
|
1625
1861
|
}
|
|
1626
1862
|
declare const createReadFootprint: () => ReadFootprint;
|
|
1863
|
+
declare const UNVOUCHABLE_DEP = "!unvouchable";
|
|
1864
|
+
declare const markUnvouchableReads: <T extends object>(facade: T, onRead: ReadFootprint["onRead"] | undefined, methods: ReadonlyArray<string>) => T;
|
|
1627
1865
|
declare const DEFAULT_MAX_RELATION_KEYS = 5000;
|
|
1628
1866
|
interface RelationExistsMarker {
|
|
1629
1867
|
childWhere: WhereInput;
|
|
@@ -1658,6 +1896,7 @@ declare const containsRelationPredicate: (where: WhereInput, schema: ResolveCont
|
|
|
1658
1896
|
declare const assertFlatPredicate: (where: WhereInput | undefined, schema: ResolveContext["schema"], tableName: string, op: string) => void;
|
|
1659
1897
|
declare const resolveRelationPredicates: (where: WhereInput | undefined, options: ResolveRelationPredicatesOptions) => Promise<WhereInput | undefined>;
|
|
1660
1898
|
declare const assertShapeShardable: (effectiveWhere: WhereInput | undefined, schema: ResolveContext["schema"], table: string) => void;
|
|
1899
|
+
declare const relationHooks: (args: Pick<QueryArgs, "relationBaseWhere" | "relationMask">) => Pick<QueryArgs, "relationBaseWhere" | "relationMask">;
|
|
1661
1900
|
declare const fanOutScalarCounts: (counter: (tableName: string, where?: WhereInput) => Promise<number>, tableName: string, whereField: string, values: unknown[], policyWhere: WhereInput | undefined) => Promise<Map<unknown, number>>;
|
|
1662
1901
|
declare const distinctValues: (rows: Record<string, unknown>[], field: string) => unknown[];
|
|
1663
1902
|
declare const resolveWith: (options: ResolveWithOptions) => Promise<void>;
|
|
@@ -1682,6 +1921,8 @@ interface ShapeRowOp {
|
|
|
1682
1921
|
value?: Record<string, unknown>;
|
|
1683
1922
|
}
|
|
1684
1923
|
interface ShapePokePart {
|
|
1924
|
+
baseCheckpoint?: number;
|
|
1925
|
+
reset?: boolean;
|
|
1685
1926
|
rowsPatch: ShapeRowOp[];
|
|
1686
1927
|
shapeId: string;
|
|
1687
1928
|
}
|
|
@@ -1762,21 +2003,17 @@ interface RelayShapePoke {
|
|
|
1762
2003
|
type: "relay_shape_poke";
|
|
1763
2004
|
}
|
|
1764
2005
|
type OwnerRelayFrame = RelayAttach | RelayDetach | RelayFrame | RelayShapePoke | RelayShapeSubscribe;
|
|
1765
|
-
|
|
1766
|
-
interface RelayStub {
|
|
2006
|
+
interface SiblingStub {
|
|
1767
2007
|
fetch: (url: string, init?: RequestInit) => Promise<Response>;
|
|
1768
2008
|
}
|
|
1769
|
-
|
|
1770
|
-
get: (id: unknown) => RelayStub;
|
|
1771
|
-
getByName?: (name: string) => RelayStub;
|
|
1772
|
-
idFromName: (name: string) => unknown;
|
|
1773
|
-
}
|
|
2009
|
+
declare const DEFAULT_MAX_RELAYS = 8;
|
|
1774
2010
|
interface RelayHost {
|
|
1775
2011
|
buildShapeDiff: (resolved: ResolvedShape, fromCursor: number, toCursor: number) => ShapeRowOp[];
|
|
1776
2012
|
computeOpLogShapeSeed: (shape: ShapeSubscriptionQuery, resolved: ResolvedShape) => {
|
|
1777
2013
|
baseCheckpoint: number | undefined;
|
|
1778
2014
|
cursor: number;
|
|
1779
2015
|
epoch: string | undefined;
|
|
2016
|
+
reset: boolean;
|
|
1780
2017
|
rowsPatch: ShapeRowOp[];
|
|
1781
2018
|
};
|
|
1782
2019
|
currentCdcEpoch: () => string | undefined;
|
|
@@ -1806,7 +2043,8 @@ declare abstract class RelayLink {
|
|
|
1806
2043
|
handleControl(request: Request): Promise<Response>;
|
|
1807
2044
|
maxRelays(): number;
|
|
1808
2045
|
protected canAddressSiblings(): boolean;
|
|
1809
|
-
protected
|
|
2046
|
+
protected siblingStub(targetName: string): SiblingStub | undefined;
|
|
2047
|
+
protected bindingName(): string | undefined;
|
|
1810
2048
|
protected postRelayMessage(targetName: string, message: OwnerRelayFrame): Promise<void>;
|
|
1811
2049
|
protected requestRelayMessage(targetName: string, message: OwnerRelayFrame): Promise<Response | undefined>;
|
|
1812
2050
|
abstract forwardWhisper(topic: string, frame: string): Promise<void>;
|
|
@@ -1819,6 +2057,7 @@ declare abstract class RelayLink {
|
|
|
1819
2057
|
abstract announceDrain(closing: ShardSocketLike): Promise<void>;
|
|
1820
2058
|
abstract relayCount(): number;
|
|
1821
2059
|
abstract isShapeRelayUniform(name: string, args: Record<string, unknown>): boolean;
|
|
2060
|
+
abstract minShapeCursor(): number | undefined;
|
|
1822
2061
|
protected abstract onAttach(index: number): void;
|
|
1823
2062
|
protected abstract onDetach(index: number): void;
|
|
1824
2063
|
protected abstract onWhisperFrame(message: RelayFrame): Promise<void>;
|
|
@@ -1828,8 +2067,8 @@ declare abstract class RelayLink {
|
|
|
1828
2067
|
declare class OwnerRelay extends RelayLink {
|
|
1829
2068
|
private readonly shapeUniformCache;
|
|
1830
2069
|
private relaySetCache;
|
|
1831
|
-
private
|
|
1832
|
-
private
|
|
2070
|
+
private registryCache;
|
|
2071
|
+
private recordedBinding;
|
|
1833
2072
|
private promotionState;
|
|
1834
2073
|
constructor(host: RelayHost, ownerKey: string);
|
|
1835
2074
|
forwardWhisper(topic: string, frame: string): Promise<void>;
|
|
@@ -1841,16 +2080,23 @@ declare class OwnerRelay extends RelayLink {
|
|
|
1841
2080
|
announce(): Promise<void>;
|
|
1842
2081
|
announceDrain(): Promise<void>;
|
|
1843
2082
|
relayCount(): number;
|
|
2083
|
+
minShapeCursor(): number | undefined;
|
|
1844
2084
|
isShapeRelayUniform(name: string, args: Record<string, unknown>): boolean;
|
|
1845
2085
|
protected onAttach(index: number): void;
|
|
1846
2086
|
protected onDetach(index: number): void;
|
|
1847
2087
|
protected onWhisperFrame(message: RelayFrame): Promise<void>;
|
|
1848
2088
|
protected onShapeSubscribe(message: RelayShapeSubscribe): RelayShapeSeed;
|
|
1849
2089
|
protected onShapePoke(): number;
|
|
2090
|
+
private buildShapePoke;
|
|
1850
2091
|
private multicastShapePokes;
|
|
2092
|
+
private multicastToRelays;
|
|
1851
2093
|
private proxyShapePokes;
|
|
2094
|
+
private proxyToRelay;
|
|
1852
2095
|
private buildShapeSeedFrames;
|
|
1853
|
-
private
|
|
2096
|
+
private ensureRelayTables;
|
|
2097
|
+
protected bindingName(): string | undefined;
|
|
2098
|
+
private relayShapes;
|
|
2099
|
+
private rewindShapeCursor;
|
|
1854
2100
|
private ownerRelaySet;
|
|
1855
2101
|
private addRelayToSet;
|
|
1856
2102
|
private removeRelayFromSet;
|
|
@@ -1871,6 +2117,7 @@ declare class RelayMember extends RelayLink {
|
|
|
1871
2117
|
announceDrain(closing: ShardSocketLike): Promise<void>;
|
|
1872
2118
|
relayCount(): number;
|
|
1873
2119
|
isShapeRelayUniform(): boolean;
|
|
2120
|
+
minShapeCursor(): number | undefined;
|
|
1874
2121
|
protected onAttach(): void;
|
|
1875
2122
|
protected onDetach(): void;
|
|
1876
2123
|
protected onWhisperFrame(): Promise<void>;
|
|
@@ -1880,6 +2127,61 @@ declare class RelayMember extends RelayLink {
|
|
|
1880
2127
|
private deliverShapePoke;
|
|
1881
2128
|
}
|
|
1882
2129
|
declare const createRelayLink: (host: RelayHost) => OwnerRelay | RelayMember | undefined;
|
|
2130
|
+
declare const REGION_HINTS: readonly ["wnam", "enam", "sam", "weur", "eeur", "apac", "apac-ne", "apac-se", "oc", "afr", "me"];
|
|
2131
|
+
type RegionHint = (typeof REGION_HINTS)[number];
|
|
2132
|
+
type ReplicaReadiness = "fresh" | "stale" | "unavailable";
|
|
2133
|
+
interface ShardSiblingHost {
|
|
2134
|
+
doName: () => string | undefined;
|
|
2135
|
+
env: () => unknown;
|
|
2136
|
+
shardBinding: () => string | undefined;
|
|
2137
|
+
sql: () => SqlExec;
|
|
2138
|
+
}
|
|
2139
|
+
interface ReplicaOwnerHost extends ShardSiblingHost {
|
|
2140
|
+
exportRows: () => Promise<ExportRow[]>;
|
|
2141
|
+
ownerCursor: () => number | undefined;
|
|
2142
|
+
ownerEpoch: () => string | undefined;
|
|
2143
|
+
ownerFloor: () => number | undefined;
|
|
2144
|
+
readChanges: (sinceSeq: number, limit: number) => {
|
|
2145
|
+
changes: CdcChange[];
|
|
2146
|
+
cursor: number;
|
|
2147
|
+
};
|
|
2148
|
+
rowCount: () => number;
|
|
2149
|
+
}
|
|
2150
|
+
interface ReplicaFollowerHost extends ShardSiblingHost {
|
|
2151
|
+
applyChanges: (changes: ReadonlyArray<CdcChange>) => Promise<number>;
|
|
2152
|
+
importRows: (rows: ReadonlyArray<ExportRow>) => Promise<{
|
|
2153
|
+
errors: ReadonlyArray<unknown>;
|
|
2154
|
+
}>;
|
|
2155
|
+
}
|
|
2156
|
+
declare const handleReplicaControl: (host: ReplicaOwnerHost, request: Request) => Promise<Response>;
|
|
2157
|
+
declare class ShardReplica {
|
|
2158
|
+
private readonly host;
|
|
2159
|
+
readonly ownerKey: string;
|
|
2160
|
+
readonly region: RegionHint;
|
|
2161
|
+
private divergent;
|
|
2162
|
+
private inFlight;
|
|
2163
|
+
constructor(host: ReplicaFollowerHost, ownerKey: string, region: RegionHint);
|
|
2164
|
+
ensureFresh(minSeq?: number): Promise<ReplicaReadiness>;
|
|
2165
|
+
appliedSeq(): number;
|
|
2166
|
+
isDivergent(): boolean;
|
|
2167
|
+
private advance;
|
|
2168
|
+
private isCaughtUp;
|
|
2169
|
+
private catchUp;
|
|
2170
|
+
private applyPage;
|
|
2171
|
+
private hasDiverged;
|
|
2172
|
+
private bootstrap;
|
|
2173
|
+
private isFreshEnough;
|
|
2174
|
+
private pull;
|
|
2175
|
+
private request;
|
|
2176
|
+
}
|
|
2177
|
+
declare const createReplicaLink: (host: ReplicaFollowerHost) => ShardReplica | undefined;
|
|
2178
|
+
declare const gateReplicaDispatch: (replica: ShardReplica, request: Request, functionPath: string) => Promise<Response | undefined>;
|
|
2179
|
+
declare const REPROJECTION_MIGRATION_PREFIX = "__lunora_reproject__";
|
|
2180
|
+
declare const reprojectionMigrationId: (table: string) => string;
|
|
2181
|
+
declare const reprojectableFields: (definition: TableDefinitionLike) => string[];
|
|
2182
|
+
declare const reprojectionTables: (schema: SchemaLike) => string[];
|
|
2183
|
+
declare const countLegacyRows: (sql: SqlExec, table: string, fields: ReadonlyArray<string>) => number;
|
|
2184
|
+
declare const buildReprojectionMigration: (id: string, schema: SchemaLike, sql: SqlExec) => DataMigrationLike | undefined;
|
|
1883
2185
|
declare const RLS_UNWRAP_SYMBOL: symbol;
|
|
1884
2186
|
declare class RlsRequiredError extends LunoraError {
|
|
1885
2187
|
readonly table: string;
|
|
@@ -1895,7 +2197,8 @@ interface GuardableSchema {
|
|
|
1895
2197
|
}>;
|
|
1896
2198
|
}
|
|
1897
2199
|
type TableOfId = (id: string, expectedTable?: string) => Promise<string | undefined> | string | undefined;
|
|
1898
|
-
|
|
2200
|
+
type TablesOfIds = (ids: ReadonlyArray<string>, expectedTable?: string) => Promise<ReadonlyMap<string, string>> | ReadonlyMap<string, string>;
|
|
2201
|
+
declare const guardWriter: <W>(raw: W, schema: GuardableSchema, tableOfId: TableOfId, tablesOfIds?: TablesOfIds) => W;
|
|
1899
2202
|
declare const SCHEMA_HISTORY_MAX_VERSIONS = 50;
|
|
1900
2203
|
interface SchemaVersionRow {
|
|
1901
2204
|
appliedAt: number;
|
|
@@ -1908,6 +2211,24 @@ declare const readSchemaHistory: (sql: SqlExec) => SchemaVersionRow[];
|
|
|
1908
2211
|
declare const readSchemaVersion: (sql: SqlExec, hash: string) => SchemaVersionRow | undefined;
|
|
1909
2212
|
declare const isDevEnvironment: (rawEnv: unknown) => boolean;
|
|
1910
2213
|
declare const buildSettings: (rawEnv: unknown) => SettingsResult;
|
|
2214
|
+
declare class ShapeDiffCache {
|
|
2215
|
+
private readonly keyScans;
|
|
2216
|
+
private readonly memberProbes;
|
|
2217
|
+
private run;
|
|
2218
|
+
private served;
|
|
2219
|
+
get probesRun(): number;
|
|
2220
|
+
get probesServed(): number;
|
|
2221
|
+
changedKeys(rangeKey: string, load: () => CdcChangeKey[]): ReadonlyArray<CdcChangeKey>;
|
|
2222
|
+
members(resolved: ResolvedShape, rangeKey: string, load: () => Map<string, Record<string, unknown>>): ReadonlyMap<string, Record<string, unknown>>;
|
|
2223
|
+
private getOrLoad;
|
|
2224
|
+
}
|
|
2225
|
+
declare const createShapeDiffCache: () => ShapeDiffCache;
|
|
2226
|
+
declare const globalShapeReadKey: (resolved: ResolvedShape, identity: {
|
|
2227
|
+
identity?: Record<string, unknown>;
|
|
2228
|
+
userId?: string;
|
|
2229
|
+
}) => string | undefined;
|
|
2230
|
+
type ReadShapeCdcKeys = (sql: SqlExec, table: string, sinceSeq: number, upTo: number) => CdcChangeKey[];
|
|
2231
|
+
declare const buildShapeDiff: (sql: SqlExec, resolved: ResolvedShape, sinceSeq: number, upTo: number, cache: ShapeDiffCache, readKeys?: ReadShapeCdcKeys) => ShapeRowOp[];
|
|
1911
2232
|
interface ShardRunnerOptions {
|
|
1912
2233
|
handlers?: {
|
|
1913
2234
|
handleAlarm?: () => Promise<void>;
|
|
@@ -1957,7 +2278,17 @@ interface DrainableSink {
|
|
|
1957
2278
|
readonly bufferedAmount?: unknown;
|
|
1958
2279
|
}
|
|
1959
2280
|
declare const trySendFrame: (ws: FrameSink, frame: string) => boolean;
|
|
1960
|
-
|
|
2281
|
+
interface SubscriptionFrameInput {
|
|
2282
|
+
cursorSuffix: string;
|
|
2283
|
+
lastMutationId?: number;
|
|
2284
|
+
nextResult: unknown;
|
|
2285
|
+
pageDeltas?: boolean;
|
|
2286
|
+
previousJson?: string;
|
|
2287
|
+
snapshotJson: string;
|
|
2288
|
+
subId: string;
|
|
2289
|
+
table: string;
|
|
2290
|
+
}
|
|
2291
|
+
declare const subscriptionFrames: (input: SubscriptionFrameInput) => string[];
|
|
1961
2292
|
declare const awaitWsDrain: (ws: DrainableSink) => Promise<void>;
|
|
1962
2293
|
interface SubscriptionReadFootprint {
|
|
1963
2294
|
ranges?: Map<string, KeyRange[]>;
|
|
@@ -1985,13 +2316,25 @@ declare const selectExpiredIds: (sql: SqlExec, spec: TtlSweepSpec, now: number,
|
|
|
1985
2316
|
hasMore: boolean;
|
|
1986
2317
|
ids: string[];
|
|
1987
2318
|
};
|
|
1988
|
-
|
|
2319
|
+
interface WhereFragments<T> {
|
|
2320
|
+
binary: (reference: T, comparator: string, value: unknown) => T;
|
|
2321
|
+
connect: (left: T, right: T, connector: "AND" | "OR") => T;
|
|
2322
|
+
constant: (value: boolean) => T;
|
|
2323
|
+
contains: (reference: T, term: T) => T;
|
|
2324
|
+
inList: (reference: T, items: ReadonlyArray<unknown>, negated: boolean, budget: number) => T;
|
|
2325
|
+
negate: (inner: T) => T;
|
|
2326
|
+
nullCheck: (reference: T, negated: boolean) => T;
|
|
2327
|
+
value: (value: unknown) => T;
|
|
2328
|
+
}
|
|
2329
|
+
type FieldRefSql<T> = (field: string) => T;
|
|
1989
2330
|
type SerializeValue = (value: unknown) => unknown;
|
|
1990
|
-
interface WhereSqlStrategy {
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
2331
|
+
interface WhereSqlStrategy<T = SQL> {
|
|
2332
|
+
containsExpr?: (reference: T, term: T) => T;
|
|
2333
|
+
fieldRef: FieldRefSql<T>;
|
|
2334
|
+
inList?: (reference: T, items: ReadonlyArray<unknown>, negated: boolean, budget?: number) => T;
|
|
2335
|
+
relationExists?: (request: unknown) => T;
|
|
1994
2336
|
serialize: SerializeValue;
|
|
1995
2337
|
}
|
|
1996
|
-
declare const
|
|
1997
|
-
|
|
2338
|
+
declare const literalInList: (reference: SQL, items: ReadonlyArray<unknown>, negated: boolean) => SQL;
|
|
2339
|
+
declare const compileWhereSql: <T = SQL>(where: WhereInput | undefined, strategy: WhereSqlStrategy<T>, fragments?: WhereFragments<T>) => T | undefined;
|
|
2340
|
+
export { ADMIN_FUNCTIONS, ADMIN_FUNCTION_PREFIX, AGGREGATE_SQL_FUNCTION, AGG_COUNT, AGG_KEY, AGG_VALUE, AUDIT_LOG_TABLE, type AdvisorProcedure, type AdvisorProceduresResult, type AdvisoriesResult, type AdvisoryFinding, type AggregateIndexDefinitionLike, type AggregateOp, type AggregateOptions, type AggregateResult, type AggregateTally, type AppendAuditEntry, type ApplyOnDeleteOptions$1 as ApplyOnDeleteOptions, type AuditEntry, type AuditLogResult, type BroadcastDelta, CDC_LOG_TABLE, CDC_LOG_TABLE_SEQ_INDEX, CDC_META_TABLE, CLIENT_WATERMARK_TABLE, COMMIT_SEQ_FIELD, COMMIT_SEQ_TABLE, CURSOR_PREFIX, type CacheEntry, type CapturedMailRow, type CdcArchiveScope, type CdcChange, type CdcChangeKey, type ChangedKeys, type Clock, type ColumnMeta, type ColumnMetaLike, type CompanionSync, type CompanionSyncDeps, ConflictError, type ConflictKind, type CountArgs, CountRlsUnsupportedError, type CreateWorkflowInstanceResult, type CrossShardReadArgs, type CtxDbOptions, DATA_MIGRATION_STATE_TABLE, DEFAULT_FANOUT_TOPIC_LIMIT, DEFAULT_MAX_RELATION_KEYS, DEFAULT_MAX_RELAYS, DEFAULT_PROMOTION_THRESHOLDS, DEFAULT_TRANSACTION_LIMITS, DOC_COLUMN, type DataMigrationDocument, type DataMigrationLike, type DataMigrationTransform, type DatabaseWriterLike, type DependencyTracker, type DeployInfo, type DurableAttachDecision, type DurableStreamAttach, type DurableStreamRun, DurableStreamRunner, type DurableStreamSink, type ExportRow, type ExportShardAdminArgs, type ExportShardArgs, type ExternalSourceDiffResult, type ExternalSourceLike, FLAGS_FUNCTION_PREFIX, type FacetColumnOptions, type FacetColumnResult, type FacetValue, type FanoutMetricsResult, type FanoutPathCounters, type FanoutTopicStat, type FieldOperators, type FilterClause, type FilterOperator, type FlagEvaluation, type FlagsResult, type FunctionCallStat, type FunctionScanAttribution, type FunctionStatsResult, GEO_DEFAULT_PRECISION, GLOBAL_SHAPE_SNAPSHOT_TABLE, type GeoBoundingBox, type GeoFilterBuilderLike, type GeoIndexDefinitionLike, type GeoPoint, type GeoScoredDocument, type GlobalPollCounters, GlobalPollTick, type GroupByEntry, type GroupByOptions, type GuardableSchema$1 as GuardableSchema, IDEMPOTENCY_TABLE, type IdGenerator, type IdempotentRecord, type ImportError, type ImportShardAdminArgs, type ImportShardArgs, type ImportShardResult, type IncrementalMaterializeResult, type IndexDefinitionLike, type IndexKeyEntry, type IndexRangeBuilderLike, type KeyRange, type LifecycleDispatchInfo, type LifecycleEvent, MAIL_RETENTION, MAIL_TABLE, MAX_DURABLE_STREAM_BYTES, MAX_DURABLE_STREAM_CHUNKS, MAX_PAGE_SIZE, MAX_SQL_ROWS, type MaskColumnMetadata, type MaskPoliciesResult, type MaterializeResult, type MigrationDirection, type MigrationRunResult, type MigrationStatus, type MigrationStatusRow, type MutationDelta, type NestedWith, NotFoundError, NotUniqueError, type OnDeleteActionLike, type OrderByClause, type OrderByInput, type OrderKey, OwnerRelay, type OwnerRelayFrame, type PaginationOptions, type PitrBookmarkResult, type PitrRestoreArgs, type PitrRestoreResult, type PitrStorage, type PokeFrameMeta, type PromotionState, type PromotionThresholds, QUEUE_TABLE, type QueryArgs, type QueryPage, type QueueMessageOutcome, type QueueMessageRow, type QueueMetadata, type QueuesResult, RANK_TIEBREAK, REACTOR_STATE_TABLE, RELATION_EXISTS_KEY, RELATION_FUNCTION_PREFIX, REPROJECTION_MIGRATION_PREFIX, RLS_UNWRAP_SYMBOL, type RankBeforeOptions, type RankBeforeResult, type RankDirection, type RankIndexDefinitionLike, type RankOptions, type RankPage, type RankPageComputation, type RankPageDeps, type RankPageOptions, type RankPageRow, type RankPageRowKey, type RankResult, type RankSortKeyLike, ReactiveCache, type ReactiveCacheOptions, type ReactorDispatchResult, type ReactorMetadata, type ReactorState, type ReactorStats, type ReactorsResult, type ReadFootprint, type ReadHook, type ReadTablePageOptions, type RecordMailInput, type RecordQueueMessageInput, type RelationDefinitionLike, type RelationExistsMarker, type RelayAttach, type RelayDetach, type RelayFrame, type RelayHost, RelayMember, type RelayShapePoke, type RelayShapeSeed, type RelayShapeSubscribe, type RenderedSql, type ReplicaFollowerHost, type ReplicaOwnerHost, type ReplicaReadiness, type ResolveRelationPredicatesOptions, type ResolveWithOptions, type ResolveWithResult, type ResolvedShape, type RestrictableQueryOptions, type RlsPoliciesResult, type RlsPolicyMetadata, RlsRequiredError, type RlsRoleMetadata, type RpcRequest, type RunDataMigrationOptions, type RunTriggersOptions, SCAN_DEP, SCHEMA_HISTORY_MAX_VERSIONS, SEARCH_STATE_TABLE, SHAPE_POKE_CURSOR_TABLE, type SchedulableWorkflowReferenceLike, type ScheduledFunctionDoc, type SchedulerLike, type SchemaLike, type ScoredDocument, type SearchBackfillProgress, type SearchFilterBuilderLike, type SearchIndexDefinitionLike, type SearchScoredDocument, type SelectMatchingIdsOptions, type ServerDefaultContextLike, type SettingEntry, type SettingKind, type SettingsResult, ShapeDiffCache, type ShapePokeCursorRow, type ShapePokePart, type ShapeProbeCounters, type ShapeRow, type ShapeRowOp, type ShapeSubscriptionQuery, type ShardRankPageResult, ShardRunner, type ShardRunnerOptions, type ShardSiblingHost, type ShardSocketLike, type SocketAttachment, type SortDirection, type SourceClientLike, type SourceCursorLike, type SourceRefresh, type SqlConsoleResult, type SqlCursor, type SqlEngine, type SqlExec, type SqlLintResult, type StorageMetadata, type StorageReference, type StorageReferenceResult, type StorageRuleMetadata, type StorageRulesResult, type StudioFeaturesResult, type SubscriptionConnection, type SubscriptionEnvelope, type SubscriptionIdentity, type SubscriptionInfo, type SubscriptionQuery, type SubscriptionReadFootprint, type SubscriptionsResult, type SystemDatabaseReader, type SystemDoc, type SystemQuery, type SystemReaderOptions, type SystemReaderSchedulerLike, type SystemReaderStorageLike, type SystemTableName, type TableColumnsResult, type TableDefinitionLike, type TableIndexInfo, type TableIndexesResult, type TableInfo, type TablePage, type TableReaderLike, type TablesColumnsResult, type TablesIndexesResult, type TransactionHeadroom, TransactionHeadroomTracker, type TransactionLimits, type TransactionSqlLike, type TriggerContextLike, type TriggerDefinitionLike, type TriggerEventLike, type TriggerOpLike, type TriggerTimingLike, type TtlSweepSpec, UNVOUCHABLE_DEP, type ValidatorLike, type WhereInput, type WhereSqlStrategy, type WithInput, type WorkflowInstanceState, type WorkflowInstanceStatusResult, type WorkflowMetadata, type WorkflowsResult, type WriteEvent, type WriteHook, advanceClientWatermark, aggUpsertSql, aggregateSqlFunction, aggregateTableName, allocateCommitSeq, appendAuditEntry, appendCdcChange, appendStreamChunk, applyCdcChanges, applyOnDelete, applySelect, archiveCdcSegment, armRestore, assertFlatPredicate, assertNoExplicitUndefined, assertReadonly, assertShapeShardable, assertValidClientId, awaitWsDrain, backfillAggregateIndexes, backfillRankIndexes, backfillSearchIndexes, backfillSearchIndexesForTable, boundingBoxCenter, boundingBoxGeohashes, buildIndexRange, buildPokeFrames, buildReprojectionMigration, buildSeekBeforeWhere, buildSeekWhere, buildSettings, buildShapeDiff, bumpCdcEpoch, cdcCanVouchFor, cdcSeqLeavingRows, cdcTouchesTables, cdcTrimmedError, claimStreamRun, clampPromotionThresholds, clearCapturedMail, clearMemoryTables, clearQueueMessages, coerceAggregateNumber, compactCdcDocs, compileWhereSql, computeRankPage, containsRelationPredicate, countLegacyRows, coveringGeohashes, createCompanionSync, createDependencyTracker, createFanoutCounters, createGlobalPollCounters, createIndexSql, createReadFootprint, createRelayLink, createReplicaLink, createShapeDiffCache, createShapeProbeCounters, createShardCtxDb, createSystemReader, cursorBelowRetainedFloor, decideDurableAttach, decodeCursor, deleteGlobalShapeSnapshot, deleteGlobalShapeSnapshotsForConnection, deleteShapePokeCursor, deleteShapePokeCursorsForConnection, deleteStreamRun, depKey, diffExternalSource, diffGlobalMembership, distinctValues, encodeAggregateKey, encodeCursor, encodeGeohash, encodePartitionKey, encodeRowsPatch, ensureAuditTable, ensureMailTable, envOptionalPositiveInt, envPositiveInt, exportShardRows, facetColumn, fanOutScalarCounts, findStorageReferences, finishStreamRun, foldAggregateTally, gateReplicaDispatch, geoTableName, globalShapeReadKey, guardWriter, handleReplicaControl, hasTrigger, haversineMeters, importShardRows, indexKeysForRow, isDevEnvironment, isFtsAvailable, isLossyBody, isMemoryTable, isRelationPredicate, isSoftDeleted, isSourceDue, jsonPath, jsonPathSql, keysTouchRanges, liftSourceId, lintReadonlySql, listReactorStates, listTables, literalInList, markUnvouchableReads, matchesRankStaticWhere, matchesStaticWhere, materializeExternalRows, materializeExternalRowsIncremental, memoryTableNames, mergeChangedKeys, mergeWhere, migrateCdcLog, migrateCdcMeta, migrateClientWatermark, migrateCommitSeq, migrateDurableStreams, migrateGlobalShapeSnapshot, migrateIdempotency, migrateReactorState, migrateSearchState, migrateShapePokeCursor, minCdcReplayableSeq, minCdcSeq, minShapePokeCursor, nextPromotionState, normalizeCountArgument, normalizeIdStructurally, normalizeOrderKeys, normalizeSourceDocument, normalizeSourceValue, param, parseExportShardArgs, parseImportShardArgs, planAggregateLookup, pointInBoundingBox, projectColumns, pullExternalSourceIncrementalTick, pullExternalSourceTick, qualifiedJsonPath, qualifiedJsonPathSql, quoteIdentifier, rankKeyFromDocument as rankKeyFromDoc, rankTableName, reactiveCacheKey, reactorNeedsRun, readAggregateValue, readArchivedCdcChanges, readAuditLog, readBookmark, readCapturedMail, readCdcArchivedThrough, readCdcChangeKeys, readCdcChanges, readCdcCursor, readCdcEpoch, readClientWatermark, readCommitSeq, readExternalSourceBaseline, readGlobalShapeSnapshot, readIdempotent, readMigrationStatus, readQueueMessageById, readQueueMessages, readReactorState, readSchemaHistory, readSchemaVersion, readSearchBackfillState, readShapePokeCursor, readStreamChunks, readStreamRun, readTablePage, recordCapturedMail, recordChangedKeys, recordFanoutPass, recordGlobalPollPass, recordQueueMessages, recordSchemaVersion, recordShapeProbePass, relationHooks, relayCountFor, renderSql, reprojectableFields, reprojectionMigrationId, reprojectionTables, resolveRankPartition, resolveRankSeekTuple, resolveRelationPredicates, resolveWith, rowToDocument, runDataMigration, runDrizzle, runExternalSourceTick, runReadonlySql, runRowValidators, runShardMigrations, runSocketPool, runSql, runTriggers, selectExpiredIds, selectExportTables, selectIndexForAggregate, selectIndexForCount, selectIndexForGroupBy, selectMatchingIds, selectShapeMembers, selectShapeRows, serializeSqlValue, shapeRoutingKey, softDeleteScope, sortColumnName, sqliteInList, stableStringify, stableWireKey, subscriptionFrames, subscriptionListDeltas, summarizeFanoutTopics, summarizeSubscriptions, tableColumns, tableFromDepKey, throwingScheduler, tiebreakDirectionFor, trimCdcChanges, trimIdempotent, trimStreamRuns, tryRowToDocument, trySendFrame, unionAll, validateImportRow, writeCdcArchivedThrough, writeGlobalShapeSnapshot, writeIdempotent, writeReactorState, writeSearchBackfillState, writeShapePokeCursor, writeShapePokeCursors, writeTouchesMemo };
|