@supalive/core 1.20.1 → 1.21.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.
- package/dist/ephemeral-BVeIVuYw.js +276 -0
- package/dist/ephemeral-BVeIVuYw.js.map +1 -0
- package/dist/ephemeral-CkidSG9y.js +295 -0
- package/dist/ephemeral-CkidSG9y.js.map +1 -0
- package/dist/index-CzW0TkpK.d.ts +2729 -0
- package/dist/index-CzW0TkpK.d.ts.map +1 -0
- package/dist/index-DB7_pv9P.d.ts +2746 -0
- package/dist/index-DB7_pv9P.d.ts.map +1 -0
- package/dist/logger-BJNCJkFh.js +463 -0
- package/dist/logger-BJNCJkFh.js.map +1 -0
- package/dist/logger-By9Pw-X2.js +454 -0
- package/dist/logger-By9Pw-X2.js.map +1 -0
- package/dist/mysql-Bvc_iWUy.d.ts +114 -0
- package/dist/mysql-Bvc_iWUy.d.ts.map +1 -0
- package/dist/mysql-CcIuIAt0.js +622 -0
- package/dist/mysql-CcIuIAt0.js.map +1 -0
- package/dist/mysql-DTK2f5oU.d.ts +114 -0
- package/dist/mysql-DTK2f5oU.d.ts.map +1 -0
- package/dist/one-shot-query-BNYLU19W.js +573 -0
- package/dist/one-shot-query-BNYLU19W.js.map +1 -0
- package/dist/one-shot-query-BSK7adwG.js +573 -0
- package/dist/one-shot-query-BSK7adwG.js.map +1 -0
- package/dist/one-shot-query-DAAHGTcI.js +573 -0
- package/dist/one-shot-query-DAAHGTcI.js.map +1 -0
- package/dist/overlap-checker-DseE1Lvh.js +300 -0
- package/dist/overlap-checker-DseE1Lvh.js.map +1 -0
- package/dist/postgres-Bp7SMb9D.d.ts +118 -0
- package/dist/postgres-Bp7SMb9D.d.ts.map +1 -0
- package/dist/postgres-C5CbPBcp.d.ts +118 -0
- package/dist/postgres-C5CbPBcp.d.ts.map +1 -0
- package/dist/postgres-CLhoKn_R.js +867 -0
- package/dist/postgres-CLhoKn_R.js.map +1 -0
- package/dist/realtime_db-CTGOrFuV.js +463 -0
- package/dist/realtime_db-CTGOrFuV.js.map +1 -0
- package/dist/src/client/index.d.ts +2 -2
- package/dist/src/client/index.js +6 -5
- package/dist/src/client/index.js.map +1 -1
- package/dist/src/exports/mysql.d.ts +1 -1
- package/dist/src/exports/mysql.js +1 -1
- package/dist/src/exports/postgres.d.ts +1 -1
- package/dist/src/exports/postgres.js +1 -1
- package/dist/src/exports/procedure.d.ts +2 -2
- package/dist/src/exports/procedure.d.ts.map +1 -1
- package/dist/src/exports/procedure.js +2 -1
- package/dist/src/exports/procedure.js.map +1 -1
- package/dist/src/exports/schema-sql.d.ts +1 -1
- package/dist/src/exports/server.d.ts +56 -5
- package/dist/src/exports/server.d.ts.map +1 -1
- package/dist/src/exports/server.js +168 -10
- package/dist/src/exports/server.js.map +1 -1
- package/dist/src/exports/sub-manager-worker-entry.js +1 -1
- package/dist/src/exports/types.d.ts +2 -2
- package/dist/src/exports/types.js +2 -2
- package/dist/sub-worker-dispatch-C20KTMfg.js +925 -0
- package/dist/sub-worker-dispatch-C20KTMfg.js.map +1 -0
- package/dist/sub-worker-dispatch-CQCuwZPm.js +925 -0
- package/dist/sub-worker-dispatch-CQCuwZPm.js.map +1 -0
- package/dist/sub-worker-dispatch-Dwrp3c40.js +925 -0
- package/dist/sub-worker-dispatch-Dwrp3c40.js.map +1 -0
- package/dist/types_client_rpc-CqUVHTwT.js +163 -0
- package/dist/types_client_rpc-CqUVHTwT.js.map +1 -0
- package/dist/types_db-DPMeNETt.js +173 -0
- package/dist/types_db-DPMeNETt.js.map +1 -0
- package/dist/types_server-hiwqDm4G.d.ts +737 -0
- package/dist/types_server-hiwqDm4G.d.ts.map +1 -0
- package/dist/types_server-xHmZ6baD.d.ts +737 -0
- package/dist/types_server-xHmZ6baD.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DB7_pv9P.d.ts","names":[],"sources":["../src/db/types_db.ts","../src/server/sub-manager-types.ts","../src/db/cache.ts","../src/db/db.ts","../src/db/table-id.ts","../src/db/schema.ts","../src/db/query.ts","../src/db/ephemeral.ts","../src/db/context.ts","../src/db/query_definition.ts","../src/db/realtime_db.ts","../src/jobs/scheduler.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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"}
|
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
import { a as unwrapZodType, i as normalizeCodec } from "./table-id-DyrJBKAQ.js";
|
|
2
|
+
import { c as traceDbCall, t as QueryBuilder } from "./query-LJranz0c.js";
|
|
3
|
+
import { i as EphemeralFlushError, l as createTrackedEphemeralReader, s as createBufferedEphemeralWriter, t as EMPTY_EPHEMERAL_KEYS } from "./ephemeral-CkidSG9y.js";
|
|
4
|
+
import { c as LazyCommitTsParam } from "./overlap-checker-DseE1Lvh.js";
|
|
5
|
+
import { l as OccConflictError } from "./types_db-DPMeNETt.js";
|
|
6
|
+
import { z as z$1 } from "zod";
|
|
7
|
+
import { v4 } from "uuid";
|
|
8
|
+
import { ExponentialBackoff, handleWhen, retry } from "cockatiel";
|
|
9
|
+
import pino from "pino";
|
|
10
|
+
import "pino-pretty";
|
|
11
|
+
//#region src/db/context.ts
|
|
12
|
+
/**
|
|
13
|
+
* Materialize a schema's runtime {@link Model}: column-name mapping, per-column
|
|
14
|
+
* coarse type tags, and the codec used to (de)serialize each column.
|
|
15
|
+
*
|
|
16
|
+
* Codecs are resolved via {@link normalizeCodec}, which supplies a sensible
|
|
17
|
+
* default per Zod type (e.g. a {@link dateCodec} for `z.date()`, so `Date`
|
|
18
|
+
* columns round-trip automatically) while letting a user-supplied codec in
|
|
19
|
+
* `schema.columnsOptions.codecs` override it — partially or fully.
|
|
20
|
+
*/
|
|
21
|
+
function buildModel(schema) {
|
|
22
|
+
const shape = schema.schema.shape;
|
|
23
|
+
const customColumns = schema.columns;
|
|
24
|
+
const columns = {};
|
|
25
|
+
const types = {};
|
|
26
|
+
const codecs = {};
|
|
27
|
+
const schemaCodecs = schema.columnsOptions.codecs ?? {};
|
|
28
|
+
for (const key of Object.keys(shape)) {
|
|
29
|
+
columns[key] = customColumns?.[key] ?? key;
|
|
30
|
+
const field = shape[key];
|
|
31
|
+
const baseField = unwrapZodType(field);
|
|
32
|
+
if (baseField instanceof z$1.ZodNumber) types[key] = "integer";
|
|
33
|
+
else if (baseField instanceof z$1.ZodString) types[key] = "string";
|
|
34
|
+
else if (baseField instanceof z$1.ZodBoolean) types[key] = "boolean";
|
|
35
|
+
else if (baseField instanceof z$1.ZodDate) types[key] = "date";
|
|
36
|
+
else if (baseField instanceof z$1.ZodArray) types[key] = "array";
|
|
37
|
+
else types[key] = "json";
|
|
38
|
+
codecs[key] = normalizeCodec(schemaCodecs[key], baseField);
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
table: schema.table,
|
|
42
|
+
tableId: schema.tableId,
|
|
43
|
+
columns,
|
|
44
|
+
reverseColumns: Object.fromEntries(Object.entries(columns).map(([k, v]) => [v, k])),
|
|
45
|
+
types,
|
|
46
|
+
codecs
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
var TxContext = class {
|
|
50
|
+
beginTs;
|
|
51
|
+
db;
|
|
52
|
+
readSet = [];
|
|
53
|
+
writeSet = [];
|
|
54
|
+
/**
|
|
55
|
+
* Ephemeral keys read by this context, in first-read order and de-duplicated.
|
|
56
|
+
* Kept separate from {@link readSet} on purpose: an ephemeral key has no
|
|
57
|
+
* snapshot ts and no commit log, so letting it into the read set would feed
|
|
58
|
+
* the OCC validator and the commit-log freshness scan a dependency neither
|
|
59
|
+
* can reason about.
|
|
60
|
+
*
|
|
61
|
+
* `null` until the first ephemeral read. The vast majority of queries never
|
|
62
|
+
* touch the store, and this context is constructed once per query execution —
|
|
63
|
+
* so the array is allocated on demand rather than on every read path.
|
|
64
|
+
*/
|
|
65
|
+
ephemeralKeys = null;
|
|
66
|
+
/** `set`/`delete` calls awaiting a commit — see {@link DbWriter.ephemeral}.
|
|
67
|
+
* Lazily allocated, like {@link ephemeralKeys}. */
|
|
68
|
+
ephemeralWrites = null;
|
|
69
|
+
/** Backing store for `ctx.db.ephemeral`. */
|
|
70
|
+
ephemeralStore;
|
|
71
|
+
models = /* @__PURE__ */ new Map();
|
|
72
|
+
getOrCreateModel(schema) {
|
|
73
|
+
const existing = this.models.get(schema.table);
|
|
74
|
+
if (existing) return existing;
|
|
75
|
+
const model = buildModel(schema);
|
|
76
|
+
this.models.set(schema.table, model);
|
|
77
|
+
return model;
|
|
78
|
+
}
|
|
79
|
+
constructor(db, beginTs, ephemeralStore) {
|
|
80
|
+
this.db = db;
|
|
81
|
+
this.beginTs = beginTs;
|
|
82
|
+
this.ephemeralStore = ephemeralStore;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Record a live-query dependency on `key` (idempotent within a context).
|
|
86
|
+
* @internal — called by the wrappers in db/ephemeral.ts.
|
|
87
|
+
*/
|
|
88
|
+
internalTrackEphemeralRead(key) {
|
|
89
|
+
if (this.ephemeralKeys === null) {
|
|
90
|
+
this.ephemeralKeys = [key];
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (!this.ephemeralKeys.includes(key)) this.ephemeralKeys.push(key);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Queue an ephemeral write for the post-commit flush, replacing any earlier
|
|
97
|
+
* write to the same key so the last write in an attempt wins.
|
|
98
|
+
* @internal — called by the wrapper in db/ephemeral.ts.
|
|
99
|
+
*/
|
|
100
|
+
internalBufferEphemeralWrite(write) {
|
|
101
|
+
if (this.ephemeralWrites === null) {
|
|
102
|
+
this.ephemeralWrites = [write];
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const existing = this.ephemeralWrites.findIndex((w) => w.key === write.key);
|
|
106
|
+
if (existing >= 0) this.ephemeralWrites[existing] = write;
|
|
107
|
+
else this.ephemeralWrites.push(write);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Rebind the read connection (and its snapshot ts). Used by the replica
|
|
111
|
+
* router when a query handler calls `ctx.usePrimaryConn()`/`useReplicaConn()`.
|
|
112
|
+
* Must be called BEFORE any read — the readSet/beginTs would otherwise mix
|
|
113
|
+
* snapshots — so this throws if a read or write has already happened.
|
|
114
|
+
*/
|
|
115
|
+
useConnection(db, beginTs) {
|
|
116
|
+
if (this.readSet.length > 0 || this.writeSet.length > 0) throw new Error("useConnection()/usePrimaryConn()/useReplicaConn() must be called before any read or write in the handler");
|
|
117
|
+
this.db = db;
|
|
118
|
+
this.beginTs = beginTs;
|
|
119
|
+
}
|
|
120
|
+
internalGetReadSet() {
|
|
121
|
+
return this.readSet;
|
|
122
|
+
}
|
|
123
|
+
internalGetWriteSet() {
|
|
124
|
+
return this.writeSet;
|
|
125
|
+
}
|
|
126
|
+
/** Null when this context read no ephemeral state — see {@link ephemeralKeys}. */
|
|
127
|
+
internalGetEphemeralKeys() {
|
|
128
|
+
return this.ephemeralKeys;
|
|
129
|
+
}
|
|
130
|
+
/** Null when this context buffered no ephemeral writes. */
|
|
131
|
+
internalGetEphemeralWrites() {
|
|
132
|
+
return this.ephemeralWrites;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Merge a parent procedure's reads into this context's readSet. Used when a
|
|
136
|
+
* `runMutation` sub-transaction inherits the reads of the procedure that
|
|
137
|
+
* invoked it, so the sub-tx's OCC validation also fences on those rows.
|
|
138
|
+
* Entries are shallow-cloned so the two readSets don't alias.
|
|
139
|
+
*/
|
|
140
|
+
appendInternalReadSet(parentEntries) {
|
|
141
|
+
this.readSet.push(...parentEntries.map((e) => ({ ...e })));
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Merge ephemeral dependencies recorded elsewhere into this context. The
|
|
145
|
+
* counterpart of {@link appendInternalReadSet}: used when a nested query is
|
|
146
|
+
* served from cache, so the parent still depends on the keys the cached
|
|
147
|
+
* computation read and re-runs when any of them change.
|
|
148
|
+
*/
|
|
149
|
+
appendInternalEphemeralKeys(keys) {
|
|
150
|
+
for (const key of keys) this.internalTrackEphemeralRead(key);
|
|
151
|
+
}
|
|
152
|
+
findPendingWrite(table, id) {
|
|
153
|
+
return this.writeSet.find((w) => w.table === table && w.id === id);
|
|
154
|
+
}
|
|
155
|
+
findPendingInsert(table, id) {
|
|
156
|
+
return this.writeSet.find((w) => w.table === table && w.id === id && w.op === "insert");
|
|
157
|
+
}
|
|
158
|
+
encodeWithCodec(model, property, value) {
|
|
159
|
+
const codec = model.codecs[property];
|
|
160
|
+
if (!codec?.encode || value === void 0 || value === null) return value;
|
|
161
|
+
return codec.encode(value);
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
var DbReader = class extends TxContext {
|
|
165
|
+
ephemeralApi;
|
|
166
|
+
query(schema) {
|
|
167
|
+
const model = this.getOrCreateModel(schema);
|
|
168
|
+
return new QueryBuilder(this, model);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Read ephemeral state — values that drive live queries but are never stored
|
|
172
|
+
* in the database (a device's latest GPS fix, a presence flag).
|
|
173
|
+
*
|
|
174
|
+
* Every read here records a dependency on the key, so a subscribed query
|
|
175
|
+
* re-runs and pushes automatically when an action or mutation writes it. The
|
|
176
|
+
* dependency is on the KEY, not the value: reading a key that is currently
|
|
177
|
+
* absent still subscribes you to it being set later.
|
|
178
|
+
*
|
|
179
|
+
* Built on first access — a query that never reaches for ephemeral state
|
|
180
|
+
* allocates neither the wrapper nor its key list.
|
|
181
|
+
*/
|
|
182
|
+
get ephemeral() {
|
|
183
|
+
return this.ephemeralApi ??= createTrackedEphemeralReader(this, this.ephemeralStore);
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
var DbWriter = class extends DbReader {
|
|
187
|
+
ephemeralWriteApi;
|
|
188
|
+
/**
|
|
189
|
+
* Read AND write ephemeral state. Reads behave exactly as on a
|
|
190
|
+
* {@link DbReader}; writes are BUFFERED and applied only once the surrounding
|
|
191
|
+
* mutation commits (see `SupaliveDb.mutation` and
|
|
192
|
+
* {@link createBufferedEphemeralWriter} for why).
|
|
193
|
+
*/
|
|
194
|
+
get ephemeral() {
|
|
195
|
+
return this.ephemeralWriteApi ??= createBufferedEphemeralWriter(this, this.ephemeralStore);
|
|
196
|
+
}
|
|
197
|
+
async insert(schema, id, data) {
|
|
198
|
+
const model = this.getOrCreateModel(schema);
|
|
199
|
+
const mappedData = { id };
|
|
200
|
+
const shape = schema.schema.shape;
|
|
201
|
+
for (const key of Object.keys(shape)) {
|
|
202
|
+
let value = data[key];
|
|
203
|
+
if (value === void 0) {
|
|
204
|
+
const field = shape[key];
|
|
205
|
+
if (field instanceof z$1.ZodDefault) {
|
|
206
|
+
const defaultVal = field.def.defaultValue;
|
|
207
|
+
value = typeof defaultVal === "function" ? defaultVal() : defaultVal;
|
|
208
|
+
if (value !== void 0) {
|
|
209
|
+
const columnName = model.columns[key] ?? key;
|
|
210
|
+
mappedData[columnName] = this.encodeWithCodec(model, key, value);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
} else {
|
|
214
|
+
const columnName = model.columns[key] ?? key;
|
|
215
|
+
mappedData[columnName] = this.encodeWithCodec(model, key, value);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
mappedData["id"] = id;
|
|
219
|
+
const existing = this.findPendingWrite(schema.table, id);
|
|
220
|
+
if (existing) if (existing.op === "delete") {
|
|
221
|
+
existing.op = "update";
|
|
222
|
+
existing.data = mappedData;
|
|
223
|
+
} else existing.data = {
|
|
224
|
+
...existing.data,
|
|
225
|
+
...mappedData
|
|
226
|
+
};
|
|
227
|
+
else this.writeSet.push({
|
|
228
|
+
table: schema.table,
|
|
229
|
+
tableId: schema.tableId,
|
|
230
|
+
id,
|
|
231
|
+
op: "insert",
|
|
232
|
+
data: mappedData
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
async update(schema, id, data) {
|
|
236
|
+
const model = this.getOrCreateModel(schema);
|
|
237
|
+
const mappedData = {};
|
|
238
|
+
for (const [key, value] of Object.entries(data)) {
|
|
239
|
+
const columnName = model.columns[key] ?? key;
|
|
240
|
+
mappedData[columnName] = this.encodeWithCodec(model, key, value);
|
|
241
|
+
}
|
|
242
|
+
const existing = this.findPendingWrite(schema.table, id);
|
|
243
|
+
if (existing) {
|
|
244
|
+
existing.op = existing.op === "insert" ? "insert" : "update";
|
|
245
|
+
existing.data = {
|
|
246
|
+
...existing.data,
|
|
247
|
+
...mappedData
|
|
248
|
+
};
|
|
249
|
+
} else this.writeSet.push({
|
|
250
|
+
table: schema.table,
|
|
251
|
+
tableId: schema.tableId,
|
|
252
|
+
id,
|
|
253
|
+
op: "update",
|
|
254
|
+
data: mappedData
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
async delete(schema, id) {
|
|
258
|
+
const existingInsert = this.findPendingInsert(schema.table, id);
|
|
259
|
+
if (existingInsert) {
|
|
260
|
+
this.writeSet = this.writeSet.filter((w) => w !== existingInsert);
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
this.writeSet.push({
|
|
264
|
+
table: schema.table,
|
|
265
|
+
tableId: schema.tableId,
|
|
266
|
+
id,
|
|
267
|
+
op: "delete"
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
//#endregion
|
|
272
|
+
//#region src/db/realtime_db.ts
|
|
273
|
+
const occRetryPolicy = retry(handleWhen((err) => OccConflictError.isOccConflictError(err)), {
|
|
274
|
+
maxAttempts: 15,
|
|
275
|
+
backoff: new ExponentialBackoff({
|
|
276
|
+
initialDelay: 10,
|
|
277
|
+
maxDelay: 7e3,
|
|
278
|
+
exponent: 2
|
|
279
|
+
})
|
|
280
|
+
});
|
|
281
|
+
const getDbclientRetryPolicy = retry(handleWhen((err) => err.message.includes("timeout exceeded")), {
|
|
282
|
+
maxAttempts: 3,
|
|
283
|
+
backoff: new ExponentialBackoff({
|
|
284
|
+
initialDelay: 500,
|
|
285
|
+
maxDelay: 2e3,
|
|
286
|
+
exponent: 2
|
|
287
|
+
})
|
|
288
|
+
});
|
|
289
|
+
var SupaliveDb = class SupaliveDb {
|
|
290
|
+
impl;
|
|
291
|
+
ephemeral;
|
|
292
|
+
replica;
|
|
293
|
+
/**
|
|
294
|
+
* @param impl the PRIMARY (writer) connection — all mutations, the OCC
|
|
295
|
+
* commit-ts source, and cache-freshness commit-log scans run here.
|
|
296
|
+
* @param ephemeral Redis-backed store behind `ctx.db.ephemeral` (db/ephemeral.ts).
|
|
297
|
+
* Required: it is reachable from every handler context, so a
|
|
298
|
+
* db that could be missing one would push the failure out to
|
|
299
|
+
* request time. A replica SHARES the primary's store —
|
|
300
|
+
* ephemeral state lives in Redis rather than in either
|
|
301
|
+
* connection, so read routing must not change what it sees.
|
|
302
|
+
* @param replica optional read replica for query/action reads (see the
|
|
303
|
+
* routing in one-shot-query.ts). Undefined → reads use primary.
|
|
304
|
+
*/
|
|
305
|
+
constructor(impl, ephemeral, replica) {
|
|
306
|
+
this.impl = impl;
|
|
307
|
+
this.ephemeral = ephemeral;
|
|
308
|
+
this.replica = replica;
|
|
309
|
+
}
|
|
310
|
+
static create(config) {
|
|
311
|
+
return new SupaliveDb(config.db, config.ephemeral, config.replica ? new SupaliveDb(config.replica, config.ephemeral) : void 0);
|
|
312
|
+
}
|
|
313
|
+
/** True when a distinct read replica is configured. */
|
|
314
|
+
get hasReplica() {
|
|
315
|
+
return this.replica !== void 0;
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Register a hook fired after every batch of ephemeral writes lands in Redis.
|
|
319
|
+
* The ephemeral twin of {@link setOnAfterCommit}: the server uses it to drive
|
|
320
|
+
* subscription invalidation for writes from any source — an action, a job, or
|
|
321
|
+
* a mutation's post-commit flush.
|
|
322
|
+
*/
|
|
323
|
+
setOnAfterEphemeralWrite(cb) {
|
|
324
|
+
this.ephemeral.onAfterWrite = cb;
|
|
325
|
+
}
|
|
326
|
+
onAfterCommit;
|
|
327
|
+
/**
|
|
328
|
+
* Register a hook fired once after every successful `mutation()` commit
|
|
329
|
+
* (never on an OCC conflict/rollback), with the committed writeSet and its
|
|
330
|
+
* commitTs. The server uses this to drive subscription invalidation for ALL
|
|
331
|
+
* mutation sources — client WS calls, actions, jobs, and the internal caller —
|
|
332
|
+
* so a server-side write pushes live updates just like a client write does.
|
|
333
|
+
* Non-server consumers (migration tooling, tests) leave it unset (no-op).
|
|
334
|
+
*/
|
|
335
|
+
setOnAfterCommit(cb) {
|
|
336
|
+
this.onAfterCommit = cb;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* One-shot read against an EXPLICIT connection + snapshot ts (rather than this
|
|
340
|
+
* db's own latest). Used by the replica router: the caller pre-resolves the
|
|
341
|
+
* default read connection (replica for queries) and hands the handler a
|
|
342
|
+
* `DbReader` it can rebind via `useConnection` (ctx.usePrimaryConn/…). The
|
|
343
|
+
* returned `ts` is the FINAL bound connection's snapshot, so the cache entry is
|
|
344
|
+
* stamped with the ts actually read at.
|
|
345
|
+
*/
|
|
346
|
+
async queryInternalOn(read, fn) {
|
|
347
|
+
const ctx = new DbReader(read.impl, read.beginTs, this.ephemeral);
|
|
348
|
+
const data = await fn(ctx);
|
|
349
|
+
return {
|
|
350
|
+
ts: ctx.beginTs,
|
|
351
|
+
data,
|
|
352
|
+
readSet: ctx.internalGetReadSet(),
|
|
353
|
+
ephemeralKeys: ctx.internalGetEphemeralKeys() ?? EMPTY_EPHEMERAL_KEYS
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
async query(fn) {
|
|
357
|
+
const beginTs = await this.impl.getLatestSnapshotTimestamp();
|
|
358
|
+
return await fn(new DbReader(this.impl, beginTs, this.ephemeral));
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Compute a query once at the latest snapshot, returning the result together
|
|
362
|
+
* with the snapshot `ts` and the tracked `readSet`. This is a plain one-shot
|
|
363
|
+
* evaluation — it registers NO live subscription; the `readSet`/`ts` are
|
|
364
|
+
* returned purely so the caller (e.g. the one-shot query cache) can store
|
|
365
|
+
* freshness metadata. Use this for cached one-shot query calls (WS `call`,
|
|
366
|
+
* HTTP RPC). `liveQuery` is the same computation under the subscription path's
|
|
367
|
+
* name and simply delegates here.
|
|
368
|
+
*/
|
|
369
|
+
async queryInternal(fn) {
|
|
370
|
+
const beginTs = await this.impl.getLatestSnapshotTimestamp();
|
|
371
|
+
const ctx = new DbReader(this.impl, beginTs, this.ephemeral);
|
|
372
|
+
return {
|
|
373
|
+
ts: beginTs,
|
|
374
|
+
data: await fn(ctx),
|
|
375
|
+
readSet: ctx.internalGetReadSet(),
|
|
376
|
+
ephemeralKeys: ctx.internalGetEphemeralKeys() ?? EMPTY_EPHEMERAL_KEYS
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
async liveQuery(fn) {
|
|
380
|
+
return this.queryInternal(fn);
|
|
381
|
+
}
|
|
382
|
+
async mutation(fn, retryPolicy = occRetryPolicy) {
|
|
383
|
+
let committedEphemeralWrites = null;
|
|
384
|
+
const mutationResult = await retryPolicy.execute(async (p) => {
|
|
385
|
+
let db;
|
|
386
|
+
try {
|
|
387
|
+
const beginTs = await this.impl.getLatestSnapshotTimestamp() + 1n;
|
|
388
|
+
const ctx = new DbWriter(this.impl, beginTs, this.ephemeral);
|
|
389
|
+
const result = await fn(ctx);
|
|
390
|
+
const readSet = ctx.internalGetReadSet();
|
|
391
|
+
const writeSet = ctx.internalGetWriteSet();
|
|
392
|
+
const commitTsLazy = new LazyCommitTsParam(void 0);
|
|
393
|
+
await this.impl.attachPrevDataToWriteSet(writeSet, readSet);
|
|
394
|
+
const queries = await this.impl.prepareCommitWrites(readSet, writeSet, commitTsLazy);
|
|
395
|
+
db = await getDbclientRetryPolicy.execute(() => this.impl.getTransactionClient());
|
|
396
|
+
await db.begin();
|
|
397
|
+
const commitTs = await db.getNextTimestamp();
|
|
398
|
+
commitTsLazy.value = commitTs;
|
|
399
|
+
const commitResult = await traceDbCall("commit", "", this.impl.dbType, () => db.commitWrites(beginTs, queries, commitTs));
|
|
400
|
+
if (!commitResult.success) throw new OccConflictError("Commit failed", { commitResult });
|
|
401
|
+
await db.updateLatestSnapshotTimestamp(commitTs);
|
|
402
|
+
await db.commit();
|
|
403
|
+
this.onAfterCommit?.(writeSet, commitTs);
|
|
404
|
+
committedEphemeralWrites = ctx.internalGetEphemeralWrites();
|
|
405
|
+
return {
|
|
406
|
+
result,
|
|
407
|
+
writeSet,
|
|
408
|
+
commitTs
|
|
409
|
+
};
|
|
410
|
+
} catch (err) {
|
|
411
|
+
await db?.rollback();
|
|
412
|
+
throw err;
|
|
413
|
+
} finally {
|
|
414
|
+
db?.release();
|
|
415
|
+
}
|
|
416
|
+
});
|
|
417
|
+
if (committedEphemeralWrites) {
|
|
418
|
+
const writes = committedEphemeralWrites;
|
|
419
|
+
try {
|
|
420
|
+
await this.ephemeral.apply(writes);
|
|
421
|
+
} catch (cause) {
|
|
422
|
+
throw new EphemeralFlushError(writes.map((w) => w.key), { cause });
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
return mutationResult;
|
|
426
|
+
}
|
|
427
|
+
};
|
|
428
|
+
const sleep = (ms) => new Promise((res) => setTimeout(res, ms));
|
|
429
|
+
//#endregion
|
|
430
|
+
//#region src/logger.ts
|
|
431
|
+
const appInstanceId = `instance-${v4().slice(0, 8)}`;
|
|
432
|
+
const isProduction = process.env.NODE_ENV === "production";
|
|
433
|
+
const logger = pino({
|
|
434
|
+
level: process.env.LOG_LEVEL || "info",
|
|
435
|
+
timestamp: pino.stdTimeFunctions.isoTime,
|
|
436
|
+
redact: { paths: ["user.password"] },
|
|
437
|
+
transport: isProduction ? void 0 : {
|
|
438
|
+
target: "pino-pretty",
|
|
439
|
+
options: { colorize: true }
|
|
440
|
+
},
|
|
441
|
+
serializers: { "columnsTypes": (map) => {
|
|
442
|
+
if (map instanceof Map) return serializeMapValue(map);
|
|
443
|
+
return map;
|
|
444
|
+
} },
|
|
445
|
+
base: { "srv": appInstanceId }
|
|
446
|
+
});
|
|
447
|
+
function logLevelOf(name) {
|
|
448
|
+
const defaultLogLevel = process.env.DEFAULT_LOG_LEVEL || "info";
|
|
449
|
+
return process.env[name]?.toLowerCase() || defaultLogLevel;
|
|
450
|
+
}
|
|
451
|
+
function serializeMapValue(map) {
|
|
452
|
+
const obj = {};
|
|
453
|
+
for (const [k, v] of map.entries()) {
|
|
454
|
+
obj[k] = {};
|
|
455
|
+
if (v instanceof Map) for (const [innerK, innerV] of v.entries()) obj[k][innerK] = innerV;
|
|
456
|
+
else obj[k] = v;
|
|
457
|
+
}
|
|
458
|
+
return obj;
|
|
459
|
+
}
|
|
460
|
+
//#endregion
|
|
461
|
+
export { serializeMapValue as a, DbReader as c, logger as i, DbWriter as l, isProduction as n, SupaliveDb as o, logLevelOf as r, sleep as s, appInstanceId as t, TxContext as u };
|
|
462
|
+
|
|
463
|
+
//# sourceMappingURL=logger-BJNCJkFh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger-BJNCJkFh.js","names":["z","uuidv4"],"sources":["../src/db/context.ts","../src/db/realtime_db.ts","../src/logger.ts"],"sourcesContent":["import { z, ZodRawShape } from \"zod\";\nimport { Database } from \"./db\";\nimport { ReadEntry, WriteEntry, } from \"./types_db\";\n\nimport { ColumnCodec, InferSchema, InsertData, Model, SchemaDefinition } from \"./schema\";\nimport { normalizeCodec, unwrapZodType } from \"./codec\";\nimport { QueryBuilder } from \"./query\";\nimport {\n createBufferedEphemeralWriter,\n createTrackedEphemeralReader,\n type EphemeralReader,\n type EphemeralStore,\n type EphemeralWriter,\n type PendingEphemeralWrite,\n} from \"./ephemeral\";\n\n/**\n * Materialize a schema's runtime {@link Model}: column-name mapping, per-column\n * coarse type tags, and the codec used to (de)serialize each column.\n *\n * Codecs are resolved via {@link normalizeCodec}, which supplies a sensible\n * default per Zod type (e.g. a {@link dateCodec} for `z.date()`, so `Date`\n * columns round-trip automatically) while letting a user-supplied codec in\n * `schema.columnsOptions.codecs` override it — partially or fully.\n */\nexport function buildModel(schema: SchemaDefinition<string, ZodRawShape>): Model {\n const shape = schema.schema.shape;\n const customColumns = (schema as any).columns;\n const columns: Record<string, string> = {};\n const types: Record<string, string> = {};\n const codecs: Record<string, ColumnCodec<any, any>> = {};\n const schemaCodecs = schema.columnsOptions.codecs ?? {};\n\n for (const key of Object.keys(shape)) {\n columns[key] = customColumns?.[key] ?? key;\n const field = shape[key];\n const baseField = unwrapZodType(field);\n if (baseField instanceof z.ZodNumber) {\n types[key] = \"integer\";\n } else if (baseField instanceof z.ZodString) {\n types[key] = \"string\";\n } else if (baseField instanceof z.ZodBoolean) {\n types[key] = \"boolean\";\n } else if (baseField instanceof z.ZodDate) {\n types[key] = \"date\";\n } else if (baseField instanceof z.ZodArray) {\n types[key] = \"array\";\n } else {\n types[key] = \"json\";\n }\n codecs[key] = normalizeCodec(schemaCodecs[key], baseField);\n }\n\n return {\n table: schema.table,\n tableId: schema.tableId,\n columns,\n reverseColumns: Object.fromEntries(Object.entries(columns).map(([k, v]) => [v, k])),\n types,\n codecs,\n };\n}\n\nexport class TxContext {\n // Not `readonly`: a query's read connection can be rebound (primary↔replica)\n // via {@link useConnection} before the first read — see the replica routing in\n // realtime_db.ts / one-shot-query.ts. Mutations never rebind.\n beginTs: bigint;\n db: Database;\n protected readSet: ReadEntry[] = [];\n protected writeSet: WriteEntry[] = [];\n /**\n * Ephemeral keys read by this context, in first-read order and de-duplicated.\n * Kept separate from {@link readSet} on purpose: an ephemeral key has no\n * snapshot ts and no commit log, so letting it into the read set would feed\n * the OCC validator and the commit-log freshness scan a dependency neither\n * can reason about.\n *\n * `null` until the first ephemeral read. The vast majority of queries never\n * touch the store, and this context is constructed once per query execution —\n * so the array is allocated on demand rather than on every read path.\n */\n protected ephemeralKeys: string[] | null = null;\n /** `set`/`delete` calls awaiting a commit — see {@link DbWriter.ephemeral}.\n * Lazily allocated, like {@link ephemeralKeys}. */\n protected ephemeralWrites: PendingEphemeralWrite[] | null = null;\n /** Backing store for `ctx.db.ephemeral`. */\n protected readonly ephemeralStore: EphemeralStore;\n private models: Map<string, Model> = new Map();\n\n protected getOrCreateModel(schema: SchemaDefinition<string, ZodRawShape>): Model {\n const existing = this.models.get(schema.table);\n if (existing) return existing;\n\n const model = buildModel(schema);\n this.models.set(schema.table, model);\n return model;\n }\n\n constructor(db: Database, beginTs: bigint, ephemeralStore: EphemeralStore) {\n this.db = db;\n this.beginTs = beginTs;\n this.ephemeralStore = ephemeralStore;\n }\n\n /**\n * Record a live-query dependency on `key` (idempotent within a context).\n * @internal — called by the wrappers in db/ephemeral.ts.\n */\n internalTrackEphemeralRead(key: string): void {\n if (this.ephemeralKeys === null) {\n this.ephemeralKeys = [key];\n return;\n }\n if (!this.ephemeralKeys.includes(key)) this.ephemeralKeys.push(key);\n }\n\n /**\n * Queue an ephemeral write for the post-commit flush, replacing any earlier\n * write to the same key so the last write in an attempt wins.\n * @internal — called by the wrapper in db/ephemeral.ts.\n */\n internalBufferEphemeralWrite(write: PendingEphemeralWrite): void {\n if (this.ephemeralWrites === null) {\n this.ephemeralWrites = [write];\n return;\n }\n const existing = this.ephemeralWrites.findIndex((w) => w.key === write.key);\n if (existing >= 0) this.ephemeralWrites[existing] = write;\n else this.ephemeralWrites.push(write);\n }\n\n /**\n * Rebind the read connection (and its snapshot ts). Used by the replica\n * router when a query handler calls `ctx.usePrimaryConn()`/`useReplicaConn()`.\n * Must be called BEFORE any read — the readSet/beginTs would otherwise mix\n * snapshots — so this throws if a read or write has already happened.\n */\n useConnection(db: Database, beginTs: bigint): void {\n if (this.readSet.length > 0 || this.writeSet.length > 0) {\n throw new Error(\n \"useConnection()/usePrimaryConn()/useReplicaConn() must be called before any read or write in the handler\",\n );\n }\n this.db = db;\n this.beginTs = beginTs;\n }\n\n internalGetReadSet(): ReadEntry[] { return this.readSet; }\n internalGetWriteSet(): WriteEntry[] { return this.writeSet; }\n /** Null when this context read no ephemeral state — see {@link ephemeralKeys}. */\n internalGetEphemeralKeys(): string[] | null { return this.ephemeralKeys; }\n /** Null when this context buffered no ephemeral writes. */\n internalGetEphemeralWrites(): PendingEphemeralWrite[] | null { return this.ephemeralWrites; }\n\n /**\n * Merge a parent procedure's reads into this context's readSet. Used when a\n * `runMutation` sub-transaction inherits the reads of the procedure that\n * invoked it, so the sub-tx's OCC validation also fences on those rows.\n * Entries are shallow-cloned so the two readSets don't alias.\n */\n appendInternalReadSet(parentEntries: ReadEntry[]) {\n this.readSet.push(...parentEntries.map((e) => ({ ...e })));\n }\n\n /**\n * Merge ephemeral dependencies recorded elsewhere into this context. The\n * counterpart of {@link appendInternalReadSet}: used when a nested query is\n * served from cache, so the parent still depends on the keys the cached\n * computation read and re-runs when any of them change.\n */\n appendInternalEphemeralKeys(keys: string[]) {\n for (const key of keys) this.internalTrackEphemeralRead(key);\n }\n\n protected findPendingWrite(table: string, id: string): WriteEntry | undefined {\n return this.writeSet.find(w => w.table === table && w.id === id);\n }\n\n protected findPendingInsert(table: string, id: string): WriteEntry | undefined {\n return this.writeSet.find(w => w.table === table && w.id === id && w.op === \"insert\");\n }\n\n protected encodeWithCodec(model: Model, property: string, value: unknown): unknown {\n const codec = model.codecs[property];\n if (!codec?.encode || value === undefined || value === null) return value;\n return codec.encode(value);\n }\n}\n\nexport class DbReader extends TxContext {\n private ephemeralApi?: EphemeralReader;\n\n query<S extends SchemaDefinition<string, ZodRawShape>>(schema: S): QueryBuilder<S> {\n const model = this.getOrCreateModel(schema);\n return new QueryBuilder<S>(this, model);\n }\n\n /**\n * Read ephemeral state — values that drive live queries but are never stored\n * in the database (a device's latest GPS fix, a presence flag).\n *\n * Every read here records a dependency on the key, so a subscribed query\n * re-runs and pushes automatically when an action or mutation writes it. The\n * dependency is on the KEY, not the value: reading a key that is currently\n * absent still subscribes you to it being set later.\n *\n * Built on first access — a query that never reaches for ephemeral state\n * allocates neither the wrapper nor its key list.\n */\n get ephemeral(): EphemeralReader {\n return (this.ephemeralApi ??= createTrackedEphemeralReader(this, this.ephemeralStore));\n }\n}\n\nexport class DbWriter extends DbReader {\n private ephemeralWriteApi?: EphemeralWriter;\n\n /**\n * Read AND write ephemeral state. Reads behave exactly as on a\n * {@link DbReader}; writes are BUFFERED and applied only once the surrounding\n * mutation commits (see `SupaliveDb.mutation` and\n * {@link createBufferedEphemeralWriter} for why).\n */\n override get ephemeral(): EphemeralWriter {\n return (this.ephemeralWriteApi ??= createBufferedEphemeralWriter(this, this.ephemeralStore));\n }\n\n async insert<S extends SchemaDefinition<string, ZodRawShape>, ID extends string>(\n schema: S,\n id: ID,\n data: InsertData<S>\n ): Promise<void> {\n const model = this.getOrCreateModel(schema);\n const mappedData: Record<string, unknown> = { id };\n const shape = schema.schema.shape;\n\n for (const key of Object.keys(shape)) {\n let value = data[key];\n\n if (value === undefined) {\n const field = shape[key];\n if (field instanceof z.ZodDefault) {\n const defaultVal = field.def.defaultValue;\n value = (typeof defaultVal === \"function\" ? defaultVal() : defaultVal)\n\n if (value !== undefined) {\n const columnName = model.columns[key] ?? key;\n mappedData[columnName] = this.encodeWithCodec(model, key, value);\n }\n }\n } else {\n const columnName = model.columns[key] ?? key;\n mappedData[columnName] = this.encodeWithCodec(model, key, value);\n }\n }\n // ensure id same\n mappedData[\"id\"] = id;\n\n // Check for existing pending write for the same ID\n const existing = this.findPendingWrite(schema.table, id);\n if (existing) {\n if (existing.op === \"delete\") {\n // If there's a pending delete, change it to an update with the new data\n existing.op = \"update\";\n existing.data = mappedData;\n } else {\n // If there's a pending update or same insert with the same ID , merge the new data\n existing.data = { ...existing.data, ...mappedData };\n }\n } else {\n this.writeSet.push({ table: schema.table, tableId: schema.tableId, id: id, op: \"insert\", data: mappedData });\n }\n }\n\n async update<S extends SchemaDefinition<string, ZodRawShape>, ID extends string>(\n schema: S,\n id: ID,\n data: Partial<Omit<InferSchema<S>, \"id\" | \"commitTs\">>,\n ): Promise<void> {\n const model = this.getOrCreateModel(schema);\n const mappedData: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(data)) {\n const columnName = model.columns[key] ?? key;\n mappedData[columnName] = this.encodeWithCodec(model, key, value);\n }\n\n const existing = this.findPendingWrite(schema.table, id);\n if (existing) {\n existing.op = existing.op === \"insert\" ? \"insert\" : \"update\";\n existing.data = { ...existing.data, ...mappedData };\n } else {\n // expectedTs will be filled by the committer via batch fetch if not known yet\n this.writeSet.push({ table: schema.table, tableId: schema.tableId, id, op: \"update\", data: mappedData });\n }\n }\n\n async delete<S extends SchemaDefinition<string, ZodRawShape>, ID extends string>(\n schema: S,\n id: ID,\n ): Promise<void> {\n // If there's a pending insert for the same ID, remove it instead of adding a delete\n const existingInsert = this.findPendingInsert(schema.table, id);\n if (existingInsert) {\n this.writeSet = this.writeSet.filter(w => w !== existingInsert);\n return;\n }\n\n // expectedTs will be filled by the committer via batch fetch if not known yet\n this.writeSet.push({ table: schema.table, tableId: schema.tableId, id, op: \"delete\" });\n }\n}\n","import { Database, LazyCommitTsParam, TxDatabase } from \"./db\";\nimport {\n OccConflictError, WriteEntry, CommitTs, LiveResult, MutationResult\n} from \"./types_db\";\nimport { DbReader, DbWriter } from \"./context\";\nimport { traceDbCall } from \"./db-trace\";\nimport { ExponentialBackoff, handleWhen, retry, RetryPolicy } from \"cockatiel\";\nimport {\n EMPTY_EPHEMERAL_KEYS,\n EphemeralFlushError,\n type EphemeralStore,\n type PendingEphemeralWrite,\n} from \"./ephemeral\";\n\nexport const occRetryPolicy = retry(\n handleWhen((err) => OccConflictError.isOccConflictError(err)),\n {\n maxAttempts: 15,\n backoff: new ExponentialBackoff({\n initialDelay: 10,\n maxDelay: 7000,\n exponent: 2,\n }),\n },\n);\n\nexport const getDbclientRetryPolicy = retry(\n handleWhen((err) => err.message.includes('timeout exceeded')),\n {\n maxAttempts: 3,\n backoff: new ExponentialBackoff({\n initialDelay: 500,\n maxDelay: 2000,\n exponent: 2,\n }),\n },\n);\n\nexport class SupaliveDb {\n /**\n * @param impl the PRIMARY (writer) connection — all mutations, the OCC\n * commit-ts source, and cache-freshness commit-log scans run here.\n * @param ephemeral Redis-backed store behind `ctx.db.ephemeral` (db/ephemeral.ts).\n * Required: it is reachable from every handler context, so a\n * db that could be missing one would push the failure out to\n * request time. A replica SHARES the primary's store —\n * ephemeral state lives in Redis rather than in either\n * connection, so read routing must not change what it sees.\n * @param replica optional read replica for query/action reads (see the\n * routing in one-shot-query.ts). Undefined → reads use primary.\n */\n constructor(\n readonly impl: Database,\n readonly ephemeral: EphemeralStore,\n readonly replica?: SupaliveDb,\n ) { }\n\n static create(config: {\n db: Database;\n /** See the constructor: shared with the replica, never per-connection. */\n ephemeral: EphemeralStore;\n replica?: Database;\n }): SupaliveDb {\n return new SupaliveDb(\n config.db,\n config.ephemeral,\n config.replica ? new SupaliveDb(config.replica, config.ephemeral) : undefined,\n );\n }\n\n /** True when a distinct read replica is configured. */\n get hasReplica(): boolean {\n return this.replica !== undefined;\n }\n\n /**\n * Register a hook fired after every batch of ephemeral writes lands in Redis.\n * The ephemeral twin of {@link setOnAfterCommit}: the server uses it to drive\n * subscription invalidation for writes from any source — an action, a job, or\n * a mutation's post-commit flush.\n */\n setOnAfterEphemeralWrite(cb: (keys: string[], version: string) => void): void {\n this.ephemeral.onAfterWrite = cb;\n }\n\n protected onAfterCommit?: (writeSet: WriteEntry[], commitTs: CommitTs) => void;\n\n /**\n * Register a hook fired once after every successful `mutation()` commit\n * (never on an OCC conflict/rollback), with the committed writeSet and its\n * commitTs. The server uses this to drive subscription invalidation for ALL\n * mutation sources — client WS calls, actions, jobs, and the internal caller —\n * so a server-side write pushes live updates just like a client write does.\n * Non-server consumers (migration tooling, tests) leave it unset (no-op).\n */\n setOnAfterCommit(cb: (writeSet: WriteEntry[], commitTs: CommitTs) => void): void {\n this.onAfterCommit = cb;\n }\n\n // ── Read-only query ──────────────────────────────────────────────\n\n /**\n * One-shot read against an EXPLICIT connection + snapshot ts (rather than this\n * db's own latest). Used by the replica router: the caller pre-resolves the\n * default read connection (replica for queries) and hands the handler a\n * `DbReader` it can rebind via `useConnection` (ctx.usePrimaryConn/…). The\n * returned `ts` is the FINAL bound connection's snapshot, so the cache entry is\n * stamped with the ts actually read at.\n */\n async queryInternalOn<T>(\n read: { impl: Database; beginTs: bigint },\n fn: (ctx: DbReader) => Promise<T>,\n ): Promise<LiveResult<T>> {\n const ctx = new DbReader(read.impl, read.beginTs, this.ephemeral);\n const data = await fn(ctx);\n return {\n ts: ctx.beginTs,\n data,\n readSet: ctx.internalGetReadSet(),\n ephemeralKeys: ctx.internalGetEphemeralKeys() ?? EMPTY_EPHEMERAL_KEYS,\n };\n }\n\n async query<T>(fn: (ctx: DbReader) => Promise<T>): Promise<T> {\n const beginTs = await this.impl.getLatestSnapshotTimestamp();\n const ctx = new DbReader(this.impl, beginTs, this.ephemeral);\n return await fn(ctx);\n }\n\n /**\n * Compute a query once at the latest snapshot, returning the result together\n * with the snapshot `ts` and the tracked `readSet`. This is a plain one-shot\n * evaluation — it registers NO live subscription; the `readSet`/`ts` are\n * returned purely so the caller (e.g. the one-shot query cache) can store\n * freshness metadata. Use this for cached one-shot query calls (WS `call`,\n * HTTP RPC). `liveQuery` is the same computation under the subscription path's\n * name and simply delegates here.\n */\n async queryInternal<T>(fn: (ctx: DbReader) => Promise<T>): Promise<LiveResult<T>> {\n const beginTs = await this.impl.getLatestSnapshotTimestamp();\n const ctx = new DbReader(this.impl, beginTs, this.ephemeral);\n const data = await fn(ctx);\n\n return {\n ts: beginTs,\n data: data,\n readSet: ctx.internalGetReadSet(),\n ephemeralKeys: ctx.internalGetEphemeralKeys() ?? EMPTY_EPHEMERAL_KEYS,\n };\n }\n\n async liveQuery<T>(fn: (ctx: DbReader) => Promise<T>): Promise<LiveResult<T>> {\n return this.queryInternal(fn);\n }\n\n // ── Mutation ───────────────────────────────────────────────────────\n\n async mutation<T>(\n fn: (ctx: DbWriter) => Promise<T>,\n retryPolicy: RetryPolicy = occRetryPolicy,\n ): Promise<MutationResult<T>> {\n // Ephemeral writes buffered by the attempt that COMMITTED. Captured here,\n // outside the retry loop, because they must be applied after the loop has\n // finished — see the flush below.\n let committedEphemeralWrites: PendingEphemeralWrite[] | null = null;\n\n const mutationResult = await retryPolicy.execute(async (p) => {\n let db: TxDatabase | undefined;\n try {\n // Step1: Get latest snapshot timestamp as beginTs\n const beginTs = await this.impl.getLatestSnapshotTimestamp() + 1n;\n\n const ctx = new DbWriter(this.impl, beginTs, this.ephemeral);\n const result = await fn(ctx);\n\n const readSet = ctx.internalGetReadSet();\n const writeSet = ctx.internalGetWriteSet();\n const commitTsLazy = new LazyCommitTsParam(undefined);\n\n // Step2: Capture prevData + expectedCommitTs per write. prevData\n // is consumed by the invalidator (range subs need it to detect\n // result-set transitions). expectedCommitTs becomes the CAS fence\n // for the apply step — preferring prior find()-captured ts so\n // read-then-update patterns get beginTs-level isolation.\n await this.impl.attachPrevDataToWriteSet(writeSet, readSet);\n\n // Step3: Prepare quieries before transaction\n const queries = await this.impl.prepareCommitWrites(\n readSet,\n writeSet,\n commitTsLazy,\n );\n\n // Step4: Starts new transaction\n db = await getDbclientRetryPolicy.execute(() => this.impl.getTransactionClient());\n await db.begin();\n\n // Step5: Get commitTs from DB sequence (bigger than all previous)\n const commitTs = await db.getNextTimestamp();\n commitTsLazy.value = commitTs;\n\n // Step6: Apply + validate. CAS UPDATE/DELETE catches concurrent\n // peer touches on the write set; the readSet is validated either\n // per-row (fast path, no range reads) or via commit-log scan\n // (slow path, when range reads are present so phantoms still\n // need detection).\n const commitResult = await traceDbCall(\n \"commit\",\n \"\",\n this.impl.dbType,\n () => db!.commitWrites(beginTs, queries, commitTs),\n );\n\n if (!commitResult.success) {\n throw new OccConflictError(\"Commit failed\", { commitResult });\n }\n\n await db.updateLatestSnapshotTimestamp(commitTs);\n await db.commit();\n\n // Notify after successful commit\n this.onAfterCommit?.(writeSet, commitTs);\n\n // Hand this attempt's buffered ephemeral writes to the post-loop flush.\n // Only an attempt that reaches this line — i.e. one that committed — ever\n // assigns, so a losing OCC attempt's buffer is discarded with its context\n // and never becomes visible.\n committedEphemeralWrites = ctx.internalGetEphemeralWrites();\n\n return { result, writeSet, commitTs };\n } catch (err) {\n await db?.rollback();\n throw err;\n } finally {\n db?.release();\n }\n });\n\n // Flush OUTSIDE the retry loop, and outside the try/catch above, because at\n // this point the transaction is already committed and durable. Inside, a\n // throw here would (a) run `db.rollback()` against a committed transaction\n // and (b) be eligible for retry under a caller-supplied `retryPolicy`\n // broader than the OCC default — re-running the handler and re-applying the\n // DB writes on top of a commit that already landed.\n //\n // A failure here therefore does NOT mean the mutation failed: the rows are\n // written and their invalidation has already gone out. It is surfaced as\n // EphemeralFlushError so a caller can tell the two apart and knows not to\n // retry the mutation.\n if (committedEphemeralWrites) {\n const writes: PendingEphemeralWrite[] = committedEphemeralWrites;\n try {\n await this.ephemeral.apply(writes);\n } catch (cause) {\n throw new EphemeralFlushError(writes.map((w) => w.key), { cause });\n }\n }\n\n return mutationResult;\n }\n}\n\nexport const sleep = (ms: number) => new Promise<void>((res) => setTimeout(res, ms));\n","import pino, { Level } from \"pino\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport pinoPretty from \"pino-pretty\";\nconst _ = pinoPretty; // Prevents tree shaking of pino-pretty\n\nexport const appInstanceId = `instance-${uuidv4().slice(0, 8)}`;\nexport const isProduction = process.env.NODE_ENV === \"production\";\nexport const logger = pino({\n level: process.env.LOG_LEVEL || \"info\",\n timestamp: pino.stdTimeFunctions.isoTime,\n redact: { paths: [\"user.password\"] },\n transport: isProduction ? undefined : {\n target: 'pino-pretty',\n options: {\n colorize: true\n },\n },\n serializers: {\n \"columnsTypes\": (map) => {\n if (map instanceof Map) return serializeMapValue(map);\n return map;\n },\n },\n base: {\n \"srv\": appInstanceId,\n },\n});\n\nexport function logLevelOf(name: string): Level {\n const defaultLogLevel = process.env.DEFAULT_LOG_LEVEL || \"info\";\n return (process.env[name]?.toLowerCase() || defaultLogLevel) as Level;\n}\n\nexport function serializeMapValue<K extends string | number | symbol, V>(map: Map<K, V>): Record<K, V> {\n const obj: Record<K, any> = {} as Record<K, any>;\n for (const [k, v] of map.entries()) {\n obj[k] = {} as V;\n if (v instanceof Map) {\n for (const [innerK, innerV] of v.entries()) {\n obj[k][innerK] = innerV;\n }\n } else {\n obj[k] = v;\n }\n }\n\n return obj as Record<K, V>;\n}"],"mappings":"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"}
|