react-native-nitro-storage 0.10.4 → 0.11.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/CHANGELOG.md +71 -14
- package/README.md +127 -41
- package/SECURITY.md +16 -6
- package/android/build.gradle +0 -1
- package/android/consumer-rules.pro +0 -3
- package/android/src/main/cpp/AndroidStorageAdapterCpp.cpp +1 -4
- package/android/src/main/cpp/AndroidStorageAdapterCpp.hpp +3 -3
- package/android/src/main/java/com/nitrostorage/AndroidStorageAdapter.kt +73 -23
- package/android/src/main/java/com/nitrostorage/DiskSqliteStore.kt +15 -0
- package/app.plugin.js +51 -51
- package/cpp/bindings/HybridStorage.cpp +25 -6
- package/cpp/core/NativeStorageAdapter.hpp +14 -1
- package/cpp/core/SqliteDiskStore.cpp +84 -11
- package/cpp/core/SqliteDiskStore.hpp +10 -0
- package/docs/api-reference.md +73 -28
- package/docs/benchmarks.md +4 -12
- package/docs/mmkv-migration.md +3 -1
- package/docs/native-libraries.md +10 -4
- package/docs/secure-storage.md +26 -12
- package/docs/web-backends.md +6 -2
- package/indexeddb-backend/package.json +6 -0
- package/ios/IOSStorageAdapterCpp.hpp +4 -0
- package/ios/IOSStorageAdapterCpp.mm +96 -18
- package/lib/commonjs/capabilities.js +3 -8
- package/lib/commonjs/capabilities.js.map +1 -1
- package/lib/commonjs/index.js +23 -8
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +61 -19
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/indexeddb-backend.js +21 -37
- package/lib/commonjs/indexeddb-backend.js.map +1 -1
- package/lib/commonjs/internal.js +6 -0
- package/lib/commonjs/internal.js.map +1 -1
- package/lib/commonjs/storage-core.js +35 -11
- package/lib/commonjs/storage-core.js.map +1 -1
- package/lib/commonjs/storage-runtime.js +1 -1
- package/lib/commonjs/storage-runtime.js.map +1 -1
- package/lib/commonjs/testing.js +68 -23
- package/lib/commonjs/testing.js.map +1 -1
- package/lib/commonjs/web-backend-contract.js +6 -2
- package/lib/commonjs/web-backend-contract.js.map +1 -1
- package/lib/module/capabilities.js +3 -8
- package/lib/module/capabilities.js.map +1 -1
- package/lib/module/index.js +14 -5
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +61 -12
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/indexeddb-backend.js +21 -37
- package/lib/module/indexeddb-backend.js.map +1 -1
- package/lib/module/internal.js +5 -0
- package/lib/module/internal.js.map +1 -1
- package/lib/module/storage-core.js +36 -12
- package/lib/module/storage-core.js.map +1 -1
- package/lib/module/storage-runtime.js +1 -1
- package/lib/module/storage-runtime.js.map +1 -1
- package/lib/module/testing.js +59 -16
- package/lib/module/testing.js.map +1 -1
- package/lib/module/web-backend-contract.js +5 -2
- package/lib/module/web-backend-contract.js.map +1 -1
- package/lib/typescript/capabilities.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +8 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/index.web.d.ts +7 -1
- package/lib/typescript/index.web.d.ts.map +1 -1
- package/lib/typescript/indexeddb-backend.d.ts.map +1 -1
- package/lib/typescript/internal.d.ts +1 -0
- package/lib/typescript/internal.d.ts.map +1 -1
- package/lib/typescript/storage-core.d.ts +1 -1
- package/lib/typescript/storage-core.d.ts.map +1 -1
- package/lib/typescript/storage-runtime.d.ts +1 -1
- package/lib/typescript/storage-runtime.d.ts.map +1 -1
- package/lib/typescript/testing.d.ts +15 -2
- package/lib/typescript/testing.d.ts.map +1 -1
- package/lib/typescript/web-backend-contract.d.ts +1 -0
- package/lib/typescript/web-backend-contract.d.ts.map +1 -1
- package/package.json +14 -5
- package/react-native-nitro-storage.podspec +4 -2
- package/src/capabilities.ts +4 -9
- package/src/index.ts +19 -5
- package/src/index.web.ts +86 -19
- package/src/indexeddb-backend.ts +20 -42
- package/src/internal.ts +8 -0
- package/src/storage-core.ts +52 -19
- package/src/storage-runtime.ts +3 -1
- package/src/testing.ts +91 -18
- package/src/web-backend-contract.ts +6 -2
- package/testing/package.json +8 -0
|
@@ -100,7 +100,7 @@ static void unregisterLegacyDiskKeys(NSArray<NSString*>* keys) {
|
|
|
100
100
|
|
|
101
101
|
// --- Legacy disk key migration ---
|
|
102
102
|
// Versions before the suite domain stored Disk values in standardUserDefaults.
|
|
103
|
-
// A conservative, retryable cutover runs
|
|
103
|
+
// A conservative, retryable cutover runs before the first Disk operation. A valid
|
|
104
104
|
// registry is copied into the suite domain and each source is removed only
|
|
105
105
|
// after a target readback confirms the copy. Malformed registries, fallback
|
|
106
106
|
// domains, and persistence failures remain untouched for a later retry.
|
|
@@ -108,7 +108,7 @@ static void unregisterLegacyDiskKeys(NSArray<NSString*>* keys) {
|
|
|
108
108
|
static NSString* const kLegacyDiskMigrationMarkerKey =
|
|
109
109
|
@"__nitro_storage_legacy_disk_migration_v1__";
|
|
110
110
|
|
|
111
|
-
static std::string
|
|
111
|
+
static std::string ResolveNitroDiskStorePath() {
|
|
112
112
|
NSArray<NSURL*>* urls = [[NSFileManager defaultManager]
|
|
113
113
|
URLsForDirectory:NSApplicationSupportDirectory
|
|
114
114
|
inDomains:NSUserDomainMask];
|
|
@@ -125,6 +125,11 @@ static std::string NitroDiskStorePath() {
|
|
|
125
125
|
return stdStringFromNSString(path);
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
+
static const std::string& NitroDiskStorePath() {
|
|
129
|
+
static const std::string path = ResolveNitroDiskStorePath();
|
|
130
|
+
return path;
|
|
131
|
+
}
|
|
132
|
+
|
|
128
133
|
static NitroStorage::SqliteDiskStore& NitroSqliteDiskStore() {
|
|
129
134
|
return NitroStorage::SqliteDiskStore::shared(NitroDiskStorePath());
|
|
130
135
|
}
|
|
@@ -134,7 +139,14 @@ static bool isInternalDiskKey(NSString* key) {
|
|
|
134
139
|
[key isEqualToString:kLegacyDiskMigrationMarkerKey];
|
|
135
140
|
}
|
|
136
141
|
|
|
142
|
+
static NSString* const kSuiteSqliteMigrationMarker = @"suite_v1";
|
|
143
|
+
|
|
137
144
|
static void migrateSuiteIntoSqlite() {
|
|
145
|
+
auto& store = NitroSqliteDiskStore();
|
|
146
|
+
const std::string marker = stdStringFromNSString(kSuiteSqliteMigrationMarker);
|
|
147
|
+
if (store.hasMigrationMarker(marker)) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
138
150
|
NSDictionary<NSString*, id>* entries =
|
|
139
151
|
[NitroDiskDefaults() persistentDomainForName:kDiskSuiteName] ?: @{};
|
|
140
152
|
std::vector<std::pair<std::string, std::string>> pairs;
|
|
@@ -149,7 +161,7 @@ static void migrateSuiteIntoSqlite() {
|
|
|
149
161
|
}
|
|
150
162
|
pairs.emplace_back(stdStringFromNSString(key), stdStringFromNSString((NSString*)value));
|
|
151
163
|
}
|
|
152
|
-
|
|
164
|
+
store.migrateOnce(marker, pairs);
|
|
153
165
|
}
|
|
154
166
|
|
|
155
167
|
static void runLegacyDiskMigrationCutover(
|
|
@@ -306,14 +318,24 @@ static CFStringRef accessControlAttr(int level) {
|
|
|
306
318
|
}
|
|
307
319
|
}
|
|
308
320
|
|
|
309
|
-
IOSStorageAdapterCpp::IOSStorageAdapterCpp()
|
|
321
|
+
IOSStorageAdapterCpp::IOSStorageAdapterCpp() = default;
|
|
322
|
+
IOSStorageAdapterCpp::~IOSStorageAdapterCpp() {}
|
|
323
|
+
|
|
324
|
+
void IOSStorageAdapterCpp::ensureDiskMigrated() {
|
|
325
|
+
if (diskMigrated_.load(std::memory_order_acquire)) {
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
std::lock_guard<std::mutex> lock(diskMigrationMutex_);
|
|
329
|
+
if (diskMigrated_.load(std::memory_order_relaxed)) {
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
310
332
|
runLegacyDiskMigrationCutover(
|
|
311
333
|
NitroDiskDefaults(),
|
|
312
334
|
[NSUserDefaults standardUserDefaults]
|
|
313
335
|
);
|
|
314
336
|
migrateSuiteIntoSqlite();
|
|
337
|
+
diskMigrated_.store(true, std::memory_order_release);
|
|
315
338
|
}
|
|
316
|
-
IOSStorageAdapterCpp::~IOSStorageAdapterCpp() {}
|
|
317
339
|
|
|
318
340
|
#ifdef NITRO_STORAGE_TESTING
|
|
319
341
|
void resetSqliteDiskStoreForTesting() {
|
|
@@ -324,11 +346,24 @@ void resetSqliteDiskStoreForTesting() {
|
|
|
324
346
|
[files removeItemAtPath:[path stringByAppendingString:@"-wal"] error:nil];
|
|
325
347
|
[files removeItemAtPath:[path stringByAppendingString:@"-shm"] error:nil];
|
|
326
348
|
}
|
|
349
|
+
|
|
350
|
+
void resetSharedSqliteDiskStoreForTesting() {
|
|
351
|
+
SqliteDiskStore::resetShared();
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
bool sqliteDiskStoreHasKeyForTesting(const std::string& key) {
|
|
355
|
+
return NitroSqliteDiskStore().has(key);
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
std::string diskStorePathForTesting() {
|
|
359
|
+
return NitroDiskStorePath();
|
|
360
|
+
}
|
|
327
361
|
#endif
|
|
328
362
|
|
|
329
363
|
// --- Disk ---
|
|
330
364
|
|
|
331
365
|
void IOSStorageAdapterCpp::setDisk(const std::string& key, const std::string& value) {
|
|
366
|
+
ensureDiskMigrated();
|
|
332
367
|
NitroSqliteDiskStore().set(key, value);
|
|
333
368
|
NSString* nsKey = nsStringFromStdString(key);
|
|
334
369
|
NSUserDefaults* defaults = NitroDiskDefaults();
|
|
@@ -340,6 +375,7 @@ void IOSStorageAdapterCpp::setDisk(const std::string& key, const std::string& va
|
|
|
340
375
|
}
|
|
341
376
|
|
|
342
377
|
std::optional<std::string> IOSStorageAdapterCpp::getDisk(const std::string& key) {
|
|
378
|
+
ensureDiskMigrated();
|
|
343
379
|
if (auto stored = NitroSqliteDiskStore().get(key)) {
|
|
344
380
|
return stored;
|
|
345
381
|
}
|
|
@@ -352,6 +388,7 @@ std::optional<std::string> IOSStorageAdapterCpp::getDisk(const std::string& key)
|
|
|
352
388
|
}
|
|
353
389
|
|
|
354
390
|
void IOSStorageAdapterCpp::deleteDisk(const std::string& key) {
|
|
391
|
+
ensureDiskMigrated();
|
|
355
392
|
NitroSqliteDiskStore().remove(key);
|
|
356
393
|
NSString* nsKey = nsStringFromStdString(key);
|
|
357
394
|
NSUserDefaults* defaults = NitroDiskDefaults();
|
|
@@ -364,6 +401,7 @@ void IOSStorageAdapterCpp::deleteDisk(const std::string& key) {
|
|
|
364
401
|
}
|
|
365
402
|
|
|
366
403
|
bool IOSStorageAdapterCpp::hasDisk(const std::string& key) {
|
|
404
|
+
ensureDiskMigrated();
|
|
367
405
|
if (NitroSqliteDiskStore().has(key)) {
|
|
368
406
|
return true;
|
|
369
407
|
}
|
|
@@ -380,6 +418,7 @@ bool IOSStorageAdapterCpp::hasDisk(const std::string& key) {
|
|
|
380
418
|
}
|
|
381
419
|
|
|
382
420
|
std::vector<std::string> IOSStorageAdapterCpp::getAllKeysDisk() {
|
|
421
|
+
ensureDiskMigrated();
|
|
383
422
|
std::unordered_set<std::string> combined;
|
|
384
423
|
for (const auto& key : NitroSqliteDiskStore().getAllKeys()) {
|
|
385
424
|
combined.insert(key);
|
|
@@ -407,6 +446,7 @@ std::vector<std::string> IOSStorageAdapterCpp::getAllKeysDisk() {
|
|
|
407
446
|
}
|
|
408
447
|
|
|
409
448
|
std::vector<std::string> IOSStorageAdapterCpp::getKeysByPrefixDisk(const std::string& prefix) {
|
|
449
|
+
ensureDiskMigrated();
|
|
410
450
|
std::unordered_set<std::string> combined;
|
|
411
451
|
for (const auto& key : NitroSqliteDiskStore().getKeysByPrefix(prefix)) {
|
|
412
452
|
combined.insert(key);
|
|
@@ -425,6 +465,7 @@ std::vector<std::string> IOSStorageAdapterCpp::getKeysByPrefixDisk(const std::st
|
|
|
425
465
|
}
|
|
426
466
|
|
|
427
467
|
size_t IOSStorageAdapterCpp::sizeDisk() {
|
|
468
|
+
ensureDiskMigrated();
|
|
428
469
|
return getAllKeysDisk().size();
|
|
429
470
|
}
|
|
430
471
|
|
|
@@ -432,6 +473,7 @@ void IOSStorageAdapterCpp::setDiskBatch(
|
|
|
432
473
|
const std::vector<std::string>& keys,
|
|
433
474
|
const std::vector<std::string>& values
|
|
434
475
|
) {
|
|
476
|
+
ensureDiskMigrated();
|
|
435
477
|
NitroSqliteDiskStore().setBatch(keys, values);
|
|
436
478
|
NSUserDefaults* defaults = NitroDiskDefaults();
|
|
437
479
|
NSUserDefaults* standard = [NSUserDefaults standardUserDefaults];
|
|
@@ -451,6 +493,7 @@ void IOSStorageAdapterCpp::setDiskBatch(
|
|
|
451
493
|
std::vector<std::optional<std::string>> IOSStorageAdapterCpp::getDiskBatch(
|
|
452
494
|
const std::vector<std::string>& keys
|
|
453
495
|
) {
|
|
496
|
+
ensureDiskMigrated();
|
|
454
497
|
std::vector<std::optional<std::string>> results;
|
|
455
498
|
results.reserve(keys.size());
|
|
456
499
|
for (const auto& key : keys) {
|
|
@@ -460,6 +503,7 @@ std::vector<std::optional<std::string>> IOSStorageAdapterCpp::getDiskBatch(
|
|
|
460
503
|
}
|
|
461
504
|
|
|
462
505
|
void IOSStorageAdapterCpp::deleteDiskBatch(const std::vector<std::string>& keys) {
|
|
506
|
+
ensureDiskMigrated();
|
|
463
507
|
NitroSqliteDiskStore().removeBatch(keys);
|
|
464
508
|
for (const auto& key : keys) {
|
|
465
509
|
NSString* nsKey = nsStringFromStdString(key);
|
|
@@ -474,6 +518,7 @@ void IOSStorageAdapterCpp::deleteDiskBatch(const std::vector<std::string>& keys)
|
|
|
474
518
|
}
|
|
475
519
|
|
|
476
520
|
void IOSStorageAdapterCpp::clearDisk() {
|
|
521
|
+
ensureDiskMigrated();
|
|
477
522
|
NitroSqliteDiskStore().clear();
|
|
478
523
|
NSUserDefaults* defaults = NitroDiskDefaults();
|
|
479
524
|
NSDictionary<NSString*, id>* entries = [defaults persistentDomainForName:kDiskSuiteName] ?: @{};
|
|
@@ -527,6 +572,19 @@ static void throwIfDeleteFailed(OSStatus status, const std::string& operation) {
|
|
|
527
572
|
throw keychainStatusError(status, operation);
|
|
528
573
|
}
|
|
529
574
|
|
|
575
|
+
static void throwIfLookupFailed(OSStatus status, const std::string& operation) {
|
|
576
|
+
if (status == errSecSuccess || status == errSecItemNotFound) {
|
|
577
|
+
return;
|
|
578
|
+
}
|
|
579
|
+
if (status == errSecInteractionNotAllowed) {
|
|
580
|
+
throw taggedStorageError(
|
|
581
|
+
"keychain_locked",
|
|
582
|
+
"NitroStorage: Keychain is locked (errSecInteractionNotAllowed) during " + operation
|
|
583
|
+
);
|
|
584
|
+
}
|
|
585
|
+
throw keychainStatusError(status, operation);
|
|
586
|
+
}
|
|
587
|
+
|
|
530
588
|
static BiometricKeychainSnapshot captureBiometricValue(
|
|
531
589
|
NSString* nsKey,
|
|
532
590
|
NSString* group
|
|
@@ -601,7 +659,8 @@ static void setSecureValue(
|
|
|
601
659
|
) {
|
|
602
660
|
NSMutableDictionary* query = baseKeychainQuery(nsKey, kKeychainService, group);
|
|
603
661
|
NSDictionary* updateAttributes = @{
|
|
604
|
-
(__bridge id)kSecValueData: data
|
|
662
|
+
(__bridge id)kSecValueData: data,
|
|
663
|
+
(__bridge id)kSecAttrAccessible: (__bridge id)accessControlAttr(accessControlLevel)
|
|
605
664
|
};
|
|
606
665
|
|
|
607
666
|
OSStatus status = SecItemUpdate((__bridge CFDictionaryRef)query, (__bridge CFDictionaryRef)updateAttributes);
|
|
@@ -728,6 +787,10 @@ static std::vector<std::string> keychainAccountsForService(NSString* service, NS
|
|
|
728
787
|
"The item is not accessible until the device is unlocked."
|
|
729
788
|
);
|
|
730
789
|
}
|
|
790
|
+
if (status != errSecSuccess && status != errSecItemNotFound) {
|
|
791
|
+
if (result) CFRelease(result);
|
|
792
|
+
throw keychainStatusError(status, "Secure key enumeration");
|
|
793
|
+
}
|
|
731
794
|
if (status == errSecSuccess && result) {
|
|
732
795
|
id items = (__bridge_transfer id)result;
|
|
733
796
|
NSArray* itemArray = nil;
|
|
@@ -798,12 +861,19 @@ bool IOSStorageAdapterCpp::hasSecure(const std::string& key) {
|
|
|
798
861
|
NSString* group = groupStr.empty() ? nil : nsStringFromStdString(groupStr);
|
|
799
862
|
NSMutableDictionary* secureQuery = baseKeychainQuery(nsKey, kKeychainService, group);
|
|
800
863
|
disableKeychainInteraction(secureQuery);
|
|
801
|
-
|
|
864
|
+
const OSStatus secureStatus = SecItemCopyMatching((__bridge CFDictionaryRef)secureQuery, NULL);
|
|
865
|
+
if (secureStatus == errSecSuccess) {
|
|
802
866
|
return true;
|
|
803
867
|
}
|
|
868
|
+
throwIfLookupFailed(secureStatus, "Secure has");
|
|
804
869
|
NSMutableDictionary* biometricQuery = baseKeychainQuery(nsKey, kBiometricKeychainService, group);
|
|
805
870
|
disableKeychainInteraction(biometricQuery);
|
|
806
|
-
|
|
871
|
+
const OSStatus biometricStatus = SecItemCopyMatching((__bridge CFDictionaryRef)biometricQuery, NULL);
|
|
872
|
+
if (biometricStatus == errSecSuccess || biometricStatus == errSecInteractionNotAllowed) {
|
|
873
|
+
return true;
|
|
874
|
+
}
|
|
875
|
+
throwIfLookupFailed(biometricStatus, "Secure has");
|
|
876
|
+
return false;
|
|
807
877
|
}
|
|
808
878
|
|
|
809
879
|
std::vector<std::string> IOSStorageAdapterCpp::getAllKeysSecure() {
|
|
@@ -852,12 +922,16 @@ void IOSStorageAdapterCpp::setSecureBatch(
|
|
|
852
922
|
}
|
|
853
923
|
NSString* group = groupStr.empty() ? nil : nsStringFromStdString(groupStr);
|
|
854
924
|
for (size_t i = 0; i < keys.size() && i < values.size(); ++i) {
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
925
|
+
try {
|
|
926
|
+
setSecureValue(
|
|
927
|
+
nsStringFromStdString(keys[i]),
|
|
928
|
+
nsDataFromStdString(values[i]),
|
|
929
|
+
group,
|
|
930
|
+
accessControlLevel
|
|
931
|
+
);
|
|
932
|
+
} catch (const std::exception& error) {
|
|
933
|
+
throw PartialBatchError(i, error.what());
|
|
934
|
+
}
|
|
861
935
|
markSecureKeySet(keys[i]);
|
|
862
936
|
}
|
|
863
937
|
}
|
|
@@ -886,10 +960,14 @@ void IOSStorageAdapterCpp::deleteSecureBatch(const std::vector<std::string>& key
|
|
|
886
960
|
groupStr = keychainAccessGroup_;
|
|
887
961
|
}
|
|
888
962
|
NSString* group = groupStr.empty() ? nil : nsStringFromStdString(groupStr);
|
|
889
|
-
for (
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
963
|
+
for (size_t i = 0; i < keys.size(); ++i) {
|
|
964
|
+
try {
|
|
965
|
+
deleteSecureValue(nsStringFromStdString(keys[i]), group);
|
|
966
|
+
} catch (const std::exception& error) {
|
|
967
|
+
throw PartialBatchError(i, error.what());
|
|
968
|
+
}
|
|
969
|
+
markSecureKeyRemoved(keys[i]);
|
|
970
|
+
markBiometricKeyRemoved(keys[i]);
|
|
893
971
|
}
|
|
894
972
|
}
|
|
895
973
|
|
|
@@ -6,18 +6,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.DEFAULT_SECURE_WRITES_ASYNC = void 0;
|
|
7
7
|
exports.resolveNativeWriteBuffering = resolveNativeWriteBuffering;
|
|
8
8
|
exports.resolveWebWriteBuffering = resolveWebWriteBuffering;
|
|
9
|
+
var _webBackendContract = require("./web-backend-contract");
|
|
9
10
|
function resolveWebWriteBuffering(diskBackendName, secureBackendName) {
|
|
10
11
|
return {
|
|
11
|
-
disk:
|
|
12
|
-
secure:
|
|
12
|
+
disk: (0, _webBackendContract.isIndexedDBBackendName)(diskBackendName),
|
|
13
|
+
secure: (0, _webBackendContract.isIndexedDBBackendName)(secureBackendName)
|
|
13
14
|
};
|
|
14
15
|
}
|
|
15
|
-
function isIndexedDBWebBackendByName(backendName) {
|
|
16
|
-
if (!backendName) {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
return backendName.startsWith("indexeddb:");
|
|
20
|
-
}
|
|
21
16
|
const DEFAULT_SECURE_WRITES_ASYNC = exports.DEFAULT_SECURE_WRITES_ASYNC = false;
|
|
22
17
|
function resolveNativeWriteBuffering(platform, secureWritesAsync = DEFAULT_SECURE_WRITES_ASYNC) {
|
|
23
18
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_webBackendContract","require","resolveWebWriteBuffering","diskBackendName","secureBackendName","disk","isIndexedDBBackendName","secure","DEFAULT_SECURE_WRITES_ASYNC","exports","resolveNativeWriteBuffering","platform","secureWritesAsync"],"sourceRoot":"../../src","sources":["capabilities.ts"],"mappings":";;;;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AAYO,SAASC,wBAAwBA,CACtCC,eAAmC,EACnCC,iBAAqC,EACrB;EAChB,OAAO;IACLC,IAAI,EAAE,IAAAC,0CAAsB,EAACH,eAAe,CAAC;IAC7CI,MAAM,EAAE,IAAAD,0CAAsB,EAACF,iBAAiB;EAClD,CAAC;AACH;AAEO,MAAMI,2BAA2B,GAAAC,OAAA,CAAAD,2BAAA,GAAG,KAAK;AAEzC,SAASE,2BAA2BA,CACzCC,QAA2B,EAC3BC,iBAA0B,GAAGJ,2BAA2B,EACxC;EAChB,OAAO;IACLH,IAAI,EAAE,IAAI;IACVE,MAAM,EAAEI,QAAQ,KAAK,SAAS,GAAGC,iBAAiB,GAAG;EACvD,CAAC;AACH","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -21,13 +21,14 @@ Object.defineProperty(exports, "StorageScope", {
|
|
|
21
21
|
return _Storage.StorageScope;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
-
|
|
24
|
+
exports.createStorageItem = exports.createSetItem = exports.createSecureAuthStorage = exports.createIndexedDBBackend = void 0;
|
|
25
|
+
Object.defineProperty(exports, "describeWebBackendCapabilities", {
|
|
25
26
|
enumerable: true,
|
|
26
27
|
get: function () {
|
|
27
|
-
return
|
|
28
|
+
return _webBackendContract.describeWebBackendCapabilities;
|
|
28
29
|
}
|
|
29
30
|
});
|
|
30
|
-
exports.diskItem =
|
|
31
|
+
exports.diskItem = void 0;
|
|
31
32
|
exports.flushWebStorageBackends = flushWebStorageBackends;
|
|
32
33
|
exports.getBatch = void 0;
|
|
33
34
|
Object.defineProperty(exports, "getStorageErrorCode", {
|
|
@@ -38,6 +39,12 @@ Object.defineProperty(exports, "getStorageErrorCode", {
|
|
|
38
39
|
});
|
|
39
40
|
exports.getWebDiskStorageBackend = getWebDiskStorageBackend;
|
|
40
41
|
exports.getWebSecureStorageBackend = getWebSecureStorageBackend;
|
|
42
|
+
Object.defineProperty(exports, "isIndexedDBWebBackend", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _webBackendContract.isIndexedDBWebBackend;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
41
48
|
Object.defineProperty(exports, "isKeychainLockedError", {
|
|
42
49
|
enumerable: true,
|
|
43
50
|
get: function () {
|
|
@@ -94,14 +101,15 @@ Object.defineProperty(exports, "useStorageValue", {
|
|
|
94
101
|
var _reactNative = require("react-native");
|
|
95
102
|
var _reactNativeNitroModules = require("react-native-nitro-modules");
|
|
96
103
|
var _capabilities = require("./capabilities");
|
|
104
|
+
var _indexeddbBackend = require("./indexeddb-backend");
|
|
97
105
|
var _internal = require("./internal");
|
|
98
106
|
var _shared = require("./shared");
|
|
99
107
|
var _storageCore = require("./storage-core");
|
|
100
108
|
var _Storage = require("./Storage.types");
|
|
101
109
|
var _migration = require("./migration");
|
|
102
110
|
var _storageRuntime = require("./storage-runtime");
|
|
111
|
+
var _webBackendContract = require("./web-backend-contract");
|
|
103
112
|
var _storageHooks = require("./storage-hooks");
|
|
104
|
-
var _indexeddbBackend = require("./indexeddb-backend");
|
|
105
113
|
let _storageModule = null;
|
|
106
114
|
function getStorageModule() {
|
|
107
115
|
if (!_storageModule) {
|
|
@@ -197,6 +205,10 @@ function buildNativeAdapter(internals) {
|
|
|
197
205
|
(0, _shared.notifyAllListeners)(internals.getScopedListeners(scope));
|
|
198
206
|
return;
|
|
199
207
|
}
|
|
208
|
+
if (consumeSuppressedNativeEvent(scope, key)) {
|
|
209
|
+
(0, _shared.notifyKeyListeners)(internals.getScopedListeners(scope), key);
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
200
212
|
const oldValue = scope === _Storage.StorageScope.Secure ? undefined : internals.readCachedRawValue(scope, key);
|
|
201
213
|
if (scope === _Storage.StorageScope.Secure) {
|
|
202
214
|
internals.invalidateRawCache(scope, key);
|
|
@@ -204,9 +216,6 @@ function buildNativeAdapter(internals) {
|
|
|
204
216
|
internals.cacheRawValue(scope, key, value);
|
|
205
217
|
}
|
|
206
218
|
(0, _shared.notifyKeyListeners)(internals.getScopedListeners(scope), key);
|
|
207
|
-
if (consumeSuppressedNativeEvent(scope, key)) {
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
219
|
internals.emitKeyChange(scope, key, oldValue === undefined ? undefined : (0, _internal.unescapeCollidingRawValue)(oldValue), value === undefined ? undefined : (0, _internal.unescapeCollidingRawValue)(value), "external", "native");
|
|
211
220
|
});
|
|
212
221
|
scopedUnsubscribers.set(scope, typeof unsubscribe === "function" ? unsubscribe : () => {});
|
|
@@ -271,7 +280,7 @@ const storage = exports.storage = {
|
|
|
271
280
|
getCapabilities: () => ({
|
|
272
281
|
platform: "native",
|
|
273
282
|
backend: {
|
|
274
|
-
disk: "
|
|
283
|
+
disk: "sqlite",
|
|
275
284
|
secure: nativeSecureBackend
|
|
276
285
|
},
|
|
277
286
|
writeBuffering: (0, _capabilities.resolveNativeWriteBuffering)(_reactNative.Platform.OS === "android" ? "android" : "ios", secureWritesBuffered),
|
|
@@ -326,4 +335,10 @@ function getWebDiskStorageBackend() {
|
|
|
326
335
|
async function flushWebStorageBackends() {
|
|
327
336
|
// Native platforms do not use web storage backends.
|
|
328
337
|
}
|
|
338
|
+
/**
|
|
339
|
+
* @deprecated Import `createIndexedDBBackend` from
|
|
340
|
+
* `react-native-nitro-storage/indexeddb-backend` instead. The root export
|
|
341
|
+
* will be removed in a future minor release.
|
|
342
|
+
*/
|
|
343
|
+
const createIndexedDBBackend = exports.createIndexedDBBackend = _indexeddbBackend.createIndexedDBBackend;
|
|
329
344
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativeNitroModules","_capabilities","_internal","_shared","_storageCore","_Storage","_migration","_storageRuntime","_storageHooks","_indexeddbBackend","_storageModule","getStorageModule","NitroModules","createHybridObject","nativeSecureBackend","nativeBackend","get","key","scope","set","value","remove","clear","has","getAllKeys","getKeysByPrefix","prefix","size","setBatch","keys","values","getBatch","removeBatch","removeByPrefix","setSecureAccessControl","level","getSecureBiometric","setSecureBiometricWithLevel","deleteSecureBiometric","hasSecureBiometric","clearSecureBiometric","buildNativeAdapter","internals","scopedUnsubscribers","Map","suppressedNativeEvents","StorageScope","Disk","Secure","suppressNativeEvent","suppressedEvents","consumeSuppressedNativeEvent","count","undefined","delete","ensureNativeScopeSubscription","unsubscribe","addOnChange","clearAllPendingDiskWrites","clearPendingDiskWrite","clearAllPendingSecureWrites","clearPendingSecureWrite","clearScopeRawCache","notifyAllListeners","getScopedListeners","oldValue","readCachedRawValue","invalidateRawCache","cacheRawValue","notifyKeyListeners","emitKeyChange","unescapeCollidingRawValue","maybeCleanupNativeScopeSubscription","listeners","hasScopeEventListeners","hasEventObserver","backend","changeSource","applyAccessControlOnSecureRawWrite","ensureScopeSubscription","maybeCleanupScopeSubscription","onWillEmitChanges","operation","source","Memory","forEach","getSecureMetadataProfile","encrypted","hardwareBacked","core","createStorageCore","secureWritesBuffered","DEFAULT_SECURE_WRITES_ASYNC","storage","exports","setAccessControl","measureOperation","assertAccessControlLevel","setSecureDefaultAccessControl","setSecureWritesAsync","enabled","setKeychainAccessGroup","group","getCapabilities","platform","disk","secure","writeBuffering","resolveNativeWriteBuffering","Platform","OS","errorClassification","getSecurityCapabilities","secureStorage","accessControl","keychainAccessGroup","biometric","prompt","biometryOnly","biometryOrPasscode","metadata","perKey","listsWithoutValues","persistsTimestamps","createStorageItem","memoryItem","diskItem","secureItem","createSetItem","registerMigration","migrateToLatest","runTransaction","createSecureAuthStorage","setWebSecureStorageBackend","_backend","getWebSecureStorageBackend","setWebDiskStorageBackend","getWebDiskStorageBackend","flushWebStorageBackends"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_reactNativeNitroModules","_capabilities","_indexeddbBackend","_internal","_shared","_storageCore","_Storage","_migration","_storageRuntime","_webBackendContract","_storageHooks","_storageModule","getStorageModule","NitroModules","createHybridObject","nativeSecureBackend","nativeBackend","get","key","scope","set","value","remove","clear","has","getAllKeys","getKeysByPrefix","prefix","size","setBatch","keys","values","getBatch","removeBatch","removeByPrefix","setSecureAccessControl","level","getSecureBiometric","setSecureBiometricWithLevel","deleteSecureBiometric","hasSecureBiometric","clearSecureBiometric","buildNativeAdapter","internals","scopedUnsubscribers","Map","suppressedNativeEvents","StorageScope","Disk","Secure","suppressNativeEvent","suppressedEvents","consumeSuppressedNativeEvent","count","undefined","delete","ensureNativeScopeSubscription","unsubscribe","addOnChange","clearAllPendingDiskWrites","clearPendingDiskWrite","clearAllPendingSecureWrites","clearPendingSecureWrite","clearScopeRawCache","notifyAllListeners","getScopedListeners","notifyKeyListeners","oldValue","readCachedRawValue","invalidateRawCache","cacheRawValue","emitKeyChange","unescapeCollidingRawValue","maybeCleanupNativeScopeSubscription","listeners","hasScopeEventListeners","hasEventObserver","backend","changeSource","applyAccessControlOnSecureRawWrite","ensureScopeSubscription","maybeCleanupScopeSubscription","onWillEmitChanges","operation","source","Memory","forEach","getSecureMetadataProfile","encrypted","hardwareBacked","core","createStorageCore","secureWritesBuffered","DEFAULT_SECURE_WRITES_ASYNC","storage","exports","setAccessControl","measureOperation","assertAccessControlLevel","setSecureDefaultAccessControl","setSecureWritesAsync","enabled","setKeychainAccessGroup","group","getCapabilities","platform","disk","secure","writeBuffering","resolveNativeWriteBuffering","Platform","OS","errorClassification","getSecurityCapabilities","secureStorage","accessControl","keychainAccessGroup","biometric","prompt","biometryOnly","biometryOrPasscode","metadata","perKey","listsWithoutValues","persistsTimestamps","createStorageItem","memoryItem","diskItem","secureItem","createSetItem","registerMigration","migrateToLatest","runTransaction","createSecureAuthStorage","setWebSecureStorageBackend","_backend","getWebSecureStorageBackend","setWebDiskStorageBackend","getWebDiskStorageBackend","flushWebStorageBackends","createIndexedDBBackend","createIndexedDBBackendFromSubpath"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,13 +21,7 @@ Object.defineProperty(exports, "StorageScope", {
|
|
|
21
21
|
return _Storage.StorageScope;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
-
|
|
25
|
-
enumerable: true,
|
|
26
|
-
get: function () {
|
|
27
|
-
return _indexeddbBackend.createIndexedDBBackend;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
exports.createStorageItem = exports.createSetItem = exports.createSecureAuthStorage = void 0;
|
|
24
|
+
exports.createStorageItem = exports.createSetItem = exports.createSecureAuthStorage = exports.createIndexedDBBackend = void 0;
|
|
31
25
|
Object.defineProperty(exports, "describeWebBackendCapabilities", {
|
|
32
26
|
enumerable: true,
|
|
33
27
|
get: function () {
|
|
@@ -105,6 +99,7 @@ Object.defineProperty(exports, "useStorageValue", {
|
|
|
105
99
|
}
|
|
106
100
|
});
|
|
107
101
|
var _capabilities = require("./capabilities");
|
|
102
|
+
var _indexeddbBackend = require("./indexeddb-backend");
|
|
108
103
|
var _internal = require("./internal");
|
|
109
104
|
var _shared = require("./shared");
|
|
110
105
|
var _storageCore = require("./storage-core");
|
|
@@ -114,7 +109,6 @@ var _migration = require("./migration");
|
|
|
114
109
|
var _storageRuntime = require("./storage-runtime");
|
|
115
110
|
var _webBackendContract = require("./web-backend-contract");
|
|
116
111
|
var _storageHooks = require("./storage-hooks");
|
|
117
|
-
var _indexeddbBackend = require("./indexeddb-backend");
|
|
118
112
|
const webScopeKeyIndex = {
|
|
119
113
|
[_Storage.StorageScope.Disk]: new Set(),
|
|
120
114
|
[_Storage.StorageScope.Secure]: new Set()
|
|
@@ -131,16 +125,21 @@ function getInternals() {
|
|
|
131
125
|
}
|
|
132
126
|
return internals;
|
|
133
127
|
}
|
|
128
|
+
const DEFAULT_DISK_BACKEND_NAME = "localStorage:disk";
|
|
129
|
+
const DEFAULT_SECURE_BACKEND_NAME = "localStorage:secure";
|
|
130
|
+
function isSecureWebStorageKey(key) {
|
|
131
|
+
return key.startsWith(SECURE_WEB_PREFIX) || key.startsWith(BIOMETRIC_WEB_PREFIX);
|
|
132
|
+
}
|
|
134
133
|
function createDefaultDiskBackend() {
|
|
135
134
|
return (0, _webStorageBackend.createLocalStorageWebBackend)({
|
|
136
|
-
name:
|
|
137
|
-
includeKey: key => !
|
|
135
|
+
name: DEFAULT_DISK_BACKEND_NAME,
|
|
136
|
+
includeKey: key => !isSecureWebStorageKey(key)
|
|
138
137
|
});
|
|
139
138
|
}
|
|
140
139
|
function createDefaultSecureBackend() {
|
|
141
140
|
return (0, _webStorageBackend.createLocalStorageWebBackend)({
|
|
142
|
-
name:
|
|
143
|
-
includeKey:
|
|
141
|
+
name: DEFAULT_SECURE_BACKEND_NAME,
|
|
142
|
+
includeKey: isSecureWebStorageKey
|
|
144
143
|
});
|
|
145
144
|
}
|
|
146
145
|
let webDiskStorageBackend = createDefaultDiskBackend();
|
|
@@ -201,7 +200,9 @@ function replaceWebScopeKeyIndex(scope, keys) {
|
|
|
201
200
|
keyIndex.clear();
|
|
202
201
|
for (const key of keys) {
|
|
203
202
|
if (scope === _Storage.StorageScope.Disk) {
|
|
204
|
-
|
|
203
|
+
if (!isSecureWebStorageKey(key)) {
|
|
204
|
+
keyIndex.add(key);
|
|
205
|
+
}
|
|
205
206
|
continue;
|
|
206
207
|
}
|
|
207
208
|
if (key.startsWith(SECURE_WEB_PREFIX)) {
|
|
@@ -312,18 +313,28 @@ function applyExternalChangeEvent(scope, key, newValue) {
|
|
|
312
313
|
(0, _shared.notifyKeyListeners)(getInternals().getScopedListeners(scope), key);
|
|
313
314
|
getInternals().emitKeyChange(scope, key, oldValue === undefined ? undefined : (0, _internal.unescapeCollidingRawValue)(oldValue), newValue === null ? undefined : (0, _internal.unescapeCollidingRawValue)(newValue), "external", "external");
|
|
314
315
|
}
|
|
316
|
+
function usesDefaultLocalStorageBackend(scope) {
|
|
317
|
+
return getWebBackend(scope)?.name === (scope === _Storage.StorageScope.Disk ? DEFAULT_DISK_BACKEND_NAME : DEFAULT_SECURE_BACKEND_NAME);
|
|
318
|
+
}
|
|
315
319
|
function handleWebStorageEvent(event) {
|
|
320
|
+
if (typeof globalThis.localStorage === "undefined" || event.storageArea !== globalThis.localStorage) {
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
316
323
|
const key = event.key;
|
|
317
324
|
if (key === null) {
|
|
318
|
-
|
|
319
|
-
|
|
325
|
+
if (usesDefaultLocalStorageBackend(_Storage.StorageScope.Disk)) {
|
|
326
|
+
applyExternalChangeEvent(_Storage.StorageScope.Disk, null, null);
|
|
327
|
+
}
|
|
328
|
+
if (usesDefaultLocalStorageBackend(_Storage.StorageScope.Secure)) {
|
|
329
|
+
applyExternalChangeEvent(_Storage.StorageScope.Secure, null, null);
|
|
330
|
+
}
|
|
320
331
|
return;
|
|
321
332
|
}
|
|
322
|
-
|
|
323
|
-
|
|
333
|
+
const scope = isSecureWebStorageKey(key) ? _Storage.StorageScope.Secure : _Storage.StorageScope.Disk;
|
|
334
|
+
if (!usesDefaultLocalStorageBackend(scope)) {
|
|
324
335
|
return;
|
|
325
336
|
}
|
|
326
|
-
applyExternalChangeEvent(
|
|
337
|
+
applyExternalChangeEvent(scope, key, event.newValue);
|
|
327
338
|
}
|
|
328
339
|
function subscribeToBackendChanges(scope) {
|
|
329
340
|
if (externalSyncUnsubscribers.has(scope)) {
|
|
@@ -334,6 +345,20 @@ function subscribeToBackendChanges(scope) {
|
|
|
334
345
|
return;
|
|
335
346
|
}
|
|
336
347
|
const unsubscribe = backend.subscribe(event => {
|
|
348
|
+
if (webDiskStorageBackend !== webSecureStorageBackend) {
|
|
349
|
+
applyExternalChangeEvent(scope, event.key, event.newValue);
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
if (event.key === null) {
|
|
353
|
+
getInternals().clearScopeRawCache(scope);
|
|
354
|
+
reconcileWebScopeKeyIndex(scope);
|
|
355
|
+
(0, _shared.notifyAllListeners)(getInternals().getScopedListeners(scope));
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
const eventScope = isSecureWebStorageKey(event.key) ? _Storage.StorageScope.Secure : _Storage.StorageScope.Disk;
|
|
359
|
+
if (eventScope !== scope) {
|
|
360
|
+
return;
|
|
361
|
+
}
|
|
337
362
|
applyExternalChangeEvent(scope, event.key, event.newValue);
|
|
338
363
|
});
|
|
339
364
|
externalSyncUnsubscribers.set(scope, unsubscribe);
|
|
@@ -428,7 +453,18 @@ const WebStorage = {
|
|
|
428
453
|
}
|
|
429
454
|
try {
|
|
430
455
|
withWebBackendOperation(scope, "clear", backend => {
|
|
431
|
-
|
|
456
|
+
if (webDiskStorageBackend !== webSecureStorageBackend) {
|
|
457
|
+
backend.clear();
|
|
458
|
+
return;
|
|
459
|
+
}
|
|
460
|
+
const ownedKeys = backend.getAllKeys().filter(key => scope === _Storage.StorageScope.Secure ? isSecureWebStorageKey(key) : !isSecureWebStorageKey(key));
|
|
461
|
+
if (backend.removeMany) {
|
|
462
|
+
backend.removeMany(ownedKeys);
|
|
463
|
+
return;
|
|
464
|
+
}
|
|
465
|
+
ownedKeys.forEach(key => {
|
|
466
|
+
backend.removeItem(key);
|
|
467
|
+
});
|
|
432
468
|
});
|
|
433
469
|
} catch (error) {
|
|
434
470
|
throwAfterWebMutationFailure(scope, "clear", error);
|
|
@@ -814,4 +850,10 @@ async function flushWebStorageBackends() {
|
|
|
814
850
|
throw failure.reason;
|
|
815
851
|
}
|
|
816
852
|
}
|
|
853
|
+
/**
|
|
854
|
+
* @deprecated Import `createIndexedDBBackend` from
|
|
855
|
+
* `react-native-nitro-storage/indexeddb-backend` instead. The root export
|
|
856
|
+
* will be removed in a future minor release.
|
|
857
|
+
*/
|
|
858
|
+
const createIndexedDBBackend = exports.createIndexedDBBackend = _indexeddbBackend.createIndexedDBBackend;
|
|
817
859
|
//# sourceMappingURL=index.web.js.map
|