@microsoft/webui 0.0.24 → 0.0.26
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 +74 -30
- package/bin/webui +0 -0
- package/dist/index.d.ts +115 -42
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +62 -42
- package/dist/index.js.map +1 -1
- package/dist/install.js.map +1 -1
- package/dist/platform.js.map +1 -1
- package/dist/projection/adapters/esbuild.d.ts.map +1 -1
- package/dist/projection/adapters/esbuild.js +33 -8
- package/dist/projection/adapters/esbuild.js.map +1 -1
- package/dist/projection/compiler.d.ts.map +1 -1
- package/dist/projection/compiler.js +51 -86
- package/dist/projection/compiler.js.map +1 -1
- package/dist/projection/concurrency.d.ts +8 -0
- package/dist/projection/concurrency.d.ts.map +1 -0
- package/dist/projection/concurrency.js +44 -0
- package/dist/projection/concurrency.js.map +1 -0
- package/dist/projection/diagnostics.d.ts.map +1 -1
- package/dist/projection/diagnostics.js.map +1 -1
- package/dist/projection/fixtures/conformance.d.ts +1 -1
- package/dist/projection/fixtures/conformance.js +1 -1
- package/dist/projection/fixtures/conformance.js.map +1 -1
- package/dist/projection/index.d.ts +1 -1
- package/dist/projection/loader.d.ts.map +1 -1
- package/dist/projection/loader.js +13 -1
- package/dist/projection/loader.js.map +1 -1
- package/dist/projection/typescript-api.d.ts +17 -0
- package/dist/projection/typescript-api.d.ts.map +1 -0
- package/dist/projection/typescript-api.js +185 -0
- package/dist/projection/typescript-api.js.map +1 -0
- package/dist/projection/typescript-version.d.ts +4 -0
- package/dist/projection/typescript-version.d.ts.map +1 -0
- package/dist/projection/typescript-version.js +76 -0
- package/dist/projection/typescript-version.js.map +1 -0
- package/package.json +10 -9
- package/wasm/all/README.md +37 -1
- package/wasm/all/package.json +1 -1
- package/wasm/all/webui_wasm_all.d.ts +34 -38
- package/wasm/all/webui_wasm_all.js +78 -97
- package/wasm/all/webui_wasm_all_bg.wasm +0 -0
- package/wasm/all/webui_wasm_all_bg.wasm.d.ts +4 -7
- package/wasm/handler/README.md +37 -1
- package/wasm/handler/package.json +1 -1
- package/wasm/handler/webui_wasm_handler.d.ts +29 -36
- package/wasm/handler/webui_wasm_handler.js +68 -93
- package/wasm/handler/webui_wasm_handler_bg.wasm +0 -0
- package/wasm/handler/webui_wasm_handler_bg.wasm.d.ts +3 -6
- package/wasm/parser/README.md +37 -1
- package/wasm/parser/package.json +1 -1
- package/wasm/parser/webui_wasm_parser.d.ts +5 -2
- package/wasm/parser/webui_wasm_parser.js +10 -4
- package/wasm/parser/webui_wasm_parser_bg.wasm +0 -0
- package/wasm/parser/webui_wasm_parser_bg.wasm.d.ts +1 -1
package/README.md
CHANGED
|
@@ -41,7 +41,8 @@ const result = build({
|
|
|
41
41
|
appDir: "./src", // Path to the template directory
|
|
42
42
|
entry: "index.html", // Entry file (default: "index.html")
|
|
43
43
|
css: "link", // CSS strategy: "link", "style", or "module"
|
|
44
|
-
dom: "
|
|
44
|
+
dom: "light", // Optional: global Light + authored Shadow islands
|
|
45
|
+
cssBundle: true, // Merge component stylesheets into shared chunks
|
|
45
46
|
plugin: "webui", // Parser plugin name
|
|
46
47
|
components: [], // Additional component sources
|
|
47
48
|
componentAssetRoots: ["settings-dialog"], // Static .webui.js asset roots
|
|
@@ -59,6 +60,13 @@ const result = build({
|
|
|
59
60
|
// result.stats - { durationMs, fragmentCount, componentCount, cssFileCount, protocolSizeBytes, tokenCount }
|
|
60
61
|
```
|
|
61
62
|
|
|
63
|
+
Unwrapped components default to generated open Shadow roots. Set `dom: "light"`
|
|
64
|
+
to render unwrapped components as global Light DOM. A sole bare `<template>` is
|
|
65
|
+
also an explicit Light wrapper and is unwrapped; a sole
|
|
66
|
+
`<template shadowrootmode="open">` remains Shadow in either mode. Light CSS uses
|
|
67
|
+
ordinary selectors; `:host`, `:host-context`, and `::slotted` fail with
|
|
68
|
+
`unsupported-light-css`.
|
|
69
|
+
|
|
62
70
|
Static component assets use a root/chunk graph. Entry-reachable dependencies
|
|
63
71
|
remain external, dependencies used by one root stay inline, and dependencies
|
|
64
72
|
with an identical multi-root consumer set are emitted once as dynamic chunks.
|
|
@@ -105,13 +113,16 @@ const result = build({
|
|
|
105
113
|
esbuild runs once and emits both browser chunks and
|
|
106
114
|
`webui-projection.json`; WebUI then embeds the exact initial/navigation
|
|
107
115
|
surfaces into `protocol.bin`. The adapter uses esbuild's resolved graph and
|
|
108
|
-
emitted output membership
|
|
109
|
-
|
|
116
|
+
emitted output membership. Source inputs and outputs receive exact hashes;
|
|
117
|
+
opaque inputs rely on their emitted output proof. Code splitting, dynamic
|
|
118
|
+
imports, output hashes, and external bundles remain application-owned.
|
|
110
119
|
|
|
111
120
|
Other bundler adapters can use the exported `AdapterContext`,
|
|
112
121
|
`compileProjection()`, and conformance fixtures without importing esbuild. The
|
|
113
122
|
package currently ships and supports `esbuildProjection()` as its official
|
|
114
|
-
adapter.
|
|
123
|
+
adapter. Custom adapters provide a normalized JavaScript/TypeScript source
|
|
124
|
+
graph and exact emitted output bytes. Non-source bundler inputs stay outside
|
|
125
|
+
the semantic graph, so projection does not decode or hash their input bodies.
|
|
115
126
|
|
|
116
127
|
With no manifest, WebUI performs no JavaScript analysis and preserves full
|
|
117
128
|
state. Once any manifest is supplied, coverage is strict: every scripted
|
|
@@ -148,6 +159,26 @@ response.end(protocol.render({ title: "Hello" }));
|
|
|
148
159
|
Call `.toString("utf8")` explicitly when JavaScript string operations are
|
|
149
160
|
required.
|
|
150
161
|
|
|
162
|
+
### `protocol.prepareState(state)` / `protocol.renderPrepared(state, options?)`
|
|
163
|
+
|
|
164
|
+
Use an immutable prepared state only when the same snapshot will be rendered
|
|
165
|
+
repeatedly, such as a cached page shell or fan-out response:
|
|
166
|
+
|
|
167
|
+
```js
|
|
168
|
+
const state = protocol.prepareState({ title: "Cached" });
|
|
169
|
+
response.end(protocol.renderPrepared(state));
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Preparation performs object serialization and native JSON parsing once.
|
|
173
|
+
`renderPrepared()` reuses the parsed native tree and returns bytes identical to
|
|
174
|
+
`render()` for the same state and options. The opaque handle is process-local,
|
|
175
|
+
cannot be serialized, and does not observe later mutations to the source object.
|
|
176
|
+
|
|
177
|
+
A prepared state retains its native tree until the handle is garbage-collected.
|
|
178
|
+
This trades resident native memory for avoiding repeated stringify/parse work.
|
|
179
|
+
Prepare a new snapshot whenever request state changes, and continue to use
|
|
180
|
+
`render()` for ordinary per-request state.
|
|
181
|
+
|
|
151
182
|
### `protocol.renderStream(state, onChunk, options?): void`
|
|
152
183
|
|
|
153
184
|
Renders with streaming output. Internal handler writes are coalesced around a
|
|
@@ -165,23 +196,34 @@ protocol.renderStream(state, (chunk) => {
|
|
|
165
196
|
|
|
166
197
|
### `protocol.streamResponse(options?): StreamingSession`
|
|
167
198
|
|
|
168
|
-
Opens a progressive
|
|
169
|
-
|
|
170
|
-
server keeps the socket, the write order, and the backpressure contract.
|
|
199
|
+
Opens a runtime-discovered progressive session. Unlike `renderStream`, each
|
|
200
|
+
session call returns bytes so your server keeps the socket and backpressure.
|
|
171
201
|
|
|
172
202
|
```js
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
203
|
+
const session = protocol.streamResponse({
|
|
204
|
+
entry: 'index.html',
|
|
205
|
+
requestPath: '/',
|
|
206
|
+
});
|
|
177
207
|
|
|
178
208
|
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
|
|
179
|
-
|
|
180
|
-
await write(res,
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
209
|
+
let step = session.start(initialState);
|
|
210
|
+
await write(res, step.bytes);
|
|
211
|
+
|
|
212
|
+
while (!step.done) {
|
|
213
|
+
const boundary = step.boundary;
|
|
214
|
+
if (boundary) {
|
|
215
|
+
const state = await loadBoundaryState(
|
|
216
|
+
boundary.owner,
|
|
217
|
+
boundary.name,
|
|
218
|
+
boundary.key,
|
|
219
|
+
);
|
|
220
|
+
step = session.resume(boundary.instanceId, state, 'final');
|
|
221
|
+
} else {
|
|
222
|
+
step = session.advance();
|
|
223
|
+
}
|
|
224
|
+
await write(res, step.bytes);
|
|
225
|
+
}
|
|
226
|
+
res.end();
|
|
185
227
|
|
|
186
228
|
async function write(res, chunk) {
|
|
187
229
|
if (res.write(chunk)) return;
|
|
@@ -204,17 +246,19 @@ async function write(res, chunk) {
|
|
|
204
246
|
|
|
205
247
|
| Member | Returns | Description |
|
|
206
248
|
|--------|---------|-------------|
|
|
207
|
-
| `
|
|
208
|
-
| `
|
|
209
|
-
| `
|
|
210
|
-
| `
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
249
|
+
| `start(state)` | `StreamStep` | Bytes through the first occurrence or terminal |
|
|
250
|
+
| `resume(instanceId, state, mode?)` | `StreamStep` | Only the pending occurrence's bytes through its checkpoint (`'final'` \| `'updatable'`) |
|
|
251
|
+
| `advance()` | `StreamStep` | Following parent bytes through the next occurrence or terminal |
|
|
252
|
+
| `update(instanceId, patch)` | `Buffer` | Projected state for a committed updatable occurrence |
|
|
253
|
+
|
|
254
|
+
`StreamStep` contains `bytes`, `done`, and optional
|
|
255
|
+
`{ instanceId, declarationId, owner, name, key }`. A descriptor requires
|
|
256
|
+
`resume`; no descriptor with `done: false` requires `advance`; `done: true`
|
|
257
|
+
means complete. `resume` is boundary-only, while `advance` carries following
|
|
258
|
+
parent or tail bytes. No sibling boundary workaround is required. The completed
|
|
259
|
+
step already contains tail and terminal bytes. Updates are valid between
|
|
260
|
+
`resume` and `advance`, insert no markup, and never rerun hydration. Sessions
|
|
261
|
+
are single-driver and independent; hold one per request.
|
|
218
262
|
|
|
219
263
|
### `inspect(protocol: Buffer): string`
|
|
220
264
|
|
|
@@ -231,11 +275,11 @@ Produces a JSON partial response for client-side navigation, including state, te
|
|
|
231
275
|
|
|
232
276
|
### `protocol.renderComponentTemplates(componentTags, inventoryHex): string`
|
|
233
277
|
|
|
234
|
-
Renders templates and styles for on-demand component loading (used by `Router.ensureLoaded()`). Returns a JSON string with `
|
|
278
|
+
Renders templates and styles for on-demand component loading (used by `Router.ensureLoaded()`). Returns a JSON string with `componentStyles`, `templates`, `templateFunctions`, and `inventory`. Uses the same inventory bitfield as partial navigation to avoid sending duplicates.
|
|
235
279
|
|
|
236
280
|
```js
|
|
237
281
|
const json = protocol.renderComponentTemplates(["settings-dialog"], inventoryHex);
|
|
238
|
-
const { templates, templateFunctions,
|
|
282
|
+
const { templates, templateFunctions, componentStyles, inventory } = JSON.parse(json);
|
|
239
283
|
```
|
|
240
284
|
|
|
241
285
|
## CLI
|
package/bin/webui
CHANGED
|
Binary file
|
package/dist/index.d.ts
CHANGED
|
@@ -6,8 +6,19 @@ export interface BuildOptions {
|
|
|
6
6
|
entry?: string;
|
|
7
7
|
/** CSS delivery strategy: "link" (default), "style", or "module". */
|
|
8
8
|
css?: "link" | "style" | "module";
|
|
9
|
-
/** DOM strategy for
|
|
9
|
+
/** Fallback DOM strategy for unwrapped components: "shadow" (default) or "light". */
|
|
10
10
|
dom?: "shadow" | "light";
|
|
11
|
+
/**
|
|
12
|
+
* Merge component stylesheets into shared bundled chunks.
|
|
13
|
+
*
|
|
14
|
+
* Composes with `css`: bundling decides how stylesheets are grouped, `css`
|
|
15
|
+
* decides how they reach the page. Stylesheets reached from more than one CSS
|
|
16
|
+
* tree are split into their own chunk so they are downloaded and cached once.
|
|
17
|
+
*
|
|
18
|
+
* Rejected with `css: "module"`, which already inlines every stylesheet as a
|
|
19
|
+
* data URI.
|
|
20
|
+
*/
|
|
21
|
+
cssBundle?: boolean;
|
|
11
22
|
/** Parser plugin name. */
|
|
12
23
|
plugin?: string;
|
|
13
24
|
/** Additional component sources (npm packages or local paths). */
|
|
@@ -80,6 +91,48 @@ export interface ProtocolOptions {
|
|
|
80
91
|
* so use it only for boundaries you actually intend to patch.
|
|
81
92
|
*/
|
|
82
93
|
export type BoundaryMode = "final" | "updatable";
|
|
94
|
+
export type ComponentStyleResource = ({
|
|
95
|
+
kind: "link";
|
|
96
|
+
href: string;
|
|
97
|
+
} | {
|
|
98
|
+
kind: "style";
|
|
99
|
+
css: string;
|
|
100
|
+
} | {
|
|
101
|
+
kind: "module";
|
|
102
|
+
specifier: string;
|
|
103
|
+
css: string;
|
|
104
|
+
}) & {
|
|
105
|
+
/** Component resource IDs whose rules this bundled resource covers. */
|
|
106
|
+
members?: string[];
|
|
107
|
+
};
|
|
108
|
+
export interface ComponentStyles {
|
|
109
|
+
version: 1;
|
|
110
|
+
strategy: "link" | "style" | "module";
|
|
111
|
+
resources: Record<string, ComponentStyleResource>;
|
|
112
|
+
closures: Record<string, string[]>;
|
|
113
|
+
}
|
|
114
|
+
/** A runtime-discovered boundary occurrence waiting to be resumed. */
|
|
115
|
+
export interface BoundaryDescriptor {
|
|
116
|
+
/** Gapless response-local occurrence ID passed to `resume()` and `update()`. */
|
|
117
|
+
instanceId: number;
|
|
118
|
+
/** Stable build-local ID for the authored boundary declaration. */
|
|
119
|
+
declarationId: number;
|
|
120
|
+
/** Entry or component template that owns the declaration. */
|
|
121
|
+
owner: string;
|
|
122
|
+
/** Free-form authored boundary name. */
|
|
123
|
+
name: string;
|
|
124
|
+
/** Evaluated boundary key, preserving its authored JSON type. */
|
|
125
|
+
key?: string | number;
|
|
126
|
+
}
|
|
127
|
+
/** Bytes and continuation state produced by a streaming session step. */
|
|
128
|
+
export interface StreamStep {
|
|
129
|
+
/** Complete bytes produced by this semantic step. */
|
|
130
|
+
bytes: Buffer;
|
|
131
|
+
/** Whether the document tail and terminal record have been emitted. */
|
|
132
|
+
done: boolean;
|
|
133
|
+
/** Runtime occurrence waiting for `resume()`, present only at a boundary. */
|
|
134
|
+
boundary?: BoundaryDescriptor;
|
|
135
|
+
}
|
|
83
136
|
/** Per-response settings for a host-driven streaming session. */
|
|
84
137
|
export interface StreamOptions {
|
|
85
138
|
/** Fragment ID to start rendering from (default: "index.html"). */
|
|
@@ -95,8 +148,8 @@ export interface StreamOptions {
|
|
|
95
148
|
}
|
|
96
149
|
/** Response from `renderComponentTemplates()` for on-demand component loading. */
|
|
97
150
|
export interface ComponentTemplatesResponse {
|
|
98
|
-
/**
|
|
99
|
-
|
|
151
|
+
/** Versioned component style definitions and ordered closures. */
|
|
152
|
+
componentStyles: ComponentStyles;
|
|
100
153
|
/** JSON-safe component template metadata keyed by tag name. */
|
|
101
154
|
templates: Record<string, unknown>;
|
|
102
155
|
/** JavaScript condition closure arrays keyed by tag name. */
|
|
@@ -112,6 +165,8 @@ export interface PartialResponse {
|
|
|
112
165
|
templates: Record<string, unknown>;
|
|
113
166
|
/** JavaScript condition closure arrays keyed by tag name. */
|
|
114
167
|
templateFunctions?: Record<string, string>;
|
|
168
|
+
/** Versioned component style definitions and ordered closures. */
|
|
169
|
+
componentStyles: ComponentStyles;
|
|
115
170
|
/** Updated hex bitmask of loaded component templates. */
|
|
116
171
|
inventory: string;
|
|
117
172
|
/** The request path. */
|
|
@@ -124,14 +179,33 @@ export interface PartialResponse {
|
|
|
124
179
|
exact?: boolean;
|
|
125
180
|
}>;
|
|
126
181
|
}
|
|
182
|
+
declare const preparedStateBrand: unique symbol;
|
|
183
|
+
/**
|
|
184
|
+
* An immutable, process-local native state snapshot.
|
|
185
|
+
*
|
|
186
|
+
* The snapshot retains its parsed native state until this handle is garbage
|
|
187
|
+
* collected. Create snapshots only for state that will be rendered repeatedly.
|
|
188
|
+
*/
|
|
189
|
+
export interface PreparedState {
|
|
190
|
+
readonly [preparedStateBrand]: never;
|
|
191
|
+
}
|
|
127
192
|
interface NativeStreamingSession {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
193
|
+
start(stateJson: string): NativeStreamStep;
|
|
194
|
+
resume(instanceId: number, stateJson: string, mode?: BoundaryMode): NativeStreamStep;
|
|
195
|
+
advance(): NativeStreamStep;
|
|
196
|
+
update(instanceId: number, patchJson: string): Buffer;
|
|
197
|
+
}
|
|
198
|
+
interface NativeBoundaryDescriptor {
|
|
199
|
+
instanceId: number;
|
|
200
|
+
declarationId: number;
|
|
201
|
+
owner: string;
|
|
202
|
+
name: string;
|
|
203
|
+
key?: string | number | null;
|
|
204
|
+
}
|
|
205
|
+
interface NativeStreamStep {
|
|
206
|
+
bytes: Buffer;
|
|
207
|
+
done: boolean;
|
|
208
|
+
boundary?: NativeBoundaryDescriptor | null;
|
|
135
209
|
}
|
|
136
210
|
/** Build a WebUI application from an app directory. */
|
|
137
211
|
export declare function build(options: BuildOptions): BuildResult;
|
|
@@ -146,6 +220,15 @@ export declare class Protocol {
|
|
|
146
220
|
constructor(protocolData: Buffer, options?: ProtocolOptions);
|
|
147
221
|
/** Render a complete HTML response as a UTF-8 Node.js buffer. */
|
|
148
222
|
render(state: object | string, options?: RenderOptions): Buffer;
|
|
223
|
+
/**
|
|
224
|
+
* Parse state once for repeated rendering.
|
|
225
|
+
*
|
|
226
|
+
* The returned snapshot is immutable and does not observe later mutations to
|
|
227
|
+
* the source object. Prepare a new snapshot when request state changes.
|
|
228
|
+
*/
|
|
229
|
+
prepareState(state: object | string): PreparedState;
|
|
230
|
+
/** Render a prepared state snapshot without serializing or parsing it again. */
|
|
231
|
+
renderPrepared(state: PreparedState, options?: RenderOptions): Buffer;
|
|
149
232
|
/** Stream a complete HTML response in chunks around 16 KiB. */
|
|
150
233
|
renderStream(state: object | string, onChunk: (html: string) => void, options?: RenderOptions): void;
|
|
151
234
|
/** Produce a complete JSON partial-navigation response. */
|
|
@@ -170,49 +253,39 @@ export declare class Protocol {
|
|
|
170
253
|
* caller decides when they reach the socket and can await `drain` between
|
|
171
254
|
* chunks. The session holds no transport and never blocks on one.
|
|
172
255
|
*
|
|
173
|
-
*
|
|
174
|
-
*
|
|
175
|
-
* `updatable
|
|
176
|
-
*
|
|
256
|
+
* `start()` discovers the first runtime occurrence. Each `resume()` commits
|
|
257
|
+
* only the pending occurrence. An optional `update()` may follow for an
|
|
258
|
+
* `updatable` occurrence, then `advance()` discovers the next occurrence or
|
|
259
|
+
* returns the document tail and terminal record.
|
|
177
260
|
*
|
|
178
261
|
* ```js
|
|
179
262
|
* const session = protocol.streamResponse({ requestPath: req.url });
|
|
180
|
-
*
|
|
263
|
+
* let step = session.start(shellState);
|
|
264
|
+
* res.write(step.bytes);
|
|
181
265
|
*
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
266
|
+
* while (!step.done) {
|
|
267
|
+
* const boundary = step.boundary;
|
|
268
|
+
* const state = await loadBoundary(boundary.owner, boundary.name, boundary.key);
|
|
269
|
+
* step = session.resume(boundary.instanceId, state);
|
|
270
|
+
* res.write(step.bytes);
|
|
271
|
+
* step = session.advance();
|
|
272
|
+
* res.write(step.bytes);
|
|
188
273
|
* }
|
|
189
|
-
*
|
|
190
|
-
* res.end(session.finish({}));
|
|
274
|
+
* res.end();
|
|
191
275
|
* ```
|
|
192
276
|
*/
|
|
193
277
|
export declare class StreamingSession {
|
|
194
278
|
#private;
|
|
195
279
|
/** @internal Created by {@link Protocol.streamResponse}. */
|
|
196
280
|
constructor(native: NativeStreamingSession);
|
|
197
|
-
/**
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
* An unknown name throws with the valid names and a suggestion.
|
|
206
|
-
*/
|
|
207
|
-
boundary(name: string): number;
|
|
208
|
-
/** Render everything before the first boundary. */
|
|
209
|
-
writeShell(state: object | string): Buffer;
|
|
210
|
-
/** Render and commit the next boundary in declaration order. */
|
|
211
|
-
writeBoundary(boundary: number, state: object | string, mode?: BoundaryMode): Buffer;
|
|
212
|
-
/** Push a projected state patch to a committed `updatable` boundary. */
|
|
213
|
-
update(boundary: number, state: object | string): Buffer;
|
|
214
|
-
/** Render the document tail and emit the terminal record. */
|
|
215
|
-
finish(state?: object | string): Buffer;
|
|
281
|
+
/** Render until the first runtime boundary occurrence or terminal. */
|
|
282
|
+
start(state: object | string): StreamStep;
|
|
283
|
+
/** Commit the pending occurrence through its checkpoint, then stop. */
|
|
284
|
+
resume(instanceId: number, state: object | string, mode?: BoundaryMode): StreamStep;
|
|
285
|
+
/** Write following parent bytes and discover the next boundary or terminal. */
|
|
286
|
+
advance(): StreamStep;
|
|
287
|
+
/** Push a projected state patch to a committed `updatable` occurrence. */
|
|
288
|
+
update(instanceId: number, patch: object | string): Buffer;
|
|
216
289
|
}
|
|
217
290
|
/** Inspect protocol bytes and return JSON representation. */
|
|
218
291
|
export declare function inspect(protocolData: Buffer): string;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,gDAAgD;AAChD,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAClC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -74,6 +74,19 @@ export class Protocol {
|
|
|
74
74
|
const stateJson = typeof state === "string" ? state : JSON.stringify(state);
|
|
75
75
|
return this.#native.render(stateJson, options?.entry ?? "index.html", options?.requestPath ?? "/");
|
|
76
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Parse state once for repeated rendering.
|
|
79
|
+
*
|
|
80
|
+
* The returned snapshot is immutable and does not observe later mutations to
|
|
81
|
+
* the source object. Prepare a new snapshot when request state changes.
|
|
82
|
+
*/
|
|
83
|
+
prepareState(state) {
|
|
84
|
+
return this.#native.prepareState(typeof state === "string" ? state : JSON.stringify(state));
|
|
85
|
+
}
|
|
86
|
+
/** Render a prepared state snapshot without serializing or parsing it again. */
|
|
87
|
+
renderPrepared(state, options) {
|
|
88
|
+
return this.#native.renderPrepared(state, options?.entry ?? "index.html", options?.requestPath ?? "/");
|
|
89
|
+
}
|
|
77
90
|
/** Stream a complete HTML response in chunks around 16 KiB. */
|
|
78
91
|
renderStream(state, onChunk, options) {
|
|
79
92
|
const stateJson = typeof state === "string" ? state : JSON.stringify(state);
|
|
@@ -114,24 +127,25 @@ export class Protocol {
|
|
|
114
127
|
* caller decides when they reach the socket and can await `drain` between
|
|
115
128
|
* chunks. The session holds no transport and never blocks on one.
|
|
116
129
|
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
* `updatable
|
|
120
|
-
*
|
|
130
|
+
* `start()` discovers the first runtime occurrence. Each `resume()` commits
|
|
131
|
+
* only the pending occurrence. An optional `update()` may follow for an
|
|
132
|
+
* `updatable` occurrence, then `advance()` discovers the next occurrence or
|
|
133
|
+
* returns the document tail and terminal record.
|
|
121
134
|
*
|
|
122
135
|
* ```js
|
|
123
136
|
* const session = protocol.streamResponse({ requestPath: req.url });
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
* res.write(session.writeShell(shellState));
|
|
127
|
-
* res.write(session.writeBoundary(weather, weatherShell, "updatable"));
|
|
137
|
+
* let step = session.start(shellState);
|
|
138
|
+
* res.write(step.bytes);
|
|
128
139
|
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
* await
|
|
140
|
+
* while (!step.done) {
|
|
141
|
+
* const boundary = step.boundary;
|
|
142
|
+
* const state = await loadBoundary(boundary.owner, boundary.name, boundary.key);
|
|
143
|
+
* step = session.resume(boundary.instanceId, state);
|
|
144
|
+
* res.write(step.bytes);
|
|
145
|
+
* step = session.advance();
|
|
146
|
+
* res.write(step.bytes);
|
|
132
147
|
* }
|
|
133
|
-
*
|
|
134
|
-
* res.end(session.finish({}));
|
|
148
|
+
* res.end();
|
|
135
149
|
* ```
|
|
136
150
|
*/
|
|
137
151
|
export class StreamingSession {
|
|
@@ -140,40 +154,46 @@ export class StreamingSession {
|
|
|
140
154
|
constructor(native) {
|
|
141
155
|
this.#native = native;
|
|
142
156
|
}
|
|
143
|
-
/**
|
|
144
|
-
|
|
145
|
-
return this.#native.
|
|
157
|
+
/** Render until the first runtime boundary occurrence or terminal. */
|
|
158
|
+
start(state) {
|
|
159
|
+
return toStreamStep(this.#native.start(toStateJson(state)));
|
|
146
160
|
}
|
|
147
|
-
/**
|
|
148
|
-
|
|
149
|
-
return this.#native.
|
|
161
|
+
/** Commit the pending occurrence through its checkpoint, then stop. */
|
|
162
|
+
resume(instanceId, state, mode = "final") {
|
|
163
|
+
return toStreamStep(this.#native.resume(instanceId, toStateJson(state), mode));
|
|
150
164
|
}
|
|
151
|
-
/**
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
* Resolve once outside the write loop; reusing the handle costs nothing.
|
|
155
|
-
* An unknown name throws with the valid names and a suggestion.
|
|
156
|
-
*/
|
|
157
|
-
boundary(name) {
|
|
158
|
-
return this.#native.boundary(name);
|
|
159
|
-
}
|
|
160
|
-
/** Render everything before the first boundary. */
|
|
161
|
-
writeShell(state) {
|
|
162
|
-
return this.#native.writeShell(toStateJson(state));
|
|
163
|
-
}
|
|
164
|
-
/** Render and commit the next boundary in declaration order. */
|
|
165
|
-
writeBoundary(boundary, state, mode = "final") {
|
|
166
|
-
return this.#native.writeBoundary(boundary, toStateJson(state), mode);
|
|
165
|
+
/** Write following parent bytes and discover the next boundary or terminal. */
|
|
166
|
+
advance() {
|
|
167
|
+
return toStreamStep(this.#native.advance());
|
|
167
168
|
}
|
|
168
|
-
/** Push a projected state patch to a committed `updatable`
|
|
169
|
-
update(
|
|
170
|
-
return this.#native.update(
|
|
171
|
-
}
|
|
172
|
-
/** Render the document tail and emit the terminal record. */
|
|
173
|
-
finish(state = {}) {
|
|
174
|
-
return this.#native.finish(toStateJson(state));
|
|
169
|
+
/** Push a projected state patch to a committed `updatable` occurrence. */
|
|
170
|
+
update(instanceId, patch) {
|
|
171
|
+
return this.#native.update(instanceId, toStateJson(patch));
|
|
175
172
|
}
|
|
176
173
|
}
|
|
174
|
+
function toStreamStep(step) {
|
|
175
|
+
const boundary = step.boundary;
|
|
176
|
+
if (!boundary) {
|
|
177
|
+
return { bytes: step.bytes, done: step.done };
|
|
178
|
+
}
|
|
179
|
+
return {
|
|
180
|
+
bytes: step.bytes,
|
|
181
|
+
done: step.done,
|
|
182
|
+
boundary: toBoundaryDescriptor(boundary),
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
function toBoundaryDescriptor(boundary) {
|
|
186
|
+
const descriptor = {
|
|
187
|
+
instanceId: boundary.instanceId,
|
|
188
|
+
declarationId: boundary.declarationId,
|
|
189
|
+
owner: boundary.owner,
|
|
190
|
+
name: boundary.name,
|
|
191
|
+
};
|
|
192
|
+
if (boundary.key !== undefined && boundary.key !== null) {
|
|
193
|
+
descriptor.key = boundary.key;
|
|
194
|
+
}
|
|
195
|
+
return descriptor;
|
|
196
|
+
}
|
|
177
197
|
function toStateJson(state) {
|
|
178
198
|
return typeof state === "string" ? state : JSON.stringify(state);
|
|
179
199
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElE,MAAM,OAAO,GAAG,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAElE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAElE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACpD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;AACrE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3C,uEAAuE;AACvE,kDAAkD;AAClD,IAAI,CAAC;IACH,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAAC,MAAM,CAAC;IACP,2BAA2B;AAC7B,CAAC;AAED,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;AAC1B,IAAI,GAAuB,CAAC;AAC5B,IAAI,CAAC;IACH,GAAG,GAAG,WAAW,EAAE,CAAC;AACtB,CAAC;AAAC,MAAM,CAAC;IACP,OAAO,CAAC,IAAI,CACV,yCAAyC,GAAG,IAAI;QAC9C,uCAAuC;QACvC,+CAA+C,CAClD,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,CAAC,IAAI,CACV,qCAAqC,GAAI,sBAAsB;IAC7D,sEAAsE;IACtE,yDAAyD;IACzD,oEAAoE,CACvE,CAAC"}
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,OAAO,GAAG,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esbuild.d.ts","sourceRoot":"","sources":["../../../src/projection/adapters/esbuild.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAIV,MAAM,EAEP,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"esbuild.d.ts","sourceRoot":"","sources":["../../../src/projection/adapters/esbuild.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAIV,MAAM,EAEP,MAAM,SAAS,CAAC;AAsBjB,iEAAiE;AACjE,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAuBD,qDAAqD;AACrD,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,wBAA6B,GACrC,MAAM,CAgCR"}
|