on-zero 0.6.20 → 0.6.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,27 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __copyProps = (to, from, except, desc) => {
8
+ if (from && typeof from === "object" || typeof from === "function") {
9
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
10
+ get: () => from[key],
11
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
12
+ });
13
+ }
14
+ return to;
15
+ };
16
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
+ // If the importer is in node compatibility mode or this is not an ESM
18
+ // file that has been converted to a CommonJS file using a Babel-
19
+ // compatible transform (i.e. "__esModule" has not been set), then set
20
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
22
+ value: mod,
23
+ enumerable: true
24
+ }) : target, mod));
1
25
  var import_zero = require("@rocicorp/zero");
2
26
  var import_vitest = require("vitest");
3
27
  var import_fixtureSchema = require("./fixtureSchema.cjs");
@@ -515,6 +539,69 @@ let storageID = 0;
515
539
  args
516
540
  }) => args.some(arg => String(arg).includes("connect start time is undefined")))).toBe(false);
517
541
  });
542
+ (0, import_vitest.test)("a pull 500 cannot let a timed-out socket construction open on the abandoned attempt", async () => {
543
+ import_vitest.vi.useFakeTimers();
544
+ const lifecycle = [];
545
+ let pullCount = 0;
546
+ const fetch = import_vitest.vi.fn(async (input, init) => {
547
+ const request = recordRequest(input, init);
548
+ pullCount++;
549
+ if (pullCount === 1) {
550
+ return jsonResponse({
551
+ error: "injected pull outage"
552
+ }, {
553
+ status: 500
554
+ });
555
+ }
556
+ return jsonResponse({
557
+ cookie: request.body.cookie,
558
+ unchanged: true
559
+ });
560
+ });
561
+ const transport = (0, import_httpPullTransport.installHttpPullTransport)({
562
+ origin: ORIGIN,
563
+ fetch,
564
+ lifecycle: event => lifecycle.push(event)
565
+ });
566
+ transports.push(transport);
567
+ const first = openRawSocketWithMessages({
568
+ wsid: "before-pull-500"
569
+ });
570
+ await import_vitest.vi.advanceTimersByTimeAsync(1);
571
+ (0, import_vitest.expect)(first.socket.readyState).toBe(first.socket.CLOSED);
572
+ let delayedOpened = false;
573
+ let delayedClosed = 0;
574
+ const delayed = openRawSocketWithMessages({
575
+ wsid: "delayed-reconnect",
576
+ attemptStartedAt: performance.now() - 10001
577
+ });
578
+ delayed.socket.addEventListener("open", () => {
579
+ delayedOpened = true;
580
+ });
581
+ delayed.socket.addEventListener("close", () => {
582
+ delayedClosed++;
583
+ });
584
+ await import_vitest.vi.advanceTimersByTimeAsync(1);
585
+ (0, import_vitest.expect)(delayedOpened).toBe(false);
586
+ (0, import_vitest.expect)(delayedClosed).toBe(1);
587
+ (0, import_vitest.expect)(lifecycle.filter(event => event.type === "open")).toHaveLength(1);
588
+ const aborted = lifecycle.find(event => event.type === "aborted");
589
+ (0, import_vitest.expect)(aborted).toMatchObject({
590
+ pageID: transport.pageID,
591
+ transportID: transport.transportID,
592
+ zeroInstanceID: `${transport.pageID}:zero:c1`,
593
+ clientID: "c1",
594
+ clientGroupID: "cg1",
595
+ connectionAttemptID: `${transport.pageID}:zero:c1:attempt:delayed-reconnect`,
596
+ socketID: `${transport.transportID}:socket:2`,
597
+ wsid: "delayed-reconnect",
598
+ generation: 2,
599
+ activeGeneration: 2,
600
+ code: 1e3
601
+ });
602
+ (0, import_vitest.expect)(aborted?.attemptAgeMs).toBeGreaterThanOrEqual(1e4);
603
+ (0, import_vitest.expect)(lifecycle.filter(event => event.generation === 2 && (event.type === "aborted" || event.type === "close" || event.type === "superseded"))).toHaveLength(1);
604
+ });
518
605
  (0, import_vitest.test)("a replacement socket supersedes stale open and connected events for the same client", async () => {
519
606
  import_vitest.vi.useFakeTimers();
520
607
  const lifecycle = [];
@@ -557,8 +644,10 @@ let storageID = 0;
557
644
  (0, import_vitest.expect)(lifecycle).toContainEqual(import_vitest.expect.objectContaining({
558
645
  type: "superseded",
559
646
  generation: 1,
647
+ activeGeneration: 2,
560
648
  wsid: "stale"
561
649
  }));
650
+ (0, import_vitest.expect)(lifecycle.filter(event => event.generation === 1 && (event.type === "aborted" || event.type === "close" || event.type === "superseded"))).toHaveLength(1);
562
651
  (0, import_vitest.expect)(errors).toEqual([]);
563
652
  });
564
653
  (0, import_vitest.test)("non-origin WebSockets pass through to the native implementation", () => {
@@ -585,17 +674,21 @@ let storageID = 0;
585
674
  (0, import_vitest.expect)(globalThis.WebSocket).toBe(NativeWebSocket);
586
675
  globalThis.WebSocket = previous;
587
676
  });
588
- (0, import_vitest.test)("ensureHttpPullTransport installs once per origin", () => {
677
+ (0, import_vitest.test)("ensureHttpPullTransport installs once per origin across module evaluation", async () => {
589
678
  const origin = "http://127.0.0.1:65501";
590
679
  const first = (0, import_httpPullTransport.ensureHttpPullTransport)({
591
680
  origin,
592
681
  fetch: import_vitest.vi.fn()
593
682
  });
594
- const second = (0, import_httpPullTransport.ensureHttpPullTransport)({
683
+ import_vitest.vi.resetModules();
684
+ const reloaded = await import("../httpPullTransport");
685
+ const second = reloaded.ensureHttpPullTransport({
595
686
  origin,
596
687
  fetch: import_vitest.vi.fn()
597
688
  });
598
689
  (0, import_vitest.expect)(second).toBe(first);
690
+ (0, import_vitest.expect)(first.pageID).toMatch(/^page-/);
691
+ (0, import_vitest.expect)(first.transportID).toMatch(new RegExp(`^${first.pageID}:transport:[1-9][0-9]*$`));
599
692
  first.uninstall();
600
693
  });
601
694
  (0, import_vitest.test)("push responses are filtered to this client \u2014 foreign (recovery) results are dropped", async () => {
@@ -743,6 +836,9 @@ function openRawSocketWithMessages(opts) {
743
836
  url.searchParams.set("baseCookie", "");
744
837
  url.searchParams.set("lmid", "0");
745
838
  url.searchParams.set("wsid", opts?.wsid ?? "ws-test");
839
+ if (opts?.attemptStartedAt !== void 0) {
840
+ url.searchParams.set("ts", String(opts.attemptStartedAt));
841
+ }
746
842
  const messages = [];
747
843
  const socket = new WebSocket(url, encodeSecProtocol(["initConnection", {
748
844
  desiredQueriesPatch: opts?.desiredQueriesPatch ?? []
@@ -1,5 +1,29 @@
1
1
  "use strict";
2
2
 
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
+ get: () => from[key],
13
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
+ });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
19
+ // If the importer is in node compatibility mode or this is not an ESM
20
+ // file that has been converted to a CommonJS file using a Babel-
21
+ // compatible transform (i.e. "__esModule" has not been set), then set
22
+ // "default" to the CommonJS "module.exports" for node compatibility.
23
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
24
+ value: mod,
25
+ enumerable: true
26
+ }) : target, mod));
3
27
  var import_zero = require("@rocicorp/zero");
4
28
  var import_vitest = require("vitest");
5
29
  var import_fixtureSchema = require("./fixtureSchema.native.js");
@@ -620,6 +644,77 @@ var storageID = 0;
620
644
  });
621
645
  })).toBe(false);
622
646
  });
647
+ (0, import_vitest.test)("a pull 500 cannot let a timed-out socket construction open on the abandoned attempt", async function () {
648
+ import_vitest.vi.useFakeTimers();
649
+ var lifecycle = [];
650
+ var pullCount = 0;
651
+ var fetch = import_vitest.vi.fn(async function (input, init) {
652
+ var request = recordRequest(input, init);
653
+ pullCount++;
654
+ if (pullCount === 1) {
655
+ return jsonResponse({
656
+ error: "injected pull outage"
657
+ }, {
658
+ status: 500
659
+ });
660
+ }
661
+ return jsonResponse({
662
+ cookie: request.body.cookie,
663
+ unchanged: true
664
+ });
665
+ });
666
+ var transport = (0, import_httpPullTransport.installHttpPullTransport)({
667
+ origin: ORIGIN,
668
+ fetch,
669
+ lifecycle: function (event) {
670
+ return lifecycle.push(event);
671
+ }
672
+ });
673
+ transports.push(transport);
674
+ var first = openRawSocketWithMessages({
675
+ wsid: "before-pull-500"
676
+ });
677
+ await import_vitest.vi.advanceTimersByTimeAsync(1);
678
+ (0, import_vitest.expect)(first.socket.readyState).toBe(first.socket.CLOSED);
679
+ var delayedOpened = false;
680
+ var delayedClosed = 0;
681
+ var delayed = openRawSocketWithMessages({
682
+ wsid: "delayed-reconnect",
683
+ attemptStartedAt: performance.now() - 10001
684
+ });
685
+ delayed.socket.addEventListener("open", function () {
686
+ delayedOpened = true;
687
+ });
688
+ delayed.socket.addEventListener("close", function () {
689
+ delayedClosed++;
690
+ });
691
+ await import_vitest.vi.advanceTimersByTimeAsync(1);
692
+ (0, import_vitest.expect)(delayedOpened).toBe(false);
693
+ (0, import_vitest.expect)(delayedClosed).toBe(1);
694
+ (0, import_vitest.expect)(lifecycle.filter(function (event) {
695
+ return event.type === "open";
696
+ })).toHaveLength(1);
697
+ var aborted = lifecycle.find(function (event) {
698
+ return event.type === "aborted";
699
+ });
700
+ (0, import_vitest.expect)(aborted).toMatchObject({
701
+ pageID: transport.pageID,
702
+ transportID: transport.transportID,
703
+ zeroInstanceID: `${transport.pageID}:zero:c1`,
704
+ clientID: "c1",
705
+ clientGroupID: "cg1",
706
+ connectionAttemptID: `${transport.pageID}:zero:c1:attempt:delayed-reconnect`,
707
+ socketID: `${transport.transportID}:socket:2`,
708
+ wsid: "delayed-reconnect",
709
+ generation: 2,
710
+ activeGeneration: 2,
711
+ code: 1e3
712
+ });
713
+ (0, import_vitest.expect)(aborted === null || aborted === void 0 ? void 0 : aborted.attemptAgeMs).toBeGreaterThanOrEqual(1e4);
714
+ (0, import_vitest.expect)(lifecycle.filter(function (event) {
715
+ return event.generation === 2 && (event.type === "aborted" || event.type === "close" || event.type === "superseded");
716
+ })).toHaveLength(1);
717
+ });
623
718
  (0, import_vitest.test)("a replacement socket supersedes stale open and connected events for the same client", async function () {
624
719
  import_vitest.vi.useFakeTimers();
625
720
  var lifecycle = [];
@@ -671,8 +766,12 @@ var storageID = 0;
671
766
  (0, import_vitest.expect)(lifecycle).toContainEqual(import_vitest.expect.objectContaining({
672
767
  type: "superseded",
673
768
  generation: 1,
769
+ activeGeneration: 2,
674
770
  wsid: "stale"
675
771
  }));
772
+ (0, import_vitest.expect)(lifecycle.filter(function (event) {
773
+ return event.generation === 1 && (event.type === "aborted" || event.type === "close" || event.type === "superseded");
774
+ })).toHaveLength(1);
676
775
  (0, import_vitest.expect)(errors).toEqual([]);
677
776
  });
678
777
  (0, import_vitest.test)("non-origin WebSockets pass through to the native implementation", function () {
@@ -702,17 +801,21 @@ var storageID = 0;
702
801
  (0, import_vitest.expect)(globalThis.WebSocket).toBe(NativeWebSocket);
703
802
  globalThis.WebSocket = previous;
704
803
  });
705
- (0, import_vitest.test)("ensureHttpPullTransport installs once per origin", function () {
804
+ (0, import_vitest.test)("ensureHttpPullTransport installs once per origin across module evaluation", async function () {
706
805
  var origin = "http://127.0.0.1:65501";
707
806
  var first = (0, import_httpPullTransport.ensureHttpPullTransport)({
708
807
  origin,
709
808
  fetch: import_vitest.vi.fn()
710
809
  });
711
- var second = (0, import_httpPullTransport.ensureHttpPullTransport)({
810
+ import_vitest.vi.resetModules();
811
+ var reloaded = await import("../httpPullTransport");
812
+ var second = reloaded.ensureHttpPullTransport({
712
813
  origin,
713
814
  fetch: import_vitest.vi.fn()
714
815
  });
715
816
  (0, import_vitest.expect)(second).toBe(first);
817
+ (0, import_vitest.expect)(first.pageID).toMatch(/^page-/);
818
+ (0, import_vitest.expect)(first.transportID).toMatch(new RegExp(`^${first.pageID}:transport:[1-9][0-9]*$`));
716
819
  first.uninstall();
717
820
  });
718
821
  (0, import_vitest.test)("push responses are filtered to this client \u2014 foreign (recovery) results are dropped", async function () {
@@ -874,6 +977,9 @@ function openRawSocketWithMessages(opts) {
874
977
  url.searchParams.set("lmid", "0");
875
978
  var _opts_wsid;
876
979
  url.searchParams.set("wsid", (_opts_wsid = opts === null || opts === void 0 ? void 0 : opts.wsid) !== null && _opts_wsid !== void 0 ? _opts_wsid : "ws-test");
980
+ if ((opts === null || opts === void 0 ? void 0 : opts.attemptStartedAt) !== void 0) {
981
+ url.searchParams.set("ts", String(opts.attemptStartedAt));
982
+ }
877
983
  var messages = [];
878
984
  var _opts_desiredQueriesPatch, _opts_authToken;
879
985
  var socket = new WebSocket(url, encodeSecProtocol(["initConnection", {
@@ -1 +1 @@
1
- {"version":3,"names":["import_zero","require","import_vitest","import_fixtureSchema","import_httpPullTransport","_class_call_check","instance","Constructor","TypeError","_define_property","obj","key","value","Object","defineProperty","enumerable","configurable","writable","ORIGIN","zeros","transports","storageID","afterEach","_zeros_pop","_transports_pop","length","pop","close","uninstall","vi","useRealTimers","describe","test","requests","cookie","fetch","fn","input","init","request","recordRequest","push","expect","path","toBe","headers","authorization","jsonResponse","lastMutationIDChanges","rowsPatch","op","tableName","id","name","ownerId","projectId","userId","transport","install","zero","createZero","view","query","project","related","materialize","data","waitForComplete","destroy","connections","toEqual","members","body","toBeNull","clientID","any","String","clientGroupID","unchanged","mutation2","mutations","pushResponse","result","eventually","filter","pullsBeforePush","mutation","mutate","create","client","server","find","toMatchObject","pushVersion","requestID","type","args","_requests_find","endsWith","installHttpPullTransport","origin","pullOrigin","pushOrigin","some","url","_requests_at","socket","openRawSocketWithMessages","authToken","send","JSON","stringify","auth","pull","at","firstPushStarted","defer","releaseFirstPush","pushIDs","mutationID","resolve","promise","map","messages","message","pushBody","sleep","toHaveLength","responses","deferred","inFlight","maxInFlight","Math","max","response","shift","Error","openRawSocket","findMessage","baseCookie","startsWith","concurrentA","concurrentB","Promise","all","projectView","userView","user","users","pingTimeoutMs","connection","state","current","error","status","emissions","cleanup","addListener","resultType","parse","toBeGreaterThan","flatMap","emission","lifecycle","zeroLogs","failPull","failPush","event","logSink","log","_level","context","_len","arguments","Array","_key","catch","opens","param","generation","activeGeneration","arg","includes","useFakeTimers","connectStart","Date","now","errors","attachStockLifecycle","addEventListener","stale","wsid","advanceTimersByTimeAsync","toContainEqual","objectContaining","previous","globalThis","WebSocket","NativeWebSocket","NativeWebSocket2","protocols","toBeInstanceOf","first","ensureHttpPullTransport","second","details"],"sources":["../../../src/httpPull/transport.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["import_zero","require","import_vitest","import_fixtureSchema","import_httpPullTransport","_class_call_check","instance","Constructor","TypeError","_define_property","obj","key","value","Object","defineProperty","enumerable","configurable","writable","ORIGIN","zeros","transports","storageID","afterEach","_zeros_pop","_transports_pop","length","pop","close","uninstall","vi","useRealTimers","describe","test","requests","cookie","fetch","fn","input","init","request","recordRequest","push","expect","path","toBe","headers","authorization","jsonResponse","lastMutationIDChanges","rowsPatch","op","tableName","id","name","ownerId","projectId","userId","transport","install","zero","createZero","view","query","project","related","materialize","data","waitForComplete","destroy","connections","toEqual","members","body","toBeNull","clientID","any","String","clientGroupID","unchanged","mutation2","mutations","pushResponse","result","eventually","filter","pullsBeforePush","mutation","mutate","create","client","server","find","toMatchObject","pushVersion","requestID","type","args","_requests_find","endsWith","installHttpPullTransport","origin","pullOrigin","pushOrigin","some","url","_requests_at","socket","openRawSocketWithMessages","authToken","send","JSON","stringify","auth","pull","at","firstPushStarted","defer","releaseFirstPush","pushIDs","mutationID","resolve","promise","map","messages","message","pushBody","sleep","toHaveLength","responses","deferred","inFlight","maxInFlight","Math","max","response","shift","Error","openRawSocket","findMessage","baseCookie","startsWith","concurrentA","concurrentB","Promise","all","projectView","userView","user","users","pingTimeoutMs","connection","state","current","error","status","emissions","cleanup","addListener","resultType","parse","toBeGreaterThan","flatMap","emission","lifecycle","zeroLogs","failPull","failPush","event","logSink","log","_level","context","_len","arguments","Array","_key","catch","opens","param","generation","activeGeneration","arg","includes","useFakeTimers","pullCount","first","wsid","advanceTimersByTimeAsync","readyState","CLOSED","delayedOpened","delayedClosed","delayed","attemptStartedAt","performance","now","addEventListener","aborted","pageID","transportID","zeroInstanceID","connectionAttemptID","socketID","code","attemptAgeMs","toBeGreaterThanOrEqual","connectStart","Date","errors","attachStockLifecycle","stale","toContainEqual","objectContaining","previous","globalThis","WebSocket","NativeWebSocket","NativeWebSocket2","protocols","toBeInstanceOf","ensureHttpPullTransport","resetModules","reloaded","second","toMatch","RegExp","details"],"sources":["../../../src/httpPull/transport.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -27,13 +27,37 @@ __export(httpPullTransport_exports, {
27
27
  });
28
28
  module.exports = __toCommonJS(httpPullTransport_exports);
29
29
  const COOKIE_WIDTH = 20;
30
+ const ZERO_CONNECT_TIMEOUT_MS = 1e4;
31
+ const HTTP_PULL_PAGE_REGISTRY = /* @__PURE__ */Symbol.for("on-zero.http-pull.page-registry");
32
+ function isHttpPullPageRegistry(value) {
33
+ return typeof value === "object" && value !== null && "pageID" in value && typeof value.pageID === "string" && "nextTransportGeneration" in value && typeof value.nextTransportGeneration === "number" && "transportsByOrigin" in value && value.transportsByOrigin instanceof Map;
34
+ }
35
+ function getHttpPullPageRegistry() {
36
+ const existing = Reflect.get(globalThis, HTTP_PULL_PAGE_REGISTRY);
37
+ if (isHttpPullPageRegistry(existing)) return existing;
38
+ const registry = {
39
+ pageID: `page-${Date.now().toString(36)}`,
40
+ nextTransportGeneration: 0,
41
+ transportsByOrigin: /* @__PURE__ */new Map()
42
+ };
43
+ Reflect.set(globalThis, HTTP_PULL_PAGE_REGISTRY, registry);
44
+ return registry;
45
+ }
46
+ function logHttpPullLifecycle(event) {
47
+ if (process.env.NODE_ENV === "test") return;
48
+ console.info(`[on-zero:http-pull] ${JSON.stringify(event)}`);
49
+ }
30
50
  function installHttpPullTransport(opts) {
51
+ const pageRegistry = getHttpPullPageRegistry();
52
+ const transportID = `${pageRegistry.pageID}:transport:${++pageRegistry.nextTransportGeneration}`;
31
53
  const previousWebSocket = globalThis.WebSocket;
32
54
  const fetchImpl = opts.fetch ?? globalThis.fetch;
33
55
  if (!fetchImpl) {
34
56
  throw new Error("installHttpPullTransport requires a fetch implementation");
35
57
  }
36
58
  const state = {
59
+ pageID: pageRegistry.pageID,
60
+ transportID,
37
61
  origin: new URL(opts.origin),
38
62
  originString: trimTrailingSlash(new URL(opts.origin).toString()),
39
63
  pullOriginString: trimTrailingSlash(new URL(opts.pullOrigin ?? opts.origin).toString()),
@@ -53,7 +77,7 @@ function installHttpPullTransport(opts) {
53
77
  nextSocketGeneration: 0,
54
78
  activeSocketGenerationByClient: /* @__PURE__ */new Map(),
55
79
  activeSocketByClient: /* @__PURE__ */new Map(),
56
- lifecycle: opts.lifecycle
80
+ lifecycle: opts.lifecycle ?? logHttpPullLifecycle
57
81
  };
58
82
  const Shim = class {
59
83
  static CONNECTING = 0;
@@ -71,27 +95,34 @@ function installHttpPullTransport(opts) {
71
95
  }
72
96
  };
73
97
  globalThis.WebSocket = Shim;
74
- return {
98
+ const transport = {
75
99
  pull: async () => {
76
100
  await Promise.all([...state.sockets].map(socket => socket.pull()));
77
101
  },
78
102
  get connections() {
79
103
  return state.sockets.size;
80
104
  },
105
+ pageID: state.pageID,
106
+ transportID: state.transportID,
81
107
  uninstall: () => {
82
108
  if (globalThis.WebSocket === Shim) {
83
109
  globalThis.WebSocket = previousWebSocket;
84
110
  }
111
+ const registered = pageRegistry.transportsByOrigin.get(state.originString);
112
+ if (registered === transport) {
113
+ pageRegistry.transportsByOrigin.delete(state.originString);
114
+ }
85
115
  }
86
116
  };
117
+ return transport;
87
118
  }
88
- const transportsByOrigin = /* @__PURE__ */new Map();
89
119
  function ensureHttpPullTransport(opts) {
120
+ const pageRegistry = getHttpPullPageRegistry();
90
121
  const key = trimTrailingSlash(new URL(opts.origin).toString());
91
- const existing = transportsByOrigin.get(key);
122
+ const existing = pageRegistry.transportsByOrigin.get(key);
92
123
  if (existing) return existing;
93
124
  const transport = installHttpPullTransport(opts);
94
- transportsByOrigin.set(key, transport);
125
+ pageRegistry.transportsByOrigin.set(key, transport);
95
126
  return transport;
96
127
  }
97
128
  class ZeroHttpSocket {
@@ -103,9 +134,16 @@ class ZeroHttpSocket {
103
134
  this.clientGroupID = this.connectURL.searchParams.get("clientGroupID") ?? "";
104
135
  this.wsid = this.connectURL.searchParams.get("wsid") ?? `zero-http-${Date.now()}`;
105
136
  this.generation = ++this.state.nextSocketGeneration;
106
- this.state.activeSocketByClient.get(this.clientID)?.supersede();
137
+ this.zeroInstanceID = `${this.state.pageID}:zero:${this.clientID}`;
138
+ this.connectionAttemptID = `${this.zeroInstanceID}:attempt:${this.wsid}`;
139
+ this.socketID = `${this.state.transportID}:socket:${this.generation}`;
140
+ const attemptStartedAtParam = this.connectURL.searchParams.get("ts");
141
+ const attemptStartedAt = Number(attemptStartedAtParam);
142
+ this.attemptStartedAt = attemptStartedAtParam !== null && Number.isFinite(attemptStartedAt) ? attemptStartedAt : void 0;
143
+ const previousSocket = this.state.activeSocketByClient.get(this.clientID);
107
144
  this.state.activeSocketGenerationByClient.set(this.clientID, this.generation);
108
145
  this.state.activeSocketByClient.set(this.clientID, this);
146
+ previousSocket?.supersede();
109
147
  this.emitLifecycle("created");
110
148
  const baseCookie = this.connectURL.searchParams.get("baseCookie");
111
149
  this.cookie = baseCookie ? baseCookie : null;
@@ -153,6 +191,11 @@ class ZeroHttpSocket {
153
191
  wakeSocket;
154
192
  wakeReconnectTimer;
155
193
  generation;
194
+ zeroInstanceID;
195
+ connectionAttemptID;
196
+ socketID;
197
+ attemptStartedAt;
198
+ settled = false;
156
199
  addEventListener(type, listener) {
157
200
  if (listener) {
158
201
  this.listeners[type]?.add(listener);
@@ -199,20 +242,10 @@ class ZeroHttpSocket {
199
242
  }
200
243
  }
201
244
  close(code = 1e3, reason = "") {
202
- if (this.readyState === this.CLOSED) return;
203
- if (this.openTimer) clearTimeout(this.openTimer);
204
- if (this.pullTimer) clearInterval(this.pullTimer);
205
- this.closeWakeChannel();
206
- this.readyState = this.CLOSED;
207
- this.state.sockets.delete(this);
208
- if (this.state.activeSocketByClient.get(this.clientID) === this) {
209
- this.state.activeSocketByClient.delete(this.clientID);
210
- this.state.activeSocketGenerationByClient.delete(this.clientID);
211
- }
212
- this.emitLifecycle("close", {
245
+ if (!this.settle("close", {
213
246
  code,
214
247
  reason
215
- });
248
+ })) return;
216
249
  this.emit("close", {
217
250
  code,
218
251
  reason,
@@ -242,6 +275,20 @@ class ZeroHttpSocket {
242
275
  }
243
276
  open() {
244
277
  if (this.readyState !== this.CONNECTING) return;
278
+ const attemptAgeMs = this.getAttemptAgeMs();
279
+ if (attemptAgeMs !== void 0 && attemptAgeMs >= ZERO_CONNECT_TIMEOUT_MS) {
280
+ const reason = `zero-http connection attempt ${this.wsid} expired after ${Math.round(attemptAgeMs)}ms before socket construction completed`;
281
+ if (!this.settle("aborted", {
282
+ code: 1e3,
283
+ reason
284
+ })) return;
285
+ this.emit("close", {
286
+ code: 1e3,
287
+ reason,
288
+ wasClean: true
289
+ });
290
+ return;
291
+ }
245
292
  this.readyState = this.OPEN;
246
293
  this.emitLifecycle("open");
247
294
  this.emit("open", {});
@@ -532,21 +579,42 @@ class ZeroHttpSocket {
532
579
  }
533
580
  }
534
581
  supersede() {
535
- if (this.readyState === this.CLOSED) return;
582
+ this.settle("superseded");
583
+ }
584
+ settle(type, detail = {}) {
585
+ if (this.settled) return false;
586
+ this.settled = true;
536
587
  if (this.openTimer !== void 0) clearTimeout(this.openTimer);
537
588
  if (this.pullTimer !== void 0) clearInterval(this.pullTimer);
538
589
  this.closeWakeChannel();
539
590
  this.readyState = this.CLOSED;
540
591
  this.state.sockets.delete(this);
541
- this.emitLifecycle("superseded");
592
+ if (this.state.activeSocketByClient.get(this.clientID) === this) {
593
+ this.state.activeSocketByClient.delete(this.clientID);
594
+ this.state.activeSocketGenerationByClient.delete(this.clientID);
595
+ }
596
+ this.emitLifecycle(type, detail);
597
+ return true;
598
+ }
599
+ getAttemptAgeMs() {
600
+ return this.attemptStartedAt === void 0 ? void 0 : performance.now() - this.attemptStartedAt;
542
601
  }
543
602
  emitLifecycle(type, detail = {}) {
544
603
  this.state.lifecycle?.({
545
604
  type,
605
+ pageID: this.state.pageID,
606
+ transportID: this.state.transportID,
607
+ zeroInstanceID: this.zeroInstanceID,
608
+ clientGroupID: this.clientGroupID,
609
+ connectionAttemptID: this.connectionAttemptID,
610
+ socketID: this.socketID,
546
611
  generation: this.generation,
547
612
  activeGeneration: this.state.activeSocketGenerationByClient.get(this.clientID) ?? this.generation,
548
613
  clientID: this.clientID,
549
614
  wsid: this.wsid,
615
+ timestamp: Date.now(),
616
+ attemptStartedAt: this.attemptStartedAt,
617
+ attemptAgeMs: this.getAttemptAgeMs(),
550
618
  ...detail
551
619
  });
552
620
  }