@dynlabs/react-native-immutable-file-cache 1.0.0-alpha.1
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/LICENSE +21 -0
- package/README.md +415 -0
- package/lib/commonjs/adapters/memoryAdapter.js +266 -0
- package/lib/commonjs/adapters/memoryAdapter.js.map +1 -0
- package/lib/commonjs/adapters/rnfsAdapter.js +259 -0
- package/lib/commonjs/adapters/rnfsAdapter.js.map +1 -0
- package/lib/commonjs/adapters/webAdapter.js +432 -0
- package/lib/commonjs/adapters/webAdapter.js.map +1 -0
- package/lib/commonjs/core/adapter.js +2 -0
- package/lib/commonjs/core/adapter.js.map +1 -0
- package/lib/commonjs/core/cacheEngine.js +578 -0
- package/lib/commonjs/core/cacheEngine.js.map +1 -0
- package/lib/commonjs/core/errors.js +83 -0
- package/lib/commonjs/core/errors.js.map +1 -0
- package/lib/commonjs/core/hash.js +83 -0
- package/lib/commonjs/core/hash.js.map +1 -0
- package/lib/commonjs/core/indexStore.js +175 -0
- package/lib/commonjs/core/indexStore.js.map +1 -0
- package/lib/commonjs/core/mutex.js +143 -0
- package/lib/commonjs/core/mutex.js.map +1 -0
- package/lib/commonjs/core/prune.js +127 -0
- package/lib/commonjs/core/prune.js.map +1 -0
- package/lib/commonjs/core/types.js +6 -0
- package/lib/commonjs/core/types.js.map +1 -0
- package/lib/commonjs/factory.js +56 -0
- package/lib/commonjs/factory.js.map +1 -0
- package/lib/commonjs/index.js +110 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/index.native.js +74 -0
- package/lib/commonjs/index.native.js.map +1 -0
- package/lib/commonjs/index.web.js +75 -0
- package/lib/commonjs/index.web.js.map +1 -0
- package/lib/commonjs/types/react-native-fs.d.js +2 -0
- package/lib/commonjs/types/react-native-fs.d.js.map +1 -0
- package/lib/module/adapters/memoryAdapter.js +261 -0
- package/lib/module/adapters/memoryAdapter.js.map +1 -0
- package/lib/module/adapters/rnfsAdapter.js +251 -0
- package/lib/module/adapters/rnfsAdapter.js.map +1 -0
- package/lib/module/adapters/webAdapter.js +426 -0
- package/lib/module/adapters/webAdapter.js.map +1 -0
- package/lib/module/core/adapter.js +2 -0
- package/lib/module/core/adapter.js.map +1 -0
- package/lib/module/core/cacheEngine.js +571 -0
- package/lib/module/core/cacheEngine.js.map +1 -0
- package/lib/module/core/errors.js +71 -0
- package/lib/module/core/errors.js.map +1 -0
- package/lib/module/core/hash.js +76 -0
- package/lib/module/core/hash.js.map +1 -0
- package/lib/module/core/indexStore.js +168 -0
- package/lib/module/core/indexStore.js.map +1 -0
- package/lib/module/core/mutex.js +135 -0
- package/lib/module/core/mutex.js.map +1 -0
- package/lib/module/core/prune.js +116 -0
- package/lib/module/core/prune.js.map +1 -0
- package/lib/module/core/types.js +2 -0
- package/lib/module/core/types.js.map +1 -0
- package/lib/module/factory.js +49 -0
- package/lib/module/factory.js.map +1 -0
- package/lib/module/index.js +41 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/index.native.js +54 -0
- package/lib/module/index.native.js.map +1 -0
- package/lib/module/index.web.js +55 -0
- package/lib/module/index.web.js.map +1 -0
- package/lib/module/types/react-native-fs.d.js +2 -0
- package/lib/module/types/react-native-fs.d.js.map +1 -0
- package/lib/typescript/src/adapters/memoryAdapter.d.ts +23 -0
- package/lib/typescript/src/adapters/memoryAdapter.d.ts.map +1 -0
- package/lib/typescript/src/adapters/rnfsAdapter.d.ts +18 -0
- package/lib/typescript/src/adapters/rnfsAdapter.d.ts.map +1 -0
- package/lib/typescript/src/adapters/webAdapter.d.ts +30 -0
- package/lib/typescript/src/adapters/webAdapter.d.ts.map +1 -0
- package/lib/typescript/src/core/adapter.d.ts +105 -0
- package/lib/typescript/src/core/adapter.d.ts.map +1 -0
- package/lib/typescript/src/core/cacheEngine.d.ts +99 -0
- package/lib/typescript/src/core/cacheEngine.d.ts.map +1 -0
- package/lib/typescript/src/core/errors.d.ts +54 -0
- package/lib/typescript/src/core/errors.d.ts.map +1 -0
- package/lib/typescript/src/core/hash.d.ts +20 -0
- package/lib/typescript/src/core/hash.d.ts.map +1 -0
- package/lib/typescript/src/core/indexStore.d.ts +34 -0
- package/lib/typescript/src/core/indexStore.d.ts.map +1 -0
- package/lib/typescript/src/core/mutex.d.ts +49 -0
- package/lib/typescript/src/core/mutex.d.ts.map +1 -0
- package/lib/typescript/src/core/prune.d.ts +39 -0
- package/lib/typescript/src/core/prune.d.ts.map +1 -0
- package/lib/typescript/src/core/types.d.ts +109 -0
- package/lib/typescript/src/core/types.d.ts.map +1 -0
- package/lib/typescript/src/factory.d.ts +46 -0
- package/lib/typescript/src/factory.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +20 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/index.native.d.ts +37 -0
- package/lib/typescript/src/index.native.d.ts.map +1 -0
- package/lib/typescript/src/index.web.d.ts +38 -0
- package/lib/typescript/src/index.web.d.ts.map +1 -0
- package/package.json +125 -0
- package/src/adapters/memoryAdapter.ts +307 -0
- package/src/adapters/rnfsAdapter.ts +283 -0
- package/src/adapters/webAdapter.ts +480 -0
- package/src/core/adapter.ts +128 -0
- package/src/core/cacheEngine.ts +634 -0
- package/src/core/errors.ts +82 -0
- package/src/core/hash.ts +78 -0
- package/src/core/indexStore.ts +184 -0
- package/src/core/mutex.ts +134 -0
- package/src/core/prune.ts +145 -0
- package/src/core/types.ts +165 -0
- package/src/factory.ts +60 -0
- package/src/index.native.ts +58 -0
- package/src/index.ts +82 -0
- package/src/index.web.ts +59 -0
- package/src/types/react-native-fs.d.ts +75 -0
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createWebAdapter = createWebAdapter;
|
|
7
|
+
var _errors = require("../core/errors");
|
|
8
|
+
/**
|
|
9
|
+
* Web Storage Adapter
|
|
10
|
+
*
|
|
11
|
+
* Implements IStorageAdapter using:
|
|
12
|
+
* - Cache Storage API for binary file storage
|
|
13
|
+
* - IndexedDB for metadata and index storage
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
const CACHE_URL_PREFIX = "https://cache.local";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Creates a storage adapter for web platforms using Cache Storage and IndexedDB.
|
|
20
|
+
*/
|
|
21
|
+
function createWebAdapter(options) {
|
|
22
|
+
const cacheName = options?.cacheName ?? "immutable-file-cache";
|
|
23
|
+
const idbName = options?.idbName ?? "immutable-file-cache-meta";
|
|
24
|
+
const namespace = options?.namespace ?? "default";
|
|
25
|
+
const rootId = `${cacheName}/${namespace}`;
|
|
26
|
+
|
|
27
|
+
// Track created blob URLs for cleanup
|
|
28
|
+
const blobUrls = new Set();
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Converts adapter path to cache URL key.
|
|
32
|
+
*/
|
|
33
|
+
const toCacheKey = path => {
|
|
34
|
+
return `${CACHE_URL_PREFIX}/${namespace}/${path}`;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Converts cache URL key back to adapter path.
|
|
39
|
+
*/
|
|
40
|
+
const fromCacheKey = url => {
|
|
41
|
+
const prefix = `${CACHE_URL_PREFIX}/${namespace}/`;
|
|
42
|
+
return url.startsWith(prefix) ? url.slice(prefix.length) : url;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Gets the IDB object store key for metadata.
|
|
47
|
+
*/
|
|
48
|
+
const toMetaKey = path => {
|
|
49
|
+
return `${namespace}/${path}`;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Opens or creates the IndexedDB database.
|
|
54
|
+
*/
|
|
55
|
+
const openDB = () => {
|
|
56
|
+
return new Promise((resolve, reject) => {
|
|
57
|
+
const request = indexedDB.open(idbName, 1);
|
|
58
|
+
request.onerror = () => reject(request.error);
|
|
59
|
+
request.onsuccess = () => resolve(request.result);
|
|
60
|
+
request.onupgradeneeded = event => {
|
|
61
|
+
const db = event.target.result;
|
|
62
|
+
if (!db.objectStoreNames.contains("metadata")) {
|
|
63
|
+
db.createObjectStore("metadata");
|
|
64
|
+
}
|
|
65
|
+
if (!db.objectStoreNames.contains("directories")) {
|
|
66
|
+
db.createObjectStore("directories");
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Gets metadata from IDB.
|
|
74
|
+
*/
|
|
75
|
+
const getMetadata = async path => {
|
|
76
|
+
const db = await openDB();
|
|
77
|
+
return new Promise((resolve, reject) => {
|
|
78
|
+
const tx = db.transaction("metadata", "readonly");
|
|
79
|
+
const store = tx.objectStore("metadata");
|
|
80
|
+
const request = store.get(toMetaKey(path));
|
|
81
|
+
request.onerror = () => reject(request.error);
|
|
82
|
+
request.onsuccess = () => resolve(request.result ?? null);
|
|
83
|
+
tx.oncomplete = () => db.close();
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Sets metadata in IDB.
|
|
89
|
+
*/
|
|
90
|
+
const setMetadata = async (path, meta) => {
|
|
91
|
+
const db = await openDB();
|
|
92
|
+
return new Promise((resolve, reject) => {
|
|
93
|
+
const tx = db.transaction("metadata", "readwrite");
|
|
94
|
+
const store = tx.objectStore("metadata");
|
|
95
|
+
const request = store.put(meta, toMetaKey(path));
|
|
96
|
+
request.onerror = () => reject(request.error);
|
|
97
|
+
tx.oncomplete = () => {
|
|
98
|
+
db.close();
|
|
99
|
+
resolve();
|
|
100
|
+
};
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Deletes metadata from IDB.
|
|
106
|
+
*/
|
|
107
|
+
const deleteMetadata = async path => {
|
|
108
|
+
const db = await openDB();
|
|
109
|
+
return new Promise((resolve, reject) => {
|
|
110
|
+
const tx = db.transaction("metadata", "readwrite");
|
|
111
|
+
const store = tx.objectStore("metadata");
|
|
112
|
+
const request = store.delete(toMetaKey(path));
|
|
113
|
+
request.onerror = () => reject(request.error);
|
|
114
|
+
tx.oncomplete = () => {
|
|
115
|
+
db.close();
|
|
116
|
+
resolve();
|
|
117
|
+
};
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Marks a directory as existing in IDB.
|
|
123
|
+
*/
|
|
124
|
+
const markDirectory = async path => {
|
|
125
|
+
const db = await openDB();
|
|
126
|
+
return new Promise((resolve, reject) => {
|
|
127
|
+
const tx = db.transaction("directories", "readwrite");
|
|
128
|
+
const store = tx.objectStore("directories");
|
|
129
|
+
const request = store.put(true, toMetaKey(path));
|
|
130
|
+
request.onerror = () => reject(request.error);
|
|
131
|
+
tx.oncomplete = () => {
|
|
132
|
+
db.close();
|
|
133
|
+
resolve();
|
|
134
|
+
};
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Checks if directory exists in IDB.
|
|
140
|
+
*/
|
|
141
|
+
const hasDirectory = async path => {
|
|
142
|
+
const db = await openDB();
|
|
143
|
+
return new Promise((resolve, reject) => {
|
|
144
|
+
const tx = db.transaction("directories", "readonly");
|
|
145
|
+
const store = tx.objectStore("directories");
|
|
146
|
+
const request = store.get(toMetaKey(path));
|
|
147
|
+
request.onerror = () => reject(request.error);
|
|
148
|
+
request.onsuccess = () => resolve(request.result === true);
|
|
149
|
+
tx.oncomplete = () => db.close();
|
|
150
|
+
});
|
|
151
|
+
};
|
|
152
|
+
const adapter = {
|
|
153
|
+
kind: "web",
|
|
154
|
+
rootId,
|
|
155
|
+
// ─────────────────────────────────────────────────────────────────
|
|
156
|
+
// Directory Management
|
|
157
|
+
// ─────────────────────────────────────────────────────────────────
|
|
158
|
+
|
|
159
|
+
async ensureDir(path) {
|
|
160
|
+
try {
|
|
161
|
+
await markDirectory(path);
|
|
162
|
+
} catch (error) {
|
|
163
|
+
throw new _errors.AdapterIOError("ensureDir", path, error);
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
async exists(path) {
|
|
167
|
+
try {
|
|
168
|
+
// Check if it's a file in cache storage
|
|
169
|
+
const cache = await caches.open(cacheName);
|
|
170
|
+
const response = await cache.match(toCacheKey(path));
|
|
171
|
+
if (response) {
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// Check if it's a directory
|
|
176
|
+
return await hasDirectory(path);
|
|
177
|
+
} catch {
|
|
178
|
+
return false;
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
async remove(path) {
|
|
182
|
+
try {
|
|
183
|
+
const cache = await caches.open(cacheName);
|
|
184
|
+
await cache.delete(toCacheKey(path));
|
|
185
|
+
await deleteMetadata(path);
|
|
186
|
+
} catch (error) {
|
|
187
|
+
throw new _errors.AdapterIOError("remove", path, error);
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
async removeDir(path) {
|
|
191
|
+
try {
|
|
192
|
+
const cache = await caches.open(cacheName);
|
|
193
|
+
const keys = await cache.keys();
|
|
194
|
+
const prefix = toCacheKey(path + "/");
|
|
195
|
+
|
|
196
|
+
// Delete all entries with this prefix
|
|
197
|
+
for (const request of keys) {
|
|
198
|
+
if (request.url.startsWith(prefix) || request.url === toCacheKey(path)) {
|
|
199
|
+
await cache.delete(request);
|
|
200
|
+
const entryPath = fromCacheKey(request.url);
|
|
201
|
+
await deleteMetadata(entryPath);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// Remove directory marker
|
|
206
|
+
const db = await openDB();
|
|
207
|
+
await new Promise((resolve, reject) => {
|
|
208
|
+
const tx = db.transaction("directories", "readwrite");
|
|
209
|
+
const store = tx.objectStore("directories");
|
|
210
|
+
store.delete(toMetaKey(path));
|
|
211
|
+
tx.oncomplete = () => {
|
|
212
|
+
db.close();
|
|
213
|
+
resolve();
|
|
214
|
+
};
|
|
215
|
+
tx.onerror = () => reject(tx.error);
|
|
216
|
+
});
|
|
217
|
+
} catch (error) {
|
|
218
|
+
throw new _errors.AdapterIOError("removeDir", path, error);
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
async listDir(path) {
|
|
222
|
+
try {
|
|
223
|
+
const cache = await caches.open(cacheName);
|
|
224
|
+
const keys = await cache.keys();
|
|
225
|
+
const prefix = toCacheKey(path + "/");
|
|
226
|
+
const entries = [];
|
|
227
|
+
for (const request of keys) {
|
|
228
|
+
if (request.url.startsWith(prefix)) {
|
|
229
|
+
// Extract the relative path from this directory
|
|
230
|
+
const relativePath = request.url.slice(prefix.length);
|
|
231
|
+
// Only include direct children (no further slashes)
|
|
232
|
+
if (!relativePath.includes("/")) {
|
|
233
|
+
entries.push(relativePath);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return entries;
|
|
238
|
+
} catch (error) {
|
|
239
|
+
throw new _errors.AdapterIOError("listDir", path, error);
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
// ─────────────────────────────────────────────────────────────────
|
|
243
|
+
// File I/O
|
|
244
|
+
// ─────────────────────────────────────────────────────────────────
|
|
245
|
+
|
|
246
|
+
async readText(path, _encoding) {
|
|
247
|
+
try {
|
|
248
|
+
const cache = await caches.open(cacheName);
|
|
249
|
+
const response = await cache.match(toCacheKey(path));
|
|
250
|
+
if (!response) {
|
|
251
|
+
throw new Error("File not found");
|
|
252
|
+
}
|
|
253
|
+
return await response.text();
|
|
254
|
+
} catch (error) {
|
|
255
|
+
throw new _errors.AdapterIOError("readText", path, error);
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
async writeTextAtomic(path, content, _encoding) {
|
|
259
|
+
try {
|
|
260
|
+
const cache = await caches.open(cacheName);
|
|
261
|
+
const blob = new Blob([content], {
|
|
262
|
+
type: "text/plain; charset=utf-8"
|
|
263
|
+
});
|
|
264
|
+
const response = new Response(blob);
|
|
265
|
+
|
|
266
|
+
// Cache Storage puts are atomic by nature
|
|
267
|
+
await cache.put(toCacheKey(path), response);
|
|
268
|
+
|
|
269
|
+
// Store metadata
|
|
270
|
+
await setMetadata(path, {
|
|
271
|
+
sizeBytes: blob.size,
|
|
272
|
+
mtimeMs: Date.now(),
|
|
273
|
+
contentType: "text/plain"
|
|
274
|
+
});
|
|
275
|
+
} catch (error) {
|
|
276
|
+
throw new _errors.AdapterIOError("writeTextAtomic", path, error);
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
async stat(path) {
|
|
280
|
+
try {
|
|
281
|
+
const meta = await getMetadata(path);
|
|
282
|
+
if (!meta) {
|
|
283
|
+
throw new Error("File not found");
|
|
284
|
+
}
|
|
285
|
+
return {
|
|
286
|
+
sizeBytes: meta.sizeBytes,
|
|
287
|
+
mtimeMs: meta.mtimeMs
|
|
288
|
+
};
|
|
289
|
+
} catch (error) {
|
|
290
|
+
throw new _errors.AdapterIOError("stat", path, error);
|
|
291
|
+
}
|
|
292
|
+
},
|
|
293
|
+
async writeBinaryAtomic(path, source, options) {
|
|
294
|
+
try {
|
|
295
|
+
const cache = await caches.open(cacheName);
|
|
296
|
+
let blob;
|
|
297
|
+
let contentType;
|
|
298
|
+
switch (source.type) {
|
|
299
|
+
case "url":
|
|
300
|
+
{
|
|
301
|
+
// Fetch with progress tracking
|
|
302
|
+
const response = await fetch(source.url, {
|
|
303
|
+
headers: {
|
|
304
|
+
...source.headers,
|
|
305
|
+
...options?.headers
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
if (!response.ok) {
|
|
309
|
+
throw new Error(`Fetch failed with status ${response.status}`);
|
|
310
|
+
}
|
|
311
|
+
contentType = response.headers.get("content-type") ?? undefined;
|
|
312
|
+
|
|
313
|
+
// Try to track progress if content-length is available
|
|
314
|
+
const contentLength = response.headers.get("content-length");
|
|
315
|
+
if (contentLength && options?.onProgress && response.body) {
|
|
316
|
+
const total = parseInt(contentLength, 10);
|
|
317
|
+
let loaded = 0;
|
|
318
|
+
const reader = response.body.getReader();
|
|
319
|
+
const chunks = [];
|
|
320
|
+
|
|
321
|
+
// eslint-disable-next-line no-constant-condition
|
|
322
|
+
while (true) {
|
|
323
|
+
const {
|
|
324
|
+
done,
|
|
325
|
+
value
|
|
326
|
+
} = await reader.read();
|
|
327
|
+
if (done) {
|
|
328
|
+
break;
|
|
329
|
+
}
|
|
330
|
+
chunks.push(value);
|
|
331
|
+
loaded += value.length;
|
|
332
|
+
options.onProgress(loaded / total * 100);
|
|
333
|
+
}
|
|
334
|
+
blob = new Blob(chunks.map(c => c.buffer), {
|
|
335
|
+
type: contentType
|
|
336
|
+
});
|
|
337
|
+
} else {
|
|
338
|
+
blob = await response.blob();
|
|
339
|
+
options?.onProgress?.(100);
|
|
340
|
+
}
|
|
341
|
+
break;
|
|
342
|
+
}
|
|
343
|
+
case "blob":
|
|
344
|
+
{
|
|
345
|
+
blob = source.blob;
|
|
346
|
+
contentType = source.blob.type || undefined;
|
|
347
|
+
options?.onProgress?.(100);
|
|
348
|
+
break;
|
|
349
|
+
}
|
|
350
|
+
case "bytes":
|
|
351
|
+
{
|
|
352
|
+
blob = new Blob([source.bytes.buffer]);
|
|
353
|
+
options?.onProgress?.(100);
|
|
354
|
+
break;
|
|
355
|
+
}
|
|
356
|
+
case "file":
|
|
357
|
+
{
|
|
358
|
+
// File paths not supported on web
|
|
359
|
+
throw new _errors.UnsupportedSourceError("file", "web");
|
|
360
|
+
}
|
|
361
|
+
default:
|
|
362
|
+
{
|
|
363
|
+
const _exhaustive = source;
|
|
364
|
+
throw new _errors.UnsupportedSourceError(_exhaustive.type, "web");
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
// Store in cache
|
|
369
|
+
const response = new Response(blob, {
|
|
370
|
+
headers: contentType ? {
|
|
371
|
+
"Content-Type": contentType
|
|
372
|
+
} : {}
|
|
373
|
+
});
|
|
374
|
+
await cache.put(toCacheKey(path), response);
|
|
375
|
+
|
|
376
|
+
// Store metadata
|
|
377
|
+
const meta = {
|
|
378
|
+
sizeBytes: blob.size,
|
|
379
|
+
mtimeMs: Date.now(),
|
|
380
|
+
contentType
|
|
381
|
+
};
|
|
382
|
+
await setMetadata(path, meta);
|
|
383
|
+
return {
|
|
384
|
+
sizeBytes: blob.size,
|
|
385
|
+
contentType
|
|
386
|
+
};
|
|
387
|
+
} catch (error) {
|
|
388
|
+
if (error instanceof _errors.UnsupportedSourceError) {
|
|
389
|
+
throw error;
|
|
390
|
+
}
|
|
391
|
+
throw new _errors.AdapterIOError("writeBinaryAtomic", path, error);
|
|
392
|
+
}
|
|
393
|
+
},
|
|
394
|
+
async getPublicUri(path) {
|
|
395
|
+
try {
|
|
396
|
+
const cache = await caches.open(cacheName);
|
|
397
|
+
const response = await cache.match(toCacheKey(path));
|
|
398
|
+
if (!response) {
|
|
399
|
+
throw new Error("File not found");
|
|
400
|
+
}
|
|
401
|
+
const blob = await response.blob();
|
|
402
|
+
const blobUrl = URL.createObjectURL(blob);
|
|
403
|
+
|
|
404
|
+
// Track for cleanup
|
|
405
|
+
blobUrls.add(blobUrl);
|
|
406
|
+
return blobUrl;
|
|
407
|
+
} catch (error) {
|
|
408
|
+
throw new _errors.AdapterIOError("getPublicUri", path, error);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
};
|
|
412
|
+
|
|
413
|
+
// Add cleanup method (non-standard, for internal use)
|
|
414
|
+
adapter.revokeUri = uri => {
|
|
415
|
+
if (blobUrls.has(uri)) {
|
|
416
|
+
URL.revokeObjectURL(uri);
|
|
417
|
+
blobUrls.delete(uri);
|
|
418
|
+
}
|
|
419
|
+
};
|
|
420
|
+
adapter.revokeAllUris = () => {
|
|
421
|
+
for (const uri of blobUrls) {
|
|
422
|
+
URL.revokeObjectURL(uri);
|
|
423
|
+
}
|
|
424
|
+
blobUrls.clear();
|
|
425
|
+
};
|
|
426
|
+
return adapter;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/**
|
|
430
|
+
* Extended interface for web adapter with cleanup methods.
|
|
431
|
+
*/
|
|
432
|
+
//# sourceMappingURL=webAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_errors","require","CACHE_URL_PREFIX","createWebAdapter","options","cacheName","idbName","namespace","rootId","blobUrls","Set","toCacheKey","path","fromCacheKey","url","prefix","startsWith","slice","length","toMetaKey","openDB","Promise","resolve","reject","request","indexedDB","open","onerror","error","onsuccess","result","onupgradeneeded","event","db","target","objectStoreNames","contains","createObjectStore","getMetadata","tx","transaction","store","objectStore","get","oncomplete","close","setMetadata","meta","put","deleteMetadata","delete","markDirectory","hasDirectory","adapter","kind","ensureDir","AdapterIOError","exists","cache","caches","response","match","remove","removeDir","keys","entryPath","listDir","entries","relativePath","includes","push","readText","_encoding","Error","text","writeTextAtomic","content","blob","Blob","type","Response","sizeBytes","size","mtimeMs","Date","now","contentType","stat","writeBinaryAtomic","source","fetch","headers","ok","status","undefined","contentLength","onProgress","body","total","parseInt","loaded","reader","getReader","chunks","done","value","read","map","c","buffer","bytes","UnsupportedSourceError","_exhaustive","getPublicUri","blobUrl","URL","createObjectURL","add","revokeUri","uri","has","revokeObjectURL","revokeAllUris","clear"],"sourceRoot":"../../../src","sources":["adapters/webAdapter.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["core/adapter.ts"],"mappings":"","ignoreList":[]}
|