orez 0.4.25 → 0.4.27

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAkDpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AA0DjD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAC1E,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC7E,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAA;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAwDvE,wBAAsB,aAAa,CAAC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM;;;;;;;;;;;;;;GA0zB1E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAmDpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AA0DjD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAC1E,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC7E,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAA;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAwDvE,wBAAsB,aAAa,CAAC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM;;;;;;;;;;;;;;GA66B1E"}
package/dist/index.js CHANGED
@@ -26,6 +26,7 @@ import { installChangeTracking } from './replication/change-tracker.js';
26
26
  import { resetReplicationState } from './replication/handler.js';
27
27
  import { applySqliteMode, cleanupShim, formatNativeBootstrapInstructions, hasMissingNativeBinarySignature, inspectNativeSqliteBinary, resolveSqliteMode, resolveSqliteModeConfig, } from './sqlite-mode/index.js';
28
28
  import { enableZeroReplicaCheckpoint } from './zero-checkpoint-patch.js';
29
+ import { probeZeroCacheHttp } from './zero-health.js';
29
30
  import { disableZeroLitestreamRestore } from './zero-litestream-patch.js';
30
31
  function ensureDoBackendNamespace(dataDir) {
31
32
  const marker = resolve(dataDir, 'do-backend-namespace');
@@ -520,6 +521,7 @@ export async function startZeroLite(overrides = {}) {
520
521
  let shuttingDown = false;
521
522
  let resetInProgress = false;
522
523
  let liveLogRecoveryQueued = false;
524
+ let zeroHttpHealthRecovering = false;
523
525
  const resetFile = resolve(config.dataDir, 'orez.resetting');
524
526
  const resetZeroState = async (mode) => {
525
527
  if (resetInProgress) {
@@ -729,7 +731,11 @@ export async function startZeroLite(overrides = {}) {
729
731
  // on alone.
730
732
  if (watched !== zeroCacheProcess)
731
733
  return;
732
- if (shuttingDown || resetInProgress || zeroStopExpected || code === null)
734
+ if (shuttingDown ||
735
+ resetInProgress ||
736
+ zeroStopExpected ||
737
+ zeroHttpHealthRecovering ||
738
+ code === null)
733
739
  return;
734
740
  const tail = zeroCacheProcess?.__orezTail;
735
741
  const details = tail?.length ? tail.join('\n') : '';
@@ -782,9 +788,94 @@ export async function startZeroLite(overrides = {}) {
782
788
  });
783
789
  };
784
790
  installCrashWatcher();
791
+ const ZERO_HTTP_HEALTH_INTERVAL_MS = 5000;
792
+ const ZERO_HTTP_HEALTH_TIMEOUT_MS = 1000;
793
+ const ZERO_HTTP_HEALTH_FAILURES_BEFORE_RECOVERY = 3;
794
+ const ZERO_HTTP_HEALTH_WINDOW_MS = 5 * 60_000;
795
+ const ZERO_HTTP_HEALTH_RECOVERY_BUDGET = 5;
796
+ let zeroHttpHealthFailures = 0;
797
+ let zeroHttpHealthProbeInFlight = false;
798
+ let zeroHttpHealthRecoveryTimes = [];
799
+ let zeroHttpHealthTimer;
800
+ const runZeroHttpHealthProbe = async () => {
801
+ if (config.skipZeroCache ||
802
+ zeroHttpHealthProbeInFlight ||
803
+ zeroHttpHealthRecovering ||
804
+ shuttingDown ||
805
+ resetInProgress ||
806
+ zeroStopExpected ||
807
+ liveLogRecoveryQueued)
808
+ return;
809
+ const watched = zeroCacheProcess;
810
+ if (!isChildProcessRunning(watched)) {
811
+ zeroHttpHealthFailures = 0;
812
+ return;
813
+ }
814
+ zeroHttpHealthProbeInFlight = true;
815
+ try {
816
+ const result = await probeZeroCacheHttp(zeroInternalPort, ZERO_HTTP_HEALTH_TIMEOUT_MS);
817
+ if (watched !== zeroCacheProcess)
818
+ return;
819
+ if (shuttingDown || resetInProgress || zeroStopExpected || liveLogRecoveryQueued)
820
+ return;
821
+ if (result.ok) {
822
+ zeroHttpHealthFailures = 0;
823
+ return;
824
+ }
825
+ zeroHttpHealthFailures++;
826
+ log.debug.orez(`zero-cache HTTP health probe failed ` +
827
+ `(${zeroHttpHealthFailures}/${ZERO_HTTP_HEALTH_FAILURES_BEFORE_RECOVERY}): ` +
828
+ result.reason);
829
+ if (zeroHttpHealthFailures < ZERO_HTTP_HEALTH_FAILURES_BEFORE_RECOVERY) {
830
+ return;
831
+ }
832
+ zeroHttpHealthFailures = 0;
833
+ const now = Date.now();
834
+ zeroHttpHealthRecoveryTimes = zeroHttpHealthRecoveryTimes.filter((t) => now - t < ZERO_HTTP_HEALTH_WINDOW_MS);
835
+ zeroHttpHealthRecoveryTimes.push(now);
836
+ if (zeroHttpHealthRecoveryTimes.length > ZERO_HTTP_HEALTH_RECOVERY_BUDGET) {
837
+ log.orez('zero-cache HTTP liveness kept failing after repeated recoveries — giving up');
838
+ return;
839
+ }
840
+ zeroHttpHealthRecovering = true;
841
+ const attempt = zeroHttpHealthRecoveryTimes.length;
842
+ log.orez(`zero-cache HTTP liveness failed (${result.reason}) — restarting zero-cache ` +
843
+ `(${attempt}/${ZERO_HTTP_HEALTH_RECOVERY_BUDGET}, CVR preserved)`);
844
+ try {
845
+ await restartZeroCache();
846
+ log.orez('zero-cache HTTP liveness recovery successful');
847
+ installCrashWatcher();
848
+ }
849
+ catch (err) {
850
+ log.orez(`zero-cache HTTP liveness restart failed (${err?.message || err}) — falling back to full reset`);
851
+ try {
852
+ await resetZeroState('full');
853
+ log.orez('zero-cache HTTP liveness full-reset recovery successful');
854
+ installCrashWatcher();
855
+ }
856
+ catch (resetErr) {
857
+ log.orez(`zero-cache HTTP liveness full-reset recovery failed: ${resetErr?.message || resetErr}`);
858
+ }
859
+ }
860
+ finally {
861
+ zeroHttpHealthRecovering = false;
862
+ }
863
+ }
864
+ finally {
865
+ zeroHttpHealthProbeInFlight = false;
866
+ }
867
+ };
868
+ if (!config.skipZeroCache) {
869
+ zeroHttpHealthTimer = setInterval(() => {
870
+ void runZeroHttpHealthProbe();
871
+ }, ZERO_HTTP_HEALTH_INTERVAL_MS);
872
+ zeroHttpHealthTimer.unref?.();
873
+ }
785
874
  const stop = async () => {
786
875
  log.debug.orez('shutting down');
787
876
  shuttingDown = true;
877
+ if (zeroHttpHealthTimer)
878
+ clearInterval(zeroHttpHealthTimer);
788
879
  stopCheckpoint();
789
880
  stopVacuum();
790
881
  httpProxyServer?.close();
@@ -1101,7 +1192,6 @@ async function startZeroCache(config, logStore, sqliteMode = resolveSqliteMode(c
1101
1192
  }
1102
1193
  async function waitForZeroCache(config, zeroProcess, timeoutMs = 60000, sqliteMode = resolveSqliteMode(config.disableWasmSqlite)) {
1103
1194
  const start = Date.now();
1104
- const url = `http://127.0.0.1:${config.zeroPort}/`;
1105
1195
  const checkProcessAlive = () => {
1106
1196
  if (zeroProcess && zeroProcess.exitCode !== null) {
1107
1197
  const tail = zeroProcess.__orezTail;
@@ -1112,18 +1202,9 @@ async function waitForZeroCache(config, zeroProcess, timeoutMs = 60000, sqliteMo
1112
1202
  // phase 1: wait for HTTP health check
1113
1203
  while (Date.now() - start < timeoutMs) {
1114
1204
  checkProcessAlive();
1115
- try {
1116
- const controller = new AbortController();
1117
- const timer = setTimeout(() => controller.abort(), 1000);
1118
- const res = await fetch(url, { signal: controller.signal });
1119
- clearTimeout(timer);
1120
- // zero may return 404 on "/" while still being healthy.
1121
- if (res.ok || res.status === 404)
1122
- break;
1123
- }
1124
- catch {
1125
- // not ready yet
1126
- }
1205
+ const result = await probeZeroCacheHttp(config.zeroPort, 1000);
1206
+ if (result.ok)
1207
+ break;
1127
1208
  await new Promise((r) => setTimeout(r, 500));
1128
1209
  }
1129
1210
  if (Date.now() - start < timeoutMs) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Cloudflare DO-SQLite compatibility for a zero-cache embed.
3
+ *
4
+ * zero-cache's embedded SQLite issues storage-engine statements (VACUUM, ATTACH,
5
+ * journal/checkpoint PRAGMAs) that a Durable Object's `ctx.storage.sql` does NOT
6
+ * own — the DO manages journaling + checkpointing itself and rejects them with
7
+ * SQLITE_AUTH, which aborts `/sync`. these helpers make those statements no-op so
8
+ * the embed boots unmodified, while every real read/write passes straight
9
+ * through. pure over the minimal `exec` shape (no `@cloudflare/...` types),
10
+ * tested in zero-cache-do-sqlite.test.ts.
11
+ */
12
+ interface DoExecSql {
13
+ exec(sql: string, ...params: unknown[]): unknown;
14
+ [key: string]: unknown;
15
+ }
16
+ interface DoStorageCtx {
17
+ storage: {
18
+ sql: DoExecSql;
19
+ transactionSync?: (...args: unknown[]) => unknown;
20
+ };
21
+ }
22
+ export declare const DO_FORBIDDEN_SQLITE: RegExp;
23
+ export declare function isDoForbiddenSqlite(sql: unknown): boolean;
24
+ /**
25
+ * patch `sql.exec` in place so EVERY caller (the embed, its sqlite shim,
26
+ * transactionSync callbacks) skips DO-forbidden statements instead of throwing
27
+ * SQLITE_AUTH. idempotent per handle.
28
+ */
29
+ export declare function installDoForbiddenSqliteGuard(sql: DoExecSql): void;
30
+ /**
31
+ * wrap a DO's `storage.sql` for the zero-cache embed: DO-forbidden statements
32
+ * no-op, and `transactionSync` is bound through when the platform exposes it.
33
+ */
34
+ export declare function doSqliteStorage(ctx: DoStorageCtx): {
35
+ exec: (sql: string, ...params: unknown[]) => unknown;
36
+ transactionSync: ((...args: unknown[]) => unknown) | undefined;
37
+ };
38
+ export {};
39
+ //# sourceMappingURL=zero-cache-do-sqlite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zero-cache-do-sqlite.d.ts","sourceRoot":"","sources":["../../src/worker/zero-cache-do-sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,UAAU,SAAS;IACjB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAChD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,UAAU,YAAY;IACpB,OAAO,EAAE;QACP,GAAG,EAAE,SAAS,CAAA;QACd,eAAe,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAA;KAClD,CAAA;CACF;AAGD,eAAO,MAAM,mBAAmB,QAC+H,CAAA;AAE/J,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEzD;AAID;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAgBlE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG;IAClD,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,CAAA;IACpD,eAAe,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,GAAG,SAAS,CAAA;CAC/D,CAqBA"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Cloudflare DO-SQLite compatibility for a zero-cache embed.
3
+ *
4
+ * zero-cache's embedded SQLite issues storage-engine statements (VACUUM, ATTACH,
5
+ * journal/checkpoint PRAGMAs) that a Durable Object's `ctx.storage.sql` does NOT
6
+ * own — the DO manages journaling + checkpointing itself and rejects them with
7
+ * SQLITE_AUTH, which aborts `/sync`. these helpers make those statements no-op so
8
+ * the embed boots unmodified, while every real read/write passes straight
9
+ * through. pure over the minimal `exec` shape (no `@cloudflare/...` types),
10
+ * tested in zero-cache-do-sqlite.test.ts.
11
+ */
12
+ // storage-engine statements the DO rejects (it owns journaling/checkpointing).
13
+ export const DO_FORBIDDEN_SQLITE = /^\s*(?:VACUUM\b|ATTACH\b|PRAGMA\s+(?:journal_mode|synchronous|page_size|mmap_size|wal_checkpoint|wal_autocheckpoint|locking_mode|temp_store|cache_size)\b)/i;
14
+ export function isDoForbiddenSqlite(sql) {
15
+ return typeof sql === 'string' && DO_FORBIDDEN_SQLITE.test(sql);
16
+ }
17
+ const GUARD_MARK = '__orezDoSqliteGuarded';
18
+ /**
19
+ * patch `sql.exec` in place so EVERY caller (the embed, its sqlite shim,
20
+ * transactionSync callbacks) skips DO-forbidden statements instead of throwing
21
+ * SQLITE_AUTH. idempotent per handle.
22
+ */
23
+ export function installDoForbiddenSqliteGuard(sql) {
24
+ if (!sql || sql[GUARD_MARK])
25
+ return;
26
+ const rawExec = sql.exec.bind(sql);
27
+ sql.exec = (statement, ...params) => {
28
+ if (isDoForbiddenSqlite(statement)) {
29
+ return {
30
+ toArray: () => [],
31
+ rowsRead: 0,
32
+ rowsWritten: 0,
33
+ columnNames: [],
34
+ [Symbol.iterator]: () => [][Symbol.iterator](),
35
+ };
36
+ }
37
+ return rawExec(statement, ...params);
38
+ };
39
+ sql[GUARD_MARK] = true;
40
+ }
41
+ /**
42
+ * wrap a DO's `storage.sql` for the zero-cache embed: DO-forbidden statements
43
+ * no-op, and `transactionSync` is bound through when the platform exposes it.
44
+ */
45
+ export function doSqliteStorage(ctx) {
46
+ const rawExec = ctx.storage.sql.exec.bind(ctx.storage.sql);
47
+ const exec = (sql, ...params) => {
48
+ if (isDoForbiddenSqlite(sql)) {
49
+ return {
50
+ toArray: () => [],
51
+ rowsRead: 0,
52
+ [Symbol.iterator]: () => [][Symbol.iterator](),
53
+ };
54
+ }
55
+ return rawExec(sql, ...params);
56
+ };
57
+ return {
58
+ exec,
59
+ transactionSync: typeof ctx.storage.transactionSync === 'function'
60
+ ? ctx.storage.transactionSync.bind(ctx.storage)
61
+ : undefined,
62
+ };
63
+ }
64
+ //# sourceMappingURL=zero-cache-do-sqlite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zero-cache-do-sqlite.js","sourceRoot":"","sources":["../../src/worker/zero-cache-do-sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAcH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAC9B,6JAA6J,CAAA;AAE/J,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAC9C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjE,CAAC;AAED,MAAM,UAAU,GAAG,uBAAuB,CAAA;AAE1C;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,GAAc;IAC1D,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC;QAAE,OAAM;IACnC,MAAM,OAAO,GAAI,GAAG,CAAC,IAAuD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACtF,GAAG,CAAC,IAAI,GAAG,CAAC,SAAiB,EAAE,GAAG,MAAiB,EAAE,EAAE;QACrD,IAAI,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,OAAO;gBACL,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;gBACjB,QAAQ,EAAE,CAAC;gBACX,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,EAAE;gBACf,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;aAC/C,CAAA;QACH,CAAC;QACD,OAAO,OAAO,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAA;IACtC,CAAC,CAAA;IACD,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAiB;IAI/C,MAAM,OAAO,GACX,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IACjB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACvB,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,GAAG,MAAiB,EAAE,EAAE;QACjD,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACL,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;gBACjB,QAAQ,EAAE,CAAC;gBACX,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;aAC/C,CAAA;QACH,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAA;IAChC,CAAC,CAAA;IACD,OAAO;QACL,IAAI;QACJ,eAAe,EACb,OAAO,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,UAAU;YAC/C,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAC/C,CAAC,CAAC,SAAS;KAChB,CAAA;AACH,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * self-heal for a zero-cache embed's DO-SQLite replica.
3
+ *
4
+ * zero-cache snapshots its publication into a replica (here, the Durable
5
+ * Object's `ctx.storage.sql`, `ZERO_REPLICA_FILE=':do-sqlite:'`). on a real
6
+ * Postgres that replica lives in a normal file with normal transaction
7
+ * semantics; inside a DO the sqlite shim makes BEGIN/COMMIT/ROLLBACK no-ops
8
+ * (the object auto-commits per I/O turn) and any boot can be killed across an
9
+ * await (the 120s ready-timeout, an eviction, an OOM). that combination leaves
10
+ * three distinct corrupt-replica states that each wedge `/sync` permanently
11
+ * until healed. these functions detect and repair each one; every one of them
12
+ * fixed a specific production incident (see the per-function comments).
13
+ *
14
+ * the replica is *derived* data — the upstream rows live in the SQL DO and are
15
+ * untouched by any wipe here, so dropping the replica only forces zero-cache to
16
+ * re-run initial sync. pure logic over minimal `exec`/`get`/`put` shapes (no
17
+ * `@cloudflare/...` types); the decision logic is unit-tested in
18
+ * zero-cache-replica-repair.test.ts against simulated replica states. consumers
19
+ * call these from their ZeroCacheDO boot sequence with their own storage key +
20
+ * log prefix.
21
+ */
22
+ export interface ReplicaSqlResult {
23
+ toArray(): Array<Record<string, unknown>>;
24
+ }
25
+ export interface ReplicaSqlStorage {
26
+ exec(sql: string, ...params: unknown[]): ReplicaSqlResult;
27
+ }
28
+ export interface ReplicaKvStorage {
29
+ get(key: string): Promise<unknown>;
30
+ put(key: string, value: unknown): Promise<unknown>;
31
+ }
32
+ /**
33
+ * run a SQL statement against the SQL-DO backend (pg-over-DO `/exec`), returning
34
+ * its `{ rows, error }` body. consumers wrap their backend fetch in this shape;
35
+ * an `{ error }` is surfaced (never treated as "no rows", which would silently
36
+ * disable the guards).
37
+ */
38
+ export type BackendExec = (sql: string, params?: unknown[]) => Promise<{
39
+ rows?: Array<Record<string, unknown>>;
40
+ error?: string;
41
+ }>;
42
+ /**
43
+ * drop every non-internal table from the replica SQLite. SQLite internals
44
+ * (`sqlite_*`) and Cloudflare's DO tables (`_cf_*`) are skipped: the DO storage
45
+ * authorizer rejects DROP on `_cf_*` with SQLITE_AUTH, which would abort the
46
+ * whole reset. returns the number of tables dropped.
47
+ */
48
+ export declare function dropReplicaTables(sql: ReplicaSqlStorage): number;
49
+ export declare function resetReplicaIfTableSetChanged(sql: ReplicaSqlStorage, storage: ReplicaKvStorage, opts: {
50
+ schemaVersion: string;
51
+ tables?: Iterable<string>;
52
+ /** durable storage key the last-applied tag is persisted under. */
53
+ tagKey: string;
54
+ }): Promise<void>;
55
+ export declare function repairPartialReplicaInit(sql: ReplicaSqlStorage, opts?: {
56
+ logPrefix?: string;
57
+ }): void;
58
+ export declare function resetReplicaIfChangeLogPoisoned(sql: ReplicaSqlStorage, backendExec: BackendExec, opts: {
59
+ appId: string;
60
+ logPrefix?: string;
61
+ }): Promise<void>;
62
+ export declare function clearChangeStreamerStateIfReplicaUninitialized(sql: ReplicaSqlStorage, backendExec: BackendExec, opts: {
63
+ appId: string;
64
+ logPrefix?: string;
65
+ }): Promise<void>;
66
+ //# sourceMappingURL=zero-cache-replica-repair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zero-cache-replica-repair.d.ts","sourceRoot":"","sources":["../../src/worker/zero-cache-replica-repair.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAA;CAC1D;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACnD;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,KACf,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAEvE;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAUhE;AAWD,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,iBAAiB,EACtB,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE;IACJ,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IACzB,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAA;CACf,GACA,OAAO,CAAC,IAAI,CAAC,CAWf;AAeD,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,iBAAiB,EACtB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,IAAI,CA8BN;AASD,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC,IAAI,CAAC,CAoDf;AASD,wBAAsB,8CAA8C,CAClE,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
@@ -0,0 +1,185 @@
1
+ /**
2
+ * self-heal for a zero-cache embed's DO-SQLite replica.
3
+ *
4
+ * zero-cache snapshots its publication into a replica (here, the Durable
5
+ * Object's `ctx.storage.sql`, `ZERO_REPLICA_FILE=':do-sqlite:'`). on a real
6
+ * Postgres that replica lives in a normal file with normal transaction
7
+ * semantics; inside a DO the sqlite shim makes BEGIN/COMMIT/ROLLBACK no-ops
8
+ * (the object auto-commits per I/O turn) and any boot can be killed across an
9
+ * await (the 120s ready-timeout, an eviction, an OOM). that combination leaves
10
+ * three distinct corrupt-replica states that each wedge `/sync` permanently
11
+ * until healed. these functions detect and repair each one; every one of them
12
+ * fixed a specific production incident (see the per-function comments).
13
+ *
14
+ * the replica is *derived* data — the upstream rows live in the SQL DO and are
15
+ * untouched by any wipe here, so dropping the replica only forces zero-cache to
16
+ * re-run initial sync. pure logic over minimal `exec`/`get`/`put` shapes (no
17
+ * `@cloudflare/...` types); the decision logic is unit-tested in
18
+ * zero-cache-replica-repair.test.ts against simulated replica states. consumers
19
+ * call these from their ZeroCacheDO boot sequence with their own storage key +
20
+ * log prefix.
21
+ */
22
+ /**
23
+ * drop every non-internal table from the replica SQLite. SQLite internals
24
+ * (`sqlite_*`) and Cloudflare's DO tables (`_cf_*`) are skipped: the DO storage
25
+ * authorizer rejects DROP on `_cf_*` with SQLITE_AUTH, which would abort the
26
+ * whole reset. returns the number of tables dropped.
27
+ */
28
+ export function dropReplicaTables(sql) {
29
+ const rows = sql.exec("SELECT name FROM sqlite_master WHERE type='table'").toArray();
30
+ let dropped = 0;
31
+ for (const row of rows) {
32
+ const name = String(row.name);
33
+ if (name.startsWith('sqlite_') || name.startsWith('_cf_'))
34
+ continue;
35
+ sql.exec('DROP TABLE IF EXISTS "' + name.replaceAll('"', '""') + '"');
36
+ dropped++;
37
+ }
38
+ return dropped;
39
+ }
40
+ // zero-cache snapshots the publication's tables into its replica ONCE during
41
+ // initial sync and never picks up a table OR COLUMN added afterward — ALTER only
42
+ // feeds the change stream, not the existing snapshot. so a redeploy that evolves
43
+ // the schema leaves the persisted replica stuck on the old shape and every
44
+ // client fails SchemaVersionNotSupported (2026-06-10: file.title/description
45
+ // columns — table set unchanged, so a tables-only tag never reset). key the tag
46
+ // on schemaVersion (a hash of the full deploy-time DDL batch — any
47
+ // table/column/type change) plus the table set, and wipe the replica on change
48
+ // so zero-cache re-runs initial sync over the full publication.
49
+ export async function resetReplicaIfTableSetChanged(sql, storage, opts) {
50
+ const tag = JSON.stringify([opts.schemaVersion, [...(opts.tables || [])].sort()]);
51
+ const lastTag = await storage.get(opts.tagKey);
52
+ // reset whenever the tag differs — including the no-baseline case (lastTag
53
+ // undefined), which covers a DO whose replica was initialized by a deploy that
54
+ // predates this tracking. on a brand-new DO the replica is empty so the drop
55
+ // loop is a no-op; on a stale one it forces a full re-sync.
56
+ if (lastTag !== tag) {
57
+ dropReplicaTables(sql);
58
+ }
59
+ await storage.put(opts.tagKey, tag);
60
+ }
61
+ // repair a PARTIALLY-INITIALIZED replica left by an interrupted embed boot.
62
+ // zero-cache's runSchemaMigrations wraps initial-sync (createReplicationStateTables
63
+ // + the versionHistory row write) in one BEGIN EXCLUSIVE/COMMIT, expecting it to
64
+ // be atomic. but on a CF DO the sqlite shim makes BEGIN/COMMIT/ROLLBACK NO-OPS
65
+ // (the DO auto-commits per I/O turn), and the setup migration is async (it awaits
66
+ // initialSync, which yields across turns). so if the boot is killed mid-migration
67
+ // — the 120s ready-timeout, a DO eviction, an OOM — the _zero.* tables auto-commit
68
+ // but the closing versionHistory INSERT never runs. next boot: getVersionHistory
69
+ // reads an empty table => dataVersion 0 => it re-runs the setup migration =>
70
+ // CREATE TABLE "_zero.replicationConfig" => "already exists" SQLITE_ERROR, and
71
+ // /sync never reaches ready (editor stuck on "loading files"). detect that exact
72
+ // inconsistency (replica data tables present but no versionHistory row) and wipe
73
+ // the _zero.* replica so the embed re-runs initial sync cleanly.
74
+ export function repairPartialReplicaInit(sql, opts = {}) {
75
+ const logPrefix = opts.logPrefix ?? '[orez]';
76
+ const hasConfig = sql
77
+ .exec("SELECT 1 FROM sqlite_master WHERE type='table' AND name='_zero.replicationConfig'")
78
+ .toArray().length;
79
+ if (!hasConfig)
80
+ return;
81
+ let versionRows = 0;
82
+ try {
83
+ versionRows = sql
84
+ .exec('SELECT 1 FROM "_zero.versionHistory" LIMIT 1')
85
+ .toArray().length;
86
+ }
87
+ catch {
88
+ // versionHistory table missing entirely is also an inconsistent state
89
+ versionRows = 0;
90
+ }
91
+ if (versionRows > 0)
92
+ return;
93
+ // inconsistent: the replica's _zero.* control tables exist but version tracking
94
+ // is empty. the ENTIRE replica is half-initialized — initial-sync creates the
95
+ // _zero.* control tables AND the published app tables in the same interrupted
96
+ // run, so re-running setup also fails on a duplicate app table. drop every
97
+ // replica table so the next boot initial-syncs the whole set from scratch.
98
+ const dropped = dropReplicaTables(sql);
99
+ console.log(logPrefix +
100
+ ' repaired partial replica init: dropped ' +
101
+ dropped +
102
+ ' replica tables (no versionHistory row) so initial sync re-runs');
103
+ }
104
+ // a changeLog transaction group without a commit entry is an interrupted storer
105
+ // write (zero stores each replicated tx inside one pg transaction; real pg rolls
106
+ // a crashed tx back, but the DO sqlite shim auto-commits per turn, so a kill
107
+ // persists the partial group). catchup replays it as begin->data->begin and the
108
+ // replicator dies on "Already in a transaction" on every boot. wiping the replica
109
+ // here makes the uninitialized-replica guard clear cdc state, forcing a clean
110
+ // initial sync.
111
+ export async function resetReplicaIfChangeLogPoisoned(sql, backendExec, opts) {
112
+ const logPrefix = opts.logPrefix ?? '[orez]';
113
+ const initialized = sql
114
+ .exec("SELECT 1 FROM sqlite_master WHERE type='table' AND name='_zero.replicationConfig'")
115
+ .toArray().length;
116
+ if (!initialized)
117
+ return;
118
+ // /exec parses pg SQL: placeholders are $1-style, never '?'. an {error}
119
+ // response must be surfaced — treating it as "no rows" silently disables the
120
+ // guard (the exact failure mode this guard exists to prevent).
121
+ const listBody = await backendExec("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE $1", [opts.appId + '_%/cdc_changeLog']);
122
+ if (listBody.error) {
123
+ console.error(logPrefix + ' changeLog poison check failed (list): ' + listBody.error);
124
+ return;
125
+ }
126
+ const names = (listBody.rows || []).map((row) => String(row.name));
127
+ for (const name of names) {
128
+ const checkBody = await backendExec('SELECT watermark FROM "' +
129
+ name.replaceAll('"', '""') +
130
+ "\" GROUP BY watermark HAVING SUM(CASE WHEN json_extract(change, '$.tag') = 'commit' THEN 1 ELSE 0 END) = 0 LIMIT 1");
131
+ if (checkBody.error) {
132
+ console.error(logPrefix + ' changeLog poison check failed (scan): ' + checkBody.error);
133
+ return;
134
+ }
135
+ const rows = checkBody.rows || [];
136
+ console.log(logPrefix +
137
+ ' changeLog poison scan: ' +
138
+ name +
139
+ ' -> ' +
140
+ (rows.length ? 'POISONED at ' + rows[0].watermark : 'clean'));
141
+ if (!rows.length)
142
+ continue;
143
+ const dropped = dropReplicaTables(sql);
144
+ console.log(logPrefix +
145
+ ' cdc changeLog has a partial transaction at watermark ' +
146
+ rows[0].watermark +
147
+ ' (interrupted storer write): dropped ' +
148
+ dropped +
149
+ ' replica tables so cdc state clears and initial sync re-runs');
150
+ return;
151
+ }
152
+ }
153
+ // a replica without its init marker must not reuse the cdc subscription state,
154
+ // or initial sync never re-runs. the change-streamer's subscription state lives
155
+ // in the SQL DO and SURVIVES a replica wipe (the resets above, or an OOM
156
+ // eviction); a wiped replica + surviving subscription state makes zero-cache
157
+ // skip initial sync ("already synced") and serve an EMPTY replica that only ever
158
+ // receives catchup changes. when the replica has no init marker, clear the cdc
159
+ // state so the embed re-runs initial sync from scratch.
160
+ export async function clearChangeStreamerStateIfReplicaUninitialized(sql, backendExec, opts) {
161
+ const logPrefix = opts.logPrefix ?? '[orez]';
162
+ const initialized = sql
163
+ .exec("SELECT 1 FROM sqlite_master WHERE type='table' AND name='_zero.replicationConfig'")
164
+ .toArray().length;
165
+ if (initialized)
166
+ return;
167
+ // /exec parses pg SQL: $1-style placeholders, never '?' (a '?' is a parse
168
+ // error whose {error} body silently disabled this guard).
169
+ const body = await backendExec("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE $1", [opts.appId + '_%/cdc_%']);
170
+ if (body.error) {
171
+ console.error(logPrefix + ' cdc state clear failed (list): ' + body.error);
172
+ return;
173
+ }
174
+ const names = (body.rows || []).map((row) => String(row.name));
175
+ for (const name of names) {
176
+ await backendExec('DROP TABLE IF EXISTS "' + name.replaceAll('"', '""') + '"');
177
+ }
178
+ if (names.length) {
179
+ console.log(logPrefix +
180
+ ' replica uninitialized: cleared ' +
181
+ names.length +
182
+ ' cdc state tables so initial sync re-runs');
183
+ }
184
+ }
185
+ //# sourceMappingURL=zero-cache-replica-repair.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zero-cache-replica-repair.js","sourceRoot":"","sources":["../../src/worker/zero-cache-replica-repair.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * runaway-write circuit breaker for a Durable Object's SQLite storage.
3
+ *
4
+ * a ZeroSqlDO (orez `ZeroDO`) runs the pg-over-DO backend in-instance, so a
5
+ * buggy or malicious mutation flow can write unbounded rows into the DO's
6
+ * SQLite and blow past the platform's per-object storage + billing limits
7
+ * before anything notices. this wraps `sql.exec` to meter rows written per
8
+ * rolling window and trip — refusing further writes — once the rate stays over
9
+ * a soft threshold for a sustained period, or instantly past a hard threshold.
10
+ *
11
+ * the meter state lives in a single-row table in the same SQLite, so a tripped
12
+ * breaker survives DO eviction (the object stays bricked-for-writes until an
13
+ * operator clears the row). reads are never gated. the wrap is idempotent per
14
+ * `sql` handle.
15
+ *
16
+ * pure logic over the minimal `DurableSqlStorage` shape (no `@cloudflare/...`
17
+ * types), unit-tested in zero-sql-write-circuit.test.ts. consumers install it
18
+ * from their ZeroSqlDO constructor with their own table/log prefix.
19
+ */
20
+ export interface DurableSqlCursor {
21
+ one(): Record<string, unknown> | undefined;
22
+ rowsWritten?: number;
23
+ }
24
+ export interface DurableSqlStorage {
25
+ exec(sql: string, ...params: unknown[]): DurableSqlCursor;
26
+ }
27
+ export interface WriteCircuitOptions {
28
+ /** single-row meter table name. default `_orez_write_circuit`. */
29
+ table?: string;
30
+ /** soft cap: rows/window above which the sustained timer starts. default 2,000,000. */
31
+ rowsPerWindow?: number;
32
+ /** hard cap: rows/window that trips instantly. default 10,000,000. */
33
+ hardRowsPerWindow?: number;
34
+ /** rolling window length in ms. default 60,000. */
35
+ windowMs?: number;
36
+ /** how long the rate must stay over the soft cap before tripping, in ms. default 180,000. */
37
+ sustainedMs?: number;
38
+ /** log prefix for the trip diagnostics. default `[orez]`. */
39
+ logPrefix?: string;
40
+ }
41
+ /**
42
+ * wrap `sql.exec` with the runaway-write circuit breaker. idempotent: a second
43
+ * call on the same `sql` handle is a no-op.
44
+ */
45
+ export declare function installZeroSqlWriteCircuitBreaker(sql: DurableSqlStorage, opts?: WriteCircuitOptions): void;
46
+ //# sourceMappingURL=zero-sql-write-circuit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zero-sql-write-circuit.d.ts","sourceRoot":"","sources":["../../src/worker/zero-sql-write-circuit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAA;CAC1D;AAED,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6FAA6F;IAC7F,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAQD;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,iBAAiB,EACtB,IAAI,GAAE,mBAAwB,GAC7B,IAAI,CA+HN"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * runaway-write circuit breaker for a Durable Object's SQLite storage.
3
+ *
4
+ * a ZeroSqlDO (orez `ZeroDO`) runs the pg-over-DO backend in-instance, so a
5
+ * buggy or malicious mutation flow can write unbounded rows into the DO's
6
+ * SQLite and blow past the platform's per-object storage + billing limits
7
+ * before anything notices. this wraps `sql.exec` to meter rows written per
8
+ * rolling window and trip — refusing further writes — once the rate stays over
9
+ * a soft threshold for a sustained period, or instantly past a hard threshold.
10
+ *
11
+ * the meter state lives in a single-row table in the same SQLite, so a tripped
12
+ * breaker survives DO eviction (the object stays bricked-for-writes until an
13
+ * operator clears the row). reads are never gated. the wrap is idempotent per
14
+ * `sql` handle.
15
+ *
16
+ * pure logic over the minimal `DurableSqlStorage` shape (no `@cloudflare/...`
17
+ * types), unit-tested in zero-sql-write-circuit.test.ts. consumers install it
18
+ * from their ZeroSqlDO constructor with their own table/log prefix.
19
+ */
20
+ // any statement that can write rows (so reads never pay the meter cost).
21
+ const MUTATION_RE = /^\s*(?:insert|update|delete|replace|create|alter|drop|truncate|vacuum|reindex|with)\b/i;
22
+ const INSTALLED = new WeakSet();
23
+ /**
24
+ * wrap `sql.exec` with the runaway-write circuit breaker. idempotent: a second
25
+ * call on the same `sql` handle is a no-op.
26
+ */
27
+ export function installZeroSqlWriteCircuitBreaker(sql, opts = {}) {
28
+ if (!sql || INSTALLED.has(sql))
29
+ return;
30
+ const table = opts.table ?? '_orez_write_circuit';
31
+ const rowsPerWindow = opts.rowsPerWindow ?? 2_000_000;
32
+ const hardRowsPerWindow = opts.hardRowsPerWindow ?? 10_000_000;
33
+ const windowMs = opts.windowMs ?? 60 * 1000;
34
+ const sustainedMs = opts.sustainedMs ?? 3 * 60 * 1000;
35
+ const logPrefix = opts.logPrefix ?? '[orez]';
36
+ const rawExec = sql.exec.bind(sql);
37
+ let ready = false;
38
+ const ensureReady = () => {
39
+ if (ready)
40
+ return;
41
+ rawExec('CREATE TABLE IF NOT EXISTS ' +
42
+ table +
43
+ ' (id INTEGER PRIMARY KEY CHECK (id = 1), window_start INTEGER NOT NULL DEFAULT 0, rows_in_window INTEGER NOT NULL DEFAULT 0, first_over_at INTEGER NOT NULL DEFAULT 0, tripped_at INTEGER NOT NULL DEFAULT 0, last_statement TEXT)');
44
+ rawExec('INSERT OR IGNORE INTO ' +
45
+ table +
46
+ ' (id, window_start, rows_in_window, first_over_at, tripped_at, last_statement) VALUES (1, 0, 0, 0, 0, ?)', '');
47
+ ready = true;
48
+ };
49
+ const readState = () => {
50
+ ensureReady();
51
+ return (rawExec('SELECT window_start, rows_in_window, first_over_at, tripped_at FROM ' +
52
+ table +
53
+ ' WHERE id = 1').one() || {});
54
+ };
55
+ const clippedStatement = (statement) => String(statement || '')
56
+ .replace(/\s+/g, ' ')
57
+ .trim()
58
+ .slice(0, 500);
59
+ const assertOpen = (statement) => {
60
+ const state = readState();
61
+ const trippedAt = Number(state.tripped_at || 0);
62
+ if (trippedAt > 0) {
63
+ throw new Error(logPrefix +
64
+ ' ZeroSqlDO write circuit breaker tripped at ' +
65
+ new Date(trippedAt).toISOString() +
66
+ '; refusing SQL write: ' +
67
+ clippedStatement(statement));
68
+ }
69
+ };
70
+ const recordRowsWritten = (rowsWritten, statement) => {
71
+ const rows = Number(rowsWritten || 0);
72
+ if (!Number.isFinite(rows) || rows <= 0)
73
+ return false;
74
+ const now = Date.now();
75
+ const state = readState();
76
+ let windowStart = Number(state.window_start || 0);
77
+ let rowsInWindow = Number(state.rows_in_window || 0);
78
+ let firstOverAt = Number(state.first_over_at || 0);
79
+ const trippedAt = Number(state.tripped_at || 0);
80
+ if (trippedAt > 0)
81
+ return true;
82
+ const windowAgeMs = windowStart ? now - windowStart : 0;
83
+ if (!windowStart || windowAgeMs >= windowMs) {
84
+ const previousWindowWasOver = windowAgeMs < windowMs * 2 && rowsInWindow > rowsPerWindow;
85
+ windowStart = now;
86
+ rowsInWindow = 0;
87
+ if (!previousWindowWasOver)
88
+ firstOverAt = 0;
89
+ }
90
+ rowsInWindow += rows;
91
+ let nextTrippedAt = 0;
92
+ if (rowsInWindow > rowsPerWindow) {
93
+ if (!firstOverAt)
94
+ firstOverAt = now;
95
+ if (rowsInWindow > hardRowsPerWindow || now - firstOverAt >= sustainedMs) {
96
+ nextTrippedAt = now;
97
+ }
98
+ }
99
+ rawExec('UPDATE ' +
100
+ table +
101
+ ' SET window_start = ?, rows_in_window = ?, first_over_at = ?, tripped_at = ?, last_statement = ? WHERE id = 1', windowStart, rowsInWindow, firstOverAt, nextTrippedAt, clippedStatement(statement));
102
+ if (nextTrippedAt) {
103
+ console.error(logPrefix +
104
+ ' ZeroSqlDO write circuit breaker tripped: rows_in_window=' +
105
+ rowsInWindow +
106
+ ', rows_written=' +
107
+ rows +
108
+ ', statement=' +
109
+ clippedStatement(statement));
110
+ return true;
111
+ }
112
+ return false;
113
+ };
114
+ sql.exec = (statement, ...params) => {
115
+ const text = String(statement || '');
116
+ const isCircuitStatement = text.includes(table);
117
+ const isMutation = MUTATION_RE.test(text) && !isCircuitStatement;
118
+ if (isMutation)
119
+ assertOpen(text);
120
+ const cursor = rawExec(statement, ...params);
121
+ if (isMutation && recordRowsWritten(cursor && cursor.rowsWritten, text)) {
122
+ assertOpen(text);
123
+ }
124
+ return cursor;
125
+ };
126
+ INSTALLED.add(sql);
127
+ }
128
+ //# sourceMappingURL=zero-sql-write-circuit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zero-sql-write-circuit.js","sourceRoot":"","sources":["../../src/worker/zero-sql-write-circuit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export type ZeroHttpProbeResult = {
2
+ ok: true;
3
+ } | {
4
+ ok: false;
5
+ reason: string;
6
+ };
7
+ export declare function probeZeroCacheHttp(zeroPort: number, timeoutMs: number): Promise<ZeroHttpProbeResult>;
8
+ //# sourceMappingURL=zero-health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zero-health.d.ts","sourceRoot":"","sources":["../src/zero-health.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9E,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,CAAC,CAiB9B"}
@@ -0,0 +1,20 @@
1
+ export async function probeZeroCacheHttp(zeroPort, timeoutMs) {
2
+ const controller = new AbortController();
3
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
4
+ try {
5
+ const res = await fetch(`http://127.0.0.1:${zeroPort}/`, {
6
+ signal: controller.signal,
7
+ });
8
+ // zero may return 404 on "/" while still being healthy.
9
+ if (res.ok || res.status === 404)
10
+ return { ok: true };
11
+ return { ok: false, reason: `HTTP ${res.status}` };
12
+ }
13
+ catch (err) {
14
+ return { ok: false, reason: err?.message || String(err) || 'request failed' };
15
+ }
16
+ finally {
17
+ clearTimeout(timer);
18
+ }
19
+ }
20
+ //# sourceMappingURL=zero-health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zero-health.js","sourceRoot":"","sources":["../src/zero-health.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,SAAiB;IAEjB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAA;IAE7D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,oBAAoB,QAAQ,GAAG,EAAE;YACvD,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAA;QAEF,wDAAwD;QACxD,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;QACrD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE,CAAA;IACpD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,gBAAgB,EAAE,CAAA;IAC/E,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orez",
3
- "version": "0.4.25",
3
+ "version": "0.4.27",
4
4
  "description": "PGlite-powered zero-sync development backend. No Docker required.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -87,7 +87,7 @@
87
87
  "@electric-sql/pglite": "0.4.1",
88
88
  "@electric-sql/pglite-tools": "^0.3.1",
89
89
  "@pgsql/traverse": "17.2.6",
90
- "bedrock-sqlite": "0.4.25",
90
+ "bedrock-sqlite": "0.4.27",
91
91
  "citty": "^0.2.0",
92
92
  "pg-gateway": "0.3.0-beta.4",
93
93
  "pgsql-parser": "^17.9.11",