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":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PUBLIC_INFOS_KEY_ID = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Well-known key ID for access control documents (grantaccess, revokeaccess, groups).
|
|
6
|
+
* All servers and clients MUST have this key in their KeyBag to verify user access.
|
|
7
|
+
* This enables servers to validate users without having full tenant data access.
|
|
8
|
+
*/
|
|
9
|
+
exports.PUBLIC_INFOS_KEY_ID = "$publicinfos";
|
|
10
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":";;;AAMA;;;;GAIG;AACU,QAAA,mBAAmB,GAAG,cAAc,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { SigningKeyPair, EncryptionKeyPair } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Public info for a user of the platform
|
|
4
|
+
*/
|
|
5
|
+
export interface PublicUserId {
|
|
6
|
+
/**
|
|
7
|
+
* The username of the user (format: "CN=<username>/O=<tenantId>")
|
|
8
|
+
*/
|
|
9
|
+
username: string;
|
|
10
|
+
/**
|
|
11
|
+
* Signature by the administration key proving that an admin has granted this user
|
|
12
|
+
* access to the tenant. This signature covers the username and other user identification.
|
|
13
|
+
*/
|
|
14
|
+
administrationSignature: string;
|
|
15
|
+
/**
|
|
16
|
+
* The public key for signing (Ed25519, PEM format)
|
|
17
|
+
* Used ONLY for signing document changes, not for encryption.
|
|
18
|
+
*/
|
|
19
|
+
userSigningPublicKey: string;
|
|
20
|
+
/**
|
|
21
|
+
* The public key for encryption (RSA-OAEP, PEM format)
|
|
22
|
+
* Used ONLY for encrypting/decrypting the named symmetric keys map stored on disk, not for signing.
|
|
23
|
+
*/
|
|
24
|
+
userEncryptionPublicKey: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Private info for a user of the platform
|
|
28
|
+
* This is used to sign and encrypt operations for the user and not publicly shared.
|
|
29
|
+
*/
|
|
30
|
+
export interface PrivateUserId {
|
|
31
|
+
/**
|
|
32
|
+
* The username of the user (format: "CN=<username>/O=<tenantId>")
|
|
33
|
+
*/
|
|
34
|
+
username: string;
|
|
35
|
+
/**
|
|
36
|
+
* Signature by the administration key proving that an admin has granted this user
|
|
37
|
+
* access to the tenant. This signature covers the username and other user identification.
|
|
38
|
+
*/
|
|
39
|
+
administrationSignature: string;
|
|
40
|
+
/**
|
|
41
|
+
* The signing key pair (Ed25519).
|
|
42
|
+
* Contains both public and encrypted private key.
|
|
43
|
+
* Used ONLY for signing document changes, not for encryption.
|
|
44
|
+
*/
|
|
45
|
+
userSigningKeyPair: SigningKeyPair;
|
|
46
|
+
/**
|
|
47
|
+
* The encryption key pair (RSA-OAEP).
|
|
48
|
+
* Contains both public and encrypted private key.
|
|
49
|
+
* Used ONLY for encrypting/decrypting the named symmetric keys map stored on disk, not for signing.
|
|
50
|
+
*/
|
|
51
|
+
userEncryptionKeyPair: EncryptionKeyPair;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/userid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,kBAAkB,EAAE,cAAc,CAAC;IAEnC;;;;OAIG;IACH,qBAAqB,EAAE,iBAAiB,CAAC;CAC1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/userid/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ID Generation Utilities for ContentAddressedStore entries.
|
|
3
|
+
*
|
|
4
|
+
* Provides structured ID formats that enable:
|
|
5
|
+
* - Guaranteed uniqueness across documents
|
|
6
|
+
* - Efficient prefix-based queries
|
|
7
|
+
* - Debugging visibility into entry relationships
|
|
8
|
+
* - Blockchain-like integrity for document entries
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Generate a document entry ID with blockchain-like chaining.
|
|
12
|
+
* Format: <docId>_d_<depsFingerprint>_<automergeHash>
|
|
13
|
+
*
|
|
14
|
+
* The depsFingerprint is the first 8 hex characters of SHA256(sorted deps),
|
|
15
|
+
* or "0" if there are no dependencies.
|
|
16
|
+
*
|
|
17
|
+
* @param docId The document ID (UUID7 format)
|
|
18
|
+
* @param automergeHash The Automerge change hash
|
|
19
|
+
* @param dependencyAutomergeHashes The Automerge hashes of dependencies
|
|
20
|
+
* @param subtle The SubtleCrypto instance for hashing
|
|
21
|
+
* @returns The generated entry ID
|
|
22
|
+
*/
|
|
23
|
+
export declare function generateDocEntryId(docId: string, automergeHash: string, dependencyAutomergeHashes: string[], subtle: SubtleCrypto): Promise<string>;
|
|
24
|
+
/**
|
|
25
|
+
* Generate a dependency fingerprint from a list of Automerge hashes.
|
|
26
|
+
* This is the first 8 hex characters of SHA256(sorted deps), or "0" if empty.
|
|
27
|
+
*
|
|
28
|
+
* @param dependencyAutomergeHashes The Automerge hashes of dependencies
|
|
29
|
+
* @param subtle The SubtleCrypto instance for hashing
|
|
30
|
+
* @returns The 8-character fingerprint
|
|
31
|
+
*/
|
|
32
|
+
export declare function generateDepsFingerprint(dependencyAutomergeHashes: string[], subtle: SubtleCrypto): Promise<string>;
|
|
33
|
+
/**
|
|
34
|
+
* Generate an attachment chunk ID.
|
|
35
|
+
* Format: <docId>_a_<fileUuid7>_<base62ChunkUuid7>
|
|
36
|
+
*
|
|
37
|
+
* @param docId The document ID this attachment belongs to
|
|
38
|
+
* @param fileUuid7 The UUID7 for the whole file (same for all chunks)
|
|
39
|
+
* @param chunkUuid7 Optional UUID7 for this chunk. If not provided, generates new one.
|
|
40
|
+
* @returns The generated chunk ID
|
|
41
|
+
*/
|
|
42
|
+
export declare function generateAttachmentChunkId(docId: string, fileUuid7: string, chunkUuid7?: string): string;
|
|
43
|
+
/**
|
|
44
|
+
* Generate a new file UUID7.
|
|
45
|
+
* This should be called once per file and reused for all chunks of that file.
|
|
46
|
+
*
|
|
47
|
+
* @returns A new UUID7 string
|
|
48
|
+
*/
|
|
49
|
+
export declare function generateFileUuid7(): string;
|
|
50
|
+
/**
|
|
51
|
+
* Generate a new chunk UUID7.
|
|
52
|
+
* This should be called for each chunk within a file.
|
|
53
|
+
*
|
|
54
|
+
* @returns A new UUID7 string
|
|
55
|
+
*/
|
|
56
|
+
export declare function generateChunkUuid7(): string;
|
|
57
|
+
/**
|
|
58
|
+
* Parse a document entry ID to extract its components.
|
|
59
|
+
*
|
|
60
|
+
* @param id The entry ID to parse
|
|
61
|
+
* @returns The parsed components, or null if the ID doesn't match the expected format
|
|
62
|
+
*/
|
|
63
|
+
export declare function parseDocEntryId(id: string): {
|
|
64
|
+
docId: string;
|
|
65
|
+
depsFingerprint: string;
|
|
66
|
+
automergeHash: string;
|
|
67
|
+
} | null;
|
|
68
|
+
/**
|
|
69
|
+
* Parse an attachment chunk ID to extract its components.
|
|
70
|
+
*
|
|
71
|
+
* @param id The chunk ID to parse
|
|
72
|
+
* @returns The parsed components, or null if the ID doesn't match the expected format
|
|
73
|
+
*/
|
|
74
|
+
export declare function parseAttachmentChunkId(id: string): {
|
|
75
|
+
docId: string;
|
|
76
|
+
fileUuid7: string;
|
|
77
|
+
base62ChunkId: string;
|
|
78
|
+
} | null;
|
|
79
|
+
/**
|
|
80
|
+
* Check if an ID is a document entry ID (contains "_d_").
|
|
81
|
+
*
|
|
82
|
+
* @param id The ID to check
|
|
83
|
+
* @returns True if this is a document entry ID
|
|
84
|
+
*/
|
|
85
|
+
export declare function isDocEntryId(id: string): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Check if an ID is an attachment chunk ID (contains "_a_").
|
|
88
|
+
*
|
|
89
|
+
* @param id The ID to check
|
|
90
|
+
* @returns True if this is an attachment chunk ID
|
|
91
|
+
*/
|
|
92
|
+
export declare function isAttachmentChunkId(id: string): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Extract the docId from any entry ID (document or attachment).
|
|
95
|
+
*
|
|
96
|
+
* @param id The entry ID
|
|
97
|
+
* @returns The docId portion, or null if the ID format is unrecognized
|
|
98
|
+
*/
|
|
99
|
+
export declare function extractDocIdFromEntryId(id: string): string | null;
|
|
100
|
+
/**
|
|
101
|
+
* Compute the SHA-256 hash of data and return it as a hex string.
|
|
102
|
+
* Used for computing contentHash of encrypted data.
|
|
103
|
+
*
|
|
104
|
+
* @param data The data to hash
|
|
105
|
+
* @param subtle The SubtleCrypto instance
|
|
106
|
+
* @returns The hex-encoded SHA-256 hash
|
|
107
|
+
*/
|
|
108
|
+
export declare function computeContentHash(data: Uint8Array, subtle: SubtleCrypto): Promise<string>;
|
|
109
|
+
//# sourceMappingURL=idGeneration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idGeneration.d.ts","sourceRoot":"","sources":["../../../src/core/utils/idGeneration.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,yBAAyB,EAAE,MAAM,EAAE,EACnC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,yBAAyB,EAAE,MAAM,EAAE,EACnC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CAajB;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,IAAI,CAUP;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,IAAI,CASP;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASjE;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CAOjB"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ID Generation Utilities for ContentAddressedStore entries.
|
|
4
|
+
*
|
|
5
|
+
* Provides structured ID formats that enable:
|
|
6
|
+
* - Guaranteed uniqueness across documents
|
|
7
|
+
* - Efficient prefix-based queries
|
|
8
|
+
* - Debugging visibility into entry relationships
|
|
9
|
+
* - Blockchain-like integrity for document entries
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.generateDocEntryId = generateDocEntryId;
|
|
13
|
+
exports.generateDepsFingerprint = generateDepsFingerprint;
|
|
14
|
+
exports.generateAttachmentChunkId = generateAttachmentChunkId;
|
|
15
|
+
exports.generateFileUuid7 = generateFileUuid7;
|
|
16
|
+
exports.generateChunkUuid7 = generateChunkUuid7;
|
|
17
|
+
exports.parseDocEntryId = parseDocEntryId;
|
|
18
|
+
exports.parseAttachmentChunkId = parseAttachmentChunkId;
|
|
19
|
+
exports.isDocEntryId = isDocEntryId;
|
|
20
|
+
exports.isAttachmentChunkId = isAttachmentChunkId;
|
|
21
|
+
exports.extractDocIdFromEntryId = extractDocIdFromEntryId;
|
|
22
|
+
exports.computeContentHash = computeContentHash;
|
|
23
|
+
const uuid_base62_1 = require("@digitalmaas/uuid-base62");
|
|
24
|
+
const uuid_1 = require("uuid");
|
|
25
|
+
/**
|
|
26
|
+
* Generate a document entry ID with blockchain-like chaining.
|
|
27
|
+
* Format: <docId>_d_<depsFingerprint>_<automergeHash>
|
|
28
|
+
*
|
|
29
|
+
* The depsFingerprint is the first 8 hex characters of SHA256(sorted deps),
|
|
30
|
+
* or "0" if there are no dependencies.
|
|
31
|
+
*
|
|
32
|
+
* @param docId The document ID (UUID7 format)
|
|
33
|
+
* @param automergeHash The Automerge change hash
|
|
34
|
+
* @param dependencyAutomergeHashes The Automerge hashes of dependencies
|
|
35
|
+
* @param subtle The SubtleCrypto instance for hashing
|
|
36
|
+
* @returns The generated entry ID
|
|
37
|
+
*/
|
|
38
|
+
async function generateDocEntryId(docId, automergeHash, dependencyAutomergeHashes, subtle) {
|
|
39
|
+
const depsFingerprint = await generateDepsFingerprint(dependencyAutomergeHashes, subtle);
|
|
40
|
+
return `${docId}_d_${depsFingerprint}_${automergeHash}`;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Generate a dependency fingerprint from a list of Automerge hashes.
|
|
44
|
+
* This is the first 8 hex characters of SHA256(sorted deps), or "0" if empty.
|
|
45
|
+
*
|
|
46
|
+
* @param dependencyAutomergeHashes The Automerge hashes of dependencies
|
|
47
|
+
* @param subtle The SubtleCrypto instance for hashing
|
|
48
|
+
* @returns The 8-character fingerprint
|
|
49
|
+
*/
|
|
50
|
+
async function generateDepsFingerprint(dependencyAutomergeHashes, subtle) {
|
|
51
|
+
if (dependencyAutomergeHashes.length === 0) {
|
|
52
|
+
return "0";
|
|
53
|
+
}
|
|
54
|
+
// Sort deps for deterministic fingerprint
|
|
55
|
+
const sortedDeps = [...dependencyAutomergeHashes].sort();
|
|
56
|
+
const depsString = sortedDeps.join(",");
|
|
57
|
+
const hashBuffer = await subtle.digest("SHA-256", new TextEncoder().encode(depsString));
|
|
58
|
+
return Array.from(new Uint8Array(hashBuffer))
|
|
59
|
+
.slice(0, 4) // First 4 bytes = 8 hex chars
|
|
60
|
+
.map(b => b.toString(16).padStart(2, '0'))
|
|
61
|
+
.join('');
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Generate an attachment chunk ID.
|
|
65
|
+
* Format: <docId>_a_<fileUuid7>_<base62ChunkUuid7>
|
|
66
|
+
*
|
|
67
|
+
* @param docId The document ID this attachment belongs to
|
|
68
|
+
* @param fileUuid7 The UUID7 for the whole file (same for all chunks)
|
|
69
|
+
* @param chunkUuid7 Optional UUID7 for this chunk. If not provided, generates new one.
|
|
70
|
+
* @returns The generated chunk ID
|
|
71
|
+
*/
|
|
72
|
+
function generateAttachmentChunkId(docId, fileUuid7, chunkUuid7) {
|
|
73
|
+
const chunkId = chunkUuid7 || (0, uuid_1.v7)();
|
|
74
|
+
// base62Encode expects UUID with dashes
|
|
75
|
+
const base62Chunk = (0, uuid_base62_1.encode)(chunkId);
|
|
76
|
+
return `${docId}_a_${fileUuid7}_${base62Chunk}`;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Generate a new file UUID7.
|
|
80
|
+
* This should be called once per file and reused for all chunks of that file.
|
|
81
|
+
*
|
|
82
|
+
* @returns A new UUID7 string
|
|
83
|
+
*/
|
|
84
|
+
function generateFileUuid7() {
|
|
85
|
+
return (0, uuid_1.v7)();
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Generate a new chunk UUID7.
|
|
89
|
+
* This should be called for each chunk within a file.
|
|
90
|
+
*
|
|
91
|
+
* @returns A new UUID7 string
|
|
92
|
+
*/
|
|
93
|
+
function generateChunkUuid7() {
|
|
94
|
+
return (0, uuid_1.v7)();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Parse a document entry ID to extract its components.
|
|
98
|
+
*
|
|
99
|
+
* @param id The entry ID to parse
|
|
100
|
+
* @returns The parsed components, or null if the ID doesn't match the expected format
|
|
101
|
+
*/
|
|
102
|
+
function parseDocEntryId(id) {
|
|
103
|
+
// Match: <docId>_d_<depsFingerprint>_<automergeHash>
|
|
104
|
+
// Note: docId itself may contain underscores (UUID7 doesn't, but be safe)
|
|
105
|
+
const match = id.match(/^(.+)_d_([0-9a-f]+|0)_(.+)$/);
|
|
106
|
+
if (!match)
|
|
107
|
+
return null;
|
|
108
|
+
return {
|
|
109
|
+
docId: match[1],
|
|
110
|
+
depsFingerprint: match[2],
|
|
111
|
+
automergeHash: match[3],
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Parse an attachment chunk ID to extract its components.
|
|
116
|
+
*
|
|
117
|
+
* @param id The chunk ID to parse
|
|
118
|
+
* @returns The parsed components, or null if the ID doesn't match the expected format
|
|
119
|
+
*/
|
|
120
|
+
function parseAttachmentChunkId(id) {
|
|
121
|
+
// Match: <docId>_a_<fileUuid7>_<base62ChunkId>
|
|
122
|
+
const match = id.match(/^(.+)_a_([^_]+)_(.+)$/);
|
|
123
|
+
if (!match)
|
|
124
|
+
return null;
|
|
125
|
+
return {
|
|
126
|
+
docId: match[1],
|
|
127
|
+
fileUuid7: match[2],
|
|
128
|
+
base62ChunkId: match[3],
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Check if an ID is a document entry ID (contains "_d_").
|
|
133
|
+
*
|
|
134
|
+
* @param id The ID to check
|
|
135
|
+
* @returns True if this is a document entry ID
|
|
136
|
+
*/
|
|
137
|
+
function isDocEntryId(id) {
|
|
138
|
+
return id.includes('_d_');
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Check if an ID is an attachment chunk ID (contains "_a_").
|
|
142
|
+
*
|
|
143
|
+
* @param id The ID to check
|
|
144
|
+
* @returns True if this is an attachment chunk ID
|
|
145
|
+
*/
|
|
146
|
+
function isAttachmentChunkId(id) {
|
|
147
|
+
return id.includes('_a_');
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Extract the docId from any entry ID (document or attachment).
|
|
151
|
+
*
|
|
152
|
+
* @param id The entry ID
|
|
153
|
+
* @returns The docId portion, or null if the ID format is unrecognized
|
|
154
|
+
*/
|
|
155
|
+
function extractDocIdFromEntryId(id) {
|
|
156
|
+
if (isDocEntryId(id)) {
|
|
157
|
+
const parsed = parseDocEntryId(id);
|
|
158
|
+
return parsed?.docId || null;
|
|
159
|
+
}
|
|
160
|
+
else if (isAttachmentChunkId(id)) {
|
|
161
|
+
const parsed = parseAttachmentChunkId(id);
|
|
162
|
+
return parsed?.docId || null;
|
|
163
|
+
}
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Compute the SHA-256 hash of data and return it as a hex string.
|
|
168
|
+
* Used for computing contentHash of encrypted data.
|
|
169
|
+
*
|
|
170
|
+
* @param data The data to hash
|
|
171
|
+
* @param subtle The SubtleCrypto instance
|
|
172
|
+
* @returns The hex-encoded SHA-256 hash
|
|
173
|
+
*/
|
|
174
|
+
async function computeContentHash(data, subtle) {
|
|
175
|
+
// Use data.buffer with proper offset/length to handle views correctly
|
|
176
|
+
const buffer = data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
|
|
177
|
+
const hashBuffer = await subtle.digest("SHA-256", buffer);
|
|
178
|
+
return Array.from(new Uint8Array(hashBuffer))
|
|
179
|
+
.map(b => b.toString(16).padStart(2, '0'))
|
|
180
|
+
.join('');
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=idGeneration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idGeneration.js","sourceRoot":"","sources":["../../../src/core/utils/idGeneration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core utility functions for MindooDB.
|
|
3
|
+
*/
|
|
4
|
+
export { generateDocEntryId, generateDepsFingerprint, generateAttachmentChunkId, generateFileUuid7, generateChunkUuid7, parseDocEntryId, parseAttachmentChunkId, isDocEntryId, isAttachmentChunkId, extractDocIdFromEntryId, computeContentHash, } from './idGeneration';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Core utility functions for MindooDB.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.computeContentHash = exports.extractDocIdFromEntryId = exports.isAttachmentChunkId = exports.isDocEntryId = exports.parseAttachmentChunkId = exports.parseDocEntryId = exports.generateChunkUuid7 = exports.generateFileUuid7 = exports.generateAttachmentChunkId = exports.generateDepsFingerprint = exports.generateDocEntryId = void 0;
|
|
7
|
+
var idGeneration_1 = require("./idGeneration");
|
|
8
|
+
Object.defineProperty(exports, "generateDocEntryId", { enumerable: true, get: function () { return idGeneration_1.generateDocEntryId; } });
|
|
9
|
+
Object.defineProperty(exports, "generateDepsFingerprint", { enumerable: true, get: function () { return idGeneration_1.generateDepsFingerprint; } });
|
|
10
|
+
Object.defineProperty(exports, "generateAttachmentChunkId", { enumerable: true, get: function () { return idGeneration_1.generateAttachmentChunkId; } });
|
|
11
|
+
Object.defineProperty(exports, "generateFileUuid7", { enumerable: true, get: function () { return idGeneration_1.generateFileUuid7; } });
|
|
12
|
+
Object.defineProperty(exports, "generateChunkUuid7", { enumerable: true, get: function () { return idGeneration_1.generateChunkUuid7; } });
|
|
13
|
+
Object.defineProperty(exports, "parseDocEntryId", { enumerable: true, get: function () { return idGeneration_1.parseDocEntryId; } });
|
|
14
|
+
Object.defineProperty(exports, "parseAttachmentChunkId", { enumerable: true, get: function () { return idGeneration_1.parseAttachmentChunkId; } });
|
|
15
|
+
Object.defineProperty(exports, "isDocEntryId", { enumerable: true, get: function () { return idGeneration_1.isDocEntryId; } });
|
|
16
|
+
Object.defineProperty(exports, "isAttachmentChunkId", { enumerable: true, get: function () { return idGeneration_1.isAttachmentChunkId; } });
|
|
17
|
+
Object.defineProperty(exports, "extractDocIdFromEntryId", { enumerable: true, get: function () { return idGeneration_1.extractDocIdFromEntryId; } });
|
|
18
|
+
Object.defineProperty(exports, "computeContentHash", { enumerable: true, get: function () { return idGeneration_1.computeContentHash; } });
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/utils/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+CAYwB;AAXtB,kHAAA,kBAAkB,OAAA;AAClB,uHAAA,uBAAuB,OAAA;AACvB,yHAAA,yBAAyB,OAAA;AACzB,iHAAA,iBAAiB,OAAA;AACjB,kHAAA,kBAAkB,OAAA;AAClB,+GAAA,eAAe,OAAA;AACf,sHAAA,sBAAsB,OAAA;AACtB,4GAAA,YAAY,OAAA;AACZ,mHAAA,mBAAmB,OAAA;AACnB,uHAAA,uBAAuB,OAAA;AACvB,kHAAA,kBAAkB,OAAA"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from "./core";
|
|
2
|
+
export { BaseMindooDB } from "./core/BaseMindooDB";
|
|
3
|
+
export { BaseMindooTenant } from "./core/BaseMindooTenant";
|
|
4
|
+
export { BaseMindooTenantFactory } from "./core/BaseMindooTenantFactory";
|
|
5
|
+
export { NodeCryptoAdapter, createCryptoAdapter } from "./node/crypto/NodeCryptoAdapter";
|
|
6
|
+
export { BrowserCryptoAdapter } from "./browser/crypto/BrowserCryptoAdapter";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,QAAQ,CAAC;AAIvB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAIzE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Main entry point - auto-detects platform and exports appropriate implementation
|
|
3
|
+
// For explicit platform imports, use:
|
|
4
|
+
// import { ... } from 'mindoodb/browser' (browser-specific)
|
|
5
|
+
// import { ... } from 'mindoodb/node' (Node.js-specific)
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
18
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.BrowserCryptoAdapter = exports.createCryptoAdapter = exports.NodeCryptoAdapter = exports.BaseMindooTenantFactory = exports.BaseMindooTenant = exports.BaseMindooDB = void 0;
|
|
22
|
+
// Re-export everything from core
|
|
23
|
+
__exportStar(require("./core"), exports);
|
|
24
|
+
// Re-export the Base* classes from their original locations
|
|
25
|
+
// (these will be moved to core in a future refactor)
|
|
26
|
+
var BaseMindooDB_1 = require("./core/BaseMindooDB");
|
|
27
|
+
Object.defineProperty(exports, "BaseMindooDB", { enumerable: true, get: function () { return BaseMindooDB_1.BaseMindooDB; } });
|
|
28
|
+
var BaseMindooTenant_1 = require("./core/BaseMindooTenant");
|
|
29
|
+
Object.defineProperty(exports, "BaseMindooTenant", { enumerable: true, get: function () { return BaseMindooTenant_1.BaseMindooTenant; } });
|
|
30
|
+
var BaseMindooTenantFactory_1 = require("./core/BaseMindooTenantFactory");
|
|
31
|
+
Object.defineProperty(exports, "BaseMindooTenantFactory", { enumerable: true, get: function () { return BaseMindooTenantFactory_1.BaseMindooTenantFactory; } });
|
|
32
|
+
// Re-export platform-specific adapters with auto-detection
|
|
33
|
+
// For Node.js environments
|
|
34
|
+
var NodeCryptoAdapter_1 = require("./node/crypto/NodeCryptoAdapter");
|
|
35
|
+
Object.defineProperty(exports, "NodeCryptoAdapter", { enumerable: true, get: function () { return NodeCryptoAdapter_1.NodeCryptoAdapter; } });
|
|
36
|
+
Object.defineProperty(exports, "createCryptoAdapter", { enumerable: true, get: function () { return NodeCryptoAdapter_1.createCryptoAdapter; } });
|
|
37
|
+
// For browser environments, users should import from 'mindoodb/browser'
|
|
38
|
+
var BrowserCryptoAdapter_1 = require("./browser/crypto/BrowserCryptoAdapter");
|
|
39
|
+
Object.defineProperty(exports, "BrowserCryptoAdapter", { enumerable: true, get: function () { return BrowserCryptoAdapter_1.BrowserCryptoAdapter; } });
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,kFAAkF;AAClF,sCAAsC;AACtC,8DAA8D;AAC9D,2DAA2D;;;;;;;;;;;;;;;;;AAE3D,iCAAiC;AACjC,yCAAuB;AAEvB,4DAA4D;AAC5D,qDAAqD;AACrD,oDAAmD;AAA1C,4GAAA,YAAY,OAAA;AACrB,4DAA2D;AAAlD,oHAAA,gBAAgB,OAAA;AACzB,0EAAyE;AAAhE,kIAAA,uBAAuB,OAAA;AAEhC,2DAA2D;AAC3D,2BAA2B;AAC3B,qEAAyF;AAAhF,sHAAA,iBAAiB,OAAA;AAAE,wHAAA,mBAAmB,OAAA;AAC/C,wEAAwE;AACxE,8EAA6E;AAApE,4HAAA,oBAAoB,OAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { CryptoAdapter } from "../../core/crypto/CryptoAdapter";
|
|
2
|
+
/**
|
|
3
|
+
* Node.js implementation of CryptoAdapter.
|
|
4
|
+
* Uses crypto.webcrypto which is available in Node.js 15+.
|
|
5
|
+
*/
|
|
6
|
+
export declare class NodeCryptoAdapter implements CryptoAdapter {
|
|
7
|
+
private crypto;
|
|
8
|
+
constructor();
|
|
9
|
+
getSubtle(): SubtleCrypto;
|
|
10
|
+
getRandomValues(array: Uint8Array): Uint8Array;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Factory function to create the NodeCryptoAdapter.
|
|
14
|
+
*/
|
|
15
|
+
export declare function createCryptoAdapter(): CryptoAdapter;
|
|
16
|
+
//# sourceMappingURL=NodeCryptoAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeCryptoAdapter.d.ts","sourceRoot":"","sources":["../../../src/node/crypto/NodeCryptoAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,MAAM,CAAS;;IAwBvB,SAAS,IAAI,YAAY;IAOzB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;CAY/C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAEnD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NodeCryptoAdapter = void 0;
|
|
4
|
+
exports.createCryptoAdapter = createCryptoAdapter;
|
|
5
|
+
/**
|
|
6
|
+
* Node.js implementation of CryptoAdapter.
|
|
7
|
+
* Uses crypto.webcrypto which is available in Node.js 15+.
|
|
8
|
+
*/
|
|
9
|
+
class NodeCryptoAdapter {
|
|
10
|
+
constructor() {
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
12
|
+
const nodeCrypto = require("crypto");
|
|
13
|
+
if (!nodeCrypto) {
|
|
14
|
+
throw new Error("Failed to load crypto module");
|
|
15
|
+
}
|
|
16
|
+
// In Node.js 15+, crypto.webcrypto provides the Web Crypto API
|
|
17
|
+
// In Node.js 20+, globalThis.crypto is also available, but webcrypto is more reliable
|
|
18
|
+
if (!nodeCrypto.webcrypto) {
|
|
19
|
+
throw new Error("Web Crypto API not available. Node.js 15+ required.");
|
|
20
|
+
}
|
|
21
|
+
// Validate that webcrypto has the required methods
|
|
22
|
+
if (typeof nodeCrypto.webcrypto.getRandomValues !== "function" || !nodeCrypto.webcrypto.subtle) {
|
|
23
|
+
throw new Error("Web Crypto API incomplete. Missing getRandomValues or subtle.");
|
|
24
|
+
}
|
|
25
|
+
this.crypto = nodeCrypto.webcrypto;
|
|
26
|
+
}
|
|
27
|
+
getSubtle() {
|
|
28
|
+
if (!this.crypto || !this.crypto.subtle) {
|
|
29
|
+
throw new Error("Web Crypto API subtle not available");
|
|
30
|
+
}
|
|
31
|
+
return this.crypto.subtle;
|
|
32
|
+
}
|
|
33
|
+
getRandomValues(array) {
|
|
34
|
+
if (!this) {
|
|
35
|
+
throw new Error("getRandomValues called without 'this' context. Method must be bound.");
|
|
36
|
+
}
|
|
37
|
+
if (!this.crypto) {
|
|
38
|
+
throw new Error("Crypto instance not initialized. This should not happen.");
|
|
39
|
+
}
|
|
40
|
+
if (!this.crypto.getRandomValues) {
|
|
41
|
+
throw new Error("getRandomValues not available in Node.js environment");
|
|
42
|
+
}
|
|
43
|
+
return this.crypto.getRandomValues(array);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.NodeCryptoAdapter = NodeCryptoAdapter;
|
|
47
|
+
/**
|
|
48
|
+
* Factory function to create the NodeCryptoAdapter.
|
|
49
|
+
*/
|
|
50
|
+
function createCryptoAdapter() {
|
|
51
|
+
return new NodeCryptoAdapter();
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=NodeCryptoAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeCryptoAdapter.js","sourceRoot":"","sources":["../../../src/node/crypto/NodeCryptoAdapter.ts"],"names":[],"mappings":";;;AAuDA,kDAEC;AAvDD;;;GAGG;AACH,MAAa,iBAAiB;IAG5B;QACE,iEAAiE;QACjE,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAErC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,+DAA+D;QAC/D,sFAAsF;QACtF,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,mDAAmD;QACnD,IAAI,OAAO,UAAU,CAAC,SAAS,CAAC,eAAe,KAAK,UAAU,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC/F,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC;IACrC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,eAAe,CAAC,KAAiB;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;CACF;AA5CD,8CA4CC;AAED;;GAEG;AACH,SAAgB,mBAAmB;IACjC,OAAO,IAAI,iBAAiB,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Node.js-specific exports
|
|
3
|
+
// Re-exports everything from core plus Node.js-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.createCryptoAdapter = exports.NodeCryptoAdapter = void 0;
|
|
20
|
+
// Re-export all core exports
|
|
21
|
+
__exportStar(require("../core"), exports);
|
|
22
|
+
// Node.js-specific crypto adapter
|
|
23
|
+
var NodeCryptoAdapter_1 = require("./crypto/NodeCryptoAdapter");
|
|
24
|
+
Object.defineProperty(exports, "NodeCryptoAdapter", { enumerable: true, get: function () { return NodeCryptoAdapter_1.NodeCryptoAdapter; } });
|
|
25
|
+
Object.defineProperty(exports, "createCryptoAdapter", { enumerable: true, get: function () { return NodeCryptoAdapter_1.createCryptoAdapter; } });
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":";AAAA,2BAA2B;AAC3B,wEAAwE;;;;;;;;;;;;;;;;;AAExE,6BAA6B;AAC7B,0CAAwB;AAExB,kCAAkC;AAClC,gEAAoF;AAA3E,sHAAA,iBAAiB,OAAA;AAAE,wHAAA,mBAAmB,OAAA"}
|