@supalive/core 1.1.0 → 1.2.1

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 (85) hide show
  1. package/README.md +28 -0
  2. package/dist/db-ClCicssQ.js +28 -0
  3. package/dist/db-ClCicssQ.js.map +1 -0
  4. package/dist/{index-DouKwYL6.d.ts → index-DJYvJYR4.d.ts} +214 -9
  5. package/dist/index-DJYvJYR4.d.ts.map +1 -0
  6. package/dist/{mysql-Bxurg_PH.d.ts → mysql-53W9lRh9.d.ts} +8 -3
  7. package/dist/mysql-53W9lRh9.d.ts.map +1 -0
  8. package/dist/{mysql-bvnjYWvZ.js → mysql-C0mysDQ_.js} +57 -25
  9. package/dist/mysql-C0mysDQ_.js.map +1 -0
  10. package/dist/{overlap-checker-Ct_HP_iB.js → overlap-checker-ClJC0nxW.js} +52 -4
  11. package/dist/overlap-checker-ClJC0nxW.js.map +1 -0
  12. package/dist/{postgres-Ck-xt72U.d.ts → postgres-7d6R9P7w.d.ts} +8 -3
  13. package/dist/postgres-7d6R9P7w.d.ts.map +1 -0
  14. package/dist/{postgres-B8u1YN8X.js → postgres-SvdXfb0w.js} +55 -22
  15. package/dist/postgres-SvdXfb0w.js.map +1 -0
  16. package/dist/{procedure-DX87tyef.js → procedure-Ze1GE-N9.js} +33 -2
  17. package/dist/procedure-Ze1GE-N9.js.map +1 -0
  18. package/dist/{query-Bh0RNxDz.js → query-CrbJ_W0W.js} +21 -1
  19. package/dist/query-CrbJ_W0W.js.map +1 -0
  20. package/dist/{realtime_db-DOCgqbwi.js → realtime_db-BtwBABDY.js} +76 -51
  21. package/dist/realtime_db-BtwBABDY.js.map +1 -0
  22. package/dist/{router-DlTYWpop.js → router-CiWYeWUR.js} +8 -2
  23. package/dist/router-CiWYeWUR.js.map +1 -0
  24. package/dist/src/client/index.d.ts +1 -1
  25. package/dist/src/client/index.js +44 -5
  26. package/dist/src/client/index.js.map +1 -1
  27. package/dist/src/exports/mysql.d.ts +1 -1
  28. package/dist/src/exports/mysql.js +1 -1
  29. package/dist/src/exports/postgres.d.ts +1 -1
  30. package/dist/src/exports/postgres.js +1 -1
  31. package/dist/src/exports/procedure.d.ts +2 -2
  32. package/dist/src/exports/procedure.js +4 -4
  33. package/dist/src/exports/schema-sql.d.ts +36 -2
  34. package/dist/src/exports/schema-sql.d.ts.map +1 -1
  35. package/dist/src/exports/schema-sql.js +74 -19
  36. package/dist/src/exports/schema-sql.js.map +1 -1
  37. package/dist/src/exports/server.d.ts +65 -17
  38. package/dist/src/exports/server.d.ts.map +1 -1
  39. package/dist/src/exports/server.js +724 -63
  40. package/dist/src/exports/server.js.map +1 -1
  41. package/dist/src/exports/subscription-manager-worker-entry.js +8 -5
  42. package/dist/src/exports/subscription-manager-worker-entry.js.map +1 -1
  43. package/dist/src/exports/types.d.ts +3 -3
  44. package/dist/src/exports/types.js +1 -1
  45. package/dist/{subscription-worker-CqoWp6zB.js → subscription-worker-B2XtjFWY.js} +307 -69
  46. package/dist/subscription-worker-B2XtjFWY.js.map +1 -0
  47. package/dist/{types_db-DXj_l9n-.js → types_db-CTRm_awX.js} +7 -2
  48. package/dist/types_db-CTRm_awX.js.map +1 -0
  49. package/dist/types_server-wW3ZgE7l.d.ts +420 -0
  50. package/dist/types_server-wW3ZgE7l.d.ts.map +1 -0
  51. package/package.json +5 -4
  52. package/dist/index-CaWMDqq0.d.ts +0 -1754
  53. package/dist/index-CaWMDqq0.d.ts.map +0 -1
  54. package/dist/index-DouKwYL6.d.ts.map +0 -1
  55. package/dist/mysql-Bxurg_PH.d.ts.map +0 -1
  56. package/dist/mysql-Cxd4Uq5p.d.ts +0 -104
  57. package/dist/mysql-Cxd4Uq5p.d.ts.map +0 -1
  58. package/dist/mysql-bvnjYWvZ.js.map +0 -1
  59. package/dist/overlap-checker-Ct_HP_iB.js.map +0 -1
  60. package/dist/postgres-B8u1YN8X.js.map +0 -1
  61. package/dist/postgres-CfT_aDx3.d.ts +0 -108
  62. package/dist/postgres-CfT_aDx3.d.ts.map +0 -1
  63. package/dist/postgres-Ck-xt72U.d.ts.map +0 -1
  64. package/dist/procedure-DX87tyef.js.map +0 -1
  65. package/dist/query-Bh0RNxDz.js.map +0 -1
  66. package/dist/realtime_db-DOCgqbwi.js.map +0 -1
  67. package/dist/router-DlTYWpop.js.map +0 -1
  68. package/dist/src/exports/codegen.d.ts +0 -38
  69. package/dist/src/exports/codegen.d.ts.map +0 -1
  70. package/dist/src/exports/codegen.js +0 -134
  71. package/dist/src/exports/codegen.js.map +0 -1
  72. package/dist/subscription-worker-CqoWp6zB.js.map +0 -1
  73. package/dist/subscription-worker-PtmJWEj1.js +0 -511
  74. package/dist/subscription-worker-PtmJWEj1.js.map +0 -1
  75. package/dist/subscription-worker-pahX0zxg.js +0 -511
  76. package/dist/subscription-worker-pahX0zxg.js.map +0 -1
  77. package/dist/types_db-DXj_l9n-.js.map +0 -1
  78. package/dist/types_server-BW1ys_SK.d.ts +0 -216
  79. package/dist/types_server-BW1ys_SK.d.ts.map +0 -1
  80. package/dist/types_server-Dpsi0wpG.d.ts +0 -216
  81. package/dist/types_server-Dpsi0wpG.d.ts.map +0 -1
  82. package/dist/types_server-DzrIccyO.d.ts +0 -216
  83. package/dist/types_server-DzrIccyO.d.ts.map +0 -1
  84. package/dist/types_server-TFo6SWDH.d.ts +0 -216
  85. package/dist/types_server-TFo6SWDH.d.ts.map +0 -1
package/README.md CHANGED
@@ -31,6 +31,7 @@ npm install @supalive/core
31
31
  - `@supalive/core/types` - Type definitions
32
32
  - `@supalive/core/server` - Server implementation
33
33
  - `@supalive/core/client` - Client implementation
34
+ - `@supalive/core/schema-sql` - Generate `schema.sql` from your `defineSchema` definitions
34
35
 
35
36
 
36
37
 
@@ -149,6 +150,33 @@ function Todos() {
149
150
 
150
151
  Open this page in two tabs. Click **add** in one. Watch the list grow in both, automatically.
151
152
 
153
+ ## Database setup
154
+
155
+ Supalive is code-first: your `defineSchema` calls are the source of truth for the SQL. Generate a `schema.sql` from them and apply it to your database **before** starting the server.
156
+
157
+ ```ts
158
+ // schema-gen.ts
159
+ import { generateSchemaSql, trackSchema } from "@supalive/core/schema-sql";
160
+ import { writeFileSync } from "node:fs";
161
+
162
+ trackSchema(); // register every defineSchema on import
163
+ await import("./procedures.js"); // side-effect: runs your defineSchema calls
164
+
165
+ writeFileSync("schema.sql", generateSchemaSql(undefined, { dialect: "postgres" }));
166
+ ```
167
+
168
+ The generated file contains:
169
+
170
+ - **Your tables** — one `CREATE TABLE` per `defineSchema`, plus an automatic index on each table's `commit_ts` column (`<table>_commit_ts_idx`) that the OCC / commit-log paths rely on.
171
+ - **Framework-owned core objects** — `commit_logs`, `metadata`, and the `global_commit_ts` commit-timestamp source (a sequence on Postgres, a `BIGINT` counter table on MySQL), plus their indexes — prepended automatically. Opt out with `generateSchemaSql(..., { includeCoreTables: false })`.
172
+
173
+ Apply `schema.sql`, then boot the server. `initDatabase` runs `initCore` on startup, which seeds the core **runtime** state — the `metadata` rows (and, on MySQL, the counter's initial value) — up to the current `CORE_VERSION`. It is:
174
+
175
+ - **Versioned** — the applied version lives in `metadata.core_version`; each core release that needs a new database operation bumps `CORE_VERSION` and applies only the missing steps.
176
+ - **Concurrency-safe** — the migration runs under a cross-process lock (Postgres `pg_advisory_xact_lock`, MySQL `GET_LOCK`) behind a lock-free fast path, so many instances can boot at once and only one applies it.
177
+
178
+ > **Order matters:** apply the generated schema (which creates the `metadata` table) before the first `initDatabase` call — `initCore` reads its version from `metadata`.
179
+
152
180
  ## Why this exists
153
181
 
154
182
  Postgres `LISTEN/NOTIFY` is row-level — you get a notification, you still have to figure out which queries it affects. Supabase Realtime is great for broadcast, presence, and a row-level changefeed, but it doesn't answer the question every reactive app actually has: *"re-run this exact query when its result would change."*
@@ -0,0 +1,28 @@
1
+ //#region src/db/db.ts
2
+ /** Fixed key for the PG advisory lock that serializes core init across processes. */
3
+ const CORE_INIT_LOCK_KEY = 895124309;
4
+ /** Name for the MySQL `GET_LOCK` that serializes core init across processes. */
5
+ const CORE_INIT_LOCK_NAME = "supalive_core_init";
6
+ var LazyCommitTsParam = class LazyCommitTsParam {
7
+ value;
8
+ constructor(value) {
9
+ this.value = value;
10
+ }
11
+ toPostgres(prepareValue) {
12
+ return prepareValue(this.value);
13
+ }
14
+ toString() {
15
+ return this.value.toString();
16
+ }
17
+ validate() {
18
+ const p = new LazyCommitTsParam(void 0);
19
+ const hasNotObjConstructor = p.constructor !== Object;
20
+ const hasNotToJSON = typeof p.toJSON !== "function";
21
+ console.log("constructor must not object", hasNotObjConstructor);
22
+ console.log("should not have toJSON", hasNotToJSON);
23
+ }
24
+ };
25
+ //#endregion
26
+ export { CORE_INIT_LOCK_NAME as n, LazyCommitTsParam as r, CORE_INIT_LOCK_KEY as t };
27
+
28
+ //# sourceMappingURL=db-ClCicssQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-ClCicssQ.js","names":[],"sources":["../src/db/db.ts"],"sourcesContent":["import { CacheLayer } from \"./cache\";\nimport type { CommitLogEntry, PointRead, RawPointRead, RawReadEntry } from \"./types_db\";\nimport { ReadEntry, WriteEntry } from \"./types_db\";\n\nexport interface DbQueryResult<T = any> {\n rows: T[];\n rowCount?: number | null;\n}\n\nexport interface RawClient {\n query<T = any>(sql: string, params?: unknown[]): Promise<DbQueryResult<T>>;\n}\n\nexport interface PooledClient extends RawClient {\n release(): void;\n}\n\nexport type DbType = \"postgres\" | \"mysql\";\n\n/** Fixed key for the PG advisory lock that serializes core init across processes. */\nexport const CORE_INIT_LOCK_KEY = 895124309;\n/** Name for the MySQL `GET_LOCK` that serializes core init across processes. */\nexport const CORE_INIT_LOCK_NAME = \"supalive_core_init\";\n\nexport interface PendingPointEntry {\n entry: PointRead;\n /* Table name and point read id = key = `${tableName} ${entry.id}` */\n key: string;\n}\n\nexport interface PreparedQuery {\n sql: string;\n params: unknown[] | unknown[][];\n operation: \"insertSingle\" | \"insertBatch\" | \"updateSingle\" | \"updateBatch\" | \"deleteSingle\" | \"deleteBatch\" | \"pointReadValidation\" | \"commit_logs\";\n table: string;\n entryId?: unknown;\n expectedTs?: bigint,\n entries?: WriteEntry[],\n pendingsEntry?: PendingPointEntry[];\n};\n\nexport interface PreparedQueries {\n commits: PreparedQuery[];\n validateReadPoints?: PreparedQuery[];\n hasRangeRead: boolean;\n tableIds?: Uint8Array[];\n rawReadSet?: RawReadEntry[],\n}\n\n/**\n * Bound to a single dedicated connection that holds the core-init lock. Passed\n * to the callback of {@link Database.withCoreInitLock} so version reads/writes\n * and migration statements all run under the same lock.\n */\nexport interface CoreInitLockCtx {\n exec(sql: string, params?: unknown[]): Promise<DbQueryResult>;\n getVersion(): Promise<bigint>;\n setVersion(version: bigint): Promise<void>;\n}\n\nexport interface Database {\n readonly dbType: DbType;\n readonly sqlBuilder: SqlBuilder;\n columnTypes: Map<string, Map<string, string>>;\n /**\n * Current core schema version stored in `metadata.core_version`, or `0n`\n * when unset. Read on a pooled connection for the lock-free fast path of\n * {@link initCore}.\n */\n getCoreVersion(): Promise<bigint>;\n /**\n * Runtime bootstrap statements to apply when migrating core TO `toVersion`\n * (i.e. the `toVersion - 1` → `toVersion` step): data seeds, backfills, or a\n * schema change that must be applied directly at runtime. Dialect-specific;\n * the core schema (tables, indexes, the `global_commit_ts` sequence/counter)\n * lives in the generated schema instead — see `coreTablesSql`.\n */\n coreMigrationStatements(toVersion: bigint): string[];\n /**\n * Run `fn` while holding the cross-process core-init lock (PG\n * `pg_advisory_xact_lock`, MySQL `GET_LOCK`) on a single dedicated\n * connection, so concurrent servers can't race the core migration. All of\n * `fn`'s work runs on that locked connection via {@link CoreInitLockCtx}.\n */\n withCoreInitLock(fn: (ctx: CoreInitLockCtx) => Promise<void>): Promise<void>;\n bootstrapColumnTypes(opts: { redis?: CacheLayer; cacheKey: string; tables?: string[]; }): Promise<void>;\n query<T = any>(sql: string, params?: unknown[]): Promise<DbQueryResult<T>>;\n getClient(): Promise<PooledClient>;\n getTransactionClient(): Promise<TxDatabase>;\n getLatestSnapshotTimestamp(): Promise<bigint>;\n updateLatestSnapshotTimestamp(commitTs: bigint): Promise<void>;\n /**\n * The retention watermark: the boundary `ts` below which commit_logs have\n * been pruned, so any cache entry whose `lastSnapshotTs` is below it can no\n * longer be freshness-checked (its scan window would miss deleted rows) and\n * must be recomputed. Persisted in the `metadata` table (survives restarts)\n * as a cheap PK read — callers load it into an in-memory variable at startup\n * and keep it fresh via pub/sub rather than reading it per query. Returns the\n * -1n genesis when nothing has been pruned yet (matching the empty-DB snapshot\n * ts), so every entry is scannable.\n */\n getMinSnapshotTimestamp(): Promise<bigint>;\n /**\n * Advance the retention watermark. Monotonic: only ever moves forward (a\n * stale writer can never lower it). Called by the sub-manager right before it\n * prunes commit_logs below `ts`.\n */\n updateMinSnapshotTimestamp(ts: bigint): Promise<void>;\n getNextTimestamp(): Promise<bigint>;\n prepareCommitWrites(readSet: ReadEntry[], writeSet: WriteEntry[], commitTs: LazyCommitTsParam): Promise<PreparedQueries>;\n commitWrites(beginTs: bigint, queries: PreparedQueries, commitTs: bigint): Promise<{ success: boolean }>;\n close(): Promise<void>;\n /**\n * Delete commit_logs older than `ts` (exclusive). Used by the periodic\n * retention sweep in SubscriptionManager so the table doesn't grow\n * unbounded.\n */\n pruneCommitLogsBefore(ts: bigint): Promise<bigint>;\n /**\n * Oldest `ts` still present in commit_logs (i.e. the retention watermark\n * after the last prune), or `null` when the table is empty. A cache entry\n * whose `lastSnapshotTs` is below it can no longer be freshness-checked via\n * {@link getCommitLogsBetweenTs} (the logs it would need were pruned), so the\n * one-shot/register cache paths recompute instead of trusting it.\n */\n getMinCommitLogTs(): Promise<bigint | null>;\n /**\n * Half-open range scan: ts >= beginTs AND ts < endTs. Used by the\n * subscription-recovery path to replay logs in a specific time window.\n */\n getCommitLogsBetweenTs(beginTs: bigint, endTs: bigint, tableIds: Uint8Array[]): Promise<CommitLogEntry[]>;\n /**\n * Conflict-check scan for OCC: ts >= sinceTs AND ts <> excludeTs. The\n * exclude is our own commitTs so we don't conflict with ourselves; the\n * lack of an upper bound is intentional, so a concurrent peer that\n * happens to have a higher commitTs but committed before us is still\n * visible. (MVCC keeps in-flight peers invisible until they commit.)\n */\n getCommitLogsSinceTs(sinceTs: bigint, excludeTs: bigint, tableIds: Uint8Array[]): Promise<CommitLogEntry[]>;\n /**\n * For each `update`/`delete` entry, attach `prevData` (consumed by the\n * invalidator) and `expectedCommitTs` (the CAS fence).\n *\n * `expectedCommitTs` is preferentially copied from a prior point-read of\n * the same row in `readSet` — that's the value the handler's logic\n * actually depended on, so the CAS check enforces beginTs-level isolation\n * for read-then-update patterns. If no prior read exists (\"blind\"\n * write), we fall back to the value observed in this batch fetch (weak\n * OCC, sufficient for writes that don't depend on prior state).\n *\n * `prevData` always comes from this batch fetch (SELECT * per table) so\n * the invalidator has the full row regardless of which columns the\n * handler's read selected.\n *\n * If the target row no longer exists at fetch time, `expectedCommitTs`\n * is left undefined and the per-row CAS will match nothing — surfaced\n * as OccConflictError.\n */\n attachPrevDataToWriteSet(writeSet: WriteEntry[], readSet: ReadEntry[]): Promise<void>;\n}\n\nexport interface TxDatabase extends Database {\n begin(): Promise<void>;\n commit(): Promise<void>;\n rollback(): Promise<void>;\n release(): void;\n}\n\nexport interface JsonOpOptions {\n /**\n * When true, the bound `value` parameter is treated as already prepared\n * for the underlying SQL (e.g. a literal JSON path string for\n * jsonHasKey, a JSON-encoded literal for the contains family). When\n * false/omitted, the value was prepared client-side from a JS value.\n */\n raw?: boolean;\n /**\n * 1-based positional index of an extra bound parameter holding a\n * jsonpath that scopes the contains-family check to a sub-document of\n * the target column. When omitted, the check runs against the whole\n * column value.\n */\n pathIndex?: number;\n /**\n * jsonHasKey only: when set, multiple path parameters are bound starting\n * at `paramIndex`, and the predicate evaluates whether any (`one`) or\n * every (`all`) path exists in the column.\n */\n mode?: \"one\" | \"all\";\n /** Number of bound path parameters in multi-path mode. */\n pathCount?: number;\n}\n\nexport interface SqlBuilder {\n placeholder(index: number): string;\n like(col: string, paramIndex: number): string;\n ilike(col: string, paramIndex: number): string;\n icontains(col: string, paramIndex: number): string;\n /** PG @> ; MySQL JSON_CONTAINS */\n jsonContains(col: string, paramIndex: number, opts?: JsonOpOptions): string;\n /** PG <@ ; MySQL JSON_CONTAINS(candidate, target) */\n jsonContainedBy(col: string, paramIndex: number, opts?: JsonOpOptions): string;\n /**\n * Key/path existence. With `opts.raw === true`, the bound param is a JSON\n * path expression (PG `jsonb_path_exists`, MySQL `JSON_CONTAINS_PATH`).\n * Otherwise the bound param is a literal top-level key (PG `?`, MySQL\n * `JSON_CONTAINS_PATH($.\"<key>\")` with server-side quoting).\n * With `opts.pathCount` set, emits the multi-path form keyed by `mode`.\n */\n jsonHasKey(col: string, paramIndex: number, opts?: JsonOpOptions): string;\n /** Array membership: target array contains the given element. */\n jsonArrayContains(col: string, paramIndex: number, opts?: JsonOpOptions): string;\n}\n\nexport class LazyCommitTsParam {\n constructor(public value: unknown) { }\n\n // used by postgres\n toPostgres(prepareValue: (value: any) => any): any {\n return prepareValue(this.value);\n }\n\n // used by mysql\n toString() {\n return (this.value as any).toString();\n }\n\n validate() {\n const p = new LazyCommitTsParam(undefined);\n const hasNotObjConstructor = p.constructor !== Object;\n const hasNotToJSON = typeof (p as any).toJSON !== 'function';\n console.log('constructor must not object', hasNotObjConstructor);\n console.log('should not have toJSON', hasNotToJSON);\n }\n}"],"mappings":";;AAoBA,MAAa,qBAAqB;;AAElC,MAAa,sBAAsB;AAgMnC,IAAa,oBAAb,MAAa,kBAAkB;CACV;CAAnB,YAAY,OAAuB;EAAhB,KAAA,QAAA;CAAkB;CAGrC,WAAW,cAAwC;EACjD,OAAO,aAAa,KAAK,KAAK;CAChC;CAGA,WAAW;EACT,OAAQ,KAAK,MAAc,SAAS;CACtC;CAEA,WAAW;EACT,MAAM,IAAI,IAAI,kBAAkB,KAAA,CAAS;EACzC,MAAM,uBAAuB,EAAE,gBAAgB;EAC/C,MAAM,eAAe,OAAQ,EAAU,WAAW;EAClD,QAAQ,IAAI,+BAA+B,oBAAoB;EAC/D,QAAQ,IAAI,0BAA0B,YAAY;CACpD;AACF"}
@@ -19,6 +19,7 @@ declare const CompareOperatorSchema: z.ZodEnum<{
19
19
  contains: "contains";
20
20
  icontains: "icontains";
21
21
  between: "between";
22
+ in: "in";
22
23
  jsonContains: "jsonContains";
23
24
  jsonContainedBy: "jsonContainedBy";
24
25
  jsonHasKey: "jsonHasKey";
@@ -50,6 +51,7 @@ declare const LeafPredicateSchema: z.ZodObject<{
50
51
  contains: "contains";
51
52
  icontains: "icontains";
52
53
  between: "between";
54
+ in: "in";
53
55
  jsonContains: "jsonContains";
54
56
  jsonContainedBy: "jsonContainedBy";
55
57
  jsonHasKey: "jsonHasKey";
@@ -197,6 +199,7 @@ interface LiveResult<T> {
197
199
  }
198
200
  declare const QueryCacheMetadataSchema: z.ZodObject<{
199
201
  lastSnapshotTs: z.ZodPipe<z.ZodString, z.ZodTransform<bigint, string>>;
202
+ version: z.ZodString;
200
203
  readSet: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
201
204
  kind: z.ZodLiteral<"point">;
202
205
  table: z.ZodString;
@@ -217,6 +220,7 @@ declare const QueryCacheMetadataSchema: z.ZodObject<{
217
220
  type QueryCacheMetadata = z.infer<typeof QueryCacheMetadataSchema>;
218
221
  declare const QueryCacheEntrySchema: z.ZodObject<{
219
222
  data: z.ZodUnknown;
223
+ version: z.ZodString;
220
224
  }, z.core.$strip>;
221
225
  type QueryCacheEntry = z.infer<typeof QueryCacheEntrySchema>;
222
226
  declare const CachedPgMetadataSchema: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -269,6 +273,7 @@ declare const RegisterSubscriptionResultSchema: z.ZodObject<{
269
273
  limit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
270
274
  offset: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
271
275
  }, z.core.$strip>]>>;
276
+ version: z.ZodOptional<z.ZodString>;
272
277
  }, z.core.$strip>;
273
278
  type RegisterSubscriptionResult = z.infer<typeof RegisterSubscriptionResultSchema>;
274
279
  declare const UpdateSubscriptionReadSetParamsSchema: z.ZodObject<{
@@ -367,11 +372,34 @@ type RegistrationRecord = z.infer<typeof RegistrationRecordSchema>;
367
372
  declare class CacheLayer {
368
373
  redis: Redis$1 | Redis$2;
369
374
  private readonly ttlSeconds;
375
+ /** Cached EVALSHA digests keyed by Lua source (see evalScript). */
376
+ private readonly scriptShaCache;
370
377
  constructor(upstash: Redis$1 | Redis$2, ttlSeconds?: number);
371
- setQueryCacheFor(cacheKey: string, data: unknown, ttlSeconds?: number): Promise<void>;
378
+ /**
379
+ * Run a Lua script via EVALSHA using the script's SHA1 (computed locally — the
380
+ * same digest Redis keys scripts by, so no SCRIPT LOAD round-trip is needed on
381
+ * the hot path). On NOSCRIPT (the script isn't in Redis's cache yet, e.g. first
382
+ * use or after a Redis restart/failover) load it explicitly via SCRIPT LOAD and
383
+ * re-run via EVALSHA — so the script ends up cached server-side and subsequent
384
+ * EVALSHA calls hit. The runtime client is always ioredis (see initCacheLayer).
385
+ */
386
+ private evalScript;
387
+ /** One-shot recompute: atomically write data + metadata (CAS on version). */
388
+ setQueryCacheAndMetadataFor(cacheKey: string, data: unknown, metaData: QueryCacheMetadata, ttlSeconds?: number): Promise<void>;
389
+ /** Subscribe path: write the data blob only (CAS against the metadata's
390
+ * version). The metadata is written separately by the sub-worker; the
391
+ * `version` links the two so a divergent pair is detected on read. */
392
+ setQueryCacheFor(cacheKey: string, data: unknown, version: string, ttlSeconds?: number): Promise<void>;
372
393
  getQueryCacheFor(cacheKey: string): Promise<QueryCacheEntry | null>;
394
+ /** Subscription recompute: replace the whole metadata (CAS on version). */
395
+ replaceQueryCacheMetadata(cacheKey: string, metaData: QueryCacheMetadata, ttlSeconds?: number): Promise<void>;
396
+ /** Still-fresh subscription: advance `lastSnapshotTs` only, preserving the
397
+ * data's `version` + `readSet` (no recompute). Monotonic and non-clobbering
398
+ * — see ADVANCE_META. `metaData` carries the new horizon plus the version +
399
+ * readSet the caller read, which the script keeps unless a newer computation
400
+ * has since landed. */
401
+ advanceQueryCacheMetadata(cacheKey: string, metaData: QueryCacheMetadata, ttlSeconds?: number): Promise<void>;
373
402
  getQueryCacheMetaData(cacheKey: string): Promise<QueryCacheMetadata | null>;
374
- setQueryCacheMetadata(cacheKey: string, metaData: QueryCacheMetadata): Promise<void>;
375
403
  persistRegistrationRecord(subId: string, record: RegistrationRecord): Promise<void>;
376
404
  deleteRegistrationRecord(subId: string): Promise<void>;
377
405
  deleteRegistrationsRecord(subIds: string[]): Promise<void>;
@@ -422,11 +450,41 @@ interface PreparedQueries {
422
450
  tableIds?: Uint8Array[];
423
451
  rawReadSet?: RawReadEntry[];
424
452
  }
453
+ /**
454
+ * Bound to a single dedicated connection that holds the core-init lock. Passed
455
+ * to the callback of {@link Database.withCoreInitLock} so version reads/writes
456
+ * and migration statements all run under the same lock.
457
+ */
458
+ interface CoreInitLockCtx {
459
+ exec(sql: string, params?: unknown[]): Promise<DbQueryResult>;
460
+ getVersion(): Promise<bigint>;
461
+ setVersion(version: bigint): Promise<void>;
462
+ }
425
463
  interface Database {
426
464
  readonly dbType: DbType;
427
465
  readonly sqlBuilder: SqlBuilder;
428
466
  columnTypes: Map<string, Map<string, string>>;
429
- migrationSql: string[];
467
+ /**
468
+ * Current core schema version stored in `metadata.core_version`, or `0n`
469
+ * when unset. Read on a pooled connection for the lock-free fast path of
470
+ * {@link initCore}.
471
+ */
472
+ getCoreVersion(): Promise<bigint>;
473
+ /**
474
+ * Runtime bootstrap statements to apply when migrating core TO `toVersion`
475
+ * (i.e. the `toVersion - 1` → `toVersion` step): data seeds, backfills, or a
476
+ * schema change that must be applied directly at runtime. Dialect-specific;
477
+ * the core schema (tables, indexes, the `global_commit_ts` sequence/counter)
478
+ * lives in the generated schema instead — see `coreTablesSql`.
479
+ */
480
+ coreMigrationStatements(toVersion: bigint): string[];
481
+ /**
482
+ * Run `fn` while holding the cross-process core-init lock (PG
483
+ * `pg_advisory_xact_lock`, MySQL `GET_LOCK`) on a single dedicated
484
+ * connection, so concurrent servers can't race the core migration. All of
485
+ * `fn`'s work runs on that locked connection via {@link CoreInitLockCtx}.
486
+ */
487
+ withCoreInitLock(fn: (ctx: CoreInitLockCtx) => Promise<void>): Promise<void>;
430
488
  bootstrapColumnTypes(opts: {
431
489
  redis?: CacheLayer;
432
490
  cacheKey: string;
@@ -437,6 +495,23 @@ interface Database {
437
495
  getTransactionClient(): Promise<TxDatabase>;
438
496
  getLatestSnapshotTimestamp(): Promise<bigint>;
439
497
  updateLatestSnapshotTimestamp(commitTs: bigint): Promise<void>;
498
+ /**
499
+ * The retention watermark: the boundary `ts` below which commit_logs have
500
+ * been pruned, so any cache entry whose `lastSnapshotTs` is below it can no
501
+ * longer be freshness-checked (its scan window would miss deleted rows) and
502
+ * must be recomputed. Persisted in the `metadata` table (survives restarts)
503
+ * as a cheap PK read — callers load it into an in-memory variable at startup
504
+ * and keep it fresh via pub/sub rather than reading it per query. Returns the
505
+ * -1n genesis when nothing has been pruned yet (matching the empty-DB snapshot
506
+ * ts), so every entry is scannable.
507
+ */
508
+ getMinSnapshotTimestamp(): Promise<bigint>;
509
+ /**
510
+ * Advance the retention watermark. Monotonic: only ever moves forward (a
511
+ * stale writer can never lower it). Called by the sub-manager right before it
512
+ * prunes commit_logs below `ts`.
513
+ */
514
+ updateMinSnapshotTimestamp(ts: bigint): Promise<void>;
440
515
  getNextTimestamp(): Promise<bigint>;
441
516
  prepareCommitWrites(readSet: ReadEntry[], writeSet: WriteEntry[], commitTs: LazyCommitTsParam): Promise<PreparedQueries>;
442
517
  commitWrites(beginTs: bigint, queries: PreparedQueries, commitTs: bigint): Promise<{
@@ -449,6 +524,14 @@ interface Database {
449
524
  * unbounded.
450
525
  */
451
526
  pruneCommitLogsBefore(ts: bigint): Promise<bigint>;
527
+ /**
528
+ * Oldest `ts` still present in commit_logs (i.e. the retention watermark
529
+ * after the last prune), or `null` when the table is empty. A cache entry
530
+ * whose `lastSnapshotTs` is below it can no longer be freshness-checked via
531
+ * {@link getCommitLogsBetweenTs} (the logs it would need were pruned), so the
532
+ * one-shot/register cache paths recompute instead of trusting it.
533
+ */
534
+ getMinCommitLogTs(): Promise<bigint | null>;
452
535
  /**
453
536
  * Half-open range scan: ts >= beginTs AND ts < endTs. Used by the
454
537
  * subscription-recovery path to replay logs in a specific time window.
@@ -790,6 +873,13 @@ declare class FilterBuilder<S extends SchemaDefinition<string, ZodRawShape>> {
790
873
  */
791
874
  jsonArrayContains<K extends JsonFieldKeys<S>>(key: K, value: unknown, opts?: JsonContainsOptions): FilterBuilder<S>;
792
875
  between<K extends OrderableFieldKeys<S>>(key: K, lo: FieldValue<S, K>, hi: FieldValue<S, K>): FilterBuilder<S>;
876
+ /**
877
+ * Set membership: `key` equals any of `values` (SQL `IN`). Each value is
878
+ * codec-encoded like `eq`. An empty `values` matches no rows. Bound as one
879
+ * parameter per element, so keep the list within the driver's parameter
880
+ * limit (chunk very large sets at the call site).
881
+ */
882
+ in<K extends keyof InferSchema<S>>(key: K, values: readonly FieldValue<S, K>[]): FilterBuilder<S>;
793
883
  isNull<K extends keyof InferSchema<S>>(key: K): FilterBuilder<S>;
794
884
  notNull<K extends keyof InferSchema<S>>(key: K): FilterBuilder<S>;
795
885
  /**
@@ -821,6 +911,13 @@ declare class TxContext {
821
911
  constructor(db: Database, beginTs: bigint);
822
912
  internalGetReadSet(): ReadEntry[];
823
913
  internalGetWriteSet(): WriteEntry[];
914
+ /**
915
+ * Merge a parent procedure's reads into this context's readSet. Used when a
916
+ * `runMutation` sub-transaction inherits the reads of the procedure that
917
+ * invoked it, so the sub-tx's OCC validation also fences on those rows.
918
+ * Entries are shallow-cloned so the two readSets don't alias.
919
+ */
920
+ appendInternalReadSet(parentEntries: ReadEntry[]): void;
824
921
  protected findPendingWrite(table: string, id: string): WriteEntry | undefined;
825
922
  protected findPendingInsert(table: string, id: string): WriteEntry | undefined;
826
923
  protected encodeWithCodec(model: Model, property: string, value: unknown): unknown;
@@ -893,7 +990,26 @@ declare class SupaliveDb {
893
990
  db: Database;
894
991
  }): SupaliveDb;
895
992
  protected onAfterCommit?: (writeSet: WriteEntry[], commitTs: CommitTs) => void;
993
+ /**
994
+ * Register a hook fired once after every successful `mutation()` commit
995
+ * (never on an OCC conflict/rollback), with the committed writeSet and its
996
+ * commitTs. The server uses this to drive subscription invalidation for ALL
997
+ * mutation sources — client WS calls, actions, jobs, and the internal caller —
998
+ * so a server-side write pushes live updates just like a client write does.
999
+ * Non-server consumers (migration tooling, tests) leave it unset (no-op).
1000
+ */
1001
+ setOnAfterCommit(cb: (writeSet: WriteEntry[], commitTs: CommitTs) => void): void;
896
1002
  query<T>(fn: (ctx: DbReader) => Promise<T>): Promise<T>;
1003
+ /**
1004
+ * Compute a query once at the latest snapshot, returning the result together
1005
+ * with the snapshot `ts` and the tracked `readSet`. This is a plain one-shot
1006
+ * evaluation — it registers NO live subscription; the `readSet`/`ts` are
1007
+ * returned purely so the caller (e.g. the one-shot query cache) can store
1008
+ * freshness metadata. Use this for cached one-shot query calls (WS `call`,
1009
+ * HTTP RPC). `liveQuery` is the same computation under the subscription path's
1010
+ * name and simply delegates here.
1011
+ */
1012
+ queryInternal<T>(fn: (ctx: DbReader) => Promise<T>): Promise<LiveResult<T>>;
897
1013
  liveQuery<T>(fn: (ctx: DbReader) => Promise<T>): Promise<LiveResult<T>>;
898
1014
  mutation<T>(fn: (ctx: DbWriter) => Promise<T>, retryPolicy?: RetryPolicy): Promise<MutationResult<T>>;
899
1015
  }
@@ -930,9 +1046,36 @@ interface ActionCtx<TContext = unknown> {
930
1046
  /** User-defined server context (auth, requestId, etc.) */
931
1047
  serverCtx?: TContext;
932
1048
  }
1049
+ /**
1050
+ * Job context passed to job handlers. Structurally identical to
1051
+ * {@link ActionCtx}: a job is a server-only procedure that runs
1052
+ * non-transactionally against the full {@link SupaliveDb} and may perform
1053
+ * external work, but it is triggered by the scheduler over HTTP (a cron tick
1054
+ * or a precise one-shot) rather than by a connected client. `serverCtx` is
1055
+ * the system context built by the server's `jobContext` factory.
1056
+ */
1057
+ interface JobCtx<TContext = unknown> {
1058
+ /** Full database interface for queries and mutations */
1059
+ db: SupaliveDb;
1060
+ /** System server context built by the server for scheduler-triggered runs */
1061
+ serverCtx?: TContext;
1062
+ }
1063
+ /**
1064
+ * Context handed to `caller.<proc>.runQuery` / `.runMutation` when invoking one
1065
+ * procedure from inside another. Pass the caller handler's own `ctx` — its `db`
1066
+ * carries the parent's live transaction (a {@link DbReader}/{@link DbWriter}) or,
1067
+ * inside an action, the full {@link SupaliveDb}. The caller uses this to decide
1068
+ * whether the nested call joins the parent's snapshot (queries) or runs as an
1069
+ * independent sub-transaction (mutations).
1070
+ */
1071
+ interface ParentCtx<TContext = unknown> {
1072
+ db: DbReader | DbWriter | SupaliveDb;
1073
+ serverCtx?: TContext | undefined;
1074
+ }
933
1075
  type QueryFn<TInput, TResult, TContext = unknown> = (ctx: QueryCtx<TContext>, input: TInput) => Promise<TResult>;
934
1076
  type MutationFn<TInput, TResult, TContext = unknown> = (ctx: MutationCtx<TContext>, input: TInput) => Promise<TResult>;
935
1077
  type ActionFn<TInput, TResult, TContext = unknown> = (ctx: ActionCtx<TContext>, input: TInput) => Promise<TResult>;
1078
+ type JobFn<TInput, TResult, TContext = unknown> = (ctx: JobCtx<TContext>, input: TInput) => Promise<TResult>;
936
1079
  /**
937
1080
  * Per-procedure override for the cache/subscription segmentation key.
938
1081
  *
@@ -948,11 +1091,11 @@ type ActionFn<TInput, TResult, TContext = unknown> = (ctx: ActionCtx<TContext>,
948
1091
  * because identity is resolved before any DB read is issued.
949
1092
  */
950
1093
  type QueryIdentitySpec<TInput, TContext> = false | string | ((serverCtx: TContext, input: TInput) => string | null | undefined);
951
- interface BaseProcedure<TInput, TResult, TType extends "query" | "mutation" | "action", TContext = unknown, TInternal extends boolean = boolean> {
1094
+ interface BaseProcedure<TInput, TResult, TType extends "query" | "mutation" | "action" | "job", TContext = unknown, TInternal extends boolean = boolean> {
952
1095
  readonly _type: "procedure";
953
1096
  readonly procedureType: TType;
954
1097
  readonly inputSchema: ZodType<TInput>;
955
- readonly fn: QueryFn<TInput, TResult, TContext> | MutationFn<TInput, TResult, TContext> | ActionFn<TInput, TResult, TContext>;
1098
+ readonly fn: QueryFn<TInput, TResult, TContext> | MutationFn<TInput, TResult, TContext> | ActionFn<TInput, TResult, TContext> | JobFn<TInput, TResult, TContext>;
956
1099
  readonly internal: TInternal;
957
1100
  }
958
1101
  interface QueryProcedure<TInput, TResult, TContext = unknown, TInternal extends boolean = boolean> extends BaseProcedure<TInput, TResult, "query", TContext, TInternal> {
@@ -968,7 +1111,24 @@ interface ActionProcedure<TInput, TResult, TContext = unknown, TInternal extends
968
1111
  readonly procedureType: "action";
969
1112
  readonly fn: ActionFn<TInput, TResult, TContext>;
970
1113
  }
971
- type AnyProcedure<TContext = unknown> = QueryProcedure<any, any, TContext> | MutationProcedure<any, any, TContext> | ActionProcedure<any, any, TContext>;
1114
+ /**
1115
+ * A scheduler-triggered, server-only procedure. Runs like an action (full
1116
+ * db, non-transactional, may do external work) but is dispatched by the
1117
+ * server's HTTP job endpoint on a cron tick or a precise one-shot rather
1118
+ * than over the client WebSocket. Always {@link internal}: true, so it is
1119
+ * never reachable via `call`/`subscribe`.
1120
+ */
1121
+ interface JobProcedure<TInput, TResult, TContext = unknown> extends BaseProcedure<TInput, TResult, "job", TContext, true> {
1122
+ readonly procedureType: "job";
1123
+ readonly fn: JobFn<TInput, TResult, TContext>;
1124
+ /**
1125
+ * Cron expression for a recurring job (e.g. `"0 3 * * *"`). Declared crons
1126
+ * are synced to the scheduler at server startup. Omit for a job that is
1127
+ * only ever invoked as a precise one-shot via the scheduler API.
1128
+ */
1129
+ readonly cron?: string;
1130
+ }
1131
+ type AnyProcedure<TContext = unknown> = QueryProcedure<any, any, TContext> | MutationProcedure<any, any, TContext> | ActionProcedure<any, any, TContext> | JobProcedure<any, any, TContext>;
972
1132
  interface QueryConfig<TInput, TResult, TContext = unknown> {
973
1133
  /** Zod schema for input validation */
974
1134
  args: ZodType<TInput>;
@@ -998,6 +1158,17 @@ interface ActionConfig<TInput, TResult, TContext = unknown> {
998
1158
  /** Mark as internal (server-only). Default: false */
999
1159
  internal?: boolean;
1000
1160
  }
1161
+ interface JobConfig<TInput, TResult, TContext = unknown> {
1162
+ /** Zod schema for the job payload */
1163
+ args: ZodType<TInput>;
1164
+ /** The job handler function */
1165
+ handler: JobFn<TInput, TResult, TContext>;
1166
+ /**
1167
+ * Cron expression for a recurring schedule (e.g. `"0 3 * * *"`). Omit for a
1168
+ * job that is only invoked as a precise one-shot.
1169
+ */
1170
+ cron?: string;
1171
+ }
1001
1172
  /** Extract input type from a procedure */
1002
1173
  type InputOf<T> = T extends BaseProcedure<infer I, any, any, any> ? I : never;
1003
1174
  /** Extract output type from a procedure */
@@ -1100,6 +1271,26 @@ declare function createMutationBuilder<TContext = unknown>(): <TInput, TResult,
1100
1271
  declare function createActionBuilder<TContext = unknown>(): <TInput, TResult, const TInternal extends boolean = false>(config: ActionConfig<TInput, TResult, TContext> & {
1101
1272
  internal?: TInternal;
1102
1273
  }) => ActionProcedure<TInput, TResult, TContext, TInternal>;
1274
+ /**
1275
+ * Create a job builder with a pre-defined context type. A job is a
1276
+ * server-only procedure invoked by the scheduler over HTTP — either on its
1277
+ * declared `cron` schedule or as a precise one-shot enqueued via the
1278
+ * server's job API. Jobs run like actions (full db, non-transactional) and
1279
+ * are always internal, so they are never reachable from a client.
1280
+ *
1281
+ * @example
1282
+ * const job = createJobBuilder<ServerContext>();
1283
+ *
1284
+ * export const cleanupOtps = job({
1285
+ * cron: "0 * * * *", // hourly
1286
+ * args: z.object({}),
1287
+ * handler: async (ctx) => {
1288
+ * await ctx.db.mutation(async (db) => { ... });
1289
+ * return { ok: true };
1290
+ * },
1291
+ * });
1292
+ */
1293
+ declare function createJobBuilder<TContext = unknown>(): <TInput, TResult>(config: JobConfig<TInput, TResult, TContext>) => JobProcedure<TInput, TResult, TContext>;
1103
1294
  //#endregion
1104
1295
  //#region src/router/router.d.ts
1105
1296
  /**
@@ -1128,6 +1319,10 @@ type MutationProcedures<T extends Record<string, AnyProcedure>> = { [K in keyof
1128
1319
  type ActionProcedures<T extends Record<string, AnyProcedure>> = { [K in keyof T as T[K] extends {
1129
1320
  procedureType: "action";
1130
1321
  } ? K : never]: T[K] };
1322
+ /** Get job procedures only from a router */
1323
+ type JobProcedures<T extends Record<string, AnyProcedure>> = { [K in keyof T as T[K] extends {
1324
+ procedureType: "job";
1325
+ } ? K : never]: T[K] };
1131
1326
  /** Get public (non-internal) procedures - for client type safety */
1132
1327
  type PublicProcedures<T extends Record<string, AnyProcedure>> = Pick<T, { [K in keyof T]: T[K] extends {
1133
1328
  internal: true;
@@ -1156,12 +1351,14 @@ type RouterConfig<T> = {
1156
1351
  declare function router<TProcedures extends Record<string, AnyProcedure<any>>, TContext = unknown>(config: RouterConfig<TProcedures>): Router<TProcedures, TContext>;
1157
1352
  interface RegisteredProcedure<TContext = unknown> {
1158
1353
  name: string;
1159
- type: "query" | "mutation" | "action";
1354
+ type: "query" | "mutation" | "action" | "job";
1160
1355
  internal: boolean;
1161
1356
  inputSchema: AnyProcedure<TContext>["inputSchema"];
1162
1357
  fn: AnyProcedure<TContext>["fn"];
1163
1358
  /** Only present for `type === "query"`. See `QueryIdentitySpec`. */
1164
1359
  queryIdentity?: false | string | ((serverCtx: TContext | undefined, input: unknown) => string | null | undefined);
1360
+ /** Only present for `type === "job"`. Cron expression for recurring jobs. */
1361
+ cron?: string;
1165
1362
  }
1166
1363
  declare function getContextRegistry(inContext: string): ContextRegistry;
1167
1364
  declare class ContextRegistry {
@@ -1174,6 +1371,8 @@ declare class ContextRegistry {
1174
1371
  getProcedureNames(): string[];
1175
1372
  /** Get all registered procedures */
1176
1373
  getAllProcedures(): Map<string, RegisteredProcedure>;
1374
+ /** Get all registered job procedures (server-only, scheduler-triggered). */
1375
+ getJobProcedures(): RegisteredProcedure[];
1177
1376
  /** Clear the registry (for testing only) */
1178
1377
  clearRegistry(): void;
1179
1378
  markInternalProcedure(name: string): void;
@@ -1732,14 +1931,20 @@ type CallerFromProcedures<TProcedures extends Record<string, AnyProcedure<TConte
1732
1931
  } ? {
1733
1932
  query: (input: InputOf<TProcedures[K]>, serverCtx: TContext) => Promise<OutputOf<TProcedures[K]>>;
1734
1933
  liveQuery: (input: InputOf<TProcedures[K]>, serverCtx: TContext) => Promise<LiveResult<OutputOf<TProcedures[K]>>>;
1934
+ runQuery: (input: InputOf<TProcedures[K]>, ctx: ParentCtx<TContext>) => Promise<OutputOf<TProcedures[K]>>;
1735
1935
  } : TProcedures[K] extends {
1736
1936
  procedureType: "mutation";
1737
1937
  } ? {
1738
1938
  mutate: (input: InputOf<TProcedures[K]>, serverCtx: TContext) => Promise<OutputOf<TProcedures[K]>>;
1939
+ runMutation: (input: InputOf<TProcedures[K]>, ctx: ParentCtx<TContext>) => Promise<OutputOf<TProcedures[K]>>;
1739
1940
  } : TProcedures[K] extends {
1740
1941
  procedureType: "action";
1741
1942
  } ? {
1742
1943
  action: (input: InputOf<TProcedures[K]>, serverCtx: TContext) => Promise<OutputOf<TProcedures[K]>>;
1944
+ } : TProcedures[K] extends {
1945
+ procedureType: "job";
1946
+ } ? {
1947
+ run: (input: InputOf<TProcedures[K]>, serverCtx: TContext) => Promise<OutputOf<TProcedures[K]>>;
1743
1948
  } : never } & {
1744
1949
  init: (config: {
1745
1950
  db: SupaliveDb;
@@ -1750,5 +1955,5 @@ type CallerFromProcedures<TProcedures extends Record<string, AnyProcedure<TConte
1750
1955
  */
1751
1956
  type CallerFromRouter<TRouter extends Router<any, any>> = CallerFromProcedures<TRouter["procedures"]>;
1752
1957
  //#endregion
1753
- export { PublicProcedures as $, CompareOperator as $n, DefineSchemaConfig as $t, ResponseMessageSchema as A, CacheLayer as An, RetryConfig as Ar, ResultOf as At, SubscriptionUpdateMessageSchema as B, UnregisterSubscriptionResult as Bn, QueryBuilder as Bt, ClientMessageSchema as C, DbType as Cn, RawPointReadSchema as Cr, createQueryBuilder as Ct, ErrorMessage as D, RawClient as Dn, RawReadEntrySchema as Dr, DefsToMap as Dt, Context as E, PreparedQueries as En, RawReadEntry as Er, AnyQueryDef as Et, SubscribeMessage as F, RegisterSubscriptionParams as Fn, bytesFromJson as Fr, TxContext as Ft, RPCError as G, UpdateSubscriptionReadSetResult as Gn, matchesPredicate as Gt, UnsubscribeMessageSchema as H, UnregisterSubscriptionsResult as Hn, jsonContains as Ht, SubscribeMessageSchema as I, RegisterSubscriptionParamsSchema as In, normalizeIdToBytes as Ir, IdAndCommitTs as It, ActionProcedures as J, BigIntSchema as Jn, ComputedCodec as Jt, WSClientOptions as K, AndPredicate as Kn, ActionArgs as Kt, SubscriptionGoneMessage as L, RegisterSubscriptionResult as Ln, normalizeToBytes as Lr, JsonContainsOptions as Lt, ServerMessageSchema as M, InvalidateWritesetParams as Mn, WriteEntrySchema as Mr, defineQuery as Mt, ServerPingMessage as N, InvalidateWritesetParamsSchema as Nn, WriteOp as Nr, DbReader as Nt, IsInternal as O, SqlBuilder as On, ReadEntry as Or, ParamsOf as Ot, ServerPingMessageSchema as P, InvalidateWritesetResult as Pn, WriteOpSchema as Pr, DbWriter as Pt, ProcedureNames as Q, CommitTs as Qn, DeclarativeIndex as Qt, SubscriptionGoneMessageSchema as R, UnregisterSubscriptionParams as Rn, JsonHasKeyMultiOptions as Rt, ClientMessage as S, DbQueryResult as Sn, RawPointRead as Sr, createMutationBuilder as St, ConnectedMessageSchema as T, PooledClient as Tn, RawRangeReadSchema as Tr, sleep as Tt, ClientPublicState as U, UpdateSubscriptionReadSetParams as Un, jsonPathExists as Ut, UnsubscribeMessage as V, UnregisterSubscriptionsParams as Vn, buildPredicateSql as Vt, HeartbeatOptions as W, UpdateSubscriptionReadSetParamsSchema as Wn, jsonPathExtract as Wt, ContextRegistry as X, CachedPgMetadataSchema as Xn, ComputedField as Xt, AppRouter as Y, CachedPgMetadata as Yn, ComputedDataType as Yt, MutationProcedures as Z, CommitLogEntry as Zn, ComputedFieldConfig as Zt, AuthSuccessMessage as _, schemaRegistry as _n, QueryCacheMetadata as _r, QueryCtx as _t, CallOptions as a, OverrideField as an, MutationResult as ar, ActionConfig as at, CallMessage as b, trackSchema as bn, RangeRead as br, TypeOf as bt, LiveQueryHandle as c, ReturnLiveQuery as cn, OccConflictError as cr, ActionProcedure as ct, WSClientMethods as d, SchemaColumnMapping as dn, PointRead as dr, MutationConfig as dt, IndexDefinition as en, CompareOperatorSchema as er, QueryProcedures as et, createClient as f, SchemaColumnsOptions as fn, PointReadSchema as fr, MutationCtx as ft, AuthMessageSchema as g, defineSchema as gn, QueryCacheEntrySchema as gr, QueryConfig as gt, AuthMessage as h, defineComputedField as hn, QueryCacheEntry as hr, OutputOf as ht, createCaller as i, MutationArgs as in, LiveResult as ir, router as it, ServerMessage as j, AffectedSubscription as jn, WriteEntry as jr, _resetGlobalDefs as jt, ResponseMessage as k, TxDatabase as kn, ReadEntrySchema as kr, QueryDefinition as kt, LiveQueryState as l, ReturnQuery as ln, OrPredicate as lr, AnyProcedure as lt, AuthFailedMessageSchema as m, StoredSchemaColumnsOptions as mn, PredicateSchema as mr, MutationProcedure as mt, CallerFromRouter as n, InsertData as nn, LeafPredicate as nr, Router as nt, ClientFromProcedures as o, Prettify as on, NO_RETRY as or, ActionCtx as ot, AuthFailedMessage as p, SchemaDefinition as pn, Predicate as pr, MutationFn as pt, WsClientManager as q, AndPredicateSchema as qn, ColumnCodec as qt, CallerOptions as r, Model as rn, LeafPredicateSchema as rr, getContextRegistry as rt, ClientOptions as s, QueryArgs as sn, OccAbortError as sr, ActionFn as st, CallerFromProcedures as t, InferSchema as tn, DEFAULT_RETRY as tr, RegisteredProcedure as tt, LiveQueryStatus as u, SchemaCodecs as un, OrPredicateSchema as ur, ContextOf as ut, AuthSuccessMessageSchema as v, shouldTrackSchema as vn, QueryCacheMetadataSchema as vr, QueryFn as vt, ConnectedMessage as w, LazyCommitTsParam as wn, RawRangeRead as wr, SupaliveDb as wt, CallMessageSchema as x, Database as xn, RangeReadSchema as xr, createActionBuilder as xt, AuthenticationError as y, tableNameToId as yn, QuerySpec as yr, QueryProcedure as yt, SubscriptionUpdateMessage as z, UnregisterSubscriptionParamsSchema as zn, JsonOpOptions as zt };
1754
- //# sourceMappingURL=index-DouKwYL6.d.ts.map
1958
+ export { ProcedureNames as $, AndPredicate as $n, ColumnCodec as $t, ResponseMessageSchema as A, DbType as An, RawPointReadSchema as Ar, SupaliveDb as At, SubscriptionUpdateMessageSchema as B, InvalidateWritesetParamsSchema as Bn, WriteOp as Br, DbWriter as Bt, ClientMessageSchema as C, schemaRegistry as Cn, QueryCacheEntrySchema as Cr, QueryFn as Ct, ErrorMessage as D, CoreInitLockCtx as Dn, RangeRead as Dr, createJobBuilder as Dt, Context as E, trackSchema as En, QuerySpec as Er, createActionBuilder as Et, SubscribeMessage as F, SqlBuilder as Fn, ReadEntry as Fr, QueryDefinition as Ft, RPCError as G, UnregisterSubscriptionParams as Gn, JsonOpOptions as Gt, UnsubscribeMessageSchema as H, RegisterSubscriptionParams as Hn, bytesFromJson as Hr, IdAndCommitTs as Ht, SubscribeMessageSchema as I, TxDatabase as In, ReadEntrySchema as Ir, ResultOf as It, ActionProcedures as J, UnregisterSubscriptionsParams as Jn, jsonContains as Jt, WSClientOptions as K, UnregisterSubscriptionParamsSchema as Kn, QueryBuilder as Kt, SubscriptionGoneMessage as L, CacheLayer as Ln, RetryConfig as Lr, _resetGlobalDefs as Lt, ServerMessageSchema as M, PooledClient as Mn, RawRangeReadSchema as Mr, AnyQueryDef as Mt, ServerPingMessage as N, PreparedQueries as Nn, RawReadEntry as Nr, DefsToMap as Nt, IsInternal as O, Database as On, RangeReadSchema as Or, createMutationBuilder as Ot, ServerPingMessageSchema as P, RawClient as Pn, RawReadEntrySchema as Pr, ParamsOf as Pt, MutationProcedures as Q, UpdateSubscriptionReadSetResult as Qn, ActionArgs as Qt, SubscriptionGoneMessageSchema as R, AffectedSubscription as Rn, WriteEntry as Rr, defineQuery as Rt, ClientMessage as S, defineSchema as Sn, QueryCacheEntry as Sr, QueryCtx as St, ConnectedMessageSchema as T, tableNameToId as Tn, QueryCacheMetadataSchema as Tr, TypeOf as Tt, ClientPublicState as U, RegisterSubscriptionParamsSchema as Un, normalizeIdToBytes as Ur, JsonContainsOptions as Ut, UnsubscribeMessage as V, InvalidateWritesetResult as Vn, WriteOpSchema as Vr, TxContext as Vt, HeartbeatOptions as W, RegisterSubscriptionResult as Wn, normalizeToBytes as Wr, JsonHasKeyMultiOptions as Wt, ContextRegistry as X, UpdateSubscriptionReadSetParams as Xn, jsonPathExtract as Xt, AppRouter as Y, UnregisterSubscriptionsResult as Yn, jsonPathExists as Yt, JobProcedures as Z, UpdateSubscriptionReadSetParamsSchema as Zn, matchesPredicate as Zt, AuthSuccessMessage as _, SchemaColumnMapping as _n, OrPredicateSchema as _r, MutationCtx as _t, CallOptions as a, DefineSchemaConfig as an, CommitTs as ar, router as at, CallMessage as b, StoredSchemaColumnsOptions as bn, Predicate as br, OutputOf as bt, LiveQueryHandle as c, InsertData as cn, DEFAULT_RETRY as cr, ActionFn as ct, WSClientMethods as d, OverrideField as dn, LiveResult as dr, ContextOf as dt, ComputedCodec as en, AndPredicateSchema as er, PublicProcedures as et, createClient as f, Prettify as fn, MutationResult as fr, JobConfig as ft, AuthMessageSchema as g, SchemaCodecs as gn, OrPredicate as gr, MutationConfig as gt, AuthMessage as h, ReturnQuery as hn, OccConflictError as hr, JobProcedure as ht, createCaller as i, DeclarativeIndex as in, CommitLogEntry as ir, getContextRegistry as it, ServerMessage as j, LazyCommitTsParam as jn, RawRangeRead as jr, sleep as jt, ResponseMessage as k, DbQueryResult as kn, RawPointRead as kr, createQueryBuilder as kt, LiveQueryState as l, Model as ln, LeafPredicate as lr, ActionProcedure as lt, AuthFailedMessageSchema as m, ReturnLiveQuery as mn, OccAbortError as mr, JobFn as mt, CallerFromRouter as n, ComputedField as nn, CachedPgMetadata as nr, RegisteredProcedure as nt, ClientFromProcedures as o, IndexDefinition as on, CompareOperator as or, ActionConfig as ot, AuthFailedMessage as p, QueryArgs as pn, NO_RETRY as pr, JobCtx as pt, WsClientManager as q, UnregisterSubscriptionResult as qn, buildPredicateSql as qt, CallerOptions as r, ComputedFieldConfig as rn, CachedPgMetadataSchema as rr, Router as rt, ClientOptions as s, InferSchema as sn, CompareOperatorSchema as sr, ActionCtx as st, CallerFromProcedures as t, ComputedDataType as tn, BigIntSchema as tr, QueryProcedures as tt, LiveQueryStatus as u, MutationArgs as un, LeafPredicateSchema as ur, AnyProcedure as ut, AuthSuccessMessageSchema as v, SchemaColumnsOptions as vn, PointRead as vr, MutationFn as vt, ConnectedMessage as w, shouldTrackSchema as wn, QueryCacheMetadata as wr, QueryProcedure as wt, CallMessageSchema as x, defineComputedField as xn, PredicateSchema as xr, QueryConfig as xt, AuthenticationError as y, SchemaDefinition as yn, PointReadSchema as yr, MutationProcedure as yt, SubscriptionUpdateMessage as z, InvalidateWritesetParams as zn, WriteEntrySchema as zr, DbReader as zt };
1959
+ //# sourceMappingURL=index-DJYvJYR4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DJYvJYR4.d.ts","names":[],"sources":["../src/db/types_db.ts","../src/server/subscription-manager-types.ts","../src/db/cache.ts","../src/db/db.ts","../src/db/schema.ts","../src/db/query.ts","../src/db/context.ts","../src/db/query_definition.ts","../src/db/realtime_db.ts","../src/router/procedure.ts","../src/router/router.ts","../src/client/ws_client_manager.ts","../src/db/types_client_rpc.ts","../src/client/client.ts","../src/client/caller_client.ts"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { An as CacheLayer, Cn as DbType, En as PreparedQueries, On as SqlBuilder, Or as ReadEntry, Sn as DbQueryResult, Tn as PooledClient, Zn as CommitLogEntry, jr as WriteEntry, kn as TxDatabase, wn as LazyCommitTsParam, xn as Database } from "./index-DouKwYL6.js";
1
+ import { An as DbType, Dn as CoreInitLockCtx, Fn as SqlBuilder, Fr as ReadEntry, In as TxDatabase, Ln as CacheLayer, Mn as PooledClient, Nn as PreparedQueries, On as Database, Rr as WriteEntry, ir as CommitLogEntry, jn as LazyCommitTsParam, kn as DbQueryResult } from "./index-DJYvJYR4.js";
2
2
  import { Pool, PoolOptions } from "mysql2/promise";
3
3
  import { Logger } from "pino";
4
4
 
@@ -67,12 +67,16 @@ declare class MySqlDatabase implements Database {
67
67
  /** Enumerate the user-defined tables in the connected database for mysql — used
68
68
  * by bootstrapColumnTypes() when no explicit list is provided. */
69
69
  private listUserTables;
70
- migrationSql: string[];
70
+ getCoreVersion(): Promise<bigint>;
71
+ coreMigrationStatements(toVersion: bigint): string[];
72
+ withCoreInitLock(fn: (ctx: CoreInitLockCtx) => Promise<void>): Promise<void>;
71
73
  query<T = any>(sql: string, params?: unknown[]): Promise<DbQueryResult<T>>;
72
74
  getClient(): Promise<PooledClient>;
73
75
  getTransactionClient(): Promise<TxDatabase>;
74
76
  getLatestSnapshotTimestamp(): Promise<bigint>;
75
77
  updateLatestSnapshotTimestamp(commitTs: bigint): Promise<void>;
78
+ getMinSnapshotTimestamp(): Promise<bigint>;
79
+ updateMinSnapshotTimestamp(ts: bigint): Promise<void>;
76
80
  getNextTimestamp(): Promise<bigint>;
77
81
  attachPrevDataToWriteSet(writeSet: WriteEntry[], readSet: ReadEntry[]): Promise<void>;
78
82
  prepareCommitWrites(readSet: ReadEntry[], writeSet: WriteEntry[], commitTs: LazyCommitTsParam): Promise<PreparedQueries>;
@@ -95,10 +99,11 @@ declare class MySqlDatabase implements Database {
95
99
  private mysqlApplyWrites;
96
100
  private validatePointReadsByCommitTs;
97
101
  pruneCommitLogsBefore(ts: bigint): Promise<bigint>;
102
+ getMinCommitLogTs(): Promise<bigint | null>;
98
103
  getCommitLogsBetweenTs(beginTs: bigint, endTs: bigint, tableIds: Uint8Array[]): Promise<CommitLogEntry[]>;
99
104
  getCommitLogsSinceTs(sinceTs: bigint, excludeTs: bigint, tableIds: Uint8Array[]): Promise<CommitLogEntry[]>;
100
105
  close(): Promise<void>;
101
106
  }
102
107
  //#endregion
103
108
  export { MySqlDatabase as t };
104
- //# sourceMappingURL=mysql-Bxurg_PH.d.ts.map
109
+ //# sourceMappingURL=mysql-53W9lRh9.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql-53W9lRh9.d.ts","names":[],"sources":["../src/db/mysql.ts"],"mappings":";;;;;;;;;KAwCY,gBAAA,GAAmB,WAAW;EAAK,cAAc;AAAA;AAAA,cAEhD,aAAA,YAAyB,QAAA;cAElC,MAAA,EAAQ,MAAA,EACR,MAAA,EAAQ,gBAAA,EACR,IAAA,GAAM,IAAA;EAAA,QAaA,MAAA;EACD,MAAA,EAAQ,WAAA;EAAA,UACL,cAAA;EAAA,QACF,IAAA;EAAA,SACC,MAAA,EAAQ,MAAA;EAAA,SACR,UAAA,EAAY,UAAA;EAMd,WAAA,EAAa,GAAA,SAAY,GAAA;EAAA,UAGtB,QAAA,EAAU,GAAA;EAwII;;;;;;EAhIlB,wBAAA,CAAyB,KAAA,WAAgB,OAAA,CAAQ,GAAA;EA0M5B;;;;;;EAlL3B,cAAA,CAAe,KAAA,WAAgB,GAAA;EA+Me;;;;;;;;;;;;;;;EAvLxC,oBAAA,CAAqB,IAAA;IACzB,KAAA,GAAQ,UAAA;IACR,QAAA;IACA,MAAA;EAAA,IACE,OAAA;EAgsBW;;;;;EAtpBf,qBAAA,CAAsB,KAAA;EAnIZ;;;EAkJV,WAAA,CACE,WAAA,EAAa,GAAA,SAAY,GAAA,mBACzB,QAAA,EAAU,GAAA;EAlJJ;;EAAA,QA0JM,cAAA;EASR,cAAA,IAAkB,OAAA;EAYxB,uBAAA,CAAwB,SAAA;EAWlB,gBAAA,CAAiB,EAAA,GAAK,GAAA,EAAK,eAAA,KAAoB,OAAA,SAAgB,OAAA;EAqC/D,KAAA,UAAe,GAAA,UAAa,MAAA,eAAyB,OAAA,CAAQ,aAAA,CAAc,CAAA;EAc3E,SAAA,IAAa,OAAA,CAAQ,YAAA;EAKrB,oBAAA,IAAwB,OAAA,CAAQ,UAAA;EAOhC,0BAAA,IAA8B,OAAA;EAK9B,6BAAA,CAA8B,QAAA,WAAmB,OAAA;EAOjD,uBAAA,IAA2B,OAAA;EAK3B,0BAAA,CAA2B,EAAA,WAAa,OAAA;EAOxC,gBAAA,IAAoB,OAAA;EAuBpB,wBAAA,CAAyB,QAAA,EAAU,UAAA,IAAc,OAAA,EAAS,SAAA,KAAc,OAAA;EA6DxE,mBAAA,CACJ,OAAA,EAAS,SAAA,IACT,QAAA,EAAU,UAAA,IACV,QAAA,EAAU,iBAAA,GACT,OAAA,CAAQ,eAAA;EAAA,QAmBG,uBAAA;EAAA,QAyBA,uBAAA;EAAA,QA2CA,wBAAA;EAAA,QAiCA,uBAAA;EAAA,QA4BA,sBAAA;EAlcC;;;;;;;EAAA,QA4eP,wCAAA;EAgDF,YAAA,CACJ,OAAA,UACA,OAAA,EAAS,eAAA,EACT,QAAA,WACC,OAAA;IAAU,OAAA;EAAA;EAAA,QAqCC,gBAAA;EAAA,QAyDA,4BAAA;EAwCR,qBAAA,CAAsB,EAAA,WAAa,OAAA;EAQnC,iBAAA,IAAqB,OAAA;EAQrB,sBAAA,CAAuB,OAAA,UAAiB,KAAA,UAAe,QAAA,EAAU,UAAA,KAAe,OAAA,CAAQ,cAAA;EAmBxF,oBAAA,CAAqB,OAAA,UAAiB,SAAA,UAAmB,QAAA,EAAU,UAAA,KAAe,OAAA,CAAQ,cAAA;EAmB1F,KAAA,IAAS,OAAA;AAAA"}