@livetemplate/client 0.8.20 → 0.8.22
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.
- package/dist/dom/event-delegation.d.ts +9 -1
- package/dist/dom/event-delegation.d.ts.map +1 -1
- package/dist/dom/event-delegation.js +72 -25
- package/dist/dom/event-delegation.js.map +1 -1
- package/dist/dom/invoker-polyfill.d.ts +12 -0
- package/dist/dom/invoker-polyfill.d.ts.map +1 -0
- package/dist/dom/invoker-polyfill.js +50 -0
- package/dist/dom/invoker-polyfill.js.map +1 -0
- package/dist/dom/link-interceptor.d.ts +14 -0
- package/dist/dom/link-interceptor.d.ts.map +1 -1
- package/dist/dom/link-interceptor.js +43 -2
- package/dist/dom/link-interceptor.js.map +1 -1
- package/dist/livetemplate-client.browser.js +5 -5
- package/dist/livetemplate-client.browser.js.map +4 -4
- package/dist/livetemplate-client.d.ts +25 -2
- package/dist/livetemplate-client.d.ts.map +1 -1
- package/dist/livetemplate-client.js +150 -19
- package/dist/livetemplate-client.js.map +1 -1
- package/dist/tests/invoker-polyfill.test.d.ts +2 -0
- package/dist/tests/invoker-polyfill.test.d.ts.map +1 -0
- package/dist/tests/invoker-polyfill.test.js +182 -0
- package/dist/tests/invoker-polyfill.test.js.map +1 -0
- package/dist/tests/navigation.test.d.ts +2 -0
- package/dist/tests/navigation.test.d.ts.map +1 -0
- package/dist/tests/navigation.test.js +308 -0
- package/dist/tests/navigation.test.js.map +1 -0
- package/dist/transport/websocket.d.ts +7 -0
- package/dist/transport/websocket.d.ts.map +1 -1
- package/dist/transport/websocket.js +16 -2
- package/dist/transport/websocket.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const livetemplate_client_1 = require("../livetemplate-client");
|
|
4
|
+
describe("handleNavigationResponse", () => {
|
|
5
|
+
let client;
|
|
6
|
+
let wrapper;
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
document.body.innerHTML = ""; // safe: test cleanup, matches existing pattern
|
|
9
|
+
document.title = "Initial Title";
|
|
10
|
+
wrapper = document.createElement("div");
|
|
11
|
+
wrapper.setAttribute("data-lvt-id", "lvt-handler-a");
|
|
12
|
+
wrapper.appendChild(document.createTextNode("Handler A content"));
|
|
13
|
+
document.body.appendChild(wrapper);
|
|
14
|
+
client = new livetemplate_client_1.LiveTemplateClient();
|
|
15
|
+
client.wrapperElement = wrapper;
|
|
16
|
+
});
|
|
17
|
+
afterEach(() => {
|
|
18
|
+
document.body.innerHTML = ""; // safe: test cleanup
|
|
19
|
+
});
|
|
20
|
+
const callHandleNavigationResponse = (html) => {
|
|
21
|
+
client.handleNavigationResponse(html);
|
|
22
|
+
};
|
|
23
|
+
describe("same-handler navigation", () => {
|
|
24
|
+
it("replaces wrapper children when response has same data-lvt-id", () => {
|
|
25
|
+
const html = [
|
|
26
|
+
"<html><head><title>Same Page</title></head><body>",
|
|
27
|
+
'<div data-lvt-id="lvt-handler-a">',
|
|
28
|
+
"<p>Updated content from same handler</p>",
|
|
29
|
+
"</div>",
|
|
30
|
+
"</body></html>",
|
|
31
|
+
].join("");
|
|
32
|
+
callHandleNavigationResponse(html);
|
|
33
|
+
expect(wrapper.textContent).toContain("Updated content from same handler");
|
|
34
|
+
expect(wrapper.getAttribute("data-lvt-id")).toBe("lvt-handler-a");
|
|
35
|
+
});
|
|
36
|
+
it("preserves wrapper element identity", () => {
|
|
37
|
+
const originalWrapper = wrapper;
|
|
38
|
+
const html = [
|
|
39
|
+
"<html><body>",
|
|
40
|
+
'<div data-lvt-id="lvt-handler-a">',
|
|
41
|
+
"<p>New content</p>",
|
|
42
|
+
"</div>",
|
|
43
|
+
"</body></html>",
|
|
44
|
+
].join("");
|
|
45
|
+
callHandleNavigationResponse(html);
|
|
46
|
+
expect(client.wrapperElement).toBe(originalWrapper);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
describe("cross-handler navigation", () => {
|
|
50
|
+
it("updates wrapper ID when response has different data-lvt-id", () => {
|
|
51
|
+
const disconnectSpy = jest
|
|
52
|
+
.spyOn(client, "disconnect")
|
|
53
|
+
.mockImplementation(() => { });
|
|
54
|
+
const connectSpy = jest
|
|
55
|
+
.spyOn(client, "connect")
|
|
56
|
+
.mockResolvedValue(undefined);
|
|
57
|
+
const html = [
|
|
58
|
+
"<html><body>",
|
|
59
|
+
'<div data-lvt-id="lvt-handler-b">',
|
|
60
|
+
"<p>Handler B content</p>",
|
|
61
|
+
"</div>",
|
|
62
|
+
"</body></html>",
|
|
63
|
+
].join("");
|
|
64
|
+
callHandleNavigationResponse(html);
|
|
65
|
+
expect(wrapper.getAttribute("data-lvt-id")).toBe("lvt-handler-b");
|
|
66
|
+
expect(wrapper.textContent).toContain("Handler B content");
|
|
67
|
+
disconnectSpy.mockRestore();
|
|
68
|
+
connectSpy.mockRestore();
|
|
69
|
+
});
|
|
70
|
+
it("disconnects old handler", () => {
|
|
71
|
+
const disconnectSpy = jest
|
|
72
|
+
.spyOn(client, "disconnect")
|
|
73
|
+
.mockImplementation(() => { });
|
|
74
|
+
const connectSpy = jest
|
|
75
|
+
.spyOn(client, "connect")
|
|
76
|
+
.mockResolvedValue(undefined);
|
|
77
|
+
const html = [
|
|
78
|
+
"<html><body>",
|
|
79
|
+
'<div data-lvt-id="lvt-handler-b">',
|
|
80
|
+
"<p>Handler B</p>",
|
|
81
|
+
"</div>",
|
|
82
|
+
"</body></html>",
|
|
83
|
+
].join("");
|
|
84
|
+
callHandleNavigationResponse(html);
|
|
85
|
+
expect(disconnectSpy).toHaveBeenCalledTimes(1);
|
|
86
|
+
disconnectSpy.mockRestore();
|
|
87
|
+
connectSpy.mockRestore();
|
|
88
|
+
});
|
|
89
|
+
it("reconnects to the new handler", () => {
|
|
90
|
+
const disconnectSpy = jest
|
|
91
|
+
.spyOn(client, "disconnect")
|
|
92
|
+
.mockImplementation(() => { });
|
|
93
|
+
const connectSpy = jest
|
|
94
|
+
.spyOn(client, "connect")
|
|
95
|
+
.mockResolvedValue(undefined);
|
|
96
|
+
const html = [
|
|
97
|
+
"<html><body>",
|
|
98
|
+
'<div data-lvt-id="lvt-handler-b">',
|
|
99
|
+
"<p>Handler B</p>",
|
|
100
|
+
"</div>",
|
|
101
|
+
"</body></html>",
|
|
102
|
+
].join("");
|
|
103
|
+
callHandleNavigationResponse(html);
|
|
104
|
+
expect(connectSpy).toHaveBeenCalledWith('[data-lvt-id="lvt-handler-b"]');
|
|
105
|
+
disconnectSpy.mockRestore();
|
|
106
|
+
connectSpy.mockRestore();
|
|
107
|
+
});
|
|
108
|
+
it("falls back to page reload if reconnect fails", () => {
|
|
109
|
+
const disconnectSpy = jest
|
|
110
|
+
.spyOn(client, "disconnect")
|
|
111
|
+
.mockImplementation(() => { });
|
|
112
|
+
const connectSpy = jest
|
|
113
|
+
.spyOn(client, "connect")
|
|
114
|
+
.mockRejectedValue(new Error("connection failed"));
|
|
115
|
+
const html = [
|
|
116
|
+
"<html><body>",
|
|
117
|
+
'<div data-lvt-id="lvt-handler-b">',
|
|
118
|
+
"<p>Handler B</p>",
|
|
119
|
+
"</div>",
|
|
120
|
+
"</body></html>",
|
|
121
|
+
].join("");
|
|
122
|
+
expect(() => callHandleNavigationResponse(html)).not.toThrow();
|
|
123
|
+
expect(disconnectSpy).toHaveBeenCalled();
|
|
124
|
+
expect(connectSpy).toHaveBeenCalled();
|
|
125
|
+
disconnectSpy.mockRestore();
|
|
126
|
+
connectSpy.mockRestore();
|
|
127
|
+
});
|
|
128
|
+
it("cleans up stale event listeners from old wrapper ID", () => {
|
|
129
|
+
const disconnectSpy = jest
|
|
130
|
+
.spyOn(client, "disconnect")
|
|
131
|
+
.mockImplementation(() => { });
|
|
132
|
+
const connectSpy = jest
|
|
133
|
+
.spyOn(client, "connect")
|
|
134
|
+
.mockResolvedValue(undefined);
|
|
135
|
+
// Simulate an existing listener keyed to old wrapper ID
|
|
136
|
+
const oldListener = jest.fn();
|
|
137
|
+
document["__lvt_link_intercept_lvt-handler-a"] = oldListener;
|
|
138
|
+
document.addEventListener("click", oldListener);
|
|
139
|
+
const html = [
|
|
140
|
+
"<html><body>",
|
|
141
|
+
'<div data-lvt-id="lvt-handler-b">',
|
|
142
|
+
"<p>Handler B</p>",
|
|
143
|
+
"</div>",
|
|
144
|
+
"</body></html>",
|
|
145
|
+
].join("");
|
|
146
|
+
callHandleNavigationResponse(html);
|
|
147
|
+
// Old listener key should be removed
|
|
148
|
+
expect(document["__lvt_link_intercept_lvt-handler-a"]).toBeUndefined();
|
|
149
|
+
disconnectSpy.mockRestore();
|
|
150
|
+
connectSpy.mockRestore();
|
|
151
|
+
});
|
|
152
|
+
it("sets up event delegation and link interception immediately (before async connect)", () => {
|
|
153
|
+
const disconnectSpy = jest
|
|
154
|
+
.spyOn(client, "disconnect")
|
|
155
|
+
.mockImplementation(() => { });
|
|
156
|
+
// Make connect() return a promise that never resolves to prove the
|
|
157
|
+
// synchronous setup happens regardless of whether connect completes
|
|
158
|
+
const connectSpy = jest
|
|
159
|
+
.spyOn(client, "connect")
|
|
160
|
+
.mockReturnValue(new Promise(() => { }));
|
|
161
|
+
// Spy on the real internal setup methods
|
|
162
|
+
const eventSetupSpy = jest.spyOn(client.eventDelegator, "setupEventDelegation");
|
|
163
|
+
const linkSetupSpy = jest.spyOn(client.linkInterceptor, "setup");
|
|
164
|
+
const html = [
|
|
165
|
+
"<html><body>",
|
|
166
|
+
'<div data-lvt-id="lvt-handler-b">',
|
|
167
|
+
"<p>Handler B</p>",
|
|
168
|
+
"</div>",
|
|
169
|
+
"</body></html>",
|
|
170
|
+
].join("");
|
|
171
|
+
callHandleNavigationResponse(html);
|
|
172
|
+
// Both setup methods must have been called synchronously
|
|
173
|
+
expect(eventSetupSpy).toHaveBeenCalled();
|
|
174
|
+
expect(linkSetupSpy).toHaveBeenCalled();
|
|
175
|
+
disconnectSpy.mockRestore();
|
|
176
|
+
connectSpy.mockRestore();
|
|
177
|
+
eventSetupSpy.mockRestore();
|
|
178
|
+
linkSetupSpy.mockRestore();
|
|
179
|
+
});
|
|
180
|
+
it("scrolls to top on cross-handler navigation", () => {
|
|
181
|
+
const disconnectSpy = jest
|
|
182
|
+
.spyOn(client, "disconnect")
|
|
183
|
+
.mockImplementation(() => { });
|
|
184
|
+
const connectSpy = jest
|
|
185
|
+
.spyOn(client, "connect")
|
|
186
|
+
.mockResolvedValue(undefined);
|
|
187
|
+
const scrollSpy = jest
|
|
188
|
+
.spyOn(window, "scrollTo")
|
|
189
|
+
.mockImplementation(() => { });
|
|
190
|
+
const html = [
|
|
191
|
+
"<html><body>",
|
|
192
|
+
'<div data-lvt-id="lvt-handler-b">',
|
|
193
|
+
"<p>Handler B</p>",
|
|
194
|
+
"</div>",
|
|
195
|
+
"</body></html>",
|
|
196
|
+
].join("");
|
|
197
|
+
callHandleNavigationResponse(html);
|
|
198
|
+
expect(scrollSpy).toHaveBeenCalledWith(0, 0);
|
|
199
|
+
disconnectSpy.mockRestore();
|
|
200
|
+
connectSpy.mockRestore();
|
|
201
|
+
scrollSpy.mockRestore();
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
describe("title updates", () => {
|
|
205
|
+
it("updates document.title from response", () => {
|
|
206
|
+
const html = [
|
|
207
|
+
"<html><head><title>New Page Title</title></head><body>",
|
|
208
|
+
'<div data-lvt-id="lvt-handler-a">',
|
|
209
|
+
"<p>Content</p>",
|
|
210
|
+
"</div>",
|
|
211
|
+
"</body></html>",
|
|
212
|
+
].join("");
|
|
213
|
+
callHandleNavigationResponse(html);
|
|
214
|
+
expect(document.title).toBe("New Page Title");
|
|
215
|
+
});
|
|
216
|
+
it("updates title on cross-handler navigation", () => {
|
|
217
|
+
const disconnectSpy = jest
|
|
218
|
+
.spyOn(client, "disconnect")
|
|
219
|
+
.mockImplementation(() => { });
|
|
220
|
+
const connectSpy = jest
|
|
221
|
+
.spyOn(client, "connect")
|
|
222
|
+
.mockResolvedValue(undefined);
|
|
223
|
+
const html = [
|
|
224
|
+
"<html><head><title>Handler B Title</title></head><body>",
|
|
225
|
+
'<div data-lvt-id="lvt-handler-b">',
|
|
226
|
+
"<p>Handler B</p>",
|
|
227
|
+
"</div>",
|
|
228
|
+
"</body></html>",
|
|
229
|
+
].join("");
|
|
230
|
+
callHandleNavigationResponse(html);
|
|
231
|
+
expect(document.title).toBe("Handler B Title");
|
|
232
|
+
disconnectSpy.mockRestore();
|
|
233
|
+
connectSpy.mockRestore();
|
|
234
|
+
});
|
|
235
|
+
it("does not change title when response has no title element", () => {
|
|
236
|
+
const html = [
|
|
237
|
+
"<html><body>",
|
|
238
|
+
'<div data-lvt-id="lvt-handler-a">',
|
|
239
|
+
"<p>No title page</p>",
|
|
240
|
+
"</div>",
|
|
241
|
+
"</body></html>",
|
|
242
|
+
].join("");
|
|
243
|
+
callHandleNavigationResponse(html);
|
|
244
|
+
expect(document.title).toBe("Initial Title");
|
|
245
|
+
});
|
|
246
|
+
});
|
|
247
|
+
describe("non-LiveTemplate response", () => {
|
|
248
|
+
it("uses body content when response has no data-lvt-id wrapper", () => {
|
|
249
|
+
const disconnectSpy = jest
|
|
250
|
+
.spyOn(client, "disconnect")
|
|
251
|
+
.mockImplementation(() => { });
|
|
252
|
+
const html = [
|
|
253
|
+
"<html><body>",
|
|
254
|
+
"<div><p>Plain HTML page</p></div>",
|
|
255
|
+
"</body></html>",
|
|
256
|
+
].join("");
|
|
257
|
+
callHandleNavigationResponse(html);
|
|
258
|
+
expect(wrapper.textContent).toContain("Plain HTML page");
|
|
259
|
+
expect(wrapper.getAttribute("data-lvt-id")).toBe("lvt-handler-a");
|
|
260
|
+
disconnectSpy.mockRestore();
|
|
261
|
+
});
|
|
262
|
+
it("disconnects old WebSocket on non-LiveTemplate fallback", () => {
|
|
263
|
+
const disconnectSpy = jest
|
|
264
|
+
.spyOn(client, "disconnect")
|
|
265
|
+
.mockImplementation(() => { });
|
|
266
|
+
const html = [
|
|
267
|
+
"<html><body>",
|
|
268
|
+
"<div><p>Plain HTML page</p></div>",
|
|
269
|
+
"</body></html>",
|
|
270
|
+
].join("");
|
|
271
|
+
callHandleNavigationResponse(html);
|
|
272
|
+
expect(disconnectSpy).toHaveBeenCalledTimes(1);
|
|
273
|
+
disconnectSpy.mockRestore();
|
|
274
|
+
});
|
|
275
|
+
it("tears down stale listeners on non-LiveTemplate fallback", () => {
|
|
276
|
+
const disconnectSpy = jest
|
|
277
|
+
.spyOn(client, "disconnect")
|
|
278
|
+
.mockImplementation(() => { });
|
|
279
|
+
// Spy on teardownForWrapper to verify it's called with the old ID
|
|
280
|
+
const linkTeardownSpy = jest.spyOn(client.linkInterceptor, "teardownForWrapper");
|
|
281
|
+
const eventTeardownSpy = jest.spyOn(client.eventDelegator, "teardownForWrapper");
|
|
282
|
+
const html = [
|
|
283
|
+
"<html><body>",
|
|
284
|
+
"<div><p>Plain HTML page</p></div>",
|
|
285
|
+
"</body></html>",
|
|
286
|
+
].join("");
|
|
287
|
+
callHandleNavigationResponse(html);
|
|
288
|
+
// Both teardown methods must be called with the old wrapper ID
|
|
289
|
+
// before the fallback path re-registers listeners.
|
|
290
|
+
expect(linkTeardownSpy).toHaveBeenCalledWith("lvt-handler-a");
|
|
291
|
+
expect(eventTeardownSpy).toHaveBeenCalledWith("lvt-handler-a");
|
|
292
|
+
disconnectSpy.mockRestore();
|
|
293
|
+
linkTeardownSpy.mockRestore();
|
|
294
|
+
eventTeardownSpy.mockRestore();
|
|
295
|
+
});
|
|
296
|
+
});
|
|
297
|
+
describe("edge cases", () => {
|
|
298
|
+
it("handles empty response body gracefully", () => {
|
|
299
|
+
const html = "<html><body></body></html>";
|
|
300
|
+
expect(() => callHandleNavigationResponse(html)).not.toThrow();
|
|
301
|
+
});
|
|
302
|
+
it("does nothing when wrapperElement is null", () => {
|
|
303
|
+
client.wrapperElement = null;
|
|
304
|
+
expect(() => callHandleNavigationResponse("<html><body></body></html>")).not.toThrow();
|
|
305
|
+
});
|
|
306
|
+
});
|
|
307
|
+
});
|
|
308
|
+
//# sourceMappingURL=navigation.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.test.js","sourceRoot":"","sources":["../../tests/navigation.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,7 +48,14 @@ export interface WebSocketConnectResult {
|
|
|
48
48
|
export declare class WebSocketManager {
|
|
49
49
|
private readonly config;
|
|
50
50
|
private transport;
|
|
51
|
+
private liveUrlOverride;
|
|
51
52
|
constructor(config: WebSocketManagerConfig);
|
|
53
|
+
/**
|
|
54
|
+
* Update the live URL used for WebSocket reconnection. Called by the
|
|
55
|
+
* client on cross-handler navigation so the next connect() uses the
|
|
56
|
+
* new page path without mutating the shared options object.
|
|
57
|
+
*/
|
|
58
|
+
setLiveUrl(liveUrl: string): void;
|
|
52
59
|
connect(): Promise<WebSocketConnectResult>;
|
|
53
60
|
disconnect(): void;
|
|
54
61
|
send(data: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../transport/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IACrC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAMjB,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,iBAAiB,CAAK;gBAED,OAAO,EAAE,yBAAyB;IAE/D,OAAO,IAAI,IAAI;IA6Bf,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMxB,UAAU,IAAI,IAAI;IASlB,SAAS,IAAI,SAAS,GAAG,IAAI;IAI7B,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,mBAAmB;CAM5B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,yBAAyB,CAAC;IACnC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC3E,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACtC;AAED,qBAAa,gBAAgB;
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../transport/websocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -88,6 +88,18 @@ class WebSocketManager {
|
|
|
88
88
|
constructor(config) {
|
|
89
89
|
this.config = config;
|
|
90
90
|
this.transport = null;
|
|
91
|
+
// Optional override for liveUrl, set by the client on cross-handler
|
|
92
|
+
// navigation. When set, takes precedence over options.liveUrl. This
|
|
93
|
+
// avoids mutating the caller-provided options object.
|
|
94
|
+
this.liveUrlOverride = null;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Update the live URL used for WebSocket reconnection. Called by the
|
|
98
|
+
* client on cross-handler navigation so the next connect() uses the
|
|
99
|
+
* new page path without mutating the shared options object.
|
|
100
|
+
*/
|
|
101
|
+
setLiveUrl(liveUrl) {
|
|
102
|
+
this.liveUrlOverride = liveUrl;
|
|
91
103
|
}
|
|
92
104
|
async connect() {
|
|
93
105
|
const liveUrl = this.getLiveUrl();
|
|
@@ -144,7 +156,7 @@ class WebSocketManager {
|
|
|
144
156
|
return this.transport?.getSocket() ?? null;
|
|
145
157
|
}
|
|
146
158
|
getWebSocketUrl() {
|
|
147
|
-
const liveUrl = this.config.options.liveUrl || "/live";
|
|
159
|
+
const liveUrl = this.liveUrlOverride || this.config.options.liveUrl || "/live";
|
|
148
160
|
const baseUrl = this.config.options.wsUrl;
|
|
149
161
|
if (baseUrl) {
|
|
150
162
|
return baseUrl;
|
|
@@ -153,7 +165,9 @@ class WebSocketManager {
|
|
|
153
165
|
return `${wsScheme}//${window.location.host}${liveUrl}`;
|
|
154
166
|
}
|
|
155
167
|
getLiveUrl() {
|
|
156
|
-
return this.
|
|
168
|
+
return (this.liveUrlOverride ||
|
|
169
|
+
this.config.options.liveUrl ||
|
|
170
|
+
window.location.pathname + window.location.search);
|
|
157
171
|
}
|
|
158
172
|
}
|
|
159
173
|
exports.WebSocketManager = WebSocketManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../transport/websocket.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../transport/websocket.ts"],"names":[],"mappings":";;;AAuOA,gEAmBC;AAED,8CAsBC;AAjQD;;;GAGG;AACH,MAAa,kBAAkB;IAM7B,YAA6B,OAAkC;QAAlC,YAAO,GAAP,OAAO,CAA2B;QALvD,WAAM,GAAqB,IAAI,CAAC;QAChC,mBAAc,GAAkB,IAAI,CAAC;QACrC,mBAAc,GAAG,KAAK,CAAC;QACvB,sBAAiB,GAAG,CAAC,CAAC;IAEoC,CAAC;IAEnE,OAAO;QACL,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;YACnB,oDAAoD;YACpD,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC;QAEF,MAAM,CAAC,SAAS,GAAG,CAAC,KAA2B,EAAE,EAAE;YACjD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC;QAEF,MAAM,CAAC,OAAO,GAAG,CAAC,KAAiB,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBACvD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,CAAC,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;YAChC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,IAAY;QACf,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC,CAAE,qBAAqB;YACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,0CAA0C;QAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,IAAI,EAAE,CAAC;QAC5D,IAAI,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,WAAW,EAAE,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,uDAAuD;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,KAAK,CAAC;QACzD,MAAM,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;QAE7E,2EAA2E;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;QAEpC,yCAAyC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE5D,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YAC3C,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACjC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;CACF;AA3FD,gDA2FC;AAkBD,MAAa,gBAAgB;IAO3B,YAA6B,MAA8B;QAA9B,WAAM,GAAN,MAAM,CAAwB;QANnD,cAAS,GAA8B,IAAI,CAAC;QACpD,oEAAoE;QACpE,oEAAoE;QACpE,sDAAsD;QAC9C,oBAAe,GAAkB,IAAI,CAAC;IAEgB,CAAC;IAE/D;;;;OAIG;IACH,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAElC,MAAM,WAAW,GAAG,MAAM,0BAA0B,CAClD,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,MAAM,CACnB,CAAC;QACF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1E,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAkB,CAAC;YACtC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE;YAC3B,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa;YAChD,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc;YAClD,iBAAiB,EAAE,KAAK,EAAE,qBAAqB;YAC/C,oBAAoB,EAAE,EAAE,EAAE,+BAA+B;YACzD,MAAM,EAAE,GAAG,EAAE;gBACX,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,CAAC;YACD,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;gBACnB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACxC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;YACD,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC/B,CAAC;YACD,kBAAkB,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBACrC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC;YACD,iBAAiB,EAAE,GAAG,EAAE;gBACtB,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACpC,CAAC;YACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,UAAU;QACR,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,IAAY;QACf,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,UAAU,CAAC;IACjD,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC;IAC7C,CAAC;IAEO,eAAe;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;QAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAC1C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACxE,OAAO,GAAG,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC;IAC1D,CAAC;IAEO,UAAU;QAChB,OAAO,CACL,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;YAC3B,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAClD,CAAC;IACJ,CAAC;CACF;AAnGD,4CAmGC;AAEM,KAAK,UAAU,0BAA0B,CAC9C,OAAe,EACf,MAAe;IAEf,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;YACpC,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAClE,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,KAAK,SAAS,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,IAAI,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,OAAe,EACf,MAAe;IAEf,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;YACpC,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,SAAS;YACtB,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;aAC3B;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmB,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,IAAI,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED