@rocicorp/zero 0.10.2025011100 → 0.11.2025011401

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 (191) hide show
  1. package/out/advanced.js +1 -1
  2. package/out/{chunk-Y6OVFUGE.js → chunk-I5GSZARI.js} +1 -7
  3. package/out/{chunk-Y6OVFUGE.js.map → chunk-I5GSZARI.js.map} +1 -1
  4. package/out/{chunk-FEVIDCUL.js → chunk-JWWOECJ3.js} +575 -691
  5. package/out/chunk-JWWOECJ3.js.map +7 -0
  6. package/out/replicache/src/btree/node.d.ts +5 -3
  7. package/out/replicache/src/btree/node.d.ts.map +1 -1
  8. package/out/replicache/src/btree/read.d.ts +4 -1
  9. package/out/replicache/src/btree/read.d.ts.map +1 -1
  10. package/out/replicache/src/btree/write.d.ts +4 -1
  11. package/out/replicache/src/btree/write.d.ts.map +1 -1
  12. package/out/replicache/src/dag/key-type-enum.d.ts +0 -1
  13. package/out/replicache/src/dag/key-type-enum.d.ts.map +1 -1
  14. package/out/replicache/src/db/index-operation-enum.d.ts +0 -1
  15. package/out/replicache/src/db/index-operation-enum.d.ts.map +1 -1
  16. package/out/replicache/src/db/index.d.ts +4 -1
  17. package/out/replicache/src/db/index.d.ts.map +1 -1
  18. package/out/replicache/src/db/meta-type-enum.d.ts +0 -1
  19. package/out/replicache/src/db/meta-type-enum.d.ts.map +1 -1
  20. package/out/replicache/src/db/read.d.ts +4 -1
  21. package/out/replicache/src/db/read.d.ts.map +1 -1
  22. package/out/replicache/src/db/rebase.d.ts +5 -2
  23. package/out/replicache/src/db/rebase.d.ts.map +1 -1
  24. package/out/replicache/src/db/write.d.ts +8 -5
  25. package/out/replicache/src/db/write.d.ts.map +1 -1
  26. package/out/replicache/src/format-version-enum.d.ts +0 -2
  27. package/out/replicache/src/format-version-enum.d.ts.map +1 -1
  28. package/out/replicache/src/format-version.d.ts +4 -1
  29. package/out/replicache/src/format-version.d.ts.map +1 -1
  30. package/out/replicache/src/invoke-kind-enum.d.ts +0 -1
  31. package/out/replicache/src/invoke-kind-enum.d.ts.map +1 -1
  32. package/out/replicache/src/mutation-recovery.d.ts.map +1 -1
  33. package/out/replicache/src/persist/clients.d.ts +3 -1
  34. package/out/replicache/src/persist/clients.d.ts.map +1 -1
  35. package/out/replicache/src/persist/persist.d.ts +4 -1
  36. package/out/replicache/src/persist/persist.d.ts.map +1 -1
  37. package/out/replicache/src/persist/refresh.d.ts +4 -1
  38. package/out/replicache/src/persist/refresh.d.ts.map +1 -1
  39. package/out/replicache/src/replicache-impl.d.ts +1 -1
  40. package/out/replicache/src/replicache-impl.d.ts.map +1 -1
  41. package/out/replicache/src/subscriptions.d.ts +5 -3
  42. package/out/replicache/src/subscriptions.d.ts.map +1 -1
  43. package/out/replicache/src/sync/diff.d.ts +4 -1
  44. package/out/replicache/src/sync/diff.d.ts.map +1 -1
  45. package/out/replicache/src/sync/handle-pull-response-result-type-enum.d.ts +0 -1
  46. package/out/replicache/src/sync/handle-pull-response-result-type-enum.d.ts.map +1 -1
  47. package/out/replicache/src/sync/pull.d.ts +4 -3
  48. package/out/replicache/src/sync/pull.d.ts.map +1 -1
  49. package/out/shared/src/enum.d.ts +37 -0
  50. package/out/shared/src/enum.d.ts.map +1 -0
  51. package/out/shared/src/enum.js +2 -0
  52. package/out/shared/src/enum.js.map +1 -0
  53. package/out/solid.js +2 -3
  54. package/out/solid.js.map +1 -1
  55. package/out/zero-cache/src/db/mode-enum.d.ts +5 -0
  56. package/out/zero-cache/src/db/mode-enum.d.ts.map +1 -0
  57. package/out/zero-cache/src/db/mode-enum.js +3 -0
  58. package/out/zero-cache/src/db/mode-enum.js.map +1 -0
  59. package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
  60. package/out/zero-cache/src/db/pg-to-lite.js +2 -1
  61. package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
  62. package/out/zero-cache/src/db/postgres-type-class-enum.d.ts +15 -0
  63. package/out/zero-cache/src/db/postgres-type-class-enum.d.ts.map +1 -0
  64. package/out/zero-cache/src/db/postgres-type-class-enum.js +10 -0
  65. package/out/zero-cache/src/db/postgres-type-class-enum.js.map +1 -0
  66. package/out/zero-cache/src/db/specs.d.ts +6 -15
  67. package/out/zero-cache/src/db/specs.d.ts.map +1 -1
  68. package/out/zero-cache/src/db/specs.js +1 -11
  69. package/out/zero-cache/src/db/specs.js.map +1 -1
  70. package/out/zero-cache/src/db/transaction-pool.d.ts +3 -4
  71. package/out/zero-cache/src/db/transaction-pool.d.ts.map +1 -1
  72. package/out/zero-cache/src/db/transaction-pool.js +1 -5
  73. package/out/zero-cache/src/db/transaction-pool.js.map +1 -1
  74. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  75. package/out/zero-cache/src/server/main.js +13 -14
  76. package/out/zero-cache/src/server/main.js.map +1 -1
  77. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  78. package/out/zero-cache/src/services/change-source/pg/change-source.js +17 -48
  79. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  80. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
  81. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +13 -9
  82. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
  83. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +10 -10
  84. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +4 -4
  85. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +1 -1
  86. package/out/zero-cache/src/services/change-source/pg/sync-schema.d.ts.map +1 -1
  87. package/out/zero-cache/src/services/change-source/pg/sync-schema.js +7 -6
  88. package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -1
  89. package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts +0 -19
  90. package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts.map +1 -1
  91. package/out/zero-cache/src/services/change-source/protocol/current/control.js +0 -19
  92. package/out/zero-cache/src/services/change-source/protocol/current/control.js.map +1 -1
  93. package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts +8 -8
  94. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +18 -12
  95. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -1
  96. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js +5 -1
  97. package/out/zero-cache/src/services/change-source/protocol/current/downstream.js.map +1 -1
  98. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +0 -2
  99. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
  100. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +20 -10
  101. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  102. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +6 -10
  103. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
  104. package/out/zero-cache/src/services/change-streamer/change-streamer.js +0 -7
  105. package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
  106. package/out/zero-cache/src/services/change-streamer/error-type-enum.d.ts +9 -0
  107. package/out/zero-cache/src/services/change-streamer/error-type-enum.d.ts.map +1 -0
  108. package/out/zero-cache/src/services/change-streamer/error-type-enum.js +6 -0
  109. package/out/zero-cache/src/services/change-streamer/error-type-enum.js.map +1 -0
  110. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  111. package/out/zero-cache/src/services/change-streamer/storer.js +6 -25
  112. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  113. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +5 -1
  114. package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
  115. package/out/zero-cache/src/services/change-streamer/subscriber.js +2 -1
  116. package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
  117. package/out/zero-cache/src/services/mutagen/mutagen.d.ts +1 -1
  118. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
  119. package/out/zero-cache/src/services/mutagen/mutagen.js +4 -3
  120. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  121. package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
  122. package/out/zero-cache/src/services/replicator/incremental-sync.js +17 -49
  123. package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
  124. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +3 -4
  125. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -1
  126. package/out/zero-cache/src/services/replicator/schema/replication-state.js +15 -20
  127. package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
  128. package/out/zero-cache/src/services/running-state.d.ts +7 -0
  129. package/out/zero-cache/src/services/running-state.d.ts.map +1 -1
  130. package/out/zero-cache/src/services/running-state.js +8 -1
  131. package/out/zero-cache/src/services/running-state.js.map +1 -1
  132. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  133. package/out/zero-cache/src/services/view-syncer/cvr-store.js +3 -2
  134. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  135. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  136. package/out/zero-cache/src/services/view-syncer/cvr.js +3 -2
  137. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  138. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  139. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +4 -2
  140. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  141. package/out/zero-cache/src/services/view-syncer/snapshotter.js +3 -3
  142. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  143. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  144. package/out/zero-cache/src/services/view-syncer/view-syncer.js +6 -5
  145. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  146. package/out/zero-cache/src/types/error-for-client.d.ts +2 -2
  147. package/out/zero-cache/src/types/pg.js +2 -2
  148. package/out/zero-cache/src/types/pg.js.map +1 -1
  149. package/out/zero-cache/src/types/schema-versions.js +1 -1
  150. package/out/zero-cache/src/types/schema-versions.js.map +1 -1
  151. package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
  152. package/out/zero-cache/src/workers/connection.js +2 -1
  153. package/out/zero-cache/src/workers/connection.js.map +1 -1
  154. package/out/zero-cache/src/workers/syncer.js +1 -1
  155. package/out/zero-cache/src/workers/syncer.js.map +1 -1
  156. package/out/zero-client/src/client/connection-state-enum.d.ts +7 -0
  157. package/out/zero-client/src/client/connection-state-enum.d.ts.map +1 -0
  158. package/out/zero-client/src/client/metric-name-enum.d.ts +13 -0
  159. package/out/zero-client/src/client/metric-name-enum.d.ts.map +1 -0
  160. package/out/zero-client/src/client/metrics.d.ts +2 -9
  161. package/out/zero-client/src/client/metrics.d.ts.map +1 -1
  162. package/out/zero-client/src/client/ping-result-enum.d.ts +5 -0
  163. package/out/zero-client/src/client/ping-result-enum.d.ts.map +1 -0
  164. package/out/zero-client/src/client/server-error.d.ts +4 -1
  165. package/out/zero-client/src/client/server-error.d.ts.map +1 -1
  166. package/out/zero-client/src/client/zero.d.ts +4 -5
  167. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  168. package/out/zero-protocol/src/error-kind-enum.d.ts +31 -0
  169. package/out/zero-protocol/src/error-kind-enum.d.ts.map +1 -0
  170. package/out/zero-protocol/src/error-kind-enum.js +20 -0
  171. package/out/zero-protocol/src/error-kind-enum.js.map +1 -0
  172. package/out/zero-protocol/src/error.d.ts +4 -21
  173. package/out/zero-protocol/src/error.d.ts.map +1 -1
  174. package/out/zero-protocol/src/error.js +1 -21
  175. package/out/zero-protocol/src/error.js.map +1 -1
  176. package/out/zero-protocol/src/mutation-type-enum.d.ts +5 -0
  177. package/out/zero-protocol/src/mutation-type-enum.d.ts.map +1 -0
  178. package/out/zero-protocol/src/mutation-type-enum.js +4 -0
  179. package/out/zero-protocol/src/mutation-type-enum.js.map +1 -0
  180. package/out/zero-protocol/src/push.d.ts +8 -12
  181. package/out/zero-protocol/src/push.d.ts.map +1 -1
  182. package/out/zero-protocol/src/push.js +1 -5
  183. package/out/zero-protocol/src/push.js.map +1 -1
  184. package/out/zero-protocol/src/up.d.ts +2 -2
  185. package/out/zero.js +2 -3
  186. package/package.json +2 -2
  187. package/out/change-protocol.js +0 -257
  188. package/out/change-protocol.js.map +0 -7
  189. package/out/chunk-FEVIDCUL.js.map +0 -7
  190. package/out/chunk-ZRR54VX5.js +0 -224
  191. package/out/chunk-ZRR54VX5.js.map +0 -7
@@ -7,25 +7,16 @@ import {
7
7
  assertArray,
8
8
  assertBoolean,
9
9
  assertNotNull,
10
- assertNotUndefined,
11
10
  assertNumber,
12
11
  assertObject,
13
12
  assertString,
14
13
  must,
15
14
  throwInvalidType,
16
15
  unreachable
17
- } from "./chunk-Y6OVFUGE.js";
16
+ } from "./chunk-I5GSZARI.js";
18
17
  import {
19
- assert as assert2,
20
- parse,
21
- readonly,
22
- readonlyArray,
23
- readonlyObject,
24
- readonlyRecord,
25
- valita_exports
26
- } from "./chunk-ZRR54VX5.js";
27
- import {
28
- __export
18
+ __export,
19
+ __reExport
29
20
  } from "./chunk-F5QR3K72.js";
30
21
 
31
22
  // ../replicache/src/call-default-fetch.ts
@@ -120,73 +111,73 @@ function deepEqual(a, b) {
120
111
  }
121
112
  return aSize === bSize;
122
113
  }
123
- function assertJSONValue(v) {
114
+ function assertJSONValue(v2) {
124
115
  if (isProd) {
125
116
  return;
126
117
  }
127
- switch (typeof v) {
118
+ switch (typeof v2) {
128
119
  case "boolean":
129
120
  case "number":
130
121
  case "string":
131
122
  return;
132
123
  case "object":
133
- if (v === null) {
124
+ if (v2 === null) {
134
125
  return;
135
126
  }
136
- if (Array.isArray(v)) {
137
- return assertJSONArray(v);
127
+ if (Array.isArray(v2)) {
128
+ return assertJSONArray(v2);
138
129
  }
139
- return assertObjectIsJSONObject(v);
130
+ return assertObjectIsJSONObject(v2);
140
131
  }
141
- throwInvalidType(v, "JSON value");
132
+ throwInvalidType(v2, "JSON value");
142
133
  }
143
- function assertJSONObject(v) {
144
- assertObject(v);
145
- assertObjectIsJSONObject(v);
134
+ function assertJSONObject(v2) {
135
+ assertObject(v2);
136
+ assertObjectIsJSONObject(v2);
146
137
  }
147
- function assertObjectIsJSONObject(v) {
148
- for (const k in v) {
149
- if (hasOwn(v, k)) {
150
- const value = v[k];
138
+ function assertObjectIsJSONObject(v2) {
139
+ for (const k in v2) {
140
+ if (hasOwn(v2, k)) {
141
+ const value = v2[k];
151
142
  if (value !== void 0) {
152
143
  assertJSONValue(value);
153
144
  }
154
145
  }
155
146
  }
156
147
  }
157
- function assertJSONArray(v) {
158
- for (const item of v) {
148
+ function assertJSONArray(v2) {
149
+ for (const item of v2) {
159
150
  assertJSONValue(item);
160
151
  }
161
152
  }
162
- function isJSONValue(v, path2) {
163
- switch (typeof v) {
153
+ function isJSONValue(v2, path2) {
154
+ switch (typeof v2) {
164
155
  case "boolean":
165
156
  case "number":
166
157
  case "string":
167
158
  return true;
168
159
  case "object":
169
- if (v === null) {
160
+ if (v2 === null) {
170
161
  return true;
171
162
  }
172
- if (Array.isArray(v)) {
173
- return isJSONArray(v, path2);
163
+ if (Array.isArray(v2)) {
164
+ return isJSONArray(v2, path2);
174
165
  }
175
- return objectIsJSONObject(v, path2);
166
+ return objectIsJSONObject(v2, path2);
176
167
  }
177
168
  return false;
178
169
  }
179
- function isJSONObject(v, path2) {
180
- if (typeof v !== "object" || v === null) {
170
+ function isJSONObject(v2, path2) {
171
+ if (typeof v2 !== "object" || v2 === null) {
181
172
  return false;
182
173
  }
183
- return objectIsJSONObject(v, path2);
174
+ return objectIsJSONObject(v2, path2);
184
175
  }
185
- function objectIsJSONObject(v, path2) {
186
- for (const k in v) {
187
- if (hasOwn(v, k)) {
176
+ function objectIsJSONObject(v2, path2) {
177
+ for (const k in v2) {
178
+ if (hasOwn(v2, k)) {
188
179
  path2.push(k);
189
- const value = v[k];
180
+ const value = v2[k];
190
181
  if (value !== void 0 && !isJSONValue(value, path2)) {
191
182
  return false;
192
183
  }
@@ -195,10 +186,10 @@ function objectIsJSONObject(v, path2) {
195
186
  }
196
187
  return true;
197
188
  }
198
- function isJSONArray(v, path2) {
199
- for (let i = 0; i < v.length; i++) {
189
+ function isJSONArray(v2, path2) {
190
+ for (let i = 0; i < v2.length; i++) {
200
191
  path2.push(i);
201
- if (!isJSONValue(v[i], path2)) {
192
+ if (!isJSONValue(v2[i], path2)) {
202
193
  return false;
203
194
  }
204
195
  path2.pop();
@@ -241,12 +232,12 @@ function getCompareValue(cookie) {
241
232
  }
242
233
  return cookie.order;
243
234
  }
244
- function assertCookie(v) {
245
- if (v === null || typeof v === "string" || typeof v === "number") {
235
+ function assertCookie(v2) {
236
+ if (v2 === null || typeof v2 === "string" || typeof v2 === "number") {
246
237
  return;
247
238
  }
248
- assertJSONObject(v);
249
- if (typeof v.order === "string" || typeof v.order === "number") {
239
+ assertJSONObject(v2);
240
+ if (typeof v2.order === "string" || typeof v2.order === "number") {
250
241
  return;
251
242
  }
252
243
  throw new Error("Invalid cookie");
@@ -259,14 +250,14 @@ function isError(obj, type) {
259
250
  function isErrorResponse(obj) {
260
251
  return typeof obj.error === "string";
261
252
  }
262
- function isClientStateNotFoundResponse(v) {
263
- return isError(v, "ClientStateNotFound");
253
+ function isClientStateNotFoundResponse(v2) {
254
+ return isError(v2, "ClientStateNotFound");
264
255
  }
265
- function isVersionNotSupportedResponse(v) {
266
- if (!isError(v, "VersionNotSupported")) {
256
+ function isVersionNotSupportedResponse(v2) {
257
+ if (!isError(v2, "VersionNotSupported")) {
267
258
  return false;
268
259
  }
269
- const { versionType } = v;
260
+ const { versionType } = v2;
270
261
  switch (versionType) {
271
262
  case void 0:
272
263
  case "pull":
@@ -276,15 +267,15 @@ function isVersionNotSupportedResponse(v) {
276
267
  }
277
268
  return false;
278
269
  }
279
- function assertVersionNotSupportedResponse(v) {
280
- assert(isVersionNotSupportedResponse(v));
270
+ function assertVersionNotSupportedResponse(v2) {
271
+ assert(isVersionNotSupportedResponse(v2));
281
272
  }
282
273
 
283
274
  // ../replicache/src/http-request-info.ts
284
- function assertHTTPRequestInfo(v) {
285
- assertObject(v);
286
- assertNumber(v.httpStatusCode);
287
- assertString(v.errorMessage);
275
+ function assertHTTPRequestInfo(v2) {
276
+ assertObject(v2);
277
+ assertNumber(v2.httpStatusCode);
278
+ assertString(v2.errorMessage);
288
279
  }
289
280
 
290
281
  // ../replicache/src/patch-operation.ts
@@ -349,17 +340,17 @@ var defaultPullers = /* @__PURE__ */ new WeakSet();
349
340
  function isDefaultPuller(puller) {
350
341
  return defaultPullers.has(puller);
351
342
  }
352
- function assertPullResponseV1(v) {
353
- assertObject(v);
354
- if (isClientStateNotFoundResponse(v) || isVersionNotSupportedResponse(v)) {
343
+ function assertPullResponseV1(v2) {
344
+ assertObject(v2);
345
+ if (isClientStateNotFoundResponse(v2) || isVersionNotSupportedResponse(v2)) {
355
346
  return;
356
347
  }
357
- const v2 = v;
358
- if (v2.cookie !== void 0) {
359
- assertCookie(v2.cookie);
348
+ const v22 = v2;
349
+ if (v22.cookie !== void 0) {
350
+ assertCookie(v22.cookie);
360
351
  }
361
- assertLastMutationIDChanges(v2.lastMutationIDChanges);
362
- assertPatchOperations(v2.patch);
352
+ assertLastMutationIDChanges(v22.lastMutationIDChanges);
353
+ assertPatchOperations(v22.patch);
363
354
  }
364
355
  function assertLastMutationIDChanges(lastMutationIDChanges) {
365
356
  assertObject(lastMutationIDChanges);
@@ -368,11 +359,11 @@ function assertLastMutationIDChanges(lastMutationIDChanges) {
368
359
  assertNumber(value);
369
360
  }
370
361
  }
371
- function assertPullerResultV1(v) {
372
- assertObject(v);
373
- assertHTTPRequestInfo(v.httpRequestInfo);
374
- if (v.response !== void 0) {
375
- assertPullResponseV1(v.response);
362
+ function assertPullerResultV1(v2) {
363
+ assertObject(v2);
364
+ assertHTTPRequestInfo(v2.httpRequestInfo);
365
+ if (v2.response !== void 0) {
366
+ assertPullResponseV1(v2.response);
376
367
  }
377
368
  }
378
369
 
@@ -387,15 +378,15 @@ var promiseVoid = Promise.resolve();
387
378
 
388
379
  // ../replicache/src/frozen-json.ts
389
380
  var deepFrozenObjects = /* @__PURE__ */ new WeakSet();
390
- function deepFreeze(v) {
381
+ function deepFreeze(v2) {
391
382
  if (isProd) {
392
- return v;
383
+ return v2;
393
384
  }
394
- deepFreezeInternal(v, []);
395
- return v;
385
+ deepFreezeInternal(v2, []);
386
+ return v2;
396
387
  }
397
- function deepFreezeInternal(v, seen) {
398
- switch (typeof v) {
388
+ function deepFreezeInternal(v2, seen) {
389
+ switch (typeof v2) {
399
390
  case "undefined":
400
391
  throw new TypeError("Unexpected value undefined");
401
392
  case "boolean":
@@ -403,84 +394,84 @@ function deepFreezeInternal(v, seen) {
403
394
  case "string":
404
395
  return;
405
396
  case "object": {
406
- if (v === null) {
397
+ if (v2 === null) {
407
398
  return;
408
399
  }
409
- if (deepFrozenObjects.has(v)) {
400
+ if (deepFrozenObjects.has(v2)) {
410
401
  return;
411
402
  }
412
- deepFrozenObjects.add(v);
413
- if (seen.includes(v)) {
414
- throwInvalidType(v, "Cyclic JSON object");
403
+ deepFrozenObjects.add(v2);
404
+ if (seen.includes(v2)) {
405
+ throwInvalidType(v2, "Cyclic JSON object");
415
406
  }
416
- seen.push(v);
417
- Object.freeze(v);
418
- if (Array.isArray(v)) {
419
- deepFreezeArray(v, seen);
407
+ seen.push(v2);
408
+ Object.freeze(v2);
409
+ if (Array.isArray(v2)) {
410
+ deepFreezeArray(v2, seen);
420
411
  } else {
421
- deepFreezeObject(v, seen);
412
+ deepFreezeObject(v2, seen);
422
413
  }
423
414
  seen.pop();
424
415
  return;
425
416
  }
426
417
  default:
427
- throwInvalidType(v, "JSON value");
418
+ throwInvalidType(v2, "JSON value");
428
419
  }
429
420
  }
430
- function deepFreezeArray(v, seen) {
431
- for (const item of v) {
421
+ function deepFreezeArray(v2, seen) {
422
+ for (const item of v2) {
432
423
  deepFreezeInternal(item, seen);
433
424
  }
434
425
  }
435
- function deepFreezeObject(v, seen) {
436
- for (const k in v) {
437
- if (hasOwn(v, k)) {
438
- const value = v[k];
426
+ function deepFreezeObject(v2, seen) {
427
+ for (const k in v2) {
428
+ if (hasOwn(v2, k)) {
429
+ const value = v2[k];
439
430
  if (value !== void 0) {
440
431
  deepFreezeInternal(value, seen);
441
432
  }
442
433
  }
443
434
  }
444
435
  }
445
- function assertDeepFrozen(v) {
436
+ function assertDeepFrozen(v2) {
446
437
  if (isProd) {
447
438
  return;
448
439
  }
449
- if (!isDeepFrozen(v, [])) {
440
+ if (!isDeepFrozen(v2, [])) {
450
441
  throw new Error("Expected frozen object");
451
442
  }
452
443
  }
453
- function isDeepFrozen(v, seen) {
454
- switch (typeof v) {
444
+ function isDeepFrozen(v2, seen) {
445
+ switch (typeof v2) {
455
446
  case "boolean":
456
447
  case "number":
457
448
  case "string":
458
449
  return true;
459
450
  case "object":
460
- if (v === null) {
451
+ if (v2 === null) {
461
452
  return true;
462
453
  }
463
- if (deepFrozenObjects.has(v)) {
454
+ if (deepFrozenObjects.has(v2)) {
464
455
  return true;
465
456
  }
466
- if (!Object.isFrozen(v)) {
457
+ if (!Object.isFrozen(v2)) {
467
458
  return false;
468
459
  }
469
- if (seen.includes(v)) {
470
- throwInvalidType(v, "Cyclic JSON object");
460
+ if (seen.includes(v2)) {
461
+ throwInvalidType(v2, "Cyclic JSON object");
471
462
  }
472
- seen.push(v);
473
- if (Array.isArray(v)) {
474
- for (const item of v) {
463
+ seen.push(v2);
464
+ if (Array.isArray(v2)) {
465
+ for (const item of v2) {
475
466
  if (!isDeepFrozen(item, seen)) {
476
467
  seen.pop();
477
468
  return false;
478
469
  }
479
470
  }
480
471
  } else {
481
- for (const k in v) {
482
- if (hasOwn(v, k)) {
483
- const value = v[k];
472
+ for (const k in v2) {
473
+ if (hasOwn(v2, k)) {
474
+ const value = v2[k];
484
475
  if (value !== void 0 && !isDeepFrozen(value, seen)) {
485
476
  seen.pop();
486
477
  return false;
@@ -488,18 +479,18 @@ function isDeepFrozen(v, seen) {
488
479
  }
489
480
  }
490
481
  }
491
- deepFrozenObjects.add(v);
482
+ deepFrozenObjects.add(v2);
492
483
  seen.pop();
493
484
  return true;
494
485
  default:
495
- throwInvalidType(v, "JSON value");
486
+ throwInvalidType(v2, "JSON value");
496
487
  }
497
488
  }
498
- function deepFreezeAllowUndefined(v) {
499
- if (v === void 0) {
489
+ function deepFreezeAllowUndefined(v2) {
490
+ if (v2 === void 0) {
500
491
  return void 0;
501
492
  }
502
- return deepFreeze(v);
493
+ return deepFreeze(v2);
503
494
  }
504
495
 
505
496
  // ../replicache/src/kv/write-impl-base.ts
@@ -521,16 +512,16 @@ var WriteImplBase = class {
521
512
  }
522
513
  }
523
514
  async get(key) {
524
- const v = this._pending.get(key);
525
- switch (v) {
515
+ const v2 = this._pending.get(key);
516
+ switch (v2) {
526
517
  case deleteSentinel:
527
518
  return void 0;
528
519
  case void 0: {
529
- const v2 = await this.#read.get(key);
530
- return deepFreezeAllowUndefined(v2);
520
+ const v3 = await this.#read.get(key);
521
+ return deepFreezeAllowUndefined(v3);
531
522
  }
532
523
  default:
533
- return v;
524
+ return v2;
534
525
  }
535
526
  }
536
527
  put(key, value) {
@@ -735,7 +726,6 @@ function rejectIfClosed(tx) {
735
726
  }
736
727
 
737
728
  // ../replicache/src/format-version-enum.ts
738
- var SDD = 4;
739
729
  var DD31 = 5;
740
730
  var V6 = 6;
741
731
  var V7 = 7;
@@ -1443,14 +1433,14 @@ var Chunk = class {
1443
1433
  this.meta = refs;
1444
1434
  }
1445
1435
  };
1446
- function assertRefs(v) {
1447
- if (!Array.isArray(v)) {
1436
+ function assertRefs(v2) {
1437
+ if (!Array.isArray(v2)) {
1448
1438
  throw new Error("Refs must be an array");
1449
1439
  }
1450
- if (v.length > 0) {
1451
- assertString(v[0]);
1452
- for (let i = 1; i < v.length; i++) {
1453
- assertString(v[i]);
1440
+ if (v2.length > 0) {
1441
+ assertString(v2[0]);
1442
+ for (let i = 1; i < v2.length; i++) {
1443
+ assertString(v2[i]);
1454
1444
  }
1455
1445
  }
1456
1446
  }
@@ -1458,9 +1448,6 @@ function createChunk(data, refs, chunkHasher) {
1458
1448
  const hash2 = chunkHasher();
1459
1449
  return new Chunk(hash2, data, refs);
1460
1450
  }
1461
- function throwChunkHasher() {
1462
- throw new Error("unexpected call to compute chunk hash");
1463
- }
1464
1451
 
1465
1452
  // ../shared/src/random-uint64.ts
1466
1453
  function randomUint64() {
@@ -1469,6 +1456,215 @@ function randomUint64() {
1469
1456
  return BigInt(high) << 32n | BigInt(low);
1470
1457
  }
1471
1458
 
1459
+ // ../shared/src/valita.ts
1460
+ var valita_exports = {};
1461
+ __export(valita_exports, {
1462
+ assert: () => assert2,
1463
+ deepPartial: () => deepPartial,
1464
+ instanceOfAbstractType: () => instanceOfAbstractType,
1465
+ is: () => is,
1466
+ parse: () => parse,
1467
+ readonly: () => readonly,
1468
+ readonlyArray: () => readonlyArray,
1469
+ readonlyObject: () => readonlyObject,
1470
+ readonlyRecord: () => readonlyRecord,
1471
+ test: () => test,
1472
+ testOptional: () => testOptional
1473
+ });
1474
+ __reExport(valita_exports, valita_star);
1475
+ import * as v from "@badrap/valita";
1476
+ import * as valita_star from "@badrap/valita";
1477
+ function toDisplay(value) {
1478
+ switch (typeof value) {
1479
+ case "string":
1480
+ case "number":
1481
+ case "boolean":
1482
+ return JSON.stringify(value);
1483
+ case "undefined":
1484
+ return "undefined";
1485
+ case "bigint":
1486
+ return value.toString() + "n";
1487
+ default:
1488
+ if (value === null) {
1489
+ return "null";
1490
+ }
1491
+ if (Array.isArray(value)) {
1492
+ return "array";
1493
+ }
1494
+ return typeof value;
1495
+ }
1496
+ }
1497
+ function toDisplayAtPath(v2, path2) {
1498
+ if (!path2?.length) {
1499
+ return toDisplay(v2);
1500
+ }
1501
+ let cur = v2;
1502
+ for (const p of path2) {
1503
+ cur = cur[p];
1504
+ }
1505
+ return toDisplay(cur);
1506
+ }
1507
+ function displayList(word, expected, toDisplay2 = (x) => String(x)) {
1508
+ if (expected.length === 1) {
1509
+ return toDisplay2(expected[0]);
1510
+ }
1511
+ const suffix = `${toDisplay2(
1512
+ expected[expected.length - 2]
1513
+ )} ${word} ${toDisplay2(expected[expected.length - 1])}`;
1514
+ if (expected.length === 2) {
1515
+ return suffix;
1516
+ }
1517
+ return `${expected.slice(0, -2).map(toDisplay2).join(", ")}, ${suffix}`;
1518
+ }
1519
+ function getMessage(err2, v2, schema, mode) {
1520
+ const firstIssue = err2.issues[0];
1521
+ const { path: path2 } = firstIssue;
1522
+ const atPath = path2?.length ? ` at ${path2.join(".")}` : "";
1523
+ switch (firstIssue.code) {
1524
+ case "invalid_type":
1525
+ return `Expected ${displayList(
1526
+ "or",
1527
+ firstIssue.expected
1528
+ )}${atPath}. Got ${toDisplayAtPath(v2, path2)}`;
1529
+ case "missing_value": {
1530
+ const atPath2 = path2 && path2.length > 1 ? ` at ${path2.slice(0, -1).join(".")}` : "";
1531
+ if (firstIssue.path?.length) {
1532
+ return `Missing property ${firstIssue.path.at(-1)}${atPath2}`;
1533
+ }
1534
+ return `TODO Unknown missing property${atPath2}`;
1535
+ }
1536
+ case "invalid_literal":
1537
+ return `Expected literal value ${displayList(
1538
+ "or",
1539
+ firstIssue.expected,
1540
+ toDisplay
1541
+ )}${atPath} Got ${toDisplayAtPath(v2, path2)}`;
1542
+ case "invalid_length": {
1543
+ return `Expected array with length ${firstIssue.minLength === firstIssue.maxLength ? firstIssue.minLength : `between ${firstIssue.minLength} and ${firstIssue.maxLength}`}${atPath}. Got array with length ${v2.length}`;
1544
+ }
1545
+ case "unrecognized_keys":
1546
+ if (firstIssue.keys.length === 1) {
1547
+ return `Unexpected property ${firstIssue.keys[0]}${atPath}`;
1548
+ }
1549
+ return `Unexpected properties ${displayList(
1550
+ "and",
1551
+ firstIssue.keys
1552
+ )}${atPath}`;
1553
+ case "invalid_union":
1554
+ return schema.name === "union" ? getDeepestUnionParseError(v2, schema, mode ?? "strict") : `Invalid union value${atPath}`;
1555
+ case "custom_error": {
1556
+ const { error } = firstIssue;
1557
+ const message = !error ? "unknown" : typeof error === "string" ? error : error.message ?? "unknown";
1558
+ return `${message}${atPath}. Got ${toDisplayAtPath(v2, path2)}`;
1559
+ }
1560
+ }
1561
+ }
1562
+ function getDeepestUnionParseError(value, schema, mode) {
1563
+ const failures = [];
1564
+ for (const type of schema.options) {
1565
+ const r = type.try(value, { mode });
1566
+ if (!r.ok) {
1567
+ failures.push({ type, err: r });
1568
+ }
1569
+ }
1570
+ if (failures.length) {
1571
+ failures.sort(pathCmp);
1572
+ if (failures.length === 1 || pathCmp(failures[0], failures[1]) < 0) {
1573
+ return getMessage(failures[0].err, value, failures[0].type, mode);
1574
+ }
1575
+ }
1576
+ try {
1577
+ const str = JSON.stringify(value);
1578
+ return `Invalid union value: ${str}`;
1579
+ } catch (e) {
1580
+ return `Invalid union value`;
1581
+ }
1582
+ }
1583
+ function pathCmp(a, b) {
1584
+ const aPath = a.err.issues[0].path;
1585
+ const bPath = b.err.issues[0].path;
1586
+ if (aPath.length !== bPath.length) {
1587
+ return bPath.length - aPath.length;
1588
+ }
1589
+ for (let i = 0; i < aPath.length; i++) {
1590
+ if (bPath[i] > aPath[i]) {
1591
+ return -1;
1592
+ }
1593
+ if (bPath[i] < aPath[i]) {
1594
+ return 1;
1595
+ }
1596
+ }
1597
+ return 0;
1598
+ }
1599
+ function parse(value, schema, mode) {
1600
+ const res = test(value, schema, mode);
1601
+ if (!res.ok) {
1602
+ throw new TypeError(res.error);
1603
+ }
1604
+ return res.value;
1605
+ }
1606
+ function is(value, schema, mode) {
1607
+ return test(value, schema, mode).ok;
1608
+ }
1609
+ function assert2(value, schema, mode) {
1610
+ parse(value, schema, mode);
1611
+ }
1612
+ function test(value, schema, mode) {
1613
+ const res = schema.try(value, mode ? { mode } : void 0);
1614
+ if (!res.ok) {
1615
+ return {
1616
+ ok: false,
1617
+ error: getMessage(res, value, schema, mode)
1618
+ };
1619
+ }
1620
+ return res;
1621
+ }
1622
+ function testOptional(value, schema, mode) {
1623
+ let flags = 1;
1624
+ if (mode === "passthrough") {
1625
+ flags = 0;
1626
+ } else if (mode === "strip") {
1627
+ flags = 2;
1628
+ }
1629
+ const res = schema.func(value, flags);
1630
+ if (res === void 0) {
1631
+ return { ok: true, value };
1632
+ } else if (res.ok) {
1633
+ return res;
1634
+ }
1635
+ const err2 = new v.ValitaError(res);
1636
+ return { ok: false, error: getMessage(err2, value, schema, mode) };
1637
+ }
1638
+ function readonly(t2) {
1639
+ return t2;
1640
+ }
1641
+ function readonlyObject(t2) {
1642
+ return v.object(t2);
1643
+ }
1644
+ function readonlyArray(t2) {
1645
+ return v.array(t2);
1646
+ }
1647
+ function readonlyRecord(t2) {
1648
+ return v.record(t2);
1649
+ }
1650
+ var AbstractType = Object.getPrototypeOf(
1651
+ Object.getPrototypeOf(v.string().optional())
1652
+ ).constructor;
1653
+ function instanceOfAbstractType(obj) {
1654
+ return obj instanceof AbstractType;
1655
+ }
1656
+ function deepPartial(s) {
1657
+ const shape = {};
1658
+ for (const [key, type] of Object.entries(s.shape)) {
1659
+ if (type.name === "object") {
1660
+ shape[key] = deepPartial(type).optional();
1661
+ } else {
1662
+ shape[key] = type.optional();
1663
+ }
1664
+ }
1665
+ return v.object(shape);
1666
+ }
1667
+
1472
1668
  // ../replicache/src/hash.ts
1473
1669
  var STRING_LENGTH = 22;
1474
1670
  var hashRe = /^[0-9a-v-]+$/;
@@ -1875,11 +2071,11 @@ var LazyWrite = class extends LazyRead {
1875
2071
  }
1876
2072
  async #setHead(name, hash2) {
1877
2073
  const oldHash = await this.getHead(name);
1878
- const v = this._pendingHeadChanges.get(name);
1879
- if (v === void 0) {
2074
+ const v2 = this._pendingHeadChanges.get(name);
2075
+ if (v2 === void 0) {
1880
2076
  this._pendingHeadChanges.set(name, { new: hash2, old: oldHash });
1881
2077
  } else {
1882
- v.new = hash2;
2078
+ v2.new = hash2;
1883
2079
  }
1884
2080
  }
1885
2081
  isMemOnlyChunkHash(hash2) {
@@ -2253,11 +2449,11 @@ var WriteImpl3 = class extends ReadImpl3 {
2253
2449
  } else {
2254
2450
  p1 = this._tx.put(hk, hash2);
2255
2451
  }
2256
- const v = this.#changedHeads.get(name);
2257
- if (v === void 0) {
2452
+ const v2 = this.#changedHeads.get(name);
2453
+ if (v2 === void 0) {
2258
2454
  this.#changedHeads.set(name, { new: hash2, old: oldHash });
2259
2455
  } else {
2260
- v.new = hash2;
2456
+ v2.new = hash2;
2261
2457
  }
2262
2458
  await p1;
2263
2459
  }
@@ -2457,32 +2653,32 @@ async function commitFromHead(name, dagRead) {
2457
2653
  const hash2 = await mustGetHeadHash(name, dagRead);
2458
2654
  return commitFromHash(hash2, dagRead);
2459
2655
  }
2460
- function assertLocalMetaDD31(v) {
2461
- assertString(v.clientID);
2462
- assertNumber(v.mutationID);
2463
- assertString(v.mutatorName);
2464
- if (!v.mutatorName) {
2656
+ function assertLocalMetaDD31(v2) {
2657
+ assertString(v2.clientID);
2658
+ assertNumber(v2.mutationID);
2659
+ assertString(v2.mutatorName);
2660
+ if (!v2.mutatorName) {
2465
2661
  throw new Error("Missing mutator name");
2466
2662
  }
2467
- assertJSONValue(v.mutatorArgsJSON);
2468
- if (v.originalHash !== null) {
2469
- assertHash(v.originalHash);
2663
+ assertJSONValue(v2.mutatorArgsJSON);
2664
+ if (v2.originalHash !== null) {
2665
+ assertHash(v2.originalHash);
2470
2666
  }
2471
- assertNumber(v.timestamp);
2667
+ assertNumber(v2.timestamp);
2472
2668
  }
2473
2669
  function isLocalMetaDD31(meta) {
2474
2670
  return meta.type === LocalDD31;
2475
2671
  }
2476
- function assertSnapshotMetaDD31(v) {
2477
- if (v.basisHash !== null) {
2478
- assertHash(v.basisHash);
2672
+ function assertSnapshotMetaDD31(v2) {
2673
+ if (v2.basisHash !== null) {
2674
+ assertHash(v2.basisHash);
2479
2675
  }
2480
- assertJSONValue(v.cookieJSON);
2481
- assertLastMutationIDs(v.lastMutationIDs);
2676
+ assertJSONValue(v2.cookieJSON);
2677
+ assertLastMutationIDs(v2.lastMutationIDs);
2482
2678
  }
2483
- function assertLastMutationIDs(v) {
2484
- assertObject(v);
2485
- for (const e of Object.values(v)) {
2679
+ function assertLastMutationIDs(v2) {
2680
+ assertObject(v2);
2681
+ for (const e of Object.values(v2)) {
2486
2682
  assertNumber(e);
2487
2683
  }
2488
2684
  }
@@ -2492,35 +2688,35 @@ function assertSnapshotCommitDD31(c) {
2492
2688
  function isSnapshotMetaDD31(meta) {
2493
2689
  return meta.type === SnapshotDD31;
2494
2690
  }
2495
- function assertMeta(v) {
2496
- assertObject(v);
2497
- assertDeepFrozen(v);
2498
- if (v.basisHash !== null) {
2499
- assertString(v.basisHash);
2691
+ function assertMeta(v2) {
2692
+ assertObject(v2);
2693
+ assertDeepFrozen(v2);
2694
+ if (v2.basisHash !== null) {
2695
+ assertString(v2.basisHash);
2500
2696
  }
2501
- assertNumber(v.type);
2502
- switch (v.type) {
2697
+ assertNumber(v2.type);
2698
+ switch (v2.type) {
2503
2699
  case LocalDD31:
2504
- assertLocalMetaDD31(v);
2700
+ assertLocalMetaDD31(v2);
2505
2701
  break;
2506
2702
  case SnapshotDD31:
2507
- assertSnapshotMetaDD31(v);
2703
+ assertSnapshotMetaDD31(v2);
2508
2704
  break;
2509
2705
  default:
2510
- throw new Error(`Invalid enum value ${v.type}`);
2706
+ throw new Error(`Invalid enum value ${v2.type}`);
2511
2707
  }
2512
2708
  }
2513
2709
  function chunkIndexDefinitionEqualIgnoreName(a, b) {
2514
2710
  return a.jsonPointer === b.jsonPointer && (a.allowEmpty ?? false) === (b.allowEmpty ?? false) && a.keyPrefix === b.keyPrefix;
2515
2711
  }
2516
- function assertChunkIndexDefinition(v) {
2517
- assertObject(v);
2518
- assertDeepFrozen(v);
2519
- assertString(v.name);
2520
- assertString(v.keyPrefix);
2521
- assertString(v.jsonPointer);
2522
- if (v.allowEmpty !== void 0) {
2523
- assertBoolean(v.allowEmpty);
2712
+ function assertChunkIndexDefinition(v2) {
2713
+ assertObject(v2);
2714
+ assertDeepFrozen(v2);
2715
+ assertString(v2.name);
2716
+ assertString(v2.keyPrefix);
2717
+ assertString(v2.jsonPointer);
2718
+ if (v2.allowEmpty !== void 0) {
2719
+ assertBoolean(v2.allowEmpty);
2524
2720
  }
2525
2721
  }
2526
2722
  function toChunkIndexDefinition(name, indexDefinition) {
@@ -2531,16 +2727,16 @@ function toChunkIndexDefinition(name, indexDefinition) {
2531
2727
  allowEmpty: indexDefinition.allowEmpty ?? false
2532
2728
  };
2533
2729
  }
2534
- function assertIndexRecord(v) {
2535
- assertObject(v);
2536
- assertDeepFrozen(v);
2537
- assertChunkIndexDefinition(v.definition);
2538
- assertString(v.valueHash);
2730
+ function assertIndexRecord(v2) {
2731
+ assertObject(v2);
2732
+ assertDeepFrozen(v2);
2733
+ assertChunkIndexDefinition(v2.definition);
2734
+ assertString(v2.valueHash);
2539
2735
  }
2540
- function assertIndexRecords(v) {
2541
- assertArray(v);
2542
- assertDeepFrozen(v);
2543
- for (const ir of v) {
2736
+ function assertIndexRecords(v2) {
2737
+ assertArray(v2);
2738
+ assertDeepFrozen(v2);
2739
+ for (const ir of v2) {
2544
2740
  assertIndexRecord(ir);
2545
2741
  }
2546
2742
  }
@@ -2614,15 +2810,15 @@ function makeCommitData(meta, valueHash, indexes) {
2614
2810
  indexes
2615
2811
  });
2616
2812
  }
2617
- function assertCommitData(v) {
2813
+ function assertCommitData(v2) {
2618
2814
  if (isProd) {
2619
2815
  return;
2620
2816
  }
2621
- assertObject(v);
2622
- assertDeepFrozen(v);
2623
- assertMeta(v.meta);
2624
- assertString(v.valueHash);
2625
- assertIndexRecords(v.indexes);
2817
+ assertObject(v2);
2818
+ assertDeepFrozen(v2);
2819
+ assertMeta(v2.meta);
2820
+ assertString(v2.valueHash);
2821
+ assertIndexRecords(v2.indexes);
2626
2822
  }
2627
2823
  function validateChunk(chunk) {
2628
2824
  const { data } = chunk;
@@ -2692,14 +2888,14 @@ function binarySearch2(key, entries) {
2692
2888
  function binarySearchFound(i, entries, key) {
2693
2889
  return i !== entries.length && entries[i][0] === key;
2694
2890
  }
2695
- function parseBTreeNode(v, formatVersion, getSizeOfEntry2) {
2891
+ function parseBTreeNode(v2, formatVersion, getSizeOfEntry2) {
2696
2892
  if (isProd && formatVersion >= V7) {
2697
- return v;
2893
+ return v2;
2698
2894
  }
2699
- assertArray(v);
2700
- assertDeepFrozen(v);
2701
- assert(v.length >= 2);
2702
- const [level, entries] = v;
2895
+ assertArray(v2);
2896
+ assertDeepFrozen(v2);
2897
+ assert(v2.length >= 2);
2898
+ const [level, entries] = v2;
2703
2899
  assertNumber(level);
2704
2900
  assertArray(entries);
2705
2901
  const f = level > 0 ? assertString : assertJSONValue;
@@ -2707,7 +2903,7 @@ function parseBTreeNode(v, formatVersion, getSizeOfEntry2) {
2707
2903
  for (const e of entries) {
2708
2904
  assertEntry(e, f);
2709
2905
  }
2710
- return v;
2906
+ return v2;
2711
2907
  }
2712
2908
  const newEntries = entries.map((e) => convertNonV7Entry(e, f, getSizeOfEntry2));
2713
2909
  return [level, newEntries];
@@ -2801,13 +2997,13 @@ var DataNodeImpl = class extends NodeImpl {
2801
2997
  }
2802
2998
  }
2803
2999
  };
2804
- function readonlySplice(array9, start, deleteCount, ...items) {
2805
- const arr = array9.slice(0, start);
3000
+ function readonlySplice(array10, start, deleteCount, ...items) {
3001
+ const arr = array10.slice(0, start);
2806
3002
  for (let i = 0; i < items.length; i++) {
2807
3003
  arr.push(items[i]);
2808
3004
  }
2809
- for (let i = start + deleteCount; i < array9.length; i++) {
2810
- arr.push(array9[i]);
3005
+ for (let i = start + deleteCount; i < array10.length; i++) {
3006
+ arr.push(array10[i]);
2811
3007
  }
2812
3008
  return arr;
2813
3009
  }
@@ -3559,8 +3755,8 @@ import { greaterThan } from "compare-utf8";
3559
3755
  // ../replicache/src/async-iterable-to-array.ts
3560
3756
  async function asyncIterableToArray(it) {
3561
3757
  const arr = [];
3562
- for await (const v of it) {
3563
- arr.push(v);
3758
+ for await (const v2 of it) {
3759
+ arr.push(v2);
3564
3760
  }
3565
3761
  return arr;
3566
3762
  }
@@ -4502,14 +4698,6 @@ function createLogContext(logLevel = "info", logSinks = [consoleLogSink], contex
4502
4698
  return new LogContext(logLevel, context, logSink);
4503
4699
  }
4504
4700
 
4505
- // ../replicache/src/format-version.ts
4506
- function parseReplicacheFormatVersion(v) {
4507
- if (v !== (v | 0) || v < SDD || v > Latest) {
4508
- throw new Error(`Unsupported format version: ${v}`);
4509
- }
4510
- return v;
4511
- }
4512
-
4513
4701
  // ../replicache/src/index-defs.ts
4514
4702
  var indexDefinitionSchema = readonlyObject({
4515
4703
  prefix: valita_exports.string().optional(),
@@ -5070,22 +5258,22 @@ function maybeEndPull(store, lc, expectedSyncHead, clientID, diffConfig, formatV
5070
5258
  // ../shared/src/json-schema.ts
5071
5259
  import * as valita from "@badrap/valita";
5072
5260
  var path = [];
5073
- var jsonSchema = valita_exports.unknown().chain((v) => {
5261
+ var jsonSchema = valita_exports.unknown().chain((v2) => {
5074
5262
  if (isProd) {
5075
- return valita.ok(v);
5263
+ return valita.ok(v2);
5076
5264
  }
5077
- const rv = isJSONValue(v, path) ? valita.ok(v) : valita.err({
5265
+ const rv = isJSONValue(v2, path) ? valita.ok(v2) : valita.err({
5078
5266
  message: `Not a JSON value`,
5079
5267
  path: path.slice()
5080
5268
  });
5081
5269
  path.length = 0;
5082
5270
  return rv;
5083
5271
  });
5084
- var jsonObjectSchema = valita_exports.unknown().chain((v) => {
5272
+ var jsonObjectSchema = valita_exports.unknown().chain((v2) => {
5085
5273
  if (isProd) {
5086
- return valita.ok(v);
5274
+ return valita.ok(v2);
5087
5275
  }
5088
- const rv = isJSONObject(v, path) ? valita.ok(v) : valita.err({
5276
+ const rv = isJSONObject(v2, path) ? valita.ok(v2) : valita.err({
5089
5277
  message: `Not a JSON object`,
5090
5278
  path: path.slice()
5091
5279
  });
@@ -5094,18 +5282,18 @@ var jsonObjectSchema = valita_exports.unknown().chain((v) => {
5094
5282
  });
5095
5283
 
5096
5284
  // ../replicache/src/pusher.ts
5097
- function assertPusherResult(v) {
5098
- assertObject(v);
5099
- assertHTTPRequestInfo(v.httpRequestInfo);
5100
- if (v.response !== void 0) {
5101
- assertPushResponse(v.response);
5285
+ function assertPusherResult(v2) {
5286
+ assertObject(v2);
5287
+ assertHTTPRequestInfo(v2.httpRequestInfo);
5288
+ if (v2.response !== void 0) {
5289
+ assertPushResponse(v2.response);
5102
5290
  }
5103
5291
  }
5104
- function assertPushResponse(v) {
5105
- if (isClientStateNotFoundResponse(v)) {
5292
+ function assertPushResponse(v2) {
5293
+ if (isClientStateNotFoundResponse(v2)) {
5106
5294
  return;
5107
5295
  }
5108
- assertVersionNotSupportedResponse(v);
5296
+ assertVersionNotSupportedResponse(v2);
5109
5297
  }
5110
5298
  var PushError = class extends Error {
5111
5299
  name = "PushError";
@@ -5201,346 +5389,6 @@ async function callPusher(pusher, body, requestID) {
5201
5389
 
5202
5390
  // ../replicache/src/mutation-recovery.ts
5203
5391
  var MUTATION_RECOVERY_LAZY_STORE_SOURCE_CHUNK_CACHE_SIZE_LIMIT = 10 * 2 ** 20;
5204
- var MutationRecovery = class {
5205
- #recoveringMutations = false;
5206
- #options;
5207
- constructor(options) {
5208
- this.#options = options;
5209
- }
5210
- async recoverMutations(ready, perdag, idbDatabase, idbDatabases, createStore) {
5211
- const { lc, enableMutationRecovery, isPushDisabled, delegate } = this.#options;
5212
- if (!enableMutationRecovery || this.#recoveringMutations || !delegate.online || delegate.closed || isPushDisabled()) {
5213
- return false;
5214
- }
5215
- const stepDescription = "Recovering mutations.";
5216
- lc.debug?.("Start:", stepDescription);
5217
- try {
5218
- this.#recoveringMutations = true;
5219
- await ready;
5220
- await recoverMutationsFromPerdag(idbDatabase, this.#options, perdag);
5221
- for (const database of Object.values(await idbDatabases.getDatabases())) {
5222
- if (delegate.closed) {
5223
- lc.debug?.("Exiting early due to close:", stepDescription);
5224
- return true;
5225
- }
5226
- if (database.replicacheName === delegate.name && database.name !== delegate.idbName) {
5227
- switch (database.replicacheFormatVersion) {
5228
- case SDD:
5229
- case DD31:
5230
- case V6:
5231
- case V7:
5232
- await recoverMutationsWithNewPerdag(
5233
- database,
5234
- this.#options,
5235
- createStore
5236
- );
5237
- }
5238
- }
5239
- }
5240
- } catch (e) {
5241
- logMutationRecoveryError(e, lc, stepDescription, delegate);
5242
- } finally {
5243
- lc.debug?.("End:", stepDescription);
5244
- this.#recoveringMutations = false;
5245
- }
5246
- return true;
5247
- }
5248
- };
5249
- function logMutationRecoveryError(e, lc, stepDescription, closedDelegate) {
5250
- if (closedDelegate.closed) {
5251
- lc.debug?.(
5252
- `Mutation recovery error likely due to close during:
5253
- ${stepDescription}
5254
- Error:
5255
- `,
5256
- e
5257
- );
5258
- } else {
5259
- lc.error?.(
5260
- `Mutation recovery error during:
5261
- ${stepDescription}
5262
- Error:
5263
- `,
5264
- e
5265
- );
5266
- }
5267
- }
5268
- async function recoverMutationsWithNewPerdag(database, options, createStore) {
5269
- const perKvStore = createStore(database.name);
5270
- const perdag = new StoreImpl(perKvStore, newRandomHash, assertHash);
5271
- try {
5272
- await recoverMutationsFromPerdag(database, options, perdag);
5273
- } finally {
5274
- await perdag.close();
5275
- }
5276
- }
5277
- function recoverMutationsFromPerdag(database, options, perdag) {
5278
- assert(database.replicacheFormatVersion >= DD31);
5279
- return recoverMutationsFromPerdagDD31(database, options, perdag);
5280
- }
5281
- async function recoverMutationsFromPerdagDD31(database, options, perdag) {
5282
- const { delegate, lc } = options;
5283
- const stepDescription = `Recovering mutations from db ${database.name}.`;
5284
- lc.debug?.("Start:", stepDescription);
5285
- try {
5286
- const formatVersion = parseReplicacheFormatVersion(database.replicacheFormatVersion);
5287
- let clientGroups = await withRead(
5288
- perdag,
5289
- (read) => getClientGroups(read)
5290
- );
5291
- const clientGroupIDsVisited = /* @__PURE__ */ new Set();
5292
- while (clientGroups) {
5293
- let newClientGroups;
5294
- for (const [clientGroupID, clientGroup] of clientGroups) {
5295
- if (delegate.closed) {
5296
- lc.debug?.("Exiting early due to close:", stepDescription);
5297
- return;
5298
- }
5299
- if (!clientGroupIDsVisited.has(clientGroupID)) {
5300
- clientGroupIDsVisited.add(clientGroupID);
5301
- newClientGroups = await recoverMutationsOfClientGroupDD31(
5302
- clientGroup,
5303
- clientGroupID,
5304
- perdag,
5305
- database,
5306
- options,
5307
- formatVersion
5308
- );
5309
- if (newClientGroups) {
5310
- break;
5311
- }
5312
- }
5313
- }
5314
- clientGroups = newClientGroups;
5315
- }
5316
- } catch (e) {
5317
- logMutationRecoveryError(e, lc, stepDescription, delegate);
5318
- }
5319
- lc.debug?.("End:", stepDescription);
5320
- }
5321
- function isResponseThatShouldDisableClientGroup(response) {
5322
- return isClientStateNotFoundResponse(response) || isVersionNotSupportedResponse(response);
5323
- }
5324
- async function disableClientGroup2(lc, selfClientGroupID, clientGroupID, response, perdag) {
5325
- if (isClientStateNotFoundResponse(response)) {
5326
- lc.debug?.(
5327
- `Client group ${selfClientGroupID} cannot recover mutations for client group ${clientGroupID}. The client group is unknown on the server. Marking it as disabled.`
5328
- );
5329
- } else if (isVersionNotSupportedResponse(response)) {
5330
- lc.debug?.(
5331
- `Client group ${selfClientGroupID} cannot recover mutations for client group ${clientGroupID}. The client group's version is not supported on the server. versionType: ${response.versionType}. Marking it as disabled.`
5332
- );
5333
- }
5334
- await withWrite(
5335
- perdag,
5336
- (perdagWrite) => disableClientGroup(clientGroupID, perdagWrite)
5337
- );
5338
- }
5339
- async function recoverMutationsOfClientGroupDD31(clientGroup, clientGroupID, perdag, database, options, formatVersion) {
5340
- assert(database.replicacheFormatVersion >= DD31);
5341
- const {
5342
- delegate,
5343
- lc,
5344
- wrapInOnlineCheck,
5345
- wrapInReauthRetries,
5346
- isPushDisabled,
5347
- isPullDisabled,
5348
- clientGroupIDPromise
5349
- } = options;
5350
- const selfClientGroupID = await clientGroupIDPromise;
5351
- assertNotUndefined(selfClientGroupID);
5352
- if (selfClientGroupID === clientGroupID) {
5353
- return;
5354
- }
5355
- let clientID;
5356
- let allAckd = true;
5357
- for (const [cid, mutationID] of Object.entries(clientGroup.mutationIDs)) {
5358
- if (!clientGroup.lastServerAckdMutationIDs[cid] || clientGroup.lastServerAckdMutationIDs[cid] < mutationID) {
5359
- clientID = cid;
5360
- allAckd = false;
5361
- break;
5362
- }
5363
- }
5364
- if (allAckd) {
5365
- return;
5366
- }
5367
- if (clientGroup.disabled) {
5368
- lc.debug?.(
5369
- `Not recovering mutations for client group ${clientGroupID} because group is disabled.`
5370
- );
5371
- return;
5372
- }
5373
- const stepDescription = `Recovering mutations for client group ${clientGroupID}.`;
5374
- lc.debug?.("Start:", stepDescription);
5375
- const lazyDagForOtherClientGroup = new LazyStore(
5376
- perdag,
5377
- MUTATION_RECOVERY_LAZY_STORE_SOURCE_CHUNK_CACHE_SIZE_LIMIT,
5378
- throwChunkHasher,
5379
- assertHash
5380
- );
5381
- try {
5382
- await withWrite(
5383
- lazyDagForOtherClientGroup,
5384
- (write) => write.setHead(DEFAULT_HEAD_NAME, clientGroup.headHash)
5385
- );
5386
- if (isPushDisabled()) {
5387
- lc.debug?.(
5388
- `Cannot recover mutations for client group ${clientGroupID} because push is disabled.`
5389
- );
5390
- return;
5391
- }
5392
- const { pusher } = delegate;
5393
- const pushDescription = "recoveringMutationsPush";
5394
- const pushSucceeded = await wrapInOnlineCheck(async () => {
5395
- const { result: pusherResult } = await wrapInReauthRetries(
5396
- async (requestID, requestLc) => {
5397
- assert(clientID);
5398
- assert(lazyDagForOtherClientGroup);
5399
- const pusherResult2 = await push(
5400
- requestID,
5401
- lazyDagForOtherClientGroup,
5402
- requestLc,
5403
- await delegate.profileID,
5404
- clientGroupID,
5405
- // TODO(DD31): clientID is not needed in DD31. It is currently kept for debugging purpose.
5406
- clientID,
5407
- pusher,
5408
- database.schemaVersion,
5409
- PUSH_VERSION_DD31
5410
- );
5411
- return {
5412
- result: pusherResult2,
5413
- httpRequestInfo: pusherResult2?.httpRequestInfo
5414
- };
5415
- },
5416
- pushDescription,
5417
- lc
5418
- );
5419
- if (!pusherResult) {
5420
- return false;
5421
- }
5422
- const pusherResponse = pusherResult.response;
5423
- if (isResponseThatShouldDisableClientGroup(pusherResponse)) {
5424
- await disableClientGroup2(
5425
- lc,
5426
- selfClientGroupID,
5427
- clientGroupID,
5428
- pusherResponse,
5429
- perdag
5430
- );
5431
- return false;
5432
- }
5433
- return pusherResult.httpRequestInfo.httpStatusCode === 200;
5434
- }, pushDescription);
5435
- if (!pushSucceeded) {
5436
- lc.debug?.(
5437
- `Failed to recover mutations for client ${clientGroupID} due to a push error.`
5438
- );
5439
- return;
5440
- }
5441
- if (isPullDisabled()) {
5442
- lc.debug?.(
5443
- `Cannot confirm mutations were recovered for client ${clientGroupID} because pull is disabled.`
5444
- );
5445
- return;
5446
- }
5447
- const { puller } = delegate;
5448
- const pullDescription = "recoveringMutationsPull";
5449
- let okPullResponse;
5450
- const pullSucceeded = await wrapInOnlineCheck(async () => {
5451
- const { result: beginPullResponse } = await wrapInReauthRetries(
5452
- async (requestID, requestLc) => {
5453
- assert(clientID);
5454
- const beginPullResponse2 = await beginPullV1(
5455
- await delegate.profileID,
5456
- clientID,
5457
- clientGroupID,
5458
- database.schemaVersion,
5459
- puller,
5460
- requestID,
5461
- lazyDagForOtherClientGroup,
5462
- formatVersion,
5463
- requestLc,
5464
- false
5465
- );
5466
- return {
5467
- result: beginPullResponse2,
5468
- httpRequestInfo: beginPullResponse2.httpRequestInfo
5469
- };
5470
- },
5471
- pullDescription,
5472
- lc
5473
- );
5474
- const { pullResponse } = beginPullResponse;
5475
- if (isResponseThatShouldDisableClientGroup(pullResponse)) {
5476
- await disableClientGroup2(
5477
- lc,
5478
- selfClientGroupID,
5479
- clientGroupID,
5480
- pullResponse,
5481
- perdag
5482
- );
5483
- return false;
5484
- }
5485
- if (!pullResponse || beginPullResponse.httpRequestInfo.httpStatusCode !== 200) {
5486
- return false;
5487
- }
5488
- okPullResponse = pullResponse;
5489
- return true;
5490
- }, pullDescription);
5491
- if (!pullSucceeded) {
5492
- lc.debug?.(
5493
- `Failed to recover mutations for client ${clientGroupID} due to a pull error.`
5494
- );
5495
- return;
5496
- }
5497
- assert(okPullResponse);
5498
- lc.debug?.(
5499
- `Client group ${selfClientGroupID} recovered mutations for client group ${clientGroupID}. Details`,
5500
- {
5501
- mutationIDs: clientGroup.mutationIDs,
5502
- lastServerAckdMutationIDs: clientGroup.lastServerAckdMutationIDs,
5503
- lastMutationIDChanges: okPullResponse.lastMutationIDChanges
5504
- }
5505
- );
5506
- return await withWrite(perdag, async (dagWrite) => {
5507
- const clientGroups = await getClientGroups(dagWrite);
5508
- const clientGroupToUpdate = clientGroups.get(clientGroupID);
5509
- if (!clientGroupToUpdate) {
5510
- return clientGroups;
5511
- }
5512
- assert(okPullResponse);
5513
- const lastServerAckdMutationIDsUpdates = {};
5514
- let anyMutationIDsUpdated = false;
5515
- for (const [clientID2, lastMutationIDChange] of Object.entries(
5516
- okPullResponse.lastMutationIDChanges
5517
- )) {
5518
- if ((clientGroupToUpdate.lastServerAckdMutationIDs[clientID2] ?? 0) < lastMutationIDChange) {
5519
- lastServerAckdMutationIDsUpdates[clientID2] = lastMutationIDChange;
5520
- anyMutationIDsUpdated = true;
5521
- }
5522
- }
5523
- if (!anyMutationIDsUpdated) {
5524
- return clientGroups;
5525
- }
5526
- const newClientGroups = new Map(clientGroups).set(clientGroupID, {
5527
- ...clientGroupToUpdate,
5528
- lastServerAckdMutationIDs: {
5529
- ...clientGroupToUpdate.lastServerAckdMutationIDs,
5530
- ...lastServerAckdMutationIDsUpdates
5531
- }
5532
- });
5533
- await setClientGroups(newClientGroups, dagWrite);
5534
- return newClientGroups;
5535
- });
5536
- } catch (e) {
5537
- logMutationRecoveryError(e, lc, stepDescription, delegate);
5538
- } finally {
5539
- await lazyDagForOtherClientGroup.close();
5540
- lc.debug?.("End:", stepDescription);
5541
- }
5542
- return;
5543
- }
5544
5392
 
5545
5393
  // ../replicache/src/broadcast-channel.ts
5546
5394
  var NoopBroadcastChannel = class {
@@ -7281,14 +7129,14 @@ function diffBinarySearch(diff2, prefix, compareKey) {
7281
7129
  }
7282
7130
 
7283
7131
  // ../shared/src/random-values.ts
7284
- function getNonCryptoRandomValues(array9) {
7285
- if (array9 === null) {
7132
+ function getNonCryptoRandomValues(array10) {
7133
+ if (array10 === null) {
7286
7134
  throw new TypeError("array cannot be null");
7287
7135
  }
7288
- for (let i = 0; i < array9.length; i++) {
7289
- array9[i] = Math.floor(Math.random() * 256);
7136
+ for (let i = 0; i < array10.length; i++) {
7137
+ array10[i] = Math.floor(Math.random() * 256);
7290
7138
  }
7291
- return array9;
7139
+ return array10;
7292
7140
  }
7293
7141
 
7294
7142
  // ../replicache/src/sync/request-id.ts
@@ -7568,16 +7416,18 @@ var ReplicacheImpl = class {
7568
7416
  this.#profileIDPromise = profileIDResolver.promise;
7569
7417
  const clientGroupIDResolver = resolver6();
7570
7418
  this.#clientGroupIDPromise = clientGroupIDResolver.promise;
7571
- this.#mutationRecovery = new MutationRecovery({
7572
- delegate: this,
7573
- lc: this.#lc,
7574
- enableMutationRecovery,
7575
- wrapInOnlineCheck: this.#wrapInOnlineCheck.bind(this),
7576
- wrapInReauthRetries: this.#wrapInReauthRetries.bind(this),
7577
- isPullDisabled: this.#isPullDisabled.bind(this),
7578
- isPushDisabled: this.#isPushDisabled.bind(this),
7579
- clientGroupIDPromise: this.#clientGroupIDPromise
7580
- });
7419
+ if (false) {
7420
+ this.#mutationRecovery = new MutationRecovery({
7421
+ delegate: this,
7422
+ lc: this.#lc,
7423
+ enableMutationRecovery,
7424
+ wrapInOnlineCheck: this.#wrapInOnlineCheck.bind(this),
7425
+ wrapInReauthRetries: this.#wrapInReauthRetries.bind(this),
7426
+ isPullDisabled: this.#isPullDisabled.bind(this),
7427
+ isPushDisabled: this.#isPushDisabled.bind(this),
7428
+ clientGroupIDPromise: this.#clientGroupIDPromise
7429
+ });
7430
+ }
7581
7431
  this.#onPersist = initOnPersistChannel(
7582
7432
  this.name,
7583
7433
  this.#closeAbortController.signal,
@@ -8382,17 +8232,19 @@ var ReplicacheImpl = class {
8382
8232
  return ex;
8383
8233
  }
8384
8234
  recoverMutations() {
8385
- const result = this.#mutationRecovery.recoverMutations(
8386
- this.#ready,
8387
- this.perdag,
8388
- this.#idbDatabase,
8389
- this.#idbDatabases,
8390
- this.#kvStoreProvider.create
8391
- );
8392
8235
  if (false) {
8393
- void this.onRecoverMutations(result);
8236
+ const result = this.#mutationRecovery.recoverMutations(
8237
+ this.#ready,
8238
+ this.perdag,
8239
+ this.#idbDatabase,
8240
+ this.#idbDatabases,
8241
+ this.#kvStoreProvider.create
8242
+ );
8243
+ if (false) {
8244
+ void this.onRecoverMutations(result);
8245
+ }
8246
+ return result;
8394
8247
  }
8395
- return result;
8396
8248
  }
8397
8249
  /**
8398
8250
  * List of pending mutations. The order of this is from oldest to newest.
@@ -8475,9 +8327,9 @@ __export(column_exports, {
8475
8327
  enumeration: () => enumeration,
8476
8328
  json: () => json,
8477
8329
  number: () => number4,
8478
- string: () => string6
8330
+ string: () => string7
8479
8331
  });
8480
- function string6(optional) {
8332
+ function string7(optional) {
8481
8333
  return {
8482
8334
  type: "string",
8483
8335
  optional: optional ?? false,
@@ -8526,8 +8378,8 @@ function isJunctionRelationship(relationship) {
8526
8378
  }
8527
8379
 
8528
8380
  // ../shared/src/sorted-entries.ts
8529
- function sortedEntries(object17) {
8530
- return Object.entries(object17).sort((a, b) => stringCompare(a[0], b[0]));
8381
+ function sortedEntries(object18) {
8382
+ return Object.entries(object18).sort((a, b) => stringCompare(a[0], b[0]));
8531
8383
  }
8532
8384
 
8533
8385
  // ../zero-schema/src/normalize-table-schema.ts
@@ -9187,8 +9039,8 @@ var negateOperatorMap = {
9187
9039
  function negateOperator(op) {
9188
9040
  return must(negateOperatorMap[op]);
9189
9041
  }
9190
- function filterUndefined(array9) {
9191
- return array9.filter((e) => e !== void 0);
9042
+ function filterUndefined(array10) {
9043
+ return array10.filter((e) => e !== void 0);
9192
9044
  }
9193
9045
  function filterTrue(conditions) {
9194
9046
  return conditions.filter((c) => !isAlwaysTrue(c));
@@ -9259,8 +9111,8 @@ function compareValues(a, b) {
9259
9111
  }
9260
9112
  throw new Error(`Unsupported type: ${a}`);
9261
9113
  }
9262
- function normalizeUndefined(v) {
9263
- return v ?? null;
9114
+ function normalizeUndefined(v2) {
9115
+ return v2 ?? null;
9264
9116
  }
9265
9117
  function makeComparator(order, reverse) {
9266
9118
  return (a, b) => {
@@ -9288,8 +9140,8 @@ function* take(stream, limit) {
9288
9140
  return;
9289
9141
  }
9290
9142
  let count = 0;
9291
- for (const v of stream) {
9292
- yield v;
9143
+ for (const v2 of stream) {
9144
+ yield v2;
9293
9145
  if (++count === limit) {
9294
9146
  break;
9295
9147
  }
@@ -11490,9 +11342,9 @@ var QueryImpl = class extends AbstractQuery {
11490
11342
  return view;
11491
11343
  }
11492
11344
  run() {
11493
- const v = this.materialize();
11494
- const ret = v.data;
11495
- v.destroy();
11345
+ const v2 = this.materialize();
11346
+ const ret = v2.data;
11347
+ v2.destroy();
11496
11348
  return ret;
11497
11349
  }
11498
11350
  preload() {
@@ -11531,12 +11383,12 @@ function addPrimaryKeysToAst(schema, ast) {
11531
11383
  };
11532
11384
  }
11533
11385
  function arrayViewFactory(_query, input, format, onDestroy, onTransactionCommit, queryComplete) {
11534
- const v = new ArrayView(input, format, queryComplete);
11535
- v.onDestroy = onDestroy;
11386
+ const v2 = new ArrayView(input, format, queryComplete);
11387
+ v2.onDestroy = onDestroy;
11536
11388
  onTransactionCommit(() => {
11537
- v.flush();
11389
+ v2.flush();
11538
11390
  });
11539
- return v;
11391
+ return v2;
11540
11392
  }
11541
11393
 
11542
11394
  // ../zql/src/query/auth-query.ts
@@ -11691,6 +11543,23 @@ function escapeLike(val) {
11691
11543
  import { LogContext as LogContext4 } from "@rocicorp/logger";
11692
11544
  import { resolver as resolver8 } from "@rocicorp/resolver";
11693
11545
 
11546
+ // ../zero-protocol/src/error-kind-enum.ts
11547
+ var AuthInvalidated = "AuthInvalidated";
11548
+ var ClientNotFound = "ClientNotFound";
11549
+ var InvalidConnectionRequest = "InvalidConnectionRequest";
11550
+ var InvalidConnectionRequestBaseCookie = "InvalidConnectionRequestBaseCookie";
11551
+ var InvalidConnectionRequestLastMutationID = "InvalidConnectionRequestLastMutationID";
11552
+ var InvalidConnectionRequestClientDeleted = "InvalidConnectionRequestClientDeleted";
11553
+ var InvalidMessage = "InvalidMessage";
11554
+ var InvalidPush = "InvalidPush";
11555
+ var MutationFailed = "MutationFailed";
11556
+ var MutationRateLimited = "MutationRateLimited";
11557
+ var Unauthorized = "Unauthorized";
11558
+ var VersionNotSupported = "VersionNotSupported";
11559
+ var SchemaVersionNotSupported = "SchemaVersionNotSupported";
11560
+ var ServerOverloaded = "ServerOverloaded";
11561
+ var Internal = "Internal";
11562
+
11694
11563
  // ../zero-protocol/src/queries-patch.ts
11695
11564
  var putOpSchema = valita_exports.object({
11696
11565
  op: valita_exports.literal("put"),
@@ -11757,27 +11626,27 @@ function encodeSecProtocols(initConnectionMessage, authToken) {
11757
11626
 
11758
11627
  // ../zero-protocol/src/error.ts
11759
11628
  var errorKindSchema = valita_exports.union(
11760
- valita_exports.literal("AuthInvalidated" /* AuthInvalidated */),
11761
- valita_exports.literal("ClientNotFound" /* ClientNotFound */),
11762
- valita_exports.literal("InvalidConnectionRequest" /* InvalidConnectionRequest */),
11763
- valita_exports.literal("InvalidConnectionRequestBaseCookie" /* InvalidConnectionRequestBaseCookie */),
11764
- valita_exports.literal("InvalidConnectionRequestLastMutationID" /* InvalidConnectionRequestLastMutationID */),
11765
- valita_exports.literal("InvalidConnectionRequestClientDeleted" /* InvalidConnectionRequestClientDeleted */),
11766
- valita_exports.literal("InvalidMessage" /* InvalidMessage */),
11767
- valita_exports.literal("InvalidPush" /* InvalidPush */),
11768
- valita_exports.literal("MutationRateLimited" /* MutationRateLimited */),
11769
- valita_exports.literal("MutationFailed" /* MutationFailed */),
11770
- valita_exports.literal("Unauthorized" /* Unauthorized */),
11771
- valita_exports.literal("VersionNotSupported" /* VersionNotSupported */),
11772
- valita_exports.literal("SchemaVersionNotSupported" /* SchemaVersionNotSupported */),
11773
- valita_exports.literal("Internal" /* Internal */)
11629
+ valita_exports.literal(AuthInvalidated),
11630
+ valita_exports.literal(ClientNotFound),
11631
+ valita_exports.literal(InvalidConnectionRequest),
11632
+ valita_exports.literal(InvalidConnectionRequestBaseCookie),
11633
+ valita_exports.literal(InvalidConnectionRequestLastMutationID),
11634
+ valita_exports.literal(InvalidConnectionRequestClientDeleted),
11635
+ valita_exports.literal(InvalidMessage),
11636
+ valita_exports.literal(InvalidPush),
11637
+ valita_exports.literal(MutationRateLimited),
11638
+ valita_exports.literal(MutationFailed),
11639
+ valita_exports.literal(Unauthorized),
11640
+ valita_exports.literal(VersionNotSupported),
11641
+ valita_exports.literal(SchemaVersionNotSupported),
11642
+ valita_exports.literal(Internal)
11774
11643
  );
11775
11644
  var basicErrorBodySchema = valita_exports.object({
11776
11645
  kind: errorKindSchema,
11777
11646
  message: valita_exports.string()
11778
11647
  });
11779
11648
  var serverOverloadedBodySchema = valita_exports.object({
11780
- kind: valita_exports.literal("ServerOverloaded" /* ServerOverloaded */),
11649
+ kind: valita_exports.literal(ServerOverloaded),
11781
11650
  message: valita_exports.string(),
11782
11651
  minBackoffMs: valita_exports.number().optional()
11783
11652
  });
@@ -11937,6 +11806,10 @@ var downstreamSchema = valita_exports.union(
11937
11806
  var pingBodySchema = valita_exports.object({});
11938
11807
  var pingMessageSchema = valita_exports.tuple([valita_exports.literal("ping"), pingBodySchema]);
11939
11808
 
11809
+ // ../zero-protocol/src/mutation-type-enum.ts
11810
+ var CRUD = "crud";
11811
+ var Custom = "custom";
11812
+
11940
11813
  // ../zero-protocol/src/push.ts
11941
11814
  var CRUD_MUTATION_NAME = "_zero_crud";
11942
11815
  var insertOpSchema = valita_exports.object({
@@ -11976,7 +11849,7 @@ var crudArgSchema = valita_exports.object({
11976
11849
  });
11977
11850
  var crudArgsSchema = valita_exports.tuple([crudArgSchema]);
11978
11851
  var crudMutationSchema = valita_exports.object({
11979
- type: valita_exports.literal("crud" /* CRUD */),
11852
+ type: valita_exports.literal(CRUD),
11980
11853
  id: valita_exports.number(),
11981
11854
  clientID: valita_exports.string(),
11982
11855
  name: valita_exports.literal(CRUD_MUTATION_NAME),
@@ -11984,7 +11857,7 @@ var crudMutationSchema = valita_exports.object({
11984
11857
  timestamp: valita_exports.number()
11985
11858
  });
11986
11859
  var customMutationSchema = valita_exports.object({
11987
- type: valita_exports.literal("custom" /* Custom */),
11860
+ type: valita_exports.literal(Custom),
11988
11861
  id: valita_exports.number(),
11989
11862
  clientID: valita_exports.string(),
11990
11863
  name: valita_exports.string(),
@@ -12049,6 +11922,11 @@ function send(ws, data) {
12049
11922
  ws.send(JSON.stringify(data));
12050
11923
  }
12051
11924
 
11925
+ // ../zero-client/src/client/connection-state-enum.ts
11926
+ var Disconnected = 0;
11927
+ var Connecting = 1;
11928
+ var Connected = 2;
11929
+
12052
11930
  // ../btree/b+tree.ts
12053
11931
  function defaultComparator(a, b) {
12054
11932
  if (Number.isFinite(a) && Number.isFinite(b)) {
@@ -12137,7 +12015,7 @@ var BTree = class _BTree {
12137
12015
  forEach(callback, thisArg) {
12138
12016
  if (thisArg !== void 0)
12139
12017
  callback = callback.bind(thisArg);
12140
- return this.forEachPair((k, v) => callback(v, k, this));
12018
+ return this.forEachPair((k, v2) => callback(v2, k, this));
12141
12019
  }
12142
12020
  /** Runs a function for each key-value pair, in order from smallest to
12143
12021
  * largest key. The callback can return {break:R} (where R is any value
@@ -12262,8 +12140,8 @@ var BTree = class _BTree {
12262
12140
  filter(callback, returnThisIfUnchanged) {
12263
12141
  var nu = this.greedyClone();
12264
12142
  var del;
12265
- nu.editAll((k, v, i) => {
12266
- if (!callback(k, v, i))
12143
+ nu.editAll((k, v2, i) => {
12144
+ if (!callback(k, v2, i))
12267
12145
  return del = Delete;
12268
12146
  return void 0;
12269
12147
  });
@@ -12275,8 +12153,8 @@ var BTree = class _BTree {
12275
12153
  mapValues(callback) {
12276
12154
  var tmp = {};
12277
12155
  var nu = this.greedyClone();
12278
- nu.editAll((k, v, i) => {
12279
- return tmp.value = callback(v, k, i), tmp;
12156
+ nu.editAll((k, v2, i) => {
12157
+ return tmp.value = callback(v2, k, i), tmp;
12280
12158
  });
12281
12159
  return nu;
12282
12160
  }
@@ -12748,8 +12626,8 @@ var BTree = class _BTree {
12748
12626
  false,
12749
12627
  this,
12750
12628
  0,
12751
- (_k, v) => {
12752
- results.push(v);
12629
+ (_k, v2) => {
12630
+ results.push(v2);
12753
12631
  }
12754
12632
  );
12755
12633
  return results;
@@ -12864,8 +12742,8 @@ var BTree = class _BTree {
12864
12742
  */
12865
12743
  getRange(low, high, includeHigh, maxLength = 67108863) {
12866
12744
  var results = [];
12867
- this._root.forRange(low, high, includeHigh, false, this, 0, (k, v) => {
12868
- results.push([k, v]);
12745
+ this._root.forRange(low, high, includeHigh, false, this, 0, (k, v2) => {
12746
+ results.push([k, v2]);
12869
12747
  return results.length > maxLength ? Break : void 0;
12870
12748
  });
12871
12749
  return results;
@@ -13126,10 +13004,10 @@ var BNode = class _BNode {
13126
13004
  return reusedArray;
13127
13005
  }
13128
13006
  clone() {
13129
- var v = this.values;
13007
+ var v2 = this.values;
13130
13008
  return new _BNode(
13131
13009
  this.keys.slice(0),
13132
- v === undefVals ? v : v.slice(0)
13010
+ v2 === undefVals ? v2 : v2.slice(0)
13133
13011
  );
13134
13012
  }
13135
13013
  greedyClone(force) {
@@ -13229,24 +13107,24 @@ var BNode = class _BNode {
13229
13107
  return true;
13230
13108
  }
13231
13109
  takeFromRight(rhs) {
13232
- var v = this.values;
13110
+ var v2 = this.values;
13233
13111
  if (rhs.values === undefVals) {
13234
- if (v !== undefVals)
13235
- v.push(void 0);
13112
+ if (v2 !== undefVals)
13113
+ v2.push(void 0);
13236
13114
  } else {
13237
- v = this.reifyValues();
13238
- v.push(rhs.values.shift());
13115
+ v2 = this.reifyValues();
13116
+ v2.push(rhs.values.shift());
13239
13117
  }
13240
13118
  this.keys.push(rhs.keys.shift());
13241
13119
  }
13242
13120
  takeFromLeft(lhs) {
13243
- var v = this.values;
13121
+ var v2 = this.values;
13244
13122
  if (lhs.values === undefVals) {
13245
- if (v !== undefVals)
13246
- v.unshift(void 0);
13123
+ if (v2 !== undefVals)
13124
+ v2.unshift(void 0);
13247
13125
  } else {
13248
- v = this.reifyValues();
13249
- v.unshift(lhs.values.pop());
13126
+ v2 = this.reifyValues();
13127
+ v2.unshift(lhs.values.pop());
13250
13128
  }
13251
13129
  this.keys.unshift(lhs.keys.pop());
13252
13130
  }
@@ -14719,7 +14597,7 @@ function makeMessage(message, context, logLevel) {
14719
14597
  }
14720
14598
 
14721
14599
  // ../zero-client/src/client/version.ts
14722
- var version2 = "0.10.2025011100+4a1fd2";
14600
+ var version2 = "0.11.2025011401+3a8f35";
14723
14601
 
14724
14602
  // ../zero-client/src/client/log-options.ts
14725
14603
  var LevelFilterLogSink = class {
@@ -14775,6 +14653,14 @@ function createLogOptions(options, createDatadogLogSink = (options2) => new Data
14775
14653
  };
14776
14654
  }
14777
14655
 
14656
+ // ../zero-client/src/client/metric-name-enum.ts
14657
+ var TimeToConnectMs = "time_to_connect_ms";
14658
+ var LastConnectError = "last_connect_error";
14659
+ var TimeToConnectMsV2 = "time_to_connect_ms_v2";
14660
+ var LastConnectErrorV2 = "last_connect_error_v2";
14661
+ var TotalTimeToConnectMs = "total_time_to_connect_ms";
14662
+ var NotConnected = "not_connected";
14663
+
14778
14664
  // ../zero-client/src/client/metrics.ts
14779
14665
  var DID_NOT_CONNECT_VALUE = 100 * 1e3;
14780
14666
  var REPORT_INTERVAL_MS = 5e3;
@@ -14826,7 +14712,7 @@ var MetricManager = class {
14826
14712
  // be encapsulated with the ConnectionState. This will probably happen as part
14827
14713
  // of https://github.com/rocicorp/reflect-server/issues/255.
14828
14714
  timeToConnectMs = this.#register(
14829
- new Gauge("time_to_connect_ms" /* TimeToConnectMs */)
14715
+ new Gauge(TimeToConnectMs)
14830
14716
  );
14831
14717
  // lastConnectError records the last error that occurred when connecting,
14832
14718
  // if any. It is cleared when connecting successfully or when reported, so this
@@ -14834,28 +14720,28 @@ var MetricManager = class {
14834
14720
  // we are still not connected.
14835
14721
  lastConnectError = this.#register(
14836
14722
  new State(
14837
- "last_connect_error" /* LastConnectError */,
14723
+ LastConnectError,
14838
14724
  true
14839
14725
  // clearOnFlush
14840
14726
  )
14841
14727
  );
14842
14728
  // notConnected records the reason why the client is not currently connected.
14843
14729
  // It is cleared when the client successfully connects.
14844
- #notConnected = this.#register(new State("not_connected" /* NotConnected */));
14730
+ #notConnected = this.#register(new State(NotConnected));
14845
14731
  // The time from the call to connect() to receiving the 'connected' ws message
14846
14732
  // for the current connection. Cleared when the client is not connected.
14847
14733
  // TODO: Not actually currently cleared on disconnect untill there is a
14848
14734
  // connect error, or client reports disconnected and waiting for visible.
14849
14735
  // Should have a value iff _notConnected has no value.
14850
14736
  #timeToConnectMsV2 = this.#register(
14851
- new Gauge("time_to_connect_ms_v2" /* TimeToConnectMsV2 */)
14737
+ new Gauge(TimeToConnectMsV2)
14852
14738
  );
14853
14739
  // lastConnectErrorV2 records the last error that occurred when connecting,
14854
14740
  // if any. It is cleared when the client successfully connects or
14855
14741
  // stops trying to connect due to being hidden.
14856
14742
  // Should have a value iff notConnected state is NotConnectedReason.Error.
14857
14743
  #lastConnectErrorV2 = this.#register(
14858
- new State("last_connect_error_v2" /* LastConnectErrorV2 */)
14744
+ new State(LastConnectErrorV2)
14859
14745
  );
14860
14746
  // The total time it took to connect across retries for the current
14861
14747
  // connection. Cleared when the client is not connected.
@@ -14864,7 +14750,7 @@ var MetricManager = class {
14864
14750
  // See Zero.#totalToConnectStart for details of how this total is computed.
14865
14751
  // Should have a value iff _notConnected has no value.
14866
14752
  #totalTimeToConnectMs = this.#register(
14867
- new Gauge("total_time_to_connect_ms" /* TotalTimeToConnectMs */)
14753
+ new Gauge(TotalTimeToConnectMs)
14868
14754
  );
14869
14755
  #setNotConnectedReason(reason) {
14870
14756
  this.#notConnected.set(reason);
@@ -15005,6 +14891,10 @@ var State = class {
15005
14891
  }
15006
14892
  };
15007
14893
 
14894
+ // ../zero-client/src/client/ping-result-enum.ts
14895
+ var TimedOut = 0;
14896
+ var Success = 1;
14897
+
15008
14898
  // ../zero-client/src/client/query-manager.ts
15009
14899
  var QueryManager = class {
15010
14900
  #clientID;
@@ -15259,10 +15149,10 @@ function isAuthError(ex) {
15259
15149
  return isServerError(ex) && isAuthErrorKind(ex.kind);
15260
15150
  }
15261
15151
  function isAuthErrorKind(kind) {
15262
- return kind === "AuthInvalidated" /* AuthInvalidated */ || kind === "Unauthorized" /* Unauthorized */;
15152
+ return kind === AuthInvalidated || kind === Unauthorized;
15263
15153
  }
15264
15154
  function isServerOverloadedError(ex) {
15265
- return isServerError(ex) && ex.errorBody.kind === "ServerOverloaded" /* ServerOverloaded */ ? ex.errorBody : void 0;
15155
+ return isServerError(ex) && ex.errorBody.kind === ServerOverloaded ? ex.errorBody : void 0;
15266
15156
  }
15267
15157
 
15268
15158
  // ../zero-client/src/client/server-option.ts
@@ -15698,7 +15588,7 @@ var Zero = class {
15698
15588
  #closeAbortController = new AbortController();
15699
15589
  #visibilityWatcher;
15700
15590
  // We use an accessor pair to allow the subclass to override the setter.
15701
- #connectionState = 0 /* Disconnected */;
15591
+ #connectionState = Disconnected;
15702
15592
  #setConnectionState(state) {
15703
15593
  if (state === this.#connectionState) {
15704
15594
  return;
@@ -15884,7 +15774,7 @@ var Zero = class {
15884
15774
  }
15885
15775
  }
15886
15776
  #sendChangeDesiredQueries(msg) {
15887
- if (this.#socket && this.#connectionState === 2 /* Connected */) {
15777
+ if (this.#socket && this.#connectionState === Connected) {
15888
15778
  send(this.#socket, msg);
15889
15779
  }
15890
15780
  }
@@ -15981,7 +15871,7 @@ var Zero = class {
15981
15871
  */
15982
15872
  close() {
15983
15873
  const lc = this.#lc.withContext("close");
15984
- if (this.#connectionState !== 0 /* Disconnected */) {
15874
+ if (this.#connectionState !== Disconnected) {
15985
15875
  this.#disconnect(lc, {
15986
15876
  client: "ClientClosed"
15987
15877
  });
@@ -16062,7 +15952,7 @@ var Zero = class {
16062
15952
  // An error on the connection is fatal for the connection.
16063
15953
  async #handleErrorMessage(lc, downMessage) {
16064
15954
  const [, { kind, message }] = downMessage;
16065
- if (kind === "MutationRateLimited" /* MutationRateLimited */) {
15955
+ if (kind === MutationRateLimited) {
16066
15956
  this.#lastMutationIDSent = NULL_LAST_MUTATION_ID_SENT;
16067
15957
  lc.error?.("Mutation rate limited", { message });
16068
15958
  return;
@@ -16073,15 +15963,15 @@ var Zero = class {
16073
15963
  lc.debug?.("Rejecting connect resolver due to error", error);
16074
15964
  this.#connectResolver.reject(error);
16075
15965
  this.#disconnect(lc, { server: kind });
16076
- if (kind === "VersionNotSupported" /* VersionNotSupported */) {
15966
+ if (kind === VersionNotSupported) {
16077
15967
  this.#onUpdateNeeded?.({ type: kind }, message);
16078
- } else if (kind === "SchemaVersionNotSupported" /* SchemaVersionNotSupported */) {
15968
+ } else if (kind === SchemaVersionNotSupported) {
16079
15969
  await this.#rep.disableClientGroup();
16080
15970
  this.#onUpdateNeeded?.({ type: "SchemaVersionNotSupported" }, message);
16081
- } else if (kind === "ClientNotFound" /* ClientNotFound */) {
15971
+ } else if (kind === ClientNotFound) {
16082
15972
  await this.#rep.disableClientGroup();
16083
15973
  this.#onClientStateNotFound?.(onClientStateNotFoundServerReason(message));
16084
- } else if (kind === "InvalidConnectionRequestLastMutationID" /* InvalidConnectionRequestLastMutationID */ || kind === "InvalidConnectionRequestBaseCookie" /* InvalidConnectionRequestBaseCookie */) {
15974
+ } else if (kind === InvalidConnectionRequestLastMutationID || kind === InvalidConnectionRequestBaseCookie) {
16085
15975
  await dropDatabase(this.#rep.idbName);
16086
15976
  reloadWithReason(lc, this.#reload, serverAheadReloadReason(kind));
16087
15977
  }
@@ -16152,7 +16042,7 @@ var Zero = class {
16152
16042
  ]);
16153
16043
  }
16154
16044
  this.#initConnectionQueries = void 0;
16155
- this.#setConnectionState(2 /* Connected */);
16045
+ this.#setConnectionState(Connected);
16156
16046
  this.#connectResolver.resolve();
16157
16047
  }
16158
16048
  /**
@@ -16173,11 +16063,11 @@ var Zero = class {
16173
16063
  */
16174
16064
  async #connect(l) {
16175
16065
  assert(this.#server);
16176
- assert(this.#connectionState === 0 /* Disconnected */);
16066
+ assert(this.#connectionState === Disconnected);
16177
16067
  const wsid = nanoid();
16178
16068
  l = addWebSocketIDToLogContext(wsid, l);
16179
16069
  l.info?.("Connecting...", { navigatorOnline: localNavigator?.onLine });
16180
- this.#setConnectionState(1 /* Connecting */);
16070
+ this.#setConnectionState(Connecting);
16181
16071
  assert(this.#connectStart === void 0);
16182
16072
  const now = Date.now();
16183
16073
  this.#connectStart = now;
@@ -16242,7 +16132,7 @@ var Zero = class {
16242
16132
  }
16243
16133
  }
16244
16134
  #disconnect(l, reason) {
16245
- if (this.#connectionState === 1 /* Connecting */) {
16135
+ if (this.#connectionState === Connecting) {
16246
16136
  this.#connectErrorCount++;
16247
16137
  }
16248
16138
  l.info?.("disconnecting", {
@@ -16257,7 +16147,7 @@ var Zero = class {
16257
16147
  connectErrorCount: this.#connectErrorCount
16258
16148
  });
16259
16149
  switch (this.#connectionState) {
16260
- case 2 /* Connected */: {
16150
+ case Connected: {
16261
16151
  if (this.#connectStart !== void 0) {
16262
16152
  l.error?.(
16263
16153
  "disconnect() called while connected but connect start time is defined. This should not happen."
@@ -16265,7 +16155,7 @@ var Zero = class {
16265
16155
  }
16266
16156
  break;
16267
16157
  }
16268
- case 1 /* Connecting */: {
16158
+ case Connecting: {
16269
16159
  this.#metrics.lastConnectError.set(getLastConnectErrorValue(reason));
16270
16160
  this.#metrics.timeToConnectMs.set(DID_NOT_CONNECT_VALUE);
16271
16161
  this.#metrics.setConnectError(reason);
@@ -16281,14 +16171,14 @@ var Zero = class {
16281
16171
  }
16282
16172
  break;
16283
16173
  }
16284
- case 0 /* Disconnected */:
16174
+ case Disconnected:
16285
16175
  l.error?.("disconnect() called while disconnected");
16286
16176
  break;
16287
16177
  }
16288
16178
  this.#socketResolver = resolver8();
16289
16179
  l.debug?.("Creating new connect resolver");
16290
16180
  this.#connectResolver = resolver8();
16291
- this.#setConnectionState(0 /* Disconnected */);
16181
+ this.#setConnectionState(Disconnected);
16292
16182
  this.#messageCount = 0;
16293
16183
  this.#connectStart = void 0;
16294
16184
  this.#connectedAt = 0;
@@ -16322,9 +16212,9 @@ var Zero = class {
16322
16212
  const lc = this.#lc;
16323
16213
  lc.info?.(
16324
16214
  "poke error, disconnecting?",
16325
- this.#connectionState !== 0 /* Disconnected */
16215
+ this.#connectionState !== Disconnected
16326
16216
  );
16327
- if (this.#connectionState !== 0 /* Disconnected */) {
16217
+ if (this.#connectionState !== Disconnected) {
16328
16218
  this.#disconnect(lc, {
16329
16219
  client: "UnexpectedBaseCookie"
16330
16220
  });
@@ -16365,14 +16255,14 @@ var Zero = class {
16365
16255
  const m = req.mutations[i];
16366
16256
  const timestamp = now - Math.round(performance.now() - m.timestamp);
16367
16257
  const zeroM = m.name === CRUD_MUTATION_NAME ? {
16368
- type: "crud" /* CRUD */,
16258
+ type: CRUD,
16369
16259
  timestamp,
16370
16260
  id: m.id,
16371
16261
  clientID: m.clientID,
16372
16262
  name: m.name,
16373
16263
  args: [m.args]
16374
16264
  } : {
16375
- type: "custom" /* Custom */,
16265
+ type: Custom,
16376
16266
  timestamp,
16377
16267
  id: m.id,
16378
16268
  clientID: m.clientID,
@@ -16436,7 +16326,7 @@ var Zero = class {
16436
16326
  backoffMs = RUN_LOOP_INTERVAL_MS;
16437
16327
  try {
16438
16328
  switch (this.#connectionState) {
16439
- case 0 /* Disconnected */: {
16329
+ case Disconnected: {
16440
16330
  if (this.#visibilityWatcher.visibilityState === "hidden") {
16441
16331
  this.#metrics.setDisconnectedWaitingForVisible();
16442
16332
  this.#totalToConnectStart = void 0;
@@ -16460,11 +16350,11 @@ var Zero = class {
16460
16350
  this.#setOnline(true);
16461
16351
  break;
16462
16352
  }
16463
- case 1 /* Connecting */:
16353
+ case Connecting:
16464
16354
  lc.error?.("unreachable");
16465
16355
  gotError = true;
16466
16356
  break;
16467
- case 2 /* Connected */: {
16357
+ case Connected: {
16468
16358
  const controller = new AbortController();
16469
16359
  this.#abortPingTimeout = () => controller.abort();
16470
16360
  const [pingTimeoutPromise, pingTimeoutAborted] = sleepWithAbort(
@@ -16472,11 +16362,8 @@ var Zero = class {
16472
16362
  controller.signal
16473
16363
  );
16474
16364
  this.#rejectMessageError = resolver8();
16475
- let RaceCases;
16476
- ((RaceCases2) => {
16477
- RaceCases2[RaceCases2["Ping"] = 0] = "Ping";
16478
- RaceCases2[RaceCases2["Hidden"] = 2] = "Hidden";
16479
- })(RaceCases || (RaceCases = {}));
16365
+ const PING = 0;
16366
+ const HIDDEN = 2;
16480
16367
  const raceResult = await promiseRace([
16481
16368
  pingTimeoutPromise,
16482
16369
  pingTimeoutAborted,
@@ -16489,17 +16376,17 @@ var Zero = class {
16489
16376
  break;
16490
16377
  }
16491
16378
  switch (raceResult) {
16492
- case 0 /* Ping */: {
16379
+ case PING: {
16493
16380
  const pingResult = await this.#ping(
16494
16381
  lc,
16495
16382
  this.#rejectMessageError.promise
16496
16383
  );
16497
- if (pingResult === 0 /* TimedOut */) {
16384
+ if (pingResult === TimedOut) {
16498
16385
  gotError = true;
16499
16386
  }
16500
16387
  break;
16501
16388
  }
16502
- case 2 /* Hidden */:
16389
+ case HIDDEN:
16503
16390
  this.#disconnect(lc, {
16504
16391
  client: "Hidden"
16505
16392
  });
@@ -16510,7 +16397,7 @@ var Zero = class {
16510
16397
  }
16511
16398
  }
16512
16399
  } catch (ex) {
16513
- if (this.#connectionState !== 2 /* Connected */) {
16400
+ if (this.#connectionState !== Connected) {
16514
16401
  lc.error?.("Failed to connect", ex, {
16515
16402
  lmid: this.#lastMutationIDReceived,
16516
16403
  baseCookie: this.#connectCookie
@@ -16579,20 +16466,17 @@ var Zero = class {
16579
16466
  const pullResponseResolver = resolver8();
16580
16467
  this.#pendingPullsByRequestID.set(requestID, pullResponseResolver);
16581
16468
  try {
16582
- let RaceCases;
16583
- ((RaceCases2) => {
16584
- RaceCases2[RaceCases2["Timeout"] = 0] = "Timeout";
16585
- RaceCases2[RaceCases2["Response"] = 1] = "Response";
16586
- })(RaceCases || (RaceCases = {}));
16469
+ const TIMEOUT = 0;
16470
+ const RESPONSE = 1;
16587
16471
  const raceResult = await promiseRace([
16588
16472
  sleep(PULL_TIMEOUT_MS),
16589
16473
  pullResponseResolver.promise
16590
16474
  ]);
16591
16475
  switch (raceResult) {
16592
- case 0 /* Timeout */:
16476
+ case TIMEOUT:
16593
16477
  lc.debug?.("Mutation recovery pull timed out");
16594
16478
  throw new Error("Pull timed out");
16595
- case 1 /* Response */: {
16479
+ case RESPONSE: {
16596
16480
  lc.debug?.("Returning mutation recovery pull response");
16597
16481
  const response = await pullResponseResolver.promise;
16598
16482
  return {
@@ -16654,10 +16538,10 @@ var Zero = class {
16654
16538
  this.#disconnect(l, {
16655
16539
  client: "PingTimeout"
16656
16540
  });
16657
- return 0 /* TimedOut */;
16541
+ return TimedOut;
16658
16542
  }
16659
16543
  l.debug?.("ping succeeded in", delta, "ms");
16660
- return 1 /* Success */;
16544
+ return Success;
16661
16545
  }
16662
16546
  // Sends a set of metrics to the server. Throws unless the server
16663
16547
  // returns 200.
@@ -16750,4 +16634,4 @@ export {
16750
16634
  escapeLike,
16751
16635
  Zero
16752
16636
  };
16753
- //# sourceMappingURL=chunk-FEVIDCUL.js.map
16637
+ //# sourceMappingURL=chunk-JWWOECJ3.js.map