@graview/guest 0.1.7 → 0.1.9
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/README.md +86 -0
- package/dist/build.d.ts +43 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +117 -0
- package/dist/build.js.map +1 -0
- package/dist/channel.d.ts +51 -0
- package/dist/channel.d.ts.map +1 -0
- package/dist/channel.js +105 -0
- package/dist/channel.js.map +1 -0
- package/dist/guest.d.ts +2 -22
- package/dist/guest.d.ts.map +1 -1
- package/dist/guest.js +8 -89
- package/dist/guest.js.map +1 -1
- package/dist/host/frame.d.ts.map +1 -1
- package/dist/host/frame.js +1 -6
- package/dist/host/frame.js.map +1 -1
- package/dist/host/index.d.ts +3 -0
- package/dist/host/index.d.ts.map +1 -1
- package/dist/host/index.js.map +1 -1
- package/dist/host/kit.d.ts +85 -0
- package/dist/host/kit.d.ts.map +1 -0
- package/dist/host/kit.js +344 -0
- package/dist/host/kit.js.map +1 -0
- package/dist/host/nonce.d.ts +3 -0
- package/dist/host/nonce.d.ts.map +1 -0
- package/dist/host/nonce.js +7 -0
- package/dist/host/nonce.js.map +1 -0
- package/dist/host/react.d.ts +16 -5
- package/dist/host/react.d.ts.map +1 -1
- package/dist/host/react.js +31 -3
- package/dist/host/react.js.map +1 -1
- package/dist/host/session.d.ts +6 -0
- package/dist/host/session.d.ts.map +1 -1
- package/dist/host/session.js +4 -0
- package/dist/host/session.js.map +1 -1
- package/dist/host/worker.d.ts +96 -0
- package/dist/host/worker.d.ts.map +1 -0
- package/dist/host/worker.js +195 -0
- package/dist/host/worker.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/kit.d.ts +202 -0
- package/dist/kit.d.ts.map +1 -0
- package/dist/kit.js +69 -0
- package/dist/kit.js.map +1 -0
- package/dist/protocol.d.ts +48 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +20 -0
- package/dist/protocol.js.map +1 -1
- package/dist/worker/elements.d.ts +11 -0
- package/dist/worker/elements.d.ts.map +1 -0
- package/dist/worker/elements.js +28 -0
- package/dist/worker/elements.js.map +1 -0
- package/dist/worker/harden.d.ts +39 -0
- package/dist/worker/harden.d.ts.map +1 -0
- package/dist/worker/harden.js +175 -0
- package/dist/worker/harden.js.map +1 -0
- package/dist/worker/index.d.ts +32 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +92 -0
- package/dist/worker/index.js.map +1 -0
- package/dist/worker/listeners.d.ts +19 -0
- package/dist/worker/listeners.d.ts.map +1 -0
- package/dist/worker/listeners.js +157 -0
- package/dist/worker/listeners.js.map +1 -0
- package/dist/worker/natives.d.ts +7 -0
- package/dist/worker/natives.d.ts.map +1 -0
- package/dist/worker/natives.js +12 -0
- package/dist/worker/natives.js.map +1 -0
- package/package.json +30 -7
package/dist/host/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/host/react.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAsC,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAmB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/host/react.tsx"],"names":[],"mappings":"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"}
|
package/dist/host/session.d.ts
CHANGED
|
@@ -51,6 +51,12 @@ export interface GuestHostOptions<S extends AnySchema> {
|
|
|
51
51
|
readonly onNavigate?: (id: string) => void;
|
|
52
52
|
/** The guest asked for a height. */
|
|
53
53
|
readonly onSize?: (height: number) => void;
|
|
54
|
+
/**
|
|
55
|
+
* A worker guest's drawing (FR-68): its Remote DOM mutation records, for
|
|
56
|
+
* the kit's renderer to draw what the kit allows of. Without it, a
|
|
57
|
+
* `render` is dropped unread: a frame guest draws in its own document.
|
|
58
|
+
*/
|
|
59
|
+
readonly onRender?: (records: readonly unknown[]) => void;
|
|
54
60
|
readonly limits?: GuestLimits;
|
|
55
61
|
/**
|
|
56
62
|
* The frame's limiter, when the frame outlives this session: a guest
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/host/session.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/host/session.ts"],"names":[],"mappings":"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"}
|
package/dist/host/session.js
CHANGED
|
@@ -137,6 +137,10 @@ export function createGuestHost(options) {
|
|
|
137
137
|
stats.dropped += 1;
|
|
138
138
|
return;
|
|
139
139
|
}
|
|
140
|
+
if (data.type === "render" && Array.isArray(data.records) && options.onRender) {
|
|
141
|
+
options.onRender(data.records);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
140
144
|
if (data.type === "size" && typeof data.height === "number" && Number.isFinite(data.height)) {
|
|
141
145
|
options.onSize?.(Math.max(0, Math.min(maxHeight, Math.round(data.height))));
|
|
142
146
|
return;
|
package/dist/host/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/host/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAA8C,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/host/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { AnySchema, Principal, Store } from "@graview/core";
|
|
2
|
+
import type { Kit } from "../kit.js";
|
|
3
|
+
import { type KitLinks, type KitRefusal } from "./kit.js";
|
|
4
|
+
import { type GuestLimits, type GuestStats, type GuestViewInput } from "./session.js";
|
|
5
|
+
/**
|
|
6
|
+
* Where a worker guest's code comes from: a URL the host already holds (a
|
|
7
|
+
* `blob:` URL, typically), or the script's text, which the host makes into
|
|
8
|
+
* a `blob:` URL itself. A chat's widget receives the text through a tool
|
|
9
|
+
* call and never fetches it.
|
|
10
|
+
*/
|
|
11
|
+
export type GuestWorkerSource = {
|
|
12
|
+
readonly url: string;
|
|
13
|
+
} | {
|
|
14
|
+
readonly script: string;
|
|
15
|
+
};
|
|
16
|
+
/** Why a worker guest is not shown, for a host that falls back to something else. */
|
|
17
|
+
export type GuestWorkerFailure =
|
|
18
|
+
/** The page's policy refused the worker, or it failed before it said ready. */
|
|
19
|
+
"refused"
|
|
20
|
+
/**
|
|
21
|
+
* It never said ready in `readyMs`, or after it did, its runtime went
|
|
22
|
+
* `silentMs` without answering the host's heartbeat: its event loop is
|
|
23
|
+
* blocked (a `while (true)`), and it was stopped.
|
|
24
|
+
*/
|
|
25
|
+
| "silent"
|
|
26
|
+
/** It drew more than `maxNodes`; it was stopped. */
|
|
27
|
+
| "budget";
|
|
28
|
+
export interface MountGuestWorkerOptions<S extends AnySchema> {
|
|
29
|
+
readonly worker: GuestWorkerSource;
|
|
30
|
+
/** The view's registered name: what the rail says an act came through (`via: "view:<name>"`). */
|
|
31
|
+
readonly view: string;
|
|
32
|
+
readonly store: Store<S>;
|
|
33
|
+
/** The viewer: what is pushed is what they may see, and what is asked for is applied as them. */
|
|
34
|
+
readonly principal: Principal;
|
|
35
|
+
/** What is drawn where the guest is. */
|
|
36
|
+
readonly input?: () => GuestViewInput;
|
|
37
|
+
readonly onNavigate?: (id: string) => void;
|
|
38
|
+
/** The guest asked for a height. By default its container takes it as a minimum. */
|
|
39
|
+
readonly onSize?: (height: number) => void;
|
|
40
|
+
readonly limits?: GuestLimits & {
|
|
41
|
+
/** The most nodes the guest may draw at once; past it the worker is stopped. 2 000 by default. */
|
|
42
|
+
readonly maxNodes?: number;
|
|
43
|
+
/** How long the guest has to say ready, in milliseconds. 5 000 by default. */
|
|
44
|
+
readonly readyMs?: number;
|
|
45
|
+
/**
|
|
46
|
+
* How long, once it has said ready, the guest's runtime may go without
|
|
47
|
+
* answering the host's heartbeat, in milliseconds; past it the worker
|
|
48
|
+
* is stopped and `onFailure` hears `silent`. 5 000 by default. The
|
|
49
|
+
* host asks every quarter of it, and at least once a second. A guest
|
|
50
|
+
* that blocks its own event loop cannot answer; one that is busy but
|
|
51
|
+
* yields answers late and is kept. Time the host's own page was held
|
|
52
|
+
* up (a long task, a throttled background tab) is not counted.
|
|
53
|
+
*/
|
|
54
|
+
readonly silentMs?: number;
|
|
55
|
+
};
|
|
56
|
+
/** The guest is not going to be shown, and why: the host can show something else in its place. */
|
|
57
|
+
readonly onFailure?: (reason: GuestWorkerFailure) => void;
|
|
58
|
+
/** The kit it may draw from. `GUEST_KIT` by default. */
|
|
59
|
+
readonly kit?: Kit;
|
|
60
|
+
/**
|
|
61
|
+
* Where the guest's links may go: `{ origins: ["https://recipes.example"] }`
|
|
62
|
+
* draws a link only to one of them, and any other with no `href`. Any
|
|
63
|
+
* `https:` address by default. Every link opens with `noopener
|
|
64
|
+
* noreferrer` and no referrer, in a new tab unless the kit says otherwise.
|
|
65
|
+
*/
|
|
66
|
+
readonly links?: KitLinks;
|
|
67
|
+
/** The container's accessible name. The view's name by default. */
|
|
68
|
+
readonly title?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface GuestWorker {
|
|
71
|
+
/** The container the guest's kit is drawn in. */
|
|
72
|
+
readonly element: HTMLElement;
|
|
73
|
+
/** The worker, until it is stopped; undefined when the page refused it. */
|
|
74
|
+
readonly worker: Worker | undefined;
|
|
75
|
+
/** Push again: the view's input moved. */
|
|
76
|
+
update(): void;
|
|
77
|
+
readonly stats: Readonly<GuestStats>;
|
|
78
|
+
/** What of the guest's drawing was refused (the last 200). */
|
|
79
|
+
readonly refused: readonly KitRefusal[];
|
|
80
|
+
dispose(): void;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* MOUNT A GUEST VIEW IN A WORKER (FR-68): a classic Web Worker — never
|
|
84
|
+
* `type: "module"`, which a `blob:` URL in an opaque origin cannot start —
|
|
85
|
+
* and the same protocol a frame guest speaks. Its `guest-ready` is
|
|
86
|
+
* answered once, with a fresh nonce and a MessageChannel; every request
|
|
87
|
+
* over the port carries the nonce. What it asks for is applied as the
|
|
88
|
+
* viewer, through the view, under the same limits as a frame; what it
|
|
89
|
+
* draws is drawn here, from the kit alone.
|
|
90
|
+
*/
|
|
91
|
+
export declare function mountGuestWorker<S extends AnySchema>(element: HTMLElement, options: MountGuestWorkerOptions<S>): GuestWorker;
|
|
92
|
+
export { createKitRenderer, GUEST_KIT_CSS, hostAttribute, kitValue } from "./kit.js";
|
|
93
|
+
export type { KitLinks, KitRefusal, KitRefusalReason, KitRenderer, KitRendererOptions } from "./kit.js";
|
|
94
|
+
export { GUEST_KIT, KIT_LINK_TARGETS, KIT_TONES } from "../kit.js";
|
|
95
|
+
export type { GuestKitElement, Kit, KitComponent, KitEvent, KitProperty, KitPropertyType, KitTone } from "../kit.js";
|
|
96
|
+
//# sourceMappingURL=worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/host/worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { GUEST_PROTOCOL, isGuestReady } from "../protocol.js";
|
|
2
|
+
import { createKitRenderer, GUEST_KIT_CSS } from "./kit.js";
|
|
3
|
+
import { mintNonce } from "./nonce.js";
|
|
4
|
+
import { createGuestHost, createGuestLimiter } from "./session.js";
|
|
5
|
+
const STYLE_ID = "graview-guest-kit";
|
|
6
|
+
/**
|
|
7
|
+
* MOUNT A GUEST VIEW IN A WORKER (FR-68): a classic Web Worker — never
|
|
8
|
+
* `type: "module"`, which a `blob:` URL in an opaque origin cannot start —
|
|
9
|
+
* and the same protocol a frame guest speaks. Its `guest-ready` is
|
|
10
|
+
* answered once, with a fresh nonce and a MessageChannel; every request
|
|
11
|
+
* over the port carries the nonce. What it asks for is applied as the
|
|
12
|
+
* viewer, through the view, under the same limits as a frame; what it
|
|
13
|
+
* draws is drawn here, from the kit alone.
|
|
14
|
+
*/
|
|
15
|
+
export function mountGuestWorker(element, options) {
|
|
16
|
+
const document = element.ownerDocument;
|
|
17
|
+
const window = document.defaultView;
|
|
18
|
+
if (!document.getElementById(STYLE_ID)) {
|
|
19
|
+
const style = document.createElement("style");
|
|
20
|
+
style.id = STYLE_ID;
|
|
21
|
+
style.textContent = GUEST_KIT_CSS;
|
|
22
|
+
document.head.appendChild(style);
|
|
23
|
+
}
|
|
24
|
+
const container = document.createElement("div");
|
|
25
|
+
container.className = "graview-guest";
|
|
26
|
+
container.setAttribute("role", "group");
|
|
27
|
+
container.setAttribute("aria-label", options.title ?? options.view);
|
|
28
|
+
container.setAttribute("data-guest-view", options.view);
|
|
29
|
+
element.appendChild(container);
|
|
30
|
+
const stats = { applied: 0, refused: 0, dropped: 0 };
|
|
31
|
+
const limiter = createGuestLimiter(options.limits);
|
|
32
|
+
let session;
|
|
33
|
+
let port;
|
|
34
|
+
let renderer;
|
|
35
|
+
let worker;
|
|
36
|
+
let failed = false;
|
|
37
|
+
let counted = { applied: 0, refused: 0, dropped: 0 };
|
|
38
|
+
const tally = () => {
|
|
39
|
+
if (!session)
|
|
40
|
+
return;
|
|
41
|
+
const now = session.stats;
|
|
42
|
+
stats.applied += now.applied - counted.applied;
|
|
43
|
+
stats.refused += now.refused - counted.refused;
|
|
44
|
+
stats.dropped += now.dropped - counted.dropped;
|
|
45
|
+
counted = { ...now };
|
|
46
|
+
};
|
|
47
|
+
const made = "script" in options.worker ? window.URL.createObjectURL(new window.Blob([options.worker.script], { type: "text/javascript" })) : undefined;
|
|
48
|
+
const url = "script" in options.worker ? made : options.worker.url;
|
|
49
|
+
let silence = 0;
|
|
50
|
+
let watchdog = 0;
|
|
51
|
+
const stop = () => {
|
|
52
|
+
tally();
|
|
53
|
+
session?.dispose();
|
|
54
|
+
port?.close();
|
|
55
|
+
worker?.terminate();
|
|
56
|
+
session = undefined;
|
|
57
|
+
port = undefined;
|
|
58
|
+
worker = undefined;
|
|
59
|
+
window.clearTimeout(silence);
|
|
60
|
+
window.clearInterval(watchdog);
|
|
61
|
+
if (made)
|
|
62
|
+
window.URL.revokeObjectURL(made);
|
|
63
|
+
};
|
|
64
|
+
const fail = (reason) => {
|
|
65
|
+
if (failed)
|
|
66
|
+
return;
|
|
67
|
+
failed = true;
|
|
68
|
+
stop();
|
|
69
|
+
renderer?.dispose();
|
|
70
|
+
options.onFailure?.(reason);
|
|
71
|
+
};
|
|
72
|
+
const ready = () => {
|
|
73
|
+
window.clearTimeout(silence);
|
|
74
|
+
const nonce = mintNonce();
|
|
75
|
+
const channel = new window.MessageChannel();
|
|
76
|
+
port = channel.port1;
|
|
77
|
+
const draw = createKitRenderer(container, {
|
|
78
|
+
...(options.kit ? { kit: options.kit } : {}),
|
|
79
|
+
...(options.links ? { links: options.links } : {}),
|
|
80
|
+
onEvent: (listener, detail) => channel.port1.postMessage({ type: "event", listener, ...(detail !== undefined ? { detail } : {}) }),
|
|
81
|
+
...(options.limits?.maxNodes !== undefined ? { maxNodes: options.limits.maxNodes } : {}),
|
|
82
|
+
onOverBudget: () => fail("budget"),
|
|
83
|
+
});
|
|
84
|
+
renderer = draw;
|
|
85
|
+
const live = createGuestHost({
|
|
86
|
+
store: options.store,
|
|
87
|
+
principal: options.principal,
|
|
88
|
+
view: options.view,
|
|
89
|
+
nonce,
|
|
90
|
+
send: (message) => channel.port1.postMessage(message),
|
|
91
|
+
onRender: (records) => draw.apply(records),
|
|
92
|
+
...(options.input ? { input: options.input } : {}),
|
|
93
|
+
...(options.onNavigate ? { onNavigate: options.onNavigate } : {}),
|
|
94
|
+
onSize: options.onSize ?? ((height) => (container.style.minHeight = `${height}px`)),
|
|
95
|
+
...(options.limits ? { limits: options.limits } : {}),
|
|
96
|
+
limiter,
|
|
97
|
+
});
|
|
98
|
+
session = live;
|
|
99
|
+
/*
|
|
100
|
+
* THE WATCHDOG. The host asks on an interval, and the worker's runtime
|
|
101
|
+
* answers with the beat and the nonce. An answer is not a request: it
|
|
102
|
+
* spends none of the guest's message allowance. One with any other
|
|
103
|
+
* nonce goes to the session, which drops it.
|
|
104
|
+
*/
|
|
105
|
+
const silentMs = Math.max(1, options.limits?.silentMs ?? 5_000);
|
|
106
|
+
const every = Math.max(10, Math.min(1_000, Math.floor(silentMs / 4)));
|
|
107
|
+
const clock = window.performance;
|
|
108
|
+
let beat = 0;
|
|
109
|
+
let answered = 0;
|
|
110
|
+
let heard = clock.now();
|
|
111
|
+
let ticked = heard;
|
|
112
|
+
watchdog = window.setInterval(() => {
|
|
113
|
+
const at = clock.now();
|
|
114
|
+
/* The host's own page was held up: that time is not the guest's silence. */
|
|
115
|
+
if (at - ticked > every * 2)
|
|
116
|
+
heard += at - ticked - every;
|
|
117
|
+
ticked = at;
|
|
118
|
+
if (at - heard >= silentMs)
|
|
119
|
+
return fail("silent");
|
|
120
|
+
beat += 1;
|
|
121
|
+
channel.port1.postMessage({ type: "heartbeat", beat });
|
|
122
|
+
}, every);
|
|
123
|
+
const answer = (data) => {
|
|
124
|
+
const said = data;
|
|
125
|
+
if (typeof said !== "object" || said === null || said.type !== "heartbeat" || said.nonce !== nonce)
|
|
126
|
+
return false;
|
|
127
|
+
if (typeof said.beat === "number" && said.beat > answered && said.beat <= beat) {
|
|
128
|
+
answered = said.beat;
|
|
129
|
+
heard = clock.now();
|
|
130
|
+
}
|
|
131
|
+
return true;
|
|
132
|
+
};
|
|
133
|
+
channel.port1.onmessage = (message) => {
|
|
134
|
+
if (answer(message.data))
|
|
135
|
+
return;
|
|
136
|
+
live.receive(message.data);
|
|
137
|
+
tally();
|
|
138
|
+
};
|
|
139
|
+
const hello = { graview: "host-hello", protocol: GUEST_PROTOCOL, nonce, view: options.view };
|
|
140
|
+
worker.postMessage(hello, [channel.port2]);
|
|
141
|
+
live.push();
|
|
142
|
+
};
|
|
143
|
+
try {
|
|
144
|
+
/* Classic, on purpose: a module worker from a blob: URL is refused in an opaque origin (Chromium), which is where a chat's widget runs. */
|
|
145
|
+
worker = new window.Worker(url, { name: options.view });
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
worker = undefined;
|
|
149
|
+
}
|
|
150
|
+
if (!worker) {
|
|
151
|
+
queueMicrotask(() => fail("refused"));
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
silence = window.setTimeout(() => fail("silent"), options.limits?.readyMs ?? 5_000);
|
|
155
|
+
worker.onerror = () => {
|
|
156
|
+
if (!session)
|
|
157
|
+
fail("refused");
|
|
158
|
+
};
|
|
159
|
+
worker.onmessage = (event) => {
|
|
160
|
+
/*
|
|
161
|
+
* A worker's messages come from that worker alone. Its one message
|
|
162
|
+
* here is `guest-ready`, said once: a worker is one realm for its
|
|
163
|
+
* whole life, so a second ready is not a reload but a forgery.
|
|
164
|
+
*/
|
|
165
|
+
if (!limiter.message() || session || !isGuestReady(event.data) || event.data.protocol !== GUEST_PROTOCOL) {
|
|
166
|
+
stats.dropped += 1;
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
ready();
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
return {
|
|
173
|
+
element: container,
|
|
174
|
+
get worker() {
|
|
175
|
+
return worker;
|
|
176
|
+
},
|
|
177
|
+
update: () => session?.push(),
|
|
178
|
+
get stats() {
|
|
179
|
+
tally();
|
|
180
|
+
return stats;
|
|
181
|
+
},
|
|
182
|
+
get refused() {
|
|
183
|
+
return renderer?.refused ?? [];
|
|
184
|
+
},
|
|
185
|
+
dispose() {
|
|
186
|
+
failed = true;
|
|
187
|
+
stop();
|
|
188
|
+
renderer?.dispose();
|
|
189
|
+
container.remove();
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
export { createKitRenderer, GUEST_KIT_CSS, hostAttribute, kitValue } from "./kit.js";
|
|
194
|
+
export { GUEST_KIT, KIT_LINK_TARGETS, KIT_TONES } from "../kit.js";
|
|
195
|
+
//# sourceMappingURL=worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/host/worker.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { connectGuest } from "./guest.js";
|
|
2
2
|
export type { ConnectGuestOptions, Guest } from "./guest.js";
|
|
3
3
|
export { GUEST_PROTOCOL, GUEST_SANDBOX, OPAQUE_ORIGIN, isGuestReady, isHostHello } from "./protocol.js";
|
|
4
|
-
export type { GuestAct, GuestAnswer, GuestEdge, GuestNode, GuestProps, GuestReady, GuestRefusal, GuestRequest, HostHello, HostMessage, } from "./protocol.js";
|
|
4
|
+
export type { GuestAct, GuestAnswer, GuestEdge, GuestEvent, GuestNode, GuestProps, GuestReady, GuestRefusal, GuestRequest, HostHello, HostMessage, } from "./protocol.js";
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACxG,YAAY,EACV,QAAQ,EACR,WAAW,EACX,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,GACZ,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACxG,YAAY,EACV,QAAQ,EACR,WAAW,EACX,SAAS,EACT,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,GACZ,MAAM,eAAe,CAAC"}
|
package/dist/kit.d.ts
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE COMPONENT KIT A WORKER GUEST DRAWS WITH (FR-69), declared once.
|
|
3
|
+
*
|
|
4
|
+
* A guest in a worker has no DOM of its own: it builds a tree of these
|
|
5
|
+
* elements with Remote DOM, and the host draws it in its own document. The
|
|
6
|
+
* kit is Tier 1's closed set of blocks (FR-03: title, text, badge, field,
|
|
7
|
+
* progress, group, divider), plus the few a view that asks for acts needs —
|
|
8
|
+
* a card to hold them, a button, an input, and a link.
|
|
9
|
+
*
|
|
10
|
+
* Each component says, once, its typed properties and its events. The
|
|
11
|
+
* worker side defines one `RemoteElement` per component from it
|
|
12
|
+
* (worker/elements.ts), and the host side draws from it (host/kit.ts): only
|
|
13
|
+
* a component in the kit, only a property or event it declares, only a
|
|
14
|
+
* value of the declared type, and a `url` only when it is `https:`. Adding
|
|
15
|
+
* a property here makes it a property on both sides; nothing else changes.
|
|
16
|
+
*
|
|
17
|
+
* This module has no imports: a guest bundle carries it and nothing of the
|
|
18
|
+
* framework.
|
|
19
|
+
*/
|
|
20
|
+
/** The tones a block may take: FR-03's own (`VIEW_TONES` in @graview/core/document, held to it by a test). */
|
|
21
|
+
export declare const KIT_TONES: readonly ["good", "warn", "bad", "neutral", "accent"];
|
|
22
|
+
export type KitTone = (typeof KIT_TONES)[number];
|
|
23
|
+
/**
|
|
24
|
+
* A property's type. `url` is a string the host draws as a link, and only
|
|
25
|
+
* when it parses as an absolute `https:` URL; `oneOf` is a string from a
|
|
26
|
+
* closed list.
|
|
27
|
+
*/
|
|
28
|
+
export type KitPropertyType = "string" | "number" | "boolean" | "url" | {
|
|
29
|
+
readonly oneOf: readonly string[];
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* The host attributes a property may be drawn as, besides the default
|
|
33
|
+
* `data-gv-<name>`. A closed list: never an event handler, a style, a
|
|
34
|
+
* source or a frame.
|
|
35
|
+
*/
|
|
36
|
+
export declare const KIT_HOST_ATTRIBUTES: readonly ["value", "max", "aria-label", "placeholder", "disabled"];
|
|
37
|
+
export type KitHostAttribute = (typeof KIT_HOST_ATTRIBUTES)[number];
|
|
38
|
+
export interface KitProperty {
|
|
39
|
+
readonly type: KitPropertyType;
|
|
40
|
+
/** The host attribute it is drawn as. `data-gv-<name>` by default; a `url` is always the link's `href`. */
|
|
41
|
+
readonly as?: KitHostAttribute;
|
|
42
|
+
}
|
|
43
|
+
/** The DOM events a kit event may come from, on the element the host drew. */
|
|
44
|
+
export declare const KIT_HOST_EVENTS: readonly ["click", "change"];
|
|
45
|
+
export interface KitEvent {
|
|
46
|
+
/** The DOM event on the host's element that raises it. */
|
|
47
|
+
readonly from: (typeof KIT_HOST_EVENTS)[number];
|
|
48
|
+
/** What the guest is handed with it: the element's `value`, or nothing. */
|
|
49
|
+
readonly detail?: "value";
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Where a link may open. A new tab (`_blank`) unless the kit says
|
|
53
|
+
* otherwise; never `_top` or `_parent`, which would take the host's page.
|
|
54
|
+
*/
|
|
55
|
+
export declare const KIT_LINK_TARGETS: readonly ["_blank", "_self"];
|
|
56
|
+
/** The host elements a component may be drawn as. */
|
|
57
|
+
export declare const KIT_HOST_TAGS: readonly ["section", "div", "span", "strong", "p", "hr", "a", "button", "input", "progress"];
|
|
58
|
+
export interface KitComponent {
|
|
59
|
+
/** What the host draws it as. */
|
|
60
|
+
readonly host: (typeof KIT_HOST_TAGS)[number];
|
|
61
|
+
readonly properties: Readonly<Record<string, KitProperty>>;
|
|
62
|
+
readonly events: Readonly<Record<string, KitEvent>>;
|
|
63
|
+
/** What it may hold: other components and words, words alone, or nothing. */
|
|
64
|
+
readonly children: "any" | "text" | "none";
|
|
65
|
+
/** Where a link opens, for a component drawn as `a`. A new tab (`_blank`) by default. */
|
|
66
|
+
readonly target?: (typeof KIT_LINK_TARGETS)[number];
|
|
67
|
+
}
|
|
68
|
+
export type Kit = Readonly<Record<string, KitComponent>>;
|
|
69
|
+
/** The kit, by element name. Every name starts `gv-`. */
|
|
70
|
+
export declare const GUEST_KIT: {
|
|
71
|
+
readonly "gv-card": {
|
|
72
|
+
readonly host: "section";
|
|
73
|
+
readonly properties: {
|
|
74
|
+
readonly tone: KitProperty;
|
|
75
|
+
};
|
|
76
|
+
readonly events: {};
|
|
77
|
+
readonly children: "any";
|
|
78
|
+
};
|
|
79
|
+
readonly "gv-group": {
|
|
80
|
+
readonly host: "div";
|
|
81
|
+
readonly properties: {
|
|
82
|
+
readonly direction: {
|
|
83
|
+
readonly type: {
|
|
84
|
+
readonly oneOf: readonly ["row", "column"];
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
readonly events: {};
|
|
89
|
+
readonly children: "any";
|
|
90
|
+
};
|
|
91
|
+
readonly "gv-title": {
|
|
92
|
+
readonly host: "strong";
|
|
93
|
+
readonly properties: {};
|
|
94
|
+
readonly events: {};
|
|
95
|
+
readonly children: "text";
|
|
96
|
+
};
|
|
97
|
+
readonly "gv-text": {
|
|
98
|
+
readonly host: "p";
|
|
99
|
+
readonly properties: {
|
|
100
|
+
readonly tone: KitProperty;
|
|
101
|
+
};
|
|
102
|
+
readonly events: {};
|
|
103
|
+
readonly children: "text";
|
|
104
|
+
};
|
|
105
|
+
readonly "gv-badge": {
|
|
106
|
+
readonly host: "span";
|
|
107
|
+
readonly properties: {
|
|
108
|
+
readonly tone: KitProperty;
|
|
109
|
+
};
|
|
110
|
+
readonly events: {};
|
|
111
|
+
readonly children: "text";
|
|
112
|
+
};
|
|
113
|
+
readonly "gv-field": {
|
|
114
|
+
readonly host: "div";
|
|
115
|
+
readonly properties: {
|
|
116
|
+
readonly label: {
|
|
117
|
+
readonly type: "string";
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
readonly events: {};
|
|
121
|
+
readonly children: "text";
|
|
122
|
+
};
|
|
123
|
+
readonly "gv-progress": {
|
|
124
|
+
readonly host: "progress";
|
|
125
|
+
readonly properties: {
|
|
126
|
+
readonly value: {
|
|
127
|
+
readonly type: "number";
|
|
128
|
+
readonly as: "value";
|
|
129
|
+
};
|
|
130
|
+
readonly max: {
|
|
131
|
+
readonly type: "number";
|
|
132
|
+
readonly as: "max";
|
|
133
|
+
};
|
|
134
|
+
readonly label: {
|
|
135
|
+
readonly type: "string";
|
|
136
|
+
readonly as: "aria-label";
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
readonly events: {};
|
|
140
|
+
readonly children: "none";
|
|
141
|
+
};
|
|
142
|
+
readonly "gv-divider": {
|
|
143
|
+
readonly host: "hr";
|
|
144
|
+
readonly properties: {};
|
|
145
|
+
readonly events: {};
|
|
146
|
+
readonly children: "none";
|
|
147
|
+
};
|
|
148
|
+
readonly "gv-link": {
|
|
149
|
+
readonly host: "a";
|
|
150
|
+
readonly properties: {
|
|
151
|
+
readonly href: {
|
|
152
|
+
readonly type: "url";
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
readonly events: {};
|
|
156
|
+
readonly children: "text";
|
|
157
|
+
};
|
|
158
|
+
readonly "gv-button": {
|
|
159
|
+
readonly host: "button";
|
|
160
|
+
readonly properties: {
|
|
161
|
+
readonly tone: KitProperty;
|
|
162
|
+
readonly disabled: {
|
|
163
|
+
readonly type: "boolean";
|
|
164
|
+
readonly as: "disabled";
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
readonly events: {
|
|
168
|
+
readonly press: {
|
|
169
|
+
readonly from: "click";
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
readonly children: "text";
|
|
173
|
+
};
|
|
174
|
+
readonly "gv-input": {
|
|
175
|
+
readonly host: "input";
|
|
176
|
+
readonly properties: {
|
|
177
|
+
readonly label: {
|
|
178
|
+
readonly type: "string";
|
|
179
|
+
readonly as: "aria-label";
|
|
180
|
+
};
|
|
181
|
+
readonly value: {
|
|
182
|
+
readonly type: "string";
|
|
183
|
+
readonly as: "value";
|
|
184
|
+
};
|
|
185
|
+
readonly placeholder: {
|
|
186
|
+
readonly type: "string";
|
|
187
|
+
readonly as: "placeholder";
|
|
188
|
+
};
|
|
189
|
+
};
|
|
190
|
+
readonly events: {
|
|
191
|
+
readonly change: {
|
|
192
|
+
readonly from: "change";
|
|
193
|
+
readonly detail: "value";
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
readonly children: "none";
|
|
197
|
+
};
|
|
198
|
+
};
|
|
199
|
+
export type GuestKitElement = keyof typeof GUEST_KIT;
|
|
200
|
+
/** The longest text a kit node may hold, in characters; longer is cut. */
|
|
201
|
+
export declare const KIT_MAX_TEXT = 10000;
|
|
202
|
+
//# sourceMappingURL=kit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kit.d.ts","sourceRoot":"","sources":["../src/kit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,8GAA8G;AAC9G,eAAO,MAAM,SAAS,uDAAwD,CAAC;AAC/E,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAE9G;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,oEAAqE,CAAC;AACtG,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,2GAA2G;IAC3G,QAAQ,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,8EAA8E;AAC9E,eAAO,MAAM,eAAe,8BAA+B,CAAC;AAE5D,MAAM,WAAW,QAAQ;IACvB,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;IAChD,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,8BAA+B,CAAC;AAE7D,qDAAqD;AACrD,eAAO,MAAM,aAAa,8FAA+F,CAAC;AAE1H,MAAM,WAAW,YAAY;IAC3B,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpD,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3C,yFAAyF;IACzF,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;CACrD;AAED,MAAM,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;AAIzD,yDAAyD;AACzD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BE,CAAC;AAEzB,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,SAAS,CAAC;AAErD,0EAA0E;AAC1E,eAAO,MAAM,YAAY,QAAS,CAAC"}
|