@arbidocs/client 0.3.184 → 0.4.0
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/dist/index.cjs +32 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +15 -3
- package/dist/index.d.ts +15 -3
- package/dist/index.js +32 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/dist/index.d.cts
CHANGED
|
@@ -3692,6 +3692,10 @@ interface components {
|
|
|
3692
3692
|
* Format: date-time
|
|
3693
3693
|
*/
|
|
3694
3694
|
joined_at: string;
|
|
3695
|
+
/** Whether the grant has a persistent wrapped workspace key. */
|
|
3696
|
+
permanent: boolean;
|
|
3697
|
+
/** Whether this is the workspace selected for agent wakeups. */
|
|
3698
|
+
is_default: boolean;
|
|
3695
3699
|
};
|
|
3696
3700
|
/**
|
|
3697
3701
|
* AgentsConfig
|
|
@@ -17353,7 +17357,7 @@ declare function base64Decode(base64: string): Uint8Array;
|
|
|
17353
17357
|
* @param deploymentDomain - Deployment domain for salt derivation
|
|
17354
17358
|
* @returns Object with Ed25519 signing keypair and derived X25519 encryption keypair
|
|
17355
17359
|
*/
|
|
17356
|
-
|
|
17360
|
+
type DerivedKeyPairs = {
|
|
17357
17361
|
signing: {
|
|
17358
17362
|
publicKey: Uint8Array;
|
|
17359
17363
|
privateKey: Uint8Array;
|
|
@@ -17364,7 +17368,15 @@ declare function generateKeyPairs(username: string, password: string, deployment
|
|
|
17364
17368
|
privateKey: Uint8Array;
|
|
17365
17369
|
publicKeyBase64: string;
|
|
17366
17370
|
};
|
|
17367
|
-
}
|
|
17371
|
+
};
|
|
17372
|
+
/**
|
|
17373
|
+
* Start deriving the keypairs for these credentials in the background (best
|
|
17374
|
+
* effort — failures are swallowed; the real call will just derive again).
|
|
17375
|
+
* A later `generateKeyPairs` with the same arguments awaits this instead of
|
|
17376
|
+
* paying for Argon2 again.
|
|
17377
|
+
*/
|
|
17378
|
+
declare function prewarmKeyPairs(username: string, password: string, deploymentDomain: string): void;
|
|
17379
|
+
declare function generateKeyPairs(username: string, password: string, deploymentDomain: string): Promise<DerivedKeyPairs>;
|
|
17368
17380
|
/**
|
|
17369
17381
|
* Sign a message with Ed25519 private key
|
|
17370
17382
|
*
|
|
@@ -17948,4 +17960,4 @@ declare function isMessageType<T extends WebSocketServerMessage>(msg: WebSocketS
|
|
|
17948
17960
|
*/
|
|
17949
17961
|
declare function createReloginHandler(deps: ReloginDeps): () => Promise<string | null>;
|
|
17950
17962
|
|
|
17951
|
-
export { type $defs, API_PREFIX, type ArbiClient, type ArbiClientOptions, type AuthStateProvider, type AutoReloginMiddlewareConfig, type BearerAuthMiddlewareConfig, type ChangePasswordParams, type ChangePasswordRequest, type ChangePasswordResult, type CryptoProvider, type KeyPair, type LoginCredentials, type LoginParams, type LoginProvider, type LoginRequest, type LoginResult, type LoginWithKeyParams, type OnReloginSuccess, type PasswordChangeCredentials, type RegisterParams, type RegisterRequest, type RegisterResult, type RegistrationCredentials, type ReloginDeps, type ReloginHandler, type SessionData, type SessionKeys, type SessionManager, type SessionState, type SessionStorageProvider, type SsoTokenProvider, type TokenProvider, type UserKeypairs, type WebSocketClientMessage, type WebSocketServerMessage, type WorkspaceKeyRefreshProvider, type WorkspaceOpenProvider, type WsAuthMessage, type WsAuthResultMessage, type WsBatchCompleteMessage, type WsConnectionClosedMessage, type WsErrorMessage, type WsNotificationResponse, type WsPresenceUpdateMessage, type WsResponseCompleteMessage, type WsTaskUpdateMessage, base64Decode, base64Encode, base64ToBytes, buildWebSocketUrl, bytesToBase64, clearAllData, clearSession, type components, computeSharedSecret, createArbiClient, createAuthMessage, createAutoReloginMiddleware, createBearerAuthMiddleware, createContentHash, createReloginHandler, createSessionManager, decryptFile, decryptMessage, decryptMessageWithSharedSecret, deriveEncryptionKeypairFromSigning, derivePublicKey, encryptFile, encryptMessage, encryptMessageWithSharedSecret, generateKeyPairs, generateLoginCredentials, generateLoginCredentialsFromKey, generatePasswordChangeCredentials, generateRandomSigningKeypair, generateRecoveryPasswordChangeCredentials, generateRegistrationCredentials, generateUserKeypairs, getSession, getUserEncryptionKeypair, hasSession, initSodium, initializeDatabase, isMessageType, type operations, parseServerMessage, type paths, saveSession, sealKeyForSession, sealedBoxDecrypt, sealedBoxEncrypt, signMessage, updateSigningPrivateKey, type webhooks };
|
|
17963
|
+
export { type $defs, API_PREFIX, type ArbiClient, type ArbiClientOptions, type AuthStateProvider, type AutoReloginMiddlewareConfig, type BearerAuthMiddlewareConfig, type ChangePasswordParams, type ChangePasswordRequest, type ChangePasswordResult, type CryptoProvider, type KeyPair, type LoginCredentials, type LoginParams, type LoginProvider, type LoginRequest, type LoginResult, type LoginWithKeyParams, type OnReloginSuccess, type PasswordChangeCredentials, type RegisterParams, type RegisterRequest, type RegisterResult, type RegistrationCredentials, type ReloginDeps, type ReloginHandler, type SessionData, type SessionKeys, type SessionManager, type SessionState, type SessionStorageProvider, type SsoTokenProvider, type TokenProvider, type UserKeypairs, type WebSocketClientMessage, type WebSocketServerMessage, type WorkspaceKeyRefreshProvider, type WorkspaceOpenProvider, type WsAuthMessage, type WsAuthResultMessage, type WsBatchCompleteMessage, type WsConnectionClosedMessage, type WsErrorMessage, type WsNotificationResponse, type WsPresenceUpdateMessage, type WsResponseCompleteMessage, type WsTaskUpdateMessage, base64Decode, base64Encode, base64ToBytes, buildWebSocketUrl, bytesToBase64, clearAllData, clearSession, type components, computeSharedSecret, createArbiClient, createAuthMessage, createAutoReloginMiddleware, createBearerAuthMiddleware, createContentHash, createReloginHandler, createSessionManager, decryptFile, decryptMessage, decryptMessageWithSharedSecret, deriveEncryptionKeypairFromSigning, derivePublicKey, encryptFile, encryptMessage, encryptMessageWithSharedSecret, generateKeyPairs, generateLoginCredentials, generateLoginCredentialsFromKey, generatePasswordChangeCredentials, generateRandomSigningKeypair, generateRecoveryPasswordChangeCredentials, generateRegistrationCredentials, generateUserKeypairs, getSession, getUserEncryptionKeypair, hasSession, initSodium, initializeDatabase, isMessageType, type operations, parseServerMessage, type paths, prewarmKeyPairs, saveSession, sealKeyForSession, sealedBoxDecrypt, sealedBoxEncrypt, signMessage, updateSigningPrivateKey, type webhooks };
|
package/dist/index.d.ts
CHANGED
|
@@ -3692,6 +3692,10 @@ interface components {
|
|
|
3692
3692
|
* Format: date-time
|
|
3693
3693
|
*/
|
|
3694
3694
|
joined_at: string;
|
|
3695
|
+
/** Whether the grant has a persistent wrapped workspace key. */
|
|
3696
|
+
permanent: boolean;
|
|
3697
|
+
/** Whether this is the workspace selected for agent wakeups. */
|
|
3698
|
+
is_default: boolean;
|
|
3695
3699
|
};
|
|
3696
3700
|
/**
|
|
3697
3701
|
* AgentsConfig
|
|
@@ -17353,7 +17357,7 @@ declare function base64Decode(base64: string): Uint8Array;
|
|
|
17353
17357
|
* @param deploymentDomain - Deployment domain for salt derivation
|
|
17354
17358
|
* @returns Object with Ed25519 signing keypair and derived X25519 encryption keypair
|
|
17355
17359
|
*/
|
|
17356
|
-
|
|
17360
|
+
type DerivedKeyPairs = {
|
|
17357
17361
|
signing: {
|
|
17358
17362
|
publicKey: Uint8Array;
|
|
17359
17363
|
privateKey: Uint8Array;
|
|
@@ -17364,7 +17368,15 @@ declare function generateKeyPairs(username: string, password: string, deployment
|
|
|
17364
17368
|
privateKey: Uint8Array;
|
|
17365
17369
|
publicKeyBase64: string;
|
|
17366
17370
|
};
|
|
17367
|
-
}
|
|
17371
|
+
};
|
|
17372
|
+
/**
|
|
17373
|
+
* Start deriving the keypairs for these credentials in the background (best
|
|
17374
|
+
* effort — failures are swallowed; the real call will just derive again).
|
|
17375
|
+
* A later `generateKeyPairs` with the same arguments awaits this instead of
|
|
17376
|
+
* paying for Argon2 again.
|
|
17377
|
+
*/
|
|
17378
|
+
declare function prewarmKeyPairs(username: string, password: string, deploymentDomain: string): void;
|
|
17379
|
+
declare function generateKeyPairs(username: string, password: string, deploymentDomain: string): Promise<DerivedKeyPairs>;
|
|
17368
17380
|
/**
|
|
17369
17381
|
* Sign a message with Ed25519 private key
|
|
17370
17382
|
*
|
|
@@ -17948,4 +17960,4 @@ declare function isMessageType<T extends WebSocketServerMessage>(msg: WebSocketS
|
|
|
17948
17960
|
*/
|
|
17949
17961
|
declare function createReloginHandler(deps: ReloginDeps): () => Promise<string | null>;
|
|
17950
17962
|
|
|
17951
|
-
export { type $defs, API_PREFIX, type ArbiClient, type ArbiClientOptions, type AuthStateProvider, type AutoReloginMiddlewareConfig, type BearerAuthMiddlewareConfig, type ChangePasswordParams, type ChangePasswordRequest, type ChangePasswordResult, type CryptoProvider, type KeyPair, type LoginCredentials, type LoginParams, type LoginProvider, type LoginRequest, type LoginResult, type LoginWithKeyParams, type OnReloginSuccess, type PasswordChangeCredentials, type RegisterParams, type RegisterRequest, type RegisterResult, type RegistrationCredentials, type ReloginDeps, type ReloginHandler, type SessionData, type SessionKeys, type SessionManager, type SessionState, type SessionStorageProvider, type SsoTokenProvider, type TokenProvider, type UserKeypairs, type WebSocketClientMessage, type WebSocketServerMessage, type WorkspaceKeyRefreshProvider, type WorkspaceOpenProvider, type WsAuthMessage, type WsAuthResultMessage, type WsBatchCompleteMessage, type WsConnectionClosedMessage, type WsErrorMessage, type WsNotificationResponse, type WsPresenceUpdateMessage, type WsResponseCompleteMessage, type WsTaskUpdateMessage, base64Decode, base64Encode, base64ToBytes, buildWebSocketUrl, bytesToBase64, clearAllData, clearSession, type components, computeSharedSecret, createArbiClient, createAuthMessage, createAutoReloginMiddleware, createBearerAuthMiddleware, createContentHash, createReloginHandler, createSessionManager, decryptFile, decryptMessage, decryptMessageWithSharedSecret, deriveEncryptionKeypairFromSigning, derivePublicKey, encryptFile, encryptMessage, encryptMessageWithSharedSecret, generateKeyPairs, generateLoginCredentials, generateLoginCredentialsFromKey, generatePasswordChangeCredentials, generateRandomSigningKeypair, generateRecoveryPasswordChangeCredentials, generateRegistrationCredentials, generateUserKeypairs, getSession, getUserEncryptionKeypair, hasSession, initSodium, initializeDatabase, isMessageType, type operations, parseServerMessage, type paths, saveSession, sealKeyForSession, sealedBoxDecrypt, sealedBoxEncrypt, signMessage, updateSigningPrivateKey, type webhooks };
|
|
17963
|
+
export { type $defs, API_PREFIX, type ArbiClient, type ArbiClientOptions, type AuthStateProvider, type AutoReloginMiddlewareConfig, type BearerAuthMiddlewareConfig, type ChangePasswordParams, type ChangePasswordRequest, type ChangePasswordResult, type CryptoProvider, type KeyPair, type LoginCredentials, type LoginParams, type LoginProvider, type LoginRequest, type LoginResult, type LoginWithKeyParams, type OnReloginSuccess, type PasswordChangeCredentials, type RegisterParams, type RegisterRequest, type RegisterResult, type RegistrationCredentials, type ReloginDeps, type ReloginHandler, type SessionData, type SessionKeys, type SessionManager, type SessionState, type SessionStorageProvider, type SsoTokenProvider, type TokenProvider, type UserKeypairs, type WebSocketClientMessage, type WebSocketServerMessage, type WorkspaceKeyRefreshProvider, type WorkspaceOpenProvider, type WsAuthMessage, type WsAuthResultMessage, type WsBatchCompleteMessage, type WsConnectionClosedMessage, type WsErrorMessage, type WsNotificationResponse, type WsPresenceUpdateMessage, type WsResponseCompleteMessage, type WsTaskUpdateMessage, base64Decode, base64Encode, base64ToBytes, buildWebSocketUrl, bytesToBase64, clearAllData, clearSession, type components, computeSharedSecret, createArbiClient, createAuthMessage, createAutoReloginMiddleware, createBearerAuthMiddleware, createContentHash, createReloginHandler, createSessionManager, decryptFile, decryptMessage, decryptMessageWithSharedSecret, deriveEncryptionKeypairFromSigning, derivePublicKey, encryptFile, encryptMessage, encryptMessageWithSharedSecret, generateKeyPairs, generateLoginCredentials, generateLoginCredentialsFromKey, generatePasswordChangeCredentials, generateRandomSigningKeypair, generateRecoveryPasswordChangeCredentials, generateRegistrationCredentials, generateUserKeypairs, getSession, getUserEncryptionKeypair, hasSession, initSodium, initializeDatabase, isMessageType, type operations, parseServerMessage, type paths, prewarmKeyPairs, saveSession, sealKeyForSession, sealedBoxDecrypt, sealedBoxEncrypt, signMessage, updateSigningPrivateKey, type webhooks };
|
package/dist/index.js
CHANGED
|
@@ -113,7 +113,38 @@ function generateSalt(username, deploymentDomain) {
|
|
|
113
113
|
const hash = sodium.crypto_hash_sha256(sodium.from_string(saltString));
|
|
114
114
|
return hash.slice(0, 16);
|
|
115
115
|
}
|
|
116
|
+
var PREWARM_TTL_MS = 6e4;
|
|
117
|
+
var prewarmed = null;
|
|
118
|
+
function prewarmId(username, password, deploymentDomain) {
|
|
119
|
+
return `${username}\0${deploymentDomain}\0${password}`;
|
|
120
|
+
}
|
|
121
|
+
function dropPrewarmed() {
|
|
122
|
+
if (prewarmed) clearTimeout(prewarmed.timer);
|
|
123
|
+
prewarmed = null;
|
|
124
|
+
}
|
|
125
|
+
function prewarmKeyPairs(username, password, deploymentDomain) {
|
|
126
|
+
if (!username || !password || !deploymentDomain) return;
|
|
127
|
+
const id = prewarmId(username, password, deploymentDomain);
|
|
128
|
+
if (prewarmed?.id === id) return;
|
|
129
|
+
dropPrewarmed();
|
|
130
|
+
const promise = deriveKeyPairs(username, password, deploymentDomain);
|
|
131
|
+
promise.catch(() => {
|
|
132
|
+
if (prewarmed?.promise === promise) dropPrewarmed();
|
|
133
|
+
});
|
|
134
|
+
prewarmed = { id, promise, timer: setTimeout(dropPrewarmed, PREWARM_TTL_MS) };
|
|
135
|
+
}
|
|
116
136
|
async function generateKeyPairs(username, password, deploymentDomain) {
|
|
137
|
+
if (prewarmed && prewarmed.id === prewarmId(username, password, deploymentDomain)) {
|
|
138
|
+
const { promise } = prewarmed;
|
|
139
|
+
dropPrewarmed();
|
|
140
|
+
try {
|
|
141
|
+
return await promise;
|
|
142
|
+
} catch {
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return deriveKeyPairs(username, password, deploymentDomain);
|
|
146
|
+
}
|
|
147
|
+
async function deriveKeyPairs(username, password, deploymentDomain) {
|
|
117
148
|
await initSodium();
|
|
118
149
|
if (!deploymentDomain) {
|
|
119
150
|
throw new Error("Deployment domain not available. Cannot generate keys.");
|
|
@@ -1125,6 +1156,6 @@ function isMessageType(msg, type) {
|
|
|
1125
1156
|
return msg.type === type;
|
|
1126
1157
|
}
|
|
1127
1158
|
|
|
1128
|
-
export { API_PREFIX, base64Decode, base64Encode, base64ToBytes, buildWebSocketUrl, bytesToBase64, clearAllData, clearSession, computeSharedSecret, createArbiClient, createAuthMessage, createAutoReloginMiddleware, createBearerAuthMiddleware, createContentHash, createReloginHandler, createSessionManager, decryptFile, decryptMessage, decryptMessageWithSharedSecret, deriveEncryptionKeypairFromSigning, derivePublicKey, encryptFile, encryptMessage, encryptMessageWithSharedSecret, generateKeyPairs, generateLoginCredentials, generateLoginCredentialsFromKey, generatePasswordChangeCredentials, generateRandomSigningKeypair, generateRecoveryPasswordChangeCredentials, generateRegistrationCredentials, generateUserKeypairs, getSession, getUserEncryptionKeypair, hasSession, initSodium, initializeDatabase, isMessageType, parseServerMessage, saveSession, sealKeyForSession, sealedBoxDecrypt, sealedBoxEncrypt, signMessage, updateSigningPrivateKey };
|
|
1159
|
+
export { API_PREFIX, base64Decode, base64Encode, base64ToBytes, buildWebSocketUrl, bytesToBase64, clearAllData, clearSession, computeSharedSecret, createArbiClient, createAuthMessage, createAutoReloginMiddleware, createBearerAuthMiddleware, createContentHash, createReloginHandler, createSessionManager, decryptFile, decryptMessage, decryptMessageWithSharedSecret, deriveEncryptionKeypairFromSigning, derivePublicKey, encryptFile, encryptMessage, encryptMessageWithSharedSecret, generateKeyPairs, generateLoginCredentials, generateLoginCredentialsFromKey, generatePasswordChangeCredentials, generateRandomSigningKeypair, generateRecoveryPasswordChangeCredentials, generateRegistrationCredentials, generateUserKeypairs, getSession, getUserEncryptionKeypair, hasSession, initSodium, initializeDatabase, isMessageType, parseServerMessage, prewarmKeyPairs, saveSession, sealKeyForSession, sealedBoxDecrypt, sealedBoxEncrypt, signMessage, updateSigningPrivateKey };
|
|
1129
1160
|
//# sourceMappingURL=index.js.map
|
|
1130
1161
|
//# sourceMappingURL=index.js.map
|