@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.
Files changed (113) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +415 -0
  3. package/lib/commonjs/adapters/memoryAdapter.js +266 -0
  4. package/lib/commonjs/adapters/memoryAdapter.js.map +1 -0
  5. package/lib/commonjs/adapters/rnfsAdapter.js +259 -0
  6. package/lib/commonjs/adapters/rnfsAdapter.js.map +1 -0
  7. package/lib/commonjs/adapters/webAdapter.js +432 -0
  8. package/lib/commonjs/adapters/webAdapter.js.map +1 -0
  9. package/lib/commonjs/core/adapter.js +2 -0
  10. package/lib/commonjs/core/adapter.js.map +1 -0
  11. package/lib/commonjs/core/cacheEngine.js +578 -0
  12. package/lib/commonjs/core/cacheEngine.js.map +1 -0
  13. package/lib/commonjs/core/errors.js +83 -0
  14. package/lib/commonjs/core/errors.js.map +1 -0
  15. package/lib/commonjs/core/hash.js +83 -0
  16. package/lib/commonjs/core/hash.js.map +1 -0
  17. package/lib/commonjs/core/indexStore.js +175 -0
  18. package/lib/commonjs/core/indexStore.js.map +1 -0
  19. package/lib/commonjs/core/mutex.js +143 -0
  20. package/lib/commonjs/core/mutex.js.map +1 -0
  21. package/lib/commonjs/core/prune.js +127 -0
  22. package/lib/commonjs/core/prune.js.map +1 -0
  23. package/lib/commonjs/core/types.js +6 -0
  24. package/lib/commonjs/core/types.js.map +1 -0
  25. package/lib/commonjs/factory.js +56 -0
  26. package/lib/commonjs/factory.js.map +1 -0
  27. package/lib/commonjs/index.js +110 -0
  28. package/lib/commonjs/index.js.map +1 -0
  29. package/lib/commonjs/index.native.js +74 -0
  30. package/lib/commonjs/index.native.js.map +1 -0
  31. package/lib/commonjs/index.web.js +75 -0
  32. package/lib/commonjs/index.web.js.map +1 -0
  33. package/lib/commonjs/types/react-native-fs.d.js +2 -0
  34. package/lib/commonjs/types/react-native-fs.d.js.map +1 -0
  35. package/lib/module/adapters/memoryAdapter.js +261 -0
  36. package/lib/module/adapters/memoryAdapter.js.map +1 -0
  37. package/lib/module/adapters/rnfsAdapter.js +251 -0
  38. package/lib/module/adapters/rnfsAdapter.js.map +1 -0
  39. package/lib/module/adapters/webAdapter.js +426 -0
  40. package/lib/module/adapters/webAdapter.js.map +1 -0
  41. package/lib/module/core/adapter.js +2 -0
  42. package/lib/module/core/adapter.js.map +1 -0
  43. package/lib/module/core/cacheEngine.js +571 -0
  44. package/lib/module/core/cacheEngine.js.map +1 -0
  45. package/lib/module/core/errors.js +71 -0
  46. package/lib/module/core/errors.js.map +1 -0
  47. package/lib/module/core/hash.js +76 -0
  48. package/lib/module/core/hash.js.map +1 -0
  49. package/lib/module/core/indexStore.js +168 -0
  50. package/lib/module/core/indexStore.js.map +1 -0
  51. package/lib/module/core/mutex.js +135 -0
  52. package/lib/module/core/mutex.js.map +1 -0
  53. package/lib/module/core/prune.js +116 -0
  54. package/lib/module/core/prune.js.map +1 -0
  55. package/lib/module/core/types.js +2 -0
  56. package/lib/module/core/types.js.map +1 -0
  57. package/lib/module/factory.js +49 -0
  58. package/lib/module/factory.js.map +1 -0
  59. package/lib/module/index.js +41 -0
  60. package/lib/module/index.js.map +1 -0
  61. package/lib/module/index.native.js +54 -0
  62. package/lib/module/index.native.js.map +1 -0
  63. package/lib/module/index.web.js +55 -0
  64. package/lib/module/index.web.js.map +1 -0
  65. package/lib/module/types/react-native-fs.d.js +2 -0
  66. package/lib/module/types/react-native-fs.d.js.map +1 -0
  67. package/lib/typescript/src/adapters/memoryAdapter.d.ts +23 -0
  68. package/lib/typescript/src/adapters/memoryAdapter.d.ts.map +1 -0
  69. package/lib/typescript/src/adapters/rnfsAdapter.d.ts +18 -0
  70. package/lib/typescript/src/adapters/rnfsAdapter.d.ts.map +1 -0
  71. package/lib/typescript/src/adapters/webAdapter.d.ts +30 -0
  72. package/lib/typescript/src/adapters/webAdapter.d.ts.map +1 -0
  73. package/lib/typescript/src/core/adapter.d.ts +105 -0
  74. package/lib/typescript/src/core/adapter.d.ts.map +1 -0
  75. package/lib/typescript/src/core/cacheEngine.d.ts +99 -0
  76. package/lib/typescript/src/core/cacheEngine.d.ts.map +1 -0
  77. package/lib/typescript/src/core/errors.d.ts +54 -0
  78. package/lib/typescript/src/core/errors.d.ts.map +1 -0
  79. package/lib/typescript/src/core/hash.d.ts +20 -0
  80. package/lib/typescript/src/core/hash.d.ts.map +1 -0
  81. package/lib/typescript/src/core/indexStore.d.ts +34 -0
  82. package/lib/typescript/src/core/indexStore.d.ts.map +1 -0
  83. package/lib/typescript/src/core/mutex.d.ts +49 -0
  84. package/lib/typescript/src/core/mutex.d.ts.map +1 -0
  85. package/lib/typescript/src/core/prune.d.ts +39 -0
  86. package/lib/typescript/src/core/prune.d.ts.map +1 -0
  87. package/lib/typescript/src/core/types.d.ts +109 -0
  88. package/lib/typescript/src/core/types.d.ts.map +1 -0
  89. package/lib/typescript/src/factory.d.ts +46 -0
  90. package/lib/typescript/src/factory.d.ts.map +1 -0
  91. package/lib/typescript/src/index.d.ts +20 -0
  92. package/lib/typescript/src/index.d.ts.map +1 -0
  93. package/lib/typescript/src/index.native.d.ts +37 -0
  94. package/lib/typescript/src/index.native.d.ts.map +1 -0
  95. package/lib/typescript/src/index.web.d.ts +38 -0
  96. package/lib/typescript/src/index.web.d.ts.map +1 -0
  97. package/package.json +125 -0
  98. package/src/adapters/memoryAdapter.ts +307 -0
  99. package/src/adapters/rnfsAdapter.ts +283 -0
  100. package/src/adapters/webAdapter.ts +480 -0
  101. package/src/core/adapter.ts +128 -0
  102. package/src/core/cacheEngine.ts +634 -0
  103. package/src/core/errors.ts +82 -0
  104. package/src/core/hash.ts +78 -0
  105. package/src/core/indexStore.ts +184 -0
  106. package/src/core/mutex.ts +134 -0
  107. package/src/core/prune.ts +145 -0
  108. package/src/core/types.ts +165 -0
  109. package/src/factory.ts +60 -0
  110. package/src/index.native.ts +58 -0
  111. package/src/index.ts +82 -0
  112. package/src/index.web.ts +59 -0
  113. 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":[]}