mindoodb 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +263 -0
- package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.d.ts +5 -0
- package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.d.ts.map +1 -0
- package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.js +17 -0
- package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.js.map +1 -0
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts +111 -0
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts.map +1 -0
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js +237 -0
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js.map +1 -0
- package/dist/appendonlystores/network/HttpTransport.d.ts +78 -0
- package/dist/appendonlystores/network/HttpTransport.d.ts.map +1 -0
- package/dist/appendonlystores/network/HttpTransport.js +356 -0
- package/dist/appendonlystores/network/HttpTransport.js.map +1 -0
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +131 -0
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -0
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +248 -0
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -0
- package/dist/appendonlystores/network/index.d.ts +8 -0
- package/dist/appendonlystores/network/index.d.ts.map +1 -0
- package/dist/appendonlystores/network/index.js +21 -0
- package/dist/appendonlystores/network/index.js.map +1 -0
- package/dist/browser/crypto/BrowserCryptoAdapter.d.ts +14 -0
- package/dist/browser/crypto/BrowserCryptoAdapter.d.ts.map +1 -0
- package/dist/browser/crypto/BrowserCryptoAdapter.js +30 -0
- package/dist/browser/crypto/BrowserCryptoAdapter.js.map +1 -0
- package/dist/browser/index.d.ts +3 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +26 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/core/BaseMindooDB.d.ts +182 -0
- package/dist/core/BaseMindooDB.d.ts.map +1 -0
- package/dist/core/BaseMindooDB.js +1701 -0
- package/dist/core/BaseMindooDB.js.map +1 -0
- package/dist/core/BaseMindooTenant.d.ts +155 -0
- package/dist/core/BaseMindooTenant.d.ts.map +1 -0
- package/dist/core/BaseMindooTenant.js +673 -0
- package/dist/core/BaseMindooTenant.js.map +1 -0
- package/dist/core/BaseMindooTenantDirectory.d.ts +99 -0
- package/dist/core/BaseMindooTenantDirectory.d.ts.map +1 -0
- package/dist/core/BaseMindooTenantDirectory.js +776 -0
- package/dist/core/BaseMindooTenantDirectory.js.map +1 -0
- package/dist/core/BaseMindooTenantFactory.d.ts +91 -0
- package/dist/core/BaseMindooTenantFactory.d.ts.map +1 -0
- package/dist/core/BaseMindooTenantFactory.js +297 -0
- package/dist/core/BaseMindooTenantFactory.js.map +1 -0
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts +111 -0
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts.map +1 -0
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.js +293 -0
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.js.map +1 -0
- package/dist/core/appendonlystores/network/AuthenticationService.d.ts +78 -0
- package/dist/core/appendonlystores/network/AuthenticationService.d.ts.map +1 -0
- package/dist/core/appendonlystores/network/AuthenticationService.js +297 -0
- package/dist/core/appendonlystores/network/AuthenticationService.js.map +1 -0
- package/dist/core/appendonlystores/network/NetworkTransport.d.ts +174 -0
- package/dist/core/appendonlystores/network/NetworkTransport.d.ts.map +1 -0
- package/dist/core/appendonlystores/network/NetworkTransport.js +3 -0
- package/dist/core/appendonlystores/network/NetworkTransport.js.map +1 -0
- package/dist/core/appendonlystores/network/types.d.ts +135 -0
- package/dist/core/appendonlystores/network/types.d.ts.map +1 -0
- package/dist/core/appendonlystores/network/types.js +35 -0
- package/dist/core/appendonlystores/network/types.js.map +1 -0
- package/dist/core/appendonlystores/types.d.ts +157 -0
- package/dist/core/appendonlystores/types.d.ts.map +1 -0
- package/dist/core/appendonlystores/types.js +3 -0
- package/dist/core/appendonlystores/types.js.map +1 -0
- package/dist/core/crypto/CryptoAdapter.d.ts +19 -0
- package/dist/core/crypto/CryptoAdapter.d.ts.map +1 -0
- package/dist/core/crypto/CryptoAdapter.js +3 -0
- package/dist/core/crypto/CryptoAdapter.js.map +1 -0
- package/dist/core/crypto/MindooDocSigner.d.ts +106 -0
- package/dist/core/crypto/MindooDocSigner.d.ts.map +1 -0
- package/dist/core/crypto/MindooDocSigner.js +192 -0
- package/dist/core/crypto/MindooDocSigner.js.map +1 -0
- package/dist/core/crypto/RSAEncryption.d.ts +62 -0
- package/dist/core/crypto/RSAEncryption.d.ts.map +1 -0
- package/dist/core/crypto/RSAEncryption.js +167 -0
- package/dist/core/crypto/RSAEncryption.js.map +1 -0
- package/dist/core/errors.d.ts +10 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +17 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/index.d.ts +14 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +53 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/indexing/virtualviews/IViewEntryAccessCheck.d.ts +33 -0
- package/dist/core/indexing/virtualviews/IViewEntryAccessCheck.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/IViewEntryAccessCheck.js +27 -0
- package/dist/core/indexing/virtualviews/IViewEntryAccessCheck.js.map +1 -0
- package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.d.ts +31 -0
- package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.js +3 -0
- package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.js.map +1 -0
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts +52 -0
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js +106 -0
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js.map +1 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKey.d.ts +44 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKey.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKey.js +107 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKey.js.map +1 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.d.ts +28 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.js +133 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.js.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualView.d.ts +109 -0
- package/dist/core/indexing/virtualviews/VirtualView.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualView.js +504 -0
- package/dist/core/indexing/virtualviews/VirtualView.js.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewColumn.d.ts +59 -0
- package/dist/core/indexing/virtualviews/VirtualViewColumn.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewColumn.js +70 -0
- package/dist/core/indexing/virtualviews/VirtualViewColumn.js.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewDataChange.d.ts +49 -0
- package/dist/core/indexing/virtualviews/VirtualViewDataChange.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewDataChange.js +69 -0
- package/dist/core/indexing/virtualviews/VirtualViewDataChange.js.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts +121 -0
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.js +365 -0
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.js.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts +131 -0
- package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewFactory.js +236 -0
- package/dist/core/indexing/virtualviews/VirtualViewFactory.js.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewNavigator.d.ts +330 -0
- package/dist/core/indexing/virtualviews/VirtualViewNavigator.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewNavigator.js +1010 -0
- package/dist/core/indexing/virtualviews/VirtualViewNavigator.js.map +1 -0
- package/dist/core/indexing/virtualviews/index.d.ts +53 -0
- package/dist/core/indexing/virtualviews/index.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/index.js +89 -0
- package/dist/core/indexing/virtualviews/index.js.map +1 -0
- package/dist/core/indexing/virtualviews/types.d.ts +115 -0
- package/dist/core/indexing/virtualviews/types.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/types.js +175 -0
- package/dist/core/indexing/virtualviews/types.js.map +1 -0
- package/dist/core/keys/KeyBag.d.ts +122 -0
- package/dist/core/keys/KeyBag.d.ts.map +1 -0
- package/dist/core/keys/KeyBag.js +401 -0
- package/dist/core/keys/KeyBag.js.map +1 -0
- package/dist/core/types.d.ts +1004 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +10 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/userid/index.d.ts +53 -0
- package/dist/core/userid/index.d.ts.map +1 -0
- package/dist/core/userid/index.js +3 -0
- package/dist/core/userid/index.js.map +1 -0
- package/dist/core/utils/idGeneration.d.ts +109 -0
- package/dist/core/utils/idGeneration.d.ts.map +1 -0
- package/dist/core/utils/idGeneration.js +182 -0
- package/dist/core/utils/idGeneration.js.map +1 -0
- package/dist/core/utils/index.d.ts +5 -0
- package/dist/core/utils/index.d.ts.map +1 -0
- package/dist/core/utils/index.js +19 -0
- package/dist/core/utils/index.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/node/crypto/NodeCryptoAdapter.d.ts +16 -0
- package/dist/node/crypto/NodeCryptoAdapter.d.ts.map +1 -0
- package/dist/node/crypto/NodeCryptoAdapter.js +53 -0
- package/dist/node/crypto/NodeCryptoAdapter.js.map +1 -0
- package/dist/node/index.d.ts +3 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +26 -0
- package/dist/node/index.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseMindooDB.js","sourceRoot":"","sources":["../../src/core/BaseMindooDB.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { MindooTenant, EncryptedPrivateKey, MindooDB, ContentAddressedStoreFactory, OpenDBOptions, MindooTenantFactory, MindooTenantDirectory, SigningKeyPair } from "./types";
|
|
2
|
+
import { PrivateUserId, PublicUserId } from "./userid";
|
|
3
|
+
import { CryptoAdapter } from "./crypto/CryptoAdapter";
|
|
4
|
+
import { KeyBag } from "./keys/KeyBag";
|
|
5
|
+
import { MindooDocSigner } from "./crypto/MindooDocSigner";
|
|
6
|
+
/**
|
|
7
|
+
* BaseMindooTenant is a platform-agnostic implementation of MindooTenant
|
|
8
|
+
* that works in both browser and server environments.
|
|
9
|
+
*
|
|
10
|
+
* It uses a CryptoAdapter to abstract platform-specific crypto operations,
|
|
11
|
+
* allowing the same implementation to work in browsers and Node.js.
|
|
12
|
+
*
|
|
13
|
+
* Dependencies:
|
|
14
|
+
* - Web Crypto API: Available in both browser (window.crypto) and Node.js (crypto.webcrypto)
|
|
15
|
+
* - AES-256-GCM encryption (widely supported)
|
|
16
|
+
* - Ed25519 signing/verification (Node.js 15+, Chrome 92+)
|
|
17
|
+
* - RSA/ECDH encryption (for encrypting named symmetric keys map)
|
|
18
|
+
* - PBKDF2 key derivation (for password-based key derivation)
|
|
19
|
+
*/
|
|
20
|
+
export declare class BaseMindooTenant implements MindooTenant {
|
|
21
|
+
private factory;
|
|
22
|
+
private tenantId;
|
|
23
|
+
private tenantEncryptionKey;
|
|
24
|
+
private tenantEncryptionKeyPassword;
|
|
25
|
+
private administrationPublicKey;
|
|
26
|
+
private administrationEncryptionPublicKey;
|
|
27
|
+
private currentUser;
|
|
28
|
+
private currentUserPassword;
|
|
29
|
+
protected cryptoAdapter: CryptoAdapter;
|
|
30
|
+
private keyBag;
|
|
31
|
+
private storeFactory;
|
|
32
|
+
private databaseCache;
|
|
33
|
+
private directoryCache;
|
|
34
|
+
private decryptedTenantKeyCache?;
|
|
35
|
+
private decryptedUserSigningKeyCache?;
|
|
36
|
+
private decryptedUserEncryptionKeyCache?;
|
|
37
|
+
constructor(factory: MindooTenantFactory, tenantId: string, tenantEncryptionKey: EncryptedPrivateKey, tenantEncryptionKeyPassword: string, administrationPublicKey: string, administrationEncryptionPublicKey: string, currentUser: PrivateUserId, currentUserPassword: string, keyBag: KeyBag, storeFactory: ContentAddressedStoreFactory, cryptoAdapter?: CryptoAdapter);
|
|
38
|
+
/**
|
|
39
|
+
* Initialize the tenant.
|
|
40
|
+
*/
|
|
41
|
+
initialize(): Promise<void>;
|
|
42
|
+
getCryptoAdapter(): CryptoAdapter;
|
|
43
|
+
getFactory(): MindooTenantFactory;
|
|
44
|
+
getId(): string;
|
|
45
|
+
/**
|
|
46
|
+
* Get the administration public key for this tenant.
|
|
47
|
+
* Used for creating document signers for administrative operations.
|
|
48
|
+
*
|
|
49
|
+
* @return The administration public key (Ed25519, PEM format)
|
|
50
|
+
*/
|
|
51
|
+
getAdministrationPublicKey(): string;
|
|
52
|
+
/**
|
|
53
|
+
* Get the administration encryption public key for this tenant.
|
|
54
|
+
* Used for encrypting sensitive data in the directory that only admins can decrypt
|
|
55
|
+
* (e.g., usernames in access control documents).
|
|
56
|
+
*
|
|
57
|
+
* @return The administration encryption public key (RSA-OAEP, PEM format)
|
|
58
|
+
*/
|
|
59
|
+
getAdministrationEncryptionPublicKey(): string;
|
|
60
|
+
getTenantEncryptionKey(): EncryptedPrivateKey;
|
|
61
|
+
encryptPayload(payload: Uint8Array, decryptionKeyId: string): Promise<Uint8Array>;
|
|
62
|
+
decryptPayload(encryptedPayload: Uint8Array, decryptionKeyId: string): Promise<Uint8Array>;
|
|
63
|
+
signPayload(payload: Uint8Array): Promise<Uint8Array>;
|
|
64
|
+
signPayloadWithKey(payload: Uint8Array, signingKeyPair: SigningKeyPair, password: string): Promise<Uint8Array>;
|
|
65
|
+
verifySignature(payload: Uint8Array, signature: Uint8Array, publicKey: string): Promise<boolean>;
|
|
66
|
+
validatePublicSigningKey(publicKey: string): Promise<boolean>;
|
|
67
|
+
getCurrentUserId(): Promise<PublicUserId>;
|
|
68
|
+
openDirectory(): Promise<MindooTenantDirectory>;
|
|
69
|
+
openDB(id: string, options?: OpenDBOptions): Promise<MindooDB>;
|
|
70
|
+
createDocSignerFor(signKey: SigningKeyPair): MindooDocSigner;
|
|
71
|
+
/**
|
|
72
|
+
* Internal method to get the decrypted signing key for the current user.
|
|
73
|
+
*/
|
|
74
|
+
private getDecryptedSigningKey;
|
|
75
|
+
/**
|
|
76
|
+
* Internal method to decrypt a private key using password-based key derivation.
|
|
77
|
+
* Protected so that BaseMindooTenantDirectory can access it.
|
|
78
|
+
*
|
|
79
|
+
* @param encryptedKey The encrypted private key
|
|
80
|
+
* @param password The password to decrypt the key
|
|
81
|
+
* @param saltString The salt string for key derivation (e.g., "signing", "encryption", "administration", keyId)
|
|
82
|
+
* This is combined with the encryptedKey.salt for additional security
|
|
83
|
+
* @returns The decrypted private key as ArrayBuffer
|
|
84
|
+
*/
|
|
85
|
+
decryptPrivateKey(encryptedKey: EncryptedPrivateKey, password: string, saltString: string): Promise<ArrayBuffer>;
|
|
86
|
+
/**
|
|
87
|
+
* Helper method to convert base64 string to Uint8Array
|
|
88
|
+
* Protected so that BaseMindooTenantDirectory can access it.
|
|
89
|
+
*/
|
|
90
|
+
protected base64ToUint8Array(base64: string): Uint8Array;
|
|
91
|
+
/**
|
|
92
|
+
* Helper method to convert Uint8Array to base64 string
|
|
93
|
+
* Protected so that BaseMindooTenantDirectory can access it.
|
|
94
|
+
*/
|
|
95
|
+
uint8ArrayToBase64(bytes: Uint8Array): string;
|
|
96
|
+
/**
|
|
97
|
+
* Helper method to convert PEM format to ArrayBuffer
|
|
98
|
+
* Removes PEM headers/footers and decodes base64 content
|
|
99
|
+
* Public so that MindooDocSigner and other utilities can use it.
|
|
100
|
+
*/
|
|
101
|
+
pemToArrayBuffer(pem: string): ArrayBuffer;
|
|
102
|
+
/**
|
|
103
|
+
* Encryption mode byte values for attachment payloads.
|
|
104
|
+
* 0x00 = Random IV (more secure, no deduplication)
|
|
105
|
+
* 0x01 = Deterministic IV (enables deduplication, reveals identical content)
|
|
106
|
+
*/
|
|
107
|
+
protected static readonly ENCRYPTION_MODE_RANDOM = 0;
|
|
108
|
+
protected static readonly ENCRYPTION_MODE_DETERMINISTIC = 1;
|
|
109
|
+
/**
|
|
110
|
+
* Get the symmetric key for a given key ID.
|
|
111
|
+
* This is a protected helper method that can be used by subclasses.
|
|
112
|
+
*
|
|
113
|
+
* @param decryptionKeyId The key ID ("default" or a named key ID)
|
|
114
|
+
* @returns The decrypted symmetric key bytes
|
|
115
|
+
*/
|
|
116
|
+
protected getSymmetricKey(decryptionKeyId: string): Promise<Uint8Array>;
|
|
117
|
+
/**
|
|
118
|
+
* Configuration method that determines whether to use deterministic encryption for attachments.
|
|
119
|
+
* Subclasses can override this to change the default behavior.
|
|
120
|
+
*
|
|
121
|
+
* When true (default):
|
|
122
|
+
* - Same plaintext + same key = same ciphertext (enables deduplication)
|
|
123
|
+
* - Reveals when identical content is stored
|
|
124
|
+
*
|
|
125
|
+
* When false:
|
|
126
|
+
* - Each encryption produces unique ciphertext
|
|
127
|
+
* - No deduplication possible
|
|
128
|
+
* - More secure for sensitive content
|
|
129
|
+
*
|
|
130
|
+
* @returns True to use deterministic encryption, false for random IV
|
|
131
|
+
*/
|
|
132
|
+
protected usesDeterministicAttachmentEncryption(): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Encrypt an attachment payload with the appropriate encryption mode.
|
|
135
|
+
* Uses mode prefix format: [mode byte][IV (12 bytes)][encrypted data + tag]
|
|
136
|
+
*
|
|
137
|
+
* For deterministic mode (0x01), the IV is derived from SHA-256(plaintext)[:12]
|
|
138
|
+
* For random mode (0x00), the IV is randomly generated
|
|
139
|
+
*
|
|
140
|
+
* @param payload The plaintext attachment data
|
|
141
|
+
* @param decryptionKeyId The key ID for encryption
|
|
142
|
+
* @returns The encrypted payload with mode prefix
|
|
143
|
+
*/
|
|
144
|
+
encryptAttachmentPayload(payload: Uint8Array, decryptionKeyId: string): Promise<Uint8Array>;
|
|
145
|
+
/**
|
|
146
|
+
* Decrypt an attachment payload that was encrypted with encryptAttachmentPayload.
|
|
147
|
+
* Reads the mode prefix to determine which decryption method to use.
|
|
148
|
+
*
|
|
149
|
+
* @param encryptedPayload The encrypted payload with mode prefix
|
|
150
|
+
* @param decryptionKeyId The key ID for decryption
|
|
151
|
+
* @returns The decrypted plaintext
|
|
152
|
+
*/
|
|
153
|
+
decryptAttachmentPayload(encryptedPayload: Uint8Array, decryptionKeyId: string): Promise<Uint8Array>;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=BaseMindooTenant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseMindooTenant.d.ts","sourceRoot":"","sources":["../../src/core/BaseMindooTenant.ts"],"names":[],"mappings":"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"}
|