strata-storage 2.4.3 → 2.6.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/AI-INTEGRATION-GUIDE.md +115 -261
- package/README.md +426 -182
- package/android/AGENTS.md +51 -0
- package/android/CLAUDE.md +89 -0
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/strata/storage/FilesystemStorage.java +287 -0
- package/android/src/main/java/com/strata/storage/SQLiteStorage.java +260 -203
- package/android/src/main/java/com/stratastorage/StrataStoragePlugin.java +357 -69
- package/dist/README.md +426 -182
- package/dist/adapters/capacitor/FilesystemAdapter.d.ts.map +1 -1
- package/dist/adapters/capacitor/FilesystemAdapter.js +2 -1
- package/dist/adapters/capacitor/PreferencesAdapter.d.ts.map +1 -1
- package/dist/adapters/capacitor/PreferencesAdapter.js +2 -1
- package/dist/adapters/capacitor/SecureAdapter.d.ts.map +1 -1
- package/dist/adapters/capacitor/SecureAdapter.js +2 -1
- package/dist/adapters/capacitor/SqliteAdapter.d.ts.map +1 -1
- package/dist/adapters/capacitor/SqliteAdapter.js +2 -1
- package/dist/adapters/web/CacheAdapter.d.ts.map +1 -1
- package/dist/adapters/web/CacheAdapter.js +11 -3
- package/dist/adapters/web/CookieAdapter.d.ts +37 -1
- package/dist/adapters/web/CookieAdapter.d.ts.map +1 -1
- package/dist/adapters/web/CookieAdapter.js +89 -9
- package/dist/adapters/web/IndexedDBAdapter.d.ts.map +1 -1
- package/dist/adapters/web/IndexedDBAdapter.js +10 -2
- package/dist/adapters/web/LocalStorageAdapter.d.ts +31 -0
- package/dist/adapters/web/LocalStorageAdapter.d.ts.map +1 -1
- package/dist/adapters/web/LocalStorageAdapter.js +92 -19
- package/dist/adapters/web/MemoryAdapter.d.ts +24 -0
- package/dist/adapters/web/MemoryAdapter.d.ts.map +1 -1
- package/dist/adapters/web/MemoryAdapter.js +69 -18
- package/dist/adapters/web/SessionStorageAdapter.d.ts +24 -0
- package/dist/adapters/web/SessionStorageAdapter.d.ts.map +1 -1
- package/dist/adapters/web/SessionStorageAdapter.js +71 -9
- package/dist/adapters/web/URLAdapter.d.ts +59 -0
- package/dist/adapters/web/URLAdapter.d.ts.map +1 -0
- package/dist/adapters/web/URLAdapter.js +234 -0
- package/dist/adapters/web/index.d.ts +1 -0
- package/dist/adapters/web/index.d.ts.map +1 -1
- package/dist/adapters/web/index.js +1 -0
- package/dist/android/AGENTS.md +51 -0
- package/dist/android/CLAUDE.md +89 -0
- package/dist/android/build.gradle +1 -1
- package/dist/android/src/main/java/com/strata/storage/FilesystemStorage.java +287 -0
- package/dist/android/src/main/java/com/strata/storage/SQLiteStorage.java +260 -203
- package/dist/android/src/main/java/com/stratastorage/StrataStoragePlugin.java +357 -69
- package/dist/capacitor.d.ts.map +1 -1
- package/dist/capacitor.js +2 -1
- package/dist/core/BaseAdapter.d.ts +8 -0
- package/dist/core/BaseAdapter.d.ts.map +1 -1
- package/dist/core/BaseAdapter.js +34 -14
- package/dist/core/Strata.d.ts +56 -2
- package/dist/core/Strata.d.ts.map +1 -1
- package/dist/core/Strata.js +501 -53
- package/dist/features/encryption.d.ts.map +1 -1
- package/dist/features/encryption.js +3 -2
- package/dist/features/integrity.d.ts +16 -0
- package/dist/features/integrity.d.ts.map +1 -0
- package/dist/features/integrity.js +28 -0
- package/dist/features/observer.d.ts.map +1 -1
- package/dist/features/observer.js +2 -1
- package/dist/features/query.d.ts +7 -1
- package/dist/features/query.d.ts.map +1 -1
- package/dist/features/query.js +9 -2
- package/dist/features/sync.d.ts.map +1 -1
- package/dist/features/sync.js +4 -3
- package/dist/index.d.ts +35 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +55 -30
- package/dist/integrations/angular/index.d.ts +158 -0
- package/dist/integrations/angular/index.d.ts.map +1 -0
- package/dist/integrations/angular/index.js +395 -0
- package/dist/integrations/index.d.ts +15 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +18 -0
- package/dist/integrations/react/index.d.ts +75 -0
- package/dist/integrations/react/index.d.ts.map +1 -0
- package/dist/integrations/react/index.js +191 -0
- package/dist/integrations/vue/index.d.ts +103 -0
- package/dist/integrations/vue/index.d.ts.map +1 -0
- package/dist/integrations/vue/index.js +274 -0
- package/dist/ios/AGENTS.md +48 -0
- package/dist/ios/CLAUDE.md +84 -0
- package/dist/ios/Plugin/FilesystemStorage.swift +218 -0
- package/dist/ios/Plugin/KeychainStorage.swift +139 -50
- package/dist/ios/Plugin/SQLiteStorage.swift +279 -147
- package/dist/ios/Plugin/StrataStoragePlugin.m +23 -0
- package/dist/ios/Plugin/StrataStoragePlugin.swift +272 -65
- package/dist/package.json +21 -5
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +2 -1
- package/dist/types/index.d.ts +58 -9
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +0 -13
- package/dist/utils/errors.d.ts +7 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +15 -3
- package/dist/utils/index.d.ts +63 -5
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +109 -16
- package/dist/utils/logger.d.ts +31 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +63 -0
- package/ios/AGENTS.md +48 -0
- package/ios/CLAUDE.md +84 -0
- package/ios/Plugin/FilesystemStorage.swift +218 -0
- package/ios/Plugin/KeychainStorage.swift +139 -50
- package/ios/Plugin/SQLiteStorage.swift +279 -147
- package/ios/Plugin/StrataStoragePlugin.m +23 -0
- package/ios/Plugin/StrataStoragePlugin.swift +272 -65
- package/package.json +31 -20
- package/scripts/build.js +16 -5
- package/scripts/configure.js +2 -6
- package/scripts/postinstall.js +2 -2
- package/Readme.md +0 -271
package/dist/core/BaseAdapter.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { NotSupportedError } from "../utils/errors.js";
|
|
5
5
|
import { EventEmitter, matchGlob, getObjectSize } from "../utils/index.js";
|
|
6
|
+
import { logger } from "../utils/logger.js";
|
|
6
7
|
import { QueryEngine } from "../features/query.js";
|
|
7
8
|
/**
|
|
8
9
|
* Abstract base adapter that implements common functionality
|
|
@@ -23,7 +24,7 @@ export class BaseAdapter {
|
|
|
23
24
|
await this.cleanupExpired();
|
|
24
25
|
}
|
|
25
26
|
catch (error) {
|
|
26
|
-
|
|
27
|
+
logger.error(`TTL cleanup error in ${this.name}:`, error);
|
|
27
28
|
}
|
|
28
29
|
}, this.ttlCheckInterval);
|
|
29
30
|
}
|
|
@@ -78,6 +79,31 @@ export class BaseAdapter {
|
|
|
78
79
|
calculateSize(value) {
|
|
79
80
|
return getObjectSize(value);
|
|
80
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Determine whether a query targets wrapper metadata instead of the stored value.
|
|
84
|
+
*/
|
|
85
|
+
isStorageMetadataQuery(condition) {
|
|
86
|
+
const storageProps = ['tags', 'metadata', 'created', 'updated', 'expires'];
|
|
87
|
+
return Object.keys(condition).some((key) => storageProps.some((storageProp) => key === storageProp || key.startsWith(`${storageProp}.`)));
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Normalize value-targeted queries so callers can use either `name` or `value.name`.
|
|
91
|
+
*/
|
|
92
|
+
normalizeValueQueryCondition(condition) {
|
|
93
|
+
if (Array.isArray(condition)) {
|
|
94
|
+
return condition.map((entry) => this.normalizeValueQueryCondition(entry));
|
|
95
|
+
}
|
|
96
|
+
if (!condition || typeof condition !== 'object') {
|
|
97
|
+
return condition;
|
|
98
|
+
}
|
|
99
|
+
return Object.fromEntries(Object.entries(condition).map(([key, value]) => {
|
|
100
|
+
if (key.startsWith('$')) {
|
|
101
|
+
return [key, this.normalizeValueQueryCondition(value)];
|
|
102
|
+
}
|
|
103
|
+
const normalizedKey = key.startsWith('value.') ? key.slice(6) : key;
|
|
104
|
+
return [normalizedKey, this.normalizeValueQueryCondition(value)];
|
|
105
|
+
}));
|
|
106
|
+
}
|
|
81
107
|
/**
|
|
82
108
|
* Default has implementation using get
|
|
83
109
|
*/
|
|
@@ -194,19 +220,13 @@ export class BaseAdapter {
|
|
|
194
220
|
for (const key of keys) {
|
|
195
221
|
const item = await this.get(key);
|
|
196
222
|
if (item && !this.isExpired(item)) {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
const
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
matches = this.queryEngine.matches(item, condition);
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
// Query against the stored value
|
|
208
|
-
matches = this.queryEngine.matches(item.value, condition);
|
|
209
|
-
}
|
|
223
|
+
const isStorageQuery = this.isStorageMetadataQuery(condition);
|
|
224
|
+
const normalizedCondition = isStorageQuery
|
|
225
|
+
? condition
|
|
226
|
+
: this.normalizeValueQueryCondition(condition);
|
|
227
|
+
const matches = isStorageQuery
|
|
228
|
+
? this.queryEngine.matches(item, normalizedCondition)
|
|
229
|
+
: this.queryEngine.matches(item.value, normalizedCondition);
|
|
210
230
|
if (matches) {
|
|
211
231
|
results.push({ key, value: item.value });
|
|
212
232
|
}
|
package/dist/core/Strata.d.ts
CHANGED
|
@@ -18,6 +18,8 @@ export declare class Strata {
|
|
|
18
18
|
private syncManager?;
|
|
19
19
|
private ttlManager?;
|
|
20
20
|
private _initialized;
|
|
21
|
+
private _readyPromise?;
|
|
22
|
+
private _autoBackupTimer?;
|
|
21
23
|
constructor(config?: StrataConfig);
|
|
22
24
|
/**
|
|
23
25
|
* Check if Strata has been initialized
|
|
@@ -28,9 +30,18 @@ export declare class Strata {
|
|
|
28
30
|
*/
|
|
29
31
|
get platform(): Platform;
|
|
30
32
|
/**
|
|
31
|
-
* Initialize Strata with available adapters
|
|
33
|
+
* Initialize Strata with available adapters. Idempotent — repeated calls
|
|
34
|
+
* return the same in-flight/completed promise, so it is safe to call from a
|
|
35
|
+
* framework Provider, from defineStorage(), or lazily on first operation.
|
|
32
36
|
*/
|
|
33
37
|
initialize(): Promise<void>;
|
|
38
|
+
private _performInitialization;
|
|
39
|
+
/**
|
|
40
|
+
* Ensure the instance is initialized before an operation runs. This powers the
|
|
41
|
+
* "create an instance and use it anywhere" pattern — callers never have to
|
|
42
|
+
* await initialize() manually unless autoInitialize is explicitly disabled.
|
|
43
|
+
*/
|
|
44
|
+
private ensureReady;
|
|
34
45
|
/**
|
|
35
46
|
* Get a value from storage
|
|
36
47
|
*
|
|
@@ -186,6 +197,22 @@ export declare class Strata {
|
|
|
186
197
|
* ```
|
|
187
198
|
*/
|
|
188
199
|
keys(pattern?: string | RegExp, options?: StorageOptions): Promise<string[]>;
|
|
200
|
+
/** Synchronous get. Throws on async-only backends and on encrypted/compressed values. */
|
|
201
|
+
getSync<T = unknown>(key: string, options?: StorageOptions): T | null;
|
|
202
|
+
/** Synchronous set. Cannot encrypt or compress (those operations are async). */
|
|
203
|
+
setSync<T = unknown>(key: string, value: T, options?: StorageOptions): void;
|
|
204
|
+
/** Synchronous remove. */
|
|
205
|
+
removeSync(key: string, options?: StorageOptions): void;
|
|
206
|
+
/** Synchronous existence check. */
|
|
207
|
+
hasSync(key: string, options?: StorageOptions): boolean;
|
|
208
|
+
/** Synchronous keys. With no `storage`, aggregates across sync-capable adapters. */
|
|
209
|
+
keysSync(pattern?: string | RegExp, options?: StorageOptions): string[];
|
|
210
|
+
/** Synchronous clear. With no `storage`, clears all sync-capable adapters. */
|
|
211
|
+
clearSync(options?: ClearOptions & StorageOptions): void;
|
|
212
|
+
private requireSyncAdapter;
|
|
213
|
+
private selectAdapterSync;
|
|
214
|
+
private syncCapableAdapters;
|
|
215
|
+
private computeExpiration;
|
|
189
216
|
/**
|
|
190
217
|
* Get storage size information
|
|
191
218
|
*/
|
|
@@ -209,6 +236,19 @@ export declare class Strata {
|
|
|
209
236
|
* Import storage data
|
|
210
237
|
*/
|
|
211
238
|
import(data: string, options?: ImportOptions): Promise<void>;
|
|
239
|
+
/**
|
|
240
|
+
* Create a portable, integrity-verified snapshot of all stored data. The
|
|
241
|
+
* returned string embeds a manifest (version, timestamp, checksum) so
|
|
242
|
+
* restore() can detect a corrupted backup. Pair with config.autoBackup for
|
|
243
|
+
* scheduled snapshots.
|
|
244
|
+
*/
|
|
245
|
+
snapshot(options?: ExportOptions): Promise<string>;
|
|
246
|
+
/**
|
|
247
|
+
* Restore data from a snapshot() string. Validates the manifest checksum and
|
|
248
|
+
* throws IntegrityError if the backup is corrupted. A raw export string (no
|
|
249
|
+
* manifest) is also accepted.
|
|
250
|
+
*/
|
|
251
|
+
restore(snapshot: string, options?: ImportOptions): Promise<void>;
|
|
212
252
|
/**
|
|
213
253
|
* Get available storage types
|
|
214
254
|
*/
|
|
@@ -271,8 +311,22 @@ export declare class Strata {
|
|
|
271
311
|
private normalizeConfig;
|
|
272
312
|
private detectPlatform;
|
|
273
313
|
private getDefaultStorages;
|
|
274
|
-
private selectDefaultAdapter;
|
|
275
314
|
private initializeAdapters;
|
|
315
|
+
private selectDefaultAdapter;
|
|
316
|
+
/**
|
|
317
|
+
* Apply a change received from another tab/device (via the sync manager) to
|
|
318
|
+
* the matching local adapter, then let the adapter notify local subscribers.
|
|
319
|
+
* Never re-broadcasts — prevents sync loops. localStorage propagates cross-tab
|
|
320
|
+
* natively via the `storage` event and sessionStorage is per-tab, so both are
|
|
321
|
+
* skipped here to avoid redundant re-writes.
|
|
322
|
+
*/
|
|
323
|
+
private applyRemoteChange;
|
|
324
|
+
private mirrorAdapters;
|
|
325
|
+
private mirrorWrite;
|
|
326
|
+
private mirrorRemove;
|
|
327
|
+
private verifyDurableWrite;
|
|
328
|
+
private repairFromMirror;
|
|
329
|
+
private startAutoBackup;
|
|
276
330
|
private selectAdapter;
|
|
277
331
|
}
|
|
278
332
|
//# sourceMappingURL=Strata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Strata.d.ts","sourceRoot":"","sources":["../../src/core/Strata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACd,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,
|
|
1
|
+
{"version":3,"file":"Strata.d.ts","sourceRoot":"","sources":["../../src/core/Strata.ts"],"names":[],"mappings":"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"}
|