@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.
Files changed (149) hide show
  1. package/README.md +1 -1
  2. package/dist/conformance/index.mjs +1 -1
  3. package/dist/index.d.mts +375 -32
  4. package/dist/index.d.ts +375 -32
  5. package/dist/index.mjs +1 -1
  6. package/dist/packem_shared/ADMIN_FUNCTIONS-oJ7IyZP6.mjs +1 -0
  7. package/dist/packem_shared/AGGREGATE_SQL_FUNCTION-m1iUU1rv.mjs +1 -0
  8. package/dist/packem_shared/AGG_COUNT-JTc_jUaL.mjs +1 -0
  9. package/dist/packem_shared/AUDIT_LOG_TABLE-ONxmEAIz.mjs +8 -0
  10. package/dist/packem_shared/CDC_LOG_TABLE-gl0FuepJ.mjs +15 -0
  11. package/dist/packem_shared/CLIENT_WATERMARK_TABLE-CRnrAnJ2.mjs +7 -0
  12. package/dist/packem_shared/COMMIT_SEQ_FIELD-BUdOMG5y.mjs +4 -0
  13. package/dist/packem_shared/CURSOR_PREFIX-D4DUGY5z.mjs +1 -0
  14. package/dist/packem_shared/CountRlsUnsupportedError-Bdfupt3g.mjs +1 -0
  15. package/dist/packem_shared/DATA_MIGRATION_STATE_TABLE-Cp6pbyAp.mjs +31 -0
  16. package/dist/packem_shared/DEFAULT_MAX_RELATION_KEYS-B3krmwZL.mjs +1 -0
  17. package/dist/packem_shared/DEFAULT_MAX_RELAYS-Bjx0HDbs.mjs +1 -0
  18. package/dist/packem_shared/DEFAULT_PROMOTION_THRESHOLDS-DpUu_mpH.mjs +1 -0
  19. package/dist/packem_shared/DEFAULT_TRANSACTION_LIMITS-Bcoi7Bvf.mjs +1 -0
  20. package/dist/packem_shared/DurableStreamRunner-CWqdczw1.mjs +1 -0
  21. package/dist/packem_shared/GEO_DEFAULT_PRECISION-CqpQZ-J_.mjs +1 -0
  22. package/dist/packem_shared/GLOBAL_SHAPE_SNAPSHOT_TABLE-DSA6mzyx.mjs +7 -0
  23. package/dist/packem_shared/GlobalPollTick-BNK4o-XT.mjs +1 -0
  24. package/dist/packem_shared/IDEMPOTENCY_TABLE-DOpm_oMF.mjs +7 -0
  25. package/dist/packem_shared/MAIL_RETENTION-DGAQTHHs.mjs +18 -0
  26. package/dist/packem_shared/MAX_SQL_ROWS-gsiUV0Eo.mjs +5 -0
  27. package/dist/packem_shared/NotUniqueError-Cxbfyre8.mjs +1 -0
  28. package/dist/packem_shared/QUEUE_TABLE-s7QJZvBz.mjs +17 -0
  29. package/dist/packem_shared/RANK_TIEBREAK-D157XEqw.mjs +1 -0
  30. package/dist/packem_shared/REACTOR_STATE_TABLE-QPRFyxMS.mjs +28 -0
  31. package/dist/packem_shared/RELATION_EXISTS_KEY-CFUhnZSZ.mjs +1 -0
  32. package/dist/packem_shared/REPROJECTION_MIGRATION_PREFIX-Czcb6_mO.mjs +1 -0
  33. package/dist/packem_shared/RLS_UNWRAP_SYMBOL-BWloGsd3.mjs +1 -0
  34. package/dist/packem_shared/ReactiveCache-BngdZxr9.mjs +1 -0
  35. package/dist/packem_shared/SCAN_DEP-D7qE3iUe.mjs +1 -0
  36. package/dist/packem_shared/SCHEMA_HISTORY_MAX_VERSIONS-BluIj2s-.mjs +6 -0
  37. package/dist/packem_shared/SEARCH_STATE_TABLE-BCqn5ksa.mjs +1 -0
  38. package/dist/packem_shared/SHAPE_POKE_CURSOR_TABLE-ByJVDHds.mjs +8 -0
  39. package/dist/packem_shared/ShapeDiffCache-CLm5XXd1.mjs +1 -0
  40. package/dist/packem_shared/ShardRunner-C9p5DVOx.mjs +1 -0
  41. package/dist/packem_shared/UNVOUCHABLE_DEP-C68htACn.mjs +1 -0
  42. package/dist/packem_shared/aggregateTableName-CGi8gxeK.mjs +1 -0
  43. package/dist/packem_shared/appendStreamChunk-8eH4HB1Q.mjs +19 -0
  44. package/dist/packem_shared/applyOnDelete-9f4D4g1z.mjs +1 -0
  45. package/dist/packem_shared/archiveCdcSegment-DU4uzDFQ.mjs +4 -0
  46. package/dist/packem_shared/{armRestore-BNzdvQ_o.mjs → armRestore-Bu1_8SUa.mjs} +1 -1
  47. package/dist/packem_shared/awaitWsDrain-CjWMVZOG.mjs +1 -0
  48. package/dist/packem_shared/backfillAggregateIndexes-BCLXdiIS.mjs +1 -0
  49. package/dist/packem_shared/base64-DfpzS4o_.mjs +1 -0
  50. package/dist/packem_shared/buildIndexRange-CBKQmHSS.mjs +1 -0
  51. package/dist/packem_shared/buildPokeFrames-C8km3IhJ.mjs +1 -0
  52. package/dist/packem_shared/buildReprojectionMigration-CR2RSgJd.mjs +1 -0
  53. package/dist/packem_shared/buildSettings-B4igo4rJ.mjs +1 -0
  54. package/dist/packem_shared/buildShapeDiff-Ds5Q0GJ_.mjs +1 -0
  55. package/dist/packem_shared/clearMemoryTables-BGbmag2i.mjs +1 -0
  56. package/dist/packem_shared/compileWhereSql-CCvDjnfy.mjs +1 -0
  57. package/dist/packem_shared/computeRankPage-BxtyiLn9.mjs +1 -0
  58. package/dist/packem_shared/createCompanionSync-CJo2Uiq7.mjs +1 -0
  59. package/dist/packem_shared/createReplicaLink-DujqFlHs.mjs +7 -0
  60. package/dist/packem_shared/createSystemReader-DcDLFfC-.mjs +1 -0
  61. package/dist/packem_shared/ctx-db-companions-CN8hWTF_.mjs +1 -0
  62. package/dist/packem_shared/ctx-db-relay-shapes-CakvRIFx.mjs +17 -0
  63. package/dist/packem_shared/defineEngineContractSuite-zN1RA5V-.mjs +1 -0
  64. package/dist/packem_shared/diffExternalSource-DgDJhslq.mjs +1 -0
  65. package/dist/packem_shared/do-sql-bkXQEBl8.mjs +1 -0
  66. package/dist/packem_shared/envOptionalPositiveInt-D2pY-c64.mjs +1 -0
  67. package/dist/packem_shared/estimate-bytes-CzG5x1f8.mjs +1 -0
  68. package/dist/packem_shared/exportShardRows-CegEECNc.mjs +1 -0
  69. package/dist/packem_shared/hasTrigger-CjlwI4le.mjs +1 -0
  70. package/dist/packem_shared/isSoftDeleted-D6x6VWds.mjs +9 -0
  71. package/dist/packem_shared/liftSourceId-CA3ENhXj.mjs +1 -0
  72. package/dist/packem_shared/materializeExternalRows-DGjC_8Hc.mjs +1 -0
  73. package/dist/packem_shared/mergeChangedKeys-D1T-TPUb.mjs +1 -0
  74. package/dist/packem_shared/param-DlozcSQu.mjs +1 -0
  75. package/dist/packem_shared/quoteIdentifier-CObIFRhb.mjs +1 -0
  76. package/dist/packem_shared/runDrizzle-2ULFQR_k.mjs +1 -0
  77. package/dist/packem_shared/runShardMigrations-D6rTX7Bn.mjs +5 -0
  78. package/dist/packem_shared/runSocketPool-CZJ2X9cF.mjs +1 -0
  79. package/dist/packem_shared/selectExpiredIds-D784Mqvh.mjs +1 -0
  80. package/dist/packem_shared/selectShapeMembers-Dva-Z9VQ.mjs +1 -0
  81. package/dist/packem_shared/serializeSqlValue-DbI1VQYM.mjs +1 -0
  82. package/dist/packem_shared/sibling-channel-Cxvk0Zca.mjs +1 -0
  83. package/dist/packem_shared/sql-projection-BqmxFxQU.mjs +1 -0
  84. package/dist/packem_shared/stableStringify-DibjylKD.mjs +1 -0
  85. package/dist/packem_shared/stableWireKey-9bjKL5Gy.mjs +1 -0
  86. package/dist/packem_shared/where-sql-D6MSVjdL.mjs +1 -0
  87. package/dist/packem_shared/wire-codec-COhOSEe4.mjs +1 -0
  88. package/package.json +3 -3
  89. package/dist/packem_shared/ADMIN_FUNCTIONS-vj2G8OR6.mjs +0 -1
  90. package/dist/packem_shared/AGGREGATE_SQL_FUNCTION-QYaiuty4.mjs +0 -1
  91. package/dist/packem_shared/AGG_COUNT-BWXe3gtQ.mjs +0 -1
  92. package/dist/packem_shared/AUDIT_LOG_TABLE-CaA0jL0L.mjs +0 -8
  93. package/dist/packem_shared/CDC_LOG_TABLE-BnqlH2eZ.mjs +0 -8
  94. package/dist/packem_shared/CLIENT_WATERMARK_TABLE-CXsSLU8D.mjs +0 -7
  95. package/dist/packem_shared/CountRlsUnsupportedError-B2WKJD9v.mjs +0 -1
  96. package/dist/packem_shared/DATA_MIGRATION_STATE_TABLE-BZMVrLcy.mjs +0 -31
  97. package/dist/packem_shared/DEFAULT_MAX_RELATION_KEYS-bq00btqV.mjs +0 -1
  98. package/dist/packem_shared/DEFAULT_MAX_RELAYS-CnCyh6oX.mjs +0 -1
  99. package/dist/packem_shared/DEFAULT_PROMOTION_THRESHOLDS-Dteg0sZF.mjs +0 -1
  100. package/dist/packem_shared/DEFAULT_TRANSACTION_LIMITS--TtB8Gpo.mjs +0 -1
  101. package/dist/packem_shared/FTS_COUNT_COLUMN-D1gY3wwZ-CZHdaRrd.mjs +0 -1
  102. package/dist/packem_shared/GEO_DEFAULT_PRECISION-okRCkZ6r.mjs +0 -1
  103. package/dist/packem_shared/GLOBAL_SHAPE_SNAPSHOT_TABLE-DX-6-gBP.mjs +0 -7
  104. package/dist/packem_shared/IDEMPOTENCY_TABLE-DjkEMp6w.mjs +0 -7
  105. package/dist/packem_shared/MAIL_RETENTION-KmozO2NQ.mjs +0 -18
  106. package/dist/packem_shared/MAX_SQL_ROWS-nMwkxv5f.mjs +0 -2
  107. package/dist/packem_shared/NotUniqueError-C8DLoXSK.mjs +0 -1
  108. package/dist/packem_shared/QUEUE_TABLE-DYCDvzTG.mjs +0 -17
  109. package/dist/packem_shared/RANK_TIEBREAK-9NU5s_mi.mjs +0 -1
  110. package/dist/packem_shared/RELATION_EXISTS_KEY-BaqSIFU1.mjs +0 -1
  111. package/dist/packem_shared/RLS_UNWRAP_SYMBOL-C6_WX3dG.mjs +0 -1
  112. package/dist/packem_shared/ReactiveCache-DSGtSVGZ.mjs +0 -1
  113. package/dist/packem_shared/SCAN_DEP-D_yR9EeV.mjs +0 -1
  114. package/dist/packem_shared/SCHEMA_HISTORY_MAX_VERSIONS-CHXz6p_z.mjs +0 -6
  115. package/dist/packem_shared/SEARCH_STATE_TABLE-eLN8U5tz.mjs +0 -1
  116. package/dist/packem_shared/ShardRunner-DIqVdWtk.mjs +0 -1
  117. package/dist/packem_shared/aggregateTableName-G-eXyjcz.mjs +0 -1
  118. package/dist/packem_shared/applyOnDelete-uFRC5p1d.mjs +0 -1
  119. package/dist/packem_shared/applySelect-B0CF8T7y.mjs +0 -1
  120. package/dist/packem_shared/awaitWsDrain-Dk50ISgE.mjs +0 -1
  121. package/dist/packem_shared/backfillAggregateIndexes-BHiewuB-.mjs +0 -1
  122. package/dist/packem_shared/buildIndexRange-DFsdtPjD.mjs +0 -1
  123. package/dist/packem_shared/buildPokeFrames-DaPpm5Ss.mjs +0 -1
  124. package/dist/packem_shared/buildSettings-DT18_DkX.mjs +0 -1
  125. package/dist/packem_shared/compileWhereSql-BLcfs4QW.mjs +0 -1
  126. package/dist/packem_shared/computeRankPage-IUSS-zIB.mjs +0 -1
  127. package/dist/packem_shared/createCompanionSync-DWK0Vlg1.mjs +0 -1
  128. package/dist/packem_shared/createReadFootprint-DIrrxRTE.mjs +0 -1
  129. package/dist/packem_shared/createSystemReader-DcDcrtM3.mjs +0 -1
  130. package/dist/packem_shared/defineEngineContractSuite--yaJW9mT.mjs +0 -1
  131. package/dist/packem_shared/diffExternalSource-DMpkJta1.mjs +0 -1
  132. package/dist/packem_shared/estimate-bytes-DzD3PdCc.mjs +0 -1
  133. package/dist/packem_shared/exportShardRows-kt42wijd.mjs +0 -1
  134. package/dist/packem_shared/hasTrigger-CbkOHExZ.mjs +0 -1
  135. package/dist/packem_shared/isSoftDeleted-B-SXkGUo.mjs +0 -9
  136. package/dist/packem_shared/liftSourceId-DApAbu7Q.mjs +0 -1
  137. package/dist/packem_shared/materializeExternalRows-DOQJV9p2.mjs +0 -1
  138. package/dist/packem_shared/mergeChangedKeys-BXtUgIPW.mjs +0 -1
  139. package/dist/packem_shared/param-B5lF5Jd9.mjs +0 -1
  140. package/dist/packem_shared/quote-identifier-CGiYFBvY.mjs +0 -1
  141. package/dist/packem_shared/runDrizzle-GKR3y97k.mjs +0 -1
  142. package/dist/packem_shared/runShardMigrations-CPxqCh3O.mjs +0 -5
  143. package/dist/packem_shared/runSocketPool-DPQLVyWF.mjs +0 -1
  144. package/dist/packem_shared/selectExpiredIds-FzhIEeG1.mjs +0 -1
  145. package/dist/packem_shared/selectShapeMemberIds-DvE7K6zG.mjs +0 -1
  146. package/dist/packem_shared/serializeSqlValue-DnpyaLcw.mjs +0 -1
  147. package/dist/packem_shared/stableStringify-BjLh4gvA.mjs +0 -1
  148. package/dist/packem_shared/stableWireKey-YEHLaX6X.mjs +0 -1
  149. package/dist/packem_shared/wire-codec-Ctnni0h6.mjs +0 -1
package/dist/index.d.ts 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: string;
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) => void;
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 trimCdcChanges: (sql: SqlExec, throughSeq: number) => void;
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 selectShapeMemberIds: (sql: SqlExec, table: string, effectiveWhere: WhereInput | undefined, ids: ReadonlyArray<string>) => Set<string>;
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 normalizeOrderKeys: (orderBy: OrderByInput[] | undefined) => OrderKey[];
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
- declare const DEFAULT_MAX_RELAYS = 8;
1766
- interface RelayStub {
2006
+ interface SiblingStub {
1767
2007
  fetch: (url: string, init?: RequestInit) => Promise<Response>;
1768
2008
  }
1769
- interface RelayNamespaceLike {
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 relayNamespace(): RelayNamespaceLike | undefined;
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 readonly relayShapeRegistry;
1832
- private readonly relayShapeProxies;
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 ensureRelayTable;
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
- declare const guardWriter: <W>(raw: W, schema: GuardableSchema, tableOfId: TableOfId) => W;
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
- declare const sendDeltaFrames: (ws: FrameSink, subId: string, deltaFrames: ReadonlyArray<string>, cursorSuffix: string) => boolean;
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
- type FieldRefSql = (field: string) => SQL;
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
- fieldRef: FieldRefSql;
1992
- likeContains?: (reference: SQL, term: SQL) => SQL;
1993
- relationExists?: (request: unknown) => SQL;
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 compileWhereSql: (where: WhereInput | undefined, strategy: WhereSqlStrategy) => SQL | undefined;
1997
- 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_META_TABLE, CLIENT_WATERMARK_TABLE, type CacheEntry, type CapturedMailRow, type CdcChange, type ChangedKeys, type Clock, type ColumnMeta, type ColumnMetaLike, type CompanionSync, type CompanionSyncDeps, ConflictError, type ConflictKind, type CountArgs, CountRlsUnsupportedError, type CreateWorkflowInstanceResult, 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 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 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_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, RELATION_EXISTS_KEY, RELATION_FUNCTION_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 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 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, type SchedulableWorkflowReferenceLike, type ScheduledFunctionDoc, type SchedulerLike, type SchemaLike, type ScoredDocument, type SearchFilterBuilderLike, type SearchIndexDefinitionLike, type SearchScoredDocument, type SelectMatchingIdsOptions, type ServerDefaultContextLike, type SettingEntry, type SettingKind, type SettingsResult, type ShapePokePart, type ShapeRow, type ShapeRowOp, type ShapeSubscriptionQuery, type ShardRankPageResult, ShardRunner, type ShardRunnerOptions, 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, type ValidatorLike, type WhereInput, type WhereSqlStrategy, type WithInput, type WorkflowInstanceState, type WorkflowInstanceStatusResult, type WorkflowMetadata, type WorkflowsResult, type WriteEvent, type WriteHook, advanceClientWatermark, aggUpsertSql, aggregateSqlFunction, aggregateTableName, appendAuditEntry, appendCdcChange, applyCdcChanges, applyOnDelete, applySelect, armRestore, assertFlatPredicate, assertReadonly, assertShapeShardable, assertValidClientId, awaitWsDrain, backfillAggregateIndexes, backfillRankIndexes, backfillSearchIndexes, backfillSearchIndexesForTable, boundingBoxCenter, boundingBoxGeohashes, buildIndexRange, buildPokeFrames, buildSeekBeforeWhere, buildSeekWhere, buildSettings, bumpCdcEpoch, clampPromotionThresholds, clearCapturedMail, clearQueueMessages, coerceAggregateNumber, compileWhereSql, computeRankPage, containsRelationPredicate, coveringGeohashes, createCompanionSync, createDependencyTracker, createFanoutCounters, createIndexSql, createReadFootprint, createRelayLink, createShardCtxDb, createSystemReader, decodeCursor, deleteGlobalShapeSnapshot, deleteGlobalShapeSnapshotsForConnection, depKey, diffExternalSource, diffGlobalMembership, distinctValues, encodeAggregateKey, encodeCursor, encodeGeohash, encodePartitionKey, encodeRowsPatch, ensureAuditTable, ensureMailTable, exportShardRows, exportShardTable, facetColumn, fanOutScalarCounts, findStorageReferences, foldAggregateTally, geoTableName, guardWriter, hasTrigger, haversineMeters, hydrateDocsById, importShardRows, indexKeysForRow, isDevEnvironment, isFtsAvailable, isLossyBody, isRelationPredicate, isSoftDeleted, isSourceDue, jsonPath, jsonPathSql, keysTouchRanges, liftSourceId, lintReadonlySql, listTables, matchesRankStaticWhere, matchesStaticWhere, materializeExternalRows, materializeExternalRowsIncremental, mergeChangedKeys, mergeWhere, migrateCdcLog, migrateCdcMeta, migrateClientWatermark, migrateGlobalShapeSnapshot, migrateIdempotency, migrateSearchState, minCdcSeq, nextPromotionState, normalizeCountArgument, normalizeIdStructurally, normalizeOrderKeys, normalizeSourceDocument, normalizeSourceValue, param, parseExportShardArgs, parseImportShardArgs, planAggregateLookup, pointInBoundingBox, projectColumns, pullExternalSourceIncrementalTick, pullExternalSourceTick, qualifiedJsonPath, qualifiedJsonPathSql, quoteIdentifier, rankKeyFromDocument as rankKeyFromDoc, rankTableName, reactiveCacheKey, readAggregateValue, readAuditLog, readBookmark, readCapturedMail, readCdcChanges, readCdcCursor, readCdcEpoch, readClientWatermark, readExternalSourceBaseline, readGlobalShapeSnapshot, readIdempotent, readMigrationStatus, readQueueMessageById, readQueueMessages, readSchemaHistory, readSchemaVersion, readSearchBackfillState, readTablePage, recordCapturedMail, recordChangedKeys, recordFanoutPass, recordQueueMessages, recordSchemaVersion, relayCountFor, renderSql, resolveRankPartition, resolveRelationPredicates, resolveWith, rowToDocument, runDataMigration, runDrizzle, runExternalSourceTick, runReadonlySql, runRowValidators, runShardMigrations, runSocketPool, runSql, runTriggers, selectExpiredIds, selectExportTables, selectIndexForAggregate, selectIndexForCount, selectIndexForGroupBy, selectMatchingIds, selectShapeMemberIds, selectShapeRows, sendDeltaFrames, serializeSqlValue, shapeRoutingKey, softDeleteScope, sortColumnName, stableStringify, stableWireKey, subscriptionListDeltas, summarizeFanoutTopics, summarizeSubscriptions, tableColumns, tableFromDepKey, throwingScheduler, trimCdcChanges, trimIdempotent, tryRowToDocument, trySendFrame, validateImportRow, writeGlobalShapeSnapshot, writeIdempotent, writeSearchBackfillState, writeTouchesMemo };
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 };