@effect-native/fetch-hooks
Advanced tools
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../src/cache-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,YAAY,EACZ,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,aAAa,EACd,MAAM,YAAY,CAAA;AA8BnB,2EAA2E;AAC3E,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,UAAU,CAAC,KAAK,GAAG,IAAI,CAE/E;AAkID,wBAAsB,YAAY,CAChC,MAAM,EAAE,gBAAgB,EACxB,gBAAgB,CAAC,EAAE,MAAM,EACzB,mBAAmB,CAAC,EAAE,OAAO,EAC7B,OAAO,CAAC,EAAE,YAAY,EACtB,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,MAAM,CAAC,CA8BjB;AAED,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,mBAAmB,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,EACrD,OAAO,CAAC,EAAE,YAAY,EACtB,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,QAAQ,CAAC,CAqInB;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,iBAAiB,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,EACnD,iBAAiB,CAAC,EAAE,sBAAsB,CAAC,UAAU,CAAC,EACtD,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CA8M1B;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ7D"} | ||
| {"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../src/cache-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,YAAY,EACZ,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,aAAa,EACd,MAAM,YAAY,CAAA;AA2BnB,2EAA2E;AAC3E,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,UAAU,CAAC,KAAK,GAAG,IAAI,CAE/E;AAyFD,wBAAsB,YAAY,CAChC,MAAM,EAAE,gBAAgB,EACxB,gBAAgB,CAAC,EAAE,MAAM,EACzB,mBAAmB,CAAC,EAAE,OAAO,EAC7B,OAAO,CAAC,EAAE,YAAY,EACtB,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,MAAM,CAAC,CA6BjB;AAED,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,mBAAmB,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,EACrD,OAAO,CAAC,EAAE,YAAY,EACtB,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,QAAQ,CAAC,CA8HnB;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,iBAAiB,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,EACnD,iBAAiB,CAAC,EAAE,sBAAsB,CAAC,UAAU,CAAC,EACtD,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAqL1B;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ7D"} |
+29
-97
@@ -10,5 +10,2 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; | ||
| let _internalFetch = globalThis.fetch; | ||
| const pendingSSEWrites = new Map(); | ||
| const storageIds = new WeakMap(); | ||
| let nextStorageId = 1; | ||
| /** @internal Set the fetch function used for dev-fs-logs communication. */ | ||
@@ -18,33 +15,2 @@ export function setInternalFetchForCache(fetchFn) { | ||
| } | ||
| function getStorageId(storage) { | ||
| const existingId = storageIds.get(storage); | ||
| if (existingId !== undefined) { | ||
| return existingId; | ||
| } | ||
| const id = nextStorageId++; | ||
| storageIds.set(storage, id); | ||
| return id; | ||
| } | ||
| function getPendingSSEWriteKey(cacheKey, storage, baseDir) { | ||
| if (storage) { | ||
| return `storage:${getStorageId(storage)}:${cacheKey}`; | ||
| } | ||
| return `fs:${baseDir ?? getCacheDir()}:${cacheKey}`; | ||
| } | ||
| function trackPendingSSEWrite(pendingKey, writePromise) { | ||
| pendingSSEWrites.set(pendingKey, writePromise); | ||
| void writePromise.finally(() => { | ||
| const active = pendingSSEWrites.get(pendingKey); | ||
| if (active === writePromise) { | ||
| pendingSSEWrites.delete(pendingKey); | ||
| } | ||
| }); | ||
| } | ||
| async function waitForPendingSSEWrite(pendingKey) { | ||
| const pending = pendingSSEWrites.get(pendingKey); | ||
| if (!pending) { | ||
| return; | ||
| } | ||
| await pending.catch(() => undefined); | ||
| } | ||
| async function tryDevFsLogsWrite(cacheId, data) { | ||
@@ -74,3 +40,4 @@ return _internalFetch(`http://localhost:${DEV_FS_LOGS_PORT}/cache`, { | ||
| } | ||
| function ensureCacheDir(baseDir, cacheKey) { | ||
| function ensureCacheDir(cacheKey) { | ||
| const baseDir = getCacheDir(); | ||
| const cacheDir = join(baseDir, cacheKey); | ||
@@ -93,8 +60,2 @@ if (!existsSync(cacheDir)) { | ||
| } | ||
| function requireFilesystemBaseDir(baseDir) { | ||
| if (baseDir === undefined) { | ||
| throw new Error("Filesystem cache directory is required when no custom storage is provided"); | ||
| } | ||
| return baseDir; | ||
| } | ||
| function writeJsonFile(filePath, data) { | ||
@@ -157,4 +118,3 @@ writeFileSync(filePath, JSON.stringify(data, null, 2), "utf-8"); | ||
| // Legacy filesystem path | ||
| const baseDir = getCacheDir(); | ||
| const cacheDir = ensureCacheDir(baseDir, cacheKey); | ||
| const cacheDir = ensureCacheDir(cacheKey); | ||
| const requestPath = join(cacheDir, "request.json"); | ||
@@ -168,3 +128,2 @@ writeJsonFile(requestPath, request); | ||
| const key = hashableRequest ? [cacheKey, hashableRequest] : [cacheKey]; | ||
| const filesystemBaseDir = storage ? undefined : getCacheDir(); | ||
| const startTime = Date.now(); | ||
@@ -191,3 +150,3 @@ const headers = headersToRecord(response.headers); | ||
| else { | ||
| const cacheDir = ensureCacheDir(requireFilesystemBaseDir(filesystemBaseDir), cacheKey); | ||
| const cacheDir = ensureCacheDir(cacheKey); | ||
| const metaPath = join(cacheDir, "response.meta.json"); | ||
@@ -217,3 +176,3 @@ writeJsonFile(metaPath, meta); | ||
| else { | ||
| const cacheDir = ensureCacheDir(requireFilesystemBaseDir(filesystemBaseDir), cacheKey); | ||
| const cacheDir = ensureCacheDir(cacheKey); | ||
| const binPath = join(cacheDir, "response.bin"); | ||
@@ -233,27 +192,21 @@ writeBinaryFile(binPath, data); | ||
| const [recordStream, returnStream] = response.body.tee(); | ||
| const persistPromise = (async () => { | ||
| const chunks = await recordStreamWithTiming(recordStream); | ||
| const sseMeta = { | ||
| ...meta, | ||
| total_ms: Date.now() - startTime | ||
| }; | ||
| if (storage) { | ||
| await storage.sseChunks.set(key, chunks); | ||
| await storage.responseMeta.set(key, sseMeta); | ||
| } | ||
| else { | ||
| const cacheDir = ensureCacheDir(requireFilesystemBaseDir(filesystemBaseDir), cacheKey); | ||
| const jsonlPath = join(cacheDir, "response.jsonl"); | ||
| const assetsDir = join(cacheDir, "response.jsonl.assets"); | ||
| let jsonlContent = timedChunksToJsonl(chunks); | ||
| const { content: extractedContent } = extractDataUrls(jsonlContent, assetsDir); | ||
| jsonlContent = extractedContent; | ||
| writeTextFile(jsonlPath, jsonlContent); | ||
| const metaPath = join(cacheDir, "response.meta.json"); | ||
| writeJsonFile(metaPath, sseMeta); | ||
| } | ||
| void tryDevFsLogsWrite(`${cacheKey}/meta`, sseMeta); | ||
| void tryDevFsLogsWrite(`${cacheKey}/sse`, chunks); | ||
| })(); | ||
| trackPendingSSEWrite(getPendingSSEWriteKey(cacheKey, storage, filesystemBaseDir), persistPromise); | ||
| const chunks = await recordStreamWithTiming(recordStream); | ||
| meta.total_ms = Date.now() - startTime; | ||
| if (storage) { | ||
| await storage.responseMeta.set(key, meta); | ||
| await storage.sseChunks.set(key, chunks); | ||
| } | ||
| else { | ||
| const cacheDir = ensureCacheDir(cacheKey); | ||
| const jsonlPath = join(cacheDir, "response.jsonl"); | ||
| const assetsDir = join(cacheDir, "response.jsonl.assets"); | ||
| let jsonlContent = timedChunksToJsonl(chunks); | ||
| const { content: extractedContent } = extractDataUrls(jsonlContent, assetsDir); | ||
| jsonlContent = extractedContent; | ||
| writeTextFile(jsonlPath, jsonlContent); | ||
| const metaPath = join(cacheDir, "response.meta.json"); | ||
| writeJsonFile(metaPath, meta); | ||
| } | ||
| await tryDevFsLogsWrite(`${cacheKey}/meta`, meta); | ||
| await tryDevFsLogsWrite(`${cacheKey}/sse`, chunks); | ||
| return new Response(returnStream, { | ||
@@ -277,3 +230,3 @@ status: response.status, | ||
| else { | ||
| const cacheDir = ensureCacheDir(requireFilesystemBaseDir(filesystemBaseDir), cacheKey); | ||
| const cacheDir = ensureCacheDir(cacheKey); | ||
| const jsonPath = join(cacheDir, "response.json"); | ||
@@ -299,4 +252,2 @@ const assetsDir = join(cacheDir, "response.json.assets"); | ||
| const key = [cacheKey]; | ||
| const filesystemBaseDir = storage ? undefined : getCacheDir(); | ||
| const pendingWriteKey = getPendingSSEWriteKey(cacheKey, storage, filesystemBaseDir); | ||
| // Try to get response metadata | ||
@@ -308,3 +259,3 @@ let responseMeta = null; | ||
| else { | ||
| const cacheDir = join(requireFilesystemBaseDir(filesystemBaseDir), cacheKey); | ||
| const cacheDir = join(getCacheDir(), cacheKey); | ||
| const metaPath = join(cacheDir, "response.meta.json"); | ||
@@ -322,21 +273,2 @@ responseMeta = readJsonFile(metaPath); | ||
| if (!responseMeta) { | ||
| await waitForPendingSSEWrite(pendingWriteKey); | ||
| if (storage) { | ||
| responseMeta = await storage.responseMeta.get(key); | ||
| } | ||
| else { | ||
| const cacheDir = join(requireFilesystemBaseDir(filesystemBaseDir), cacheKey); | ||
| const metaPath = join(cacheDir, "response.meta.json"); | ||
| responseMeta = readJsonFile(metaPath); | ||
| // For non-streaming responses, metadata is stored inside response.json | ||
| if (!responseMeta) { | ||
| const jsonPath = join(cacheDir, "response.json"); | ||
| const cached = readJsonFile(jsonPath); | ||
| if (cached?.meta) { | ||
| responseMeta = cached.meta; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| if (!responseMeta) { | ||
| const devFsMeta = (await tryDevFsLogsRead(`${cacheKey}/meta`)); | ||
@@ -356,3 +288,3 @@ if (!devFsMeta) { | ||
| else { | ||
| const cacheDir = join(requireFilesystemBaseDir(filesystemBaseDir), cacheKey); | ||
| const cacheDir = join(getCacheDir(), cacheKey); | ||
| const binPath = join(cacheDir, "response.bin"); | ||
@@ -411,3 +343,3 @@ data = readBinaryFile(binPath); | ||
| // Legacy filesystem path | ||
| const cacheDir = join(requireFilesystemBaseDir(filesystemBaseDir), cacheKey); | ||
| const cacheDir = join(getCacheDir(), cacheKey); | ||
| const jsonlPath = join(cacheDir, "response.jsonl"); | ||
@@ -448,3 +380,3 @@ const assetsDir = join(cacheDir, "response.jsonl.assets"); | ||
| else { | ||
| const cacheDir = join(requireFilesystemBaseDir(filesystemBaseDir), cacheKey); | ||
| const cacheDir = join(getCacheDir(), cacheKey); | ||
| const jsonPath = join(cacheDir, "response.json"); | ||
@@ -451,0 +383,0 @@ const assetsDir = join(cacheDir, "response.json.assets"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"cache-manager.js","sourceRoot":"","sources":["../src/cache-manager.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"cache-manager.js","sourceRoot":"","sources":["../src/cache-manager.ts"],"names":[],"mappings":"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"} |
+8
-8
| { | ||
| "name": "@effect-native/fetch-hooks", | ||
| "version": "0.1.1", | ||
| "version": "4.0.0", | ||
| "description": "Fetch caching utilities for deterministic API replay", | ||
@@ -15,2 +15,7 @@ "type": "module", | ||
| }, | ||
| "scripts": { | ||
| "build": "tsc --project tsconfig.build.json", | ||
| "test": "bun test", | ||
| "test:run": "bun test" | ||
| }, | ||
| "files": [ | ||
@@ -34,3 +39,3 @@ "dist", | ||
| "url": "https://github.com/effect-native/effect-native.git", | ||
| "directory": "packages-native/fetch-hooks" | ||
| "directory": "packages/fetch-hooks" | ||
| }, | ||
@@ -50,8 +55,3 @@ "engines": { | ||
| } | ||
| }, | ||
| "scripts": { | ||
| "build": "tsc --project tsconfig.build.json", | ||
| "test": "vitest", | ||
| "test:run": "vitest run" | ||
| } | ||
| } | ||
| } |
+28
-105
@@ -39,5 +39,2 @@ import type { | ||
| let _internalFetch: typeof globalThis.fetch = globalThis.fetch | ||
| const pendingSSEWrites = new Map<string, Promise<void>>() | ||
| const storageIds = new WeakMap<CacheStorage, number>() | ||
| let nextStorageId = 1 | ||
@@ -49,37 +46,2 @@ /** @internal Set the fetch function used for dev-fs-logs communication. */ | ||
| function getStorageId(storage: CacheStorage): number { | ||
| const existingId = storageIds.get(storage) | ||
| if (existingId !== undefined) { | ||
| return existingId | ||
| } | ||
| const id = nextStorageId++ | ||
| storageIds.set(storage, id) | ||
| return id | ||
| } | ||
| function getPendingSSEWriteKey(cacheKey: string, storage?: CacheStorage, baseDir?: string): string { | ||
| if (storage) { | ||
| return `storage:${getStorageId(storage)}:${cacheKey}` | ||
| } | ||
| return `fs:${baseDir ?? getCacheDir()}:${cacheKey}` | ||
| } | ||
| function trackPendingSSEWrite(pendingKey: string, writePromise: Promise<void>): void { | ||
| pendingSSEWrites.set(pendingKey, writePromise) | ||
| void writePromise.finally(() => { | ||
| const active = pendingSSEWrites.get(pendingKey) | ||
| if (active === writePromise) { | ||
| pendingSSEWrites.delete(pendingKey) | ||
| } | ||
| }) | ||
| } | ||
| async function waitForPendingSSEWrite(pendingKey: string): Promise<void> { | ||
| const pending = pendingSSEWrites.get(pendingKey) | ||
| if (!pending) { | ||
| return | ||
| } | ||
| await pending.catch(() => undefined) | ||
| } | ||
| async function tryDevFsLogsWrite(cacheId: string, data: unknown): Promise<boolean> { | ||
@@ -111,3 +73,4 @@ return _internalFetch(`http://localhost:${DEV_FS_LOGS_PORT}/cache`, { | ||
| function ensureCacheDir(baseDir: string, cacheKey: string): string { | ||
| function ensureCacheDir(cacheKey: string): string { | ||
| const baseDir = getCacheDir() | ||
| const cacheDir = join(baseDir, cacheKey) | ||
@@ -130,9 +93,2 @@ if (!existsSync(cacheDir)) { | ||
| function requireFilesystemBaseDir(baseDir: string | undefined): string { | ||
| if (baseDir === undefined) { | ||
| throw new Error("Filesystem cache directory is required when no custom storage is provided") | ||
| } | ||
| return baseDir | ||
| } | ||
| function writeJsonFile(filePath: string, data: unknown): void { | ||
@@ -207,4 +163,3 @@ writeFileSync(filePath, JSON.stringify(data, null, 2), "utf-8") | ||
| // Legacy filesystem path | ||
| const baseDir = getCacheDir() | ||
| const cacheDir = ensureCacheDir(baseDir, cacheKey) | ||
| const cacheDir = ensureCacheDir(cacheKey) | ||
| const requestPath = join(cacheDir, "request.json") | ||
@@ -227,3 +182,2 @@ writeJsonFile(requestPath, request) | ||
| const key: CacheKey = hashableRequest ? [cacheKey, hashableRequest] : [cacheKey] | ||
| const filesystemBaseDir = storage ? undefined : getCacheDir() | ||
| const startTime = Date.now() | ||
@@ -251,3 +205,3 @@ const headers = headersToRecord(response.headers) | ||
| } else { | ||
| const cacheDir = ensureCacheDir(requireFilesystemBaseDir(filesystemBaseDir), cacheKey) | ||
| const cacheDir = ensureCacheDir(cacheKey) | ||
| const metaPath = join(cacheDir, "response.meta.json") | ||
@@ -277,3 +231,3 @@ writeJsonFile(metaPath, meta) | ||
| } else { | ||
| const cacheDir = ensureCacheDir(requireFilesystemBaseDir(filesystemBaseDir), cacheKey) | ||
| const cacheDir = ensureCacheDir(cacheKey) | ||
| const binPath = join(cacheDir, "response.bin") | ||
@@ -294,28 +248,22 @@ writeBinaryFile(binPath, data) | ||
| const [recordStream, returnStream] = response.body.tee() | ||
| const persistPromise = (async () => { | ||
| const chunks = await recordStreamWithTiming(recordStream) | ||
| const sseMeta: CachedResponseMeta = { | ||
| ...meta, | ||
| total_ms: Date.now() - startTime | ||
| } | ||
| const chunks = await recordStreamWithTiming(recordStream) | ||
| meta.total_ms = Date.now() - startTime | ||
| if (storage) { | ||
| await storage.sseChunks.set(key, chunks) | ||
| await storage.responseMeta.set(key, sseMeta) | ||
| } else { | ||
| const cacheDir = ensureCacheDir(requireFilesystemBaseDir(filesystemBaseDir), cacheKey) | ||
| const jsonlPath = join(cacheDir, "response.jsonl") | ||
| const assetsDir = join(cacheDir, "response.jsonl.assets") | ||
| let jsonlContent = timedChunksToJsonl(chunks) | ||
| const { content: extractedContent } = extractDataUrls(jsonlContent, assetsDir) | ||
| jsonlContent = extractedContent | ||
| writeTextFile(jsonlPath, jsonlContent) | ||
| if (storage) { | ||
| await storage.responseMeta.set(key, meta) | ||
| await storage.sseChunks.set(key, chunks) | ||
| } else { | ||
| const cacheDir = ensureCacheDir(cacheKey) | ||
| const jsonlPath = join(cacheDir, "response.jsonl") | ||
| const assetsDir = join(cacheDir, "response.jsonl.assets") | ||
| let jsonlContent = timedChunksToJsonl(chunks) | ||
| const { content: extractedContent } = extractDataUrls(jsonlContent, assetsDir) | ||
| jsonlContent = extractedContent | ||
| writeTextFile(jsonlPath, jsonlContent) | ||
| const metaPath = join(cacheDir, "response.meta.json") | ||
| writeJsonFile(metaPath, sseMeta) | ||
| } | ||
| void tryDevFsLogsWrite(`${cacheKey}/meta`, sseMeta) | ||
| void tryDevFsLogsWrite(`${cacheKey}/sse`, chunks) | ||
| })() | ||
| trackPendingSSEWrite(getPendingSSEWriteKey(cacheKey, storage, filesystemBaseDir), persistPromise) | ||
| const metaPath = join(cacheDir, "response.meta.json") | ||
| writeJsonFile(metaPath, meta) | ||
| } | ||
| await tryDevFsLogsWrite(`${cacheKey}/meta`, meta) | ||
| await tryDevFsLogsWrite(`${cacheKey}/sse`, chunks) | ||
@@ -342,3 +290,3 @@ return new Response(returnStream, { | ||
| } else { | ||
| const cacheDir = ensureCacheDir(requireFilesystemBaseDir(filesystemBaseDir), cacheKey) | ||
| const cacheDir = ensureCacheDir(cacheKey) | ||
| const jsonPath = join(cacheDir, "response.json") | ||
@@ -372,4 +320,2 @@ const assetsDir = join(cacheDir, "response.json.assets") | ||
| const key: CacheKey = [cacheKey] | ||
| const filesystemBaseDir = storage ? undefined : getCacheDir() | ||
| const pendingWriteKey = getPendingSSEWriteKey(cacheKey, storage, filesystemBaseDir) | ||
@@ -382,3 +328,3 @@ // Try to get response metadata | ||
| } else { | ||
| const cacheDir = join(requireFilesystemBaseDir(filesystemBaseDir), cacheKey) | ||
| const cacheDir = join(getCacheDir(), cacheKey) | ||
| const metaPath = join(cacheDir, "response.meta.json") | ||
@@ -401,25 +347,2 @@ responseMeta = readJsonFile<CachedResponseMeta>(metaPath) | ||
| if (!responseMeta) { | ||
| await waitForPendingSSEWrite(pendingWriteKey) | ||
| if (storage) { | ||
| responseMeta = await storage.responseMeta.get(key) | ||
| } else { | ||
| const cacheDir = join(requireFilesystemBaseDir(filesystemBaseDir), cacheKey) | ||
| const metaPath = join(cacheDir, "response.meta.json") | ||
| responseMeta = readJsonFile<CachedResponseMeta>(metaPath) | ||
| // For non-streaming responses, metadata is stored inside response.json | ||
| if (!responseMeta) { | ||
| const jsonPath = join(cacheDir, "response.json") | ||
| const cached = readJsonFile<{ | ||
| body: string | ||
| meta: CachedResponseMeta | ||
| }>(jsonPath) | ||
| if (cached?.meta) { | ||
| responseMeta = cached.meta | ||
| } | ||
| } | ||
| } | ||
| } | ||
| if (!responseMeta) { | ||
| const devFsMeta = (await tryDevFsLogsRead(`${cacheKey}/meta`)) as CachedResponseMeta | null | ||
@@ -440,3 +363,3 @@ if (!devFsMeta) { | ||
| } else { | ||
| const cacheDir = join(requireFilesystemBaseDir(filesystemBaseDir), cacheKey) | ||
| const cacheDir = join(getCacheDir(), cacheKey) | ||
| const binPath = join(cacheDir, "response.bin") | ||
@@ -497,3 +420,3 @@ data = readBinaryFile(binPath) | ||
| // Legacy filesystem path | ||
| const cacheDir = join(requireFilesystemBaseDir(filesystemBaseDir), cacheKey) | ||
| const cacheDir = join(getCacheDir(), cacheKey) | ||
| const jsonlPath = join(cacheDir, "response.jsonl") | ||
@@ -538,3 +461,3 @@ const assetsDir = join(cacheDir, "response.jsonl.assets") | ||
| } else { | ||
| const cacheDir = join(requireFilesystemBaseDir(filesystemBaseDir), cacheKey) | ||
| const cacheDir = join(getCacheDir(), cacheKey) | ||
| const jsonPath = join(cacheDir, "response.json") | ||
@@ -541,0 +464,0 @@ const assetsDir = join(cacheDir, "response.json.assets") |
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 5 instances in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 5 instances in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
1
-50%171331
-4.61%3130
-4.22%