mindoodb 0.0.2 → 0.0.4
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-server.md +1001 -0
- package/README.md +89 -28
- package/dist/__mocks__/expo-standard-web-crypto.d.ts +10 -0
- package/dist/__mocks__/expo-standard-web-crypto.d.ts.map +1 -0
- package/dist/__mocks__/expo-standard-web-crypto.js +22 -0
- package/dist/__mocks__/expo-standard-web-crypto.js.map +1 -0
- package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.d.ts +8 -0
- package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.d.ts.map +1 -0
- package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.js +16 -0
- package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.js.map +1 -0
- package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.d.ts +1 -1
- package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.d.ts.map +1 -1
- package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.js +2 -2
- package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.js.map +1 -1
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts +30 -1
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js +152 -5
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js.map +1 -1
- package/dist/appendonlystores/network/HttpTransport.d.ts +17 -2
- package/dist/appendonlystores/network/HttpTransport.d.ts.map +1 -1
- package/dist/appendonlystores/network/HttpTransport.js +129 -0
- package/dist/appendonlystores/network/HttpTransport.js.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +22 -2
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +110 -0
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -1
- package/dist/appendonlystores/network/index.d.ts +1 -1
- package/dist/appendonlystores/network/index.d.ts.map +1 -1
- package/dist/appendonlystores/network/index.js.map +1 -1
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.d.ts +65 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.d.ts.map +1 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.js +741 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.js.map +1 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStoreFactory.d.ts +25 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStoreFactory.d.ts.map +1 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStoreFactory.js +41 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStoreFactory.js.map +1 -0
- package/dist/browser/cache/IndexedDBLocalCacheStore.d.ts +21 -0
- package/dist/browser/cache/IndexedDBLocalCacheStore.d.ts.map +1 -0
- package/dist/browser/cache/IndexedDBLocalCacheStore.js +106 -0
- package/dist/browser/cache/IndexedDBLocalCacheStore.js.map +1 -0
- package/dist/browser/index.d.ts +8 -0
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +21 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/core/BaseMindooDB.d.ts +115 -13
- package/dist/core/BaseMindooDB.d.ts.map +1 -1
- package/dist/core/BaseMindooDB.js +1232 -269
- package/dist/core/BaseMindooDB.js.map +1 -1
- package/dist/core/BaseMindooTenant.d.ts +69 -6
- package/dist/core/BaseMindooTenant.d.ts.map +1 -1
- package/dist/core/BaseMindooTenant.js +302 -109
- package/dist/core/BaseMindooTenant.js.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.d.ts +13 -10
- package/dist/core/BaseMindooTenantDirectory.d.ts.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.js +144 -27
- package/dist/core/BaseMindooTenantDirectory.js.map +1 -1
- package/dist/core/BaseMindooTenantFactory.d.ts +27 -29
- package/dist/core/BaseMindooTenantFactory.d.ts.map +1 -1
- package/dist/core/BaseMindooTenantFactory.js +185 -112
- package/dist/core/BaseMindooTenantFactory.js.map +1 -1
- package/dist/core/MindooDBServerAdmin.d.ts +238 -0
- package/dist/core/MindooDBServerAdmin.d.ts.map +1 -0
- package/dist/core/MindooDBServerAdmin.js +345 -0
- package/dist/core/MindooDBServerAdmin.js.map +1 -0
- package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.d.ts +68 -0
- package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.d.ts.map +1 -0
- package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.js +659 -0
- package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.js.map +1 -0
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts +45 -3
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts.map +1 -1
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.js +184 -23
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.js.map +1 -1
- package/dist/core/appendonlystores/MaterializationPlanner.d.ts +49 -0
- package/dist/core/appendonlystores/MaterializationPlanner.d.ts.map +1 -0
- package/dist/core/appendonlystores/MaterializationPlanner.js +325 -0
- package/dist/core/appendonlystores/MaterializationPlanner.js.map +1 -0
- package/dist/core/appendonlystores/bloom.d.ts +85 -0
- package/dist/core/appendonlystores/bloom.d.ts.map +1 -0
- package/dist/core/appendonlystores/bloom.js +228 -0
- package/dist/core/appendonlystores/bloom.js.map +1 -0
- package/dist/core/appendonlystores/network/NetworkTransport.d.ts +37 -2
- package/dist/core/appendonlystores/network/NetworkTransport.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/types.d.ts +12 -0
- package/dist/core/appendonlystores/network/types.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/types.js.map +1 -1
- package/dist/core/appendonlystores/types.d.ts +206 -0
- package/dist/core/appendonlystores/types.d.ts.map +1 -1
- package/dist/core/automerge-adapter.d.ts +15 -0
- package/dist/core/automerge-adapter.d.ts.map +1 -0
- package/dist/core/automerge-adapter.js +73 -0
- package/dist/core/automerge-adapter.js.map +1 -0
- package/dist/core/cache/CacheManager.d.ts +75 -0
- package/dist/core/cache/CacheManager.d.ts.map +1 -0
- package/dist/core/cache/CacheManager.js +101 -0
- package/dist/core/cache/CacheManager.js.map +1 -0
- package/dist/core/cache/EncryptedLocalCacheStore.d.ts +41 -0
- package/dist/core/cache/EncryptedLocalCacheStore.d.ts.map +1 -0
- package/dist/core/cache/EncryptedLocalCacheStore.js +120 -0
- package/dist/core/cache/EncryptedLocalCacheStore.js.map +1 -0
- package/dist/core/cache/LocalCacheStore.d.ts +50 -0
- package/dist/core/cache/LocalCacheStore.d.ts.map +1 -0
- package/dist/core/cache/LocalCacheStore.js +39 -0
- package/dist/core/cache/LocalCacheStore.js.map +1 -0
- package/dist/core/crypto/pbkdf2Iterations.d.ts +12 -0
- package/dist/core/crypto/pbkdf2Iterations.d.ts.map +1 -0
- package/dist/core/crypto/pbkdf2Iterations.js +55 -0
- package/dist/core/crypto/pbkdf2Iterations.js.map +1 -0
- package/dist/core/crypto/privateKeyEncryption.d.ts +5 -0
- package/dist/core/crypto/privateKeyEncryption.d.ts.map +1 -0
- package/dist/core/crypto/privateKeyEncryption.js +87 -0
- package/dist/core/crypto/privateKeyEncryption.js.map +1 -0
- package/dist/core/index.d.ts +18 -6
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +42 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts +4 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js +39 -11
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js.map +1 -1
- package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.d.ts +1 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.js +3 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualView.d.ts +43 -0
- package/dist/core/indexing/virtualviews/VirtualView.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualView.js +173 -0
- package/dist/core/indexing/virtualviews/VirtualView.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts +7 -0
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.js +28 -0
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.js.map +1 -1
- package/dist/core/keys/KeyBag.d.ts +56 -12
- package/dist/core/keys/KeyBag.d.ts.map +1 -1
- package/dist/core/keys/KeyBag.js +156 -70
- package/dist/core/keys/KeyBag.js.map +1 -1
- package/dist/core/keys/KeyContext.d.ts +4 -0
- package/dist/core/keys/KeyContext.d.ts.map +1 -0
- package/dist/core/keys/KeyContext.js +17 -0
- package/dist/core/keys/KeyContext.js.map +1 -0
- package/dist/core/types.d.ts +512 -60
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +9 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/uri/MindooURI.d.ts +58 -0
- package/dist/core/uri/MindooURI.d.ts.map +1 -0
- package/dist/core/uri/MindooURI.js +169 -0
- package/dist/core/uri/MindooURI.js.map +1 -0
- package/dist/core/userid/index.d.ts +0 -10
- package/dist/core/userid/index.d.ts.map +1 -1
- package/dist/core/utils/idGeneration.d.ts.map +1 -1
- package/dist/core/utils/idGeneration.js +37 -3
- package/dist/core/utils/idGeneration.js.map +1 -1
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts +544 -0
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts.map +1 -0
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js +1358 -0
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js.map +1 -0
- package/dist/node/attachments/writeAttachmentToFile.d.ts +15 -0
- package/dist/node/attachments/writeAttachmentToFile.d.ts.map +1 -0
- package/dist/node/attachments/writeAttachmentToFile.js +73 -0
- package/dist/node/attachments/writeAttachmentToFile.js.map +1 -0
- package/dist/node/cache/FileSystemLocalCacheStore.d.ts +17 -0
- package/dist/node/cache/FileSystemLocalCacheStore.d.ts.map +1 -0
- package/dist/node/cache/FileSystemLocalCacheStore.js +128 -0
- package/dist/node/cache/FileSystemLocalCacheStore.js.map +1 -0
- package/dist/node/cli/change-identity-password.d.ts +7 -0
- package/dist/node/cli/change-identity-password.d.ts.map +1 -0
- package/dist/node/cli/change-identity-password.js +67 -0
- package/dist/node/cli/change-identity-password.js.map +1 -0
- package/dist/node/cli/cli-utils.d.ts +16 -0
- package/dist/node/cli/cli-utils.d.ts.map +1 -0
- package/dist/node/cli/cli-utils.js +113 -0
- package/dist/node/cli/cli-utils.js.map +1 -0
- package/dist/node/cli/identity-export-public.d.ts +4 -0
- package/dist/node/cli/identity-export-public.d.ts.map +1 -0
- package/dist/node/cli/identity-export-public.js +55 -0
- package/dist/node/cli/identity-export-public.js.map +1 -0
- package/dist/node/cli/identity-info.d.ts +4 -0
- package/dist/node/cli/identity-info.d.ts.map +1 -0
- package/dist/node/cli/identity-info.js +57 -0
- package/dist/node/cli/identity-info.js.map +1 -0
- package/dist/node/index.d.ts +2 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +8 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/server/CapabilityMatcher.d.ts +45 -0
- package/dist/node/server/CapabilityMatcher.d.ts.map +1 -0
- package/dist/node/server/CapabilityMatcher.js +117 -0
- package/dist/node/server/CapabilityMatcher.js.map +1 -0
- package/dist/node/server/MindooDBServer.d.ts +87 -0
- package/dist/node/server/MindooDBServer.d.ts.map +1 -0
- package/dist/node/server/MindooDBServer.js +1040 -0
- package/dist/node/server/MindooDBServer.js.map +1 -0
- package/dist/node/server/ServerSync.d.ts +41 -0
- package/dist/node/server/ServerSync.d.ts.map +1 -0
- package/dist/node/server/ServerSync.js +187 -0
- package/dist/node/server/ServerSync.js.map +1 -0
- package/dist/node/server/StoreFactory.d.ts +45 -0
- package/dist/node/server/StoreFactory.d.ts.map +1 -0
- package/dist/node/server/StoreFactory.js +89 -0
- package/dist/node/server/StoreFactory.js.map +1 -0
- package/dist/node/server/SystemAdminAuth.d.ts +65 -0
- package/dist/node/server/SystemAdminAuth.d.ts.map +1 -0
- package/dist/node/server/SystemAdminAuth.js +200 -0
- package/dist/node/server/SystemAdminAuth.js.map +1 -0
- package/dist/node/server/SystemIpAllowlist.d.ts +21 -0
- package/dist/node/server/SystemIpAllowlist.d.ts.map +1 -0
- package/dist/node/server/SystemIpAllowlist.js +210 -0
- package/dist/node/server/SystemIpAllowlist.js.map +1 -0
- package/dist/node/server/TenantManager.d.ts +85 -0
- package/dist/node/server/TenantManager.d.ts.map +1 -0
- package/dist/node/server/TenantManager.js +493 -0
- package/dist/node/server/TenantManager.js.map +1 -0
- package/dist/node/server/add-to-network.d.ts +20 -0
- package/dist/node/server/add-to-network.d.ts.map +1 -0
- package/dist/node/server/add-to-network.js +275 -0
- package/dist/node/server/add-to-network.js.map +1 -0
- package/dist/node/server/config.d.ts +51 -0
- package/dist/node/server/config.d.ts.map +1 -0
- package/dist/node/server/config.js +218 -0
- package/dist/node/server/config.js.map +1 -0
- package/dist/node/server/resolveServerPassword.d.ts +7 -0
- package/dist/node/server/resolveServerPassword.d.ts.map +1 -0
- package/dist/node/server/resolveServerPassword.js +25 -0
- package/dist/node/server/resolveServerPassword.js.map +1 -0
- package/dist/node/server/server.d.ts +22 -0
- package/dist/node/server/server.d.ts.map +1 -0
- package/dist/node/server/server.js +225 -0
- package/dist/node/server/server.js.map +1 -0
- package/dist/node/server/serverinit.d.ts +21 -0
- package/dist/node/server/serverinit.d.ts.map +1 -0
- package/dist/node/server/serverinit.js +317 -0
- package/dist/node/server/serverinit.js.map +1 -0
- package/dist/node/server/types.d.ts +162 -0
- package/dist/node/server/types.d.ts.map +1 -0
- package/dist/node/server/types.js +24 -0
- package/dist/node/server/types.js.map +1 -0
- package/dist/node/server/validation.d.ts +47 -0
- package/dist/node/server/validation.d.ts.map +1 -0
- package/dist/node/server/validation.js +114 -0
- package/dist/node/server/validation.js.map +1 -0
- package/dist/reactnative/cache/MMKVLocalCacheStore.d.ts +48 -0
- package/dist/reactnative/cache/MMKVLocalCacheStore.d.ts.map +1 -0
- package/dist/reactnative/cache/MMKVLocalCacheStore.js +113 -0
- package/dist/reactnative/cache/MMKVLocalCacheStore.js.map +1 -0
- package/dist/reactnative/crypto/AESAdapter.d.ts +18 -0
- package/dist/reactnative/crypto/AESAdapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/AESAdapter.js +112 -0
- package/dist/reactnative/crypto/AESAdapter.js.map +1 -0
- package/dist/reactnative/crypto/Ed25519Adapter.d.ts +34 -0
- package/dist/reactnative/crypto/Ed25519Adapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/Ed25519Adapter.js +386 -0
- package/dist/reactnative/crypto/Ed25519Adapter.js.map +1 -0
- package/dist/reactnative/crypto/ExpoGoCryptoAdapter.d.ts +23 -0
- package/dist/reactnative/crypto/ExpoGoCryptoAdapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/ExpoGoCryptoAdapter.js +51 -0
- package/dist/reactnative/crypto/ExpoGoCryptoAdapter.js.map +1 -0
- package/dist/reactnative/crypto/HMACAdapter.d.ts +13 -0
- package/dist/reactnative/crypto/HMACAdapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/HMACAdapter.js +50 -0
- package/dist/reactnative/crypto/HMACAdapter.js.map +1 -0
- package/dist/reactnative/crypto/KeyFormatConverter.d.ts +21 -0
- package/dist/reactnative/crypto/KeyFormatConverter.d.ts.map +1 -0
- package/dist/reactnative/crypto/KeyFormatConverter.js +72 -0
- package/dist/reactnative/crypto/KeyFormatConverter.js.map +1 -0
- package/dist/reactnative/crypto/PBKDF2Adapter.d.ts +19 -0
- package/dist/reactnative/crypto/PBKDF2Adapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/PBKDF2Adapter.js +67 -0
- package/dist/reactnative/crypto/PBKDF2Adapter.js.map +1 -0
- package/dist/reactnative/crypto/QuickCryptoAdapter.d.ts +37 -0
- package/dist/reactnative/crypto/QuickCryptoAdapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/QuickCryptoAdapter.js +72 -0
- package/dist/reactnative/crypto/QuickCryptoAdapter.js.map +1 -0
- package/dist/reactnative/crypto/RSAAdapter.d.ts +38 -0
- package/dist/reactnative/crypto/RSAAdapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/RSAAdapter.js +184 -0
- package/dist/reactnative/crypto/RSAAdapter.js.map +1 -0
- package/dist/reactnative/crypto/ReactNativeCryptoAdapter.d.ts +33 -0
- package/dist/reactnative/crypto/ReactNativeCryptoAdapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/ReactNativeCryptoAdapter.js +61 -0
- package/dist/reactnative/crypto/ReactNativeCryptoAdapter.js.map +1 -0
- package/dist/reactnative/crypto/SHA256Adapter.d.ts +9 -0
- package/dist/reactnative/crypto/SHA256Adapter.d.ts.map +1 -0
- package/dist/reactnative/crypto/SHA256Adapter.js +29 -0
- package/dist/reactnative/crypto/SHA256Adapter.js.map +1 -0
- package/dist/reactnative/crypto/SubtleCryptoPolyfill.d.ts +63 -0
- package/dist/reactnative/crypto/SubtleCryptoPolyfill.d.ts.map +1 -0
- package/dist/reactnative/crypto/SubtleCryptoPolyfill.js +350 -0
- package/dist/reactnative/crypto/SubtleCryptoPolyfill.js.map +1 -0
- package/dist/reactnative/index.d.ts +9 -0
- package/dist/reactnative/index.d.ts.map +1 -0
- package/dist/reactnative/index.js +41 -0
- package/dist/reactnative/index.js.map +1 -0
- package/package.json +63 -7
- package/patches/PATCHES.md +111 -0
- package/patches/react-native+0.76.9.patch +34 -0
- package/patches/react-native-quick-crypto+1.0.7.patch +42 -0
- package/scripts/cli.js +21 -0
- package/scripts/setup-react-native.js +228 -0
- package/templates/reactnative/App.js +252 -0
- package/templates/reactnative/app.json +29 -0
- package/templates/reactnative/babel.config.js +6 -0
- package/templates/reactnative/index.js +26 -0
- package/templates/reactnative/metro.config.snippet.js +39 -0
- package/templates/reactnative/mindoodb-polyfills.js +116 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReactNativeCryptoAdapter.d.ts","sourceRoot":"","sources":["../../../src/reactnative/crypto/ReactNativeCryptoAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAIrE;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,aAAa;IAC5D,OAAO,CAAC,OAAO,CAAgB;IAE/B;;;OAGG;IACH,SAAgB,mBAAmB,EAAE,OAAO,CAAC;;IA4B7C;;OAEG;IACH,SAAS,IAAI,YAAY;IAIzB;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;CAG/C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAEnD"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* React Native Crypto Adapter
|
|
4
|
+
* Auto-detects and uses the best available crypto implementation:
|
|
5
|
+
* 1. react-native-quick-crypto (native, fast) - for dev builds and production
|
|
6
|
+
* 2. ExpoGoCryptoAdapter (JS-only, slower) - fallback for Expo Go
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ReactNativeCryptoAdapter = void 0;
|
|
10
|
+
exports.createCryptoAdapter = createCryptoAdapter;
|
|
11
|
+
const ExpoGoCryptoAdapter_1 = require("./ExpoGoCryptoAdapter");
|
|
12
|
+
const QuickCryptoAdapter_1 = require("./QuickCryptoAdapter");
|
|
13
|
+
/**
|
|
14
|
+
* React Native Crypto Adapter
|
|
15
|
+
* Automatically selects the best available crypto implementation
|
|
16
|
+
*/
|
|
17
|
+
class ReactNativeCryptoAdapter {
|
|
18
|
+
constructor() {
|
|
19
|
+
// Try react-native-quick-crypto first, fall back to ExpoGoCryptoAdapter
|
|
20
|
+
if ((0, QuickCryptoAdapter_1.isQuickCryptoAvailable)()) {
|
|
21
|
+
try {
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
23
|
+
const quickCrypto = require("react-native-quick-crypto");
|
|
24
|
+
this.adapter = new QuickCryptoAdapter_1.QuickCryptoAdapter(quickCrypto);
|
|
25
|
+
this.isUsingNativeCrypto = true;
|
|
26
|
+
console.log("[MindooDB] Using react-native-quick-crypto (native crypto)");
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
// Fall through to ExpoGoCryptoAdapter
|
|
31
|
+
console.warn("[MindooDB] Failed to initialize react-native-quick-crypto:", error);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Fallback to JS-only implementation
|
|
35
|
+
this.adapter = new ExpoGoCryptoAdapter_1.ExpoGoCryptoAdapter();
|
|
36
|
+
this.isUsingNativeCrypto = false;
|
|
37
|
+
console.warn("[MindooDB] react-native-quick-crypto not available. " +
|
|
38
|
+
"Falling back to JavaScript-only crypto (slower). " +
|
|
39
|
+
"For better performance, create a development build with react-native-quick-crypto.");
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get the SubtleCrypto interface
|
|
43
|
+
*/
|
|
44
|
+
getSubtle() {
|
|
45
|
+
return this.adapter.getSubtle();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get random values
|
|
49
|
+
*/
|
|
50
|
+
getRandomValues(array) {
|
|
51
|
+
return this.adapter.getRandomValues(array);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.ReactNativeCryptoAdapter = ReactNativeCryptoAdapter;
|
|
55
|
+
/**
|
|
56
|
+
* Factory function to create the ReactNativeCryptoAdapter
|
|
57
|
+
*/
|
|
58
|
+
function createCryptoAdapter() {
|
|
59
|
+
return new ReactNativeCryptoAdapter();
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=ReactNativeCryptoAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReactNativeCryptoAdapter.js","sourceRoot":"","sources":["../../../src/reactnative/crypto/ReactNativeCryptoAdapter.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA+DH,kDAEC;AA9DD,+DAA4D;AAC5D,6DAAkF;AAElF;;;GAGG;AACH,MAAa,wBAAwB;IASnC;QACE,wEAAwE;QACxE,IAAI,IAAA,2CAAsB,GAAE,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,8DAA8D;gBAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;gBACzD,IAAI,CAAC,OAAO,GAAG,IAAI,uCAAkB,CAAC,WAAW,CAAC,CAAC;gBACnD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;gBAC1E,OAAO;YACT,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,sCAAsC;gBACtC,OAAO,CAAC,IAAI,CAAC,4DAA4D,EAAE,KAAK,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,yCAAmB,EAAE,CAAC;QACzC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,OAAO,CAAC,IAAI,CACV,sDAAsD;YACtD,mDAAmD;YACnD,oFAAoF,CACrF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,KAAiB;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF;AAhDD,4DAgDC;AAED;;GAEG;AACH,SAAgB,mBAAmB;IACjC,OAAO,IAAI,wBAAwB,EAAE,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SHA-256 Digest Adapter
|
|
3
|
+
* Implements SHA-256 hashing using node-forge
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Compute SHA-256 digest of data
|
|
7
|
+
*/
|
|
8
|
+
export declare function sha256Digest(data: ArrayBuffer | Uint8Array): Promise<ArrayBuffer>;
|
|
9
|
+
//# sourceMappingURL=SHA256Adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SHA256Adapter.d.ts","sourceRoot":"","sources":["../../../src/reactnative/crypto/SHA256Adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAevF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SHA-256 Digest Adapter
|
|
4
|
+
* Implements SHA-256 hashing using node-forge
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.sha256Digest = sha256Digest;
|
|
11
|
+
const node_forge_1 = __importDefault(require("node-forge"));
|
|
12
|
+
/**
|
|
13
|
+
* Compute SHA-256 digest of data
|
|
14
|
+
*/
|
|
15
|
+
async function sha256Digest(data) {
|
|
16
|
+
const bytes = data instanceof Uint8Array ? data : new Uint8Array(data);
|
|
17
|
+
const md = node_forge_1.default.md.sha256.create();
|
|
18
|
+
const dataBuf = node_forge_1.default.util.createBuffer(bytes.buffer);
|
|
19
|
+
md.update(dataBuf.getBytes());
|
|
20
|
+
const hash = md.digest();
|
|
21
|
+
// Convert hash to Uint8Array
|
|
22
|
+
const hashHex = hash.toHex();
|
|
23
|
+
const hashBytes = new Uint8Array(hashHex.length / 2);
|
|
24
|
+
for (let i = 0; i < hashBytes.length; i++) {
|
|
25
|
+
hashBytes[i] = parseInt(hashHex.substr(i * 2, 2), 16);
|
|
26
|
+
}
|
|
27
|
+
return hashBytes.buffer;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=SHA256Adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SHA256Adapter.js","sourceRoot":"","sources":["../../../src/reactnative/crypto/SHA256Adapter.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAOH,oCAeC;AApBD,4DAA+B;AAE/B;;GAEG;AACI,KAAK,UAAU,YAAY,CAAC,IAA8B;IAC/D,MAAM,KAAK,GAAG,IAAI,YAAY,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,EAAE,GAAG,oBAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,oBAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAqB,CAAC,CAAC;IACrE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;IAEzB,6BAA6B;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,SAAS,CAAC,MAAM,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SubtleCrypto Polyfill
|
|
3
|
+
* Implements the Web Crypto API SubtleCrypto interface using JavaScript-only libraries
|
|
4
|
+
* Only implements methods actually used by MindooDB
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* SubtleCrypto polyfill implementation
|
|
8
|
+
* Note: We use 'as any' for type compatibility since we only implement a subset of methods
|
|
9
|
+
*/
|
|
10
|
+
export declare class SubtleCryptoPolyfill {
|
|
11
|
+
/**
|
|
12
|
+
* Generate a cryptographic key
|
|
13
|
+
*/
|
|
14
|
+
generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams | AesKeyGenParams | {
|
|
15
|
+
name: "Ed25519";
|
|
16
|
+
} | "Ed25519", extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair | CryptoKey>;
|
|
17
|
+
/**
|
|
18
|
+
* Import a key
|
|
19
|
+
*/
|
|
20
|
+
importKey(format: KeyFormat, keyData: BufferSource | JsonWebKey, algorithm: RsaHashedImportParams | EcKeyImportParams | AesKeyAlgorithm | HmacImportParams | {
|
|
21
|
+
name: "Ed25519";
|
|
22
|
+
}, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
|
|
23
|
+
/**
|
|
24
|
+
* Export a key
|
|
25
|
+
*/
|
|
26
|
+
exportKey(format: KeyFormat, key: CryptoKey): Promise<ArrayBuffer | JsonWebKey>;
|
|
27
|
+
/**
|
|
28
|
+
* Sign data
|
|
29
|
+
*/
|
|
30
|
+
sign(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams | {
|
|
31
|
+
name: "Ed25519";
|
|
32
|
+
} | {
|
|
33
|
+
name: "HMAC";
|
|
34
|
+
}, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;
|
|
35
|
+
/**
|
|
36
|
+
* Verify a signature
|
|
37
|
+
*/
|
|
38
|
+
verify(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams | {
|
|
39
|
+
name: "Ed25519";
|
|
40
|
+
} | {
|
|
41
|
+
name: "HMAC";
|
|
42
|
+
}, key: CryptoKey, signature: BufferSource, data: BufferSource): Promise<boolean>;
|
|
43
|
+
/**
|
|
44
|
+
* Encrypt data
|
|
45
|
+
*/
|
|
46
|
+
encrypt(algorithm: RsaOaepParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;
|
|
47
|
+
/**
|
|
48
|
+
* Decrypt data
|
|
49
|
+
*/
|
|
50
|
+
decrypt(algorithm: RsaOaepParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;
|
|
51
|
+
/**
|
|
52
|
+
* Derive a key using PBKDF2
|
|
53
|
+
*/
|
|
54
|
+
deriveKey(algorithm: Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AesDerivedKeyParams, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
|
|
55
|
+
/**
|
|
56
|
+
* Compute digest
|
|
57
|
+
*/
|
|
58
|
+
digest(algorithm: AlgorithmIdentifier, data: BufferSource): Promise<ArrayBuffer>;
|
|
59
|
+
deriveBits(algorithm: AlgorithmIdentifier, baseKey: CryptoKey, length: number): Promise<ArrayBuffer>;
|
|
60
|
+
wrapKey(format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier): Promise<ArrayBuffer>;
|
|
61
|
+
unwrapKey(format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier, unwrappedKeyAlgorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=SubtleCryptoPolyfill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubtleCryptoPolyfill.d.ts","sourceRoot":"","sources":["../../../src/reactnative/crypto/SubtleCryptoPolyfill.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmBH;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B;;OAEG;IACG,WAAW,CACf,SAAS,EAAE,qBAAqB,GAAG,cAAc,GAAG,eAAe,GAAG;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,GAAG,SAAS,EACrG,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IA2CrC;;OAEG;IACG,SAAS,CACb,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,YAAY,GAAG,UAAU,EAClC,SAAS,EACL,qBAAqB,GACrB,iBAAiB,GACjB,eAAe,GACf,gBAAgB,GAChB;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,EACvB,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,SAAS,CAAC;IA6FrB;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;IAwBrF;;OAEG;IACG,IAAI,CACR,SAAS,EAAE,mBAAmB,GAAG,YAAY,GAAG,WAAW,GAAG;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EACpG,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,YAAY,GACnB,OAAO,CAAC,WAAW,CAAC;IAiBrB;;OAEG;IACG,MAAM,CACV,SAAS,EAAE,mBAAmB,GAAG,YAAY,GAAG,WAAW,GAAG;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EACpG,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,YAAY,EACvB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,OAAO,CAAC;IAkBnB;;OAEG;IACG,OAAO,CACX,SAAS,EAAE,aAAa,GAAG,YAAY,EACvC,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,WAAW,CAAC;IAqBvB;;OAEG;IACG,OAAO,CACX,SAAS,EAAE,aAAa,GAAG,YAAY,EACvC,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,WAAW,CAAC;IAqBvB;;OAEG;IACG,SAAS,CACb,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,SAAS,EAClB,cAAc,EAAE,mBAAmB,EACnC,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,SAAS,CAAC;IAyBrB;;OAEG;IACG,MAAM,CAAC,SAAS,EAAE,mBAAmB,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAYhF,UAAU,CACd,SAAS,EAAE,mBAAmB,EAC9B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC;IAIjB,OAAO,CACX,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,WAAW,CAAC;IAIjB,SAAS,CACb,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,YAAY,EACxB,aAAa,EAAE,SAAS,EACxB,eAAe,EAAE,mBAAmB,EACpC,qBAAqB,EAAE,mBAAmB,EAC1C,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,SAAS,CAAC;CAGtB"}
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SubtleCrypto Polyfill
|
|
4
|
+
* Implements the Web Crypto API SubtleCrypto interface using JavaScript-only libraries
|
|
5
|
+
* Only implements methods actually used by MindooDB
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.SubtleCryptoPolyfill = void 0;
|
|
42
|
+
const ed25519 = __importStar(require("./Ed25519Adapter"));
|
|
43
|
+
const rsa = __importStar(require("./RSAAdapter"));
|
|
44
|
+
const aes = __importStar(require("./AESAdapter"));
|
|
45
|
+
const pbkdf2 = __importStar(require("./PBKDF2Adapter"));
|
|
46
|
+
const hmac = __importStar(require("./HMACAdapter"));
|
|
47
|
+
const sha256 = __importStar(require("./SHA256Adapter"));
|
|
48
|
+
/**
|
|
49
|
+
* NotSupportedError for unimplemented methods
|
|
50
|
+
*/
|
|
51
|
+
class NotSupportedError extends Error {
|
|
52
|
+
constructor(message) {
|
|
53
|
+
super(message);
|
|
54
|
+
this.name = "NotSupportedError";
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* SubtleCrypto polyfill implementation
|
|
59
|
+
* Note: We use 'as any' for type compatibility since we only implement a subset of methods
|
|
60
|
+
*/
|
|
61
|
+
class SubtleCryptoPolyfill {
|
|
62
|
+
/**
|
|
63
|
+
* Generate a cryptographic key
|
|
64
|
+
*/
|
|
65
|
+
async generateKey(algorithm, extractable, keyUsages) {
|
|
66
|
+
const alg = typeof algorithm === "string" ? { name: algorithm } : algorithm;
|
|
67
|
+
if (alg.name === "Ed25519") {
|
|
68
|
+
return ed25519.ed25519GenerateKey();
|
|
69
|
+
}
|
|
70
|
+
else if (alg.name === "RSA-OAEP") {
|
|
71
|
+
const params = alg;
|
|
72
|
+
return rsa.rsaGenerateKey({
|
|
73
|
+
name: "RSA-OAEP",
|
|
74
|
+
modulusLength: params.modulusLength,
|
|
75
|
+
publicExponent: new Uint8Array(params.publicExponent),
|
|
76
|
+
hash: params.hash,
|
|
77
|
+
}, extractable, keyUsages);
|
|
78
|
+
}
|
|
79
|
+
else if (alg.name === "AES-GCM") {
|
|
80
|
+
const params = alg;
|
|
81
|
+
// Generate random key material
|
|
82
|
+
const keyLength = params.length / 8; // Convert bits to bytes
|
|
83
|
+
const keyMaterial = new Uint8Array(keyLength);
|
|
84
|
+
// Use crypto.getRandomValues if available, otherwise throw
|
|
85
|
+
if (typeof crypto !== "undefined" && crypto.getRandomValues) {
|
|
86
|
+
crypto.getRandomValues(keyMaterial);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
throw new Error("getRandomValues not available");
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
type: "secret",
|
|
93
|
+
extractable,
|
|
94
|
+
algorithm: {
|
|
95
|
+
name: "AES-GCM",
|
|
96
|
+
length: params.length,
|
|
97
|
+
},
|
|
98
|
+
usages: keyUsages,
|
|
99
|
+
_rawKey: keyMaterial.buffer,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
throw new NotSupportedError(`Algorithm ${alg.name} is not supported`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Import a key
|
|
108
|
+
*/
|
|
109
|
+
async importKey(format, keyData, algorithm, extractable, keyUsages) {
|
|
110
|
+
if (format === "jwk") {
|
|
111
|
+
throw new NotSupportedError("JWK format is not supported");
|
|
112
|
+
}
|
|
113
|
+
let keyBuffer;
|
|
114
|
+
if (keyData instanceof ArrayBuffer) {
|
|
115
|
+
keyBuffer = keyData;
|
|
116
|
+
}
|
|
117
|
+
else if (typeof SharedArrayBuffer !== 'undefined' && keyData instanceof SharedArrayBuffer) {
|
|
118
|
+
// Convert SharedArrayBuffer to ArrayBuffer by copying
|
|
119
|
+
// Note: SharedArrayBuffer may not exist in React Native/Expo Go environments
|
|
120
|
+
const view = new Uint8Array(keyData);
|
|
121
|
+
const copy = new Uint8Array(view.length);
|
|
122
|
+
copy.set(view);
|
|
123
|
+
keyBuffer = copy.buffer;
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
// ArrayBufferView - copy to ensure we have an ArrayBuffer
|
|
127
|
+
const view = keyData;
|
|
128
|
+
const bytes = new Uint8Array(view.buffer, view.byteOffset, view.byteLength);
|
|
129
|
+
const copy = new Uint8Array(bytes.length);
|
|
130
|
+
copy.set(bytes);
|
|
131
|
+
keyBuffer = copy.buffer;
|
|
132
|
+
}
|
|
133
|
+
const alg = typeof algorithm === "string" ? { name: algorithm } : algorithm;
|
|
134
|
+
if (alg.name === "Ed25519") {
|
|
135
|
+
return ed25519.ed25519ImportKey(format, keyBuffer, alg, extractable, keyUsages);
|
|
136
|
+
}
|
|
137
|
+
else if (alg.name === "RSA-OAEP") {
|
|
138
|
+
const params = alg;
|
|
139
|
+
return rsa.rsaImportKey(format, keyBuffer, {
|
|
140
|
+
name: "RSA-OAEP",
|
|
141
|
+
hash: params.hash,
|
|
142
|
+
}, extractable, keyUsages);
|
|
143
|
+
}
|
|
144
|
+
else if (alg.name === "AES-GCM") {
|
|
145
|
+
if (format !== "raw") {
|
|
146
|
+
throw new Error("AES-GCM keys can only be imported in 'raw' format");
|
|
147
|
+
}
|
|
148
|
+
const params = alg;
|
|
149
|
+
const keyBytes = new Uint8Array(keyBuffer);
|
|
150
|
+
return {
|
|
151
|
+
type: "secret",
|
|
152
|
+
extractable,
|
|
153
|
+
algorithm: {
|
|
154
|
+
name: "AES-GCM",
|
|
155
|
+
length: params.length || keyBytes.length * 8,
|
|
156
|
+
},
|
|
157
|
+
usages: keyUsages,
|
|
158
|
+
_rawKey: keyBuffer,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
else if (alg.name === "HMAC") {
|
|
162
|
+
if (format !== "raw") {
|
|
163
|
+
throw new Error("HMAC keys can only be imported in 'raw' format");
|
|
164
|
+
}
|
|
165
|
+
const params = alg;
|
|
166
|
+
return {
|
|
167
|
+
type: "secret",
|
|
168
|
+
extractable,
|
|
169
|
+
algorithm: {
|
|
170
|
+
name: "HMAC",
|
|
171
|
+
hash: params.hash,
|
|
172
|
+
length: new Uint8Array(keyBuffer).length * 8,
|
|
173
|
+
},
|
|
174
|
+
usages: keyUsages,
|
|
175
|
+
_rawKey: keyBuffer,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
else if (alg.name === "PBKDF2") {
|
|
179
|
+
// PBKDF2 key import - treat the keyData as raw password material
|
|
180
|
+
// This is used for PBKDF2 key derivation
|
|
181
|
+
return {
|
|
182
|
+
type: "secret",
|
|
183
|
+
extractable,
|
|
184
|
+
algorithm: alg,
|
|
185
|
+
usages: keyUsages,
|
|
186
|
+
_rawKey: keyBuffer,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
throw new NotSupportedError(`Algorithm ${alg.name} is not supported`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Export a key
|
|
195
|
+
*/
|
|
196
|
+
async exportKey(format, key) {
|
|
197
|
+
if (format === "jwk") {
|
|
198
|
+
throw new NotSupportedError("JWK format is not supported");
|
|
199
|
+
}
|
|
200
|
+
if (format === "raw") {
|
|
201
|
+
// For raw keys (AES, HMAC), export the raw key material
|
|
202
|
+
const rawKey = key._rawKey;
|
|
203
|
+
if (!rawKey) {
|
|
204
|
+
throw new Error("Key does not contain raw key material");
|
|
205
|
+
}
|
|
206
|
+
return rawKey instanceof ArrayBuffer ? rawKey : rawKey.buffer;
|
|
207
|
+
}
|
|
208
|
+
else if (format === "spki" || format === "pkcs8") {
|
|
209
|
+
if (key.algorithm.name === "Ed25519") {
|
|
210
|
+
return ed25519.ed25519ExportKey(format, key);
|
|
211
|
+
}
|
|
212
|
+
else if (key.algorithm.name === "RSA-OAEP") {
|
|
213
|
+
return rsa.rsaExportKey(format, key);
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
throw new Error(`Cannot export ${key.algorithm.name} key in ${format} format`);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
throw new NotSupportedError(`Export format ${format} is not supported`);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Sign data
|
|
225
|
+
*/
|
|
226
|
+
async sign(algorithm, key, data) {
|
|
227
|
+
const dataBuffer = data instanceof ArrayBuffer ? data : data.buffer;
|
|
228
|
+
const alg = typeof algorithm === "string" ? { name: algorithm } : algorithm;
|
|
229
|
+
if (alg.name === "Ed25519") {
|
|
230
|
+
return ed25519.ed25519Sign(alg, key, dataBuffer);
|
|
231
|
+
}
|
|
232
|
+
else if (algorithm === "HMAC" || alg.name === "HMAC") {
|
|
233
|
+
const rawKey = key._rawKey;
|
|
234
|
+
if (!rawKey) {
|
|
235
|
+
throw new Error("Key does not contain raw key material");
|
|
236
|
+
}
|
|
237
|
+
return hmac.hmacSign(rawKey, dataBuffer);
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
throw new NotSupportedError(`Signing algorithm ${alg.name || algorithm} is not supported`);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Verify a signature
|
|
245
|
+
*/
|
|
246
|
+
async verify(algorithm, key, signature, data) {
|
|
247
|
+
const sigBuffer = signature instanceof ArrayBuffer ? signature : signature.buffer;
|
|
248
|
+
const dataBuffer = data instanceof ArrayBuffer ? data : data.buffer;
|
|
249
|
+
const alg = typeof algorithm === "string" ? { name: algorithm } : algorithm;
|
|
250
|
+
if (alg.name === "Ed25519") {
|
|
251
|
+
return ed25519.ed25519Verify(alg, key, sigBuffer, dataBuffer);
|
|
252
|
+
}
|
|
253
|
+
else if (algorithm === "HMAC" || alg.name === "HMAC") {
|
|
254
|
+
const rawKey = key._rawKey;
|
|
255
|
+
if (!rawKey) {
|
|
256
|
+
throw new Error("Key does not contain raw key material");
|
|
257
|
+
}
|
|
258
|
+
return hmac.hmacVerify(rawKey, sigBuffer, dataBuffer);
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
throw new NotSupportedError(`Verification algorithm ${alg.name || algorithm} is not supported`);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Encrypt data
|
|
266
|
+
*/
|
|
267
|
+
async encrypt(algorithm, key, data) {
|
|
268
|
+
const dataBuffer = data instanceof ArrayBuffer ? data : data.buffer;
|
|
269
|
+
if (algorithm.name === "RSA-OAEP") {
|
|
270
|
+
return rsa.rsaEncrypt(algorithm, key, dataBuffer);
|
|
271
|
+
}
|
|
272
|
+
else if (algorithm.name === "AES-GCM") {
|
|
273
|
+
const params = algorithm;
|
|
274
|
+
return aes.aesGcmEncrypt({
|
|
275
|
+
name: "AES-GCM",
|
|
276
|
+
iv: params.iv,
|
|
277
|
+
tagLength: params.tagLength,
|
|
278
|
+
}, key, dataBuffer);
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
throw new NotSupportedError(`Encryption algorithm ${algorithm.name} is not supported`);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Decrypt data
|
|
286
|
+
*/
|
|
287
|
+
async decrypt(algorithm, key, data) {
|
|
288
|
+
const dataBuffer = data instanceof ArrayBuffer ? data : data.buffer;
|
|
289
|
+
if (algorithm.name === "RSA-OAEP") {
|
|
290
|
+
return rsa.rsaDecrypt(algorithm, key, dataBuffer);
|
|
291
|
+
}
|
|
292
|
+
else if (algorithm.name === "AES-GCM") {
|
|
293
|
+
const params = algorithm;
|
|
294
|
+
return aes.aesGcmDecrypt({
|
|
295
|
+
name: "AES-GCM",
|
|
296
|
+
iv: params.iv,
|
|
297
|
+
tagLength: params.tagLength,
|
|
298
|
+
}, key, dataBuffer);
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
throw new NotSupportedError(`Decryption algorithm ${algorithm.name} is not supported`);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Derive a key using PBKDF2
|
|
306
|
+
*/
|
|
307
|
+
async deriveKey(algorithm, baseKey, derivedKeyType, extractable, keyUsages) {
|
|
308
|
+
if (algorithm.name !== "PBKDF2") {
|
|
309
|
+
throw new NotSupportedError(`Key derivation algorithm ${algorithm.name} is not supported`);
|
|
310
|
+
}
|
|
311
|
+
const rawKey = baseKey._rawKey;
|
|
312
|
+
if (!rawKey) {
|
|
313
|
+
throw new Error("Base key does not contain raw key material");
|
|
314
|
+
}
|
|
315
|
+
return pbkdf2.pbkdf2DeriveKey({
|
|
316
|
+
name: "PBKDF2",
|
|
317
|
+
salt: algorithm.salt,
|
|
318
|
+
iterations: algorithm.iterations,
|
|
319
|
+
hash: algorithm.hash,
|
|
320
|
+
}, rawKey, {
|
|
321
|
+
name: "AES-GCM",
|
|
322
|
+
length: derivedKeyType.length,
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Compute digest
|
|
327
|
+
*/
|
|
328
|
+
async digest(algorithm, data) {
|
|
329
|
+
const dataBuffer = data instanceof ArrayBuffer ? data : data.buffer;
|
|
330
|
+
const alg = typeof algorithm === "string" ? algorithm : algorithm.name;
|
|
331
|
+
if (alg === "SHA-256") {
|
|
332
|
+
return sha256.sha256Digest(dataBuffer);
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
throw new NotSupportedError(`Digest algorithm ${alg} is not supported`);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
// Unimplemented methods - throw NotSupportedError
|
|
339
|
+
async deriveBits(algorithm, baseKey, length) {
|
|
340
|
+
throw new NotSupportedError("deriveBits is not implemented");
|
|
341
|
+
}
|
|
342
|
+
async wrapKey(format, key, wrappingKey, wrapAlgorithm) {
|
|
343
|
+
throw new NotSupportedError("wrapKey is not implemented");
|
|
344
|
+
}
|
|
345
|
+
async unwrapKey(format, wrappedKey, unwrappingKey, unwrapAlgorithm, unwrappedKeyAlgorithm, extractable, keyUsages) {
|
|
346
|
+
throw new NotSupportedError("unwrapKey is not implemented");
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
exports.SubtleCryptoPolyfill = SubtleCryptoPolyfill;
|
|
350
|
+
//# sourceMappingURL=SubtleCryptoPolyfill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubtleCryptoPolyfill.js","sourceRoot":"","sources":["../../../src/reactnative/crypto/SubtleCryptoPolyfill.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,0DAA4C;AAC5C,kDAAoC;AACpC,kDAAoC;AACpC,wDAA0C;AAC1C,oDAAsC;AACtC,wDAA0C;AAE1C;;GAEG;AACH,MAAM,iBAAkB,SAAQ,KAAK;IACnC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED;;;GAGG;AACH,MAAa,oBAAoB;IAC/B;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,SAAqG,EACrG,WAAoB,EACpB,SAAqB;QAErB,MAAM,GAAG,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACtC,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,GAA4B,CAAC;YAC5C,OAAO,GAAG,CAAC,cAAc,CACvB;gBACE,IAAI,EAAE,UAAU;gBAChB,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,cAAc,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC;gBACrD,IAAI,EAAE,MAAM,CAAC,IAAiB;aAC/B,EACD,WAAW,EACX,SAAS,CACV,CAAC;QACJ,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,GAAsB,CAAC;YACtC,+BAA+B;YAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,wBAAwB;YAC7D,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;YAC9C,2DAA2D;YAC3D,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;gBAC5D,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW;gBACX,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB;gBACD,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,WAAW,CAAC,MAAM;aACrB,CAAC;QACX,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,iBAAiB,CAAC,aAAa,GAAG,CAAC,IAAI,mBAAmB,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,MAAiB,EACjB,OAAkC,EAClC,SAKuB,EACvB,WAAoB,EACpB,SAAqB;QAErB,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,MAAM,IAAI,iBAAiB,CAAC,6BAA6B,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,SAAsB,CAAC;QAC3B,IAAI,OAAO,YAAY,WAAW,EAAE,CAAC;YACnC,SAAS,GAAG,OAAO,CAAC;QACtB,CAAC;aAAM,IAAI,OAAO,iBAAiB,KAAK,WAAW,IAAI,OAAO,YAAY,iBAAiB,EAAE,CAAC;YAC5F,sDAAsD;YACtD,6EAA6E;YAC7E,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,0DAA0D;YAC1D,MAAM,IAAI,GAAG,OAA0B,CAAC;YACxC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5E,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChB,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,gBAAgB,CAC7B,MAA0B,EAC1B,SAAS,EACT,GAA0B,EAC1B,WAAW,EACX,SAAS,CACV,CAAC;QACJ,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,GAA4B,CAAC;YAC5C,OAAO,GAAG,CAAC,YAAY,CACrB,MAA0B,EAC1B,SAAS,EACT;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,MAAM,CAAC,IAAiB;aAC/B,EACD,WAAW,EACX,SAAS,CACV,CAAC;QACJ,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACvE,CAAC;YACD,MAAM,MAAM,GAAG,GAAsB,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;YAE3C,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW;gBACX,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;iBAC7C;gBACD,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,SAAS;aACZ,CAAC;QACX,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/B,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,CAAC;YACD,MAAM,MAAM,GAAG,GAAuB,CAAC;YAEvC,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW;gBACX,SAAS,EAAE;oBACT,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,MAAM,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;iBAC7C;gBACD,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,SAAS;aACZ,CAAC;QACX,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,iEAAiE;YACjE,yCAAyC;YACzC,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW;gBACX,SAAS,EAAE,GAAU;gBACrB,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,SAAS;aACZ,CAAC;QACX,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,iBAAiB,CAAC,aAAa,GAAG,CAAC,IAAI,mBAAmB,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,MAAiB,EAAE,GAAc;QAC/C,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,MAAM,IAAI,iBAAiB,CAAC,6BAA6B,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,wDAAwD;YACxD,MAAM,MAAM,GAAI,GAAW,CAAC,OAAO,CAAC;YACpC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,MAAM,YAAY,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAChE,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACnD,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrC,OAAO,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC7C,OAAO,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,SAAS,CAAC,IAAI,WAAW,MAAM,SAAS,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,iBAAiB,CAAC,iBAAiB,MAAM,mBAAmB,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,SAAoG,EACpG,GAAc,EACd,IAAkB;QAElB,MAAM,UAAU,GAAG,IAAI,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAEpE,MAAM,GAAG,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,WAAW,CAAC,GAA0B,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,SAAS,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACvD,MAAM,MAAM,GAAI,GAAW,CAAC,OAAO,CAAC;YACpC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,GAAG,CAAC,IAAI,IAAI,SAAS,mBAAmB,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,SAAoG,EACpG,GAAc,EACd,SAAuB,EACvB,IAAkB;QAElB,MAAM,SAAS,GAAG,SAAS,YAAY,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;QAClF,MAAM,UAAU,GAAG,IAAI,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAEpE,MAAM,GAAG,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,aAAa,CAAC,GAA0B,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACvF,CAAC;aAAM,IAAI,SAAS,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACvD,MAAM,MAAM,GAAI,GAAW,CAAC,OAAO,CAAC;YACpC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,iBAAiB,CAAC,0BAA0B,GAAG,CAAC,IAAI,IAAI,SAAS,mBAAmB,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,SAAuC,EACvC,GAAc,EACd,IAAkB;QAElB,MAAM,UAAU,GAAG,IAAI,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAEpE,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAClC,OAAO,GAAG,CAAC,UAAU,CAAC,SAA8B,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACzE,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,SAAyB,CAAC;YACzC,OAAO,GAAG,CAAC,aAAa,CACtB;gBACE,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,EACD,GAAG,EACH,UAAU,CACX,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,iBAAiB,CAAC,wBAAwB,SAAS,CAAC,IAAI,mBAAmB,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,SAAuC,EACvC,GAAc,EACd,IAAkB;QAElB,MAAM,UAAU,GAAG,IAAI,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAEpE,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAClC,OAAO,GAAG,CAAC,UAAU,CAAC,SAA8B,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACzE,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,SAAyB,CAAC;YACzC,OAAO,GAAG,CAAC,aAAa,CACtB;gBACE,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,EACD,GAAG,EACH,UAAU,CACX,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,iBAAiB,CAAC,wBAAwB,SAAS,CAAC,IAAI,mBAAmB,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,SAAuB,EACvB,OAAkB,EAClB,cAAmC,EACnC,WAAoB,EACpB,SAAqB;QAErB,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,iBAAiB,CAAC,4BAA4B,SAAS,CAAC,IAAI,mBAAmB,CAAC,CAAC;QAC7F,CAAC;QAED,MAAM,MAAM,GAAI,OAAe,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,MAAM,CAAC,eAAe,CAC3B;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,IAAI,EAAE,SAAS,CAAC,IAAiB;SAClC,EACD,MAAM,EACN;YACE,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,cAAc,CAAC,MAAM;SAC9B,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,SAA8B,EAAE,IAAkB;QAC7D,MAAM,UAAU,GAAG,IAAI,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAEpE,MAAM,GAAG,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QACvE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,iBAAiB,CAAC,oBAAoB,GAAG,mBAAmB,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,UAAU,CACd,SAA8B,EAC9B,OAAkB,EAClB,MAAc;QAEd,MAAM,IAAI,iBAAiB,CAAC,+BAA+B,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,OAAO,CACX,MAAiB,EACjB,GAAc,EACd,WAAsB,EACtB,aAAkC;QAElC,MAAM,IAAI,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAAiB,EACjB,UAAwB,EACxB,aAAwB,EACxB,eAAoC,EACpC,qBAA0C,EAC1C,WAAoB,EACpB,SAAqB;QAErB,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,CAAC,CAAC;IAC9D,CAAC;CACF;AAhXD,oDAgXC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from "../core/index";
|
|
2
|
+
export { BaseMindooDB } from "../core/BaseMindooDB";
|
|
3
|
+
export { BaseMindooTenant } from "../core/BaseMindooTenant";
|
|
4
|
+
export { BaseMindooTenantFactory } from "../core/BaseMindooTenantFactory";
|
|
5
|
+
export { ReactNativeCryptoAdapter, createCryptoAdapter } from "./crypto/ReactNativeCryptoAdapter";
|
|
6
|
+
export { ExpoGoCryptoAdapter } from "./crypto/ExpoGoCryptoAdapter";
|
|
7
|
+
export { QuickCryptoAdapter, isQuickCryptoAvailable } from "./crypto/QuickCryptoAdapter";
|
|
8
|
+
export { MMKVLocalCacheStore, type MMKVInterface, type AsyncStorageInterface } from "./cache/MMKVLocalCacheStore";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reactnative/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAG9B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAG1E,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGzF,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,KAAK,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// React Native-specific exports
|
|
3
|
+
// Re-exports everything from core plus React Native-specific implementations
|
|
4
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
|
+
if (k2 === undefined) k2 = k;
|
|
6
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(o, k2, desc);
|
|
11
|
+
}) : (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
o[k2] = m[k];
|
|
14
|
+
}));
|
|
15
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
16
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.MMKVLocalCacheStore = exports.isQuickCryptoAvailable = exports.QuickCryptoAdapter = exports.ExpoGoCryptoAdapter = exports.createCryptoAdapter = exports.ReactNativeCryptoAdapter = exports.BaseMindooTenantFactory = exports.BaseMindooTenant = exports.BaseMindooDB = void 0;
|
|
20
|
+
// Re-export all core exports
|
|
21
|
+
__exportStar(require("../core/index"), exports);
|
|
22
|
+
// Re-export Base* classes that aren't in core/index
|
|
23
|
+
var BaseMindooDB_1 = require("../core/BaseMindooDB");
|
|
24
|
+
Object.defineProperty(exports, "BaseMindooDB", { enumerable: true, get: function () { return BaseMindooDB_1.BaseMindooDB; } });
|
|
25
|
+
var BaseMindooTenant_1 = require("../core/BaseMindooTenant");
|
|
26
|
+
Object.defineProperty(exports, "BaseMindooTenant", { enumerable: true, get: function () { return BaseMindooTenant_1.BaseMindooTenant; } });
|
|
27
|
+
var BaseMindooTenantFactory_1 = require("../core/BaseMindooTenantFactory");
|
|
28
|
+
Object.defineProperty(exports, "BaseMindooTenantFactory", { enumerable: true, get: function () { return BaseMindooTenantFactory_1.BaseMindooTenantFactory; } });
|
|
29
|
+
// React Native-specific crypto adapters
|
|
30
|
+
var ReactNativeCryptoAdapter_1 = require("./crypto/ReactNativeCryptoAdapter");
|
|
31
|
+
Object.defineProperty(exports, "ReactNativeCryptoAdapter", { enumerable: true, get: function () { return ReactNativeCryptoAdapter_1.ReactNativeCryptoAdapter; } });
|
|
32
|
+
Object.defineProperty(exports, "createCryptoAdapter", { enumerable: true, get: function () { return ReactNativeCryptoAdapter_1.createCryptoAdapter; } });
|
|
33
|
+
var ExpoGoCryptoAdapter_1 = require("./crypto/ExpoGoCryptoAdapter");
|
|
34
|
+
Object.defineProperty(exports, "ExpoGoCryptoAdapter", { enumerable: true, get: function () { return ExpoGoCryptoAdapter_1.ExpoGoCryptoAdapter; } });
|
|
35
|
+
var QuickCryptoAdapter_1 = require("./crypto/QuickCryptoAdapter");
|
|
36
|
+
Object.defineProperty(exports, "QuickCryptoAdapter", { enumerable: true, get: function () { return QuickCryptoAdapter_1.QuickCryptoAdapter; } });
|
|
37
|
+
Object.defineProperty(exports, "isQuickCryptoAvailable", { enumerable: true, get: function () { return QuickCryptoAdapter_1.isQuickCryptoAvailable; } });
|
|
38
|
+
// React Native-specific cache store
|
|
39
|
+
var MMKVLocalCacheStore_1 = require("./cache/MMKVLocalCacheStore");
|
|
40
|
+
Object.defineProperty(exports, "MMKVLocalCacheStore", { enumerable: true, get: function () { return MMKVLocalCacheStore_1.MMKVLocalCacheStore; } });
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reactnative/index.ts"],"names":[],"mappings":";AAAA,gCAAgC;AAChC,6EAA6E;;;;;;;;;;;;;;;;;AAE7E,6BAA6B;AAC7B,gDAA8B;AAE9B,oDAAoD;AACpD,qDAAoD;AAA3C,4GAAA,YAAY,OAAA;AACrB,6DAA4D;AAAnD,oHAAA,gBAAgB,OAAA;AACzB,2EAA0E;AAAjE,kIAAA,uBAAuB,OAAA;AAEhC,wCAAwC;AACxC,8EAAkG;AAAzF,oIAAA,wBAAwB,OAAA;AAAE,+HAAA,mBAAmB,OAAA;AACtD,oEAAmE;AAA1D,0HAAA,mBAAmB,OAAA;AAC5B,kEAAyF;AAAhF,wHAAA,kBAAkB,OAAA;AAAE,4HAAA,sBAAsB,OAAA;AAEnD,oCAAoC;AACpC,mEAAkH;AAAzG,0HAAA,mBAAmB,OAAA"}
|