@xeonr/renderer-sdk 1.0.4 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/client.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { RendererCrashKind } from './protocol.js';
1
2
  import type { InitPayload, RendererApiAdapter, RendererConfig, RendererScope, RenderingType } from './types.js';
2
3
  export interface RendererClientOptions {
3
4
  /**
@@ -46,7 +47,11 @@ export declare class RendererClient {
46
47
  private currentApiBaseUrl;
47
48
  private currentPath;
48
49
  private listener;
50
+ private errorListener;
51
+ private rejectionListener;
49
52
  private hashChangeListener;
53
+ private readyRetryInterval;
54
+ private readyRetryTimeout;
50
55
  private historyPatched;
51
56
  private originalPushState;
52
57
  private originalReplaceState;
@@ -118,6 +123,7 @@ export declare class RendererClient {
118
123
  /** Remove all listeners and stop the client. */
119
124
  destroy(): void;
120
125
  private setup;
126
+ private stopReadyRetry;
121
127
  private handleMessage;
122
128
  private handleInit;
123
129
  private handleThemeUpdate;
@@ -127,6 +133,33 @@ export declare class RendererClient {
127
133
  private onHashChanged;
128
134
  private setupHashTracking;
129
135
  private postToHost;
136
+ /**
137
+ * Install window-level crash hooks the moment the client is constructed
138
+ * (i.e. as soon as a renderer touches the SDK). We deliberately do this
139
+ * here — not in a React-only entry point — so that even renderers that
140
+ * forget to wrap their root in `<RendererErrorBoundary>` still report
141
+ * async / global failures to the host.
142
+ *
143
+ * The two hooks cover the failure modes a React boundary can't see:
144
+ * - `window.error` — synchronous throws outside React's tree (raw
145
+ * <script> bugs, event-handler exceptions, image onerror handlers).
146
+ * - `unhandledrejection` — Promise chains with no `.catch()`, which
147
+ * are surprisingly common in fetch-heavy renderers.
148
+ *
149
+ * Both fire-and-forget via `postCrashToHost`; the host decides whether
150
+ * to render the overlay (a single render-time crash usually warrants
151
+ * it, a stray unhandled rejection may not).
152
+ */
153
+ private installCrashHooks;
154
+ /**
155
+ * Forward a crash to the host. Called by the global hooks and by
156
+ * `<RendererErrorBoundary>`; renderers may also call it explicitly if
157
+ * they catch something themselves and want it surfaced (e.g. data-load
158
+ * failure that wipes the UI even though no exception escaped).
159
+ *
160
+ * No-throw: telemetry must never make the underlying crash worse.
161
+ */
162
+ reportCrash(kind: RendererCrashKind, thrown: unknown): void;
130
163
  }
131
164
  export {};
132
165
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -1,4 +1,4 @@
1
- import { isHostMessage } from './protocol.js';
1
+ import { buildCrashMessage, isHostMessage, postCrashToHost } from './protocol.js';
2
2
  /**
3
3
  * Client SDK for custom renderers running inside a sandboxed iframe.
4
4
  *
@@ -34,7 +34,11 @@ export class RendererClient {
34
34
  currentApiBaseUrl = null;
35
35
  currentPath = '/';
36
36
  listener = null;
37
+ errorListener = null;
38
+ rejectionListener = null;
37
39
  hashChangeListener = null;
40
+ readyRetryInterval = null;
41
+ readyRetryTimeout = null;
38
42
  historyPatched = false;
39
43
  originalPushState = null;
40
44
  originalReplaceState = null;
@@ -192,10 +196,19 @@ export class RendererClient {
192
196
  /** Remove all listeners and stop the client. */
193
197
  destroy() {
194
198
  this.destroyed = true;
199
+ this.stopReadyRetry();
195
200
  if (this.listener) {
196
201
  window.removeEventListener('message', this.listener);
197
202
  this.listener = null;
198
203
  }
204
+ if (this.errorListener) {
205
+ window.removeEventListener('error', this.errorListener);
206
+ this.errorListener = null;
207
+ }
208
+ if (this.rejectionListener) {
209
+ window.removeEventListener('unhandledrejection', this.rejectionListener);
210
+ this.rejectionListener = null;
211
+ }
199
212
  if (this.hashChangeListener) {
200
213
  window.removeEventListener('hashchange', this.hashChangeListener);
201
214
  this.hashChangeListener = null;
@@ -227,11 +240,38 @@ export class RendererClient {
227
240
  return;
228
241
  if (!isHostMessage(event.data))
229
242
  return;
243
+ // Any valid host message implies the host's listener is attached and the
244
+ // handshake is underway, so stop pinging.
245
+ this.stopReadyRetry();
230
246
  this.handleMessage(event.data);
231
247
  };
232
248
  window.addEventListener('message', this.listener);
233
- // Tell the host we're ready
249
+ this.installCrashHooks();
250
+ // Tell the host we're ready. We retry on an interval because a fast iframe can
251
+ // post 'ready' before the host has attached its message listener — the first
252
+ // ping is lost, the host times out, and the user has to click retry. Pinging
253
+ // until the host responds closes that race without changing the protocol.
234
254
  this.postToHost({ type: 'uplim:ready' });
255
+ this.readyRetryInterval = setInterval(() => {
256
+ if (this.destroyed)
257
+ return;
258
+ this.postToHost({ type: 'uplim:ready' });
259
+ }, 200);
260
+ // Bound the retries: if the host genuinely isn't there after 8s, stop pinging
261
+ // so we don't spam a misbehaving parent.
262
+ this.readyRetryTimeout = setTimeout(() => {
263
+ this.stopReadyRetry();
264
+ }, 8000);
265
+ }
266
+ stopReadyRetry() {
267
+ if (this.readyRetryInterval) {
268
+ clearInterval(this.readyRetryInterval);
269
+ this.readyRetryInterval = null;
270
+ }
271
+ if (this.readyRetryTimeout) {
272
+ clearTimeout(this.readyRetryTimeout);
273
+ this.readyRetryTimeout = null;
274
+ }
235
275
  }
236
276
  handleMessage(message) {
237
277
  switch (message.type) {
@@ -356,5 +396,65 @@ export class RendererClient {
356
396
  return;
357
397
  window.parent.postMessage(message, this.targetOrigin);
358
398
  }
399
+ /**
400
+ * Install window-level crash hooks the moment the client is constructed
401
+ * (i.e. as soon as a renderer touches the SDK). We deliberately do this
402
+ * here — not in a React-only entry point — so that even renderers that
403
+ * forget to wrap their root in `<RendererErrorBoundary>` still report
404
+ * async / global failures to the host.
405
+ *
406
+ * The two hooks cover the failure modes a React boundary can't see:
407
+ * - `window.error` — synchronous throws outside React's tree (raw
408
+ * <script> bugs, event-handler exceptions, image onerror handlers).
409
+ * - `unhandledrejection` — Promise chains with no `.catch()`, which
410
+ * are surprisingly common in fetch-heavy renderers.
411
+ *
412
+ * Both fire-and-forget via `postCrashToHost`; the host decides whether
413
+ * to render the overlay (a single render-time crash usually warrants
414
+ * it, a stray unhandled rejection may not).
415
+ */
416
+ installCrashHooks() {
417
+ if (typeof window === 'undefined')
418
+ return;
419
+ this.errorListener = (event) => {
420
+ if (this.destroyed)
421
+ return;
422
+ // Prefer event.error for the real stack; fall back to a synthetic
423
+ // shape when the browser only gave us message/filename/lineno
424
+ // (cross-origin scripts strip event.error to null).
425
+ const thrown = event.error ?? {
426
+ name: 'ErrorEvent',
427
+ message: event.message || 'Uncaught error',
428
+ stack: event.filename
429
+ ? `at ${event.filename}:${event.lineno ?? '?'}:${event.colno ?? '?'}`
430
+ : '',
431
+ };
432
+ this.reportCrash('error', thrown);
433
+ };
434
+ window.addEventListener('error', this.errorListener);
435
+ this.rejectionListener = (event) => {
436
+ if (this.destroyed)
437
+ return;
438
+ this.reportCrash('unhandled-rejection', event.reason);
439
+ };
440
+ window.addEventListener('unhandledrejection', this.rejectionListener);
441
+ }
442
+ /**
443
+ * Forward a crash to the host. Called by the global hooks and by
444
+ * `<RendererErrorBoundary>`; renderers may also call it explicitly if
445
+ * they catch something themselves and want it surfaced (e.g. data-load
446
+ * failure that wipes the UI even though no exception escaped).
447
+ *
448
+ * No-throw: telemetry must never make the underlying crash worse.
449
+ */
450
+ reportCrash(kind, thrown) {
451
+ try {
452
+ const msg = buildCrashMessage(kind, thrown);
453
+ postCrashToHost(msg, this.targetOrigin);
454
+ }
455
+ catch {
456
+ // Swallowed on purpose — see above.
457
+ }
458
+ }
359
459
  }
360
460
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { RendererClient } from './client.js';
2
2
  export type { RendererClientOptions } from './client.js';
3
3
  export type { RendererConfig, RendererPermission, RendererScope, RendererBucketScope, RendererFolderScope, RendererUploadScope, RendererVirtualFileScope, RenderingType, InitPayload, RendererApiAdapter, } from './types.js';
4
- export { MESSAGE_PREFIX, PROTOCOL_VERSION, isRendererMessage, isHostMessage, isIframeMessage, } from './protocol.js';
5
- export type { HostMessage, HostInitMessage, HostThemeUpdateMessage, HostTokenRefreshMessage, HostGenerateTokenResultMessage, HostHistoryBackMessage, HostHistoryForwardMessage, IframeMessage, IframeReadyMessage, IframeOpenUploadMessage, IframeTokenRequestMessage, IframeCloseMessage, IframeInitAckMessage, IframeGenerateTokenMessage, IframeHistoryPushMessage, IframeHistoryReplaceMessage, RendererMessage, } from './protocol.js';
4
+ export { MESSAGE_PREFIX, PROTOCOL_VERSION, isRendererMessage, isHostMessage, isIframeMessage, buildCrashMessage, postCrashToHost, } from './protocol.js';
5
+ export type { HostMessage, HostInitMessage, HostThemeUpdateMessage, HostTokenRefreshMessage, HostGenerateTokenResultMessage, HostHistoryBackMessage, HostHistoryForwardMessage, IframeMessage, IframeReadyMessage, IframeOpenUploadMessage, IframeTokenRequestMessage, IframeCloseMessage, IframeInitAckMessage, IframeGenerateTokenMessage, IframeHistoryPushMessage, IframeHistoryReplaceMessage, IframeCrashMessage, RendererCrashKind, RendererMessage, } from './protocol.js';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzD,YAAY,EACX,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,aAAa,EACb,WAAW,EACX,kBAAkB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,eAAe,GACf,MAAM,eAAe,CAAC;AAEvB,YAAY,EACX,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,8BAA8B,EAC9B,sBAAsB,EACtB,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,2BAA2B,EAC3B,eAAe,GACf,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzD,YAAY,EACX,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,aAAa,EACb,WAAW,EACX,kBAAkB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,eAAe,GACf,MAAM,eAAe,CAAC;AAEvB,YAAY,EACX,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,8BAA8B,EAC9B,sBAAsB,EACtB,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GACf,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export { RendererClient } from './client.js';
2
- export { MESSAGE_PREFIX, PROTOCOL_VERSION, isRendererMessage, isHostMessage, isIframeMessage, } from './protocol.js';
2
+ export { MESSAGE_PREFIX, PROTOCOL_VERSION, isRendererMessage, isHostMessage, isIframeMessage, buildCrashMessage, postCrashToHost, } from './protocol.js';
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAgB7C,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,eAAe,GACf,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAgB7C,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,eAAe,GACf,MAAM,eAAe,CAAC"}
@@ -70,9 +70,73 @@ export interface IframeHistoryReplaceMessage {
70
70
  type: 'uplim:historyReplace';
71
71
  path: string;
72
72
  }
73
- export type IframeMessage = IframeReadyMessage | IframeOpenUploadMessage | IframeTokenRequestMessage | IframeCloseMessage | IframeInitAckMessage | IframeGenerateTokenMessage | IframeHistoryPushMessage | IframeHistoryReplaceMessage;
73
+ /**
74
+ * Which SDK code path observed the failure. Maps directly to the host's
75
+ * `RendererCrashKind` enum so the wire schema and the telemetry shape
76
+ * stay in sync.
77
+ *
78
+ * - `render` — React tree threw during render/commit; caught by the
79
+ * SDK's mandatory ErrorBoundary at the renderer root. The UI is gone.
80
+ * - `error` — `window.onerror`: synchronous uncaught exception outside
81
+ * React (event handler, top-level script). UI may or may not still
82
+ * be visible.
83
+ * - `unhandled-rejection` — `window.onunhandledrejection`: a Promise
84
+ * rejected with no `.catch()`. Almost always async, often non-fatal,
85
+ * but a useful signal that something is wrong.
86
+ */
87
+ export type RendererCrashKind = 'render' | 'error' | 'unhandled-rejection';
88
+ /**
89
+ * Tells the host the renderer just hit an unhandled exception. The host
90
+ * decides what to render in response (typically an overlay with reload
91
+ * and fallback options); the renderer never paints its own crash screen
92
+ * because (a) styling would be inconsistent with the host UI and (b) a
93
+ * render-time crash may have left the renderer's CSS / DOM unusable.
94
+ *
95
+ * Fields are deliberately string-bounded on the proto side (see
96
+ * `ReportRendererCrashRequest`) — keep payloads under those limits
97
+ * before posting.
98
+ */
99
+ export interface IframeCrashMessage {
100
+ type: 'uplim:crash';
101
+ kind: RendererCrashKind;
102
+ /** Error.name (e.g. `TypeError`). Empty when the source threw a non-Error. */
103
+ name: string;
104
+ /** Error.message — user-facing description of the failure. */
105
+ message: string;
106
+ /** Stack trace if the browser exposed one. May be minified in prod builds. */
107
+ stack: string;
108
+ /** `window.location.href` at the time of the crash, for narrowing down the route. */
109
+ rendererLocation?: string;
110
+ /** Iframe-side wall-clock millis when the crash was observed. */
111
+ reportedAtMs: number;
112
+ }
113
+ export type IframeMessage = IframeReadyMessage | IframeOpenUploadMessage | IframeTokenRequestMessage | IframeCloseMessage | IframeInitAckMessage | IframeGenerateTokenMessage | IframeHistoryPushMessage | IframeHistoryReplaceMessage | IframeCrashMessage;
74
114
  export type RendererMessage = HostMessage | IframeMessage;
75
115
  export declare function isRendererMessage(data: unknown): data is RendererMessage;
76
116
  export declare function isHostMessage(data: unknown): data is HostMessage;
117
+ /**
118
+ * Build an `IframeCrashMessage` from an unknown thrown value. Centralised so
119
+ * the React boundary and the global `error` / `unhandledrejection` hooks all
120
+ * produce identically-shaped payloads regardless of what JS threw at them
121
+ * (strings, objects, DOMExceptions, real Errors, …).
122
+ *
123
+ * Only includes what the iframe is the sole source-of-truth for —
124
+ * `name`, `message`, `stack`, `rendererLocation`, `kind`. UA, viewport,
125
+ * buildHash are deliberately omitted: the parent observes them directly
126
+ * (and trusting the iframe to self-report those opens a small but
127
+ * pointless spoof surface).
128
+ */
129
+ export declare function buildCrashMessage(kind: RendererCrashKind, thrown: unknown): IframeCrashMessage;
130
+ /**
131
+ * Fire-and-forget post of a crash message to the host. Used by both the SDK's
132
+ * global hooks and the React boundary. Falls back silently when called outside
133
+ * an iframe (e.g. SSR tests) so the SDK never throws on `window.parent` being
134
+ * `undefined`.
135
+ *
136
+ * `targetOrigin` defaults to `'*'` — at crash time we deliberately do not
137
+ * filter, because the renderer may have lost the host origin context (e.g.
138
+ * if the crash happened before `init` arrived).
139
+ */
140
+ export declare function postCrashToHost(message: IframeCrashMessage, targetOrigin?: string): void;
77
141
  export declare function isIframeMessage(data: unknown): data is IframeMessage;
78
142
  //# sourceMappingURL=protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C,eAAO,MAAM,cAAc,EAAG,QAAiB,CAAC;AAChD,eAAO,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAM3C,kGAAkG;AAClG,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;CACrB;AAED,wCAAwC;AACxC,MAAM,WAAW,sBAAsB;IACtC,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;CACxB;AAED,0DAA0D;AAC1D,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACvB;AAED,mEAAmE;AACnE,MAAM,WAAW,8BAA8B;IAC9C,IAAI,EAAE,2BAA2B,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,iDAAiD;AACjD,MAAM,WAAW,sBAAsB;IACtC,IAAI,EAAE,mBAAmB,CAAC;CAC1B;AAED,oDAAoD;AACpD,MAAM,WAAW,yBAAyB;IACzC,IAAI,EAAE,sBAAsB,CAAC;CAC7B;AAED,MAAM,MAAM,WAAW,GACpB,eAAe,GACf,sBAAsB,GACtB,uBAAuB,GACvB,8BAA8B,GAC9B,sBAAsB,GACtB,yBAAyB,CAAC;AAM7B,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,aAAa,CAAC;CACpB;AAED,4EAA4E;AAC5E,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,mFAAmF;AACnF,MAAM,WAAW,yBAAyB;IACzC,IAAI,EAAE,oBAAoB,CAAC;CAC3B;AAED,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,aAAa,CAAC;CACpB;AAED,0FAA0F;AAC1F,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,WAAW,CAAC;CAClB;AAED,0EAA0E;AAC1E,MAAM,WAAW,0BAA0B;IAC1C,IAAI,EAAE,qBAAqB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;CAC7B;AAED,sEAAsE;AACtE,MAAM,WAAW,wBAAwB;IACxC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACb;AAED,wEAAwE;AACxE,MAAM,WAAW,2BAA2B;IAC3C,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,aAAa,GACtB,kBAAkB,GAClB,uBAAuB,GACvB,yBAAyB,GACzB,kBAAkB,GAClB,oBAAoB,GACpB,0BAA0B,GAC1B,wBAAwB,GACxB,2BAA2B,CAAC;AAK/B,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,aAAa,CAAC;AAK1D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,eAAe,CAQxE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,WAAW,CAIhE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,aAAa,CAGpE"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/dist/protocol.js CHANGED
@@ -19,6 +19,97 @@ export function isHostMessage(data) {
19
19
  const t = data.type;
20
20
  return t === 'uplim:init' || t === 'uplim:theme' || t === 'uplim:token' || t === 'uplim:generateTokenResult' || t === 'uplim:historyBack' || t === 'uplim:historyForward';
21
21
  }
22
+ // Proto-side limits (see ReportRendererCrashRequest) — clamp before sending so
23
+ // we don't get truncated mid-string by buf.validate and miss the crash entirely.
24
+ const CRASH_NAME_MAX = 256;
25
+ const CRASH_MESSAGE_MAX = 4096;
26
+ const CRASH_STACK_MAX = 32768;
27
+ const CRASH_LOCATION_MAX = 2048;
28
+ function clampString(value, max) {
29
+ if (value.length <= max)
30
+ return value;
31
+ // Reserve a marker so it's obvious in telemetry that we truncated.
32
+ const suffix = '…[truncated]';
33
+ return value.slice(0, max - suffix.length) + suffix;
34
+ }
35
+ /**
36
+ * Build an `IframeCrashMessage` from an unknown thrown value. Centralised so
37
+ * the React boundary and the global `error` / `unhandledrejection` hooks all
38
+ * produce identically-shaped payloads regardless of what JS threw at them
39
+ * (strings, objects, DOMExceptions, real Errors, …).
40
+ *
41
+ * Only includes what the iframe is the sole source-of-truth for —
42
+ * `name`, `message`, `stack`, `rendererLocation`, `kind`. UA, viewport,
43
+ * buildHash are deliberately omitted: the parent observes them directly
44
+ * (and trusting the iframe to self-report those opens a small but
45
+ * pointless spoof surface).
46
+ */
47
+ export function buildCrashMessage(kind, thrown) {
48
+ let name = '';
49
+ let message = '';
50
+ let stack = '';
51
+ if (thrown instanceof Error) {
52
+ name = thrown.name || 'Error';
53
+ message = thrown.message || String(thrown);
54
+ stack = thrown.stack ?? '';
55
+ }
56
+ else if (typeof thrown === 'string') {
57
+ name = 'StringError';
58
+ message = thrown;
59
+ }
60
+ else if (thrown && typeof thrown === 'object') {
61
+ const obj = thrown;
62
+ name = typeof obj.name === 'string' ? obj.name : 'UnknownError';
63
+ message = typeof obj.message === 'string' ? obj.message : safeStringify(thrown);
64
+ stack = typeof obj.stack === 'string' ? obj.stack : '';
65
+ }
66
+ else {
67
+ name = 'UnknownError';
68
+ message = String(thrown);
69
+ }
70
+ let rendererLocation;
71
+ if (typeof window !== 'undefined' && window.location) {
72
+ rendererLocation = clampString(window.location.href, CRASH_LOCATION_MAX);
73
+ }
74
+ return {
75
+ type: 'uplim:crash',
76
+ kind,
77
+ name: clampString(name, CRASH_NAME_MAX),
78
+ message: clampString(message, CRASH_MESSAGE_MAX),
79
+ stack: clampString(stack, CRASH_STACK_MAX),
80
+ rendererLocation,
81
+ reportedAtMs: Date.now(),
82
+ };
83
+ }
84
+ function safeStringify(value) {
85
+ try {
86
+ return JSON.stringify(value);
87
+ }
88
+ catch {
89
+ return String(value);
90
+ }
91
+ }
92
+ /**
93
+ * Fire-and-forget post of a crash message to the host. Used by both the SDK's
94
+ * global hooks and the React boundary. Falls back silently when called outside
95
+ * an iframe (e.g. SSR tests) so the SDK never throws on `window.parent` being
96
+ * `undefined`.
97
+ *
98
+ * `targetOrigin` defaults to `'*'` — at crash time we deliberately do not
99
+ * filter, because the renderer may have lost the host origin context (e.g.
100
+ * if the crash happened before `init` arrived).
101
+ */
102
+ export function postCrashToHost(message, targetOrigin = '*') {
103
+ if (typeof window === 'undefined' || !window.parent || window.parent === window)
104
+ return;
105
+ try {
106
+ window.parent.postMessage(message, targetOrigin);
107
+ }
108
+ catch {
109
+ // postMessage can throw on some browsers if the target origin is bad
110
+ // (cross-origin frame missing). Telemetry is best-effort.
111
+ }
112
+ }
22
113
  export function isIframeMessage(data) {
23
114
  if (!isRendererMessage(data))
24
115
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,mDAAmD;AACnD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,cAAc,GAAG,QAAiB,CAAC;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAU,CAAC;AAmH3C,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC9C,OAAO,CACN,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,MAAM,IAAI,IAAI;QACd,OAAQ,IAA0B,CAAC,IAAI,KAAK,QAAQ;QACnD,IAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAC1D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAa;IAC1C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IACpB,OAAO,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,KAAK,2BAA2B,IAAI,CAAC,KAAK,mBAAmB,IAAI,CAAC,KAAK,sBAAsB,CAAC;AAC3K,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAa;IAC5C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { Component, type ErrorInfo, type ReactNode } from 'react';
2
+ /**
3
+ * React error boundary that catches render-time exceptions and forwards
4
+ * them to the host via `uplim:crash`. **Renderers should wrap their root
5
+ * in this component** — the SDK's global window hooks catch async
6
+ * failures, but they cannot catch errors thrown during React render or
7
+ * commit (those abort the tree before bubbling to `window.error`).
8
+ *
9
+ * Deliberately renders **nothing** on crash. The host owns the overlay
10
+ * UI for two reasons:
11
+ * 1. Styling stays consistent with the dashboard chrome — a renderer's
12
+ * CSS may itself be the thing that broke, so painting an inline
13
+ * fallback inside the iframe risks an invisible / unreadable
14
+ * screen.
15
+ * 2. The host's overlay can offer recovery actions the renderer
16
+ * can't, like "open the built-in preview instead" (which involves
17
+ * tearing this iframe down and rendering something else).
18
+ *
19
+ * Renderers may pass a `fallback` if they want a minimal visible
20
+ * placeholder while the host's overlay paints (e.g. so users don't
21
+ * stare at a transparent iframe for a frame), but the host overlay
22
+ * remains the source of truth.
23
+ *
24
+ * Usage:
25
+ *
26
+ * ```tsx
27
+ * import { createRoot } from 'react-dom/client';
28
+ * import { RendererErrorBoundary } from '@xeonr/renderer-sdk/react';
29
+ *
30
+ * createRoot(document.getElementById('root')!).render(
31
+ * <RendererErrorBoundary>
32
+ * <App />
33
+ * </RendererErrorBoundary>
34
+ * );
35
+ * ```
36
+ */
37
+ export interface RendererErrorBoundaryProps {
38
+ children: ReactNode;
39
+ /** Optional inline fallback rendered after the crash is reported. Default: nothing. */
40
+ fallback?: ReactNode;
41
+ /**
42
+ * Optional targetOrigin override for the postMessage. Matches
43
+ * `RendererClientOptions.targetOrigin`. Defaults to `'*'` because at
44
+ * crash time we don't want to gate telemetry on origin matching.
45
+ */
46
+ targetOrigin?: string;
47
+ /** Optional hook called after the host has been notified — useful for sentry / console wiring. */
48
+ onCrash?: (error: unknown, info: ErrorInfo) => void;
49
+ }
50
+ interface State {
51
+ crashed: boolean;
52
+ }
53
+ export declare class RendererErrorBoundary extends Component<RendererErrorBoundaryProps, State> {
54
+ state: State;
55
+ static getDerivedStateFromError(): State;
56
+ componentDidCatch(error: unknown, info: ErrorInfo): void;
57
+ render(): ReactNode;
58
+ }
59
+ export {};
60
+ //# sourceMappingURL=RendererErrorBoundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RendererErrorBoundary.d.ts","sourceRoot":"","sources":["../../src/react/RendererErrorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,EAAE,SAAS,CAAC;IACpB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kGAAkG;IAClG,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CACpD;AAED,UAAU,KAAK;IACd,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,qBAAsB,SAAQ,SAAS,CAAC,0BAA0B,EAAE,KAAK,CAAC;IACtF,KAAK,EAAE,KAAK,CAAsB;IAElC,MAAM,CAAC,wBAAwB,IAAI,KAAK;IAIxC,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAyBxD,MAAM,IAAI,SAAS;CAMnB"}
@@ -0,0 +1,37 @@
1
+ import { Component } from 'react';
2
+ import { buildCrashMessage, postCrashToHost } from '../protocol.js';
3
+ export class RendererErrorBoundary extends Component {
4
+ state = { crashed: false };
5
+ static getDerivedStateFromError() {
6
+ return { crashed: true };
7
+ }
8
+ componentDidCatch(error, info) {
9
+ // Build the crash payload via the shared helper so global hooks and the
10
+ // boundary produce identical wire shapes.
11
+ const msg = buildCrashMessage('render', error);
12
+ // React stack is more useful than the JS stack for render-time bugs —
13
+ // it points at the component path, not just the throwing function. We
14
+ // append it so server-side logs preserve both.
15
+ if (info?.componentStack) {
16
+ const componentStack = `\n\nReact component stack:\n${info.componentStack}`;
17
+ // Respect the proto's stack limit (32768) — buildCrashMessage already
18
+ // clamped, but we have new content to add, so re-clamp the combined value.
19
+ const combined = (msg.stack ? `${msg.stack}\n` : '') + componentStack;
20
+ msg.stack = combined.length > 32768 ? combined.slice(0, 32768 - 12) + '…[truncated]' : combined;
21
+ }
22
+ postCrashToHost(msg, this.props.targetOrigin ?? '*');
23
+ try {
24
+ this.props.onCrash?.(error, info);
25
+ }
26
+ catch {
27
+ // Best-effort: never let the consumer's handler resurface the crash.
28
+ }
29
+ }
30
+ render() {
31
+ if (this.state.crashed) {
32
+ return this.props.fallback ?? null;
33
+ }
34
+ return this.props.children;
35
+ }
36
+ }
37
+ //# sourceMappingURL=RendererErrorBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RendererErrorBoundary.js","sourceRoot":"","sources":["../../src/react/RendererErrorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkC,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAuDpE,MAAM,OAAO,qBAAsB,SAAQ,SAA4C;IACtF,KAAK,GAAU,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAElC,MAAM,CAAC,wBAAwB;QAC9B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,iBAAiB,CAAC,KAAc,EAAE,IAAe;QAChD,wEAAwE;QACxE,0CAA0C;QAC1C,MAAM,GAAG,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE/C,sEAAsE;QACtE,sEAAsE;QACtE,+CAA+C;QAC/C,IAAI,IAAI,EAAE,cAAc,EAAE,CAAC;YAC1B,MAAM,cAAc,GAAG,+BAA+B,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5E,sEAAsE;YACtE,2EAA2E;YAC3E,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC;YACtE,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;QACjG,CAAC;QAED,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,GAAG,CAAC,CAAC;QAErD,IAAI,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACR,qEAAqE;QACtE,CAAC;IACF,CAAC;IAED,MAAM;QACL,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC5B,CAAC;CACD"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Drop-in replacement for `react-dom/client` that auto-wraps the rendered
3
+ * tree in `<RendererErrorBoundary>`. Used by `@xeonr/renderer-plugin-vite`
4
+ * to rewrite renderer-archive build imports so the boundary is mandatory
5
+ * without renderer authors having to opt in.
6
+ *
7
+ * Renderer authors do NOT need to import this directly — the vite plugin
8
+ * substitutes `react-dom/client` specifiers in renderer source code at
9
+ * build time. If a renderer is built outside the plugin (e.g. a custom
10
+ * pipeline), authors can import from here explicitly instead.
11
+ *
12
+ * Mirrors React 18+ `Root` / `RootOptions` surface; passes everything
13
+ * through unchanged except for `render` and `hydrateRoot`'s initial
14
+ * children, which are wrapped in the boundary so a single render-time
15
+ * crash is forwarded to the host overlay rather than tearing down the
16
+ * iframe silently.
17
+ */
18
+ import { type Root, type RootOptions, type HydrationOptions } from 'react-dom/client';
19
+ import { type ReactNode } from 'react';
20
+ export declare function createRoot(container: Element | DocumentFragment, options?: RootOptions): Root;
21
+ export declare function hydrateRoot(container: Element | Document, initialChildren: ReactNode, options?: HydrationOptions): Root;
22
+ export type { Root, RootOptions, HydrationOptions } from 'react-dom/client';
23
+ //# sourceMappingURL=dom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/react/dom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAGN,KAAK,IAAI,EACT,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAOtD,wBAAgB,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,gBAAgB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAK7F;AAED,wBAAgB,WAAW,CAC1B,SAAS,EAAE,OAAO,GAAG,QAAQ,EAC7B,eAAe,EAAE,SAAS,EAC1B,OAAO,CAAC,EAAE,gBAAgB,GACxB,IAAI,CAKN;AAKD,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}