@fias/arche-sdk 1.8.1 → 1.11.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/hooks.js CHANGED
@@ -5,14 +5,20 @@ exports.useFiasTheme = useFiasTheme;
5
5
  exports.useFiasStorage = useFiasStorage;
6
6
  exports.useEntityInvocation = useEntityInvocation;
7
7
  exports.useImageGeneration = useImageGeneration;
8
+ exports.useAudioGeneration = useAudioGeneration;
9
+ exports.useSurface = useSurface;
8
10
  exports.useFiasNavigation = useFiasNavigation;
9
11
  exports.usePersistentState = usePersistentState;
10
12
  exports.useStepNavigation = useStepNavigation;
11
13
  exports.useFiasDataStore = useFiasDataStore;
12
14
  exports.useFiasStore = useFiasStore;
15
+ exports.fetchVaultDocumentDownloadUrl = fetchVaultDocumentDownloadUrl;
16
+ exports.useVaultDocuments = useVaultDocuments;
17
+ exports.useArcheAssets = useArcheAssets;
13
18
  const react_1 = require("react");
14
19
  const react_dom_1 = require("react-dom");
15
20
  const context_1 = require("./context");
21
+ const bridge_1 = require("./bridge");
16
22
  /**
17
23
  * Internal helper to get bridge from context, throws if not wrapped in FiasProvider.
18
24
  */
@@ -185,6 +191,13 @@ function useEntityInvocation() {
185
191
  * is returned for display. Uses a 2-minute timeout (image generation
186
192
  * can take 10-60 seconds depending on the provider).
187
193
  *
194
+ * @deprecated Phase 3 of the Invocation Surface Pattern migrates image
195
+ * generation onto the registry. Prefer the generated typed hook
196
+ * (`useImageGenerate()` from `@fias/arche-sdk` once the image surface
197
+ * registers) over this hand-written one. The legacy `image_generate`
198
+ * bridge op continues to work through the deprecation window. Tracking:
199
+ * docs/architecture/invocation-surface-pattern.md §7 Phase 3.
200
+ *
188
201
  * @returns Image generation API (generate, isLoading, result, error).
189
202
  */
190
203
  function useImageGeneration() {
@@ -211,6 +224,89 @@ function useImageGeneration() {
211
224
  }, [bridge]);
212
225
  return { generate, isLoading, result, error };
213
226
  }
227
+ /**
228
+ * Generate audio (music today; future speech/SFX sub-types via the same
229
+ * hook) via the bridge's `audio_generate` op. Returns an array of clips
230
+ * with same-origin signed proxy URLs suitable for `<audio src>` playback
231
+ * inside the plugin iframe.
232
+ *
233
+ * Lyria 4×30 s clips can take ~90–120 s end-to-end, so the per-request
234
+ * timeout is 3 minutes (vs image's 2 minutes).
235
+ *
236
+ * @deprecated Phase 2 of the Invocation Surface Pattern shipped typed
237
+ * per-surface hooks: `useLyriaMusic()` (Lyria), `useElevenLabsTts()`,
238
+ * `useElevenLabsSfx()`, `useElevenLabsMusic()`, etc. They invoke through
239
+ * the `surface_invoke` bridge op with per-surface Zod-validated params.
240
+ * The legacy `audio_generate` op continues to work through the
241
+ * deprecation window. Tracking: docs/architecture/invocation-surface-pattern.md
242
+ * §7 Phase 3.
243
+ *
244
+ * @returns Audio generation API (generate, isLoading, result, error).
245
+ */
246
+ function useAudioGeneration() {
247
+ const bridge = useBridge();
248
+ const [isLoading, setIsLoading] = (0, react_1.useState)(false);
249
+ const [result, setResult] = (0, react_1.useState)(null);
250
+ const [error, setError] = (0, react_1.useState)(null);
251
+ const generate = (0, react_1.useCallback)(async (params) => {
252
+ setIsLoading(true);
253
+ setError(null);
254
+ try {
255
+ const res = await bridge.request('audio_generate', params, 180000);
256
+ setResult(res);
257
+ return res;
258
+ }
259
+ catch (err) {
260
+ const e = err instanceof Error ? err : new Error(String(err));
261
+ setError(e);
262
+ throw e;
263
+ }
264
+ finally {
265
+ setIsLoading(false);
266
+ }
267
+ }, [bridge]);
268
+ return { generate, isLoading, result, error };
269
+ }
270
+ /**
271
+ * Generic Invocation Surface hook.
272
+ *
273
+ * Plugin code should usually call one of the **generated typed hooks**
274
+ * (e.g. `useElevenLabsTts()`) from `./generated/surfaces` rather than this
275
+ * directly — the typed hooks bake in the `surfaceKey` and infer the param
276
+ * and result types from the surface's Zod schemas.
277
+ *
278
+ * This hook is the hand-written substrate they delegate to. Direct use is
279
+ * fine when invoking a surface by dynamic key (rare).
280
+ *
281
+ * @param surfaceKey - Stable kebab-case key registered with the platform.
282
+ * @param timeoutMs - Per-request timeout. Defaults to 180s to cover the
283
+ * longest-running synchronous surfaces (TTS large texts,
284
+ * Lyria multi-clip generations).
285
+ */
286
+ function useSurface(surfaceKey, timeoutMs = 180000) {
287
+ const bridge = useBridge();
288
+ const [isLoading, setIsLoading] = (0, react_1.useState)(false);
289
+ const [result, setResult] = (0, react_1.useState)(null);
290
+ const [error, setError] = (0, react_1.useState)(null);
291
+ const invoke = (0, react_1.useCallback)(async (params) => {
292
+ setIsLoading(true);
293
+ setError(null);
294
+ try {
295
+ const res = await bridge.request('surface_invoke', { surfaceKey, params }, timeoutMs);
296
+ setResult(res);
297
+ return res;
298
+ }
299
+ catch (err) {
300
+ const e = err instanceof Error ? err : new Error(String(err));
301
+ setError(e);
302
+ throw e;
303
+ }
304
+ finally {
305
+ setIsLoading(false);
306
+ }
307
+ }, [bridge, surfaceKey, timeoutMs]);
308
+ return { invoke, isLoading, result, error };
309
+ }
214
310
  /**
215
311
  * Navigate within the plugin's route space.
216
312
  *
@@ -512,4 +608,159 @@ function useFiasStore() {
512
608
  isLoading,
513
609
  ]);
514
610
  }
611
+ /**
612
+ * Refresh a presigned download URL this many milliseconds before it actually
613
+ * expires. Catches the case where a render starts with a still-valid URL but
614
+ * the image load completes after the URL has expired.
615
+ */
616
+ const DOWNLOAD_URL_REFRESH_BUFFER_MS = 60000;
617
+ /**
618
+ * Process-lifetime cache of presigned download URLs, keyed by documentId.
619
+ * Shared across all useVaultDocuments() consumers in the plugin so 50
620
+ * thumbnails on a page don't each trigger a separate bridge call. Inflight
621
+ * requests are also deduped so a burst of mounts coalesces to one network
622
+ * roundtrip per documentId.
623
+ *
624
+ * The cache is intentionally module-scoped (not React state): React renders
625
+ * are not the right invalidation boundary — presigned URLs are valid for a
626
+ * fixed wall-clock window regardless of component lifecycle.
627
+ */
628
+ const downloadUrlCache = new Map();
629
+ const downloadUrlInflight = new Map();
630
+ /**
631
+ * Cache-aware fetcher for a presigned download URL. Used internally by
632
+ * `useVaultDocuments().getDownloadUrl()`. Exposed separately so non-React
633
+ * code paths (e.g. PDF export, image preloaders) can hit the same cache
634
+ * without having to plumb a React context through.
635
+ */
636
+ async function fetchVaultDocumentDownloadUrl(documentId) {
637
+ const now = Date.now();
638
+ const cached = downloadUrlCache.get(documentId);
639
+ if (cached && now < cached.expiresAt - DOWNLOAD_URL_REFRESH_BUFFER_MS) {
640
+ return { url: cached.url, expiresAt: cached.expiresAt, contentType: cached.contentType };
641
+ }
642
+ const inflight = downloadUrlInflight.get(documentId);
643
+ if (inflight)
644
+ return inflight;
645
+ const bridge = (0, bridge_1.getBridge)();
646
+ // The server bridge returns `expiresAt` as an ISO 8601 string; the
647
+ // SDK surface uses epoch milliseconds. Normalize here so callers
648
+ // don't have to think about the wire shape.
649
+ const promise = bridge
650
+ .request('vault_documents_download_url', { documentId })
651
+ .then((result) => {
652
+ const normalized = {
653
+ url: result.url,
654
+ expiresAt: new Date(result.expiresAt).getTime(),
655
+ contentType: result.contentType,
656
+ };
657
+ downloadUrlCache.set(documentId, {
658
+ url: normalized.url,
659
+ expiresAt: normalized.expiresAt,
660
+ contentType: normalized.contentType,
661
+ });
662
+ return normalized;
663
+ })
664
+ .finally(() => {
665
+ downloadUrlInflight.delete(documentId);
666
+ });
667
+ downloadUrlInflight.set(documentId, promise);
668
+ return promise;
669
+ }
670
+ /**
671
+ * Access the user's Vault Documents, scoped to documents this arche owns.
672
+ *
673
+ * The most common use is `getDownloadUrl(documentId)` for images created
674
+ * via `useImageGeneration()` — those calls return a `documentId`, and this
675
+ * hook lets the plugin refresh the presigned URL after the original ~1h
676
+ * TTL expires (so backgrounds/thumbnails persist across sessions).
677
+ *
678
+ * Permissions:
679
+ * - `vault:documents:read` for list / read / getDownloadUrl
680
+ * - `vault:documents:write` for write / update / delete
681
+ *
682
+ * @returns Vault Documents API (list, read, getDownloadUrl, write, update,
683
+ * delete).
684
+ */
685
+ function useVaultDocuments() {
686
+ const bridge = useBridge();
687
+ const list = (0, react_1.useCallback)(async (options) => {
688
+ return bridge.request('vault_documents_list', {
689
+ search: options?.search,
690
+ limit: options?.limit,
691
+ cursor: options?.cursor,
692
+ });
693
+ }, [bridge]);
694
+ const read = (0, react_1.useCallback)(async (documentId) => {
695
+ return bridge.request('vault_documents_read', {
696
+ documentId,
697
+ });
698
+ }, [bridge]);
699
+ const getDownloadUrl = (0, react_1.useCallback)((documentId) => fetchVaultDocumentDownloadUrl(documentId),
700
+ // The hook closes over the React context's bridge, but the resolver
701
+ // uses the singleton — they are the same instance in practice. Keeping
702
+ // `bridge` in the deps for symmetry with other hooks that do go through
703
+ // the context-bound bridge.
704
+ [bridge]);
705
+ const write = (0, react_1.useCallback)(async (params) => {
706
+ return bridge.request('vault_documents_write', {
707
+ name: params.name,
708
+ content: params.content,
709
+ contentType: params.contentType,
710
+ tags: params.tags,
711
+ });
712
+ }, [bridge]);
713
+ const update = (0, react_1.useCallback)(async (documentId, params) => {
714
+ await bridge.request('vault_documents_update', {
715
+ documentId,
716
+ name: params.name,
717
+ tags: params.tags,
718
+ });
719
+ // Rename rewrites the Content-Disposition the URL would carry, so
720
+ // drop any cached URL for this document.
721
+ downloadUrlCache.delete(documentId);
722
+ }, [bridge]);
723
+ const deleteDocument = (0, react_1.useCallback)(async (documentId) => {
724
+ await bridge.request('vault_documents_delete', { documentId });
725
+ downloadUrlCache.delete(documentId);
726
+ downloadUrlInflight.delete(documentId);
727
+ }, [bridge]);
728
+ return (0, react_1.useMemo)(() => ({
729
+ list,
730
+ read,
731
+ getDownloadUrl,
732
+ write,
733
+ update,
734
+ delete: deleteDocument,
735
+ }), [list, read, getDownloadUrl, write, update, deleteDocument]);
736
+ }
737
+ /**
738
+ * Access the contributor-curated asset library for this arche.
739
+ *
740
+ * The library is a frozen snapshot taken at the arche's publish time —
741
+ * uploads the contributor makes after publish only affect future
742
+ * versions. Each asset has an immutable `assetId`; cache them in your
743
+ * datastore / state, and refresh `signedUrl` via `getUrl(assetId)`
744
+ * when it's about to expire.
745
+ *
746
+ * Permission: `assets:read`.
747
+ *
748
+ * @example
749
+ * const { list, getUrl } = useArcheAssets();
750
+ * const { entries } = await list({ limit: 50 });
751
+ * // entries[i].signedUrl is a short-lived URL you can use as <img src>
752
+ */
753
+ function useArcheAssets() {
754
+ const bridge = useBridge();
755
+ const list = (0, react_1.useCallback)(async (options) => {
756
+ return bridge.request('arche_assets_list', {
757
+ cursor: options?.cursor,
758
+ limit: options?.limit,
759
+ });
760
+ }, [bridge]);
761
+ const getUrl = (0, react_1.useCallback)(async (assetId) => {
762
+ return bridge.request('arche_assets_get_url', { assetId });
763
+ }, [bridge]);
764
+ return (0, react_1.useMemo)(() => ({ list, getUrl }), [list, getUrl]);
765
+ }
515
766
  //# sourceMappingURL=hooks.js.map
package/dist/hooks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,39 @@
6
6
  * We mock `react` to control useState/useEffect/useCallback/useContext behavior,
7
7
  * and verify hooks call the correct bridge methods.
8
8
  */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
9
42
  Object.defineProperty(exports, "__esModule", { value: true });
10
43
  const theme_1 = require("./theme");
11
44
  // Build a mock bridge that tracks calls
@@ -49,12 +82,27 @@ jest.mock('react', () => ({
49
82
  jest.mock('react-dom', () => ({
50
83
  flushSync: jest.fn((fn) => fn()),
51
84
  }));
85
+ // `useVaultDocuments().getDownloadUrl` (and `fetchVaultDocumentDownloadUrl`)
86
+ // reach the module-scoped bridge singleton via `getBridge()` rather than
87
+ // React context. Tests that exercise the cache need to control that
88
+ // singleton — mock the module to return whatever bridge the test installed
89
+ // last.
90
+ let mockSingletonBridge = null;
91
+ jest.mock('./bridge', () => ({
92
+ __esModule: true,
93
+ // Real exports the hooks module needs: only getBridge. resetBridge isn't
94
+ // referenced from hooks.ts.
95
+ getBridge: jest.fn(() => mockSingletonBridge),
96
+ FiasBridge: jest.fn(),
97
+ resetBridge: jest.fn(),
98
+ }));
52
99
  describe('SDK hooks', () => {
53
100
  let mockBridge;
54
101
  beforeEach(() => {
55
102
  jest.clearAllMocks();
56
103
  mockBridge = createMockBridge();
57
104
  mockContextValue = mockBridge;
105
+ mockSingletonBridge = mockBridge;
58
106
  capturedEffectCleanup = null;
59
107
  });
60
108
  describe('useFiasUser', () => {
@@ -400,5 +448,189 @@ describe('SDK hooks', () => {
400
448
  }
401
449
  });
402
450
  });
451
+ describe('useVaultDocuments', () => {
452
+ // Reset the module-scoped download URL cache between tests so one
453
+ // test's cached entry doesn't satisfy another's lookup.
454
+ function freshHooks() {
455
+ jest.resetModules();
456
+ // Re-install the bridge mock for the freshly loaded module graph.
457
+ jest.doMock('./bridge', () => ({
458
+ __esModule: true,
459
+ getBridge: () => mockSingletonBridge,
460
+ FiasBridge: jest.fn(),
461
+ resetBridge: jest.fn(),
462
+ }));
463
+ jest.doMock('react', () => require('react'));
464
+ jest.doMock('react-dom', () => require('react-dom'));
465
+ // Honor the same react/react-dom mocks the rest of the file uses.
466
+ jest.doMock('react', () => ({
467
+ createContext: jest.fn(() => ({})),
468
+ useContext: jest.fn(() => mockContextValue),
469
+ useState: jest.fn((initial) => [initial, mockSetState]),
470
+ useEffect: jest.fn((cb) => {
471
+ const cleanup = cb();
472
+ if (typeof cleanup === 'function') {
473
+ capturedEffectCleanup = cleanup;
474
+ }
475
+ }),
476
+ useCallback: jest.fn((fn) => fn),
477
+ useRef: jest.fn((initial) => ({ current: initial })),
478
+ useMemo: jest.fn((fn) => fn()),
479
+ }));
480
+ jest.doMock('react-dom', () => ({
481
+ flushSync: jest.fn((fn) => fn()),
482
+ }));
483
+ return require('./hooks');
484
+ }
485
+ it('list/read/write/update/delete forward to the context bridge', async () => {
486
+ const { useVaultDocuments } = freshHooks();
487
+ const api = useVaultDocuments();
488
+ mockBridge.request.mockResolvedValueOnce({ documents: [], nextCursor: null });
489
+ await api.list({ search: 'foo', limit: 10, cursor: '20' });
490
+ expect(mockBridge.request).toHaveBeenCalledWith('vault_documents_list', {
491
+ search: 'foo',
492
+ limit: 10,
493
+ cursor: '20',
494
+ });
495
+ mockBridge.request.mockResolvedValueOnce({ content: 'hi', contentType: 'text/plain' });
496
+ await api.read('vdoc_1');
497
+ expect(mockBridge.request).toHaveBeenCalledWith('vault_documents_read', {
498
+ documentId: 'vdoc_1',
499
+ });
500
+ mockBridge.request.mockResolvedValueOnce({ documentId: 'vdoc_2' });
501
+ await api.write({ name: 'a.json', content: '{}', contentType: 'application/json' });
502
+ expect(mockBridge.request).toHaveBeenCalledWith('vault_documents_write', {
503
+ name: 'a.json',
504
+ content: '{}',
505
+ contentType: 'application/json',
506
+ tags: undefined,
507
+ });
508
+ mockBridge.request.mockResolvedValueOnce({ success: true });
509
+ await api.update('vdoc_2', { name: 'b.json', tags: ['draft'] });
510
+ expect(mockBridge.request).toHaveBeenCalledWith('vault_documents_update', {
511
+ documentId: 'vdoc_2',
512
+ name: 'b.json',
513
+ tags: ['draft'],
514
+ });
515
+ mockBridge.request.mockResolvedValueOnce({ success: true });
516
+ await api.delete('vdoc_2');
517
+ expect(mockBridge.request).toHaveBeenCalledWith('vault_documents_delete', {
518
+ documentId: 'vdoc_2',
519
+ });
520
+ });
521
+ it('getDownloadUrl caches a still-valid presigned URL', async () => {
522
+ const { useVaultDocuments } = freshHooks();
523
+ const api = useVaultDocuments();
524
+ // Expires well past the refresh buffer (60s) so the entry is reused.
525
+ mockBridge.request.mockResolvedValueOnce({
526
+ url: 'https://example.com/x?sig=1',
527
+ expiresAt: Date.now() + 10 * 60000,
528
+ });
529
+ const first = await api.getDownloadUrl('file_a');
530
+ const second = await api.getDownloadUrl('file_a');
531
+ expect(first.url).toBe(second.url);
532
+ expect(mockBridge.request).toHaveBeenCalledTimes(1);
533
+ });
534
+ it('getDownloadUrl re-fetches when the cached URL is near expiry', async () => {
535
+ const { useVaultDocuments } = freshHooks();
536
+ const api = useVaultDocuments();
537
+ // First call returns a URL within the 60s refresh buffer — should
538
+ // be treated as stale immediately on the next request.
539
+ mockBridge.request.mockResolvedValueOnce({
540
+ url: 'https://example.com/old',
541
+ expiresAt: Date.now() + 30000, // < 60s buffer
542
+ });
543
+ mockBridge.request.mockResolvedValueOnce({
544
+ url: 'https://example.com/new',
545
+ expiresAt: Date.now() + 10 * 60000,
546
+ });
547
+ const first = await api.getDownloadUrl('file_b');
548
+ const second = await api.getDownloadUrl('file_b');
549
+ expect(first.url).toBe('https://example.com/old');
550
+ expect(second.url).toBe('https://example.com/new');
551
+ expect(mockBridge.request).toHaveBeenCalledTimes(2);
552
+ });
553
+ it('getDownloadUrl dedups concurrent in-flight calls', async () => {
554
+ const { useVaultDocuments } = freshHooks();
555
+ const api = useVaultDocuments();
556
+ let resolveBridge;
557
+ mockBridge.request.mockImplementation(() => new Promise((resolve) => {
558
+ resolveBridge = resolve;
559
+ }));
560
+ const p1 = api.getDownloadUrl('file_c');
561
+ const p2 = api.getDownloadUrl('file_c');
562
+ // Both consumers wait on the same in-flight bridge call.
563
+ expect(mockBridge.request).toHaveBeenCalledTimes(1);
564
+ resolveBridge({
565
+ url: 'https://example.com/c',
566
+ expiresAt: Date.now() + 10 * 60000,
567
+ });
568
+ const [r1, r2] = await Promise.all([p1, p2]);
569
+ expect(r1).toEqual(r2);
570
+ });
571
+ it('update invalidates the cached download URL for that fileId', async () => {
572
+ const { useVaultDocuments } = freshHooks();
573
+ const api = useVaultDocuments();
574
+ mockBridge.request.mockResolvedValueOnce({
575
+ url: 'https://example.com/before',
576
+ expiresAt: Date.now() + 10 * 60000,
577
+ });
578
+ await api.getDownloadUrl('file_d');
579
+ // update() rewrites Content-Disposition the URL would carry, so the
580
+ // cache entry for this fileId must drop. Next getDownloadUrl forces
581
+ // a fresh bridge call.
582
+ mockBridge.request.mockResolvedValueOnce({ success: true });
583
+ await api.update('file_d', { name: 'renamed.txt' });
584
+ mockBridge.request.mockResolvedValueOnce({
585
+ url: 'https://example.com/after',
586
+ expiresAt: Date.now() + 10 * 60000,
587
+ });
588
+ const refreshed = await api.getDownloadUrl('file_d');
589
+ expect(refreshed.url).toBe('https://example.com/after');
590
+ // 1 initial + 1 update + 1 re-fetch
591
+ expect(mockBridge.request).toHaveBeenCalledTimes(3);
592
+ });
593
+ it('delete invalidates both the cached URL and any inflight request', async () => {
594
+ const { useVaultDocuments } = freshHooks();
595
+ const api = useVaultDocuments();
596
+ mockBridge.request.mockResolvedValueOnce({
597
+ url: 'https://example.com/x',
598
+ expiresAt: Date.now() + 10 * 60000,
599
+ });
600
+ await api.getDownloadUrl('file_e');
601
+ mockBridge.request.mockResolvedValueOnce({ success: true });
602
+ await api.delete('file_e');
603
+ mockBridge.request.mockResolvedValueOnce({
604
+ url: 'https://example.com/y',
605
+ expiresAt: Date.now() + 10 * 60000,
606
+ });
607
+ await api.getDownloadUrl('file_e');
608
+ // 1 initial + 1 delete + 1 fresh fetch (cache cleared by delete)
609
+ expect(mockBridge.request).toHaveBeenCalledTimes(3);
610
+ });
611
+ });
612
+ describe('useSurface', () => {
613
+ it('invokes the surface_invoke bridge op with the given surfaceKey', async () => {
614
+ const { useSurface } = await Promise.resolve().then(() => __importStar(require('./hooks')));
615
+ mockBridge.request.mockResolvedValueOnce({ audioUrl: '/x' });
616
+ const api = useSurface('audio.tts');
617
+ const result = await api.invoke({ voiceId: 'v1', text: 'hi' });
618
+ expect(mockBridge.request).toHaveBeenCalledWith('surface_invoke', { surfaceKey: 'audio.tts', params: { voiceId: 'v1', text: 'hi' } }, 180000);
619
+ expect(result).toEqual({ audioUrl: '/x' });
620
+ });
621
+ it('respects a custom timeout', async () => {
622
+ const { useSurface } = await Promise.resolve().then(() => __importStar(require('./hooks')));
623
+ mockBridge.request.mockResolvedValueOnce({ ok: true });
624
+ const api = useSurface('image.generate', 60000);
625
+ await api.invoke({ x: 1 });
626
+ expect(mockBridge.request).toHaveBeenCalledWith('surface_invoke', { surfaceKey: 'image.generate', params: { x: 1 } }, 60000);
627
+ });
628
+ it('rethrows bridge errors and wraps non-Error values', async () => {
629
+ const { useSurface } = await Promise.resolve().then(() => __importStar(require('./hooks')));
630
+ mockBridge.request.mockRejectedValueOnce(new Error('rate limited'));
631
+ const api = useSurface('audio.tts');
632
+ await expect(api.invoke({ text: 'hi' })).rejects.toThrow('rate limited');
633
+ });
634
+ });
403
635
  });
404
636
  //# sourceMappingURL=hooks.test.js.map