@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 @@
|
|
|
1
|
+
{"version":3,"names":["_errors","require","createMemoryAdapter","namespace","ns","rootId","files","Map","directories","Set","blobUrls","normalizePath","path","replace","getParentDir","lastSlash","lastIndexOf","substring","adapter","kind","ensureDir","normalized","add","parent","exists","has","remove","delete","removeDir","prefix","key","keys","startsWith","dir","listDir","entries","relativePath","slice","length","firstSlash","indexOf","Array","from","readText","_encoding","entry","get","AdapterIOError","Error","decoder","TextDecoder","decode","content","writeTextAtomic","encoder","TextEncoder","bytes","encode","set","mtime","Date","now","contentType","stat","sizeBytes","mtimeMs","writeBinaryAtomic","source","options","type","response","fetch","url","headers","ok","status","undefined","buffer","arrayBuffer","Uint8Array","onProgress","error","filePath","blob","_exhaustive","getPublicUri","existing","Blob","URL","createObjectURL","_reset","clear","values","revokeObjectURL","_getContent","_getAllPaths"],"sourceRoot":"../../../src","sources":["adapters/memoryAdapter.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createRnfsAdapter = createRnfsAdapter;
|
|
7
|
+
var _reactNativeFs = _interopRequireDefault(require("react-native-fs"));
|
|
8
|
+
var _errors = require("../core/errors");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
/**
|
|
11
|
+
* React Native FS Adapter
|
|
12
|
+
*
|
|
13
|
+
* This is the ONLY file that imports react-native-fs.
|
|
14
|
+
* Implements IStorageAdapter using RNFS APIs.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
18
|
+
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
19
|
+
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
20
|
+
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
21
|
+
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
22
|
+
/* eslint-disable @typescript-eslint/require-await */
|
|
23
|
+
|
|
24
|
+
// RNFS types are not fully typed, disable unsafe rules for this adapter
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Creates a storage adapter backed by react-native-fs.
|
|
28
|
+
*/
|
|
29
|
+
function createRnfsAdapter(options) {
|
|
30
|
+
const baseDir = options?.baseDir ?? _reactNativeFs.default.CachesDirectoryPath;
|
|
31
|
+
const namespace = options?.namespace ?? "default";
|
|
32
|
+
const rootPath = `${baseDir}/immutable-cache/${namespace}`;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Converts adapter-relative path to absolute filesystem path.
|
|
36
|
+
*/
|
|
37
|
+
const toAbsolute = path => {
|
|
38
|
+
return `${rootPath}/${path}`;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Generates a unique temp file path for atomic writes.
|
|
43
|
+
*/
|
|
44
|
+
const getTempPath = path => {
|
|
45
|
+
return `${toAbsolute(path)}.tmp.${Date.now()}.${Math.random().toString(36).slice(2)}`;
|
|
46
|
+
};
|
|
47
|
+
const adapter = {
|
|
48
|
+
kind: "native-fs",
|
|
49
|
+
rootId: rootPath,
|
|
50
|
+
// ─────────────────────────────────────────────────────────────────
|
|
51
|
+
// Directory Management
|
|
52
|
+
// ─────────────────────────────────────────────────────────────────
|
|
53
|
+
|
|
54
|
+
async ensureDir(path) {
|
|
55
|
+
try {
|
|
56
|
+
const absPath = toAbsolute(path);
|
|
57
|
+
await _reactNativeFs.default.mkdir(absPath);
|
|
58
|
+
} catch (error) {
|
|
59
|
+
throw new _errors.AdapterIOError("ensureDir", path, error);
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
async exists(path) {
|
|
63
|
+
try {
|
|
64
|
+
const absPath = toAbsolute(path);
|
|
65
|
+
return await _reactNativeFs.default.exists(absPath);
|
|
66
|
+
} catch {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
async remove(path) {
|
|
71
|
+
try {
|
|
72
|
+
const absPath = toAbsolute(path);
|
|
73
|
+
const exists = await _reactNativeFs.default.exists(absPath);
|
|
74
|
+
if (exists) {
|
|
75
|
+
await _reactNativeFs.default.unlink(absPath);
|
|
76
|
+
}
|
|
77
|
+
} catch (error) {
|
|
78
|
+
throw new _errors.AdapterIOError("remove", path, error);
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
async removeDir(path) {
|
|
82
|
+
try {
|
|
83
|
+
const absPath = toAbsolute(path);
|
|
84
|
+
const exists = await _reactNativeFs.default.exists(absPath);
|
|
85
|
+
if (exists) {
|
|
86
|
+
// RNFS.unlink can remove directories recursively
|
|
87
|
+
await _reactNativeFs.default.unlink(absPath);
|
|
88
|
+
}
|
|
89
|
+
} catch (error) {
|
|
90
|
+
throw new _errors.AdapterIOError("removeDir", path, error);
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
async listDir(path) {
|
|
94
|
+
try {
|
|
95
|
+
const absPath = toAbsolute(path);
|
|
96
|
+
const exists = await _reactNativeFs.default.exists(absPath);
|
|
97
|
+
if (!exists) {
|
|
98
|
+
return [];
|
|
99
|
+
}
|
|
100
|
+
const items = await _reactNativeFs.default.readDir(absPath);
|
|
101
|
+
return items.map(item => item.name);
|
|
102
|
+
} catch (error) {
|
|
103
|
+
throw new _errors.AdapterIOError("listDir", path, error);
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
// ─────────────────────────────────────────────────────────────────
|
|
107
|
+
// File I/O
|
|
108
|
+
// ─────────────────────────────────────────────────────────────────
|
|
109
|
+
|
|
110
|
+
async readText(path, _encoding) {
|
|
111
|
+
try {
|
|
112
|
+
const absPath = toAbsolute(path);
|
|
113
|
+
return await _reactNativeFs.default.readFile(absPath, "utf8");
|
|
114
|
+
} catch (error) {
|
|
115
|
+
throw new _errors.AdapterIOError("readText", path, error);
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
async writeTextAtomic(path, content, _encoding) {
|
|
119
|
+
const tempPath = getTempPath(path);
|
|
120
|
+
const absPath = toAbsolute(path);
|
|
121
|
+
try {
|
|
122
|
+
// Ensure parent directory exists
|
|
123
|
+
const parentDir = absPath.substring(0, absPath.lastIndexOf("/"));
|
|
124
|
+
await _reactNativeFs.default.mkdir(parentDir);
|
|
125
|
+
|
|
126
|
+
// Write to temp file
|
|
127
|
+
await _reactNativeFs.default.writeFile(tempPath, content, "utf8");
|
|
128
|
+
|
|
129
|
+
// Atomic move
|
|
130
|
+
await _reactNativeFs.default.moveFile(tempPath, absPath);
|
|
131
|
+
} catch (error) {
|
|
132
|
+
// Clean up temp file on error
|
|
133
|
+
try {
|
|
134
|
+
await _reactNativeFs.default.unlink(tempPath);
|
|
135
|
+
} catch {
|
|
136
|
+
// Ignore cleanup errors
|
|
137
|
+
}
|
|
138
|
+
throw new _errors.AdapterIOError("writeTextAtomic", path, error);
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
async stat(path) {
|
|
142
|
+
try {
|
|
143
|
+
const absPath = toAbsolute(path);
|
|
144
|
+
const statResult = await _reactNativeFs.default.stat(absPath);
|
|
145
|
+
return {
|
|
146
|
+
sizeBytes: statResult.size,
|
|
147
|
+
mtimeMs: new Date(statResult.mtime).getTime()
|
|
148
|
+
};
|
|
149
|
+
} catch (error) {
|
|
150
|
+
throw new _errors.AdapterIOError("stat", path, error);
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
async writeBinaryAtomic(path, source, options) {
|
|
154
|
+
const tempPath = getTempPath(path);
|
|
155
|
+
const absPath = toAbsolute(path);
|
|
156
|
+
try {
|
|
157
|
+
// Ensure parent directory exists
|
|
158
|
+
const parentDir = absPath.substring(0, absPath.lastIndexOf("/"));
|
|
159
|
+
await _reactNativeFs.default.mkdir(parentDir);
|
|
160
|
+
let contentType;
|
|
161
|
+
switch (source.type) {
|
|
162
|
+
case "url":
|
|
163
|
+
{
|
|
164
|
+
// Download file with progress
|
|
165
|
+
const downloadResult = await new Promise((resolve, reject) => {
|
|
166
|
+
const {
|
|
167
|
+
promise
|
|
168
|
+
} = _reactNativeFs.default.downloadFile({
|
|
169
|
+
fromUrl: source.url,
|
|
170
|
+
toFile: tempPath,
|
|
171
|
+
headers: {
|
|
172
|
+
...source.headers,
|
|
173
|
+
...options?.headers
|
|
174
|
+
},
|
|
175
|
+
progress: res => {
|
|
176
|
+
if (options?.onProgress && res.contentLength > 0) {
|
|
177
|
+
const pct = res.bytesWritten / res.contentLength * 100;
|
|
178
|
+
options.onProgress(pct);
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
progressDivider: 1
|
|
182
|
+
});
|
|
183
|
+
promise.then(resolve).catch(reject);
|
|
184
|
+
});
|
|
185
|
+
if (downloadResult.statusCode < 200 || downloadResult.statusCode >= 300) {
|
|
186
|
+
throw new Error(`Download failed with status ${downloadResult.statusCode}`);
|
|
187
|
+
}
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
case "file":
|
|
191
|
+
{
|
|
192
|
+
// Copy file
|
|
193
|
+
await _reactNativeFs.default.copyFile(source.filePath, tempPath);
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
case "bytes":
|
|
197
|
+
{
|
|
198
|
+
// Convert Uint8Array to base64 and write
|
|
199
|
+
const base64 = uint8ArrayToBase64(source.bytes);
|
|
200
|
+
await _reactNativeFs.default.writeFile(tempPath, base64, "base64");
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
case "blob":
|
|
204
|
+
{
|
|
205
|
+
// Blob is not supported on native
|
|
206
|
+
throw new _errors.UnsupportedSourceError("blob", "native-fs");
|
|
207
|
+
}
|
|
208
|
+
default:
|
|
209
|
+
{
|
|
210
|
+
const _exhaustive = source;
|
|
211
|
+
throw new _errors.UnsupportedSourceError(_exhaustive.type, "native-fs");
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// Get size before moving
|
|
216
|
+
const statResult = await _reactNativeFs.default.stat(tempPath);
|
|
217
|
+
|
|
218
|
+
// Atomic move
|
|
219
|
+
await _reactNativeFs.default.moveFile(tempPath, absPath);
|
|
220
|
+
|
|
221
|
+
// Report 100% progress
|
|
222
|
+
options?.onProgress?.(100);
|
|
223
|
+
return {
|
|
224
|
+
sizeBytes: statResult.size,
|
|
225
|
+
contentType
|
|
226
|
+
};
|
|
227
|
+
} catch (error) {
|
|
228
|
+
// Clean up temp file on error
|
|
229
|
+
try {
|
|
230
|
+
await _reactNativeFs.default.unlink(tempPath);
|
|
231
|
+
} catch {
|
|
232
|
+
// Ignore cleanup errors
|
|
233
|
+
}
|
|
234
|
+
if (error instanceof _errors.UnsupportedSourceError) {
|
|
235
|
+
throw error;
|
|
236
|
+
}
|
|
237
|
+
throw new _errors.AdapterIOError("writeBinaryAtomic", path, error);
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
async getPublicUri(path) {
|
|
241
|
+
const absPath = toAbsolute(path);
|
|
242
|
+
// Return file:// URI for native platforms
|
|
243
|
+
return `file://${absPath}`;
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
return adapter;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Converts Uint8Array to base64 string.
|
|
251
|
+
*/
|
|
252
|
+
function uint8ArrayToBase64(bytes) {
|
|
253
|
+
let binary = "";
|
|
254
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
255
|
+
binary += String.fromCharCode(bytes[i]);
|
|
256
|
+
}
|
|
257
|
+
return btoa(binary);
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=rnfsAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNativeFs","_interopRequireDefault","require","_errors","e","__esModule","default","createRnfsAdapter","options","baseDir","RNFS","CachesDirectoryPath","namespace","rootPath","toAbsolute","path","getTempPath","Date","now","Math","random","toString","slice","adapter","kind","rootId","ensureDir","absPath","mkdir","error","AdapterIOError","exists","remove","unlink","removeDir","listDir","items","readDir","map","item","name","readText","_encoding","readFile","writeTextAtomic","content","tempPath","parentDir","substring","lastIndexOf","writeFile","moveFile","stat","statResult","sizeBytes","size","mtimeMs","mtime","getTime","writeBinaryAtomic","source","contentType","type","downloadResult","Promise","resolve","reject","promise","downloadFile","fromUrl","url","toFile","headers","progress","res","onProgress","contentLength","pct","bytesWritten","progressDivider","then","catch","statusCode","Error","copyFile","filePath","base64","uint8ArrayToBase64","bytes","UnsupportedSourceError","_exhaustive","getPublicUri","binary","i","length","String","fromCharCode","btoa"],"sourceRoot":"../../../src","sources":["adapters/rnfsAdapter.ts"],"mappings":"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","ignoreList":[]}
|