@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/README.md +1 -1
- package/dist/generated/permissions.d.ts +15 -0
- package/dist/generated/permissions.d.ts.map +1 -0
- package/dist/generated/permissions.js +32 -0
- package/dist/generated/permissions.js.map +1 -0
- package/dist/generated/surfaces.d.ts +267 -0
- package/dist/generated/surfaces.d.ts.map +1 -0
- package/dist/generated/surfaces.js +87 -0
- package/dist/generated/surfaces.js.map +1 -0
- package/dist/hooks.d.ts +90 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +251 -0
- package/dist/hooks.js.map +1 -1
- package/dist/hooks.test.js +232 -0
- package/dist/hooks.test.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +248 -1
- package/dist/types.d.ts +260 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -1
- package/package.json +16 -16
- package/templates/default/AGENTS.md +59 -3
- package/templates/default/CLAUDE.md +59 -3
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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"}
|
package/dist/hooks.test.js
CHANGED
|
@@ -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
|