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,41 @@
|
|
|
1
|
+
import { LocalCacheStore } from "./LocalCacheStore";
|
|
2
|
+
import { CryptoAdapter } from "../crypto/CryptoAdapter";
|
|
3
|
+
import { Logger } from "../logging";
|
|
4
|
+
/**
|
|
5
|
+
* Transparent encryption wrapper around any {@link LocalCacheStore}.
|
|
6
|
+
*
|
|
7
|
+
* - Encrypts values on `put()`, decrypts on `get()`
|
|
8
|
+
* - Keys (type + id) are passed through unmodified
|
|
9
|
+
* - Uses AES-256-GCM with a key derived from the user's password via PBKDF2
|
|
10
|
+
* - If decryption fails (password changed, corruption) returns `null`
|
|
11
|
+
*/
|
|
12
|
+
export declare class EncryptedLocalCacheStore implements LocalCacheStore {
|
|
13
|
+
private inner;
|
|
14
|
+
private cryptoAdapter;
|
|
15
|
+
private derivedKey;
|
|
16
|
+
private keyPromise;
|
|
17
|
+
private logger;
|
|
18
|
+
/**
|
|
19
|
+
* @param inner The underlying (plaintext) cache store
|
|
20
|
+
* @param userPassword The user's password used to derive the encryption key
|
|
21
|
+
* @param cryptoAdapter Platform-agnostic crypto interface
|
|
22
|
+
* @param logger Optional logger
|
|
23
|
+
*/
|
|
24
|
+
constructor(inner: LocalCacheStore, userPassword: string, cryptoAdapter: CryptoAdapter, logger?: Logger);
|
|
25
|
+
private deriveKey;
|
|
26
|
+
private getKey;
|
|
27
|
+
/**
|
|
28
|
+
* Ensure the Uint8Array owns its entire backing ArrayBuffer (byteOffset=0,
|
|
29
|
+
* byteLength=buffer.byteLength). Some React Native crypto polyfills
|
|
30
|
+
* access `.buffer` directly, which would read wrong data for sub-views.
|
|
31
|
+
*/
|
|
32
|
+
private static ensureOwnedBuffer;
|
|
33
|
+
private encrypt;
|
|
34
|
+
private decrypt;
|
|
35
|
+
get(type: string, id: string): Promise<Uint8Array | null>;
|
|
36
|
+
put(type: string, id: string, value: Uint8Array): Promise<void>;
|
|
37
|
+
delete(type: string, id: string): Promise<void>;
|
|
38
|
+
list(type: string): Promise<string[]>;
|
|
39
|
+
clear(): Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=EncryptedLocalCacheStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EncryptedLocalCacheStore.d.ts","sourceRoot":"","sources":["../../../src/core/cache/EncryptedLocalCacheStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,MAAM,EAAoC,MAAM,YAAY,CAAC;AAEtE;;;;;;;GAOG;AACH,qBAAa,wBAAyB,YAAW,eAAe;IAC9D,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,MAAM,CAAS;IAEvB;;;;;OAKG;gBAED,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,aAAa,EAC5B,MAAM,CAAC,EAAE,MAAM;YAQH,SAAS;YAqCT,MAAM;IAKpB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;YASlB,OAAO;YAqBP,OAAO;IA6Bf,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAMzD,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EncryptedLocalCacheStore = void 0;
|
|
4
|
+
const pbkdf2Iterations_1 = require("../crypto/pbkdf2Iterations");
|
|
5
|
+
const logging_1 = require("../logging");
|
|
6
|
+
/**
|
|
7
|
+
* Transparent encryption wrapper around any {@link LocalCacheStore}.
|
|
8
|
+
*
|
|
9
|
+
* - Encrypts values on `put()`, decrypts on `get()`
|
|
10
|
+
* - Keys (type + id) are passed through unmodified
|
|
11
|
+
* - Uses AES-256-GCM with a key derived from the user's password via PBKDF2
|
|
12
|
+
* - If decryption fails (password changed, corruption) returns `null`
|
|
13
|
+
*/
|
|
14
|
+
class EncryptedLocalCacheStore {
|
|
15
|
+
/**
|
|
16
|
+
* @param inner The underlying (plaintext) cache store
|
|
17
|
+
* @param userPassword The user's password used to derive the encryption key
|
|
18
|
+
* @param cryptoAdapter Platform-agnostic crypto interface
|
|
19
|
+
* @param logger Optional logger
|
|
20
|
+
*/
|
|
21
|
+
constructor(inner, userPassword, cryptoAdapter, logger) {
|
|
22
|
+
this.derivedKey = null;
|
|
23
|
+
this.keyPromise = null;
|
|
24
|
+
this.inner = inner;
|
|
25
|
+
this.cryptoAdapter = cryptoAdapter;
|
|
26
|
+
this.logger = logger || new logging_1.MindooLogger((0, logging_1.getDefaultLogLevel)(), "EncryptedLocalCacheStore", true);
|
|
27
|
+
this.keyPromise = this.deriveKey(userPassword);
|
|
28
|
+
}
|
|
29
|
+
async deriveKey(password) {
|
|
30
|
+
const subtle = this.cryptoAdapter.getSubtle();
|
|
31
|
+
const saltString = "mindoodb-cache-encryption:v1";
|
|
32
|
+
const salt = new TextEncoder().encode(saltString);
|
|
33
|
+
const passwordInput = new TextEncoder().encode(password);
|
|
34
|
+
const baseKey = await subtle.importKey("raw", passwordInput.buffer, "PBKDF2", false, ["deriveKey"]);
|
|
35
|
+
const iterations = (0, pbkdf2Iterations_1.resolvePbkdf2Iterations)(pbkdf2Iterations_1.DEFAULT_PBKDF2_ITERATIONS);
|
|
36
|
+
if (iterations !== pbkdf2Iterations_1.DEFAULT_PBKDF2_ITERATIONS) {
|
|
37
|
+
this.logger.warn(`Using overridden PBKDF2 iterations for cache key derivation: ${iterations}`);
|
|
38
|
+
}
|
|
39
|
+
const key = await subtle.deriveKey({
|
|
40
|
+
name: "PBKDF2",
|
|
41
|
+
salt: salt.buffer,
|
|
42
|
+
iterations,
|
|
43
|
+
hash: "SHA-256",
|
|
44
|
+
}, baseKey, { name: "AES-GCM", length: 256 }, false, ["encrypt", "decrypt"]);
|
|
45
|
+
this.derivedKey = key;
|
|
46
|
+
return key;
|
|
47
|
+
}
|
|
48
|
+
async getKey() {
|
|
49
|
+
if (this.derivedKey)
|
|
50
|
+
return this.derivedKey;
|
|
51
|
+
return this.keyPromise;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Ensure the Uint8Array owns its entire backing ArrayBuffer (byteOffset=0,
|
|
55
|
+
* byteLength=buffer.byteLength). Some React Native crypto polyfills
|
|
56
|
+
* access `.buffer` directly, which would read wrong data for sub-views.
|
|
57
|
+
*/
|
|
58
|
+
static ensureOwnedBuffer(arr) {
|
|
59
|
+
if (arr.byteOffset !== 0 || arr.byteLength !== arr.buffer.byteLength) {
|
|
60
|
+
const copy = new Uint8Array(arr.byteLength);
|
|
61
|
+
copy.set(arr);
|
|
62
|
+
return copy;
|
|
63
|
+
}
|
|
64
|
+
return arr;
|
|
65
|
+
}
|
|
66
|
+
async encrypt(plaintext) {
|
|
67
|
+
const subtle = this.cryptoAdapter.getSubtle();
|
|
68
|
+
const key = await this.getKey();
|
|
69
|
+
const iv = new Uint8Array(12);
|
|
70
|
+
this.cryptoAdapter.getRandomValues(iv);
|
|
71
|
+
const safeData = EncryptedLocalCacheStore.ensureOwnedBuffer(plaintext);
|
|
72
|
+
const ciphertext = await subtle.encrypt({ name: "AES-GCM", iv: iv.buffer, tagLength: 128 }, key, safeData.buffer);
|
|
73
|
+
// Format: IV (12 bytes) + ciphertext+tag (variable)
|
|
74
|
+
const result = new Uint8Array(12 + ciphertext.byteLength);
|
|
75
|
+
result.set(iv, 0);
|
|
76
|
+
result.set(new Uint8Array(ciphertext), 12);
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
async decrypt(data) {
|
|
80
|
+
if (data.length < 12 + 16) {
|
|
81
|
+
this.logger.warn("Encrypted cache entry too short, treating as corrupt");
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
const subtle = this.cryptoAdapter.getSubtle();
|
|
86
|
+
const key = await this.getKey();
|
|
87
|
+
// .slice() creates copies with their own backing ArrayBuffer
|
|
88
|
+
const iv = data.slice(0, 12);
|
|
89
|
+
const ciphertext = data.slice(12);
|
|
90
|
+
const plaintext = await subtle.decrypt({ name: "AES-GCM", iv: iv.buffer, tagLength: 128 }, key, ciphertext.buffer);
|
|
91
|
+
return new Uint8Array(plaintext);
|
|
92
|
+
}
|
|
93
|
+
catch (e) {
|
|
94
|
+
this.logger.warn(`Cache decryption failed (password changed or data corrupt): ${e}`);
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// --- LocalCacheStore interface ---
|
|
99
|
+
async get(type, id) {
|
|
100
|
+
const encrypted = await this.inner.get(type, id);
|
|
101
|
+
if (!encrypted)
|
|
102
|
+
return null;
|
|
103
|
+
return this.decrypt(encrypted);
|
|
104
|
+
}
|
|
105
|
+
async put(type, id, value) {
|
|
106
|
+
const encrypted = await this.encrypt(value);
|
|
107
|
+
return this.inner.put(type, id, encrypted);
|
|
108
|
+
}
|
|
109
|
+
async delete(type, id) {
|
|
110
|
+
return this.inner.delete(type, id);
|
|
111
|
+
}
|
|
112
|
+
async list(type) {
|
|
113
|
+
return this.inner.list(type);
|
|
114
|
+
}
|
|
115
|
+
async clear() {
|
|
116
|
+
return this.inner.clear();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
exports.EncryptedLocalCacheStore = EncryptedLocalCacheStore;
|
|
120
|
+
//# sourceMappingURL=EncryptedLocalCacheStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EncryptedLocalCacheStore.js","sourceRoot":"","sources":["../../../src/core/cache/EncryptedLocalCacheStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A simple mutable key-value store for local cache data.
|
|
3
|
+
*
|
|
4
|
+
* Keys are structured as (type, id) pairs where:
|
|
5
|
+
* - `type` groups related entries (e.g. "db-meta", "doc", "vv")
|
|
6
|
+
* - `id` is caller-defined and may include tenant/store/doc scoping
|
|
7
|
+
*
|
|
8
|
+
* All values are opaque `Uint8Array`. Encryption is handled externally
|
|
9
|
+
* (e.g. by wrapping with {@link EncryptedLocalCacheStore}).
|
|
10
|
+
*
|
|
11
|
+
* One implementation per platform (Node.js filesystem, IndexedDB, MMKV),
|
|
12
|
+
* but the interface is open for custom implementations.
|
|
13
|
+
*/
|
|
14
|
+
export interface LocalCacheStore {
|
|
15
|
+
/**
|
|
16
|
+
* Retrieve a cached value.
|
|
17
|
+
* @returns The value, or `null` if not found.
|
|
18
|
+
*/
|
|
19
|
+
get(type: string, id: string): Promise<Uint8Array | null>;
|
|
20
|
+
/**
|
|
21
|
+
* Store (or overwrite) a cached value.
|
|
22
|
+
*/
|
|
23
|
+
put(type: string, id: string, value: Uint8Array): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Delete a single cached value.
|
|
26
|
+
*/
|
|
27
|
+
delete(type: string, id: string): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* List all ids stored under the given type.
|
|
30
|
+
*/
|
|
31
|
+
list(type: string): Promise<string[]>;
|
|
32
|
+
/**
|
|
33
|
+
* Wipe all data from the cache store.
|
|
34
|
+
*/
|
|
35
|
+
clear(): Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Trivial in-memory implementation of {@link LocalCacheStore}.
|
|
39
|
+
* Useful for tests and as a reference implementation.
|
|
40
|
+
*/
|
|
41
|
+
export declare class InMemoryLocalCacheStore implements LocalCacheStore {
|
|
42
|
+
private data;
|
|
43
|
+
private toKey;
|
|
44
|
+
get(type: string, id: string): Promise<Uint8Array | null>;
|
|
45
|
+
put(type: string, id: string, value: Uint8Array): Promise<void>;
|
|
46
|
+
delete(type: string, id: string): Promise<void>;
|
|
47
|
+
list(type: string): Promise<string[]>;
|
|
48
|
+
clear(): Promise<void>;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=LocalCacheStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalCacheStore.d.ts","sourceRoot":"","sources":["../../../src/core/cache/LocalCacheStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAE1D;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEtC;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,IAAI,CAAsC;IAElD,OAAO,CAAC,KAAK;IAIP,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIzD,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAWrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InMemoryLocalCacheStore = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Trivial in-memory implementation of {@link LocalCacheStore}.
|
|
6
|
+
* Useful for tests and as a reference implementation.
|
|
7
|
+
*/
|
|
8
|
+
class InMemoryLocalCacheStore {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.data = new Map();
|
|
11
|
+
}
|
|
12
|
+
toKey(type, id) {
|
|
13
|
+
return `${type}\0${id}`;
|
|
14
|
+
}
|
|
15
|
+
async get(type, id) {
|
|
16
|
+
return this.data.get(this.toKey(type, id)) ?? null;
|
|
17
|
+
}
|
|
18
|
+
async put(type, id, value) {
|
|
19
|
+
this.data.set(this.toKey(type, id), value);
|
|
20
|
+
}
|
|
21
|
+
async delete(type, id) {
|
|
22
|
+
this.data.delete(this.toKey(type, id));
|
|
23
|
+
}
|
|
24
|
+
async list(type) {
|
|
25
|
+
const prefix = `${type}\0`;
|
|
26
|
+
const ids = [];
|
|
27
|
+
for (const key of this.data.keys()) {
|
|
28
|
+
if (key.startsWith(prefix)) {
|
|
29
|
+
ids.push(key.slice(prefix.length));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return ids;
|
|
33
|
+
}
|
|
34
|
+
async clear() {
|
|
35
|
+
this.data.clear();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.InMemoryLocalCacheStore = InMemoryLocalCacheStore;
|
|
39
|
+
//# sourceMappingURL=LocalCacheStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalCacheStore.js","sourceRoot":"","sources":["../../../src/core/cache/LocalCacheStore.ts"],"names":[],"mappings":";;;AAyCA;;;GAGG;AACH,MAAa,uBAAuB;IAApC;QACU,SAAI,GAA4B,IAAI,GAAG,EAAE,CAAC;IAgCpD,CAAC;IA9BS,KAAK,CAAC,IAAY,EAAE,EAAU;QACpC,OAAO,GAAG,IAAI,KAAK,EAAE,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,EAAU;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,KAAiB;QACnD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,EAAU;QACnC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC;QAC3B,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACnC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;CACF;AAjCD,0DAiCC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const DEFAULT_PBKDF2_ITERATIONS = 310000;
|
|
2
|
+
export declare const MIN_PBKDF2_ITERATIONS = 60000;
|
|
3
|
+
/**
|
|
4
|
+
* Resolve PBKDF2 iterations from runtime overrides with safe bounds.
|
|
5
|
+
*
|
|
6
|
+
* Override order:
|
|
7
|
+
* 1) globalThis.__MINDOODB_PBKDF2_ITERATIONS (useful for RN/Expo runtime config)
|
|
8
|
+
* 2) process.env.MINDOODB_PBKDF2_ITERATIONS
|
|
9
|
+
* 3) defaultIterations
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolvePbkdf2Iterations(defaultIterations?: number): number;
|
|
12
|
+
//# sourceMappingURL=pbkdf2Iterations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbkdf2Iterations.d.ts","sourceRoot":"","sources":["../../../src/core/crypto/pbkdf2Iterations.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAChD,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,iBAAiB,GAAE,MAAkC,GAAG,MAAM,CAgBrG"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MIN_PBKDF2_ITERATIONS = exports.DEFAULT_PBKDF2_ITERATIONS = void 0;
|
|
4
|
+
exports.resolvePbkdf2Iterations = resolvePbkdf2Iterations;
|
|
5
|
+
exports.DEFAULT_PBKDF2_ITERATIONS = 310000;
|
|
6
|
+
exports.MIN_PBKDF2_ITERATIONS = 60000;
|
|
7
|
+
/**
|
|
8
|
+
* Resolve PBKDF2 iterations from runtime overrides with safe bounds.
|
|
9
|
+
*
|
|
10
|
+
* Override order:
|
|
11
|
+
* 1) globalThis.__MINDOODB_PBKDF2_ITERATIONS (useful for RN/Expo runtime config)
|
|
12
|
+
* 2) process.env.MINDOODB_PBKDF2_ITERATIONS
|
|
13
|
+
* 3) defaultIterations
|
|
14
|
+
*/
|
|
15
|
+
function resolvePbkdf2Iterations(defaultIterations = exports.DEFAULT_PBKDF2_ITERATIONS) {
|
|
16
|
+
const override = readOverride();
|
|
17
|
+
if (override === undefined) {
|
|
18
|
+
return defaultIterations;
|
|
19
|
+
}
|
|
20
|
+
const parsed = Number(override);
|
|
21
|
+
if (!Number.isFinite(parsed)) {
|
|
22
|
+
return defaultIterations;
|
|
23
|
+
}
|
|
24
|
+
const intValue = Math.floor(parsed);
|
|
25
|
+
if (intValue < exports.MIN_PBKDF2_ITERATIONS) {
|
|
26
|
+
return exports.MIN_PBKDF2_ITERATIONS;
|
|
27
|
+
}
|
|
28
|
+
return intValue;
|
|
29
|
+
}
|
|
30
|
+
function readOverride() {
|
|
31
|
+
try {
|
|
32
|
+
if (typeof globalThis !== "undefined") {
|
|
33
|
+
const g = globalThis;
|
|
34
|
+
if (g.__MINDOODB_PBKDF2_ITERATIONS !== undefined) {
|
|
35
|
+
return g.__MINDOODB_PBKDF2_ITERATIONS;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// no-op
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
if (typeof process !== "undefined" && process.env) {
|
|
44
|
+
const fromEnv = process.env.MINDOODB_PBKDF2_ITERATIONS;
|
|
45
|
+
if (fromEnv !== undefined) {
|
|
46
|
+
return fromEnv;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// no-op
|
|
52
|
+
}
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=pbkdf2Iterations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbkdf2Iterations.js","sourceRoot":"","sources":["../../../src/core/crypto/pbkdf2Iterations.ts"],"names":[],"mappings":";;;AAWA,0DAgBC;AA3BY,QAAA,yBAAyB,GAAG,MAAM,CAAC;AACnC,QAAA,qBAAqB,GAAG,KAAK,CAAC;AAE3C;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CAAC,oBAA4B,iCAAyB;IAC3F,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,QAAQ,GAAG,6BAAqB,EAAE,CAAC;QACrC,OAAO,6BAAqB,CAAC;IAC/B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,YAAY;IACnB,IAAI,CAAC;QACH,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,UAA4E,CAAC;YACvF,IAAI,CAAC,CAAC,4BAA4B,KAAK,SAAS,EAAE,CAAC;gBACjD,OAAO,CAAC,CAAC,4BAA4B,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ;IACV,CAAC;IAED,IAAI,CAAC;QACH,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAClD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;YACvD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ;IACV,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { EncryptedPrivateKey } from "../types";
|
|
2
|
+
import type { CryptoAdapter } from "./CryptoAdapter";
|
|
3
|
+
export declare function encryptPrivateKey(cryptoAdapter: CryptoAdapter, privateKeyBytes: Uint8Array, password: string, saltString: string): Promise<EncryptedPrivateKey>;
|
|
4
|
+
export declare function decryptPrivateKey(cryptoAdapter: CryptoAdapter, encryptedKey: EncryptedPrivateKey, password: string, saltString: string): Promise<ArrayBuffer>;
|
|
5
|
+
//# sourceMappingURL=privateKeyEncryption.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"privateKeyEncryption.d.ts","sourceRoot":"","sources":["../../../src/core/crypto/privateKeyEncryption.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAgCrD,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,UAAU,EAC3B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC,CA0D9B;AAED,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,mBAAmB,EACjC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,CAwCtB"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encryptPrivateKey = encryptPrivateKey;
|
|
4
|
+
exports.decryptPrivateKey = decryptPrivateKey;
|
|
5
|
+
const pbkdf2Iterations_1 = require("./pbkdf2Iterations");
|
|
6
|
+
function uint8ArrayToBase64(bytes) {
|
|
7
|
+
let binary = "";
|
|
8
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
9
|
+
binary += String.fromCharCode(bytes[i]);
|
|
10
|
+
}
|
|
11
|
+
return btoa(binary);
|
|
12
|
+
}
|
|
13
|
+
function base64ToUint8Array(base64) {
|
|
14
|
+
const binary = atob(base64);
|
|
15
|
+
const bytes = new Uint8Array(binary.length);
|
|
16
|
+
for (let i = 0; i < binary.length; i++) {
|
|
17
|
+
bytes[i] = binary.charCodeAt(i);
|
|
18
|
+
}
|
|
19
|
+
return bytes;
|
|
20
|
+
}
|
|
21
|
+
function buildCombinedSalt(saltBytes, saltString) {
|
|
22
|
+
const saltStringBytes = new TextEncoder().encode(saltString);
|
|
23
|
+
const combinedSalt = new Uint8Array(saltBytes.length + saltStringBytes.length);
|
|
24
|
+
combinedSalt.set(saltBytes);
|
|
25
|
+
combinedSalt.set(saltStringBytes, saltBytes.length);
|
|
26
|
+
return combinedSalt;
|
|
27
|
+
}
|
|
28
|
+
function toArrayBuffer(bytes) {
|
|
29
|
+
return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength);
|
|
30
|
+
}
|
|
31
|
+
async function encryptPrivateKey(cryptoAdapter, privateKeyBytes, password, saltString) {
|
|
32
|
+
const subtle = cryptoAdapter.getSubtle();
|
|
33
|
+
const randomValues = cryptoAdapter.getRandomValues.bind(cryptoAdapter);
|
|
34
|
+
const salt = new Uint8Array(16);
|
|
35
|
+
randomValues(salt);
|
|
36
|
+
const iv = new Uint8Array(12);
|
|
37
|
+
randomValues(iv);
|
|
38
|
+
const combinedSalt = buildCombinedSalt(salt, saltString);
|
|
39
|
+
const passwordKey = await subtle.importKey("raw", new TextEncoder().encode(password), "PBKDF2", false, ["deriveBits", "deriveKey"]);
|
|
40
|
+
const iterations = (0, pbkdf2Iterations_1.resolvePbkdf2Iterations)(pbkdf2Iterations_1.DEFAULT_PBKDF2_ITERATIONS);
|
|
41
|
+
const derivedKey = await subtle.deriveKey({
|
|
42
|
+
name: "PBKDF2",
|
|
43
|
+
salt: toArrayBuffer(combinedSalt),
|
|
44
|
+
iterations,
|
|
45
|
+
hash: "SHA-256",
|
|
46
|
+
}, passwordKey, {
|
|
47
|
+
name: "AES-GCM",
|
|
48
|
+
length: 256,
|
|
49
|
+
}, false, ["encrypt"]);
|
|
50
|
+
const encrypted = await subtle.encrypt({
|
|
51
|
+
name: "AES-GCM",
|
|
52
|
+
iv,
|
|
53
|
+
tagLength: 128,
|
|
54
|
+
}, derivedKey, privateKeyBytes.buffer);
|
|
55
|
+
const encryptedArray = new Uint8Array(encrypted);
|
|
56
|
+
const tagLength = 16;
|
|
57
|
+
const ciphertext = encryptedArray.slice(0, encryptedArray.length - tagLength);
|
|
58
|
+
const tag = encryptedArray.slice(encryptedArray.length - tagLength);
|
|
59
|
+
return {
|
|
60
|
+
ciphertext: uint8ArrayToBase64(ciphertext),
|
|
61
|
+
iv: uint8ArrayToBase64(iv),
|
|
62
|
+
tag: uint8ArrayToBase64(tag),
|
|
63
|
+
salt: uint8ArrayToBase64(salt),
|
|
64
|
+
iterations,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
async function decryptPrivateKey(cryptoAdapter, encryptedKey, password, saltString) {
|
|
68
|
+
const subtle = cryptoAdapter.getSubtle();
|
|
69
|
+
const ciphertext = base64ToUint8Array(encryptedKey.ciphertext);
|
|
70
|
+
const iv = base64ToUint8Array(encryptedKey.iv);
|
|
71
|
+
const tag = base64ToUint8Array(encryptedKey.tag);
|
|
72
|
+
const saltBytes = base64ToUint8Array(encryptedKey.salt);
|
|
73
|
+
const iterations = encryptedKey.iterations || (0, pbkdf2Iterations_1.resolvePbkdf2Iterations)(pbkdf2Iterations_1.DEFAULT_PBKDF2_ITERATIONS);
|
|
74
|
+
const combinedSalt = buildCombinedSalt(saltBytes, saltString);
|
|
75
|
+
const passwordKey = await subtle.importKey("raw", new TextEncoder().encode(password), { name: "PBKDF2" }, false, ["deriveBits", "deriveKey"]);
|
|
76
|
+
const derivedKey = await subtle.deriveKey({
|
|
77
|
+
name: "PBKDF2",
|
|
78
|
+
salt: toArrayBuffer(combinedSalt),
|
|
79
|
+
iterations,
|
|
80
|
+
hash: "SHA-256",
|
|
81
|
+
}, passwordKey, { name: "AES-GCM", length: 256 }, false, ["decrypt"]);
|
|
82
|
+
const ciphertextWithTag = new Uint8Array(ciphertext.length + tag.length);
|
|
83
|
+
ciphertextWithTag.set(ciphertext);
|
|
84
|
+
ciphertextWithTag.set(tag, ciphertext.length);
|
|
85
|
+
return subtle.decrypt({ name: "AES-GCM", iv: new Uint8Array(iv), tagLength: 128 }, derivedKey, new Uint8Array(ciphertextWithTag));
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=privateKeyEncryption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"privateKeyEncryption.js","sourceRoot":"","sources":["../../../src/core/crypto/privateKeyEncryption.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,14 +1,26 @@
|
|
|
1
1
|
export * from "./types";
|
|
2
|
-
export { PublicUserId, PrivateUserId } from "./userid";
|
|
3
|
-
export {
|
|
2
|
+
export type { PublicUserId, PrivateUserId } from "./userid";
|
|
3
|
+
export { BaseMindooDB } from "./BaseMindooDB";
|
|
4
|
+
export { BaseMindooTenant } from "./BaseMindooTenant";
|
|
5
|
+
export { BaseMindooTenantFactory } from "./BaseMindooTenantFactory";
|
|
6
|
+
export { MindooDBServerAdmin, type MindooDBServerAdminOptions, type ServerConfig, type SystemAdminPrincipal, type ConfigBackupInfo, type ConfigBackupResponse, } from "./MindooDBServerAdmin";
|
|
7
|
+
export type { CryptoAdapter } from "./crypto/CryptoAdapter";
|
|
4
8
|
export { RSAEncryption } from "./crypto/RSAEncryption";
|
|
5
9
|
export { MindooDocSigner } from "./crypto/MindooDocSigner";
|
|
6
|
-
export { KeyBag } from "./keys/KeyBag";
|
|
10
|
+
export { KeyBag, type KeyDetail } from "./keys/KeyBag";
|
|
11
|
+
export { encodeMindooURI, decodeMindooURI, isMindooURI, type MindooURIType, type DecodedMindooURI, } from "./uri/MindooURI";
|
|
7
12
|
export { SymmetricKeyNotFoundError } from "./errors";
|
|
13
|
+
export type { LocalCacheStore } from "./cache/LocalCacheStore";
|
|
14
|
+
export { InMemoryLocalCacheStore } from "./cache/LocalCacheStore";
|
|
15
|
+
export { EncryptedLocalCacheStore } from "./cache/EncryptedLocalCacheStore";
|
|
16
|
+
export { CacheManager, type ICacheable, type CacheManagerOptions } from "./cache/CacheManager";
|
|
8
17
|
export { generateDocEntryId, generateDepsFingerprint, generateAttachmentChunkId, generateFileUuid7, generateChunkUuid7, parseDocEntryId, parseAttachmentChunkId, isDocEntryId, isAttachmentChunkId, extractDocIdFromEntryId, computeContentHash, } from "./utils";
|
|
9
|
-
export { ContentAddressedStore, ContentAddressedStoreFactory, CreateStoreResult, OpenStoreOptions } from "./appendonlystores/types";
|
|
18
|
+
export { type ContentAddressedStore, type ContentAddressedStoreFactory, type CreateStoreResult, type OpenStoreOptions, type StoreCompactionStatus, type StoreScanCursor, type StoreScanFilters, type StoreScanResult, type StoreIdBloomSummary, type MaterializationPlanOptions, type MaterializationPlanDiagnostics, type DocumentMaterializationPlan, type DocumentMaterializationBatchPlan, } from "./appendonlystores/types";
|
|
10
19
|
export { InMemoryContentAddressedStore, InMemoryContentAddressedStoreFactory } from "./appendonlystores/InMemoryContentAddressedStore";
|
|
11
20
|
export { AuthenticationService } from "./appendonlystores/network/AuthenticationService";
|
|
12
|
-
export { NetworkTransport, NetworkTransportConfig } from "./appendonlystores/network/NetworkTransport";
|
|
13
|
-
export { NetworkEncryptedEntry, UserPublicKeys, NetworkAuthTokenPayload, AuthChallenge, AuthResult, NetworkErrorType, NetworkError, } from "./appendonlystores/network/types";
|
|
21
|
+
export type { NetworkTransport, NetworkTransportConfig } from "./appendonlystores/network/NetworkTransport";
|
|
22
|
+
export { type NetworkEncryptedEntry, type UserPublicKeys, type NetworkAuthTokenPayload, type AuthChallenge, type AuthResult, type NetworkSyncCapabilities, NetworkErrorType, NetworkError, } from "./appendonlystores/network/types";
|
|
23
|
+
export { ClientNetworkContentAddressedStore } from "../appendonlystores/network/ClientNetworkContentAddressedStore";
|
|
24
|
+
export { HttpTransport } from "../appendonlystores/network/HttpTransport";
|
|
25
|
+
export { VirtualView, VirtualViewFactory, VirtualViewBuilder, VirtualViewNavigatorBuilder, VirtualViewColumn, VirtualViewNavigator, VirtualViewEntryData, VirtualViewDataChange, MindooDBVirtualViewDataProvider, ColumnSorting, TotalMode, CategorizationStyle, WithCategories, WithDocuments, SelectedOnly, type VirtualViewColumnOptions, type IVirtualViewDataProvider, type MindooDBVirtualViewDataProviderOptions, type ScopedDocId, type ColumnValueFunction, type DocumentFilterFunction, } from "./indexing/virtualviews";
|
|
14
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAGA,cAAc,SAAS,CAAC;AAGxB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.js
CHANGED
|
@@ -15,9 +15,18 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
16
16
|
};
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.NetworkError = exports.NetworkErrorType = exports.AuthenticationService = exports.InMemoryContentAddressedStoreFactory = exports.InMemoryContentAddressedStore = exports.computeContentHash = exports.extractDocIdFromEntryId = exports.isAttachmentChunkId = exports.isDocEntryId = exports.parseAttachmentChunkId = exports.parseDocEntryId = exports.generateChunkUuid7 = exports.generateFileUuid7 = exports.generateAttachmentChunkId = exports.generateDepsFingerprint = exports.generateDocEntryId = exports.SymmetricKeyNotFoundError = exports.KeyBag = exports.MindooDocSigner = exports.RSAEncryption = void 0;
|
|
18
|
+
exports.SelectedOnly = exports.WithDocuments = exports.WithCategories = exports.CategorizationStyle = exports.TotalMode = exports.ColumnSorting = exports.MindooDBVirtualViewDataProvider = exports.VirtualViewDataChange = exports.VirtualViewEntryData = exports.VirtualViewNavigator = exports.VirtualViewColumn = exports.VirtualViewNavigatorBuilder = exports.VirtualViewBuilder = exports.VirtualViewFactory = exports.VirtualView = exports.HttpTransport = exports.ClientNetworkContentAddressedStore = exports.NetworkError = exports.NetworkErrorType = exports.AuthenticationService = exports.InMemoryContentAddressedStoreFactory = exports.InMemoryContentAddressedStore = exports.computeContentHash = exports.extractDocIdFromEntryId = exports.isAttachmentChunkId = exports.isDocEntryId = exports.parseAttachmentChunkId = exports.parseDocEntryId = exports.generateChunkUuid7 = exports.generateFileUuid7 = exports.generateAttachmentChunkId = exports.generateDepsFingerprint = exports.generateDocEntryId = exports.CacheManager = exports.EncryptedLocalCacheStore = exports.InMemoryLocalCacheStore = exports.SymmetricKeyNotFoundError = exports.isMindooURI = exports.decodeMindooURI = exports.encodeMindooURI = exports.KeyBag = exports.MindooDocSigner = exports.RSAEncryption = exports.MindooDBServerAdmin = exports.BaseMindooTenantFactory = exports.BaseMindooTenant = exports.BaseMindooDB = void 0;
|
|
19
19
|
// Types
|
|
20
20
|
__exportStar(require("./types"), exports);
|
|
21
|
+
// Base classes
|
|
22
|
+
var BaseMindooDB_1 = require("./BaseMindooDB");
|
|
23
|
+
Object.defineProperty(exports, "BaseMindooDB", { enumerable: true, get: function () { return BaseMindooDB_1.BaseMindooDB; } });
|
|
24
|
+
var BaseMindooTenant_1 = require("./BaseMindooTenant");
|
|
25
|
+
Object.defineProperty(exports, "BaseMindooTenant", { enumerable: true, get: function () { return BaseMindooTenant_1.BaseMindooTenant; } });
|
|
26
|
+
var BaseMindooTenantFactory_1 = require("./BaseMindooTenantFactory");
|
|
27
|
+
Object.defineProperty(exports, "BaseMindooTenantFactory", { enumerable: true, get: function () { return BaseMindooTenantFactory_1.BaseMindooTenantFactory; } });
|
|
28
|
+
var MindooDBServerAdmin_1 = require("./MindooDBServerAdmin");
|
|
29
|
+
Object.defineProperty(exports, "MindooDBServerAdmin", { enumerable: true, get: function () { return MindooDBServerAdmin_1.MindooDBServerAdmin; } });
|
|
21
30
|
var RSAEncryption_1 = require("./crypto/RSAEncryption");
|
|
22
31
|
Object.defineProperty(exports, "RSAEncryption", { enumerable: true, get: function () { return RSAEncryption_1.RSAEncryption; } });
|
|
23
32
|
var MindooDocSigner_1 = require("./crypto/MindooDocSigner");
|
|
@@ -25,9 +34,20 @@ Object.defineProperty(exports, "MindooDocSigner", { enumerable: true, get: funct
|
|
|
25
34
|
// Keys
|
|
26
35
|
var KeyBag_1 = require("./keys/KeyBag");
|
|
27
36
|
Object.defineProperty(exports, "KeyBag", { enumerable: true, get: function () { return KeyBag_1.KeyBag; } });
|
|
37
|
+
// URI
|
|
38
|
+
var MindooURI_1 = require("./uri/MindooURI");
|
|
39
|
+
Object.defineProperty(exports, "encodeMindooURI", { enumerable: true, get: function () { return MindooURI_1.encodeMindooURI; } });
|
|
40
|
+
Object.defineProperty(exports, "decodeMindooURI", { enumerable: true, get: function () { return MindooURI_1.decodeMindooURI; } });
|
|
41
|
+
Object.defineProperty(exports, "isMindooURI", { enumerable: true, get: function () { return MindooURI_1.isMindooURI; } });
|
|
28
42
|
// Errors
|
|
29
43
|
var errors_1 = require("./errors");
|
|
30
44
|
Object.defineProperty(exports, "SymmetricKeyNotFoundError", { enumerable: true, get: function () { return errors_1.SymmetricKeyNotFoundError; } });
|
|
45
|
+
var LocalCacheStore_1 = require("./cache/LocalCacheStore");
|
|
46
|
+
Object.defineProperty(exports, "InMemoryLocalCacheStore", { enumerable: true, get: function () { return LocalCacheStore_1.InMemoryLocalCacheStore; } });
|
|
47
|
+
var EncryptedLocalCacheStore_1 = require("./cache/EncryptedLocalCacheStore");
|
|
48
|
+
Object.defineProperty(exports, "EncryptedLocalCacheStore", { enumerable: true, get: function () { return EncryptedLocalCacheStore_1.EncryptedLocalCacheStore; } });
|
|
49
|
+
var CacheManager_1 = require("./cache/CacheManager");
|
|
50
|
+
Object.defineProperty(exports, "CacheManager", { enumerable: true, get: function () { return CacheManager_1.CacheManager; } });
|
|
31
51
|
// Utilities
|
|
32
52
|
var utils_1 = require("./utils");
|
|
33
53
|
Object.defineProperty(exports, "generateDocEntryId", { enumerable: true, get: function () { return utils_1.generateDocEntryId; } });
|
|
@@ -50,4 +70,25 @@ Object.defineProperty(exports, "AuthenticationService", { enumerable: true, get:
|
|
|
50
70
|
var types_1 = require("./appendonlystores/network/types");
|
|
51
71
|
Object.defineProperty(exports, "NetworkErrorType", { enumerable: true, get: function () { return types_1.NetworkErrorType; } });
|
|
52
72
|
Object.defineProperty(exports, "NetworkError", { enumerable: true, get: function () { return types_1.NetworkError; } });
|
|
73
|
+
var ClientNetworkContentAddressedStore_1 = require("../appendonlystores/network/ClientNetworkContentAddressedStore");
|
|
74
|
+
Object.defineProperty(exports, "ClientNetworkContentAddressedStore", { enumerable: true, get: function () { return ClientNetworkContentAddressedStore_1.ClientNetworkContentAddressedStore; } });
|
|
75
|
+
var HttpTransport_1 = require("../appendonlystores/network/HttpTransport");
|
|
76
|
+
Object.defineProperty(exports, "HttpTransport", { enumerable: true, get: function () { return HttpTransport_1.HttpTransport; } });
|
|
77
|
+
// Indexing - Virtual Views
|
|
78
|
+
var virtualviews_1 = require("./indexing/virtualviews");
|
|
79
|
+
Object.defineProperty(exports, "VirtualView", { enumerable: true, get: function () { return virtualviews_1.VirtualView; } });
|
|
80
|
+
Object.defineProperty(exports, "VirtualViewFactory", { enumerable: true, get: function () { return virtualviews_1.VirtualViewFactory; } });
|
|
81
|
+
Object.defineProperty(exports, "VirtualViewBuilder", { enumerable: true, get: function () { return virtualviews_1.VirtualViewBuilder; } });
|
|
82
|
+
Object.defineProperty(exports, "VirtualViewNavigatorBuilder", { enumerable: true, get: function () { return virtualviews_1.VirtualViewNavigatorBuilder; } });
|
|
83
|
+
Object.defineProperty(exports, "VirtualViewColumn", { enumerable: true, get: function () { return virtualviews_1.VirtualViewColumn; } });
|
|
84
|
+
Object.defineProperty(exports, "VirtualViewNavigator", { enumerable: true, get: function () { return virtualviews_1.VirtualViewNavigator; } });
|
|
85
|
+
Object.defineProperty(exports, "VirtualViewEntryData", { enumerable: true, get: function () { return virtualviews_1.VirtualViewEntryData; } });
|
|
86
|
+
Object.defineProperty(exports, "VirtualViewDataChange", { enumerable: true, get: function () { return virtualviews_1.VirtualViewDataChange; } });
|
|
87
|
+
Object.defineProperty(exports, "MindooDBVirtualViewDataProvider", { enumerable: true, get: function () { return virtualviews_1.MindooDBVirtualViewDataProvider; } });
|
|
88
|
+
Object.defineProperty(exports, "ColumnSorting", { enumerable: true, get: function () { return virtualviews_1.ColumnSorting; } });
|
|
89
|
+
Object.defineProperty(exports, "TotalMode", { enumerable: true, get: function () { return virtualviews_1.TotalMode; } });
|
|
90
|
+
Object.defineProperty(exports, "CategorizationStyle", { enumerable: true, get: function () { return virtualviews_1.CategorizationStyle; } });
|
|
91
|
+
Object.defineProperty(exports, "WithCategories", { enumerable: true, get: function () { return virtualviews_1.WithCategories; } });
|
|
92
|
+
Object.defineProperty(exports, "WithDocuments", { enumerable: true, get: function () { return virtualviews_1.WithDocuments; } });
|
|
93
|
+
Object.defineProperty(exports, "SelectedOnly", { enumerable: true, get: function () { return virtualviews_1.SelectedOnly; } });
|
|
53
94
|
//# sourceMappingURL=index.js.map
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA,iCAAiC;;;;;;;;;;;;;;;;;AAEjC,QAAQ;AACR,0CAAwB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA,iCAAiC;;;;;;;;;;;;;;;;;AAEjC,QAAQ;AACR,0CAAwB;AAKxB,eAAe;AACf,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAEhC,6DAO+B;AAN7B,0HAAA,mBAAmB,OAAA;AAUrB,wDAAuD;AAA9C,8GAAA,aAAa,OAAA;AACtB,4DAA2D;AAAlD,kHAAA,eAAe,OAAA;AAExB,OAAO;AACP,wCAAuD;AAA9C,gGAAA,MAAM,OAAA;AAEf,MAAM;AACN,6CAMyB;AALvB,4GAAA,eAAe,OAAA;AACf,4GAAA,eAAe,OAAA;AACf,wGAAA,WAAW,OAAA;AAKb,SAAS;AACT,mCAAqD;AAA5C,mHAAA,yBAAyB,OAAA;AAIlC,2DAAkE;AAAzD,0HAAA,uBAAuB,OAAA;AAChC,6EAA4E;AAAnE,oIAAA,wBAAwB,OAAA;AACjC,qDAA+F;AAAtF,4GAAA,YAAY,OAAA;AAErB,YAAY;AACZ,iCAYiB;AAXf,2GAAA,kBAAkB,OAAA;AAClB,gHAAA,uBAAuB,OAAA;AACvB,kHAAA,yBAAyB,OAAA;AACzB,0GAAA,iBAAiB,OAAA;AACjB,2GAAA,kBAAkB,OAAA;AAClB,wGAAA,eAAe,OAAA;AACf,+GAAA,sBAAsB,OAAA;AACtB,qGAAA,YAAY,OAAA;AACZ,4GAAA,mBAAmB,OAAA;AACnB,gHAAA,uBAAuB,OAAA;AACvB,2GAAA,kBAAkB,OAAA;AAmBpB,kGAAuI;AAA9H,8IAAA,6BAA6B,OAAA;AAAE,qJAAA,oCAAoC,OAAA;AAE5E,UAAU;AACV,0FAAyF;AAAhF,8HAAA,qBAAqB,OAAA;AAE9B,0DAS0C;AAFxC,yGAAA,gBAAgB,OAAA;AAChB,qGAAA,YAAY,OAAA;AAEd,qHAAoH;AAA3G,wJAAA,kCAAkC,OAAA;AAC3C,2EAA0E;AAAjE,8GAAA,aAAa,OAAA;AAEtB,2BAA2B;AAC3B,wDAsBiC;AArB/B,2GAAA,WAAW,OAAA;AACX,kHAAA,kBAAkB,OAAA;AAClB,kHAAA,kBAAkB,OAAA;AAClB,2HAAA,2BAA2B,OAAA;AAC3B,iHAAA,iBAAiB,OAAA;AACjB,oHAAA,oBAAoB,OAAA;AACpB,oHAAA,oBAAoB,OAAA;AACpB,qHAAA,qBAAqB,OAAA;AACrB,+HAAA,+BAA+B,OAAA;AAC/B,6GAAA,aAAa,OAAA;AACb,yGAAA,SAAS,OAAA;AACT,mHAAA,mBAAmB,OAAA;AACnB,8GAAA,cAAc,OAAA;AACd,6GAAA,aAAa,OAAA;AACb,4GAAA,YAAY,OAAA"}
|
|
@@ -17,7 +17,8 @@ export interface MindooDBVirtualViewDataProviderOptions {
|
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* Data provider that reads documents from a MindooDB and provides them
|
|
20
|
-
* to a VirtualView.
|
|
20
|
+
* to a VirtualView. It uses metadata-first incremental updates so delete-only
|
|
21
|
+
* changes can be handled without materializing document bodies.
|
|
21
22
|
*/
|
|
22
23
|
export declare class MindooDBVirtualViewDataProvider implements IVirtualViewDataProvider {
|
|
23
24
|
private readonly origin;
|
|
@@ -48,5 +49,7 @@ export declare class MindooDBVirtualViewDataProvider implements IVirtualViewData
|
|
|
48
49
|
* Get the number of documents currently tracked by this provider
|
|
49
50
|
*/
|
|
50
51
|
getKnownDocCount(): number;
|
|
52
|
+
exportCacheState(): unknown;
|
|
53
|
+
importCacheState(state: unknown): void;
|
|
51
54
|
}
|
|
52
55
|
//# sourceMappingURL=MindooDBVirtualViewDataProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MindooDBVirtualViewDataProvider.d.ts","sourceRoot":"","sources":["../../../../src/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAa,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,sCAAsC;IACrD,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IAEf,0CAA0C;IAC1C,EAAE,EAAE,QAAQ,CAAC;IAEb,oEAAoE;IACpE,cAAc,CAAC,EAAE,sBAAsB,CAAC;IAExC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED
|
|
1
|
+
{"version":3,"file":"MindooDBVirtualViewDataProvider.d.ts","sourceRoot":"","sources":["../../../../src/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAa,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,sCAAsC;IACrD,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IAEf,0CAA0C;IAC1C,EAAE,EAAE,QAAQ,CAAC;IAEb,oEAAoE;IACpE,cAAc,CAAC,EAAE,sBAAsB,CAAC;IAExC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,qBAAa,+BAAgC,YAAW,wBAAwB;IAC9E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgC;IAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,MAAM,CAAqC;IAEnD,+DAA+D;IAC/D,OAAO,CAAC,WAAW,CAA0B;gBAEjC,OAAO,EAAE,sCAAsC;IAO3D,SAAS,IAAI,MAAM;IAInB,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAIvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAkD7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8B3B;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,SAAS,IAAI,oBAAoB,GAAG,IAAI;IAIxC;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAQ1B,gBAAgB,IAAI,OAAO;IAO3B,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;CAOvC"}
|