@kumwe/studio-preview 0.1.0-alpha.10

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-client.js","sourceRoot":"","sources":["../src/preview-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import { type LocalName, type PreviewMarkerRect, type PreviewRenderedPayload, type PreviewRenderPayload, type PreviewActivatedPayload, type PreviewDisposePayload, type PreviewSelectPayload, type PreviewViewportPayload, type PreviewViewportMetrics, type QualifiedName, type StableId } from '@kumwe/studio-protocol';
2
+ import { type PreviewMessageSource, type PreviewMessageTarget } from './preview-client.js';
3
+ /** Render work is attempt-scoped; implementations should stop promptly when the signal aborts. */
4
+ export type PreviewRenderCallback = (payload: PreviewRenderPayload, signal: AbortSignal) => Promise<PreviewRenderedPayload>;
5
+ /**
6
+ * Raw measurement produced by the embedding renderer. The responder never reads the
7
+ * DOM itself: the renderer supplies marker rectangles and viewport metrics, keeping
8
+ * this package DOM-free and testable. Markers absent from `rects` (or mapped to an
9
+ * empty rectangle list) are reported back as unknown, never thrown.
10
+ */
11
+ export interface PreviewMeasurement {
12
+ rects: Record<StableId, PreviewMarkerRect[]>;
13
+ viewport: PreviewViewportMetrics;
14
+ }
15
+ /** Measurement work is render-generation-scoped and receives the same cancellation discipline. */
16
+ export type PreviewMeasureCallback = (markers: StableId[], signal: AbortSignal) => Promise<PreviewMeasurement>;
17
+ export type PreviewSelectListener = (payload: PreviewSelectPayload) => void;
18
+ export type PreviewViewportListener = (payload: PreviewViewportPayload) => void;
19
+ export type PreviewDisposeListener = (payload: PreviewDisposePayload) => void;
20
+ export interface PreviewHostOptions {
21
+ channelId: string;
22
+ /** Renderer-supplied marker measurer; without one, measure requests are answered as unavailable. */
23
+ measure?: PreviewMeasureCallback;
24
+ render: PreviewRenderCallback;
25
+ renderer: QualifiedName;
26
+ sessionGeneration: string;
27
+ source: PreviewMessageSource;
28
+ target: PreviewMessageTarget;
29
+ targetOrigin: string;
30
+ viewports: LocalName[];
31
+ }
32
+ /**
33
+ * The preview-surface half of the channel: answers `studio.preview/render` and
34
+ * `studio.preview/measure` requests from a `PreviewClient` and forwards
35
+ * `studio.preview/select` to registered listeners. Inbound messages are filtered exactly
36
+ * like the client filters its own: pinned origin, expected source window, canonical
37
+ * schema, channel ID, session generation, and a strictly increasing sequence.
38
+ */
39
+ export declare class PreviewHost {
40
+ #private;
41
+ constructor(options: PreviewHostOptions);
42
+ /**
43
+ * Posts the `studio.preview/ready` announcement carrying the wire protocol version,
44
+ * renderer id, and viewport inventory. Announcement is an explicit step so the host can
45
+ * finish its own setup before opening the channel.
46
+ */
47
+ announce(): void;
48
+ dispose(): void;
49
+ /**
50
+ * Report a trusted interaction with a marked region. The renderer reports
51
+ * intent, never raw input events, and the marker carries nothing beyond the
52
+ * node identity the render already published.
53
+ */
54
+ announceActivation(payload: PreviewActivatedPayload): void;
55
+ /** Observe viewport instructions the client drives the surface with. */
56
+ onViewport(listener: PreviewViewportListener): () => void;
57
+ /** Observe requests to revoke the resources held for a superseded draft. */
58
+ onDispose(listener: PreviewDisposeListener): () => void;
59
+ onSelect(listener: PreviewSelectListener): () => void;
60
+ /**
61
+ * Announce that the renderer reloaded: any in-flight render or measurement is
62
+ * void and the client must resend. The host re-announces readiness afterwards.
63
+ */
64
+ reload(reason: QualifiedName): void;
65
+ /** Announce channel closure to the client, then dispose this host. */
66
+ teardown(reason: QualifiedName): void;
67
+ }
68
+ //# sourceMappingURL=preview-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-host.d.ts","sourceRoot":"","sources":["../src/preview-host.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACd,KAAK,iBAAiB,EAGtB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,QAAQ,EACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B,kGAAkG;AAClG,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAErC;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC7C,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AAED,kGAAkG;AAClG,MAAM,MAAM,sBAAsB,GAAG,CACnC,OAAO,EAAE,QAAQ,EAAE,EACnB,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;AAE5E,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;AAEhF,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAE9E,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,SAAS,EAAE,CAAC;CACxB;AAgBD;;;;;;GAMG;AACH,qBAAa,WAAW;;gBAyBH,OAAO,EAAE,kBAAkB;IAgB9C;;;;OAIG;IACI,QAAQ,IAAI,IAAI;IAiBhB,OAAO,IAAI,IAAI;IAetB;;;;OAIG;IACI,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAmBjE,wEAAwE;IACjE,UAAU,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,IAAI;IAOhE,4EAA4E;IACrE,SAAS,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,IAAI;IAOvD,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,IAAI;IAO5D;;;OAGG;IACI,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAkB1C,sEAAsE;IAC/D,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;CAiX7C"}
@@ -0,0 +1,486 @@
1
+ import { isPreviewMarker, isPreviewMessage, isPreviewRenderedPayload, STUDIO_CONTRACT_VERSION, STUDIO_WIRE_PROTOCOL_VERSION, } from '@kumwe/studio-protocol';
2
+ import { normalizeOrigin, } from './preview-client.js';
3
+ /**
4
+ * The preview-surface half of the channel: answers `studio.preview/render` and
5
+ * `studio.preview/measure` requests from a `PreviewClient` and forwards
6
+ * `studio.preview/select` to registered listeners. Inbound messages are filtered exactly
7
+ * like the client filters its own: pinned origin, expected source window, canonical
8
+ * schema, channel ID, session generation, and a strictly increasing sequence.
9
+ */
10
+ export class PreviewHost {
11
+ #channelId;
12
+ #listener;
13
+ #measureCallback;
14
+ #renderCallback;
15
+ #renderer;
16
+ #viewportListeners = new Set();
17
+ #disposeListeners = new Set();
18
+ #selectListeners = new Set();
19
+ #markerInventory = new Set();
20
+ #sessionGeneration;
21
+ #source;
22
+ #target;
23
+ #targetOrigin;
24
+ #usedRequestIds = new Set();
25
+ #viewports;
26
+ #activeMeasure;
27
+ #activeRender;
28
+ #disposed = false;
29
+ #lastInboundSequence = -1;
30
+ #measureGeneration = 0;
31
+ #measuredRenderDigest;
32
+ #renderGeneration = 0;
33
+ #sequence = 0;
34
+ constructor(options) {
35
+ this.#targetOrigin = normalizeOrigin(options.targetOrigin);
36
+ this.#channelId = options.channelId;
37
+ this.#sessionGeneration = options.sessionGeneration;
38
+ this.#source = options.source;
39
+ this.#target = options.target;
40
+ this.#measureCallback = options.measure;
41
+ this.#renderCallback = options.render;
42
+ this.#renderer = options.renderer;
43
+ this.#viewports = [...options.viewports];
44
+ this.#listener = (event) => {
45
+ this.#receive(event);
46
+ };
47
+ this.#source.addEventListener('message', this.#listener);
48
+ }
49
+ /**
50
+ * Posts the `studio.preview/ready` announcement carrying the wire protocol version,
51
+ * renderer id, and viewport inventory. Announcement is an explicit step so the host can
52
+ * finish its own setup before opening the channel.
53
+ */
54
+ announce() {
55
+ this.#assertActive();
56
+ this.#post({
57
+ channelId: this.#channelId,
58
+ contractVersion: STUDIO_CONTRACT_VERSION,
59
+ kind: 'preview-message',
60
+ payload: {
61
+ protocolVersion: STUDIO_WIRE_PROTOCOL_VERSION,
62
+ renderer: this.#renderer,
63
+ viewports: [...this.#viewports],
64
+ },
65
+ sequence: this.#sequence,
66
+ sessionGeneration: this.#sessionGeneration,
67
+ type: 'studio.preview/ready',
68
+ });
69
+ }
70
+ dispose() {
71
+ if (this.#disposed) {
72
+ return;
73
+ }
74
+ this.#disposed = true;
75
+ this.#source.removeEventListener('message', this.#listener);
76
+ this.#selectListeners.clear();
77
+ this.#viewportListeners.clear();
78
+ this.#disposeListeners.clear();
79
+ this.#invalidateMeasure('Preview host was disposed.');
80
+ this.#invalidateRender('Preview host was disposed.');
81
+ this.#measuredRenderDigest = undefined;
82
+ this.#markerInventory.clear();
83
+ }
84
+ /**
85
+ * Report a trusted interaction with a marked region. The renderer reports
86
+ * intent, never raw input events, and the marker carries nothing beyond the
87
+ * node identity the render already published.
88
+ */
89
+ announceActivation(payload) {
90
+ this.#assertActive();
91
+ if (!this.#markerInventory.has(payload.marker) ||
92
+ !isPreviewMarker(payload.marker, this.#measuredRenderDigest)) {
93
+ throw new RangeError('Preview activation marker is not in the current render inventory.');
94
+ }
95
+ this.#post({
96
+ channelId: this.#channelId,
97
+ contractVersion: STUDIO_CONTRACT_VERSION,
98
+ kind: 'preview-message',
99
+ payload,
100
+ sequence: this.#sequence,
101
+ sessionGeneration: this.#sessionGeneration,
102
+ type: 'studio.preview/activated',
103
+ });
104
+ }
105
+ /** Observe viewport instructions the client drives the surface with. */
106
+ onViewport(listener) {
107
+ this.#viewportListeners.add(listener);
108
+ return () => {
109
+ this.#viewportListeners.delete(listener);
110
+ };
111
+ }
112
+ /** Observe requests to revoke the resources held for a superseded draft. */
113
+ onDispose(listener) {
114
+ this.#disposeListeners.add(listener);
115
+ return () => {
116
+ this.#disposeListeners.delete(listener);
117
+ };
118
+ }
119
+ onSelect(listener) {
120
+ this.#selectListeners.add(listener);
121
+ return () => {
122
+ this.#selectListeners.delete(listener);
123
+ };
124
+ }
125
+ /**
126
+ * Announce that the renderer reloaded: any in-flight render or measurement is
127
+ * void and the client must resend. The host re-announces readiness afterwards.
128
+ */
129
+ reload(reason) {
130
+ this.#assertActive();
131
+ this.#invalidateMeasure('Preview renderer reloaded.');
132
+ this.#invalidateRender('Preview renderer reloaded.');
133
+ this.#measuredRenderDigest = undefined;
134
+ this.#markerInventory.clear();
135
+ this.#post({
136
+ channelId: this.#channelId,
137
+ contractVersion: STUDIO_CONTRACT_VERSION,
138
+ kind: 'preview-message',
139
+ payload: { reason },
140
+ sequence: this.#sequence,
141
+ sessionGeneration: this.#sessionGeneration,
142
+ type: 'studio.preview/reload',
143
+ });
144
+ this.announce();
145
+ }
146
+ /** Announce channel closure to the client, then dispose this host. */
147
+ teardown(reason) {
148
+ this.#assertActive();
149
+ this.#post({
150
+ channelId: this.#channelId,
151
+ contractVersion: STUDIO_CONTRACT_VERSION,
152
+ kind: 'preview-message',
153
+ payload: { reason },
154
+ sequence: this.#sequence,
155
+ sessionGeneration: this.#sessionGeneration,
156
+ type: 'studio.preview/teardown',
157
+ });
158
+ this.dispose();
159
+ }
160
+ #assertActive() {
161
+ if (this.#disposed) {
162
+ throw new Error('Preview host was disposed.');
163
+ }
164
+ }
165
+ #handleMeasure(payload) {
166
+ const requestId = payload.requestId;
167
+ if (this.#usedRequestIds.has(requestId)) {
168
+ this.#postError(requestId, {
169
+ code: 'studio.preview/request-id-reused',
170
+ defaultMessage: 'The preview request identifier was already used in this session.',
171
+ retryable: false,
172
+ });
173
+ return;
174
+ }
175
+ this.#usedRequestIds.add(requestId);
176
+ if (this.#measuredRenderDigest === undefined) {
177
+ // Nothing has rendered yet, so there is no digest to bind geometry to.
178
+ this.#postError(requestId, {
179
+ code: 'studio.preview/measure-unavailable',
180
+ defaultMessage: 'Preview measurement is unavailable.',
181
+ retryable: true,
182
+ });
183
+ return;
184
+ }
185
+ const draftDigest = this.#measuredRenderDigest;
186
+ if (payload.markers.some((marker) => !this.#markerInventory.has(marker) || !isPreviewMarker(marker, draftDigest))) {
187
+ this.#postError(requestId, {
188
+ code: 'studio.preview/measure-stale-marker',
189
+ defaultMessage: 'Preview measurement markers are not in the current render inventory.',
190
+ retryable: true,
191
+ });
192
+ return;
193
+ }
194
+ if (this.#measureCallback === undefined) {
195
+ this.#postError(requestId, {
196
+ code: 'studio.preview/measure-unavailable',
197
+ defaultMessage: 'Preview measurement is unavailable.',
198
+ retryable: false,
199
+ });
200
+ return;
201
+ }
202
+ this.#invalidateMeasure('Preview measurement was superseded.');
203
+ const active = {
204
+ controller: new AbortController(),
205
+ draftDigest,
206
+ generation: this.#measureGeneration,
207
+ requestId,
208
+ };
209
+ this.#activeMeasure = active;
210
+ const markers = [...payload.markers];
211
+ let result;
212
+ try {
213
+ result = this.#measureCallback(markers, active.controller.signal);
214
+ }
215
+ catch {
216
+ this.#settleMeasureFailure(active, measureFailed());
217
+ return;
218
+ }
219
+ void Promise.resolve(result).then((measurement) => {
220
+ try {
221
+ this.#settleMeasured(active, markers, measurement);
222
+ }
223
+ catch {
224
+ this.#settleMeasureFailure(active, measureFailed());
225
+ }
226
+ }, () => {
227
+ this.#settleMeasureFailure(active, measureFailed());
228
+ });
229
+ }
230
+ #handleRender(payload) {
231
+ if (this.#usedRequestIds.has(payload.requestId)) {
232
+ this.#postError(payload.requestId, {
233
+ code: 'studio.preview/request-id-reused',
234
+ defaultMessage: 'The preview request identifier was already used in this session.',
235
+ retryable: false,
236
+ });
237
+ return;
238
+ }
239
+ this.#usedRequestIds.add(payload.requestId);
240
+ this.#invalidateMeasure('Preview measurement was superseded by a render.');
241
+ this.#invalidateRender('Preview render was superseded.');
242
+ this.#measuredRenderDigest = undefined;
243
+ this.#markerInventory.clear();
244
+ const active = {
245
+ controller: new AbortController(),
246
+ draftDigest: payload.draftDigest,
247
+ generation: this.#renderGeneration,
248
+ requestId: payload.requestId,
249
+ };
250
+ this.#activeRender = active;
251
+ let result;
252
+ try {
253
+ result = this.#renderCallback(payload, active.controller.signal);
254
+ }
255
+ catch {
256
+ this.#settleFailure(active);
257
+ return;
258
+ }
259
+ void Promise.resolve(result).then((rendered) => {
260
+ try {
261
+ this.#settleRendered(active, rendered);
262
+ }
263
+ catch {
264
+ this.#settleFailure(active);
265
+ }
266
+ }, () => {
267
+ this.#settleFailure(active);
268
+ });
269
+ }
270
+ #post(message) {
271
+ if (!isPreviewMessage(message)) {
272
+ throw new TypeError('Refused an invalid outbound preview message.');
273
+ }
274
+ this.#sequence += 1;
275
+ this.#target.postMessage(message, this.#targetOrigin);
276
+ }
277
+ #receive(event) {
278
+ if (event.origin !== this.#targetOrigin ||
279
+ event.source !== this.#target ||
280
+ !isPreviewMessage(event.data) ||
281
+ event.data.channelId !== this.#channelId ||
282
+ event.data.sessionGeneration !== this.#sessionGeneration ||
283
+ event.data.sequence <= this.#lastInboundSequence) {
284
+ return;
285
+ }
286
+ this.#lastInboundSequence = event.data.sequence;
287
+ if (event.data.type === 'studio.preview/render') {
288
+ this.#handleRender(event.data.payload);
289
+ }
290
+ else if (event.data.type === 'studio.preview/measure') {
291
+ this.#handleMeasure(event.data.payload);
292
+ }
293
+ else if (event.data.type === 'studio.preview/select') {
294
+ for (const listener of this.#selectListeners) {
295
+ listener(event.data.payload);
296
+ }
297
+ }
298
+ else if (event.data.type === 'studio.preview/viewport') {
299
+ // Geometry captured before a resize or semantic viewport switch no longer
300
+ // describes the surface. Invalidate before listeners apply the new viewport.
301
+ this.#invalidateMeasure('Preview viewport changed.');
302
+ for (const listener of this.#viewportListeners) {
303
+ listener(event.data.payload);
304
+ }
305
+ }
306
+ else if (event.data.type === 'studio.preview/dispose') {
307
+ // Resource revocation for a superseded draft; the channel stays open.
308
+ if (event.data.payload.draftDigest === undefined ||
309
+ event.data.payload.draftDigest === this.#activeRender?.draftDigest) {
310
+ this.#invalidateRender('Preview render was disposed.');
311
+ }
312
+ if (event.data.payload.draftDigest === undefined ||
313
+ event.data.payload.draftDigest === this.#measuredRenderDigest) {
314
+ this.#invalidateMeasure('Preview measurement was disposed.');
315
+ this.#measuredRenderDigest = undefined;
316
+ this.#markerInventory.clear();
317
+ }
318
+ for (const listener of this.#disposeListeners) {
319
+ listener(event.data.payload);
320
+ }
321
+ }
322
+ else if (event.data.type === 'studio.preview/teardown') {
323
+ this.dispose();
324
+ }
325
+ }
326
+ // Measurer failure details never cross the channel: the rejection reason is dropped and a
327
+ // stable generic error is posted instead, correlated by the request identifier.
328
+ #settleMeasureFailure(active, failure) {
329
+ if (!this.#isActiveMeasure(active)) {
330
+ return;
331
+ }
332
+ this.#activeMeasure = undefined;
333
+ this.#postError(active.requestId, failure);
334
+ }
335
+ #postError(correlationId, failure) {
336
+ if (this.#disposed) {
337
+ return;
338
+ }
339
+ this.#post({
340
+ channelId: this.#channelId,
341
+ contractVersion: STUDIO_CONTRACT_VERSION,
342
+ kind: 'preview-message',
343
+ payload: {
344
+ code: failure.code,
345
+ correlationId,
346
+ message: { defaultMessage: failure.defaultMessage, key: failure.code },
347
+ retryable: failure.retryable,
348
+ },
349
+ sequence: this.#sequence,
350
+ sessionGeneration: this.#sessionGeneration,
351
+ type: 'studio.preview/error',
352
+ });
353
+ }
354
+ // Geometry is stamped with the digest of the render the surface currently shows, and only
355
+ // markers from the request are answered — requested markers the measurer cannot place are
356
+ // listed as unknown, extra markers it invents are dropped. A measurement superseded by a
357
+ // newer request, voided by a reload, or settling after disposal is dropped silently.
358
+ #settleMeasured(active, markers, measurement) {
359
+ if (!this.#isActiveMeasure(active)) {
360
+ return;
361
+ }
362
+ const measurements = {};
363
+ const unknown = [];
364
+ for (const marker of markers) {
365
+ const rects = Object.hasOwn(measurement.rects, marker)
366
+ ? measurement.rects[marker]
367
+ : undefined;
368
+ if (rects === undefined || rects.length === 0) {
369
+ unknown.push(marker);
370
+ }
371
+ else {
372
+ measurements[marker] = rects.map((rect) => ({
373
+ height: rect.height,
374
+ width: rect.width,
375
+ x: rect.x,
376
+ y: rect.y,
377
+ }));
378
+ }
379
+ }
380
+ const message = {
381
+ channelId: this.#channelId,
382
+ contractVersion: STUDIO_CONTRACT_VERSION,
383
+ kind: 'preview-message',
384
+ payload: {
385
+ draftDigest: active.draftDigest,
386
+ measurements,
387
+ requestId: active.requestId,
388
+ unknown,
389
+ viewport: {
390
+ devicePixelRatio: measurement.viewport.devicePixelRatio,
391
+ height: measurement.viewport.height,
392
+ scrollX: measurement.viewport.scrollX,
393
+ scrollY: measurement.viewport.scrollY,
394
+ width: measurement.viewport.width,
395
+ },
396
+ },
397
+ sequence: this.#sequence,
398
+ sessionGeneration: this.#sessionGeneration,
399
+ type: 'studio.preview/measurements',
400
+ };
401
+ if (!isPreviewMessage(message)) {
402
+ this.#settleMeasureFailure(active, measureFailed());
403
+ return;
404
+ }
405
+ this.#activeMeasure = undefined;
406
+ this.#post(message);
407
+ }
408
+ // Renderer failure details never cross the channel: the rejection reason is dropped and a
409
+ // stable generic error is posted instead, correlated by the unique render request id.
410
+ #settleFailure(active) {
411
+ if (!this.#isActiveRender(active)) {
412
+ return;
413
+ }
414
+ this.#activeRender = undefined;
415
+ this.#postError(active.requestId, {
416
+ code: 'studio.preview/render-failed',
417
+ defaultMessage: 'Preview rendering failed.',
418
+ retryable: true,
419
+ });
420
+ }
421
+ // The response digest is stamped from the request, so a callback can never answer for a
422
+ // different draft than the one it was asked to render. Results that were superseded by a
423
+ // newer request, or that settle after disposal, are dropped silently.
424
+ #settleRendered(active, rendered) {
425
+ if (!this.#isActiveRender(active)) {
426
+ return;
427
+ }
428
+ if (!isPreviewRenderedPayload(rendered) ||
429
+ rendered.draftDigest !== active.draftDigest ||
430
+ rendered.requestId !== active.requestId) {
431
+ this.#settleFailure(active);
432
+ return;
433
+ }
434
+ this.#activeRender = undefined;
435
+ // The surface now shows this render; measurements are bound to its digest.
436
+ this.#measuredRenderDigest = active.draftDigest;
437
+ this.#markerInventory.clear();
438
+ for (const marker of rendered.markers) {
439
+ this.#markerInventory.add(marker);
440
+ }
441
+ this.#post({
442
+ channelId: this.#channelId,
443
+ contractVersion: STUDIO_CONTRACT_VERSION,
444
+ kind: 'preview-message',
445
+ payload: {
446
+ diagnostics: rendered.diagnostics,
447
+ draftDigest: active.draftDigest,
448
+ markers: rendered.markers,
449
+ markerMap: rendered.markerMap,
450
+ requestId: active.requestId,
451
+ },
452
+ sequence: this.#sequence,
453
+ sessionGeneration: this.#sessionGeneration,
454
+ type: 'studio.preview/rendered',
455
+ });
456
+ }
457
+ #invalidateMeasure(reason) {
458
+ this.#measureGeneration += 1;
459
+ this.#activeMeasure?.controller.abort(reason);
460
+ this.#activeMeasure = undefined;
461
+ }
462
+ #invalidateRender(reason) {
463
+ this.#renderGeneration += 1;
464
+ this.#activeRender?.controller.abort(reason);
465
+ this.#activeRender = undefined;
466
+ }
467
+ #isActiveMeasure(active) {
468
+ return (!this.#disposed &&
469
+ this.#activeMeasure === active &&
470
+ active.generation === this.#measureGeneration &&
471
+ active.draftDigest === this.#measuredRenderDigest);
472
+ }
473
+ #isActiveRender(active) {
474
+ return (!this.#disposed &&
475
+ this.#activeRender === active &&
476
+ active.generation === this.#renderGeneration);
477
+ }
478
+ }
479
+ function measureFailed() {
480
+ return {
481
+ code: 'studio.preview/measure-failed',
482
+ defaultMessage: 'Preview measurement failed.',
483
+ retryable: true,
484
+ };
485
+ }
486
+ //# sourceMappingURL=preview-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-host.js","sourceRoot":"","sources":["../src/preview-host.ts"],"names":[],"mappings":"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"}