@supalive/core 1.14.0 → 1.16.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 (97) hide show
  1. package/dist/index-B4UxN1ZL.d.ts +2365 -0
  2. package/dist/index-B4UxN1ZL.d.ts.map +1 -0
  3. package/dist/index-B8JFAyw4.d.ts +2377 -0
  4. package/dist/index-B8JFAyw4.d.ts.map +1 -0
  5. package/dist/index-CfcrWLLm.d.ts +2377 -0
  6. package/dist/index-CfcrWLLm.d.ts.map +1 -0
  7. package/dist/index-Ddr4NiPf.d.ts +2295 -0
  8. package/dist/index-Ddr4NiPf.d.ts.map +1 -0
  9. package/dist/index-ggi1DrSG.d.ts +2336 -0
  10. package/dist/index-ggi1DrSG.d.ts.map +1 -0
  11. package/dist/mysql-07ROfbBZ.d.ts +114 -0
  12. package/dist/mysql-07ROfbBZ.d.ts.map +1 -0
  13. package/dist/mysql-BTigT6mP.d.ts +114 -0
  14. package/dist/mysql-BTigT6mP.d.ts.map +1 -0
  15. package/dist/mysql-CXymz1Eu.d.ts +114 -0
  16. package/dist/mysql-CXymz1Eu.d.ts.map +1 -0
  17. package/dist/mysql-ClUK7S2j.js +623 -0
  18. package/dist/mysql-ClUK7S2j.js.map +1 -0
  19. package/dist/mysql-CtpWqOhO.d.ts +114 -0
  20. package/dist/mysql-CtpWqOhO.d.ts.map +1 -0
  21. package/dist/mysql-DWj2q3qR.d.ts +114 -0
  22. package/dist/mysql-DWj2q3qR.d.ts.map +1 -0
  23. package/dist/mysql-fTKZ1zaF.js +623 -0
  24. package/dist/mysql-fTKZ1zaF.js.map +1 -0
  25. package/dist/overlap-checker-1TwhkAwy.js +259 -0
  26. package/dist/overlap-checker-1TwhkAwy.js.map +1 -0
  27. package/dist/overlap-checker-CGlxWcyb.js +259 -0
  28. package/dist/overlap-checker-CGlxWcyb.js.map +1 -0
  29. package/dist/postgres-B5-5vgLJ.d.ts +118 -0
  30. package/dist/postgres-B5-5vgLJ.d.ts.map +1 -0
  31. package/dist/postgres-CN03Espg.js +868 -0
  32. package/dist/postgres-CN03Espg.js.map +1 -0
  33. package/dist/postgres-CRPJdZx2.js +868 -0
  34. package/dist/postgres-CRPJdZx2.js.map +1 -0
  35. package/dist/postgres-D0M1ri-C.d.ts +118 -0
  36. package/dist/postgres-D0M1ri-C.d.ts.map +1 -0
  37. package/dist/postgres-DCXnKaJr.d.ts +118 -0
  38. package/dist/postgres-DCXnKaJr.d.ts.map +1 -0
  39. package/dist/postgres-DgCYPf0j.d.ts +118 -0
  40. package/dist/postgres-DgCYPf0j.d.ts.map +1 -0
  41. package/dist/postgres-Dnshux6k.d.ts +118 -0
  42. package/dist/postgres-Dnshux6k.d.ts.map +1 -0
  43. package/dist/query-LJranz0c.js +795 -0
  44. package/dist/query-LJranz0c.js.map +1 -0
  45. package/dist/query-q1ZvKrZO.js +762 -0
  46. package/dist/query-q1ZvKrZO.js.map +1 -0
  47. package/dist/realtime_db-B0Tin87E.js +312 -0
  48. package/dist/realtime_db-B0Tin87E.js.map +1 -0
  49. package/dist/realtime_db-DVhhasJj.js +312 -0
  50. package/dist/realtime_db-DVhhasJj.js.map +1 -0
  51. package/dist/router-DP2ThAwh.js +274 -0
  52. package/dist/router-DP2ThAwh.js.map +1 -0
  53. package/dist/router-Dfnwka7K.js +337 -0
  54. package/dist/router-Dfnwka7K.js.map +1 -0
  55. package/dist/src/client/index.d.ts +2 -2
  56. package/dist/src/client/index.js +79 -17
  57. package/dist/src/client/index.js.map +1 -1
  58. package/dist/src/exports/mysql.d.ts +1 -1
  59. package/dist/src/exports/mysql.js +1 -1
  60. package/dist/src/exports/postgres.d.ts +1 -1
  61. package/dist/src/exports/postgres.js +1 -1
  62. package/dist/src/exports/procedure.d.ts +12 -9
  63. package/dist/src/exports/procedure.d.ts.map +1 -1
  64. package/dist/src/exports/procedure.js +65 -6
  65. package/dist/src/exports/procedure.js.map +1 -1
  66. package/dist/src/exports/schema-sql.d.ts +1 -1
  67. package/dist/src/exports/server.d.ts +12 -6
  68. package/dist/src/exports/server.d.ts.map +1 -1
  69. package/dist/src/exports/server.js +793 -253
  70. package/dist/src/exports/server.js.map +1 -1
  71. package/dist/src/exports/sub-manager-worker-entry.js +1 -1
  72. package/dist/src/exports/types.d.ts +2 -2
  73. package/dist/src/exports/types.js +1 -1
  74. package/dist/sub-worker-dispatch-D7jfw6ys.js +826 -0
  75. package/dist/sub-worker-dispatch-D7jfw6ys.js.map +1 -0
  76. package/dist/sub-worker-dispatch-qiSs5Xkm.js +826 -0
  77. package/dist/sub-worker-dispatch-qiSs5Xkm.js.map +1 -0
  78. package/dist/types_client_rpc-CWZmlWmM.js +145 -0
  79. package/dist/types_client_rpc-CWZmlWmM.js.map +1 -0
  80. package/dist/types_client_rpc-D4td5W0Y.js +141 -0
  81. package/dist/types_client_rpc-D4td5W0Y.js.map +1 -0
  82. package/dist/types_server-BSiGxbqb.d.ts +523 -0
  83. package/dist/types_server-BSiGxbqb.d.ts.map +1 -0
  84. package/dist/types_server-BhC19R2a.js.map +1 -1
  85. package/dist/types_server-BmIgDd8d.d.ts +614 -0
  86. package/dist/types_server-BmIgDd8d.d.ts.map +1 -0
  87. package/dist/types_server-C6B9_b1R.d.ts +662 -0
  88. package/dist/types_server-C6B9_b1R.d.ts.map +1 -0
  89. package/dist/types_server-DRr5yKy1.d.ts +655 -0
  90. package/dist/types_server-DRr5yKy1.d.ts.map +1 -0
  91. package/dist/types_server-DmCbve3w.d.ts +684 -0
  92. package/dist/types_server-DmCbve3w.d.ts.map +1 -0
  93. package/dist/types_server-Gs_vSVaS.d.ts +655 -0
  94. package/dist/types_server-Gs_vSVaS.d.ts.map +1 -0
  95. package/dist/types_server-ILUmPFvk.d.ts +614 -0
  96. package/dist/types_server-ILUmPFvk.d.ts.map +1 -0
  97. package/package.json +2 -1
@@ -0,0 +1,118 @@
1
+ import { $n as SqlBuilder, $r as ReadEntry, Gn as CoreInitLockCtx, Jn as DbType, Kn as Database, Sr as CommitLogEntry, Xn as PooledClient, Yn as LazyCommitTsParam, Zn as PreparedQueries, er as TxDatabase, ni as WriteEntry, qn as DbQueryResult, tr as CacheLayer } from "./index-CfcrWLLm.js";
2
+ import { Pool, PoolConfig } from "pg";
3
+ import { Logger } from "pino";
4
+
5
+ //#region src/db/postgres.d.ts
6
+ declare class PgDatabase implements Database {
7
+ constructor(logger: Logger, config: PoolConfig, pool?: Pool | undefined);
8
+ private logger;
9
+ config: PoolConfig;
10
+ private pool;
11
+ readonly sqlBuilder: SqlBuilder;
12
+ readonly dbType: DbType;
13
+ columnTypes: Map<string, Map<string, string>>;
14
+ protected sqlCache: Map<string, string>;
15
+ /**
16
+ * Fetches actual column types from Postgres for `table` and returns a
17
+ * map of DB column name → PG type string (as produced by `format_type`,
18
+ * e.g. `bigint`, `integer`, `character varying(32)`, `text[]`, `jsonb`).
19
+ * No caching here — see {@link getColumnTypes} for the cached path.
20
+ */
21
+ loadColumnTypesFromPg(table: string): Promise<Map<string, string>>;
22
+ /**
23
+ * Synchronous column-type lookup. The apply path calls this on every
24
+ * batched write, so it can't await — populate the cache via
25
+ * {@link bootstrapColumnTypes} at server start. Throws if `table` is
26
+ * missing (programmer error / bootstrap skipped).
27
+ */
28
+ getColumnTypes(table: string): Map<string, string> | null;
29
+ /**
30
+ * Eagerly load column types into the in-memory cache. With a Redis
31
+ * client supplied, attempts the cache key first and falls through to
32
+ * Postgres on miss (writing the result back to Redis). This is the
33
+ * "one server queries PG, the rest read from Redis" pattern for cold
34
+ * starts in a multi-instance deploy. Without Redis, always queries PG.
35
+ *
36
+ * Pass `tables` to limit the load to a specific list; otherwise every
37
+ * user table in the connected database is loaded.
38
+ *
39
+ * The Redis cache key should encode whatever invalidates types in your
40
+ * environment (typically a schema version / deploy version). The
41
+ * subscriber in supalive-server.ts is expected to publish a reload
42
+ * signal after migrations and invoke {@link invalidateColumnTypes}.
43
+ */
44
+ bootstrapColumnTypes(opts: {
45
+ redis?: CacheLayer;
46
+ cacheKey: string;
47
+ tables?: string[];
48
+ }): Promise<void>;
49
+ /**
50
+ * Invalidate cached types (and dependent SQL) for `table`, or the entire
51
+ * cache if `table` is omitted. The Redis-pubsub reload signal in
52
+ * supalive-server.ts is expected to call this on schema changes.
53
+ */
54
+ private invalidateColumnTypes;
55
+ /** Enumerate the user-defined tables in the connected database — used
56
+ * by bootstrapColumnTypes() when no explicit list is provided. */
57
+ private listUserTables;
58
+ getCoreVersion(): Promise<bigint>;
59
+ getAppMigration(): Promise<bigint>;
60
+ coreMigrationStatements(toVersion: bigint): string[];
61
+ withCoreInitLock(fn: (ctx: CoreInitLockCtx) => Promise<void>): Promise<void>;
62
+ query<T = any>(sql: string, params?: unknown[]): Promise<DbQueryResult<T>>;
63
+ getClient(): Promise<PooledClient>;
64
+ getTransactionClient(): Promise<TxDatabase>;
65
+ /** Internal: replace this instance's caches with shared references from
66
+ * a parent. Used by PgDatabase.getTransactionClient. */
67
+ adoptCaches(columnTypes: Map<string, Map<string, string>>, sqlCache: Map<string, string>): void;
68
+ getLatestSnapshotTimestamp(): Promise<bigint>;
69
+ updateLatestSnapshotTimestamp(commitTs: bigint): Promise<void>;
70
+ getMinSnapshotTimestamp(): Promise<bigint>;
71
+ updateMinSnapshotTimestamp(ts: bigint): Promise<void>;
72
+ getNextTimestamp(): Promise<bigint>;
73
+ attachPrevDataToWriteSet(writeSet: WriteEntry[], readSet: ReadEntry[]): Promise<void>;
74
+ prepareCommitWrites(readSet: ReadEntry[], writeSet: WriteEntry[], commitTs: LazyCommitTsParam): Promise<PreparedQueries>;
75
+ private pgPrepareBatchWrites;
76
+ private pgPrepareInsertSingle;
77
+ private pgPrepareInsertBatch;
78
+ private pgPrepareUpdateSingle;
79
+ private pgPrepareUpdateBatch;
80
+ private pgPrepareDeleteSingle;
81
+ private pgPrepareDeleteBatch;
82
+ private buildOrGetInsertSql;
83
+ private buildOrGetUpdateSql;
84
+ private buildOrGetDeleteSql;
85
+ private pgPrepareCommitLogs;
86
+ /**
87
+ * Point-only OCC check. For each genuine point read, compare the row's
88
+ * current commit_ts against the value captured at read time. A `null`
89
+ * expectedCommitTs means "row didn't exist when we read"; any row found
90
+ * now is a conflict. Reads whose row is being written in this same txn
91
+ * are skipped — the CAS UPDATE/DELETE already validated those.
92
+ */
93
+ private pgPrepareValidatePointReadsByCommitTs;
94
+ commitWrites(beginTs: bigint, queries: PreparedQueries, commitTs: bigint): Promise<{
95
+ success: boolean;
96
+ }>;
97
+ private pgApplyWrites;
98
+ /**
99
+ * Point-only OCC check. For each genuine point read, compare the row's
100
+ * current commit_ts against the value captured at read time. A `null`
101
+ * expectedCommitTs means "row didn't exist when we read"; any row found
102
+ * now is a conflict. Reads whose row is being written in this same txn
103
+ * are skipped — the CAS UPDATE/DELETE already validated those.
104
+ */
105
+ private validatePointReadsByCommitTs;
106
+ pruneCommitLogsBefore(ts: bigint): Promise<bigint>;
107
+ getMinCommitLogTs(): Promise<bigint | null>;
108
+ getCommitLogsBetweenTs(beginTs: bigint, endTs: bigint, tableIds: Uint8Array[]): Promise<CommitLogEntry[]>;
109
+ hasCommitForPoints(beginTs: bigint, endTs: bigint, points: {
110
+ tableId: Uint8Array;
111
+ id: Uint8Array;
112
+ }[]): Promise<boolean>;
113
+ getCommitLogsSinceTs(sinceTs: bigint, excludeTs: bigint, tableIds: Uint8Array[]): Promise<CommitLogEntry[]>;
114
+ close(): Promise<void>;
115
+ }
116
+ //#endregion
117
+ export { PgDatabase as t };
118
+ //# sourceMappingURL=postgres-Dnshux6k.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-Dnshux6k.d.ts","names":[],"sources":["../src/db/postgres.ts"],"mappings":";;;;;cAiBa,UAAA,YAAsB,QAAA;cAE/B,MAAA,EAAQ,MAAA,EACR,MAAA,EAAQ,UAAA,EACR,IAAA,GAAM,IAAA;EAAA,QAWA,MAAA;EACD,MAAA,EAAQ,UAAA;EAAA,QACP,IAAA;EAAA,SACC,UAAA,EAAY,UAAA;EAAA,SACZ,MAAA,EAAQ,MAAA;EAMV,WAAA,EAAa,GAAA,SAAY,GAAA;EAAA,UAGtB,QAAA,EAAU,GAAA;EAHY;;;;;;EAW1B,qBAAA,CAAsB,KAAA,WAAgB,OAAA,CAAQ,GAAA;EAoDhD;;;;;;EA5BJ,cAAA,CAAe,KAAA,WAAgB,GAAA;EAgKoC;;;;;;;;;;;;;;;EAxI7D,oBAAA,CAAqB,IAAA;IACzB,KAAA,GAAQ,UAAA;IACR,QAAA;IACA,MAAA;EAAA,IACE,OAAA;EAgSO;;;;;EAAA,QAtPH,qBAAA;EAm4B+D;;EAAA,QAr3BzD,cAAA;EAUR,cAAA,IAAkB,OAAA;EAOlB,eAAA,IAAmB,OAAA;EAWzB,uBAAA,CAAwB,SAAA;EAUlB,gBAAA,CAAiB,EAAA,GAAK,GAAA,EAAK,eAAA,KAAoB,OAAA,SAAgB,OAAA;EAsC/D,KAAA,UAAe,GAAA,UAAa,MAAA,eAAyB,OAAA,CAAQ,aAAA,CAAc,CAAA;EAe3E,SAAA,IAAa,OAAA,CAAQ,YAAA;EAIrB,oBAAA,IAAwB,OAAA,CAAQ,UAAA;EA/OL;;EA2PjC,WAAA,CACE,WAAA,EAAa,GAAA,SAAY,GAAA,mBACzB,QAAA,EAAU,GAAA;EAMN,0BAAA,IAA8B,OAAA;EAK9B,6BAAA,CAA8B,QAAA,WAAmB,OAAA;EAOjD,uBAAA,IAA2B,OAAA;EAO3B,0BAAA,CAA2B,EAAA,WAAa,OAAA;EAOxC,gBAAA,IAAoB,OAAA;EAuBpB,wBAAA,CAAyB,QAAA,EAAU,UAAA,IAAc,OAAA,EAAS,SAAA,KAAc,OAAA;EAgExE,mBAAA,CACJ,OAAA,EAAS,SAAA,IACT,QAAA,EAAU,UAAA,IACV,QAAA,EAAU,iBAAA,GACT,OAAA,CAAQ,eAAA;EAAA,QAqBG,oBAAA;EAAA,QA2BN,qBAAA;EAAA,QAkBM,oBAAA;EAAA,QA+DN,qBAAA;EAAA,QAwBM,oBAAA;EAAA,QAsEN,qBAAA;EAAA,QAgBM,oBAAA;EAAA,QAiDN,mBAAA;EAAA,QAqBA,mBAAA;EAAA,QA4BA,mBAAA;EAAA,QAcM,mBAAA;EA9rBkB;;;;;;;EAAA,QA4uBxB,qCAAA;EAkDF,YAAA,CACJ,OAAA,UACA,OAAA,EAAS,eAAA,EACT,QAAA,WACC,OAAA;IAAU,OAAA;EAAA;EAAA,QAqCC,aAAA;EA3wBJ;;;;;;;EAAA,QAs3BI,4BAAA;EA0CR,qBAAA,CAAsB,EAAA,WAAa,OAAA;EAQnC,iBAAA,IAAqB,OAAA;EAQrB,sBAAA,CAAuB,OAAA,UAAiB,KAAA,UAAe,QAAA,EAAU,UAAA,KAAe,OAAA,CAAQ,cAAA;EAmBxF,kBAAA,CACJ,OAAA,UACA,KAAA,UACA,MAAA;IAAU,OAAA,EAAS,UAAA;IAAY,EAAA,EAAI,UAAA;EAAA,MAClC,OAAA;EAsBG,oBAAA,CAAqB,OAAA,UAAiB,SAAA,UAAmB,QAAA,EAAU,UAAA,KAAe,OAAA,CAAQ,cAAA;EAmB1F,KAAA,IAAS,OAAA;AAAA"}