@statewalker/webrun-http-browser 0.3.2 → 0.3.4
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/LICENSE +1 -1
- package/README.md +321 -50
- package/demo/demo-1.html +109 -194
- package/demo/demo-2.html +119 -580
- package/dist/core/data-calls.d.ts +5 -0
- package/dist/core/data-calls.d.ts.map +1 -0
- package/dist/core/data-channels.d.ts +17 -0
- package/dist/core/data-channels.d.ts.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/message-target.d.ts +16 -0
- package/dist/core/message-target.d.ts.map +1 -0
- package/dist/core/registry.d.ts +18 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/http/http-send-recieve.d.ts +23 -0
- package/dist/http/http-send-recieve.d.ts.map +1 -0
- package/dist/http/index.d.ts +4 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2541 -807
- package/dist/relay/index-sw.d.ts +7 -0
- package/dist/relay/index-sw.d.ts.map +1 -0
- package/dist/relay/index.d.ts +69 -0
- package/dist/relay/index.d.ts.map +1 -0
- package/dist/relay/split-service-url.d.ts +13 -0
- package/dist/relay/split-service-url.d.ts.map +1 -0
- package/dist/relay-sw.d.ts +2 -0
- package/dist/relay-sw.d.ts.map +1 -0
- package/dist/relay-sw.js +878 -0
- package/dist/sw/http-sw-dispatcher.d.ts +28 -0
- package/dist/sw/http-sw-dispatcher.d.ts.map +1 -0
- package/dist/sw/index.d.ts +3 -0
- package/dist/sw/index.d.ts.map +1 -0
- package/dist/sw/sw-dispatcher.d.ts +74 -0
- package/dist/sw/sw-dispatcher.d.ts.map +1 -0
- package/dist/sw-worker.d.ts +2 -0
- package/dist/sw-worker.d.ts.map +1 -0
- package/dist/sw-worker.js +813 -0
- package/dist/sw.d.ts +2 -0
- package/dist/sw.d.ts.map +1 -0
- package/dist/sw.js +1076 -0
- package/package.json +50 -37
- package/public/index.html +61 -97
- package/public/index.js +7 -4
- package/public/sw-worker.js +4 -0
- package/public-relay/heartbeat.js +4 -3
- package/public-relay/relay-sw.js +4 -6
- package/public-relay/relay.html +16 -11
- package/src/core/data-calls.ts +46 -0
- package/src/core/data-channels.ts +224 -0
- package/src/core/index.ts +9 -0
- package/src/core/message-target.ts +18 -0
- package/src/core/registry.ts +54 -0
- package/src/http/http-send-recieve.ts +81 -0
- package/src/http/index.ts +7 -0
- package/src/index.ts +3 -0
- package/src/relay/index-sw.ts +145 -0
- package/src/relay/index.ts +261 -0
- package/src/relay/split-service-url.ts +30 -0
- package/src/relay-sw.ts +7 -0
- package/src/sw/http-sw-dispatcher.ts +122 -0
- package/src/sw/index.ts +2 -0
- package/src/sw/sw-dispatcher.ts +307 -0
- package/src/sw-worker.ts +7 -0
- package/src/sw.ts +1 -0
- package/CHANGELOG.md +0 -1
- package/demo/demo-3.html +0 -167
- package/dist/index-sw-umd.js +0 -798
- package/dist/index-sw-umd.min.js +0 -2
- package/dist/index-sw.js +0 -791
- package/dist/index-sw.min.js +0 -2
- package/dist/index-umd.js +0 -853
- package/dist/index-umd.min.js +0 -2
- package/dist/index.min.js +0 -2
- package/index.js +0 -1
- package/src/core/data-calls.js +0 -36
- package/src/core/data-channels.js +0 -192
- package/src/core/data-send-recieve.js +0 -28
- package/src/core/errors.js +0 -13
- package/src/core/index.js +0 -4
- package/src/http/HttpError.js +0 -59
- package/src/http/http-send-recieve.js +0 -40
- package/src/http/http-stubs.js +0 -135
- package/src/http/index.js +0 -3
- package/src/http/readable-streams.js +0 -33
- package/src/index.js +0 -7
- package/src/relay/index-sw.js +0 -216
- package/src/relay/index.js +0 -263
- package/src/relay/splitServiceUrl.js +0 -24
- package/src/sw/http-sw-dispatcher.js +0 -128
- package/src/sw/sw-dispatcher.js +0 -264
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { MessageSink, MessageSource } from "./message-target.js";
|
|
2
|
+
export type ChannelCallHandler = (event: MessageEvent, params: unknown, ...transfers: MessagePort[]) => unknown;
|
|
3
|
+
export declare function callChannel<T = unknown>(target: MessageSink, callType: string, params: unknown, ...transfers: Transferable[]): Promise<T>;
|
|
4
|
+
export declare function handleChannelCalls(target: MessageSource, callType: string, handler: ChannelCallHandler): () => void;
|
|
5
|
+
//# sourceMappingURL=data-calls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-calls.d.ts","sourceRoot":"","sources":["../../src/core/data-calls.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEtE,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,OAAO,EACf,GAAG,SAAS,EAAE,WAAW,EAAE,KACxB,OAAO,CAAC;AAEb,wBAAgB,WAAW,CAAC,CAAC,GAAG,OAAO,EACrC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,GAAG,SAAS,EAAE,YAAY,EAAE,GAC3B,OAAO,CAAC,CAAC,CAAC,CAUZ;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,kBAAkB,GAC1B,MAAM,IAAI,CAeZ"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { MessageTarget } from "./message-target.js";
|
|
2
|
+
export interface InvocationChannel {
|
|
3
|
+
start(): Promise<void>;
|
|
4
|
+
close(): Promise<void>;
|
|
5
|
+
invoke<T = unknown>(request?: unknown, ...transfers: Transferable[]): Promise<T>;
|
|
6
|
+
}
|
|
7
|
+
export interface NewInvocationChannelOptions {
|
|
8
|
+
port: MessageTarget;
|
|
9
|
+
handler?: (request: unknown, ...ports: MessagePort[]) => unknown;
|
|
10
|
+
onError?: (error: unknown) => void;
|
|
11
|
+
newCallId?: () => number;
|
|
12
|
+
}
|
|
13
|
+
export declare function newInvokationChannel({ port, handler, onError, newCallId, }: NewInvocationChannelOptions): InvocationChannel;
|
|
14
|
+
export declare function sendStream<T>(communicationPort: MessageTarget, input: AsyncIterable<T>, params?: Record<string, unknown>): AsyncGenerator<T, void, unknown>;
|
|
15
|
+
export type StreamHandler<T> = (input: AsyncIterable<T>, params: Record<string, unknown>) => AsyncIterable<T> | Promise<AsyncIterable<T>>;
|
|
16
|
+
export declare function handleStreams<T>(communicationPort: MessageTarget, handler: StreamHandler<T>): () => void;
|
|
17
|
+
//# sourceMappingURL=data-channels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-channels.d.ts","sourceRoot":"","sources":["../../src/core/data-channels.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAqBzD,MAAM,WAAW,iBAAiB;IAChC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAClF;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC;IACjE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;CAC1B;AAED,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,OAEC,EACD,OAAuB,EACvB,SAAuC,GACxC,EAAE,2BAA2B,GAAG,iBAAiB,CAoEjD;AAED,wBAAuB,UAAU,CAAC,CAAC,EACjC,iBAAiB,EAAE,aAAa,EAChC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAYlC;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAC7B,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAElD,wBAAgB,aAAa,CAAC,CAAC,EAC7B,iBAAiB,EAAE,aAAa,EAChC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GACxB,MAAM,IAAI,CAqBZ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAGA,cAAc,6BAA6B,CAAC;AAE5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type MessageListener = (event: MessageEvent) => void | Promise<void>;
|
|
2
|
+
/** An object we can listen for `"message"` events on. */
|
|
3
|
+
export interface MessageSource {
|
|
4
|
+
addEventListener(type: "message", listener: MessageListener): void;
|
|
5
|
+
removeEventListener(type: "message", listener: MessageListener): void;
|
|
6
|
+
start?(): void | Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
/** An object we can post messages to (with optional transferable list). */
|
|
9
|
+
export interface MessageSink {
|
|
10
|
+
postMessage(message: unknown, transfer?: Transferable[]): void;
|
|
11
|
+
}
|
|
12
|
+
/** Full-duplex message target: both sends and receives. */
|
|
13
|
+
export interface MessageTarget extends MessageSource, MessageSink {
|
|
14
|
+
close?(): void | Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=message-target.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-target.d.ts","sourceRoot":"","sources":["../../src/core/message-target.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5E,yDAAyD;AACzD,MAAM,WAAW,aAAa;IAC5B,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IACnE,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IACtE,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;CAChE;AAED,2DAA2D;AAC3D,MAAM,WAAW,aAAc,SAAQ,aAAa,EAAE,WAAW;IAC/D,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type CleanupAction = () => unknown;
|
|
2
|
+
interface CleanupFn {
|
|
3
|
+
(skip?: boolean): unknown;
|
|
4
|
+
action: CleanupAction;
|
|
5
|
+
}
|
|
6
|
+
export interface Registry {
|
|
7
|
+
register(action: CleanupAction): CleanupFn;
|
|
8
|
+
unregister(action: CleanupAction): void;
|
|
9
|
+
clear(): void;
|
|
10
|
+
}
|
|
11
|
+
export type NewRegistryResult = [
|
|
12
|
+
register: Registry["register"],
|
|
13
|
+
clear: Registry["clear"],
|
|
14
|
+
unregister: Registry["unregister"]
|
|
15
|
+
] & Registry;
|
|
16
|
+
export declare function newRegistry(onError?: (error: unknown) => void): NewRegistryResult;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC;AAE1C,UAAU,SAAS;IACjB,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC;IAC3C,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IACxC,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC;IAC9B,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;IACxB,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC;CACnC,GACC,QAAQ,CAAC;AAEX,wBAAgB,WAAW,CAAC,OAAO,GAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAoB,GAAG,iBAAiB,CAiChG"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type HttpHandler } from "@statewalker/webrun-http-streams";
|
|
2
|
+
import type { MessageTarget } from "../core/message-target.js";
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated For new code, prefer the `MessagePort`-based stack from
|
|
5
|
+
* `@statewalker/webrun-http-port`. Once a `MessagePort` is established between
|
|
6
|
+
* page and worker, `httpServe(port, handler)` provides equivalent semantics
|
|
7
|
+
* with `callBidi` multiplexing, full-duplex streaming, and `AbortSignal`.
|
|
8
|
+
* This helper remains for existing ServiceWorker setups that still consume the
|
|
9
|
+
* `MessageTarget` surface; it will be reimplemented on top of
|
|
10
|
+
* `webrun-http-port` in a follow-up release.
|
|
11
|
+
*/
|
|
12
|
+
export declare function handleHttpRequests(communicationPort: MessageTarget, handler: HttpHandler): () => void;
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated For new code, prefer the `MessagePort`-based stack from
|
|
15
|
+
* `@statewalker/webrun-http-port/fetch`. Once the page and SW share a
|
|
16
|
+
* `MessagePort`, `fetchOverPort(port, request)` provides the same
|
|
17
|
+
* `Request → Response` semantics with multiplexing via `callBidi`, JSONL
|
|
18
|
+
* envelope framing, and native `AbortSignal` support. This helper remains for
|
|
19
|
+
* existing ServiceWorker setups; it will be reimplemented on top of
|
|
20
|
+
* `webrun-http-port` in a follow-up release.
|
|
21
|
+
*/
|
|
22
|
+
export declare function sendHttpRequest(communicationPort: MessageTarget, request: Request): Promise<Response>;
|
|
23
|
+
//# sourceMappingURL=http-send-recieve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-send-recieve.d.ts","sourceRoot":"","sources":["../../src/http/http-send-recieve.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAMjB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AA+B/D;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,iBAAiB,EAAE,aAAa,EAChC,OAAO,EAAE,WAAW,GACnB,MAAM,IAAI,CAOZ;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,iBAAiB,EAAE,aAAa,EAChC,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,QAAQ,CAAC,CAOnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAIA,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
|