@seanhogg/builderforce-webcontainers 2026.10.7 → 2026.10.8
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/assets.js +3 -3
- package/dist/host.d.ts +7 -1
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +27 -8
- package/dist/host.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/node/index.d.ts +4 -8
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +1 -25
- package/dist/node/index.js.map +1 -1
- package/dist/node/portResponder.d.ts +45 -0
- package/dist/node/portResponder.d.ts.map +1 -0
- package/dist/node/portResponder.js +136 -0
- package/dist/node/portResponder.js.map +1 -0
- package/dist/node/processHost.d.ts +13 -2
- package/dist/node/processHost.d.ts.map +1 -1
- package/dist/node/processHost.js +62 -16
- package/dist/node/processHost.js.map +1 -1
- package/dist/node/protocol.d.ts +42 -9
- package/dist/node/protocol.d.ts.map +1 -1
- package/dist/node/protocol.js.map +1 -1
- package/dist/node/responseWire.d.ts +27 -0
- package/dist/node/responseWire.d.ts.map +1 -0
- package/dist/node/responseWire.js +99 -0
- package/dist/node/responseWire.js.map +1 -0
- package/dist/node/worker.js +141 -125
- package/dist/node/workerProcess.d.ts +3 -1
- package/dist/node/workerProcess.d.ts.map +1 -1
- package/dist/node/workerProcess.js +49 -19
- package/dist/node/workerProcess.js.map +1 -1
- package/dist/previewBridge.d.ts +37 -0
- package/dist/previewBridge.d.ts.map +1 -0
- package/dist/previewBridge.js +116 -0
- package/dist/previewBridge.js.map +1 -0
- package/dist/previewMessages.d.ts +5 -0
- package/dist/previewMessages.d.ts.map +1 -1
- package/dist/previewMessages.js +18 -11
- package/dist/previewMessages.js.map +1 -1
- package/dist/process-worker.js +141 -125
- package/dist/protocol.d.ts +23 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +8 -0
- package/dist/protocol.js.map +1 -1
- package/dist/relay.html +1 -1
- package/dist/snapshotStore.d.ts +30 -0
- package/dist/snapshotStore.d.ts.map +1 -0
- package/dist/snapshotStore.js +115 -0
- package/dist/snapshotStore.js.map +1 -0
- package/dist/sw.js +1 -1
- package/dist/swRouter.d.ts +8 -1
- package/dist/swRouter.d.ts.map +1 -1
- package/dist/swRouter.js +40 -5
- package/dist/swRouter.js.map +1 -1
- package/package.json +3 -2
- package/src/host.ts +31 -8
- package/src/index.ts +6 -2
- package/src/node/index.ts +4 -23
- package/src/node/portResponder.ts +175 -0
- package/src/node/processHost.ts +73 -15
- package/src/node/protocol.ts +25 -4
- package/src/node/responseWire.ts +97 -0
- package/src/node/workerProcess.ts +52 -21
- package/src/previewBridge.ts +148 -0
- package/src/previewMessages.ts +17 -9
- package/src/protocol.ts +35 -1
- package/src/snapshotStore.ts +135 -0
- package/src/sw.ts +2 -0
- package/src/swRouter.ts +35 -6
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The worker side of one process: mirror the file system, build a `System`
|
|
3
3
|
* whose spawn/listen/loopback are relayed to the page, run the program, and
|
|
4
|
-
* stream its output back.
|
|
4
|
+
* stream its output back. Its servers' responses stream to the page as they
|
|
5
|
+
* are written, and connections the page upgrades reach the server's `upgrade`
|
|
6
|
+
* handler as a byte pipe. No worker globals in here — `post` and the message
|
|
5
7
|
* feed are injected — so the same code runs in a real Worker (worker.ts) and
|
|
6
8
|
* in-thread in tests.
|
|
7
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerProcess.d.ts","sourceRoot":"","sources":["../../src/node/workerProcess.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workerProcess.d.ts","sourceRoot":"","sources":["../../src/node/workerProcess.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAYL,KAAK,YAAY,EACjB,KAAK,MAAM,EAEZ,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAQ,YAAY,EAAgB,YAAY,EAAE,MAAM,eAAe,CAAC;AAIpF,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,YAAY,GAAG,SAAS,CAAC;IAC9C,+FAA+F;IAC/F,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC7D,oEAAoE;IACpE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAID,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG;IAAE,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;CAAE,CAgNrG"}
|
|
@@ -1,19 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The worker side of one process: mirror the file system, build a `System`
|
|
3
3
|
* whose spawn/listen/loopback are relayed to the page, run the program, and
|
|
4
|
-
* stream its output back.
|
|
4
|
+
* stream its output back. Its servers' responses stream to the page as they
|
|
5
|
+
* are written, and connections the page upgrades reach the server's `upgrade`
|
|
6
|
+
* handler as a byte pipe. No worker globals in here — `post` and the message
|
|
5
7
|
* feed are injected — so the same code runs in a real Worker (worker.ts) and
|
|
6
8
|
* in-thread in tests.
|
|
7
9
|
*/
|
|
8
|
-
import { VirtualFileSystem, commandNotFound, defaultPrograms, resolveCommand, runProgram, } from '@seanhogg/builderforce-webcontainers-core';
|
|
10
|
+
import { VirtualFileSystem, commandNotFound, createChannelPair, defaultPrograms, resolveCommand, runProgram, textResponse, } from '@seanhogg/builderforce-webcontainers-core';
|
|
9
11
|
import { portPath } from './protocol.js';
|
|
12
|
+
import { ResponseReceiver, sendResponse } from './responseWire.js';
|
|
10
13
|
const EPHEMERAL = 49152;
|
|
11
14
|
export function createWorkerProcess(deps) {
|
|
12
15
|
const fs = new VirtualFileSystem();
|
|
13
16
|
const handlers = new Map();
|
|
14
17
|
const knownPorts = new Set();
|
|
15
18
|
const children = new Map();
|
|
16
|
-
|
|
19
|
+
/** Responses to this process's loopback requests, streaming in from the page. */
|
|
20
|
+
const loopbacks = new ResponseReceiver();
|
|
21
|
+
/** Responses this process's servers are streaming to the page, by the page's request id. */
|
|
22
|
+
const serving = new Map();
|
|
23
|
+
/** Upgraded connections the page opened, by its connection id (our end of the pipe to the server). */
|
|
24
|
+
const sockets = new Map();
|
|
17
25
|
let nextChild = 1;
|
|
18
26
|
let nextReq = 1;
|
|
19
27
|
let applying = false;
|
|
@@ -98,7 +106,7 @@ export function createWorkerProcess(deps) {
|
|
|
98
106
|
throw commandNotFound(command);
|
|
99
107
|
return remoteChild(command, args, { ...options, cwd, env });
|
|
100
108
|
},
|
|
101
|
-
listen(port, handler) {
|
|
109
|
+
listen(port, handler, upgrade) {
|
|
102
110
|
let actual = port;
|
|
103
111
|
if (!actual)
|
|
104
112
|
for (actual = EPHEMERAL + (message.pid % 1000) * 8; knownPorts.has(actual); actual++)
|
|
@@ -106,12 +114,13 @@ export function createWorkerProcess(deps) {
|
|
|
106
114
|
if (knownPorts.has(actual))
|
|
107
115
|
throw Object.assign(new Error(`listen EADDRINUSE: address already in use :::${actual}`), { code: 'EADDRINUSE', errno: -98, syscall: 'listen', port: actual });
|
|
108
116
|
knownPorts.add(actual);
|
|
109
|
-
|
|
117
|
+
const entry = { handler, upgrade };
|
|
118
|
+
handlers.set(actual, entry);
|
|
110
119
|
deps.post({ type: 'listen', port: actual });
|
|
111
120
|
return {
|
|
112
121
|
port: actual,
|
|
113
122
|
close() {
|
|
114
|
-
if (handlers.get(actual) !==
|
|
123
|
+
if (handlers.get(actual) !== entry)
|
|
115
124
|
return;
|
|
116
125
|
handlers.delete(actual);
|
|
117
126
|
knownPorts.delete(actual);
|
|
@@ -122,12 +131,11 @@ export function createWorkerProcess(deps) {
|
|
|
122
131
|
loopback(port, request) {
|
|
123
132
|
const local = handlers.get(port);
|
|
124
133
|
if (local)
|
|
125
|
-
return local(request);
|
|
134
|
+
return local.handler(request);
|
|
126
135
|
const reqId = nextReq++;
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
});
|
|
136
|
+
const response = loopbacks.expect(reqId, () => deps.post({ type: 'request-cancel', reqId }));
|
|
137
|
+
deps.post({ type: 'loopback', reqId, port, request });
|
|
138
|
+
return response;
|
|
131
139
|
},
|
|
132
140
|
serverUrl: (port) => new URL(portPath(message.previewBase, port), message.previewOrigin).href,
|
|
133
141
|
announceServer: (port, url) => deps.post({ type: 'listening', port, url }),
|
|
@@ -192,16 +200,38 @@ export function createWorkerProcess(deps) {
|
|
|
192
200
|
return;
|
|
193
201
|
}
|
|
194
202
|
case 'http-request': {
|
|
195
|
-
const
|
|
196
|
-
const
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
void handler(message.request).then(respond, (error) => respond({ status: 500, headers: { 'content-type': 'text/plain' }, body: new TextEncoder().encode(String(error instanceof Error ? error.stack : error)) }));
|
|
203
|
+
const { reqId } = message;
|
|
204
|
+
const entry = handlers.get(message.port);
|
|
205
|
+
const response = entry ? entry.handler(message.request) : Promise.resolve(textResponse(502, `Nothing is listening on port ${message.port}.`));
|
|
206
|
+
serving.set(reqId, sendResponse(deps.post, reqId, response, () => serving.delete(reqId)));
|
|
200
207
|
return;
|
|
201
208
|
}
|
|
202
|
-
case '
|
|
203
|
-
|
|
204
|
-
|
|
209
|
+
case 'request-cancel':
|
|
210
|
+
return serving.get(message.reqId)?.();
|
|
211
|
+
case 'response-head':
|
|
212
|
+
case 'response-chunk':
|
|
213
|
+
case 'response-end':
|
|
214
|
+
return loopbacks.receive(message);
|
|
215
|
+
case 'socket-open': {
|
|
216
|
+
const { connId } = message;
|
|
217
|
+
const upgrade = handlers.get(message.port)?.upgrade;
|
|
218
|
+
if (!upgrade)
|
|
219
|
+
return deps.post({ type: 'socket-close', connId });
|
|
220
|
+
const [ours, server] = createChannelPair();
|
|
221
|
+
sockets.set(connId, ours);
|
|
222
|
+
ours.onData((data) => deps.post({ type: 'socket-data', connId, data }));
|
|
223
|
+
ours.onClose(() => {
|
|
224
|
+
sockets.delete(connId);
|
|
225
|
+
deps.post({ type: 'socket-close', connId });
|
|
226
|
+
});
|
|
227
|
+
upgrade(message.request, server);
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
case 'socket-data':
|
|
231
|
+
return sockets.get(message.connId)?.send(message.data);
|
|
232
|
+
case 'socket-close':
|
|
233
|
+
sockets.get(message.connId)?.close();
|
|
234
|
+
sockets.delete(message.connId);
|
|
205
235
|
return;
|
|
206
236
|
}
|
|
207
237
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerProcess.js","sourceRoot":"","sources":["../../src/node/workerProcess.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workerProcess.js","sourceRoot":"","sources":["../../src/node/workerProcess.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The host end of the preview bridge (see core's previewBridge.ts for the page
|
|
3
|
+
* end). A service worker cannot carry a WebSocket or set a cookie, so preview
|
|
4
|
+
* pages ask this page instead, each over a MessagePort they transfer:
|
|
5
|
+
*
|
|
6
|
+
* • `SOCKET_MESSAGE_TYPE` — connect a WebSocket to the virtual server on a
|
|
7
|
+
* port. The handshake and frames run over an upgraded connection to the
|
|
8
|
+
* server (`connectWebSocket` over `ProcessHost.upgrade`), carrying the
|
|
9
|
+
* preview's cookies for that port; messages relay both ways on the port.
|
|
10
|
+
* • `COOKIE_MESSAGE_TYPE` — keep a virtual-server page's `document.cookie`
|
|
11
|
+
* in step with the jar, and store what the page assigns.
|
|
12
|
+
*
|
|
13
|
+
* One window listener per runtime, accepting only messages from the preview
|
|
14
|
+
* origin whose page sits under this runtime's base (as `listenToPreview` does).
|
|
15
|
+
*/
|
|
16
|
+
import { type ByteChannel, type HttpRequestData, type PortCookieJars } from '@seanhogg/builderforce-webcontainers-core';
|
|
17
|
+
export interface PreviewBridgeOptions {
|
|
18
|
+
/** Open an upgraded connection to the server on `port` (`ProcessHost.upgrade`). */
|
|
19
|
+
upgrade(port: number, request: HttpRequestData): ByteChannel | undefined;
|
|
20
|
+
/** The runtime's cookie jars: sent with WebSocket handshakes and mirrored into `document.cookie`. */
|
|
21
|
+
cookies?: PortCookieJars;
|
|
22
|
+
}
|
|
23
|
+
/** The slice of MessagePort the bridge uses. */
|
|
24
|
+
export interface BridgePort {
|
|
25
|
+
postMessage(message: unknown, transfer?: Transferable[]): void;
|
|
26
|
+
onmessage: ((event: {
|
|
27
|
+
data: unknown;
|
|
28
|
+
}) => void) | null;
|
|
29
|
+
close(): void;
|
|
30
|
+
}
|
|
31
|
+
export interface PreviewBridge {
|
|
32
|
+
/** WebSockets currently open through the bridge. */
|
|
33
|
+
readonly openSockets: number;
|
|
34
|
+
dispose(): void;
|
|
35
|
+
}
|
|
36
|
+
export declare function listenToPreviewBridge(target: Pick<Window, 'addEventListener' | 'removeEventListener'>, origin: string, base: string, options: PreviewBridgeOptions): PreviewBridge;
|
|
37
|
+
//# sourceMappingURL=previewBridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"previewBridge.d.ts","sourceRoot":"","sources":["../src/previewBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EAEpB,MAAM,2CAA2C,CAAC;AAGnD,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,WAAW,GAAG,SAAS,CAAC;IACzE,qGAAqG;IACrG,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,gDAAgD;AAChD,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC/D,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACvD,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,OAAO,IAAI,IAAI,CAAC;CACjB;AAaD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,qBAAqB,CAAC,EAChE,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,GAC5B,aAAa,CAoFf"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The host end of the preview bridge (see core's previewBridge.ts for the page
|
|
3
|
+
* end). A service worker cannot carry a WebSocket or set a cookie, so preview
|
|
4
|
+
* pages ask this page instead, each over a MessagePort they transfer:
|
|
5
|
+
*
|
|
6
|
+
* • `SOCKET_MESSAGE_TYPE` — connect a WebSocket to the virtual server on a
|
|
7
|
+
* port. The handshake and frames run over an upgraded connection to the
|
|
8
|
+
* server (`connectWebSocket` over `ProcessHost.upgrade`), carrying the
|
|
9
|
+
* preview's cookies for that port; messages relay both ways on the port.
|
|
10
|
+
* • `COOKIE_MESSAGE_TYPE` — keep a virtual-server page's `document.cookie`
|
|
11
|
+
* in step with the jar, and store what the page assigns.
|
|
12
|
+
*
|
|
13
|
+
* One window listener per runtime, accepting only messages from the preview
|
|
14
|
+
* origin whose page sits under this runtime's base (as `listenToPreview` does).
|
|
15
|
+
*/
|
|
16
|
+
import { COOKIE_MESSAGE_TYPE, SOCKET_MESSAGE_TYPE, connectWebSocket, parsePortPath, } from '@seanhogg/builderforce-webcontainers-core';
|
|
17
|
+
import { previewPageOf } from './previewMessages.js';
|
|
18
|
+
/** Pages kept in sync per server port; older ones (navigated away, never said so) are dropped past this. */
|
|
19
|
+
const COOKIE_PAGES_PER_PORT = 50;
|
|
20
|
+
export function listenToPreviewBridge(target, origin, base, options) {
|
|
21
|
+
const sockets = new Set();
|
|
22
|
+
const cookiePages = new Map();
|
|
23
|
+
function openSocket(channel, data, page) {
|
|
24
|
+
const port = Number(data.port);
|
|
25
|
+
const path = typeof data.path === 'string' && data.path.startsWith('/') ? data.path : undefined;
|
|
26
|
+
const protocols = Array.isArray(data.protocols) ? data.protocols.filter((p) => typeof p === 'string') : [];
|
|
27
|
+
if (!Number.isInteger(port) || port < 1 || port > 65535 || !path) {
|
|
28
|
+
channel.postMessage({ kind: 'close', code: 1006, reason: '', wasClean: false });
|
|
29
|
+
return channel.close();
|
|
30
|
+
}
|
|
31
|
+
const headers = { host: `localhost:${port}`, origin: page.origin };
|
|
32
|
+
const cookie = options.cookies?.jar(port).header(path);
|
|
33
|
+
if (cookie)
|
|
34
|
+
headers.cookie = cookie;
|
|
35
|
+
if (typeof navigator !== 'undefined' && navigator.userAgent)
|
|
36
|
+
headers['user-agent'] = navigator.userAgent;
|
|
37
|
+
const connection = connectWebSocket((request) => options.upgrade(port, request), { path, protocols, headers });
|
|
38
|
+
sockets.add(connection);
|
|
39
|
+
connection.onOpen(({ protocol }) => channel.postMessage({ kind: 'open', protocol }));
|
|
40
|
+
connection.onMessage((message) => {
|
|
41
|
+
if (typeof message === 'string')
|
|
42
|
+
return channel.postMessage({ kind: 'message', data: message });
|
|
43
|
+
const buffer = new Uint8Array(message).buffer;
|
|
44
|
+
channel.postMessage({ kind: 'message', data: buffer }, [buffer]);
|
|
45
|
+
});
|
|
46
|
+
connection.onClose((info) => {
|
|
47
|
+
sockets.delete(connection);
|
|
48
|
+
channel.postMessage({ kind: 'close', ...info });
|
|
49
|
+
channel.close();
|
|
50
|
+
});
|
|
51
|
+
channel.onmessage = (event) => {
|
|
52
|
+
const message = event.data;
|
|
53
|
+
if (message?.kind === 'send') {
|
|
54
|
+
if (typeof message.data === 'string')
|
|
55
|
+
connection.send(message.data);
|
|
56
|
+
else if (message.data instanceof ArrayBuffer)
|
|
57
|
+
connection.send(new Uint8Array(message.data));
|
|
58
|
+
}
|
|
59
|
+
else if (message?.kind === 'close') {
|
|
60
|
+
connection.close(typeof message.code === 'number' ? message.code : undefined, typeof message.reason === 'string' ? message.reason : undefined);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function syncCookies(channel, page) {
|
|
65
|
+
const cookies = options.cookies;
|
|
66
|
+
const server = parsePortPath(page.pathname.slice(base.length - 1));
|
|
67
|
+
if (!cookies || !server)
|
|
68
|
+
return channel.close();
|
|
69
|
+
const pages = cookiePages.get(server.port) ?? [];
|
|
70
|
+
pages.push({ port: channel, path: server.path });
|
|
71
|
+
if (pages.length > COOKIE_PAGES_PER_PORT)
|
|
72
|
+
pages.shift()?.port.close();
|
|
73
|
+
cookiePages.set(server.port, pages);
|
|
74
|
+
channel.onmessage = (event) => {
|
|
75
|
+
const message = event.data;
|
|
76
|
+
if (message?.kind === 'set-cookie' && typeof message.value === 'string')
|
|
77
|
+
cookies.jar(server.port).setFromDocument(message.value, server.path);
|
|
78
|
+
};
|
|
79
|
+
// The page started from the jar as it was when served; catch up on anything since.
|
|
80
|
+
channel.postMessage({ kind: 'cookies', value: cookies.jar(server.port).documentCookie(server.path) });
|
|
81
|
+
}
|
|
82
|
+
const stopCookies = options.cookies?.onChange((port) => {
|
|
83
|
+
const jar = options.cookies.jar(port);
|
|
84
|
+
for (const page of cookiePages.get(port) ?? [])
|
|
85
|
+
page.port.postMessage({ kind: 'cookies', value: jar.documentCookie(page.path) });
|
|
86
|
+
});
|
|
87
|
+
const onMessage = (event) => {
|
|
88
|
+
const data = event.data;
|
|
89
|
+
const channel = event.ports?.[0];
|
|
90
|
+
const page = channel && data ? previewPageOf(event, origin, base) : undefined;
|
|
91
|
+
if (!page)
|
|
92
|
+
return;
|
|
93
|
+
if (data.type === SOCKET_MESSAGE_TYPE)
|
|
94
|
+
openSocket(channel, data, page);
|
|
95
|
+
else if (data.type === COOKIE_MESSAGE_TYPE)
|
|
96
|
+
syncCookies(channel, page);
|
|
97
|
+
};
|
|
98
|
+
target.addEventListener('message', onMessage);
|
|
99
|
+
return {
|
|
100
|
+
get openSockets() {
|
|
101
|
+
return sockets.size;
|
|
102
|
+
},
|
|
103
|
+
dispose() {
|
|
104
|
+
target.removeEventListener('message', onMessage);
|
|
105
|
+
stopCookies?.();
|
|
106
|
+
for (const connection of [...sockets])
|
|
107
|
+
connection.close(1001, 'The runtime stopped.');
|
|
108
|
+
sockets.clear();
|
|
109
|
+
for (const pages of cookiePages.values())
|
|
110
|
+
for (const page of pages)
|
|
111
|
+
page.port.close();
|
|
112
|
+
cookiePages.clear();
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=previewBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"previewBridge.js","sourceRoot":"","sources":["../src/previewBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,5 +15,10 @@ export interface PreviewMessages {
|
|
|
15
15
|
onConsole(listener: (message: PreviewConsoleMessage) => void): () => void;
|
|
16
16
|
dispose(): void;
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* The preview page a window message came from, when it is one of THIS runtime's:
|
|
20
|
+
* sent from the preview origin, by a page under `base`. Undefined otherwise.
|
|
21
|
+
*/
|
|
22
|
+
export declare function previewPageOf(event: MessageEvent, origin: string, base: string): URL | undefined;
|
|
18
23
|
export declare function listenToPreview(target: Pick<Window, 'addEventListener' | 'removeEventListener'>, origin: string, base: string): PreviewMessages;
|
|
19
24
|
//# sourceMappingURL=previewMessages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"previewMessages.d.ts","sourceRoot":"","sources":["../src/previewMessages.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,YAAY,CAAC;IACpB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC7D,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC1E,OAAO,IAAI,IAAI,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"previewMessages.d.ts","sourceRoot":"","sources":["../src/previewMessages.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,YAAY,CAAC;IACpB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC7D,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC1E,OAAO,IAAI,IAAI,CAAC;CACjB;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,CAShG;AAOD,wBAAgB,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,qBAAqB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,CA0B/I"}
|
package/dist/previewMessages.js
CHANGED
|
@@ -7,6 +7,22 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { CONSOLE_MESSAGE_TYPE, ERROR_MESSAGE_TYPE } from '@seanhogg/builderforce-webcontainers-core';
|
|
9
9
|
const LEVELS = new Set(['log', 'info', 'warn', 'error', 'debug']);
|
|
10
|
+
/**
|
|
11
|
+
* The preview page a window message came from, when it is one of THIS runtime's:
|
|
12
|
+
* sent from the preview origin, by a page under `base`. Undefined otherwise.
|
|
13
|
+
*/
|
|
14
|
+
export function previewPageOf(event, origin, base) {
|
|
15
|
+
const href = event.data?.href;
|
|
16
|
+
if (typeof href !== 'string' || event.origin !== origin)
|
|
17
|
+
return undefined;
|
|
18
|
+
try {
|
|
19
|
+
const page = new URL(href);
|
|
20
|
+
return page.pathname.startsWith(base) ? page : undefined; // else: another runtime's preview
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
10
26
|
function subscribe(set, listener) {
|
|
11
27
|
set.add(listener);
|
|
12
28
|
return () => set.delete(listener);
|
|
@@ -15,18 +31,9 @@ export function listenToPreview(target, origin, base) {
|
|
|
15
31
|
const errors = new Set();
|
|
16
32
|
const consoles = new Set();
|
|
17
33
|
const onMessage = (event) => {
|
|
18
|
-
|
|
19
|
-
if (!data || typeof data.href !== 'string' || event.origin !== origin)
|
|
34
|
+
if (!previewPageOf(event, origin, base))
|
|
20
35
|
return;
|
|
21
|
-
|
|
22
|
-
try {
|
|
23
|
-
path = new URL(data.href).pathname;
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
if (!path.startsWith(base))
|
|
29
|
-
return; // another runtime's preview
|
|
36
|
+
const data = event.data;
|
|
30
37
|
if (data.type === ERROR_MESSAGE_TYPE) {
|
|
31
38
|
const error = { message: String(data.message ?? ''), stack: typeof data.stack === 'string' ? data.stack : undefined, href: data.href };
|
|
32
39
|
for (const listener of errors)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"previewMessages.js","sourceRoot":"","sources":["../src/previewMessages.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAuBrG,MAAM,MAAM,GAAG,IAAI,GAAG,CAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAE1E,
|
|
1
|
+
{"version":3,"file":"previewMessages.js","sourceRoot":"","sources":["../src/previewMessages.ts"],"names":[],"mappings":"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"}
|