strata-storage 1.6.0 → 2.0.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/Readme.md +66 -20
- package/dist/README.md +66 -20
- package/dist/adapters/web/MemoryAdapter.js +1 -1
- package/dist/capacitor.d.ts +20 -0
- package/dist/capacitor.d.ts.map +1 -0
- package/dist/capacitor.js +48 -0
- package/dist/core/Strata.d.ts +28 -3
- package/dist/core/Strata.d.ts.map +1 -1
- package/dist/core/Strata.js +51 -52
- package/dist/features/compression/index.d.ts +2 -0
- package/dist/features/compression/index.d.ts.map +1 -0
- package/dist/features/compression/index.js +1 -0
- package/dist/features/encryption/index.d.ts +2 -0
- package/dist/features/encryption/index.d.ts.map +1 -0
- package/dist/features/encryption/index.js +1 -0
- package/dist/features/observer/index.d.ts +2 -0
- package/dist/features/observer/index.d.ts.map +1 -0
- package/dist/features/observer/index.js +1 -0
- package/dist/features/observer.d.ts +20 -0
- package/dist/features/observer.d.ts.map +1 -0
- package/dist/features/observer.js +32 -0
- package/dist/features/query/index.d.ts +2 -0
- package/dist/features/query/index.d.ts.map +1 -0
- package/dist/features/query/index.js +1 -0
- package/dist/features/query.d.ts.map +1 -1
- package/dist/features/query.js +8 -1
- package/dist/features/sync/index.d.ts +2 -0
- package/dist/features/sync/index.d.ts.map +1 -0
- package/dist/features/sync/index.js +1 -0
- package/dist/features/ttl/index.d.ts +2 -0
- package/dist/features/ttl/index.d.ts.map +1 -0
- package/dist/features/ttl/index.js +1 -0
- package/dist/firebase.d.ts +26 -0
- package/dist/firebase.d.ts.map +1 -0
- package/dist/firebase.js +147 -0
- package/dist/index.d.ts +13 -47
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -50
- package/dist/package.json +9 -1
- package/dist/plugin/definitions.d.ts +2 -2
- package/dist/plugin/definitions.d.ts.map +1 -1
- package/dist/plugin/index.d.ts +2 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +76 -10
- package/dist/types/index.d.ts +190 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +13 -0
- package/dist/utils/index.d.ts +20 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +34 -0
- package/package.json +10 -1
- package/scripts/build.js +8 -0
- package/scripts/postinstall.js +15 -8
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage Observer - Watch for storage changes
|
|
3
|
+
*/
|
|
4
|
+
export class StorageObserver {
|
|
5
|
+
observers = new Set();
|
|
6
|
+
/**
|
|
7
|
+
* Subscribe to storage events
|
|
8
|
+
*/
|
|
9
|
+
subscribe(callback) {
|
|
10
|
+
this.observers.add(callback);
|
|
11
|
+
return () => this.observers.delete(callback);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Emit a storage event
|
|
15
|
+
*/
|
|
16
|
+
emit(event) {
|
|
17
|
+
this.observers.forEach((callback) => {
|
|
18
|
+
try {
|
|
19
|
+
callback(event);
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
console.error('Error in storage observer:', error);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Clear all observers
|
|
28
|
+
*/
|
|
29
|
+
clear() {
|
|
30
|
+
this.observers.clear();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/query/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../query.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/features/query.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,SAAS,CAAC;AAE9D;;GAEG;AACH,qBAAa,WAAW;IACtB;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO;IAwB3D;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/features/query.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,SAAS,CAAC;AAE9D;;GAEG;AACH,qBAAa,WAAW;IACtB;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO;IAwB3D;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,eAAe;IA2DvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,OAAO,CAAC,MAAM;IA+Bd;;OAEG;IACH,OAAO,CAAC,OAAO;IAyBf;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,OAAO;IASf;;OAEG;IACH,OAAO,CAAC,WAAW;IAcnB;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;IAoBxD;;OAEG;IACH,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA2B5E;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAc1B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CAE/C"}
|
package/dist/features/query.js
CHANGED
|
@@ -63,7 +63,14 @@ export class QueryEngine {
|
|
|
63
63
|
case '$lte':
|
|
64
64
|
return this.compare(value, operand) <= 0;
|
|
65
65
|
case '$in':
|
|
66
|
-
|
|
66
|
+
if (!Array.isArray(operand))
|
|
67
|
+
return false;
|
|
68
|
+
// If value is an array, check if any operand value is in the array
|
|
69
|
+
if (Array.isArray(value)) {
|
|
70
|
+
return operand.some((v) => value.some((item) => this.equals(item, v)));
|
|
71
|
+
}
|
|
72
|
+
// Otherwise check if value equals any operand value
|
|
73
|
+
return operand.some((v) => this.equals(value, v));
|
|
67
74
|
case '$nin':
|
|
68
75
|
return Array.isArray(operand) && !operand.some((v) => this.equals(value, v));
|
|
69
76
|
case '$regex':
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/sync/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../sync.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/ttl/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../ttl.js";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Strata } from './core/Strata';
|
|
2
|
+
/**
|
|
3
|
+
* Firebase sync configuration
|
|
4
|
+
*/
|
|
5
|
+
export interface FirebaseSyncConfig {
|
|
6
|
+
apiKey: string;
|
|
7
|
+
authDomain: string;
|
|
8
|
+
projectId: string;
|
|
9
|
+
storageBucket?: string;
|
|
10
|
+
messagingSenderId?: string;
|
|
11
|
+
appId: string;
|
|
12
|
+
realtimeDatabase?: boolean;
|
|
13
|
+
firestore?: boolean;
|
|
14
|
+
collectionName?: string;
|
|
15
|
+
syncInterval?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Enable Firebase sync for Strata Storage
|
|
19
|
+
* This dynamically imports Firebase SDK only when needed
|
|
20
|
+
*/
|
|
21
|
+
export declare function enableFirebaseSync(storage: Strata, config: FirebaseSyncConfig): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Check if Firebase is available in the environment
|
|
24
|
+
*/
|
|
25
|
+
export declare function isFirebaseAvailable(): Promise<boolean>;
|
|
26
|
+
//# sourceMappingURL=firebase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase.d.ts","sourceRoot":"","sources":["../src/firebase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,IAAI,CAAC,CA2If;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO5D"}
|
package/dist/firebase.js
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enable Firebase sync for Strata Storage
|
|
3
|
+
* This dynamically imports Firebase SDK only when needed
|
|
4
|
+
*/
|
|
5
|
+
export async function enableFirebaseSync(storage, config) {
|
|
6
|
+
// Dynamically import Firebase only when this function is called
|
|
7
|
+
try {
|
|
8
|
+
const { initializeApp, getApps } = await import('firebase/app');
|
|
9
|
+
// Initialize Firebase if not already initialized
|
|
10
|
+
if (!getApps().length) {
|
|
11
|
+
initializeApp({
|
|
12
|
+
apiKey: config.apiKey,
|
|
13
|
+
authDomain: config.authDomain,
|
|
14
|
+
projectId: config.projectId,
|
|
15
|
+
storageBucket: config.storageBucket,
|
|
16
|
+
messagingSenderId: config.messagingSenderId,
|
|
17
|
+
appId: config.appId,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
if (config.firestore) {
|
|
21
|
+
const { getFirestore, doc, setDoc, getDoc, deleteDoc } = await import('firebase/firestore');
|
|
22
|
+
const db = getFirestore();
|
|
23
|
+
const collectionName = config.collectionName || 'strata-storage';
|
|
24
|
+
// Create custom adapter for Firestore
|
|
25
|
+
const firestoreAdapter = {
|
|
26
|
+
name: 'firestore',
|
|
27
|
+
capabilities: {
|
|
28
|
+
persistent: true,
|
|
29
|
+
synchronous: false,
|
|
30
|
+
observable: true,
|
|
31
|
+
transactional: false,
|
|
32
|
+
queryable: true,
|
|
33
|
+
maxSize: -1,
|
|
34
|
+
binary: true,
|
|
35
|
+
encrypted: false,
|
|
36
|
+
crossTab: true,
|
|
37
|
+
},
|
|
38
|
+
async get(key) {
|
|
39
|
+
const docRef = doc(db, collectionName, key);
|
|
40
|
+
const docSnap = await getDoc(docRef);
|
|
41
|
+
return docSnap.exists() ? docSnap.data() : null;
|
|
42
|
+
},
|
|
43
|
+
async set(key, value) {
|
|
44
|
+
const docRef = doc(db, collectionName, key);
|
|
45
|
+
await setDoc(docRef, { value, timestamp: Date.now() });
|
|
46
|
+
},
|
|
47
|
+
async remove(key) {
|
|
48
|
+
const docRef = doc(db, collectionName, key);
|
|
49
|
+
await deleteDoc(docRef);
|
|
50
|
+
},
|
|
51
|
+
async has(key) {
|
|
52
|
+
const docRef = doc(db, collectionName, key);
|
|
53
|
+
const docSnap = await getDoc(docRef);
|
|
54
|
+
return docSnap.exists();
|
|
55
|
+
},
|
|
56
|
+
async clear() {
|
|
57
|
+
// Firestore doesn't have a direct clear method
|
|
58
|
+
console.warn('Clear operation not supported for Firestore adapter');
|
|
59
|
+
},
|
|
60
|
+
async keys() {
|
|
61
|
+
// Would need to implement with queries
|
|
62
|
+
return [];
|
|
63
|
+
},
|
|
64
|
+
async size() {
|
|
65
|
+
return { total: 0, count: 0 };
|
|
66
|
+
},
|
|
67
|
+
async initialize() {
|
|
68
|
+
// Already initialized
|
|
69
|
+
},
|
|
70
|
+
async isAvailable() {
|
|
71
|
+
return true;
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
// Register the Firestore adapter
|
|
75
|
+
storage.registerAdapter(firestoreAdapter);
|
|
76
|
+
}
|
|
77
|
+
if (config.realtimeDatabase) {
|
|
78
|
+
const { getDatabase, ref, set, get, remove } = await import('firebase/database');
|
|
79
|
+
const db = getDatabase();
|
|
80
|
+
// Create custom adapter for Realtime Database
|
|
81
|
+
const realtimeAdapter = {
|
|
82
|
+
name: 'realtime',
|
|
83
|
+
capabilities: {
|
|
84
|
+
persistent: true,
|
|
85
|
+
synchronous: false,
|
|
86
|
+
observable: true,
|
|
87
|
+
transactional: false,
|
|
88
|
+
queryable: false,
|
|
89
|
+
maxSize: -1,
|
|
90
|
+
binary: false,
|
|
91
|
+
encrypted: false,
|
|
92
|
+
crossTab: true,
|
|
93
|
+
},
|
|
94
|
+
async get(key) {
|
|
95
|
+
const snapshot = await get(ref(db, `strata-storage/${key}`));
|
|
96
|
+
return snapshot.exists() ? snapshot.val() : null;
|
|
97
|
+
},
|
|
98
|
+
async set(key, value) {
|
|
99
|
+
await set(ref(db, `strata-storage/${key}`), value);
|
|
100
|
+
},
|
|
101
|
+
async remove(key) {
|
|
102
|
+
await remove(ref(db, `strata-storage/${key}`));
|
|
103
|
+
},
|
|
104
|
+
async has(key) {
|
|
105
|
+
const snapshot = await get(ref(db, `strata-storage/${key}`));
|
|
106
|
+
return snapshot.exists();
|
|
107
|
+
},
|
|
108
|
+
async clear() {
|
|
109
|
+
await remove(ref(db, 'strata-storage'));
|
|
110
|
+
},
|
|
111
|
+
async keys() {
|
|
112
|
+
const snapshot = await get(ref(db, 'strata-storage'));
|
|
113
|
+
return snapshot.exists() ? Object.keys(snapshot.val()) : [];
|
|
114
|
+
},
|
|
115
|
+
async size() {
|
|
116
|
+
const snapshot = await get(ref(db, 'strata-storage'));
|
|
117
|
+
const count = snapshot.exists() ? Object.keys(snapshot.val()).length : 0;
|
|
118
|
+
return { total: count * 100, count }; // Rough estimate
|
|
119
|
+
},
|
|
120
|
+
async initialize() {
|
|
121
|
+
// Already initialized
|
|
122
|
+
},
|
|
123
|
+
async isAvailable() {
|
|
124
|
+
return true;
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
// Register the Realtime Database adapter
|
|
128
|
+
storage.registerAdapter(realtimeAdapter);
|
|
129
|
+
}
|
|
130
|
+
console.log('Firebase sync enabled successfully');
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
throw new Error(`Failed to enable Firebase sync: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Check if Firebase is available in the environment
|
|
138
|
+
*/
|
|
139
|
+
export async function isFirebaseAvailable() {
|
|
140
|
+
try {
|
|
141
|
+
await import('firebase/app');
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,56 +1,22 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Strata Storage - Zero-dependency universal storage plugin
|
|
3
|
-
*
|
|
4
|
-
* @packageDocumentation
|
|
5
|
-
*/
|
|
6
1
|
export { Strata } from './core/Strata';
|
|
7
|
-
import { Strata } from './core/Strata';
|
|
8
|
-
export type { Platform, StorageType, StorageStrategy, StorageOptions, StorageValue, StorageChange, StorageCapabilities, StrataConfig, StorageAdapter, Transaction, ClearOptions, SizeInfo, ExportOptions, ImportOptions, QueryCondition, QueryOperators, SubscriptionCallback, UnsubscribeFunction, Migration, ExportFormat, } from './types';
|
|
9
|
-
export { StrataError, StorageError, NotFoundError, QuotaExceededError, AdapterNotAvailableError, NotSupportedError, EncryptionError, CompressionError, SerializationError, ValidationError, TransactionError, MigrationError, SyncError, isStrataError, isQuotaError, } from './utils/errors';
|
|
10
|
-
export { serialize, deserialize, deepClone, deepMerge, formatBytes, parseSize, EventEmitter, } from './utils';
|
|
11
2
|
export { BaseAdapter } from './core/BaseAdapter';
|
|
12
3
|
export { AdapterRegistry } from './core/AdapterRegistry';
|
|
13
|
-
export { EncryptionManager } from './features/encryption';
|
|
14
|
-
export type { EncryptionConfig, EncryptedData } from './features/encryption';
|
|
15
|
-
export { CompressionManager } from './features/compression';
|
|
16
|
-
export type { CompressionConfig, CompressedData } from './features/compression';
|
|
17
|
-
export { SyncManager, createSyncManager } from './features/sync';
|
|
18
|
-
export type { SyncConfig, SyncMessage } from './features/sync';
|
|
19
|
-
export { QueryEngine, createQueryEngine } from './features/query';
|
|
20
|
-
export { TTLManager, createTTLManager } from './features/ttl';
|
|
21
|
-
export type { TTLConfig, TTLOptions, ExpiredItem } from './features/ttl';
|
|
22
|
-
export { MigrationManager } from './features/migration';
|
|
23
|
-
export type { Migration as MigrationDefinition } from './features/migration';
|
|
24
|
-
export * from './plugin/definitions';
|
|
25
|
-
export { StrataStorage } from './plugin';
|
|
26
|
-
export { MemoryAdapter } from './adapters/web/MemoryAdapter';
|
|
27
4
|
export { LocalStorageAdapter } from './adapters/web/LocalStorageAdapter';
|
|
28
5
|
export { SessionStorageAdapter } from './adapters/web/SessionStorageAdapter';
|
|
29
6
|
export { IndexedDBAdapter } from './adapters/web/IndexedDBAdapter';
|
|
30
7
|
export { CookieAdapter } from './adapters/web/CookieAdapter';
|
|
31
8
|
export { CacheAdapter } from './adapters/web/CacheAdapter';
|
|
32
|
-
export {
|
|
33
|
-
export {
|
|
34
|
-
export
|
|
35
|
-
export {
|
|
36
|
-
export {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
* defaultStorages: ['indexedDB', 'localStorage', 'memory'],
|
|
46
|
-
* encryption: { enabled: true },
|
|
47
|
-
* compression: { enabled: true }
|
|
48
|
-
* });
|
|
49
|
-
*
|
|
50
|
-
* await storage.initialize();
|
|
51
|
-
* await storage.set('key', 'value');
|
|
52
|
-
* const value = await storage.get('key');
|
|
53
|
-
* ```
|
|
54
|
-
*/
|
|
55
|
-
export declare function createStrata(config?: import('./types').StrataConfig): InstanceType<typeof Strata>;
|
|
9
|
+
export { MemoryAdapter } from './adapters/web/MemoryAdapter';
|
|
10
|
+
export { EncryptionManager } from './features/encryption';
|
|
11
|
+
export { CompressionManager } from './features/compression';
|
|
12
|
+
export { TTLManager } from './features/ttl';
|
|
13
|
+
export { QueryEngine } from './features/query';
|
|
14
|
+
export { SyncManager } from './features/sync';
|
|
15
|
+
export { StorageObserver } from './features/observer';
|
|
16
|
+
export type { StorageType, StorageOptions, StorageValue, StorageAdapter, AdapterConfig, QueryOptions, SyncConfig, EncryptionConfig, CompressionConfig, ObserverCallback, StorageEvent, StorageError, StorageCapabilities, StorageMetadata, TTLConfig, } from './types';
|
|
17
|
+
export { isValidKey, isValidValue, serializeValue, deserializeValue, generateId, createError, retry, debounce, throttle, } from './utils';
|
|
18
|
+
import { Strata } from './core/Strata';
|
|
19
|
+
declare const storage: Strata;
|
|
20
|
+
export { storage };
|
|
21
|
+
export default storage;
|
|
56
22
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,YAAY,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,cAAc,EACd,aAAa,EACb,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,SAAS,GACV,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AASvC,QAAA,MAAM,OAAO,QAGX,CAAC;AAqBH,OAAO,EAAE,OAAO,EAAE,CAAC;AAGnB,eAAe,OAAO,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,58 +1,54 @@
|
|
|
1
|
-
|
|
2
|
-
* Strata Storage - Zero-dependency universal storage plugin
|
|
3
|
-
*
|
|
4
|
-
* @packageDocumentation
|
|
5
|
-
*/
|
|
6
|
-
// Main export
|
|
1
|
+
// Core exports - zero dependencies, works everywhere
|
|
7
2
|
export { Strata } from "./core/Strata.js";
|
|
8
|
-
import { Strata } from "./core/Strata.js";
|
|
9
|
-
// Errors
|
|
10
|
-
export { StrataError, StorageError, NotFoundError, QuotaExceededError, AdapterNotAvailableError, NotSupportedError, EncryptionError, CompressionError, SerializationError, ValidationError, TransactionError, MigrationError, SyncError, isStrataError, isQuotaError, } from "./utils/errors.js";
|
|
11
|
-
// Utilities (selected exports for advanced users)
|
|
12
|
-
export { serialize, deserialize, deepClone, deepMerge, formatBytes, parseSize, EventEmitter, } from "./utils/index.js";
|
|
13
|
-
// Base classes for custom adapters
|
|
14
3
|
export { BaseAdapter } from "./core/BaseAdapter.js";
|
|
15
4
|
export { AdapterRegistry } from "./core/AdapterRegistry.js";
|
|
16
|
-
//
|
|
17
|
-
export { EncryptionManager } from "./features/encryption.js";
|
|
18
|
-
export { CompressionManager } from "./features/compression.js";
|
|
19
|
-
export { SyncManager, createSyncManager } from "./features/sync.js";
|
|
20
|
-
export { QueryEngine, createQueryEngine } from "./features/query.js";
|
|
21
|
-
export { TTLManager, createTTLManager } from "./features/ttl.js";
|
|
22
|
-
export { MigrationManager } from "./features/migration.js";
|
|
23
|
-
// Plugin definitions and main plugin
|
|
24
|
-
export * from "./plugin/definitions.js";
|
|
25
|
-
export { StrataStorage } from "./plugin/index.js";
|
|
26
|
-
// Web Storage Adapters (for advanced users who want direct adapter access)
|
|
27
|
-
export { MemoryAdapter } from "./adapters/web/MemoryAdapter.js";
|
|
5
|
+
// Web adapters - work in any JavaScript environment
|
|
28
6
|
export { LocalStorageAdapter } from "./adapters/web/LocalStorageAdapter.js";
|
|
29
7
|
export { SessionStorageAdapter } from "./adapters/web/SessionStorageAdapter.js";
|
|
30
8
|
export { IndexedDBAdapter } from "./adapters/web/IndexedDBAdapter.js";
|
|
31
9
|
export { CookieAdapter } from "./adapters/web/CookieAdapter.js";
|
|
32
10
|
export { CacheAdapter } from "./adapters/web/CacheAdapter.js";
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
export {
|
|
36
|
-
export {
|
|
37
|
-
export {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
11
|
+
export { MemoryAdapter } from "./adapters/web/MemoryAdapter.js";
|
|
12
|
+
// Core features
|
|
13
|
+
export { EncryptionManager } from "./features/encryption.js";
|
|
14
|
+
export { CompressionManager } from "./features/compression.js";
|
|
15
|
+
export { TTLManager } from "./features/ttl.js";
|
|
16
|
+
export { QueryEngine } from "./features/query.js";
|
|
17
|
+
export { SyncManager } from "./features/sync.js";
|
|
18
|
+
export { StorageObserver } from "./features/observer.js";
|
|
19
|
+
// Utils
|
|
20
|
+
export { isValidKey, isValidValue, serializeValue, deserializeValue, generateId, createError, retry, debounce, throttle, } from "./utils/index.js";
|
|
21
|
+
// Create and export a default storage instance that works immediately
|
|
22
|
+
import { Strata } from "./core/Strata.js";
|
|
23
|
+
import { LocalStorageAdapter } from "./adapters/web/LocalStorageAdapter.js";
|
|
24
|
+
import { SessionStorageAdapter } from "./adapters/web/SessionStorageAdapter.js";
|
|
25
|
+
import { IndexedDBAdapter } from "./adapters/web/IndexedDBAdapter.js";
|
|
26
|
+
import { CookieAdapter } from "./adapters/web/CookieAdapter.js";
|
|
27
|
+
import { CacheAdapter } from "./adapters/web/CacheAdapter.js";
|
|
28
|
+
import { MemoryAdapter } from "./adapters/web/MemoryAdapter.js";
|
|
29
|
+
// Create a singleton instance with web adapters pre-registered
|
|
30
|
+
const storage = new Strata({
|
|
31
|
+
defaultStorage: 'memory', // Always available fallback
|
|
32
|
+
autoInitialize: false, // We'll initialize it ourselves
|
|
33
|
+
});
|
|
34
|
+
// Register only web adapters by default
|
|
35
|
+
storage.registerAdapter(new MemoryAdapter());
|
|
36
|
+
storage.registerAdapter(new LocalStorageAdapter());
|
|
37
|
+
storage.registerAdapter(new SessionStorageAdapter());
|
|
38
|
+
storage.registerAdapter(new IndexedDBAdapter());
|
|
39
|
+
storage.registerAdapter(new CookieAdapter());
|
|
40
|
+
storage.registerAdapter(new CacheAdapter());
|
|
41
|
+
// Initialize the storage instance
|
|
42
|
+
(async () => {
|
|
43
|
+
try {
|
|
44
|
+
await storage.initialize();
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
console.warn('Strata Storage initialization warning:', error);
|
|
48
|
+
// Continue working even if some adapters fail
|
|
49
|
+
}
|
|
50
|
+
})();
|
|
51
|
+
// Export the ready-to-use storage instance
|
|
52
|
+
export { storage };
|
|
53
|
+
// Default export for convenience
|
|
54
|
+
export default storage;
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "strata-storage",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Zero-dependency universal storage plugin providing a unified API for all storage operations across web, Android, and iOS platforms",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -9,6 +9,14 @@
|
|
|
9
9
|
".": {
|
|
10
10
|
"types": "./index.d.ts",
|
|
11
11
|
"default": "./index.js"
|
|
12
|
+
},
|
|
13
|
+
"./capacitor": {
|
|
14
|
+
"types": "./capacitor.d.ts",
|
|
15
|
+
"default": "./capacitor.js"
|
|
16
|
+
},
|
|
17
|
+
"./firebase": {
|
|
18
|
+
"types": "./firebase.d.ts",
|
|
19
|
+
"default": "./firebase.js"
|
|
12
20
|
}
|
|
13
21
|
},
|
|
14
22
|
"author": "Ahsan Mahmood",
|
|
@@ -19,7 +19,7 @@ export interface StrataStoragePlugin {
|
|
|
19
19
|
* Get a value from native storage
|
|
20
20
|
*/
|
|
21
21
|
get(options: NativeGetOptions): Promise<{
|
|
22
|
-
value: StorageValue | null;
|
|
22
|
+
value: StorageValue<unknown> | null;
|
|
23
23
|
}>;
|
|
24
24
|
/**
|
|
25
25
|
* Set a value in native storage
|
|
@@ -125,7 +125,7 @@ export interface NativeGetOptions {
|
|
|
125
125
|
*/
|
|
126
126
|
export interface NativeSetOptions {
|
|
127
127
|
key: string;
|
|
128
|
-
value: StorageValue
|
|
128
|
+
value: StorageValue<unknown>;
|
|
129
129
|
storage: NativeStorageType;
|
|
130
130
|
database?: string;
|
|
131
131
|
table?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/plugin/definitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,iBAAiB,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAEtF;;OAEG;IACH,GAAG,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/plugin/definitions.ts"],"names":[],"mappings":"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"}
|
package/dist/plugin/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Strata Storage Capacitor Plugin
|
|
3
3
|
* Main plugin registration and web implementation
|
|
4
|
+
* This is now optional and only loaded when Capacitor adapters are used
|
|
4
5
|
*/
|
|
5
6
|
import type { StrataStoragePlugin } from './definitions';
|
|
6
|
-
export declare
|
|
7
|
+
export declare const StrataStorage: StrataStoragePlugin;
|
|
7
8
|
export * from './definitions';
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,mBAAmB,EASpB,MAAM,eAAe,CAAC;AA+GvB,eAAO,MAAM,aAAa,EAAE,mBAAmD,CAAC;AAEhF,cAAc,eAAe,CAAC"}
|
package/dist/plugin/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Strata Storage Capacitor Plugin
|
|
3
3
|
* Main plugin registration and web implementation
|
|
4
|
+
* This is now optional and only loaded when Capacitor adapters are used
|
|
4
5
|
*/
|
|
5
6
|
// Mock implementation for when Capacitor is not available
|
|
6
7
|
const mockPlugin = {
|
|
@@ -12,16 +13,81 @@ const mockPlugin = {
|
|
|
12
13
|
keys: async () => ({ keys: [] }),
|
|
13
14
|
size: async () => ({ total: 0, count: 0 }),
|
|
14
15
|
};
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
// Create a lazy-loading wrapper that only attempts to load Capacitor when actually used
|
|
17
|
+
class LazyStrataStoragePlugin {
|
|
18
|
+
plugin;
|
|
19
|
+
attempted = false;
|
|
20
|
+
getPlugin() {
|
|
21
|
+
if (this.attempted) {
|
|
22
|
+
return this.plugin || mockPlugin;
|
|
23
|
+
}
|
|
24
|
+
this.attempted = true;
|
|
25
|
+
if (typeof window !== 'undefined') {
|
|
26
|
+
const cap = window.Capacitor;
|
|
27
|
+
if (cap && cap.registerPlugin) {
|
|
28
|
+
try {
|
|
29
|
+
this.plugin = cap.registerPlugin('StrataStorage', {
|
|
30
|
+
web: () => import("./web.js").then((m) => new m.StrataStorageWeb()),
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
console.warn('Failed to register StrataStorage plugin:', error);
|
|
35
|
+
this.plugin = mockPlugin;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.plugin = mockPlugin;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this.plugin = mockPlugin;
|
|
44
|
+
}
|
|
45
|
+
return this.plugin;
|
|
46
|
+
}
|
|
47
|
+
async isAvailable(options) {
|
|
48
|
+
return this.getPlugin().isAvailable(options);
|
|
49
|
+
}
|
|
50
|
+
async get(options) {
|
|
51
|
+
return this.getPlugin().get(options);
|
|
52
|
+
}
|
|
53
|
+
async set(options) {
|
|
54
|
+
return this.getPlugin().set(options);
|
|
55
|
+
}
|
|
56
|
+
async remove(options) {
|
|
57
|
+
return this.getPlugin().remove(options);
|
|
58
|
+
}
|
|
59
|
+
async clear(options) {
|
|
60
|
+
return this.getPlugin().clear(options);
|
|
61
|
+
}
|
|
62
|
+
async keys(options) {
|
|
63
|
+
return this.getPlugin().keys(options);
|
|
64
|
+
}
|
|
65
|
+
async size(options) {
|
|
66
|
+
return this.getPlugin().size(options);
|
|
67
|
+
}
|
|
68
|
+
// Optional methods delegated to the underlying plugin
|
|
69
|
+
get setKeychain() {
|
|
70
|
+
return this.getPlugin().setKeychain;
|
|
71
|
+
}
|
|
72
|
+
get getKeychain() {
|
|
73
|
+
return this.getPlugin().getKeychain;
|
|
74
|
+
}
|
|
75
|
+
get setEncryptedPreference() {
|
|
76
|
+
return this.getPlugin().setEncryptedPreference;
|
|
77
|
+
}
|
|
78
|
+
get getEncryptedPreference() {
|
|
79
|
+
return this.getPlugin().getEncryptedPreference;
|
|
80
|
+
}
|
|
81
|
+
get query() {
|
|
82
|
+
return this.getPlugin().query;
|
|
83
|
+
}
|
|
84
|
+
get getUserDefaults() {
|
|
85
|
+
return this.getPlugin().getUserDefaults;
|
|
86
|
+
}
|
|
87
|
+
get setUserDefaults() {
|
|
88
|
+
return this.getPlugin().setUserDefaults;
|
|
25
89
|
}
|
|
26
90
|
}
|
|
91
|
+
// Export the lazy-loading plugin
|
|
92
|
+
export const StrataStorage = new LazyStrataStoragePlugin();
|
|
27
93
|
export * from "./definitions.js";
|