@fias/arche-sdk 2.3.0 → 2.10.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.
Files changed (54) hide show
  1. package/dist/bridge.d.ts +76 -1
  2. package/dist/bridge.d.ts.map +1 -1
  3. package/dist/bridge.js +219 -6
  4. package/dist/bridge.js.map +1 -1
  5. package/dist/bridge.test.js +155 -6
  6. package/dist/bridge.test.js.map +1 -1
  7. package/dist/coverage-fills.test.js +26 -32
  8. package/dist/coverage-fills.test.js.map +1 -1
  9. package/dist/entity-ops.d.ts +55 -0
  10. package/dist/entity-ops.d.ts.map +1 -0
  11. package/dist/entity-ops.js +48 -0
  12. package/dist/entity-ops.js.map +1 -0
  13. package/dist/fias.d.ts +7 -1
  14. package/dist/fias.d.ts.map +1 -1
  15. package/dist/fias.js +19 -12
  16. package/dist/fias.js.map +1 -1
  17. package/dist/generated/permissions.d.ts +7 -1
  18. package/dist/generated/permissions.d.ts.map +1 -1
  19. package/dist/generated/permissions.js +36 -1
  20. package/dist/generated/permissions.js.map +1 -1
  21. package/dist/generated/surfaces.d.ts +424 -0
  22. package/dist/generated/surfaces.d.ts.map +1 -1
  23. package/dist/generated/surfaces.js +97 -1
  24. package/dist/generated/surfaces.js.map +1 -1
  25. package/dist/hooks.d.ts +230 -3
  26. package/dist/hooks.d.ts.map +1 -1
  27. package/dist/hooks.js +519 -72
  28. package/dist/hooks.js.map +1 -1
  29. package/dist/hooks.test.js +322 -219
  30. package/dist/hooks.test.js.map +1 -1
  31. package/dist/index.d.ts +4 -4
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +12 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/index.mjs +966 -97
  36. package/dist/protocol.d.ts +7 -0
  37. package/dist/protocol.d.ts.map +1 -1
  38. package/dist/protocol.js +7 -0
  39. package/dist/protocol.js.map +1 -1
  40. package/dist/provider.d.ts +50 -1
  41. package/dist/provider.d.ts.map +1 -1
  42. package/dist/provider.js +187 -2
  43. package/dist/provider.js.map +1 -1
  44. package/dist/provider.render.test.d.ts +17 -0
  45. package/dist/provider.render.test.d.ts.map +1 -0
  46. package/dist/provider.render.test.js +191 -0
  47. package/dist/provider.render.test.js.map +1 -0
  48. package/dist/provider.test.js +64 -8
  49. package/dist/provider.test.js.map +1 -1
  50. package/dist/types.d.ts +339 -13
  51. package/dist/types.d.ts.map +1 -1
  52. package/package.json +2 -1
  53. package/templates/default/AGENTS.md +328 -26
  54. package/templates/default/CLAUDE.md +328 -26
package/dist/bridge.d.ts CHANGED
@@ -1,4 +1,29 @@
1
- import type { PluginToHostMessageType, FiasTheme, PluginPermission, EntityInvocationResult } from './types';
1
+ import type { PluginToHostMessageType, FiasTheme, PluginPermission, EntityInvocationResult, SubscriptionEndedReason } from './types';
2
+ /**
3
+ * Error type for every rejection the bridge produces.
4
+ *
5
+ * Plugins routinely `JSON.stringify` a caught error to log or display it —
6
+ * and `JSON.stringify(new Error(...))` yields `{}` because Error's props are
7
+ * non-enumerable. That's the Rota-incident failure shape: an entity_invoke
8
+ * rejection reached plugin code as an opaque `{}` and the plugin crashed on
9
+ * the missing result. `toJSON()` makes stringification meaningful, and the
10
+ * machine-readable `code` lets plugin code branch on failure kinds
11
+ * (`TIMEOUT`, `BRIDGE_DESTROYED`, server codes like `BRIDGE_TOKEN_EXPIRED`).
12
+ *
13
+ * WIRE-FORMAT NOTE: the host posts plain fields (`{ error: string,
14
+ * errorCode?: string }`) in the response message; the SDK constructs this
15
+ * class locally. Never rely on structured-cloning an Error across the
16
+ * postMessage boundary.
17
+ */
18
+ export declare class FiasBridgeError extends Error {
19
+ code: string;
20
+ constructor(message: string, code: string);
21
+ toJSON(): {
22
+ name: string;
23
+ code: string;
24
+ message: string;
25
+ };
26
+ }
2
27
  /**
3
28
  * Low-level bridge client for postMessage communication with the FIAS host frame.
4
29
  * Used internally by SDK hooks. Plugin developers should use hooks instead.
@@ -11,11 +36,17 @@ export declare class FiasBridge {
11
36
  private archId;
12
37
  private permissions;
13
38
  private theme;
39
+ private vendoredAssets;
14
40
  private currentPath;
15
41
  private hostOrigin;
16
42
  private themeListeners;
17
43
  private navigationListeners;
18
44
  private stepNavigationListeners;
45
+ private previewStateProviders;
46
+ private previewStateRestoreListeners;
47
+ private bufferedRestoreState;
48
+ private subscriptionEventListeners;
49
+ private subscriptionEndedListeners;
19
50
  private listening;
20
51
  constructor();
21
52
  /**
@@ -52,10 +83,31 @@ export declare class FiasBridge {
52
83
  getArchId(): string;
53
84
  getPermissions(): PluginPermission[];
54
85
  getTheme(): FiasTheme | null;
86
+ /**
87
+ * Asset URLs for a platform-vendored library (init payload), or null when the
88
+ * host's CDN is unconfigured, the plugin lacks `sandbox:vendored-libraries`,
89
+ * or the library isn't vendored. Static per session — no update listener
90
+ * needed. `importSpecifier` is the library's bare module name (e.g.
91
+ * `'pdfjs-dist'`). See `useFiasVendoredAssets`.
92
+ */
93
+ getVendoredAssets(importSpecifier: string): Record<string, string> | null;
55
94
  getCurrentPath(): string;
56
95
  onThemeUpdate(listener: (theme: FiasTheme) => void): () => void;
57
96
  onNavigationUpdate(listener: (path: string) => void): () => void;
58
97
  onStepNavigationUpdate(listener: (nodeId: string) => void): () => void;
98
+ /**
99
+ * Opt into preview-state preservation. In the builder preview, an in-place
100
+ * rebuild reloads the iframe and destroys the plugin's in-memory state (e.g.
101
+ * a generated report). Registering here lets the host snapshot `getState()`
102
+ * before the reload and hand it back to `onRestore` afterwards.
103
+ *
104
+ * `key` namespaces the snapshot so independent callers don't collide. Outside
105
+ * preview mode the host never requests a capture, so this is inert. Returns an
106
+ * unregister function.
107
+ */
108
+ registerPreviewState(key: string, getState: () => unknown, onRestore: (state: unknown) => void): () => void;
109
+ /** Deliver any buffered restore payload to registered listeners (once per key). */
110
+ private deliverBufferedRestore;
59
111
  /**
60
112
  * Send a streaming entity_invoke request. Tokens arrive via stream_token
61
113
  * messages and are forwarded to the onToken callback. The returned promise
@@ -68,6 +120,29 @@ export declare class FiasBridge {
68
120
  * After destroy(), the bridge can be re-activated by calling attach().
69
121
  */
70
122
  destroy(): void;
123
+ /**
124
+ * Listens for invalidation events on a logical realtime subscription
125
+ * (the id returned by a subscribe-kind entity_invoke). Returns an
126
+ * unsubscribe function for the LISTENER only — releasing the
127
+ * subscription itself is `releaseSubscription`.
128
+ */
129
+ onSubscriptionEvent(subscriptionId: string, listener: (event: {
130
+ collection: string;
131
+ changed: true;
132
+ }) => void): () => void;
133
+ /**
134
+ * Listens for the terminal ending of a logical realtime subscription.
135
+ * Reasons are a closed union — `authorization_revoked` and
136
+ * `collection_deleted` are definitive; the rest may be worth a fresh
137
+ * subscribe once conditions change.
138
+ */
139
+ onSubscriptionEnded(subscriptionId: string, listener: (reason: SubscriptionEndedReason) => void): () => void;
140
+ /**
141
+ * Releases one logical realtime subscription (fire-and-forget). The host
142
+ * refcounts: the underlying socket topic is torn down when the last
143
+ * logical subscriber releases.
144
+ */
145
+ releaseSubscription(subscriptionId: string): void;
71
146
  private handleMessage;
72
147
  private send;
73
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,uBAAuB,EACvB,SAAS,EACT,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAmCjB;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,eAAe,CAAqC;IAC5D,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,cAAc,CAAyC;IAC/D,OAAO,CAAC,mBAAmB,CAAqC;IAChE,OAAO,CAAC,uBAAuB,CAAuC;IACtE,OAAO,CAAC,SAAS,CAAS;;IAU1B;;;;;;;OAOG;IACH,MAAM,IAAI,IAAI;IAYd;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAKlC;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAgB,GAAG,IAAI;IAI5F;;OAEG;IACG,OAAO,CAAC,CAAC,EACb,IAAI,EAAE,uBAAuB,EAC7B,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC;IAoBb,SAAS,IAAI,MAAM;IAInB,cAAc,IAAI,gBAAgB,EAAE;IAIpC,QAAQ,IAAI,SAAS,GAAG,IAAI;IAI5B,cAAc,IAAI,MAAM;IAIxB,aAAa,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI;IAK/D,kBAAkB,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAKhE,sBAAsB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAKtE;;;;;OAKG;IACG,aAAa,CACjB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC9B,OAAO,CAAC,sBAAsB,CAAC;IAqBlC;;;OAGG;IACH,OAAO,IAAI,IAAI;IAef,OAAO,CAAC,aAAa,CAyGnB;IAEF,OAAO,CAAC,IAAI;CAcb;AAUD,wBAAgB,SAAS,IAAI,UAAU,CAKtC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAGlC"}
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
package/dist/bridge.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FiasBridge = void 0;
3
+ exports.FiasBridge = exports.FiasBridgeError = void 0;
4
4
  exports.getBridge = getBridge;
5
5
  exports.resetBridge = resetBridge;
6
6
  const theme_1 = require("./theme");
@@ -9,6 +9,33 @@ let messageCounter = 0;
9
9
  function generateMessageId() {
10
10
  return `msg_${Date.now()}_${++messageCounter}`;
11
11
  }
12
+ /**
13
+ * Error type for every rejection the bridge produces.
14
+ *
15
+ * Plugins routinely `JSON.stringify` a caught error to log or display it —
16
+ * and `JSON.stringify(new Error(...))` yields `{}` because Error's props are
17
+ * non-enumerable. That's the Rota-incident failure shape: an entity_invoke
18
+ * rejection reached plugin code as an opaque `{}` and the plugin crashed on
19
+ * the missing result. `toJSON()` makes stringification meaningful, and the
20
+ * machine-readable `code` lets plugin code branch on failure kinds
21
+ * (`TIMEOUT`, `BRIDGE_DESTROYED`, server codes like `BRIDGE_TOKEN_EXPIRED`).
22
+ *
23
+ * WIRE-FORMAT NOTE: the host posts plain fields (`{ error: string,
24
+ * errorCode?: string }`) in the response message; the SDK constructs this
25
+ * class locally. Never rely on structured-cloning an Error across the
26
+ * postMessage boundary.
27
+ */
28
+ class FiasBridgeError extends Error {
29
+ constructor(message, code) {
30
+ super(message);
31
+ this.name = 'FiasBridgeError';
32
+ this.code = code;
33
+ }
34
+ toJSON() {
35
+ return { name: 'FiasBridgeError', code: this.code, message: this.message };
36
+ }
37
+ }
38
+ exports.FiasBridgeError = FiasBridgeError;
12
39
  /**
13
40
  * Merges an incoming theme with defaults to ensure all fields are present.
14
41
  * Protects plugins from crashing when the host sends an incomplete theme.
@@ -38,11 +65,27 @@ class FiasBridge {
38
65
  this.archId = '';
39
66
  this.permissions = [];
40
67
  this.theme = null;
68
+ this.vendoredAssets = null;
41
69
  this.currentPath = '';
42
70
  this.hostOrigin = '';
43
71
  this.themeListeners = new Set();
44
72
  this.navigationListeners = new Set();
45
73
  this.stepNavigationListeners = new Set();
74
+ // Preview-state preservation (preview mode only). Keyed so multiple
75
+ // useFiasPreviewState() callers don't collide. Providers produce a snapshot
76
+ // on `preview_state_capture`; restore listeners receive it after the reload.
77
+ this.previewStateProviders = new Map();
78
+ this.previewStateRestoreListeners = new Map();
79
+ // A restore payload that arrived before its hook registered (the host
80
+ // restores on `ready`, but the React effect that registers runs later).
81
+ // Consumed per-key as listeners register.
82
+ this.bufferedRestoreState = null;
83
+ // Realtime subscriptions (ADR-012 Phase M4), keyed by the HOST-MINTED
84
+ // logical subscriptionId returned from a subscribe-kind entity_invoke.
85
+ // The plugin never sees grants/topics — the host manages the transport;
86
+ // these listeners receive typed invalidations and terminal endings.
87
+ this.subscriptionEventListeners = new Map();
88
+ this.subscriptionEndedListeners = new Map();
46
89
  this.listening = false;
47
90
  this.handleMessage = (event) => {
48
91
  const data = event.data;
@@ -73,6 +116,7 @@ class FiasBridge {
73
116
  this.archId = initMsg.payload.archId;
74
117
  this.permissions = initMsg.payload.permissions;
75
118
  this.theme = mergeThemeWithDefaults(initMsg.payload.theme);
119
+ this.vendoredAssets = initMsg.payload.vendoredAssets ?? null;
76
120
  this.currentPath = initMsg.payload.currentPath;
77
121
  this.initialized = true;
78
122
  this.initResolve?.();
@@ -117,6 +161,34 @@ class FiasBridge {
117
161
  }
118
162
  return;
119
163
  }
164
+ // Host requests a snapshot of the plugin's transient state before a preview
165
+ // rebuild. Reply with a keyed snapshot (empty if nothing registered) so the
166
+ // host's capture resolves promptly either way.
167
+ if (data.type === 'preview_state_capture') {
168
+ const snapshot = {};
169
+ for (const [key, provider] of this.previewStateProviders) {
170
+ try {
171
+ // Round-trip each slice so a non-serializable value (function,
172
+ // circular ref, DOM node) is dropped here rather than throwing out of
173
+ // postMessage's structured clone and breaking the whole capture.
174
+ snapshot[key] = JSON.parse(JSON.stringify(provider()));
175
+ }
176
+ catch {
177
+ // Skip a provider that throws or returns non-JSON-safe state.
178
+ }
179
+ }
180
+ this.send('preview_state', snapshot);
181
+ return;
182
+ }
183
+ // Host replays a previously-captured snapshot after the reload. Buffer it so
184
+ // hooks that register slightly later (their effect runs after init) still
185
+ // receive their slice.
186
+ if (data.type === 'preview_state_restore') {
187
+ const state = data.payload ?? {};
188
+ this.bufferedRestoreState = { ...(this.bufferedRestoreState ?? {}), ...state };
189
+ this.deliverBufferedRestore();
190
+ return;
191
+ }
120
192
  // Handle streaming tokens
121
193
  if (data.type === 'stream_token') {
122
194
  const { messageId, text } = data;
@@ -126,6 +198,33 @@ class FiasBridge {
126
198
  }
127
199
  return;
128
200
  }
201
+ // Realtime subscription invalidation (ADR-012 Phase M4): notify-then-
202
+ // refetch — the event only says the collection changed.
203
+ if (data.type === 'subscription_event') {
204
+ const payload = data.payload;
205
+ if (typeof payload?.subscriptionId === 'string' && payload.event) {
206
+ const listeners = this.subscriptionEventListeners.get(payload.subscriptionId);
207
+ if (listeners) {
208
+ for (const listener of listeners)
209
+ listener(payload.event);
210
+ }
211
+ }
212
+ return;
213
+ }
214
+ // Terminal ending of a realtime subscription (host-side lease/authz).
215
+ if (data.type === 'subscription_ended') {
216
+ const payload = data.payload;
217
+ if (typeof payload?.subscriptionId === 'string' && payload.reason) {
218
+ const listeners = this.subscriptionEndedListeners.get(payload.subscriptionId);
219
+ if (listeners) {
220
+ for (const listener of listeners)
221
+ listener(payload.reason);
222
+ }
223
+ this.subscriptionEventListeners.delete(payload.subscriptionId);
224
+ this.subscriptionEndedListeners.delete(payload.subscriptionId);
225
+ }
226
+ return;
227
+ }
129
228
  // Handle response messages
130
229
  if (data.type === 'response') {
131
230
  const response = data;
@@ -135,7 +234,10 @@ class FiasBridge {
135
234
  clearTimeout(pending.timer);
136
235
  this.pendingRequests.delete(response.messageId);
137
236
  if (response.error) {
138
- pending.reject(new Error(response.error));
237
+ // The wire format is plain fields (string + optional code); the Error
238
+ // instance is constructed HERE, never structured-cloned across the
239
+ // postMessage boundary.
240
+ pending.reject(new FiasBridgeError(response.error || 'Bridge request failed', response.errorCode ?? 'BRIDGE_ERROR'));
139
241
  }
140
242
  else {
141
243
  pending.resolve(response.payload);
@@ -179,7 +281,12 @@ class FiasBridge {
179
281
  * an out-of-date plugin before it tries to call ops the host removed.
180
282
  */
181
283
  ready() {
182
- this.send('ready', { sdkProtocolVersion: protocol_1.SDK_BRIDGE_PROTOCOL_VERSION });
284
+ this.send('ready', {
285
+ sdkProtocolVersion: protocol_1.SDK_BRIDGE_PROTOCOL_VERSION,
286
+ // Advertise preview-state support so the host can snapshot/restore us
287
+ // across a preview rebuild. Older SDKs omit this and the host skips it.
288
+ supportsPreviewState: true,
289
+ });
183
290
  }
184
291
  /**
185
292
  * Request the host to resize the plugin iframe.
@@ -202,7 +309,7 @@ class FiasBridge {
202
309
  const messageId = generateMessageId();
203
310
  const timer = setTimeout(() => {
204
311
  this.pendingRequests.delete(messageId);
205
- reject(new Error(`Bridge request timed out: ${type}`));
312
+ reject(new FiasBridgeError(`Bridge request timed out: ${type}`, 'TIMEOUT'));
206
313
  }, timeoutMs ?? DEFAULT_TIMEOUT_MS);
207
314
  this.pendingRequests.set(messageId, {
208
315
  resolve: resolve,
@@ -221,6 +328,16 @@ class FiasBridge {
221
328
  getTheme() {
222
329
  return this.theme;
223
330
  }
331
+ /**
332
+ * Asset URLs for a platform-vendored library (init payload), or null when the
333
+ * host's CDN is unconfigured, the plugin lacks `sandbox:vendored-libraries`,
334
+ * or the library isn't vendored. Static per session — no update listener
335
+ * needed. `importSpecifier` is the library's bare module name (e.g.
336
+ * `'pdfjs-dist'`). See `useFiasVendoredAssets`.
337
+ */
338
+ getVendoredAssets(importSpecifier) {
339
+ return this.vendoredAssets?.[importSpecifier] ?? null;
340
+ }
224
341
  getCurrentPath() {
225
342
  return this.currentPath;
226
343
  }
@@ -236,6 +353,45 @@ class FiasBridge {
236
353
  this.stepNavigationListeners.add(listener);
237
354
  return () => this.stepNavigationListeners.delete(listener);
238
355
  }
356
+ /**
357
+ * Opt into preview-state preservation. In the builder preview, an in-place
358
+ * rebuild reloads the iframe and destroys the plugin's in-memory state (e.g.
359
+ * a generated report). Registering here lets the host snapshot `getState()`
360
+ * before the reload and hand it back to `onRestore` afterwards.
361
+ *
362
+ * `key` namespaces the snapshot so independent callers don't collide. Outside
363
+ * preview mode the host never requests a capture, so this is inert. Returns an
364
+ * unregister function.
365
+ */
366
+ registerPreviewState(key, getState, onRestore) {
367
+ this.previewStateProviders.set(key, getState);
368
+ this.previewStateRestoreListeners.set(key, onRestore);
369
+ // A restore may have arrived before this registration — deliver it now.
370
+ this.deliverBufferedRestore();
371
+ return () => {
372
+ this.previewStateProviders.delete(key);
373
+ this.previewStateRestoreListeners.delete(key);
374
+ };
375
+ }
376
+ /** Deliver any buffered restore payload to registered listeners (once per key). */
377
+ deliverBufferedRestore() {
378
+ if (!this.bufferedRestoreState)
379
+ return;
380
+ for (const [key, listener] of this.previewStateRestoreListeners) {
381
+ if (key in this.bufferedRestoreState) {
382
+ try {
383
+ listener(this.bufferedRestoreState[key]);
384
+ }
385
+ catch {
386
+ // A faulty restore handler must not break the bridge.
387
+ }
388
+ delete this.bufferedRestoreState[key];
389
+ }
390
+ }
391
+ if (Object.keys(this.bufferedRestoreState).length === 0) {
392
+ this.bufferedRestoreState = null;
393
+ }
394
+ }
239
395
  /**
240
396
  * Send a streaming entity_invoke request. Tokens arrive via stream_token
241
397
  * messages and are forwarded to the onToken callback. The returned promise
@@ -248,7 +404,7 @@ class FiasBridge {
248
404
  const messageId = generateMessageId();
249
405
  const timer = setTimeout(() => {
250
406
  this.pendingRequests.delete(messageId);
251
- reject(new Error('Bridge streaming request timed out: entity_invoke'));
407
+ reject(new FiasBridgeError('Bridge streaming request timed out: entity_invoke', 'TIMEOUT'));
252
408
  }, 120000); // Longer timeout for streaming
253
409
  this.pendingRequests.set(messageId, {
254
410
  resolve: resolve,
@@ -270,12 +426,69 @@ class FiasBridge {
270
426
  }
271
427
  for (const pending of this.pendingRequests.values()) {
272
428
  clearTimeout(pending.timer);
273
- pending.reject(new Error('Bridge destroyed'));
429
+ pending.reject(new FiasBridgeError('Bridge destroyed', 'BRIDGE_DESTROYED'));
274
430
  }
275
431
  this.pendingRequests.clear();
276
432
  this.themeListeners.clear();
277
433
  this.navigationListeners.clear();
278
434
  this.stepNavigationListeners.clear();
435
+ this.previewStateProviders.clear();
436
+ this.previewStateRestoreListeners.clear();
437
+ this.bufferedRestoreState = null;
438
+ this.subscriptionEventListeners.clear();
439
+ this.subscriptionEndedListeners.clear();
440
+ }
441
+ /**
442
+ * Listens for invalidation events on a logical realtime subscription
443
+ * (the id returned by a subscribe-kind entity_invoke). Returns an
444
+ * unsubscribe function for the LISTENER only — releasing the
445
+ * subscription itself is `releaseSubscription`.
446
+ */
447
+ onSubscriptionEvent(subscriptionId, listener) {
448
+ let set = this.subscriptionEventListeners.get(subscriptionId);
449
+ if (!set) {
450
+ set = new Set();
451
+ this.subscriptionEventListeners.set(subscriptionId, set);
452
+ }
453
+ set.add(listener);
454
+ return () => {
455
+ const listeners = this.subscriptionEventListeners.get(subscriptionId);
456
+ listeners?.delete(listener);
457
+ if (listeners && listeners.size === 0) {
458
+ this.subscriptionEventListeners.delete(subscriptionId);
459
+ }
460
+ };
461
+ }
462
+ /**
463
+ * Listens for the terminal ending of a logical realtime subscription.
464
+ * Reasons are a closed union — `authorization_revoked` and
465
+ * `collection_deleted` are definitive; the rest may be worth a fresh
466
+ * subscribe once conditions change.
467
+ */
468
+ onSubscriptionEnded(subscriptionId, listener) {
469
+ let set = this.subscriptionEndedListeners.get(subscriptionId);
470
+ if (!set) {
471
+ set = new Set();
472
+ this.subscriptionEndedListeners.set(subscriptionId, set);
473
+ }
474
+ set.add(listener);
475
+ return () => {
476
+ const listeners = this.subscriptionEndedListeners.get(subscriptionId);
477
+ listeners?.delete(listener);
478
+ if (listeners && listeners.size === 0) {
479
+ this.subscriptionEndedListeners.delete(subscriptionId);
480
+ }
481
+ };
482
+ }
483
+ /**
484
+ * Releases one logical realtime subscription (fire-and-forget). The host
485
+ * refcounts: the underlying socket topic is torn down when the last
486
+ * logical subscriber releases.
487
+ */
488
+ releaseSubscription(subscriptionId) {
489
+ this.subscriptionEventListeners.delete(subscriptionId);
490
+ this.subscriptionEndedListeners.delete(subscriptionId);
491
+ this.send('subscription_unsubscribe', { subscriptionId });
279
492
  }
280
493
  send(type, payload, messageId) {
281
494
  if (typeof window === 'undefined')
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}