@rocicorp/zero 1.8.0 → 1.9.0-canary.1

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 (179) hide show
  1. package/out/shared/src/cache.d.ts +8 -1
  2. package/out/shared/src/cache.d.ts.map +1 -1
  3. package/out/shared/src/cache.js +25 -9
  4. package/out/shared/src/cache.js.map +1 -1
  5. package/out/shared/src/objects.d.ts +6 -1
  6. package/out/shared/src/objects.d.ts.map +1 -1
  7. package/out/shared/src/objects.js +19 -4
  8. package/out/shared/src/objects.js.map +1 -1
  9. package/out/z2s/src/compiler.d.ts.map +1 -1
  10. package/out/z2s/src/compiler.js +1 -22
  11. package/out/z2s/src/compiler.js.map +1 -1
  12. package/out/zero/package.js +2 -19
  13. package/out/zero/package.js.map +1 -1
  14. package/out/zero-cache/src/config/zero-config.d.ts +4 -0
  15. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  16. package/out/zero-cache/src/config/zero-config.js +21 -6
  17. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  18. package/out/zero-cache/src/custom/fetch.js +1 -1
  19. package/out/zero-cache/src/custom/fetch.js.map +1 -1
  20. package/out/zero-cache/src/custom-queries/transform-query.d.ts +6 -0
  21. package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +1 -1
  22. package/out/zero-cache/src/custom-queries/transform-query.js +8 -0
  23. package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -1
  24. package/out/zero-cache/src/db/migration-lite.d.ts.map +1 -1
  25. package/out/zero-cache/src/db/migration-lite.js +5 -2
  26. package/out/zero-cache/src/db/migration-lite.js.map +1 -1
  27. package/out/zero-cache/src/db/migration.d.ts.map +1 -1
  28. package/out/zero-cache/src/db/migration.js +3 -1
  29. package/out/zero-cache/src/db/migration.js.map +1 -1
  30. package/out/zero-cache/src/db/sqlite-corruption.d.ts +11 -0
  31. package/out/zero-cache/src/db/sqlite-corruption.d.ts.map +1 -0
  32. package/out/zero-cache/src/db/sqlite-corruption.js +191 -0
  33. package/out/zero-cache/src/db/sqlite-corruption.js.map +1 -0
  34. package/out/zero-cache/src/server/anonymous-otel-start.d.ts +1 -1
  35. package/out/zero-cache/src/server/anonymous-otel-start.js.map +1 -1
  36. package/out/zero-cache/src/server/backup-watermark-reader.js +1 -1
  37. package/out/zero-cache/src/server/backup-watermark-reader.js.map +1 -1
  38. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  39. package/out/zero-cache/src/server/change-streamer.js +7 -2
  40. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  41. package/out/zero-cache/src/server/logging.d.ts +8 -0
  42. package/out/zero-cache/src/server/logging.d.ts.map +1 -1
  43. package/out/zero-cache/src/server/logging.js +27 -5
  44. package/out/zero-cache/src/server/logging.js.map +1 -1
  45. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  46. package/out/zero-cache/src/server/main.js +6 -1
  47. package/out/zero-cache/src/server/main.js.map +1 -1
  48. package/out/zero-cache/src/server/mutator.js +1 -1
  49. package/out/zero-cache/src/server/mutator.js.map +1 -1
  50. package/out/zero-cache/src/server/otel-log-sink.d.ts +7 -1
  51. package/out/zero-cache/src/server/otel-log-sink.d.ts.map +1 -1
  52. package/out/zero-cache/src/server/otel-log-sink.js +7 -2
  53. package/out/zero-cache/src/server/otel-log-sink.js.map +1 -1
  54. package/out/zero-cache/src/server/reaper.js +1 -1
  55. package/out/zero-cache/src/server/reaper.js.map +1 -1
  56. package/out/zero-cache/src/server/replicator.d.ts.map +1 -1
  57. package/out/zero-cache/src/server/replicator.js +11 -1
  58. package/out/zero-cache/src/server/replicator.js.map +1 -1
  59. package/out/zero-cache/src/server/shadow-syncer.js +1 -1
  60. package/out/zero-cache/src/server/shadow-syncer.js.map +1 -1
  61. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  62. package/out/zero-cache/src/server/syncer.js +6 -1
  63. package/out/zero-cache/src/server/syncer.js.map +1 -1
  64. package/out/zero-cache/src/services/change-source/common/replica-schema.d.ts.map +1 -1
  65. package/out/zero-cache/src/services/change-source/common/replica-schema.js +8 -5
  66. package/out/zero-cache/src/services/change-source/common/replica-schema.js.map +1 -1
  67. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +36 -2
  68. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  69. package/out/zero-cache/src/services/change-source/pg/change-source.js +76 -33
  70. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  71. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +15 -0
  72. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
  73. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +41 -10
  74. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
  75. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts +21 -0
  76. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts.map +1 -1
  77. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +34 -5
  78. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -1
  79. package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts +2 -2
  80. package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts.map +1 -1
  81. package/out/zero-cache/src/services/change-source/pg/replication-slots.js.map +1 -1
  82. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +61 -87
  83. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts.map +1 -1
  84. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +17 -12
  85. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
  86. package/out/zero-cache/src/services/life-cycle.d.ts +1 -1
  87. package/out/zero-cache/src/services/life-cycle.d.ts.map +1 -1
  88. package/out/zero-cache/src/services/life-cycle.js +15 -3
  89. package/out/zero-cache/src/services/life-cycle.js.map +1 -1
  90. package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
  91. package/out/zero-cache/src/services/litestream/commands.js +26 -23
  92. package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
  93. package/out/zero-cache/src/services/litestream/config.yml +3 -2
  94. package/out/zero-cache/src/services/litestream/vfs-watermark-reader.js +2 -2
  95. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
  96. package/out/zero-cache/src/services/mutagen/mutagen.js +4 -1
  97. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  98. package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
  99. package/out/zero-cache/src/services/replicator/change-processor.js +29 -16
  100. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  101. package/out/zero-cache/src/services/replicator/reporter/recorder.d.ts +1 -1
  102. package/out/zero-cache/src/services/replicator/reporter/recorder.d.ts.map +1 -1
  103. package/out/zero-cache/src/services/replicator/reporter/recorder.js +5 -12
  104. package/out/zero-cache/src/services/replicator/reporter/recorder.js.map +1 -1
  105. package/out/zero-cache/src/services/replicator/write-worker.js +38 -7
  106. package/out/zero-cache/src/services/replicator/write-worker.js.map +1 -1
  107. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  108. package/out/zero-cache/src/services/view-syncer/cvr.js +8 -1
  109. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  110. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  111. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +66 -26
  112. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  113. package/out/zero-cache/src/services/view-syncer/query-covering.d.ts +28 -0
  114. package/out/zero-cache/src/services/view-syncer/query-covering.d.ts.map +1 -0
  115. package/out/zero-cache/src/services/view-syncer/query-covering.js +159 -0
  116. package/out/zero-cache/src/services/view-syncer/query-covering.js.map +1 -0
  117. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
  118. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  119. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +2 -0
  120. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  121. package/out/zero-cache/src/services/view-syncer/view-syncer.js +71 -1
  122. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  123. package/out/zero-cache/src/types/lite.d.ts.map +1 -1
  124. package/out/zero-cache/src/types/lite.js +4 -1
  125. package/out/zero-cache/src/types/lite.js.map +1 -1
  126. package/out/zero-cache/src/types/pg.d.ts +18 -0
  127. package/out/zero-cache/src/types/pg.d.ts.map +1 -1
  128. package/out/zero-cache/src/types/pg.js +50 -0
  129. package/out/zero-cache/src/types/pg.js.map +1 -1
  130. package/out/zero-cache/src/workers/syncer.d.ts +1 -1
  131. package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
  132. package/out/zero-cache/src/workers/syncer.js +1 -0
  133. package/out/zero-cache/src/workers/syncer.js.map +1 -1
  134. package/out/zero-client/src/client/crud.d.ts.map +1 -1
  135. package/out/zero-client/src/client/crud.js +3 -4
  136. package/out/zero-client/src/client/crud.js.map +1 -1
  137. package/out/zero-client/src/client/version.js +1 -1
  138. package/out/zero-client/src/client/zero.d.ts +6 -7
  139. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  140. package/out/zero-client/src/client/zero.js +125 -85
  141. package/out/zero-client/src/client/zero.js.map +1 -1
  142. package/out/zero-schema/src/builder/relationship-builder.d.ts.map +1 -1
  143. package/out/zero-schema/src/builder/relationship-builder.js +3 -2
  144. package/out/zero-schema/src/builder/relationship-builder.js.map +1 -1
  145. package/out/zero-schema/src/builder/schema-builder.d.ts.map +1 -1
  146. package/out/zero-schema/src/builder/schema-builder.js +7 -7
  147. package/out/zero-schema/src/builder/schema-builder.js.map +1 -1
  148. package/out/zero-schema/src/builder/table-builder.d.ts.map +1 -1
  149. package/out/zero-schema/src/builder/table-builder.js +2 -1
  150. package/out/zero-schema/src/builder/table-builder.js.map +1 -1
  151. package/out/zero-server/src/custom.js +10 -3
  152. package/out/zero-server/src/custom.js.map +1 -1
  153. package/out/zero-server/src/schema.d.ts +8 -0
  154. package/out/zero-server/src/schema.d.ts.map +1 -1
  155. package/out/zero-server/src/schema.js +63 -24
  156. package/out/zero-server/src/schema.js.map +1 -1
  157. package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -1
  158. package/out/zql/src/ivm/view-apply-change.js +2 -1
  159. package/out/zql/src/ivm/view-apply-change.js.map +1 -1
  160. package/out/zql/src/mutate/crud.d.ts +10 -8
  161. package/out/zql/src/mutate/crud.d.ts.map +1 -1
  162. package/out/zql/src/mutate/crud.js +3 -4
  163. package/out/zql/src/mutate/crud.js.map +1 -1
  164. package/out/zql/src/query/query-delegate-base.d.ts.map +1 -1
  165. package/out/zql/src/query/query-delegate-base.js +5 -1
  166. package/out/zql/src/query/query-delegate-base.js.map +1 -1
  167. package/out/zqlite/src/db.js +2 -2
  168. package/out/zqlite/src/internal/statement-cache.d.ts +25 -1
  169. package/out/zqlite/src/internal/statement-cache.d.ts.map +1 -1
  170. package/out/zqlite/src/internal/statement-cache.js +48 -18
  171. package/out/zqlite/src/internal/statement-cache.js.map +1 -1
  172. package/out/zqlite/src/query-builder.js +3 -3
  173. package/out/zqlite/src/query-builder.js.map +1 -1
  174. package/out/zqlite/src/resolve-scalar-subqueries.d.ts.map +1 -1
  175. package/out/zqlite/src/resolve-scalar-subqueries.js +13 -1
  176. package/out/zqlite/src/resolve-scalar-subqueries.js.map +1 -1
  177. package/out/zqlite/src/sqlite-cost-model.js +5 -5
  178. package/out/zqlite/src/table-source.js +3 -3
  179. package/package.json +2 -33
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * The current version of Zero.
4
4
  */
5
- var version = "1.8.0";
5
+ var version = "1.9.0-canary.1";
6
6
  //#endregion
7
7
  export { version };
8
8
 
@@ -125,9 +125,8 @@ export declare class Zero<const S extends BaseDefaultSchema = DefaultSchema, MD
125
125
  /**
126
126
  * Executes a query once and returns the results.
127
127
  *
128
- * By default, waits for any pending data to sync before running the query.
129
- * This ensures fresh results from the server. Use `{type: 'unknown'}` to
130
- * run immediately with whatever data is available locally.
128
+ * By default, runs immediately with whatever data is available locally.
129
+ * Use `{type: 'complete'}` to wait for fresh results from the server.
131
130
  *
132
131
  * @param query - The query to execute
133
132
  * @param runOptions - Options controlling query execution
@@ -135,11 +134,11 @@ export declare class Zero<const S extends BaseDefaultSchema = DefaultSchema, MD
135
134
  *
136
135
  * @example
137
136
  * ```ts
138
- * // Wait for server sync
137
+ * // Run with local data only
139
138
  * const users = await zero.run(userQuery);
140
139
  *
141
- * // Run with local data only
142
- * const cachedUsers = await zero.run(userQuery, {type: 'unknown'});
140
+ * // Wait for server sync
141
+ * const freshUsers = await zero.run(userQuery, {type: 'complete'});
143
142
  * ```
144
143
  */
145
144
  run<TTable extends keyof S['tables'] & string, TInput extends ReadonlyJSONValue | undefined, TOutput extends ReadonlyJSONValue | undefined, TReturn>(query: QueryOrQueryRequest<TTable, TInput, TOutput, S, TReturn, C>, runOptions?: RunOptions): Promise<HumanReadable<TReturn>>;
@@ -322,7 +321,7 @@ export declare class OnlineManager extends Subscribable<boolean> {
322
321
  setOnline(online: boolean): void;
323
322
  get online(): boolean;
324
323
  }
325
- export declare function createSocket(rep: ReplicacheImpl, queryManager: QueryManager, deleteClientsManager: DeleteClientsManager, socketOrigin: WSString, baseCookie: NullableVersion, clientID: string, clientGroupID: string, clientSchema: ClientSchema, userID: string | undefined, auth: string | undefined, lmid: number, wsid: string, debugPerf: boolean, lc: LogContext, userPushURL: string | undefined, userPushHeaders: Record<string, string> | undefined, userQueryURL: string | undefined, userQueryHeaders: Record<string, string> | undefined, additionalConnectParams: Record<string, string> | undefined, activeClientsManager: Pick<ActiveClientsManager, 'activeClients'>, maxHeaderLength?: number): Promise<[
324
+ export declare function createSocket(rep: ReplicacheImpl, queryManager: QueryManager, deleteClientsManager: DeleteClientsManager, socketOrigin: WSString, baseCookie: NullableVersion, clientID: string, clientGroupID: string, clientSchema: ClientSchema, userID: string | undefined, auth: string | undefined, lmid: number, wsid: string, debugPerf: boolean, lc: LogContext, userPushURL: string | undefined, userPushHeaders: Record<string, string> | undefined, userQueryURL: string | undefined, userQueryHeaders: Record<string, string> | undefined, additionalConnectParams: Record<string, string> | undefined, activeClientsManager: Pick<ActiveClientsManager, 'activeClients'>, maxHeaderLength?: number, onEvent?: (event: string) => void): Promise<[
326
325
  WebSocket,
327
326
  Map<string, UpQueriesPatchOp> | undefined,
328
327
  DeleteClientsBody | undefined
@@ -1 +1 @@
1
- {"version":3,"file":"zero.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/client/zero.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zero.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/client/zero.ts"],"names":[],"mappings":"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"}
@@ -37,7 +37,7 @@ import { isClientMetric } from "../../../zql/src/query/metrics-delegate.js";
37
37
  import { nanoid } from "../util/nanoid.js";
38
38
  import { ActiveClientsManager } from "./active-clients-manager.js";
39
39
  import { AbruptClose, CleanClose, ClientClosed, ConnectTimeout, Hidden, Internal, InvalidMessage as InvalidMessage$1, NoSocketOrigin, PingTimeout, PullTimeout, UnexpectedBaseCookie } from "./client-error-kind-enum.js";
40
- import { ClientError, NO_STATUS_TRANSITION, getBackoffParams, getErrorConnectionTransition, isAuthError, isClientError, isServerError } from "./error.js";
40
+ import { ClientError, NO_STATUS_TRANSITION, getBackoffParams, getErrorConnectionTransition, isAuthError, isClientError, isServerError, isZeroError } from "./error.js";
41
41
  import { ConnectionManager, throwIfConnectionError } from "./connection-manager.js";
42
42
  import { ConnectionImpl } from "./connection.js";
43
43
  import { IVMSourceBranch } from "./ivm-branch.js";
@@ -61,6 +61,11 @@ import { PokeHandler } from "./zero-poke-handler.js";
61
61
  import { ZeroRep, fromReplicacheAuthToken, toReplicacheAuthToken } from "./zero-rep.js";
62
62
  import { resolver } from "@rocicorp/resolver";
63
63
  import { LogContext } from "@rocicorp/logger";
64
+ function connectionReadyResolver() {
65
+ const ready = resolver();
66
+ ready.promise.catch(() => {});
67
+ return ready;
68
+ }
64
69
  var RUN_LOOP_INTERVAL_MS = 5e3;
65
70
  /**
66
71
  * Default timeout for ping operations. Controls both:
@@ -178,12 +183,8 @@ var Zero = class Zero {
178
183
  #lastMutationIDReceived = 0;
179
184
  #socket = void 0;
180
185
  #socketResolver = resolver();
181
- /**
182
- * Utility promise that resolves when the socket transitions to connected.
183
- * It rejects if we hit an error or timeout before the connected message.
184
- * Used by push/pull helpers to queue work until the connection is usable.
185
- */
186
- #connectResolver = resolver();
186
+ #connectionReadyResolver = connectionReadyResolver();
187
+ #currentConnectAttempt;
187
188
  #closeAbortController = new AbortController();
188
189
  #visibilityWatcher;
189
190
  #connectionManager;
@@ -427,9 +428,8 @@ var Zero = class Zero {
427
428
  /**
428
429
  * Executes a query once and returns the results.
429
430
  *
430
- * By default, waits for any pending data to sync before running the query.
431
- * This ensures fresh results from the server. Use `{type: 'unknown'}` to
432
- * run immediately with whatever data is available locally.
431
+ * By default, runs immediately with whatever data is available locally.
432
+ * Use `{type: 'complete'}` to wait for fresh results from the server.
433
433
  *
434
434
  * @param query - The query to execute
435
435
  * @param runOptions - Options controlling query execution
@@ -437,11 +437,11 @@ var Zero = class Zero {
437
437
  *
438
438
  * @example
439
439
  * ```ts
440
- * // Wait for server sync
440
+ * // Run with local data only
441
441
  * const users = await zero.run(userQuery);
442
442
  *
443
- * // Run with local data only
444
- * const cachedUsers = await zero.run(userQuery, {type: 'unknown'});
443
+ * // Wait for server sync
444
+ * const freshUsers = await zero.run(userQuery, {type: 'complete'});
445
445
  * ```
446
446
  */
447
447
  run(query, runOptions) {
@@ -713,7 +713,6 @@ var Zero = class Zero {
713
713
  kind: InvalidMessage$1,
714
714
  message: "A WebSocket message exceeded the server message size limit. This is usually caused by a mutation's args containing a large value such as a base64-encoded image. Consider uploading large files to object storage and storing only the URL in Zero." + (this.#recentSentMessages.length > 0 ? "\nRecent sent messages:\n" + JSON.stringify(this.#recentSentMessages, null, 2) : "")
715
715
  });
716
- this.#connectResolver.reject(messageTooLargeError);
717
716
  this.#disconnect(lc, messageTooLargeError);
718
717
  await this.#rep.disableClientGroup();
719
718
  this.#onClientStateNotFound(InvalidMessage, messageTooLargeError.message);
@@ -725,7 +724,6 @@ var Zero = class Zero {
725
724
  kind: AbruptClose,
726
725
  message: "WebSocket connection closed abruptly"
727
726
  });
728
- this.#connectResolver.reject(closeError);
729
727
  this.#disconnect(lc, closeError);
730
728
  }
731
729
  } catch (e) {
@@ -734,7 +732,6 @@ var Zero = class Zero {
734
732
  kind: Internal,
735
733
  message: getErrorMessage(e)
736
734
  }, { cause: e });
737
- this.#connectResolver.reject(internalError);
738
735
  this.#disconnect(lc, internalError);
739
736
  }
740
737
  };
@@ -748,8 +745,6 @@ var Zero = class Zero {
748
745
  lc.info?.(`${kind}: ${message}}`);
749
746
  const error = new ProtocolError(downMessage[1]);
750
747
  lc.error?.(`${error.kind}:\n\n${error.errorBody.message}`, error);
751
- lc.debug?.("Rejecting connect resolver due to error", error);
752
- this.#connectResolver.reject(error);
753
748
  this.#disconnect(lc, error);
754
749
  if (kind === "VersionNotSupported") this.#onUpdateNeeded({
755
750
  type: kind,
@@ -770,9 +765,11 @@ var Zero = class Zero {
770
765
  }
771
766
  }
772
767
  async #handleConnectedMessage(lc, connectedMessage) {
768
+ const attempt = must(this.#currentConnectAttempt, "Connected message received without an active connection attempt");
773
769
  const now = Date.now();
774
770
  const [, connectBody] = connectedMessage;
775
771
  lc = addWebSocketIDToLogContext(connectBody.wsid, lc);
772
+ this.#addConnectEvent(lc, attempt, "processing the server acknowledgement");
776
773
  if (this.#connectedCount === 0) this.#checkConnectivity("firstConnect");
777
774
  else if (this.#connectErrorCount > 0) this.#checkConnectivity("connectAfterError");
778
775
  this.#connectedCount++;
@@ -838,29 +835,26 @@ var Zero = class Zero {
838
835
  this.#initConnectionQueries = void 0;
839
836
  maybeSendDeletedClients();
840
837
  this.#connectionManager.connected();
841
- this.#connectResolver.resolve();
838
+ attempt.connected.resolve();
842
839
  }
843
840
  /**
844
841
  * Starts a new connection. This will create the WebSocket that does the HTTP
845
842
  * request to the server.
846
843
  *
847
- * {@link #connect} will throw an assertion error if the
844
+ * {@link #connectAttempt} will throw an assertion error if the
848
845
  * {@link #connectionManager} status is not {@link ConnectionManagerState.Disconnected}
849
846
  * or {@link ConnectionManagerState.Connecting}.
850
847
  * Callers MUST check the connection status before calling this method and log
851
848
  * an error as needed.
852
849
  *
853
- * The function will resolve once the socket is connected. If you need to know
854
- * when a connection has been established, as in we have received the
855
- * {@link ConnectedMessage}, you should await the {@link #connectResolver}
856
- * promise. The {@link #connectResolver} promise rejects if an error message
857
- * is received before the connected message is received or if the connection
858
- * attempt times out.
850
+ * The returned promise resolves after receiving the {@link ConnectedMessage}
851
+ * and rejects if setup, the socket, or the connection handshake fails.
859
852
  */
860
- async #connect(lc, additionalConnectParams) {
853
+ async #connectAttempt(lc, additionalConnectParams, attempt) {
861
854
  if (this.closed) return;
862
855
  assert(this.#server, "No server provided");
863
- assert(this.#connectionManager.is("disconnected") || this.#connectionManager.is("connecting"), "connect() called from invalid state: " + this.#connectionManager.state.name);
856
+ const socketOrigin = toWSString(this.#server);
857
+ assert(this.#connectionManager.is("disconnected") || this.#connectionManager.is("connecting"), "connectAttempt() called from invalid state: " + this.#connectionManager.state.name);
864
858
  const wsid = nanoid();
865
859
  lc = addWebSocketIDToLogContext(wsid, lc);
866
860
  lc.info?.("Connecting...", { navigatorOnline: localNavigator?.onLine });
@@ -869,24 +863,24 @@ var Zero = class Zero {
869
863
  const now = Date.now();
870
864
  this.#connectStart = now;
871
865
  if (this.#totalToConnectStart === void 0) this.#totalToConnectStart = now;
872
- if (this.closed) return;
873
- this.#connectCookie = parse(await this.#rep.cookie, nullableVersionSchema, "passthrough");
874
- if (this.closed) return;
875
- const timeoutID = setTimeout(() => {
876
- lc.debug?.("Rejecting connect resolver due to timeout");
877
- const timeoutError = new ClientError({
878
- kind: ConnectTimeout,
879
- message: `Connection attempt timed out after ${CONNECT_TIMEOUT_MS / 1e3} seconds`
880
- });
881
- this.#connectResolver.reject(timeoutError);
882
- this.#disconnect(lc, timeoutError);
883
- }, CONNECT_TIMEOUT_MS);
884
- const abortHandler = () => {
885
- clearTimeout(timeoutID);
886
- };
887
- this.#closeAbortController.signal.addEventListener("abort", abortHandler);
888
- const [ws, initConnectionQueries, deletedClients] = await createSocket(this.#rep, this.#queryManager, this.#deleteClientsManager, toWSString(this.#server), this.#connectCookie, this.clientID, await this.clientGroupID, this.#clientSchema, this.userID, fromReplicacheAuthToken(this.#rep.auth), this.#lastMutationIDReceived, wsid, this.#options.logLevel === "debug", lc, this.#options.mutateURL, this.#options.mutateHeaders, this.#options.queryURL ?? this.#options.getQueriesURL, this.#options.queryHeaders, additionalConnectParams, await this.#activeClientsManager, this.#options.maxHeaderLength);
889
- if (this.closed) return;
866
+ const { signal } = attempt.controller;
867
+ this.#addConnectEvent(lc, attempt, "reading the cookie");
868
+ const connectCookie = parse(await this.#rep.cookie, nullableVersionSchema, "passthrough");
869
+ this.#addConnectEvent(lc, attempt, "reading the client group ID");
870
+ const clientGroupID = await this.clientGroupID;
871
+ this.#addConnectEvent(lc, attempt, "initializing active clients");
872
+ const activeClientsManager = await this.#activeClientsManager;
873
+ if (signal.aborted) throw signal.reason;
874
+ const [ws, initConnectionQueries, deletedClients] = await createSocket(this.#rep, this.#queryManager, this.#deleteClientsManager, socketOrigin, connectCookie, this.clientID, clientGroupID, this.#clientSchema, this.userID, fromReplicacheAuthToken(this.#rep.auth), this.#lastMutationIDReceived, wsid, this.#options.logLevel === "debug", lc, this.#options.mutateURL, this.#options.mutateHeaders, this.#options.queryURL ?? this.#options.getQueriesURL, this.#options.queryHeaders, additionalConnectParams, activeClientsManager, this.#options.maxHeaderLength, (event) => this.#addConnectEvent(lc, attempt, event));
875
+ if (signal.aborted) {
876
+ ws.close();
877
+ throw signal.reason;
878
+ }
879
+ if (this.closed) {
880
+ ws.close();
881
+ return;
882
+ }
883
+ this.#connectCookie = connectCookie;
890
884
  this.#initConnectionQueries = initConnectionQueries;
891
885
  this.#deletedClients = deletedClients;
892
886
  ws.addEventListener("message", this.#onMessage);
@@ -894,17 +888,19 @@ var Zero = class Zero {
894
888
  ws.addEventListener("close", this.#onClose);
895
889
  this.#socket = ws;
896
890
  this.#socketResolver.resolve(ws);
897
- try {
898
- lc.debug?.("Waiting for connection to be acknowledged");
899
- await this.#connectResolver.promise;
900
- this.#mutationTracker.onConnected(this.#lastMutationIDReceived);
901
- this.#rep.push().catch(() => {});
902
- } finally {
903
- clearTimeout(timeoutID);
904
- this.#closeAbortController.signal.removeEventListener("abort", abortHandler);
905
- }
891
+ this.#addConnectEvent(lc, attempt, "waiting for the server acknowledgement");
892
+ lc.debug?.("Waiting for connection to be acknowledged");
893
+ await attempt.connected.promise;
894
+ if (signal.aborted) throw signal.reason;
895
+ this.#mutationTracker.onConnected(this.#lastMutationIDReceived);
896
+ this.#rep.push().catch(() => {});
897
+ }
898
+ #addConnectEvent(lc, attempt, event) {
899
+ attempt.events.push([/* @__PURE__ */ new Date(), event]);
900
+ lc.debug?.("Connect event", event);
906
901
  }
907
902
  #disconnect(lc, reason, closeCode) {
903
+ this.#currentConnectAttempt?.controller.abort(reason);
908
904
  if (shouldReportConnectError(reason)) {
909
905
  this.#connectErrorCount++;
910
906
  this.#metrics.lastConnectError.set(getLastConnectErrorValue(reason));
@@ -938,8 +934,6 @@ var Zero = class Zero {
938
934
  default: unreachable(connectionStatus);
939
935
  }
940
936
  this.#socketResolver = resolver();
941
- lc.debug?.("Creating new connect resolver");
942
- this.#connectResolver = resolver();
943
937
  this.#messageCount = 0;
944
938
  this.#connectStart = void 0;
945
939
  this.#connectedAt = 0;
@@ -1010,7 +1004,7 @@ var Zero = class Zero {
1010
1004
  }
1011
1005
  async #pusher(req, requestID) {
1012
1006
  assert(req.pushVersion === 1, "Expected pushVersion 1");
1013
- await this.#connectResolver.promise;
1007
+ await this.#connectionReadyResolver.promise;
1014
1008
  const lc = this.#lc.withContext("requestID", requestID);
1015
1009
  lc.debug?.(`pushing ${req.mutations.length} mutations`);
1016
1010
  assert(this.#socket, "Expected socket to be connected for push");
@@ -1098,8 +1092,45 @@ var Zero = class Zero {
1098
1092
  break;
1099
1093
  }
1100
1094
  if (reloadScheduled()) break;
1101
- await this.#connect(lc, additionalConnectParams);
1102
- additionalConnectParams = void 0;
1095
+ const ready = this.#connectionReadyResolver;
1096
+ assert(this.#currentConnectAttempt === void 0, "Connection attempt already active");
1097
+ const attempt = {
1098
+ controller: new AbortController(),
1099
+ connected: resolver(),
1100
+ events: []
1101
+ };
1102
+ this.#currentConnectAttempt = attempt;
1103
+ this.#addConnectEvent(lc, attempt, "starting the connection");
1104
+ const canceled = resolver();
1105
+ const abortHandler = () => canceled.reject(attempt.controller.signal.reason);
1106
+ attempt.controller.signal.addEventListener("abort", abortHandler, { once: true });
1107
+ const timeoutID = setTimeout(() => {
1108
+ lc.debug?.("Connection attempt timed out");
1109
+ this.#disconnect(lc, new ClientError({
1110
+ kind: ConnectTimeout,
1111
+ message: `Connection attempt timed out after ${CONNECT_TIMEOUT_MS / 1e3} seconds. Connect events: ${JSON.stringify(attempt.events)}`
1112
+ }));
1113
+ }, CONNECT_TIMEOUT_MS);
1114
+ try {
1115
+ try {
1116
+ await Promise.race([this.#connectAttempt(lc, additionalConnectParams, attempt), canceled.promise]);
1117
+ } catch (ex) {
1118
+ const error = isZeroError(ex) ? ex : new ClientError({
1119
+ kind: Internal,
1120
+ message: getErrorMessage(ex)
1121
+ }, { cause: ex });
1122
+ if (!attempt.controller.signal.aborted) this.#disconnect(lc, error);
1123
+ ready.reject(error);
1124
+ if (this.#connectionReadyResolver === ready) this.#connectionReadyResolver = connectionReadyResolver();
1125
+ throw error;
1126
+ }
1127
+ ready.resolve();
1128
+ additionalConnectParams = void 0;
1129
+ } finally {
1130
+ clearTimeout(timeoutID);
1131
+ attempt.controller.signal.removeEventListener("abort", abortHandler);
1132
+ if (this.#currentConnectAttempt === attempt) this.#currentConnectAttempt = void 0;
1133
+ }
1103
1134
  throwIfConnectionError(this.#connectionManager.state);
1104
1135
  assert(this.#socket, "Expected socket after reconnection");
1105
1136
  lc = getLogContext();
@@ -1107,32 +1138,37 @@ var Zero = class Zero {
1107
1138
  break;
1108
1139
  }
1109
1140
  case Connected: {
1141
+ const ready = this.#connectionReadyResolver;
1110
1142
  const controller = new AbortController();
1111
1143
  this.#abortPingTimeout = () => controller.abort();
1112
1144
  const [pingTimeoutPromise, pingTimeoutAborted] = sleepWithAbort(this.pingTimeoutMs, controller.signal);
1113
- const raceResult = await promiseRace({
1114
- waitForPing: pingTimeoutPromise,
1115
- waitForPingAborted: pingTimeoutAborted,
1116
- tabHidden: this.#visibilityWatcher.waitForHidden(),
1117
- stateChange: this.#connectionManager.waitForStateChange()
1118
- });
1119
- switch (raceResult.key) {
1120
- case "waitForPing":
1121
- await this.#ping(lc);
1122
- break;
1123
- case "waitForPingAborted": break;
1124
- case "tabHidden": {
1125
- const hiddenError = new ClientError({
1126
- kind: Hidden,
1127
- message: "Connection closed because tab was hidden"
1128
- });
1129
- this.#disconnect(lc, hiddenError);
1130
- break;
1145
+ try {
1146
+ const raceResult = await promiseRace({
1147
+ waitForPing: pingTimeoutPromise,
1148
+ waitForPingAborted: pingTimeoutAborted,
1149
+ tabHidden: this.#visibilityWatcher.waitForHidden(),
1150
+ stateChange: this.#connectionManager.waitForStateChange()
1151
+ });
1152
+ switch (raceResult.key) {
1153
+ case "waitForPing":
1154
+ await this.#ping(lc);
1155
+ break;
1156
+ case "waitForPingAborted": break;
1157
+ case "tabHidden": {
1158
+ const hiddenError = new ClientError({
1159
+ kind: Hidden,
1160
+ message: "Connection closed because tab was hidden"
1161
+ });
1162
+ this.#disconnect(lc, hiddenError);
1163
+ break;
1164
+ }
1165
+ case "stateChange":
1166
+ throwIfConnectionError(raceResult.result);
1167
+ break;
1168
+ default: unreachable(raceResult);
1131
1169
  }
1132
- case "stateChange":
1133
- throwIfConnectionError(raceResult.result);
1134
- break;
1135
- default: unreachable(raceResult);
1170
+ } finally {
1171
+ if (!this.#connectionManager.is("connected") && this.#connectionReadyResolver === ready) this.#connectionReadyResolver = connectionReadyResolver();
1136
1172
  }
1137
1173
  break;
1138
1174
  }
@@ -1213,7 +1249,7 @@ var Zero = class Zero {
1213
1249
  errorMessage: "",
1214
1250
  httpStatusCode: 200
1215
1251
  } };
1216
- await this.#connectResolver.promise;
1252
+ await this.#connectionReadyResolver.promise;
1217
1253
  assert(this.#socket, "Expected socket to be connected for mutation recovery pull");
1218
1254
  lc.debug?.("Pull is for mutation recovery");
1219
1255
  const cookie = parse(req.cookie, nullableVersionSchema, "passthrough");
@@ -1340,7 +1376,7 @@ var Zero = class Zero {
1340
1376
  */
1341
1377
  get inspector() {
1342
1378
  BUNDLE_SIZE: return this.#inspector ??= new Inspector(this.#rep, this.#queryManager, this.#zeroContext, async () => {
1343
- await this.#connectResolver.promise;
1379
+ await this.#connectionReadyResolver.promise;
1344
1380
  return must(this.#socket);
1345
1381
  });
1346
1382
  }
@@ -1388,11 +1424,14 @@ var OnlineManager = class extends Subscribable {
1388
1424
  return this.#online;
1389
1425
  }
1390
1426
  };
1391
- async function createSocket(rep, queryManager, deleteClientsManager, socketOrigin, baseCookie, clientID, clientGroupID, clientSchema, userID, auth, lmid, wsid, debugPerf, lc, userPushURL, userPushHeaders, userQueryURL, userQueryHeaders, additionalConnectParams, activeClientsManager, maxHeaderLength = 1024 * 8) {
1427
+ async function createSocket(rep, queryManager, deleteClientsManager, socketOrigin, baseCookie, clientID, clientGroupID, clientSchema, userID, auth, lmid, wsid, debugPerf, lc, userPushURL, userPushHeaders, userQueryURL, userQueryHeaders, additionalConnectParams, activeClientsManager, maxHeaderLength = 1024 * 8, onEvent) {
1428
+ onEvent?.("reading the profile ID");
1392
1429
  const url = await createConnectionURL(socketOrigin, clientID, clientGroupID, userID, baseCookie, lmid, wsid, rep, debugPerf, additionalConnectParams, lc);
1393
1430
  const WS = mustGetBrowserGlobal("WebSocket");
1394
1431
  const queriesPatchP = rep.query((tx) => queryManager.getQueriesPatch(tx));
1432
+ onEvent?.("reading deleted clients");
1395
1433
  let deletedClients = convertDeletedClientsToBody(await deleteClientsManager.getDeletedClients(), clientGroupID);
1434
+ onEvent?.("reading desired queries");
1396
1435
  let queriesPatch = await queriesPatchP;
1397
1436
  const { activeClients } = activeClientsManager;
1398
1437
  let secProtocol = encodeSecProtocols(["initConnection", {
@@ -1410,6 +1449,7 @@ async function createSocket(rep, queryManager, deleteClientsManager, socketOrigi
1410
1449
  if (secProtocol.length > maxHeaderLength) lc.warn?.(`Encoded auth token length (${secProtocol.length}) exceeds ZeroOptions.maxHeaderLength (${maxHeaderLength}). This may cause connection failures.`);
1411
1450
  queriesPatch = void 0;
1412
1451
  } else deletedClients = void 0;
1452
+ onEvent?.("creating the WebSocket");
1413
1453
  return [
1414
1454
  new WS(url.toString(), secProtocol),
1415
1455
  queriesPatch,