mindoodb 0.0.2 → 0.0.3
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 +92 -19
- 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 +11 -1
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js +94 -0
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js.map +1 -1
- package/dist/appendonlystores/network/HttpTransport.d.ts +13 -2
- package/dist/appendonlystores/network/HttpTransport.d.ts.map +1 -1
- package/dist/appendonlystores/network/HttpTransport.js +86 -0
- package/dist/appendonlystores/network/HttpTransport.js.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +19 -2
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +96 -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 +61 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.d.ts.map +1 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.js +685 -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/index.d.ts +5 -0
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +13 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/core/BaseMindooDB.d.ts +12 -0
- package/dist/core/BaseMindooDB.d.ts.map +1 -1
- package/dist/core/BaseMindooDB.js +210 -108
- package/dist/core/BaseMindooDB.js.map +1 -1
- package/dist/core/BaseMindooTenant.d.ts +40 -6
- package/dist/core/BaseMindooTenant.d.ts.map +1 -1
- package/dist/core/BaseMindooTenant.js +179 -21
- package/dist/core/BaseMindooTenant.js.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.d.ts.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.js +10 -0
- package/dist/core/BaseMindooTenantDirectory.js.map +1 -1
- package/dist/core/BaseMindooTenantFactory.d.ts +22 -28
- package/dist/core/BaseMindooTenantFactory.d.ts.map +1 -1
- package/dist/core/BaseMindooTenantFactory.js +161 -65
- package/dist/core/BaseMindooTenantFactory.js.map +1 -1
- 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 +43 -3
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts.map +1 -1
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.js +162 -23
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.js.map +1 -1
- 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 +22 -2
- package/dist/core/appendonlystores/network/NetworkTransport.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/types.d.ts +10 -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 +123 -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/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/index.d.ts +7 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +30 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/keys/KeyBag.d.ts +32 -12
- package/dist/core/keys/KeyBag.d.ts.map +1 -1
- package/dist/core/keys/KeyBag.js +86 -26
- 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 +11 -0
- package/dist/core/keys/KeyContext.js.map +1 -0
- package/dist/core/types.d.ts +218 -50
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +2 -0
- 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/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts +541 -0
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts.map +1 -0
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js +1334 -0
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js.map +1 -0
- package/dist/node/index.d.ts +1 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +5 -1
- package/dist/node/index.js.map +1 -1
- 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 +8 -0
- package/dist/reactnative/index.d.ts.map +1 -0
- package/dist/reactnative/index.js +38 -0
- package/dist/reactnative/index.js.map +1 -0
- package/package.json +51 -6
- 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
package/dist/core/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { KeyBag } from "./keys/KeyBag";
|
|
2
|
+
import type { KeyType } from "./keys/KeyContext";
|
|
2
3
|
import type { PublicUserId, PrivateUserId } from "./userid";
|
|
3
4
|
import type { ContentAddressedStore, OpenStoreOptions } from "./appendonlystores/types";
|
|
4
5
|
import type { CryptoAdapter } from "./crypto/CryptoAdapter";
|
|
@@ -7,6 +8,8 @@ import { MindooDocSigner } from "./crypto/MindooDocSigner";
|
|
|
7
8
|
* Well-known key ID for access control documents (grantaccess, revokeaccess, groups).
|
|
8
9
|
* All servers and clients MUST have this key in their KeyBag to verify user access.
|
|
9
10
|
* This enables servers to validate users without having full tenant data access.
|
|
11
|
+
*
|
|
12
|
+
* KeyBag location: type "doc", id PUBLIC_INFOS_KEY_ID.
|
|
10
13
|
*/
|
|
11
14
|
export declare const PUBLIC_INFOS_KEY_ID = "$publicinfos";
|
|
12
15
|
/**
|
|
@@ -59,48 +62,156 @@ export interface EncryptionKeyPair {
|
|
|
59
62
|
privateKey: EncryptedPrivateKey;
|
|
60
63
|
}
|
|
61
64
|
export type { PublicUserId, PrivateUserId };
|
|
65
|
+
export type { KeyType };
|
|
62
66
|
/**
|
|
63
|
-
*
|
|
67
|
+
* Options for opening a tenant.
|
|
64
68
|
*/
|
|
65
|
-
export interface
|
|
69
|
+
export interface OpenTenantOptions {
|
|
66
70
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* (so that all data within the tenant is secure by default).
|
|
71
|
+
* Optional map of additional trusted signing public keys.
|
|
72
|
+
* Keys in this map are checked BEFORE the MindooTenantDirectory when
|
|
73
|
+
* validating public signing keys during signature verification.
|
|
71
74
|
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
+
* Use case: server-to-server sync where trusted server identities are
|
|
76
|
+
* configured out-of-band (e.g. server-env.json) rather than registered
|
|
77
|
+
* in the directory database.
|
|
75
78
|
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
* (e.g., usernames in access control documents).
|
|
79
|
-
*
|
|
80
|
-
* @param tenantId The ID of the tenant
|
|
81
|
-
* @param administrationPublicKey The administration public key (Ed25519, PEM format) created using createSigningKeyPair()
|
|
82
|
-
* @param administrationEncryptionPublicKey The administration encryption public key (RSA-OAEP, PEM format) created using createEncryptionKeyPair()
|
|
83
|
-
* @param tenantEncryptionKeyPassword The password to be set to decrypt the tenant encryption private key
|
|
84
|
-
* @param currentUser The current user's private user ID (required for tenant operations)
|
|
85
|
-
* @param currentUserPassword The password to decrypt the current user's private keys
|
|
86
|
-
* @param keyBag The KeyBag instance for storing and loading named encrypted keys
|
|
87
|
-
* @return The new tenant
|
|
79
|
+
* Map key: signing public key (Ed25519, PEM format)
|
|
80
|
+
* Map value: true if trusted, false if explicitly revoked
|
|
88
81
|
*/
|
|
89
|
-
|
|
82
|
+
additionalTrustedKeys?: ReadonlyMap<string, boolean>;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Options for creating a new tenant with a single convenience call.
|
|
86
|
+
*/
|
|
87
|
+
export interface CreateTenantOptions {
|
|
88
|
+
/** Tenant identifier (e.g. "acme") */
|
|
89
|
+
tenantId: string;
|
|
90
|
+
/** Distinguished name for the admin user (e.g. "cn=admin/o=acme") */
|
|
91
|
+
adminName: string;
|
|
92
|
+
/** Password for the admin user's private keys */
|
|
93
|
+
adminPassword: string;
|
|
94
|
+
/** Distinguished name for the regular app user (e.g. "cn=alice/o=acme") */
|
|
95
|
+
userName: string;
|
|
96
|
+
/** Password for the regular user's private keys */
|
|
97
|
+
userPassword: string;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Result of creating a new tenant via createTenant().
|
|
101
|
+
*/
|
|
102
|
+
export interface CreateTenantResult {
|
|
103
|
+
/** The opened tenant, ready to use */
|
|
104
|
+
tenant: MindooTenant;
|
|
105
|
+
/** The admin user's private identity (contains signing + encryption key pairs) */
|
|
106
|
+
adminUser: PrivateUserId;
|
|
107
|
+
/** The regular app user's private identity */
|
|
108
|
+
appUser: PrivateUserId;
|
|
109
|
+
/** The KeyBag containing tenant and $publicinfos keys */
|
|
110
|
+
keyBag: KeyBag;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* A join request is created by a new user who wants to join a tenant.
|
|
114
|
+
* It contains only public information and is safe to share via any channel.
|
|
115
|
+
*
|
|
116
|
+
* Can be serialized to a mdb://join-request/... URI for out-of-band exchange.
|
|
117
|
+
*/
|
|
118
|
+
export interface JoinRequest {
|
|
119
|
+
/** Protocol version (always 1 for now) */
|
|
120
|
+
v: 1;
|
|
121
|
+
/** The username the user wants to be registered as (e.g. "cn=user2/o=acme") */
|
|
122
|
+
username: string;
|
|
123
|
+
/** Ed25519 public signing key (PEM format) */
|
|
124
|
+
signingPublicKey: string;
|
|
125
|
+
/** RSA-OAEP public encryption key (PEM format) */
|
|
126
|
+
encryptionPublicKey: string;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Options for approving a join request.
|
|
130
|
+
*/
|
|
131
|
+
export interface ApproveJoinRequestOptions {
|
|
132
|
+
/** The admin's encrypted private signing key */
|
|
133
|
+
adminSigningKey: EncryptedPrivateKey;
|
|
134
|
+
/** The password to decrypt the admin signing key */
|
|
135
|
+
adminPassword: string;
|
|
136
|
+
/** A shared password for encrypting the exported keys. Must be communicated out-of-band (e.g. phone). */
|
|
137
|
+
sharePassword: string;
|
|
138
|
+
/** Optional server URL to include in the response so the joining user knows where to sync */
|
|
139
|
+
serverUrl?: string;
|
|
140
|
+
/** If "uri", approveJoinRequest returns a mdb://join-response/... URI string instead of an object */
|
|
141
|
+
format?: "object" | "uri";
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* A join response is created by the admin after approving a join request.
|
|
145
|
+
* It contains encrypted symmetric keys and tenant metadata needed to join.
|
|
146
|
+
*
|
|
147
|
+
* Can be serialized to a mdb://join-response/... URI for out-of-band exchange.
|
|
148
|
+
* The encrypted keys can only be unlocked with the sharePassword communicated separately.
|
|
149
|
+
*/
|
|
150
|
+
export interface JoinResponse {
|
|
151
|
+
/** Protocol version (always 1 for now) */
|
|
152
|
+
v: 1;
|
|
153
|
+
/** Tenant identifier */
|
|
154
|
+
tenantId: string;
|
|
155
|
+
/** Admin's public signing key (Ed25519, PEM) — needed to open the tenant */
|
|
156
|
+
adminSigningPublicKey: string;
|
|
157
|
+
/** Admin's public encryption key (RSA-OAEP, PEM) — needed to open the tenant */
|
|
158
|
+
adminEncryptionPublicKey: string;
|
|
159
|
+
/** Optional server URL for sync */
|
|
160
|
+
serverUrl?: string;
|
|
161
|
+
/** Tenant symmetric key, encrypted with the sharePassword */
|
|
162
|
+
encryptedTenantKey: EncryptedPrivateKey;
|
|
163
|
+
/** $publicinfos symmetric key, encrypted with the sharePassword */
|
|
164
|
+
encryptedPublicInfosKey: EncryptedPrivateKey;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Options for joining a tenant with a join response.
|
|
168
|
+
*/
|
|
169
|
+
export interface JoinTenantOptions {
|
|
170
|
+
/** The user's locally-generated private identity (keys never leave this device) */
|
|
171
|
+
user: PrivateUserId;
|
|
172
|
+
/** The password for the user's private keys */
|
|
173
|
+
password: string;
|
|
174
|
+
/** The shared password used to decrypt the keys in the join response */
|
|
175
|
+
sharePassword: string;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Result of joining a tenant via joinTenant().
|
|
179
|
+
*/
|
|
180
|
+
export interface JoinTenantResult {
|
|
181
|
+
/** The opened tenant, ready to use */
|
|
182
|
+
tenant: MindooTenant;
|
|
183
|
+
/** The KeyBag containing the imported tenant and $publicinfos keys */
|
|
184
|
+
keyBag: KeyBag;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Options for publishing a tenant to a server.
|
|
188
|
+
*/
|
|
189
|
+
export interface PublishToServerOptions {
|
|
190
|
+
/** Optional API key for the server's admin endpoints */
|
|
191
|
+
adminApiKey?: string;
|
|
192
|
+
/** Optional users to register on the server at the same time */
|
|
193
|
+
registerUsers?: PublicUserId[];
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* A TenantFactory is a factory for creating and managing tenants.
|
|
197
|
+
*/
|
|
198
|
+
export interface MindooTenantFactory {
|
|
90
199
|
/**
|
|
91
|
-
* Opens an existing tenant
|
|
200
|
+
* Opens an existing tenant.
|
|
92
201
|
*
|
|
93
202
|
* @param tenantId The ID of the tenant
|
|
94
|
-
* @param tenantEncryptionPrivateKey The tenant encryption key (AES-256, encrypted)
|
|
95
|
-
* @param tenantEncryptionKeyPassword The password to decrypt the tenant encryption key
|
|
96
203
|
* @param administrationPublicKey The administration public key (Ed25519, PEM format)
|
|
97
204
|
* @param administrationEncryptionPublicKey The administration encryption public key (RSA-OAEP, PEM format)
|
|
98
205
|
* @param currentUser The current user's private user ID (required for tenant operations)
|
|
99
206
|
* @param currentUserPassword The password to decrypt the current user's private keys
|
|
100
|
-
* @param keyBag The KeyBag instance for storing and loading
|
|
207
|
+
* @param keyBag The KeyBag instance for storing and loading tenant/doc keys.
|
|
208
|
+
* Must contain:
|
|
209
|
+
* - $publicinfos key under type "doc" and id PUBLIC_INFOS_KEY_ID
|
|
210
|
+
* Optionally (required for decrypting regular database payloads):
|
|
211
|
+
* - tenant key under type "tenant" and id tenantId
|
|
101
212
|
* @return The tenant
|
|
102
213
|
*/
|
|
103
|
-
|
|
214
|
+
openTenant(tenantId: string, administrationPublicKey: string, administrationEncryptionPublicKey: string, currentUser: PrivateUserId, currentUserPassword: string, keyBag: KeyBag, options?: OpenTenantOptions): Promise<MindooTenant>;
|
|
104
215
|
/**
|
|
105
216
|
* Creates a new user with separate signing and encryption key pairs.
|
|
106
217
|
*
|
|
@@ -125,18 +236,6 @@ export interface MindooTenantFactory {
|
|
|
125
236
|
* @return The signing key pair containing both public key (PEM format) and encrypted private key (Ed25519)
|
|
126
237
|
*/
|
|
127
238
|
createSigningKeyPair(password: string): Promise<SigningKeyPair>;
|
|
128
|
-
/**
|
|
129
|
-
* Creates a new encrypted symmetric key (AES-256) for document encryption.
|
|
130
|
-
* The key is encrypted with the provided password and can be distributed to authorized users.
|
|
131
|
-
* Use KeyBag.decryptAndImportKey() to store the returned key in the user's KeyBag.
|
|
132
|
-
*
|
|
133
|
-
* Symmetric keys are shared secrets - anyone with the key can both encrypt and decrypt.
|
|
134
|
-
* For user-to-user encryption where only the recipient can decrypt, use createEncryptionKeyPair() instead.
|
|
135
|
-
*
|
|
136
|
-
* @param password The password to encrypt the symmetric key with (mandatory)
|
|
137
|
-
* @return The encrypted symmetric key that can be distributed to authorized users
|
|
138
|
-
*/
|
|
139
|
-
createSymmetricEncryptedPrivateKey(password: string): Promise<EncryptedPrivateKey>;
|
|
140
239
|
/**
|
|
141
240
|
* Creates a new asymmetric encryption key pair (RSA-OAEP) for user-to-user encryption.
|
|
142
241
|
* Returns both the public and encrypted private key.
|
|
@@ -149,6 +248,47 @@ export interface MindooTenantFactory {
|
|
|
149
248
|
* @return The encryption key pair containing both public key (PEM format) and encrypted private key (RSA-OAEP)
|
|
150
249
|
*/
|
|
151
250
|
createEncryptionKeyPair(password: string): Promise<EncryptionKeyPair>;
|
|
251
|
+
/**
|
|
252
|
+
* Create a new tenant with a single call. This orchestrates:
|
|
253
|
+
* 1. Creating the admin user identity
|
|
254
|
+
* 2. Creating the regular app user identity
|
|
255
|
+
* 3. Creating a KeyBag with tenant key and $publicinfos key
|
|
256
|
+
* 4. Opening the tenant
|
|
257
|
+
* 5. Registering the app user in the directory
|
|
258
|
+
*
|
|
259
|
+
* @param options Tenant creation options
|
|
260
|
+
* @return The created tenant, admin user, app user, and KeyBag
|
|
261
|
+
*/
|
|
262
|
+
createTenant(options: CreateTenantOptions): Promise<CreateTenantResult>;
|
|
263
|
+
/**
|
|
264
|
+
* Create a join request from a user's private identity.
|
|
265
|
+
* The join request contains only public keys and is safe to share via any channel.
|
|
266
|
+
*
|
|
267
|
+
* @param user The user's private identity (only public keys are extracted)
|
|
268
|
+
* @param options Optional. Set format to "uri" to get a mdb://join-request/... URI string.
|
|
269
|
+
* @return A JoinRequest object or a mdb://join-request/... URI string
|
|
270
|
+
*/
|
|
271
|
+
createJoinRequest(user: PrivateUserId, options?: {
|
|
272
|
+
format?: "object";
|
|
273
|
+
}): JoinRequest;
|
|
274
|
+
createJoinRequest(user: PrivateUserId, options: {
|
|
275
|
+
format: "uri";
|
|
276
|
+
}): string;
|
|
277
|
+
createJoinRequest(user: PrivateUserId, options?: {
|
|
278
|
+
format?: "object" | "uri";
|
|
279
|
+
}): JoinRequest | string;
|
|
280
|
+
/**
|
|
281
|
+
* Join a tenant using a join response from an admin.
|
|
282
|
+
* This orchestrates:
|
|
283
|
+
* 1. Parsing the join response (object or mdb:// URI string)
|
|
284
|
+
* 2. Creating a new KeyBag and importing the encrypted keys
|
|
285
|
+
* 3. Opening the tenant with the admin public keys from the response
|
|
286
|
+
*
|
|
287
|
+
* @param joinResponse A JoinResponse object or a mdb://join-response/... URI string
|
|
288
|
+
* @param options Options including the user's identity, password, and the shared password
|
|
289
|
+
* @return The opened tenant and KeyBag
|
|
290
|
+
*/
|
|
291
|
+
joinTenant(joinResponse: JoinResponse | string, options: JoinTenantOptions): Promise<JoinTenantResult>;
|
|
152
292
|
}
|
|
153
293
|
/**
|
|
154
294
|
* A MindooTenant contains multiple MindooDB in an organization. One MindooDB is a mandatory part
|
|
@@ -188,15 +328,6 @@ export interface MindooTenant {
|
|
|
188
328
|
* @return The administration encryption public key (RSA-OAEP, PEM format)
|
|
189
329
|
*/
|
|
190
330
|
getAdministrationEncryptionPublicKey(): string;
|
|
191
|
-
/**
|
|
192
|
-
* Returns the encryption key used to encrypt all communication in this tenant
|
|
193
|
-
* (e.g. the document changesets).
|
|
194
|
-
*
|
|
195
|
-
* Note: This is a symmetric key (AES-256) used ONLY for encryption/decryption, not for signing.
|
|
196
|
-
*
|
|
197
|
-
* @return The tenant encryption key (AES-256, encrypted)
|
|
198
|
-
*/
|
|
199
|
-
getTenantEncryptionKey(): EncryptedPrivateKey;
|
|
200
331
|
/**
|
|
201
332
|
* Encrypt a payload using the symmetric key identified by decryptionKeyId.
|
|
202
333
|
* For "default", uses the tenant encryption key.
|
|
@@ -294,8 +425,45 @@ export interface MindooTenant {
|
|
|
294
425
|
* @return The crypto adapter
|
|
295
426
|
*/
|
|
296
427
|
getCryptoAdapter(): CryptoAdapter;
|
|
428
|
+
/**
|
|
429
|
+
* Approve a join request and produce a join response.
|
|
430
|
+
* This orchestrates:
|
|
431
|
+
* 1. Parsing the join request (object or mdb:// URI string)
|
|
432
|
+
* 2. Registering the user in the tenant directory
|
|
433
|
+
* 3. Exporting the tenant key and $publicinfos key, encrypted with the sharePassword
|
|
434
|
+
* 4. Packaging everything into a JoinResponse
|
|
435
|
+
*
|
|
436
|
+
* @param joinRequest A JoinRequest object or a mdb://join-request/... URI string
|
|
437
|
+
* @param options Options including admin key, share password, and optional server URL
|
|
438
|
+
* @return A JoinResponse object, or a mdb://join-response/... URI string if format is "uri"
|
|
439
|
+
*/
|
|
440
|
+
approveJoinRequest(joinRequest: JoinRequest | string, options: ApproveJoinRequestOptions & {
|
|
441
|
+
format: "uri";
|
|
442
|
+
}): Promise<string>;
|
|
443
|
+
approveJoinRequest(joinRequest: JoinRequest | string, options: ApproveJoinRequestOptions): Promise<JoinResponse>;
|
|
444
|
+
/**
|
|
445
|
+
* Publish (register) this tenant on a MindooDB server.
|
|
446
|
+
* Sends an HTTP POST to the server's /admin/register-tenant endpoint
|
|
447
|
+
* with the admin public keys and optional initial users.
|
|
448
|
+
*
|
|
449
|
+
* @param serverUrl The base URL of the MindooDB server (e.g. "http://localhost:3000")
|
|
450
|
+
* @param options Optional API key and users to register
|
|
451
|
+
*/
|
|
452
|
+
publishToServer(serverUrl: string, options?: PublishToServerOptions): Promise<void>;
|
|
453
|
+
/**
|
|
454
|
+
* Create a remote store connected to a MindooDB server, ready for sync.
|
|
455
|
+
* This orchestrates:
|
|
456
|
+
* 1. Creating an HttpTransport pointed at the server
|
|
457
|
+
* 2. Creating a ClientNetworkContentAddressedStore with the current user's keys
|
|
458
|
+
* 3. Returning the store for use with pullChangesFrom/pushChangesTo
|
|
459
|
+
*
|
|
460
|
+
* @param serverUrl The base URL of the MindooDB server (e.g. "http://localhost:3000")
|
|
461
|
+
* @param dbId The database ID to connect to (e.g. "todos")
|
|
462
|
+
* @return A ContentAddressedStore connected to the remote server
|
|
463
|
+
*/
|
|
464
|
+
connectToServer(serverUrl: string, dbId: string): Promise<ContentAddressedStore>;
|
|
297
465
|
}
|
|
298
|
-
export type { ContentAddressedStore, ContentAddressedStoreFactory, CreateStoreResult, OpenStoreOptions } from "./appendonlystores/types";
|
|
466
|
+
export type { ContentAddressedStore, ContentAddressedStoreFactory, CreateStoreResult, OpenStoreOptions, StoreCompactionStatus, StoreScanCursor, StoreScanFilters, StoreScanResult, StoreIdBloomSummary, } from "./appendonlystores/types";
|
|
299
467
|
/**
|
|
300
468
|
* The type of entry stored in the ContentAddressedStore.
|
|
301
469
|
* Entry types are prefixed to indicate their domain:
|
|
@@ -964,7 +1132,7 @@ export interface MindooDB {
|
|
|
964
1132
|
* This method efficiently queries the content-addressed store to find
|
|
965
1133
|
* documents that existed at the given point in time. A document is considered
|
|
966
1134
|
* to exist at a timestamp if:
|
|
967
|
-
* - It has a doc_create entry with createdAt
|
|
1135
|
+
* - It has a doc_create entry with createdAt <= timestamp
|
|
968
1136
|
* - Either it has no doc_delete entry, or its doc_delete entry has createdAt > timestamp
|
|
969
1137
|
*
|
|
970
1138
|
* @param timestamp The timestamp to query (milliseconds since Unix epoch)
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.js
CHANGED
|
@@ -5,6 +5,8 @@ exports.PUBLIC_INFOS_KEY_ID = void 0;
|
|
|
5
5
|
* Well-known key ID for access control documents (grantaccess, revokeaccess, groups).
|
|
6
6
|
* All servers and clients MUST have this key in their KeyBag to verify user access.
|
|
7
7
|
* This enables servers to validate users without having full tenant data access.
|
|
8
|
+
*
|
|
9
|
+
* KeyBag location: type "doc", id PUBLIC_INFOS_KEY_ID.
|
|
8
10
|
*/
|
|
9
11
|
exports.PUBLIC_INFOS_KEY_ID = "$publicinfos";
|
|
10
12
|
//# sourceMappingURL=types.js.map
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":";;;AAOA;;;;;;GAMG;AACU,QAAA,mBAAmB,GAAG,cAAc,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MindooDB URI scheme for out-of-band exchange of join requests and responses.
|
|
3
|
+
*
|
|
4
|
+
* Format: mdb://<type>/<base64url-encoded-JSON>
|
|
5
|
+
*
|
|
6
|
+
* Examples:
|
|
7
|
+
* mdb://join-request/eyJ2IjoxLCJ1c2VybmFtZSI6...
|
|
8
|
+
* mdb://join-response/eyJ2IjoxLCJ0ZW5hbnRJZCI6...
|
|
9
|
+
*
|
|
10
|
+
* All payloads include a "v" field (version number) for forward compatibility.
|
|
11
|
+
* Uses base64url encoding (URL-safe, no padding) so URIs remain valid
|
|
12
|
+
* in all contexts (URLs, QR codes, email, chat).
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Supported MindooDB URI types.
|
|
16
|
+
*/
|
|
17
|
+
export type MindooURIType = "join-request" | "join-response";
|
|
18
|
+
/**
|
|
19
|
+
* Result of decoding a mdb:// URI.
|
|
20
|
+
*/
|
|
21
|
+
export interface DecodedMindooURI<T = unknown> {
|
|
22
|
+
/** The URI type (e.g. "join-request", "join-response") */
|
|
23
|
+
type: MindooURIType;
|
|
24
|
+
/** The version number from the payload */
|
|
25
|
+
version: number;
|
|
26
|
+
/** The decoded payload object */
|
|
27
|
+
payload: T;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Encode a payload object into a mdb:// URI string.
|
|
31
|
+
*
|
|
32
|
+
* The payload MUST contain a "v" field with a numeric version.
|
|
33
|
+
*
|
|
34
|
+
* @param type The URI type (e.g. "join-request")
|
|
35
|
+
* @param payload The payload object to encode (must include "v" field)
|
|
36
|
+
* @returns A mdb:// URI string
|
|
37
|
+
* @throws Error if the type is invalid or payload is missing "v" field
|
|
38
|
+
*/
|
|
39
|
+
export declare function encodeMindooURI(type: MindooURIType, payload: Record<string, unknown>): string;
|
|
40
|
+
/**
|
|
41
|
+
* Decode a mdb:// URI string back into its type and payload.
|
|
42
|
+
*
|
|
43
|
+
* @param uri The mdb:// URI string to decode
|
|
44
|
+
* @returns The decoded URI with type, version, and payload
|
|
45
|
+
* @throws Error if the URI is malformed or has an invalid type
|
|
46
|
+
*/
|
|
47
|
+
export declare function decodeMindooURI<T = unknown>(uri: string): DecodedMindooURI<T>;
|
|
48
|
+
/**
|
|
49
|
+
* Check if a string is a valid mdb:// URI.
|
|
50
|
+
*
|
|
51
|
+
* Performs structural validation only (scheme, type, base64url payload).
|
|
52
|
+
* Does not validate the payload contents.
|
|
53
|
+
*
|
|
54
|
+
* @param value The string to check
|
|
55
|
+
* @returns True if the string is a valid mdb:// URI
|
|
56
|
+
*/
|
|
57
|
+
export declare function isMindooURI(value: string): boolean;
|
|
58
|
+
//# sourceMappingURL=MindooURI.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MindooURI.d.ts","sourceRoot":"","sources":["../../../src/core/uri/MindooURI.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,eAAe,CAAC;AAS7D;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,OAAO;IAC3C,0DAA0D;IAC1D,IAAI,EAAE,aAAa,CAAC;IACpB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,OAAO,EAAE,CAAC,CAAC;CACZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAY7F;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAkD7E;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CA0BlD"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MindooDB URI scheme for out-of-band exchange of join requests and responses.
|
|
4
|
+
*
|
|
5
|
+
* Format: mdb://<type>/<base64url-encoded-JSON>
|
|
6
|
+
*
|
|
7
|
+
* Examples:
|
|
8
|
+
* mdb://join-request/eyJ2IjoxLCJ1c2VybmFtZSI6...
|
|
9
|
+
* mdb://join-response/eyJ2IjoxLCJ0ZW5hbnRJZCI6...
|
|
10
|
+
*
|
|
11
|
+
* All payloads include a "v" field (version number) for forward compatibility.
|
|
12
|
+
* Uses base64url encoding (URL-safe, no padding) so URIs remain valid
|
|
13
|
+
* in all contexts (URLs, QR codes, email, chat).
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.encodeMindooURI = encodeMindooURI;
|
|
17
|
+
exports.decodeMindooURI = decodeMindooURI;
|
|
18
|
+
exports.isMindooURI = isMindooURI;
|
|
19
|
+
const VALID_TYPES = new Set([
|
|
20
|
+
"join-request",
|
|
21
|
+
"join-response",
|
|
22
|
+
]);
|
|
23
|
+
const MDB_SCHEME = "mdb://";
|
|
24
|
+
/**
|
|
25
|
+
* Encode a payload object into a mdb:// URI string.
|
|
26
|
+
*
|
|
27
|
+
* The payload MUST contain a "v" field with a numeric version.
|
|
28
|
+
*
|
|
29
|
+
* @param type The URI type (e.g. "join-request")
|
|
30
|
+
* @param payload The payload object to encode (must include "v" field)
|
|
31
|
+
* @returns A mdb:// URI string
|
|
32
|
+
* @throws Error if the type is invalid or payload is missing "v" field
|
|
33
|
+
*/
|
|
34
|
+
function encodeMindooURI(type, payload) {
|
|
35
|
+
if (!VALID_TYPES.has(type)) {
|
|
36
|
+
throw new Error(`Invalid MindooDB URI type: "${type}". Valid types: ${[...VALID_TYPES].join(", ")}`);
|
|
37
|
+
}
|
|
38
|
+
if (typeof payload.v !== "number" || !Number.isInteger(payload.v) || payload.v < 1) {
|
|
39
|
+
throw new Error(`MindooDB URI payload must contain a "v" field with a positive integer version number`);
|
|
40
|
+
}
|
|
41
|
+
const jsonStr = JSON.stringify(payload);
|
|
42
|
+
const base64url = toBase64Url(jsonStr);
|
|
43
|
+
return `${MDB_SCHEME}${type}/${base64url}`;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Decode a mdb:// URI string back into its type and payload.
|
|
47
|
+
*
|
|
48
|
+
* @param uri The mdb:// URI string to decode
|
|
49
|
+
* @returns The decoded URI with type, version, and payload
|
|
50
|
+
* @throws Error if the URI is malformed or has an invalid type
|
|
51
|
+
*/
|
|
52
|
+
function decodeMindooURI(uri) {
|
|
53
|
+
if (!uri.startsWith(MDB_SCHEME)) {
|
|
54
|
+
throw new Error(`Invalid MindooDB URI: must start with "${MDB_SCHEME}"`);
|
|
55
|
+
}
|
|
56
|
+
const remainder = uri.substring(MDB_SCHEME.length);
|
|
57
|
+
const slashIdx = remainder.indexOf("/");
|
|
58
|
+
if (slashIdx === -1) {
|
|
59
|
+
throw new Error(`Invalid MindooDB URI: missing type/payload separator "/"`);
|
|
60
|
+
}
|
|
61
|
+
const type = remainder.substring(0, slashIdx);
|
|
62
|
+
const base64urlPayload = remainder.substring(slashIdx + 1);
|
|
63
|
+
if (!VALID_TYPES.has(type)) {
|
|
64
|
+
throw new Error(`Invalid MindooDB URI type: "${type}". Valid types: ${[...VALID_TYPES].join(", ")}`);
|
|
65
|
+
}
|
|
66
|
+
if (!base64urlPayload) {
|
|
67
|
+
throw new Error(`Invalid MindooDB URI: empty payload`);
|
|
68
|
+
}
|
|
69
|
+
let jsonStr;
|
|
70
|
+
try {
|
|
71
|
+
jsonStr = fromBase64Url(base64urlPayload);
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
throw new Error(`Invalid MindooDB URI: payload is not valid base64url`);
|
|
75
|
+
}
|
|
76
|
+
let payload;
|
|
77
|
+
try {
|
|
78
|
+
payload = JSON.parse(jsonStr);
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
throw new Error(`Invalid MindooDB URI: payload is not valid JSON`);
|
|
82
|
+
}
|
|
83
|
+
if (typeof payload !== "object" || payload === null || Array.isArray(payload)) {
|
|
84
|
+
throw new Error(`Invalid MindooDB URI: payload must be a JSON object`);
|
|
85
|
+
}
|
|
86
|
+
if (typeof payload.v !== "number" || !Number.isInteger(payload.v) || payload.v < 1) {
|
|
87
|
+
throw new Error(`Invalid MindooDB URI: payload must contain a "v" field with a positive integer version number`);
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
type: type,
|
|
91
|
+
version: payload.v,
|
|
92
|
+
payload: payload,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Check if a string is a valid mdb:// URI.
|
|
97
|
+
*
|
|
98
|
+
* Performs structural validation only (scheme, type, base64url payload).
|
|
99
|
+
* Does not validate the payload contents.
|
|
100
|
+
*
|
|
101
|
+
* @param value The string to check
|
|
102
|
+
* @returns True if the string is a valid mdb:// URI
|
|
103
|
+
*/
|
|
104
|
+
function isMindooURI(value) {
|
|
105
|
+
if (!value.startsWith(MDB_SCHEME)) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
const remainder = value.substring(MDB_SCHEME.length);
|
|
109
|
+
const slashIdx = remainder.indexOf("/");
|
|
110
|
+
if (slashIdx === -1) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
const type = remainder.substring(0, slashIdx);
|
|
114
|
+
const base64urlPayload = remainder.substring(slashIdx + 1);
|
|
115
|
+
if (!VALID_TYPES.has(type) || !base64urlPayload) {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
try {
|
|
119
|
+
const jsonStr = fromBase64Url(base64urlPayload);
|
|
120
|
+
const parsed = JSON.parse(jsonStr);
|
|
121
|
+
return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed);
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// ==================== Base64url Helpers ====================
|
|
128
|
+
/**
|
|
129
|
+
* Encode a UTF-8 string to base64url (URL-safe, no padding).
|
|
130
|
+
*/
|
|
131
|
+
function toBase64Url(str) {
|
|
132
|
+
// Use Buffer if available (Node.js), otherwise TextEncoder + btoa (browser)
|
|
133
|
+
if (typeof Buffer !== "undefined") {
|
|
134
|
+
return Buffer.from(str, "utf-8")
|
|
135
|
+
.toString("base64")
|
|
136
|
+
.replace(/\+/g, "-")
|
|
137
|
+
.replace(/\//g, "_")
|
|
138
|
+
.replace(/=+$/, "");
|
|
139
|
+
}
|
|
140
|
+
const bytes = new TextEncoder().encode(str);
|
|
141
|
+
let binary = "";
|
|
142
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
143
|
+
binary += String.fromCharCode(bytes[i]);
|
|
144
|
+
}
|
|
145
|
+
return btoa(binary)
|
|
146
|
+
.replace(/\+/g, "-")
|
|
147
|
+
.replace(/\//g, "_")
|
|
148
|
+
.replace(/=+$/, "");
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Decode a base64url string to UTF-8 string.
|
|
152
|
+
*/
|
|
153
|
+
function fromBase64Url(base64url) {
|
|
154
|
+
// Restore standard base64 characters and padding
|
|
155
|
+
let base64 = base64url.replace(/-/g, "+").replace(/_/g, "/");
|
|
156
|
+
const paddingNeeded = (4 - (base64.length % 4)) % 4;
|
|
157
|
+
base64 += "=".repeat(paddingNeeded);
|
|
158
|
+
// Use Buffer if available (Node.js), otherwise atob + TextDecoder (browser)
|
|
159
|
+
if (typeof Buffer !== "undefined") {
|
|
160
|
+
return Buffer.from(base64, "base64").toString("utf-8");
|
|
161
|
+
}
|
|
162
|
+
const binary = atob(base64);
|
|
163
|
+
const bytes = new Uint8Array(binary.length);
|
|
164
|
+
for (let i = 0; i < binary.length; i++) {
|
|
165
|
+
bytes[i] = binary.charCodeAt(i);
|
|
166
|
+
}
|
|
167
|
+
return new TextDecoder().decode(bytes);
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=MindooURI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MindooURI.js","sourceRoot":"","sources":["../../../src/core/uri/MindooURI.ts"],"names":[],"mappings":"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"}
|