@supalive/core 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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-E1_1iRI1.d.ts} +213 -9
  5. package/dist/index-E1_1iRI1.d.ts.map +1 -0
  6. package/dist/{mysql-Bxurg_PH.d.ts → mysql-BmkLy5oY.d.ts} +8 -3
  7. package/dist/mysql-BmkLy5oY.d.ts.map +1 -0
  8. package/dist/{mysql-bvnjYWvZ.js → mysql-Ca1B_0k_.js} +58 -25
  9. package/dist/mysql-Ca1B_0k_.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-B8u1YN8X.js → postgres-CHDY1HPf.js} +59 -22
  13. package/dist/postgres-CHDY1HPf.js.map +1 -0
  14. package/dist/{postgres-Ck-xt72U.d.ts → postgres-v2ctNE6o.d.ts} +8 -3
  15. package/dist/postgres-v2ctNE6o.d.ts.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 +35 -2
  34. package/dist/src/exports/schema-sql.d.ts.map +1 -1
  35. package/dist/src/exports/schema-sql.js +69 -19
  36. package/dist/src/exports/schema-sql.js.map +1 -1
  37. package/dist/src/exports/server.d.ts +64 -17
  38. package/dist/src/exports/server.d.ts.map +1 -1
  39. package/dist/src/exports/server.js +726 -64
  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-CAf6MUta.js} +306 -69
  46. package/dist/subscription-worker-CAf6MUta.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-CzAufcee.d.ts +420 -0
  50. package/dist/types_server-CzAufcee.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 tables** — `commit_logs` and `metadata` (and 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 brings the **non-table** core state — the `global_commit_ts` sequence (MySQL: a `BIGINT` counter table) and the `metadata` seed rows — 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 * Raw, non-table bootstrap statements to apply when migrating the core\n * schema TO `toVersion` (i.e. the `toVersion - 1` → `toVersion` step):\n * sequences, seed rows, etc. Dialect-specific; tables themselves live in the\n * generated schema (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;AA+LnC,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,40 @@ 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
+ * Raw, non-table bootstrap statements to apply when migrating the core
475
+ * schema TO `toVersion` (i.e. the `toVersion - 1` → `toVersion` step):
476
+ * sequences, seed rows, etc. Dialect-specific; tables themselves live in the
477
+ * generated schema (see `coreTablesSql`).
478
+ */
479
+ coreMigrationStatements(toVersion: bigint): string[];
480
+ /**
481
+ * Run `fn` while holding the cross-process core-init lock (PG
482
+ * `pg_advisory_xact_lock`, MySQL `GET_LOCK`) on a single dedicated
483
+ * connection, so concurrent servers can't race the core migration. All of
484
+ * `fn`'s work runs on that locked connection via {@link CoreInitLockCtx}.
485
+ */
486
+ withCoreInitLock(fn: (ctx: CoreInitLockCtx) => Promise<void>): Promise<void>;
430
487
  bootstrapColumnTypes(opts: {
431
488
  redis?: CacheLayer;
432
489
  cacheKey: string;
@@ -437,6 +494,23 @@ interface Database {
437
494
  getTransactionClient(): Promise<TxDatabase>;
438
495
  getLatestSnapshotTimestamp(): Promise<bigint>;
439
496
  updateLatestSnapshotTimestamp(commitTs: bigint): Promise<void>;
497
+ /**
498
+ * The retention watermark: the boundary `ts` below which commit_logs have
499
+ * been pruned, so any cache entry whose `lastSnapshotTs` is below it can no
500
+ * longer be freshness-checked (its scan window would miss deleted rows) and
501
+ * must be recomputed. Persisted in the `metadata` table (survives restarts)
502
+ * as a cheap PK read — callers load it into an in-memory variable at startup
503
+ * and keep it fresh via pub/sub rather than reading it per query. Returns the
504
+ * -1n genesis when nothing has been pruned yet (matching the empty-DB snapshot
505
+ * ts), so every entry is scannable.
506
+ */
507
+ getMinSnapshotTimestamp(): Promise<bigint>;
508
+ /**
509
+ * Advance the retention watermark. Monotonic: only ever moves forward (a
510
+ * stale writer can never lower it). Called by the sub-manager right before it
511
+ * prunes commit_logs below `ts`.
512
+ */
513
+ updateMinSnapshotTimestamp(ts: bigint): Promise<void>;
440
514
  getNextTimestamp(): Promise<bigint>;
441
515
  prepareCommitWrites(readSet: ReadEntry[], writeSet: WriteEntry[], commitTs: LazyCommitTsParam): Promise<PreparedQueries>;
442
516
  commitWrites(beginTs: bigint, queries: PreparedQueries, commitTs: bigint): Promise<{
@@ -449,6 +523,14 @@ interface Database {
449
523
  * unbounded.
450
524
  */
451
525
  pruneCommitLogsBefore(ts: bigint): Promise<bigint>;
526
+ /**
527
+ * Oldest `ts` still present in commit_logs (i.e. the retention watermark
528
+ * after the last prune), or `null` when the table is empty. A cache entry
529
+ * whose `lastSnapshotTs` is below it can no longer be freshness-checked via
530
+ * {@link getCommitLogsBetweenTs} (the logs it would need were pruned), so the
531
+ * one-shot/register cache paths recompute instead of trusting it.
532
+ */
533
+ getMinCommitLogTs(): Promise<bigint | null>;
452
534
  /**
453
535
  * Half-open range scan: ts >= beginTs AND ts < endTs. Used by the
454
536
  * subscription-recovery path to replay logs in a specific time window.
@@ -790,6 +872,13 @@ declare class FilterBuilder<S extends SchemaDefinition<string, ZodRawShape>> {
790
872
  */
791
873
  jsonArrayContains<K extends JsonFieldKeys<S>>(key: K, value: unknown, opts?: JsonContainsOptions): FilterBuilder<S>;
792
874
  between<K extends OrderableFieldKeys<S>>(key: K, lo: FieldValue<S, K>, hi: FieldValue<S, K>): FilterBuilder<S>;
875
+ /**
876
+ * Set membership: `key` equals any of `values` (SQL `IN`). Each value is
877
+ * codec-encoded like `eq`. An empty `values` matches no rows. Bound as one
878
+ * parameter per element, so keep the list within the driver's parameter
879
+ * limit (chunk very large sets at the call site).
880
+ */
881
+ in<K extends keyof InferSchema<S>>(key: K, values: readonly FieldValue<S, K>[]): FilterBuilder<S>;
793
882
  isNull<K extends keyof InferSchema<S>>(key: K): FilterBuilder<S>;
794
883
  notNull<K extends keyof InferSchema<S>>(key: K): FilterBuilder<S>;
795
884
  /**
@@ -821,6 +910,13 @@ declare class TxContext {
821
910
  constructor(db: Database, beginTs: bigint);
822
911
  internalGetReadSet(): ReadEntry[];
823
912
  internalGetWriteSet(): WriteEntry[];
913
+ /**
914
+ * Merge a parent procedure's reads into this context's readSet. Used when a
915
+ * `runMutation` sub-transaction inherits the reads of the procedure that
916
+ * invoked it, so the sub-tx's OCC validation also fences on those rows.
917
+ * Entries are shallow-cloned so the two readSets don't alias.
918
+ */
919
+ appendInternalReadSet(parentEntries: ReadEntry[]): void;
824
920
  protected findPendingWrite(table: string, id: string): WriteEntry | undefined;
825
921
  protected findPendingInsert(table: string, id: string): WriteEntry | undefined;
826
922
  protected encodeWithCodec(model: Model, property: string, value: unknown): unknown;
@@ -893,7 +989,26 @@ declare class SupaliveDb {
893
989
  db: Database;
894
990
  }): SupaliveDb;
895
991
  protected onAfterCommit?: (writeSet: WriteEntry[], commitTs: CommitTs) => void;
992
+ /**
993
+ * Register a hook fired once after every successful `mutation()` commit
994
+ * (never on an OCC conflict/rollback), with the committed writeSet and its
995
+ * commitTs. The server uses this to drive subscription invalidation for ALL
996
+ * mutation sources — client WS calls, actions, jobs, and the internal caller —
997
+ * so a server-side write pushes live updates just like a client write does.
998
+ * Non-server consumers (migration tooling, tests) leave it unset (no-op).
999
+ */
1000
+ setOnAfterCommit(cb: (writeSet: WriteEntry[], commitTs: CommitTs) => void): void;
896
1001
  query<T>(fn: (ctx: DbReader) => Promise<T>): Promise<T>;
1002
+ /**
1003
+ * Compute a query once at the latest snapshot, returning the result together
1004
+ * with the snapshot `ts` and the tracked `readSet`. This is a plain one-shot
1005
+ * evaluation — it registers NO live subscription; the `readSet`/`ts` are
1006
+ * returned purely so the caller (e.g. the one-shot query cache) can store
1007
+ * freshness metadata. Use this for cached one-shot query calls (WS `call`,
1008
+ * HTTP RPC). `liveQuery` is the same computation under the subscription path's
1009
+ * name and simply delegates here.
1010
+ */
1011
+ queryInternal<T>(fn: (ctx: DbReader) => Promise<T>): Promise<LiveResult<T>>;
897
1012
  liveQuery<T>(fn: (ctx: DbReader) => Promise<T>): Promise<LiveResult<T>>;
898
1013
  mutation<T>(fn: (ctx: DbWriter) => Promise<T>, retryPolicy?: RetryPolicy): Promise<MutationResult<T>>;
899
1014
  }
@@ -930,9 +1045,36 @@ interface ActionCtx<TContext = unknown> {
930
1045
  /** User-defined server context (auth, requestId, etc.) */
931
1046
  serverCtx?: TContext;
932
1047
  }
1048
+ /**
1049
+ * Job context passed to job handlers. Structurally identical to
1050
+ * {@link ActionCtx}: a job is a server-only procedure that runs
1051
+ * non-transactionally against the full {@link SupaliveDb} and may perform
1052
+ * external work, but it is triggered by the scheduler over HTTP (a cron tick
1053
+ * or a precise one-shot) rather than by a connected client. `serverCtx` is
1054
+ * the system context built by the server's `jobContext` factory.
1055
+ */
1056
+ interface JobCtx<TContext = unknown> {
1057
+ /** Full database interface for queries and mutations */
1058
+ db: SupaliveDb;
1059
+ /** System server context built by the server for scheduler-triggered runs */
1060
+ serverCtx?: TContext;
1061
+ }
1062
+ /**
1063
+ * Context handed to `caller.<proc>.runQuery` / `.runMutation` when invoking one
1064
+ * procedure from inside another. Pass the caller handler's own `ctx` — its `db`
1065
+ * carries the parent's live transaction (a {@link DbReader}/{@link DbWriter}) or,
1066
+ * inside an action, the full {@link SupaliveDb}. The caller uses this to decide
1067
+ * whether the nested call joins the parent's snapshot (queries) or runs as an
1068
+ * independent sub-transaction (mutations).
1069
+ */
1070
+ interface ParentCtx<TContext = unknown> {
1071
+ db: DbReader | DbWriter | SupaliveDb;
1072
+ serverCtx?: TContext | undefined;
1073
+ }
933
1074
  type QueryFn<TInput, TResult, TContext = unknown> = (ctx: QueryCtx<TContext>, input: TInput) => Promise<TResult>;
934
1075
  type MutationFn<TInput, TResult, TContext = unknown> = (ctx: MutationCtx<TContext>, input: TInput) => Promise<TResult>;
935
1076
  type ActionFn<TInput, TResult, TContext = unknown> = (ctx: ActionCtx<TContext>, input: TInput) => Promise<TResult>;
1077
+ type JobFn<TInput, TResult, TContext = unknown> = (ctx: JobCtx<TContext>, input: TInput) => Promise<TResult>;
936
1078
  /**
937
1079
  * Per-procedure override for the cache/subscription segmentation key.
938
1080
  *
@@ -948,11 +1090,11 @@ type ActionFn<TInput, TResult, TContext = unknown> = (ctx: ActionCtx<TContext>,
948
1090
  * because identity is resolved before any DB read is issued.
949
1091
  */
950
1092
  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> {
1093
+ interface BaseProcedure<TInput, TResult, TType extends "query" | "mutation" | "action" | "job", TContext = unknown, TInternal extends boolean = boolean> {
952
1094
  readonly _type: "procedure";
953
1095
  readonly procedureType: TType;
954
1096
  readonly inputSchema: ZodType<TInput>;
955
- readonly fn: QueryFn<TInput, TResult, TContext> | MutationFn<TInput, TResult, TContext> | ActionFn<TInput, TResult, TContext>;
1097
+ readonly fn: QueryFn<TInput, TResult, TContext> | MutationFn<TInput, TResult, TContext> | ActionFn<TInput, TResult, TContext> | JobFn<TInput, TResult, TContext>;
956
1098
  readonly internal: TInternal;
957
1099
  }
958
1100
  interface QueryProcedure<TInput, TResult, TContext = unknown, TInternal extends boolean = boolean> extends BaseProcedure<TInput, TResult, "query", TContext, TInternal> {
@@ -968,7 +1110,24 @@ interface ActionProcedure<TInput, TResult, TContext = unknown, TInternal extends
968
1110
  readonly procedureType: "action";
969
1111
  readonly fn: ActionFn<TInput, TResult, TContext>;
970
1112
  }
971
- type AnyProcedure<TContext = unknown> = QueryProcedure<any, any, TContext> | MutationProcedure<any, any, TContext> | ActionProcedure<any, any, TContext>;
1113
+ /**
1114
+ * A scheduler-triggered, server-only procedure. Runs like an action (full
1115
+ * db, non-transactional, may do external work) but is dispatched by the
1116
+ * server's HTTP job endpoint on a cron tick or a precise one-shot rather
1117
+ * than over the client WebSocket. Always {@link internal}: true, so it is
1118
+ * never reachable via `call`/`subscribe`.
1119
+ */
1120
+ interface JobProcedure<TInput, TResult, TContext = unknown> extends BaseProcedure<TInput, TResult, "job", TContext, true> {
1121
+ readonly procedureType: "job";
1122
+ readonly fn: JobFn<TInput, TResult, TContext>;
1123
+ /**
1124
+ * Cron expression for a recurring job (e.g. `"0 3 * * *"`). Declared crons
1125
+ * are synced to the scheduler at server startup. Omit for a job that is
1126
+ * only ever invoked as a precise one-shot via the scheduler API.
1127
+ */
1128
+ readonly cron?: string;
1129
+ }
1130
+ type AnyProcedure<TContext = unknown> = QueryProcedure<any, any, TContext> | MutationProcedure<any, any, TContext> | ActionProcedure<any, any, TContext> | JobProcedure<any, any, TContext>;
972
1131
  interface QueryConfig<TInput, TResult, TContext = unknown> {
973
1132
  /** Zod schema for input validation */
974
1133
  args: ZodType<TInput>;
@@ -998,6 +1157,17 @@ interface ActionConfig<TInput, TResult, TContext = unknown> {
998
1157
  /** Mark as internal (server-only). Default: false */
999
1158
  internal?: boolean;
1000
1159
  }
1160
+ interface JobConfig<TInput, TResult, TContext = unknown> {
1161
+ /** Zod schema for the job payload */
1162
+ args: ZodType<TInput>;
1163
+ /** The job handler function */
1164
+ handler: JobFn<TInput, TResult, TContext>;
1165
+ /**
1166
+ * Cron expression for a recurring schedule (e.g. `"0 3 * * *"`). Omit for a
1167
+ * job that is only invoked as a precise one-shot.
1168
+ */
1169
+ cron?: string;
1170
+ }
1001
1171
  /** Extract input type from a procedure */
1002
1172
  type InputOf<T> = T extends BaseProcedure<infer I, any, any, any> ? I : never;
1003
1173
  /** Extract output type from a procedure */
@@ -1100,6 +1270,26 @@ declare function createMutationBuilder<TContext = unknown>(): <TInput, TResult,
1100
1270
  declare function createActionBuilder<TContext = unknown>(): <TInput, TResult, const TInternal extends boolean = false>(config: ActionConfig<TInput, TResult, TContext> & {
1101
1271
  internal?: TInternal;
1102
1272
  }) => ActionProcedure<TInput, TResult, TContext, TInternal>;
1273
+ /**
1274
+ * Create a job builder with a pre-defined context type. A job is a
1275
+ * server-only procedure invoked by the scheduler over HTTP — either on its
1276
+ * declared `cron` schedule or as a precise one-shot enqueued via the
1277
+ * server's job API. Jobs run like actions (full db, non-transactional) and
1278
+ * are always internal, so they are never reachable from a client.
1279
+ *
1280
+ * @example
1281
+ * const job = createJobBuilder<ServerContext>();
1282
+ *
1283
+ * export const cleanupOtps = job({
1284
+ * cron: "0 * * * *", // hourly
1285
+ * args: z.object({}),
1286
+ * handler: async (ctx) => {
1287
+ * await ctx.db.mutation(async (db) => { ... });
1288
+ * return { ok: true };
1289
+ * },
1290
+ * });
1291
+ */
1292
+ declare function createJobBuilder<TContext = unknown>(): <TInput, TResult>(config: JobConfig<TInput, TResult, TContext>) => JobProcedure<TInput, TResult, TContext>;
1103
1293
  //#endregion
1104
1294
  //#region src/router/router.d.ts
1105
1295
  /**
@@ -1128,6 +1318,10 @@ type MutationProcedures<T extends Record<string, AnyProcedure>> = { [K in keyof
1128
1318
  type ActionProcedures<T extends Record<string, AnyProcedure>> = { [K in keyof T as T[K] extends {
1129
1319
  procedureType: "action";
1130
1320
  } ? K : never]: T[K] };
1321
+ /** Get job procedures only from a router */
1322
+ type JobProcedures<T extends Record<string, AnyProcedure>> = { [K in keyof T as T[K] extends {
1323
+ procedureType: "job";
1324
+ } ? K : never]: T[K] };
1131
1325
  /** Get public (non-internal) procedures - for client type safety */
1132
1326
  type PublicProcedures<T extends Record<string, AnyProcedure>> = Pick<T, { [K in keyof T]: T[K] extends {
1133
1327
  internal: true;
@@ -1156,12 +1350,14 @@ type RouterConfig<T> = {
1156
1350
  declare function router<TProcedures extends Record<string, AnyProcedure<any>>, TContext = unknown>(config: RouterConfig<TProcedures>): Router<TProcedures, TContext>;
1157
1351
  interface RegisteredProcedure<TContext = unknown> {
1158
1352
  name: string;
1159
- type: "query" | "mutation" | "action";
1353
+ type: "query" | "mutation" | "action" | "job";
1160
1354
  internal: boolean;
1161
1355
  inputSchema: AnyProcedure<TContext>["inputSchema"];
1162
1356
  fn: AnyProcedure<TContext>["fn"];
1163
1357
  /** Only present for `type === "query"`. See `QueryIdentitySpec`. */
1164
1358
  queryIdentity?: false | string | ((serverCtx: TContext | undefined, input: unknown) => string | null | undefined);
1359
+ /** Only present for `type === "job"`. Cron expression for recurring jobs. */
1360
+ cron?: string;
1165
1361
  }
1166
1362
  declare function getContextRegistry(inContext: string): ContextRegistry;
1167
1363
  declare class ContextRegistry {
@@ -1174,6 +1370,8 @@ declare class ContextRegistry {
1174
1370
  getProcedureNames(): string[];
1175
1371
  /** Get all registered procedures */
1176
1372
  getAllProcedures(): Map<string, RegisteredProcedure>;
1373
+ /** Get all registered job procedures (server-only, scheduler-triggered). */
1374
+ getJobProcedures(): RegisteredProcedure[];
1177
1375
  /** Clear the registry (for testing only) */
1178
1376
  clearRegistry(): void;
1179
1377
  markInternalProcedure(name: string): void;
@@ -1732,14 +1930,20 @@ type CallerFromProcedures<TProcedures extends Record<string, AnyProcedure<TConte
1732
1930
  } ? {
1733
1931
  query: (input: InputOf<TProcedures[K]>, serverCtx: TContext) => Promise<OutputOf<TProcedures[K]>>;
1734
1932
  liveQuery: (input: InputOf<TProcedures[K]>, serverCtx: TContext) => Promise<LiveResult<OutputOf<TProcedures[K]>>>;
1933
+ runQuery: (input: InputOf<TProcedures[K]>, ctx: ParentCtx<TContext>) => Promise<OutputOf<TProcedures[K]>>;
1735
1934
  } : TProcedures[K] extends {
1736
1935
  procedureType: "mutation";
1737
1936
  } ? {
1738
1937
  mutate: (input: InputOf<TProcedures[K]>, serverCtx: TContext) => Promise<OutputOf<TProcedures[K]>>;
1938
+ runMutation: (input: InputOf<TProcedures[K]>, ctx: ParentCtx<TContext>) => Promise<OutputOf<TProcedures[K]>>;
1739
1939
  } : TProcedures[K] extends {
1740
1940
  procedureType: "action";
1741
1941
  } ? {
1742
1942
  action: (input: InputOf<TProcedures[K]>, serverCtx: TContext) => Promise<OutputOf<TProcedures[K]>>;
1943
+ } : TProcedures[K] extends {
1944
+ procedureType: "job";
1945
+ } ? {
1946
+ run: (input: InputOf<TProcedures[K]>, serverCtx: TContext) => Promise<OutputOf<TProcedures[K]>>;
1743
1947
  } : never } & {
1744
1948
  init: (config: {
1745
1949
  db: SupaliveDb;
@@ -1750,5 +1954,5 @@ type CallerFromProcedures<TProcedures extends Record<string, AnyProcedure<TConte
1750
1954
  */
1751
1955
  type CallerFromRouter<TRouter extends Router<any, any>> = CallerFromProcedures<TRouter["procedures"]>;
1752
1956
  //#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
1957
+ 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 };
1958
+ //# sourceMappingURL=index-E1_1iRI1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-E1_1iRI1.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-E1_1iRI1.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-BmkLy5oY.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql-BmkLy5oY.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;EAyM5B;;;;;;EAjL3B,cAAA,CAAe,KAAA,WAAgB,GAAA;EA8Me;;;;;;;;;;;;;;;EAtLxC,oBAAA,CAAqB,IAAA;IACzB,KAAA,GAAQ,UAAA;IACR,QAAA;IACA,MAAA;EAAA,IACE,OAAA;EA+rBW;;;;;EArpBf,qBAAA,CAAsB,KAAA;EAnIZ;;;EAkJV,WAAA,CACE,WAAA,EAAa,GAAA,SAAY,GAAA,mBACzB,QAAA,EAAU,GAAA;EAlJJ;;EAAA,QA0JM,cAAA;EASR,cAAA,IAAkB,OAAA;EAUxB,uBAAA,CAAwB,SAAA;EAYlB,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;EAjcC;;;;;;;EAAA,QA2eP,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"}