@rocicorp/zero 1.11.0-canary.25 → 1.11.0-canary.26

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 (117) hide show
  1. package/out/shared/src/hash.d.ts.map +1 -1
  2. package/out/shared/src/hash.js +32 -7
  3. package/out/shared/src/hash.js.map +1 -1
  4. package/out/zero/package.js +1 -1
  5. package/out/zero/package.js.map +1 -1
  6. package/out/zero-cache/src/config/zero-config.d.ts +13 -0
  7. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  8. package/out/zero-cache/src/config/zero-config.js +52 -12
  9. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  10. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  11. package/out/zero-cache/src/server/change-streamer.js +13 -12
  12. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  13. package/out/zero-cache/src/server/replicator.d.ts.map +1 -1
  14. package/out/zero-cache/src/server/replicator.js +18 -8
  15. package/out/zero-cache/src/server/replicator.js.map +1 -1
  16. package/out/zero-cache/src/services/change-source/pg/change-source-init.js +1 -1
  17. package/out/zero-cache/src/services/change-source/pg/change-source-init.js.map +1 -1
  18. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +1 -1
  19. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  20. package/out/zero-cache/src/services/change-source/pg/change-source.js +19 -11
  21. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  22. package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts +8 -4
  23. package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts.map +1 -1
  24. package/out/zero-cache/src/services/change-source/pg/replication-slots.js +20 -8
  25. package/out/zero-cache/src/services/change-source/pg/replication-slots.js.map +1 -1
  26. package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.d.ts.map +1 -1
  27. package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.js +2 -2
  28. package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.js.map +1 -1
  29. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
  30. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +10 -9
  31. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  32. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +26 -1
  33. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
  34. package/out/zero-cache/src/services/change-streamer/subscriber.js +47 -12
  35. package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
  36. package/out/zero-cache/src/services/http-service.d.ts +1 -1
  37. package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
  38. package/out/zero-cache/src/services/http-service.js.map +1 -1
  39. package/out/zero-cache/src/services/litestream/commands.d.ts +6 -0
  40. package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
  41. package/out/zero-cache/src/services/litestream/commands.js +15 -6
  42. package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
  43. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +3 -1
  44. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
  45. package/out/zero-cache/src/services/replicator/incremental-sync.js +5 -2
  46. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
  47. package/out/zero-cache/src/services/replicator/replicator.d.ts +3 -1
  48. package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -1
  49. package/out/zero-cache/src/services/replicator/replicator.js +5 -2
  50. package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
  51. package/out/zero-cache/src/services/replicator/reporter/recorder.d.ts +16 -1
  52. package/out/zero-cache/src/services/replicator/reporter/recorder.d.ts.map +1 -1
  53. package/out/zero-cache/src/services/replicator/reporter/recorder.js +70 -27
  54. package/out/zero-cache/src/services/replicator/reporter/recorder.js.map +1 -1
  55. package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
  56. package/out/zero-cache/src/services/run-ast.js +3 -2
  57. package/out/zero-cache/src/services/run-ast.js.map +1 -1
  58. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  59. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +21 -4
  60. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  61. package/out/zero-cache/src/types/row-key.d.ts +1 -15
  62. package/out/zero-cache/src/types/row-key.d.ts.map +1 -1
  63. package/out/zero-cache/src/types/row-key.js +1 -3
  64. package/out/zero-cache/src/types/row-key.js.map +1 -1
  65. package/out/zero-client/src/client/custom.d.ts +5 -4
  66. package/out/zero-client/src/client/custom.d.ts.map +1 -1
  67. package/out/zero-client/src/client/custom.js +1 -1
  68. package/out/zero-client/src/client/custom.js.map +1 -1
  69. package/out/zero-client/src/client/keys.d.ts.map +1 -1
  70. package/out/zero-client/src/client/keys.js +19 -1
  71. package/out/zero-client/src/client/keys.js.map +1 -1
  72. package/out/zero-client/src/client/make-mutate-property.d.ts +1 -1
  73. package/out/zero-client/src/client/make-mutate-property.d.ts.map +1 -1
  74. package/out/zero-client/src/client/make-mutate-property.js.map +1 -1
  75. package/out/zero-client/src/client/make-replicache-mutators.d.ts.map +1 -1
  76. package/out/zero-client/src/client/make-replicache-mutators.js +1 -1
  77. package/out/zero-client/src/client/make-replicache-mutators.js.map +1 -1
  78. package/out/zero-client/src/client/mutation-tracker.d.ts +2 -2
  79. package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
  80. package/out/zero-client/src/client/mutation-tracker.js +2 -6
  81. package/out/zero-client/src/client/mutation-tracker.js.map +1 -1
  82. package/out/zero-client/src/client/mutator-proxy.js +4 -2
  83. package/out/zero-client/src/client/mutator-proxy.js.map +1 -1
  84. package/out/zero-client/src/client/version.js +1 -1
  85. package/out/zero-client/src/mod.d.ts +1 -1
  86. package/out/zero-client/src/mod.d.ts.map +1 -1
  87. package/out/zero-server/src/closable-db-transaction.d.ts +16 -0
  88. package/out/zero-server/src/closable-db-transaction.d.ts.map +1 -0
  89. package/out/zero-server/src/closable-db-transaction.js +31 -0
  90. package/out/zero-server/src/closable-db-transaction.js.map +1 -0
  91. package/out/zero-server/src/custom.d.ts +6 -4
  92. package/out/zero-server/src/custom.d.ts.map +1 -1
  93. package/out/zero-server/src/custom.js +9 -3
  94. package/out/zero-server/src/custom.js.map +1 -1
  95. package/out/zero-server/src/mod.d.ts +1 -1
  96. package/out/zero-server/src/mod.d.ts.map +1 -1
  97. package/out/zero-server/src/process-mutations.d.ts +13 -1
  98. package/out/zero-server/src/process-mutations.d.ts.map +1 -1
  99. package/out/zero-server/src/process-mutations.js +90 -44
  100. package/out/zero-server/src/process-mutations.js.map +1 -1
  101. package/out/zero-server/src/push-processor.js.map +1 -1
  102. package/out/zero-server/src/zql-database.d.ts.map +1 -1
  103. package/out/zero-server/src/zql-database.js +28 -22
  104. package/out/zero-server/src/zql-database.js.map +1 -1
  105. package/out/zql/src/mutate/custom.d.ts +29 -0
  106. package/out/zql/src/mutate/custom.d.ts.map +1 -1
  107. package/out/zql/src/mutate/custom.js.map +1 -1
  108. package/out/zql/src/mutate/mutator-registry.js +1 -1
  109. package/out/zql/src/mutate/mutator-registry.js.map +1 -1
  110. package/out/zql/src/mutate/mutator.d.ts +2 -2
  111. package/out/zql/src/mutate/mutator.d.ts.map +1 -1
  112. package/out/zql/src/mutate/mutator.js.map +1 -1
  113. package/out/zqlite/src/resolve-scalar-subqueries.d.ts +3 -1
  114. package/out/zqlite/src/resolve-scalar-subqueries.d.ts.map +1 -1
  115. package/out/zqlite/src/resolve-scalar-subqueries.js +1 -0
  116. package/out/zqlite/src/resolve-scalar-subqueries.js.map +1 -1
  117. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../../../shared/src/hash.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,GAAG,MAAO,MAAM,WAG5B,CAAC;AACF,eAAO,MAAM,GAAG,MAAO,MAAM,WAAe,CAAC;AAC7C,eAAO,MAAM,IAAI,MAAO,MAAM,WAAe,CAAC;AAkJ9C,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../../../shared/src/hash.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,GAAG,MAAO,MAAM,WAG5B,CAAC;AACF,eAAO,MAAM,GAAG,MAAO,MAAM,WAAe,CAAC;AAC7C,eAAO,MAAM,IAAI,MAAO,MAAM,WAAe,CAAC;AAgL9C,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC"}
@@ -12,6 +12,15 @@ var stripes = new Int32Array(MAX_WORDS * 4);
12
12
  var digests = new Uint32Array(MAX_WORDS);
13
13
  var encoder;
14
14
  /**
15
+ * Inputs of up to this many UTF-16 code units are UTF-8 encoded into a reused
16
+ * buffer: `TextEncoder#encode` allocates a fresh Uint8Array per call, which for
17
+ * a row-key-sized string cost several times the hashing itself. Longer inputs
18
+ * still allocate: there the allocation is a small share of the cost, and not
19
+ * worth keeping a buffer that size alive.
20
+ */
21
+ var MAX_REUSED_UNITS = 4096;
22
+ var utf8;
23
+ /**
15
24
  * xxHash32 over the UTF-8 bytes of `str` under seeds `0..words-1`, leaving the
16
25
  * digests in `digests[0..words)`.
17
26
  *
@@ -22,8 +31,16 @@ var encoder;
22
31
  * used to delegate to, and what `hash.test.ts` checks it still matches.
23
32
  */
24
33
  function digest(str, words) {
25
- const b = (encoder ??= new TextEncoder()).encode(str);
26
- const len = b.length;
34
+ encoder ??= new TextEncoder();
35
+ let b;
36
+ let len;
37
+ if (str.length <= MAX_REUSED_UNITS) {
38
+ b = utf8 ??= new Uint8Array(3 * MAX_REUSED_UNITS);
39
+ len = encoder.encodeInto(str, b).written;
40
+ } else {
41
+ b = encoder.encode(str);
42
+ len = b.length;
43
+ }
27
44
  for (let w = 0; w < words; w++) accs[w] = w + PRIME32_5 & 4294967295;
28
45
  let offset = 0;
29
46
  if (len >= 16) {
@@ -79,15 +96,23 @@ function digest(str, words) {
79
96
  }
80
97
  for (let w = 0; w < words; w++) digests[w] = avalanche32(accs[w]);
81
98
  }
99
+ var wideView = /* @__PURE__ */ new DataView(/* @__PURE__ */ new ArrayBuffer(16));
82
100
  /**
83
- * A hash wider than 32 bits, folding `words` digests together highest seed
84
- * first.
101
+ * A hash wider than 32 bits, folding the digests together highest seed first.
102
+ *
103
+ * Every bigint operation allocates its result, so folding word by word with a
104
+ * `BigInt()`, a shift and an add per word allocated up to 6 bigints for h64 and
105
+ * 12 for h128. Laying the words out big-endian and reading them back with
106
+ * `getBigUint64` allocates 1 and 4 for the same values.
85
107
  */
86
108
  function wide(str, words) {
87
109
  digest(str, words);
88
- let result = 0n;
89
- for (let w = 0; w < words; w++) result = (result << 32n) + BigInt(digests[w]);
90
- return result;
110
+ wideView.setUint32(0, digests[0]);
111
+ wideView.setUint32(4, digests[1]);
112
+ if (words === 2) return wideView.getBigUint64(0);
113
+ wideView.setUint32(8, digests[2]);
114
+ wideView.setUint32(12, digests[3]);
115
+ return wideView.getBigUint64(0) << 64n | wideView.getBigUint64(8);
91
116
  }
92
117
  //#endregion
93
118
  export { h128, h32, h64 };
@@ -1 +1 @@
1
- {"version":3,"file":"hash.js","names":[],"sources":["../../../../shared/src/hash.ts"],"sourcesContent":["import {\n avalanche32,\n PRIME32_1,\n PRIME32_2,\n PRIME32_3,\n PRIME32_4,\n PRIME32_5,\n round32,\n} from './xxhash32.ts';\n\nexport const h32 = (s: string) => {\n digest(s, 1);\n return digests[0];\n};\nexport const h64 = (s: string) => wide(s, 2);\nexport const h128 = (s: string) => wide(s, 4);\n\nconst MAX_WORDS = 4;\n\n// `digest` is synchronous and does not recurse, so these can be reused across\n// calls instead of allocated per call.\nconst accs = new Int32Array(MAX_WORDS);\nconst stripes = new Int32Array(MAX_WORDS * 4);\nconst digests = new Uint32Array(MAX_WORDS);\nlet encoder: TextEncoder | undefined;\n\n/**\n * xxHash32 over the UTF-8 bytes of `str` under seeds `0..words-1`, leaving the\n * digests in `digests[0..words)`.\n *\n * A seed only changes the initial accumulator values, so every word digests the\n * same input lanes. This walks the bytes once, advancing all `words` sets of\n * accumulators per lane, and UTF-8 encodes the string once. The result is\n * identical to `words` separate `xxHash32(str, i)` calls — which is what this\n * used to delegate to, and what `hash.test.ts` checks it still matches.\n */\nfunction digest(str: string, words: number): void {\n const b = (encoder ??= new TextEncoder()).encode(str);\n const len = b.length;\n\n for (let w = 0; w < words; w++) {\n accs[w] = (w + PRIME32_5) & 0xffffffff;\n }\n\n let offset = 0;\n\n /*\n Step 2. Process stripes\n A stripe is a contiguous segment of 16 bytes, evenly divided into 4 lanes\n of 4 bytes each, each lane updating its own accumulator. Inputs shorter\n than a stripe skip straight to step 4 with a single accumulator.\n */\n if (len >= 16) {\n for (let w = 0; w < words; w++) {\n const base = w << 2;\n stripes[base] = (w + PRIME32_1 + PRIME32_2) & 0xffffffff;\n stripes[base + 1] = (w + PRIME32_2) & 0xffffffff;\n stripes[base + 2] = w;\n stripes[base + 3] = (w - PRIME32_1) & 0xffffffff;\n }\n\n const limit = len - 16;\n for (; offset <= limit; offset += 16) {\n const l0 =\n b[offset] |\n (b[offset + 1] << 8) |\n (b[offset + 2] << 16) |\n (b[offset + 3] << 24);\n const l1 =\n b[offset + 4] |\n (b[offset + 5] << 8) |\n (b[offset + 6] << 16) |\n (b[offset + 7] << 24);\n const l2 =\n b[offset + 8] |\n (b[offset + 9] << 8) |\n (b[offset + 10] << 16) |\n (b[offset + 11] << 24);\n const l3 =\n b[offset + 12] |\n (b[offset + 13] << 8) |\n (b[offset + 14] << 16) |\n (b[offset + 15] << 24);\n for (let w = 0; w < words; w++) {\n const base = w << 2;\n stripes[base] = round32(stripes[base], l0);\n stripes[base + 1] = round32(stripes[base + 1], l1);\n stripes[base + 2] = round32(stripes[base + 2], l2);\n stripes[base + 3] = round32(stripes[base + 3], l3);\n }\n }\n\n /*\n Step 3. Accumulator convergence\n acc = (acc1 <<< 1) + (acc2 <<< 7) + (acc3 <<< 12) + (acc4 <<< 18);\n */\n for (let w = 0; w < words; w++) {\n const base = w << 2;\n const s0 = stripes[base];\n const s1 = stripes[base + 1];\n const s2 = stripes[base + 2];\n const s3 = stripes[base + 3];\n accs[w] =\n (((s0 << 1) | (s0 >>> 31)) +\n ((s1 << 7) | (s1 >>> 25)) +\n ((s2 << 12) | (s2 >>> 20)) +\n ((s3 << 18) | (s3 >>> 14))) &\n 0xffffffff;\n }\n }\n\n // Step 4. Add input length.\n for (let w = 0; w < words; w++) {\n accs[w] = (accs[w] + len) & 0xffffffff;\n }\n\n // Step 5. Consume the remaining input, 4 bytes at a time and then 1 at a time.\n const limit4 = len - 4;\n for (; offset <= limit4; offset += 4) {\n const laneN0 = b[offset] + (b[offset + 1] << 8);\n const laneN1 = b[offset + 2] + (b[offset + 3] << 8);\n const laneP = laneN0 * PRIME32_3 + ((laneN1 * PRIME32_3) << 16);\n for (let w = 0; w < words; w++) {\n let acc = (accs[w] + laneP) | 0;\n acc = (acc << 17) | (acc >>> 15);\n accs[w] = Math.imul(acc, PRIME32_4);\n }\n }\n\n for (; offset < len; ++offset) {\n const lane = b[offset];\n for (let w = 0; w < words; w++) {\n let acc = (accs[w] + Math.imul(lane, PRIME32_5)) | 0;\n acc = (acc << 11) | (acc >>> 21);\n accs[w] = Math.imul(acc, PRIME32_1);\n }\n }\n\n // Step 6. Final mix (avalanche). The Uint32Array store turns any negatives\n // back into a positive number.\n for (let w = 0; w < words; w++) {\n digests[w] = avalanche32(accs[w]);\n }\n}\n\n/**\n * A hash wider than 32 bits, folding `words` digests together highest seed\n * first.\n */\nfunction wide(str: string, words: number): bigint {\n digest(str, words);\n let result = 0n;\n for (let w = 0; w < words; w++) {\n result = (result << 32n) + BigInt(digests[w]);\n }\n return result;\n}\n\n// Re-exported for zero-protocol's AST hash, which cannot import xxhash32.ts\n// directly without tripping a tsc 7.0.2 bug (see the import comment in\n// zero-protocol/src/query-hash-visitor.ts).\nexport {avalanche32, PRIME32_1, PRIME32_5, round32} from './xxhash32.ts';\n"],"mappings":"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"}
1
+ {"version":3,"file":"hash.js","names":[],"sources":["../../../../shared/src/hash.ts"],"sourcesContent":["import {\n avalanche32,\n PRIME32_1,\n PRIME32_2,\n PRIME32_3,\n PRIME32_4,\n PRIME32_5,\n round32,\n} from './xxhash32.ts';\n\nexport const h32 = (s: string) => {\n digest(s, 1);\n return digests[0];\n};\nexport const h64 = (s: string) => wide(s, 2);\nexport const h128 = (s: string) => wide(s, 4);\n\nconst MAX_WORDS = 4;\n\n// `digest` is synchronous and does not recurse, so these can be reused across\n// calls instead of allocated per call.\nconst accs = new Int32Array(MAX_WORDS);\nconst stripes = new Int32Array(MAX_WORDS * 4);\nconst digests = new Uint32Array(MAX_WORDS);\nlet encoder: TextEncoder | undefined;\n\n/**\n * Inputs of up to this many UTF-16 code units are UTF-8 encoded into a reused\n * buffer: `TextEncoder#encode` allocates a fresh Uint8Array per call, which for\n * a row-key-sized string cost several times the hashing itself. Longer inputs\n * still allocate: there the allocation is a small share of the cost, and not\n * worth keeping a buffer that size alive.\n */\nconst MAX_REUSED_UNITS = 4096;\nlet utf8: Uint8Array | undefined;\n\n/**\n * xxHash32 over the UTF-8 bytes of `str` under seeds `0..words-1`, leaving the\n * digests in `digests[0..words)`.\n *\n * A seed only changes the initial accumulator values, so every word digests the\n * same input lanes. This walks the bytes once, advancing all `words` sets of\n * accumulators per lane, and UTF-8 encodes the string once. The result is\n * identical to `words` separate `xxHash32(str, i)` calls — which is what this\n * used to delegate to, and what `hash.test.ts` checks it still matches.\n */\nfunction digest(str: string, words: number): void {\n encoder ??= new TextEncoder();\n let b: Uint8Array;\n let len: number;\n if (str.length <= MAX_REUSED_UNITS) {\n // A UTF-16 code unit is at most 3 UTF-8 bytes (a surrogate pair is 2 units\n // and 4 bytes), so the whole string always fits. Bytes past `len` are left\n // over from earlier calls and never read.\n b = utf8 ??= new Uint8Array(3 * MAX_REUSED_UNITS);\n len = encoder.encodeInto(str, b).written;\n } else {\n b = encoder.encode(str);\n len = b.length;\n }\n\n for (let w = 0; w < words; w++) {\n accs[w] = (w + PRIME32_5) & 0xffffffff;\n }\n\n let offset = 0;\n\n /*\n Step 2. Process stripes\n A stripe is a contiguous segment of 16 bytes, evenly divided into 4 lanes\n of 4 bytes each, each lane updating its own accumulator. Inputs shorter\n than a stripe skip straight to step 4 with a single accumulator.\n */\n if (len >= 16) {\n for (let w = 0; w < words; w++) {\n const base = w << 2;\n stripes[base] = (w + PRIME32_1 + PRIME32_2) & 0xffffffff;\n stripes[base + 1] = (w + PRIME32_2) & 0xffffffff;\n stripes[base + 2] = w;\n stripes[base + 3] = (w - PRIME32_1) & 0xffffffff;\n }\n\n const limit = len - 16;\n for (; offset <= limit; offset += 16) {\n const l0 =\n b[offset] |\n (b[offset + 1] << 8) |\n (b[offset + 2] << 16) |\n (b[offset + 3] << 24);\n const l1 =\n b[offset + 4] |\n (b[offset + 5] << 8) |\n (b[offset + 6] << 16) |\n (b[offset + 7] << 24);\n const l2 =\n b[offset + 8] |\n (b[offset + 9] << 8) |\n (b[offset + 10] << 16) |\n (b[offset + 11] << 24);\n const l3 =\n b[offset + 12] |\n (b[offset + 13] << 8) |\n (b[offset + 14] << 16) |\n (b[offset + 15] << 24);\n for (let w = 0; w < words; w++) {\n const base = w << 2;\n stripes[base] = round32(stripes[base], l0);\n stripes[base + 1] = round32(stripes[base + 1], l1);\n stripes[base + 2] = round32(stripes[base + 2], l2);\n stripes[base + 3] = round32(stripes[base + 3], l3);\n }\n }\n\n /*\n Step 3. Accumulator convergence\n acc = (acc1 <<< 1) + (acc2 <<< 7) + (acc3 <<< 12) + (acc4 <<< 18);\n */\n for (let w = 0; w < words; w++) {\n const base = w << 2;\n const s0 = stripes[base];\n const s1 = stripes[base + 1];\n const s2 = stripes[base + 2];\n const s3 = stripes[base + 3];\n accs[w] =\n (((s0 << 1) | (s0 >>> 31)) +\n ((s1 << 7) | (s1 >>> 25)) +\n ((s2 << 12) | (s2 >>> 20)) +\n ((s3 << 18) | (s3 >>> 14))) &\n 0xffffffff;\n }\n }\n\n // Step 4. Add input length.\n for (let w = 0; w < words; w++) {\n accs[w] = (accs[w] + len) & 0xffffffff;\n }\n\n // Step 5. Consume the remaining input, 4 bytes at a time and then 1 at a time.\n const limit4 = len - 4;\n for (; offset <= limit4; offset += 4) {\n const laneN0 = b[offset] + (b[offset + 1] << 8);\n const laneN1 = b[offset + 2] + (b[offset + 3] << 8);\n const laneP = laneN0 * PRIME32_3 + ((laneN1 * PRIME32_3) << 16);\n for (let w = 0; w < words; w++) {\n let acc = (accs[w] + laneP) | 0;\n acc = (acc << 17) | (acc >>> 15);\n accs[w] = Math.imul(acc, PRIME32_4);\n }\n }\n\n for (; offset < len; ++offset) {\n const lane = b[offset];\n for (let w = 0; w < words; w++) {\n let acc = (accs[w] + Math.imul(lane, PRIME32_5)) | 0;\n acc = (acc << 11) | (acc >>> 21);\n accs[w] = Math.imul(acc, PRIME32_1);\n }\n }\n\n // Step 6. Final mix (avalanche). The Uint32Array store turns any negatives\n // back into a positive number.\n for (let w = 0; w < words; w++) {\n digests[w] = avalanche32(accs[w]);\n }\n}\n\nconst wideView = new DataView(new ArrayBuffer(16));\n\n/**\n * A hash wider than 32 bits, folding the digests together highest seed first.\n *\n * Every bigint operation allocates its result, so folding word by word with a\n * `BigInt()`, a shift and an add per word allocated up to 6 bigints for h64 and\n * 12 for h128. Laying the words out big-endian and reading them back with\n * `getBigUint64` allocates 1 and 4 for the same values.\n */\nfunction wide(str: string, words: 2 | 4): bigint {\n digest(str, words);\n wideView.setUint32(0, digests[0]);\n wideView.setUint32(4, digests[1]);\n if (words === 2) {\n return wideView.getBigUint64(0);\n }\n wideView.setUint32(8, digests[2]);\n wideView.setUint32(12, digests[3]);\n return (wideView.getBigUint64(0) << 64n) | wideView.getBigUint64(8);\n}\n\n// Re-exported for zero-protocol's AST hash, which cannot import xxhash32.ts\n// directly without tripping a tsc 7.0.2 bug (see the import comment in\n// zero-protocol/src/query-hash-visitor.ts).\nexport {avalanche32, PRIME32_1, PRIME32_5, round32} from './xxhash32.ts';\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  var package_default = {
2
2
  name: "@rocicorp/zero",
3
- version: "1.11.0-canary.25",
3
+ version: "1.11.0-canary.26",
4
4
  description: "Zero is a web framework for serverless web development.",
5
5
  homepage: "https://zero.rocicorp.dev",
6
6
  bugs: { "url": "https://bugs.rocicorp.dev" },
@@ -1 +1 @@
1
- {"version":3,"file":"package.js","names":[],"sources":["../../package.json"],"sourcesContent":["{\n \"name\": \"@rocicorp/zero\",\n \"version\": \"1.11.0-canary.25\",\n \"description\": \"Zero is a web framework for serverless web development.\",\n \"homepage\": \"https://zero.rocicorp.dev\",\n \"bugs\": {\n \"url\": \"https://bugs.rocicorp.dev\"\n },\n \"license\": \"Apache-2.0\",\n \"author\": \"Rocicorp, Inc.\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/rocicorp/mono.git\",\n \"directory\": \"packages/zero\"\n },\n \"bin\": {\n \"analyze-query\": \"./out/zero/src/analyze-query.js\",\n \"ast-to-zql\": \"./out/zero/src/ast-to-zql.js\",\n \"transform-query\": \"./out/zero/src/transform-query.js\",\n \"zero-build-schema\": \"./out/zero/src/build-schema.js\",\n \"zero-cache\": \"./out/zero/src/cli.js\",\n \"zero-cache-dev\": \"./out/zero/src/zero-cache-dev.js\",\n \"zero-deploy-permissions\": \"./out/zero/src/deploy-permissions.js\",\n \"zero-out\": \"./out/zero/src/zero-out.js\"\n },\n \"files\": [\n \"out\",\n \"!*.tsbuildinfo\"\n ],\n \"type\": \"module\",\n \"main\": \"out/zero/src/zero.js\",\n \"module\": \"out/zero/src/zero.js\",\n \"types\": \"out/zero/src/zero.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./out/zero/src/zero.d.ts\",\n \"default\": \"./out/zero/src/zero.js\"\n },\n \"./analyze\": {\n \"types\": \"./out/zero/src/analyze.d.ts\",\n \"default\": \"./out/zero/src/analyze.js\"\n },\n \"./bindings\": {\n \"types\": \"./out/zero/src/bindings.d.ts\",\n \"default\": \"./out/zero/src/bindings.js\"\n },\n \"./change-protocol/v0\": {\n \"types\": \"./out/zero/src/change-protocol/v0.d.ts\",\n \"default\": \"./out/zero/src/change-protocol/v0.js\"\n },\n \"./expo-sqlite\": {\n \"types\": \"./out/zero/src/expo-sqlite.d.ts\",\n \"default\": \"./out/zero/src/expo-sqlite.js\"\n },\n \"./op-sqlite\": {\n \"types\": \"./out/zero/src/op-sqlite.d.ts\",\n \"default\": \"./out/zero/src/op-sqlite.js\"\n },\n \"./pg\": {\n \"types\": \"./out/zero/src/pg.d.ts\",\n \"default\": \"./out/zero/src/pg.js\"\n },\n \"./react\": {\n \"types\": \"./out/zero/src/react.d.ts\",\n \"default\": \"./out/zero/src/react.js\"\n },\n \"./react-native\": {\n \"types\": \"./out/zero/src/react-native.d.ts\",\n \"default\": \"./out/zero/src/react-native.js\"\n },\n \"./server\": {\n \"types\": \"./out/zero/src/server.d.ts\",\n \"default\": \"./out/zero/src/server.js\"\n },\n \"./server/adapters/drizzle\": {\n \"types\": \"./out/zero/src/adapters/drizzle.d.ts\",\n \"default\": \"./out/zero/src/adapters/drizzle.js\"\n },\n \"./server/adapters/kysely\": {\n \"types\": \"./out/zero/src/adapters/kysely.d.ts\",\n \"default\": \"./out/zero/src/adapters/kysely.js\"\n },\n \"./server/adapters/prisma\": {\n \"types\": \"./out/zero/src/adapters/prisma.d.ts\",\n \"default\": \"./out/zero/src/adapters/prisma.js\"\n },\n \"./server/adapters/pg\": {\n \"types\": \"./out/zero/src/adapters/pg.d.ts\",\n \"default\": \"./out/zero/src/adapters/pg.js\"\n },\n \"./server/adapters/postgresjs\": {\n \"types\": \"./out/zero/src/adapters/postgresjs.d.ts\",\n \"default\": \"./out/zero/src/adapters/postgresjs.js\"\n },\n \"./solid\": {\n \"types\": \"./out/zero/src/solid.d.ts\",\n \"default\": \"./out/zero/src/solid.js\"\n },\n \"./sqlite\": {\n \"types\": \"./out/zero/src/sqlite.d.ts\",\n \"default\": \"./out/zero/src/sqlite.js\"\n },\n \"./zqlite\": {\n \"types\": \"./out/zero/src/zqlite.d.ts\",\n \"default\": \"./out/zero/src/zqlite.js\"\n }\n },\n \"scripts\": {\n \"build\": \"node --experimental-strip-types --no-warnings tool/build.ts\",\n \"build:watch\": \"node --experimental-strip-types --no-warnings tool/build.ts --watch\",\n \"check-types\": \"tsc -p tsconfig.client.json && tsc -p tsconfig.server.json\",\n \"check-types:client:watch\": \"tsc -p tsconfig.client.json --watch\",\n \"check-types:server:watch\": \"tsc -p tsconfig.server.json --watch\",\n \"format\": \"oxfmt .\",\n \"check-format\": \"oxfmt --check .\",\n \"lint\": \"oxlint --quiet --config ../../oxlint.config.ts src/\",\n \"docs\": \"node --experimental-strip-types --no-warnings tool/generate-docs.ts\",\n \"docs:server\": \"node --watch --experimental-strip-types --no-warnings tool/generate-docs.ts --server\",\n \"fmt\": \"oxfmt .\",\n \"check-fmt\": \"oxfmt --check .\"\n },\n \"dependencies\": {\n \"@badrap/valita\": \"0.3.11\",\n \"@databases/escape-identifier\": \"^1.0.3\",\n \"@databases/sql\": \"^3.3.0\",\n \"@dotenvx/dotenvx\": \"^1.39.0\",\n \"@drdgvhbh/postgres-error-codes\": \"^0.0.6\",\n \"@fastify/cors\": \"^10.0.0\",\n \"@fastify/websocket\": \"^11.0.0\",\n \"@google-cloud/precise-date\": \"^4.0.0\",\n \"@opentelemetry/api\": \"^1.9.0\",\n \"@opentelemetry/api-logs\": \"^0.218.0\",\n \"@opentelemetry/auto-instrumentations-node\": \"^0.76.0\",\n \"@opentelemetry/exporter-metrics-otlp-http\": \"^0.218.0\",\n \"@opentelemetry/resources\": \"^2.7.1\",\n \"@opentelemetry/sdk-metrics\": \"^2.7.1\",\n \"@opentelemetry/sdk-node\": \"^0.218.0\",\n \"@opentelemetry/sdk-trace-node\": \"^2.7.1\",\n \"@opentelemetry/semantic-conventions\": \"^1.41.1\",\n \"@postgresql-typed/oids\": \"^0.2.0\",\n \"@rocicorp/lock\": \"^1.0.4\",\n \"@rocicorp/logger\": \"^6.1.0\",\n \"@rocicorp/resolver\": \"^1.0.2\",\n \"@rocicorp/zero-sqlite3\": \"^1.1.4\",\n \"@standard-schema/spec\": \"^1.0.0\",\n \"@types/basic-auth\": \"^1.1.8\",\n \"@types/ws\": \"^8.5.12\",\n \"basic-auth\": \"^2.0.1\",\n \"chalk-template\": \"^1.1.0\",\n \"chokidar\": \"^4.0.1\",\n \"cloudevents\": \"^10.0.0\",\n \"command-line-args\": \"^6.0.1\",\n \"command-line-usage\": \"^7.0.3\",\n \"compare-utf8\": \"^0.2.3\",\n \"defu\": \"^6.1.4\",\n \"eventemitter3\": \"^5.0.1\",\n \"fastify\": \"^5.0.0\",\n \"is-in-subnet\": \"^4.0.1\",\n \"jose\": \"^5.9.3\",\n \"json-custom-numbers\": \"^3.1.1\",\n \"kasi\": \"^1.1.0\",\n \"nanoid\": \"^5.1.2\",\n \"oxfmt\": \"^0.65.0\",\n \"parse-prometheus-text-format\": \"^1.1.1\",\n \"pg-format\": \"npm:pg-format-fix@^1.0.5\",\n \"postgres\": \"3.4.7\",\n \"semver\": \"^7.5.4\",\n \"url-pattern\": \"^1.0.3\",\n \"urlpattern-polyfill\": \"^10.1.0\",\n \"ws\": \"^8.18.1\"\n },\n \"devDependencies\": {\n \"@op-engineering/op-sqlite\": \">=15\",\n \"analyze-query\": \"workspace:*\",\n \"ast-to-zql\": \"workspace:*\",\n \"expo-sqlite\": \">=15\",\n \"oxc-parser\": \"^0.129.0\",\n \"replicache\": \"workspace:*\",\n \"shared\": \"workspace:*\",\n \"syncpack\": \"^14.3.0\",\n \"typedoc\": \"^0.28.17\",\n \"typescript\": \"~7.0.2\",\n \"vite\": \"^8.0.13\",\n \"vitest\": \"^5.0.0\",\n \"zero-cache\": \"workspace:*\",\n \"zero-client\": \"workspace:*\",\n \"zero-pg\": \"workspace:*\",\n \"zero-react\": \"workspace:*\",\n \"zero-server\": \"workspace:*\",\n \"zero-solid\": \"workspace:*\",\n \"zqlite\": \"workspace:*\"\n },\n \"engines\": {\n \"node\": \">=22\"\n },\n \"packageManager\": \"pnpm@11.11.0\"\n}\n"],"mappings":""}
1
+ {"version":3,"file":"package.js","names":[],"sources":["../../package.json"],"sourcesContent":["{\n \"name\": \"@rocicorp/zero\",\n \"version\": \"1.11.0-canary.26\",\n \"description\": \"Zero is a web framework for serverless web development.\",\n \"homepage\": \"https://zero.rocicorp.dev\",\n \"bugs\": {\n \"url\": \"https://bugs.rocicorp.dev\"\n },\n \"license\": \"Apache-2.0\",\n \"author\": \"Rocicorp, Inc.\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/rocicorp/mono.git\",\n \"directory\": \"packages/zero\"\n },\n \"bin\": {\n \"analyze-query\": \"./out/zero/src/analyze-query.js\",\n \"ast-to-zql\": \"./out/zero/src/ast-to-zql.js\",\n \"transform-query\": \"./out/zero/src/transform-query.js\",\n \"zero-build-schema\": \"./out/zero/src/build-schema.js\",\n \"zero-cache\": \"./out/zero/src/cli.js\",\n \"zero-cache-dev\": \"./out/zero/src/zero-cache-dev.js\",\n \"zero-deploy-permissions\": \"./out/zero/src/deploy-permissions.js\",\n \"zero-out\": \"./out/zero/src/zero-out.js\"\n },\n \"files\": [\n \"out\",\n \"!*.tsbuildinfo\"\n ],\n \"type\": \"module\",\n \"main\": \"out/zero/src/zero.js\",\n \"module\": \"out/zero/src/zero.js\",\n \"types\": \"out/zero/src/zero.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./out/zero/src/zero.d.ts\",\n \"default\": \"./out/zero/src/zero.js\"\n },\n \"./analyze\": {\n \"types\": \"./out/zero/src/analyze.d.ts\",\n \"default\": \"./out/zero/src/analyze.js\"\n },\n \"./bindings\": {\n \"types\": \"./out/zero/src/bindings.d.ts\",\n \"default\": \"./out/zero/src/bindings.js\"\n },\n \"./change-protocol/v0\": {\n \"types\": \"./out/zero/src/change-protocol/v0.d.ts\",\n \"default\": \"./out/zero/src/change-protocol/v0.js\"\n },\n \"./expo-sqlite\": {\n \"types\": \"./out/zero/src/expo-sqlite.d.ts\",\n \"default\": \"./out/zero/src/expo-sqlite.js\"\n },\n \"./op-sqlite\": {\n \"types\": \"./out/zero/src/op-sqlite.d.ts\",\n \"default\": \"./out/zero/src/op-sqlite.js\"\n },\n \"./pg\": {\n \"types\": \"./out/zero/src/pg.d.ts\",\n \"default\": \"./out/zero/src/pg.js\"\n },\n \"./react\": {\n \"types\": \"./out/zero/src/react.d.ts\",\n \"default\": \"./out/zero/src/react.js\"\n },\n \"./react-native\": {\n \"types\": \"./out/zero/src/react-native.d.ts\",\n \"default\": \"./out/zero/src/react-native.js\"\n },\n \"./server\": {\n \"types\": \"./out/zero/src/server.d.ts\",\n \"default\": \"./out/zero/src/server.js\"\n },\n \"./server/adapters/drizzle\": {\n \"types\": \"./out/zero/src/adapters/drizzle.d.ts\",\n \"default\": \"./out/zero/src/adapters/drizzle.js\"\n },\n \"./server/adapters/kysely\": {\n \"types\": \"./out/zero/src/adapters/kysely.d.ts\",\n \"default\": \"./out/zero/src/adapters/kysely.js\"\n },\n \"./server/adapters/prisma\": {\n \"types\": \"./out/zero/src/adapters/prisma.d.ts\",\n \"default\": \"./out/zero/src/adapters/prisma.js\"\n },\n \"./server/adapters/pg\": {\n \"types\": \"./out/zero/src/adapters/pg.d.ts\",\n \"default\": \"./out/zero/src/adapters/pg.js\"\n },\n \"./server/adapters/postgresjs\": {\n \"types\": \"./out/zero/src/adapters/postgresjs.d.ts\",\n \"default\": \"./out/zero/src/adapters/postgresjs.js\"\n },\n \"./solid\": {\n \"types\": \"./out/zero/src/solid.d.ts\",\n \"default\": \"./out/zero/src/solid.js\"\n },\n \"./sqlite\": {\n \"types\": \"./out/zero/src/sqlite.d.ts\",\n \"default\": \"./out/zero/src/sqlite.js\"\n },\n \"./zqlite\": {\n \"types\": \"./out/zero/src/zqlite.d.ts\",\n \"default\": \"./out/zero/src/zqlite.js\"\n }\n },\n \"scripts\": {\n \"build\": \"node --experimental-strip-types --no-warnings tool/build.ts\",\n \"build:watch\": \"node --experimental-strip-types --no-warnings tool/build.ts --watch\",\n \"check-types\": \"tsc -p tsconfig.client.json && tsc -p tsconfig.server.json\",\n \"check-types:client:watch\": \"tsc -p tsconfig.client.json --watch\",\n \"check-types:server:watch\": \"tsc -p tsconfig.server.json --watch\",\n \"format\": \"oxfmt .\",\n \"check-format\": \"oxfmt --check .\",\n \"lint\": \"oxlint --quiet --config ../../oxlint.config.ts src/\",\n \"docs\": \"node --experimental-strip-types --no-warnings tool/generate-docs.ts\",\n \"docs:server\": \"node --watch --experimental-strip-types --no-warnings tool/generate-docs.ts --server\",\n \"fmt\": \"oxfmt .\",\n \"check-fmt\": \"oxfmt --check .\"\n },\n \"dependencies\": {\n \"@badrap/valita\": \"0.3.11\",\n \"@databases/escape-identifier\": \"^1.0.3\",\n \"@databases/sql\": \"^3.3.0\",\n \"@dotenvx/dotenvx\": \"^1.39.0\",\n \"@drdgvhbh/postgres-error-codes\": \"^0.0.6\",\n \"@fastify/cors\": \"^10.0.0\",\n \"@fastify/websocket\": \"^11.0.0\",\n \"@google-cloud/precise-date\": \"^4.0.0\",\n \"@opentelemetry/api\": \"^1.9.0\",\n \"@opentelemetry/api-logs\": \"^0.218.0\",\n \"@opentelemetry/auto-instrumentations-node\": \"^0.76.0\",\n \"@opentelemetry/exporter-metrics-otlp-http\": \"^0.218.0\",\n \"@opentelemetry/resources\": \"^2.7.1\",\n \"@opentelemetry/sdk-metrics\": \"^2.7.1\",\n \"@opentelemetry/sdk-node\": \"^0.218.0\",\n \"@opentelemetry/sdk-trace-node\": \"^2.7.1\",\n \"@opentelemetry/semantic-conventions\": \"^1.41.1\",\n \"@postgresql-typed/oids\": \"^0.2.0\",\n \"@rocicorp/lock\": \"^1.0.4\",\n \"@rocicorp/logger\": \"^6.1.0\",\n \"@rocicorp/resolver\": \"^1.0.2\",\n \"@rocicorp/zero-sqlite3\": \"^1.1.4\",\n \"@standard-schema/spec\": \"^1.0.0\",\n \"@types/basic-auth\": \"^1.1.8\",\n \"@types/ws\": \"^8.5.12\",\n \"basic-auth\": \"^2.0.1\",\n \"chalk-template\": \"^1.1.0\",\n \"chokidar\": \"^4.0.1\",\n \"cloudevents\": \"^10.0.0\",\n \"command-line-args\": \"^6.0.1\",\n \"command-line-usage\": \"^7.0.3\",\n \"compare-utf8\": \"^0.2.3\",\n \"defu\": \"^6.1.4\",\n \"eventemitter3\": \"^5.0.1\",\n \"fastify\": \"^5.0.0\",\n \"is-in-subnet\": \"^4.0.1\",\n \"jose\": \"^5.9.3\",\n \"json-custom-numbers\": \"^3.1.1\",\n \"kasi\": \"^1.1.0\",\n \"nanoid\": \"^5.1.2\",\n \"oxfmt\": \"^0.65.0\",\n \"parse-prometheus-text-format\": \"^1.1.1\",\n \"pg-format\": \"npm:pg-format-fix@^1.0.5\",\n \"postgres\": \"3.4.7\",\n \"semver\": \"^7.5.4\",\n \"url-pattern\": \"^1.0.3\",\n \"urlpattern-polyfill\": \"^10.1.0\",\n \"ws\": \"^8.18.1\"\n },\n \"devDependencies\": {\n \"@op-engineering/op-sqlite\": \">=15\",\n \"analyze-query\": \"workspace:*\",\n \"ast-to-zql\": \"workspace:*\",\n \"expo-sqlite\": \">=15\",\n \"oxc-parser\": \"^0.129.0\",\n \"replicache\": \"workspace:*\",\n \"shared\": \"workspace:*\",\n \"syncpack\": \"^14.3.0\",\n \"typedoc\": \"^0.28.17\",\n \"typescript\": \"~7.0.2\",\n \"vite\": \"^8.0.13\",\n \"vitest\": \"^5.0.0\",\n \"zero-cache\": \"workspace:*\",\n \"zero-client\": \"workspace:*\",\n \"zero-pg\": \"workspace:*\",\n \"zero-react\": \"workspace:*\",\n \"zero-server\": \"workspace:*\",\n \"zero-solid\": \"workspace:*\",\n \"zqlite\": \"workspace:*\"\n },\n \"engines\": {\n \"node\": \">=22\"\n },\n \"packageManager\": \"pnpm@11.11.0\"\n}\n"],"mappings":""}
@@ -587,6 +587,14 @@ export declare const zeroOptions: {
587
587
  type: v.Type<number>;
588
588
  desc: string[];
589
589
  };
590
+ initialReadinessThresholdMs: {
591
+ type: v.Type<number>;
592
+ desc: string[];
593
+ };
594
+ maxReadinessDelayMs: {
595
+ type: v.Type<number>;
596
+ desc: string[];
597
+ };
590
598
  };
591
599
  adminPassword: {
592
600
  type: v.Optional<string>;
@@ -645,6 +653,11 @@ export declare const zeroOptions: {
645
653
  type: v.Optional<string>;
646
654
  desc: string[];
647
655
  };
656
+ backupURLOverride: {
657
+ type: v.Optional<string>;
658
+ desc: string[];
659
+ hidden: boolean;
660
+ };
648
661
  endpoint: {
649
662
  type: v.Optional<string>;
650
663
  desc: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"zero-config.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zero-config.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"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"}
@@ -893,18 +893,53 @@ var zeroOptions = {
893
893
  `slowness or downtime if compute resources are scarce.`
894
894
  ]
895
895
  },
896
- replicationLag: { reportIntervalMs: {
897
- type: valita_exports.number().default(3e4),
898
- desc: [
899
- `The minimum interval at which replication lag reports are written upstream and`,
900
- `reported via the {bold zero.replication.total_lag} opentelemetry metric. If`,
901
- `an expected report is not received before the next interval, Zero retries with`,
902
- `a new report and increments {bold zero.replication.lag_report_retries}. A`,
903
- `negative or 0 value disables lag reporting.`,
904
- ``,
905
- `This monitoring feature is only support on the postgres upstream type.`
906
- ]
907
- } },
896
+ replicationLag: {
897
+ reportIntervalMs: {
898
+ type: valita_exports.number().default(1e4),
899
+ desc: [
900
+ `The approximate interval at which replication lag reports are written upstream and`,
901
+ `reported via the {bold zero.replication.total_lag} opentelemetry metric. If`,
902
+ `an expected report is not received before the next interval, Zero retries with`,
903
+ `a new report and increments {bold zero.replication.lag_report_retries}.`,
904
+ ``,
905
+ `Note that the interval is approximate and scheduled with ~1 second jitter to allow`,
906
+ `multiple replication-managers (in RMv2) to cooperatively share the same reports.`,
907
+ ``,
908
+ `When enabled, lag reports are used to gate readiness of servers coming online by waiting`,
909
+ `for lag to fall below the {bold ZERO_REPLICATION_LAG_INITIAL_READINESS_THRESHOLD_MS}.`,
910
+ `As such, the reporting interval determines the time for which a new server waits for`,
911
+ `the next report to determine readiness.`,
912
+ ``,
913
+ `A negative or 0 value disables lag reporting and the associated readiness gating.`,
914
+ ``,
915
+ `This feature is only supported on the postgres upstream type.`
916
+ ]
917
+ },
918
+ initialReadinessThresholdMs: {
919
+ type: valita_exports.number().default(1e3),
920
+ desc: [
921
+ `The maximum replication lag in milliseconds that a server is allowed to have`,
922
+ `before it advertises readiness (to serve traffic). This prevents the server`,
923
+ `from serving stale data to clients when it is first started.`,
924
+ ``,
925
+ `Note that this is an initial readiness gate only. Once the server announces readiness,`,
926
+ `it will continue to serve traffic even if the replication lag exceeds this threshold`,
927
+ `thereafter.`,
928
+ ``,
929
+ `When lag reporting is disabled, readiness is not gated by replication lag.`
930
+ ]
931
+ },
932
+ maxReadinessDelayMs: {
933
+ type: valita_exports.number().default(6e5),
934
+ desc: [
935
+ `The maximum time in milliseconds that a server will wait for replication lag`,
936
+ `to fall below the {bold ZERO_REPLICATION_LAG_INITIAL_READINESS_THRESHOLD_MS}`,
937
+ `before it announces readiness. This prevents the server from waiting indefinitely`,
938
+ `for lag to fall below the threshold, which can occur if the upstream database`,
939
+ `is under heavy load or if there is a network partition.`
940
+ ]
941
+ }
942
+ },
908
943
  adminPassword: {
909
944
  type: valita_exports.string().optional(),
910
945
  desc: [
@@ -1066,6 +1101,11 @@ var zeroOptions = {
1066
1101
  `{bold view-syncers} receive this information from the {bold replication-manager}.`
1067
1102
  ]
1068
1103
  },
1104
+ backupURLOverride: {
1105
+ type: valita_exports.string().optional(),
1106
+ desc: [`Overrides the backup URL when present.`],
1107
+ hidden: true
1108
+ },
1069
1109
  endpoint: {
1070
1110
  type: valita_exports.string().optional(),
1071
1111
  desc: [`The S3-compatible endpoint URL to use for the litestream backup. Only required for non-AWS services.`, `The {bold replication-manager} and {bold view-syncers} must have the same endpoint.`]