@inkbox/sdk 0.1.3 → 0.2.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/README.md +42 -2
- package/dist/_http.d.ts +7 -1
- package/dist/_http.d.ts.map +1 -1
- package/dist/_http.js +13 -1
- package/dist/_http.js.map +1 -1
- package/dist/agent_identity.d.ts +36 -4
- package/dist/agent_identity.d.ts.map +1 -1
- package/dist/agent_identity.js +70 -6
- package/dist/agent_identity.js.map +1 -1
- package/dist/authenticator/resources/accounts.d.ts +1 -1
- package/dist/authenticator/resources/accounts.js +1 -1
- package/dist/authenticator/resources/apps.d.ts +2 -2
- package/dist/authenticator/resources/apps.js +2 -2
- package/dist/credentials.d.ts +86 -0
- package/dist/credentials.d.ts.map +1 -0
- package/dist/credentials.js +130 -0
- package/dist/credentials.js.map +1 -0
- package/dist/identities/resources/identities.d.ts +1 -1
- package/dist/identities/resources/identities.js +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/inkbox.d.ts +25 -0
- package/dist/inkbox.d.ts.map +1 -1
- package/dist/inkbox.js +34 -1
- package/dist/inkbox.js.map +1 -1
- package/dist/mail/resources/messages.d.ts +2 -2
- package/dist/mail/resources/messages.d.ts.map +1 -1
- package/dist/mail/resources/messages.js.map +1 -1
- package/dist/mail/types.d.ts +8 -1
- package/dist/mail/types.d.ts.map +1 -1
- package/dist/mail/types.js +8 -0
- package/dist/mail/types.js.map +1 -1
- package/dist/vault/crypto.d.ts +136 -0
- package/dist/vault/crypto.d.ts.map +1 -0
- package/dist/vault/crypto.js +265 -0
- package/dist/vault/crypto.js.map +1 -0
- package/dist/vault/resources/vault.d.ts +149 -0
- package/dist/vault/resources/vault.d.ts.map +1 -0
- package/dist/vault/resources/vault.js +291 -0
- package/dist/vault/resources/vault.js.map +1 -0
- package/dist/vault/types.d.ts +236 -0
- package/dist/vault/types.d.ts.map +1 -0
- package/dist/vault/types.js +225 -0
- package/dist/vault/types.js.map +1 -0
- package/package.json +6 -2
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* inkbox/src/credentials.ts
|
|
3
|
+
*
|
|
4
|
+
* Credentials — agent-facing credential access, typed and identity-scoped.
|
|
5
|
+
*
|
|
6
|
+
* This is the *runtime* surface for agents that need their credentials.
|
|
7
|
+
* The vault remains the *admin* surface for creating secrets, managing
|
|
8
|
+
* keys, and configuring access rules.
|
|
9
|
+
*/
|
|
10
|
+
import { VaultSecretType } from "./vault/types.js";
|
|
11
|
+
/**
|
|
12
|
+
* Agent-facing credential access — typed, identity-scoped.
|
|
13
|
+
*
|
|
14
|
+
* Wraps a pre-filtered list of {@link DecryptedVaultSecret} objects and
|
|
15
|
+
* provides typed accessors so agents can retrieve credentials without
|
|
16
|
+
* dealing with vault internals.
|
|
17
|
+
*
|
|
18
|
+
* Obtain via {@link AgentIdentity.getCredentials} after unlocking the vault:
|
|
19
|
+
*
|
|
20
|
+
* ```ts
|
|
21
|
+
* await inkbox.vault.unlock("my-Vault-key-01!");
|
|
22
|
+
* const identity = await inkbox.getIdentity("support-bot");
|
|
23
|
+
*
|
|
24
|
+
* const creds = await identity.getCredentials();
|
|
25
|
+
* const logins = creds.listLogins();
|
|
26
|
+
* const apiKey = creds.getApiKey("cccc3333-...");
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export class Credentials {
|
|
30
|
+
_secrets;
|
|
31
|
+
_byId;
|
|
32
|
+
constructor(secrets) {
|
|
33
|
+
this._secrets = secrets;
|
|
34
|
+
this._byId = new Map(secrets.map((s) => [s.id, s]));
|
|
35
|
+
}
|
|
36
|
+
// ------------------------------------------------------------------
|
|
37
|
+
// Discovery — return full DecryptedVaultSecret for name/metadata
|
|
38
|
+
// ------------------------------------------------------------------
|
|
39
|
+
/** List all credentials this identity has access to. */
|
|
40
|
+
list() {
|
|
41
|
+
return [...this._secrets];
|
|
42
|
+
}
|
|
43
|
+
/** List login credentials (username/password). */
|
|
44
|
+
listLogins() {
|
|
45
|
+
return this._secrets.filter((s) => s.secretType === VaultSecretType.LOGIN);
|
|
46
|
+
}
|
|
47
|
+
/** List API key credentials. */
|
|
48
|
+
listApiKeys() {
|
|
49
|
+
return this._secrets.filter((s) => s.secretType === VaultSecretType.API_KEY);
|
|
50
|
+
}
|
|
51
|
+
/** List key pair credentials (access key + secret key). */
|
|
52
|
+
listKeyPairs() {
|
|
53
|
+
return this._secrets.filter((s) => s.secretType === VaultSecretType.KEY_PAIR);
|
|
54
|
+
}
|
|
55
|
+
/** List SSH key credentials. */
|
|
56
|
+
listSshKeys() {
|
|
57
|
+
return this._secrets.filter((s) => s.secretType === VaultSecretType.SSH_KEY);
|
|
58
|
+
}
|
|
59
|
+
// ------------------------------------------------------------------
|
|
60
|
+
// Access by UUID — return typed payload directly
|
|
61
|
+
// ------------------------------------------------------------------
|
|
62
|
+
/**
|
|
63
|
+
* Get any credential by UUID.
|
|
64
|
+
*
|
|
65
|
+
* @param secretId - UUID of the secret.
|
|
66
|
+
* @throws Error if no credential with this UUID is accessible.
|
|
67
|
+
*/
|
|
68
|
+
get(secretId) {
|
|
69
|
+
const secret = this._byId.get(secretId);
|
|
70
|
+
if (!secret) {
|
|
71
|
+
throw new Error(`No credential with id '${secretId}' is accessible to this identity`);
|
|
72
|
+
}
|
|
73
|
+
return secret;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get a login credential's payload by UUID.
|
|
77
|
+
*
|
|
78
|
+
* @param secretId - UUID of the secret.
|
|
79
|
+
* @throws Error if not found.
|
|
80
|
+
* @throws TypeError if the credential is not a login type.
|
|
81
|
+
*/
|
|
82
|
+
getLogin(secretId) {
|
|
83
|
+
return this._getTyped(secretId, VaultSecretType.LOGIN);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get an API key credential's payload by UUID.
|
|
87
|
+
*
|
|
88
|
+
* @param secretId - UUID of the secret.
|
|
89
|
+
* @throws Error if not found.
|
|
90
|
+
* @throws TypeError if the credential is not an api_key type.
|
|
91
|
+
*/
|
|
92
|
+
getApiKey(secretId) {
|
|
93
|
+
return this._getTyped(secretId, VaultSecretType.API_KEY);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Get a key pair credential's payload by UUID.
|
|
97
|
+
*
|
|
98
|
+
* @param secretId - UUID of the secret.
|
|
99
|
+
* @throws Error if not found.
|
|
100
|
+
* @throws TypeError if the credential is not a key_pair type.
|
|
101
|
+
*/
|
|
102
|
+
getKeyPair(secretId) {
|
|
103
|
+
return this._getTyped(secretId, VaultSecretType.KEY_PAIR);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Get an SSH key credential's payload by UUID.
|
|
107
|
+
*
|
|
108
|
+
* @param secretId - UUID of the secret.
|
|
109
|
+
* @throws Error if not found.
|
|
110
|
+
* @throws TypeError if the credential is not an ssh_key type.
|
|
111
|
+
*/
|
|
112
|
+
getSshKey(secretId) {
|
|
113
|
+
return this._getTyped(secretId, VaultSecretType.SSH_KEY);
|
|
114
|
+
}
|
|
115
|
+
// ------------------------------------------------------------------
|
|
116
|
+
// Internal
|
|
117
|
+
// ------------------------------------------------------------------
|
|
118
|
+
_getTyped(secretId, expectedType) {
|
|
119
|
+
const secret = this.get(secretId);
|
|
120
|
+
if (secret.secretType !== expectedType) {
|
|
121
|
+
throw new TypeError(`Credential '${secretId}' is a '${secret.secretType}' secret, not '${expectedType}'`);
|
|
122
|
+
}
|
|
123
|
+
return secret.payload;
|
|
124
|
+
}
|
|
125
|
+
/** Number of credentials accessible to this identity. */
|
|
126
|
+
get length() {
|
|
127
|
+
return this._secrets.length;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
export { Inkbox } from "./inkbox.js";
|
|
2
2
|
export { AgentIdentity } from "./agent_identity.js";
|
|
3
|
+
export { Credentials } from "./credentials.js";
|
|
3
4
|
export type { InkboxOptions } from "./inkbox.js";
|
|
4
|
-
export { InkboxAPIError } from "./_http.js";
|
|
5
|
+
export { InkboxError, InkboxAPIError, InkboxVaultKeyError } from "./_http.js";
|
|
5
6
|
export type { SigningKey } from "./signing_keys.js";
|
|
6
7
|
export { verifyWebhook } from "./signing_keys.js";
|
|
8
|
+
export { MessageDirection } from "./mail/types.js";
|
|
7
9
|
export type { Mailbox, Message, MessageDetail, Thread, ThreadDetail, } from "./mail/types.js";
|
|
8
10
|
export type { PhoneNumber, PhoneCall, PhoneCallWithRateLimit, RateLimitInfo, PhoneTranscript, } from "./phone/types.js";
|
|
9
11
|
export type { AgentIdentitySummary, IdentityAuthenticatorApp, IdentityMailbox, IdentityPhoneNumber, } from "./identities/types.js";
|
|
10
12
|
export type { AuthenticatorApp, AuthenticatorAccount, OTPCode, } from "./authenticator/types.js";
|
|
13
|
+
export type { AccessRule, VaultInfo, VaultKey, VaultSecret, VaultSecretDetail, DecryptedVaultSecret, LoginPayload, OtherPayload, SSHKeyPayload, APIKeyPayload, KeyPairPayload, SecretPayload, } from "./vault/types.js";
|
|
14
|
+
export { VaultSecretType, VaultKeyType } from "./vault/types.js";
|
|
15
|
+
export type { VaultKeyMaterial } from "./vault/crypto.js";
|
|
16
|
+
export { UnlockedVault } from "./vault/resources/vault.js";
|
|
17
|
+
export { generateOrgEncryptionKey, generateVaultKeyMaterial, generateRecoveryCode, vaultKeyMaterialToWire, } from "./vault/crypto.js";
|
|
11
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC9E,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EACV,OAAO,EACP,OAAO,EACP,aAAa,EACb,MAAM,EACN,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,WAAW,EACX,SAAS,EACT,sBAAsB,EACtB,aAAa,EACb,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,EACf,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,OAAO,GACR,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,UAAU,EACV,SAAS,EACT,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
export { Inkbox } from "./inkbox.js";
|
|
2
2
|
export { AgentIdentity } from "./agent_identity.js";
|
|
3
|
-
export {
|
|
3
|
+
export { Credentials } from "./credentials.js";
|
|
4
|
+
export { InkboxError, InkboxAPIError, InkboxVaultKeyError } from "./_http.js";
|
|
4
5
|
export { verifyWebhook } from "./signing_keys.js";
|
|
6
|
+
export { MessageDirection } from "./mail/types.js";
|
|
7
|
+
export { VaultSecretType, VaultKeyType } from "./vault/types.js";
|
|
8
|
+
export { UnlockedVault } from "./vault/resources/vault.js";
|
|
9
|
+
export { generateOrgEncryptionKey, generateVaultKeyMaterial, generateRecoveryCode, vaultKeyMaterialToWire, } from "./vault/crypto.js";
|
|
5
10
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAwCnD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC"}
|
package/dist/inkbox.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ import { TranscriptsResource } from "./phone/resources/transcripts.js";
|
|
|
14
14
|
import { IdentitiesResource } from "./identities/resources/identities.js";
|
|
15
15
|
import { AuthenticatorAppsResource } from "./authenticator/resources/apps.js";
|
|
16
16
|
import { AuthenticatorAccountsResource } from "./authenticator/resources/accounts.js";
|
|
17
|
+
import { VaultResource } from "./vault/resources/vault.js";
|
|
17
18
|
import { AgentIdentity } from "./agent_identity.js";
|
|
18
19
|
import type { AgentIdentitySummary } from "./identities/types.js";
|
|
19
20
|
export interface InkboxOptions {
|
|
@@ -23,6 +24,12 @@ export interface InkboxOptions {
|
|
|
23
24
|
baseUrl?: string;
|
|
24
25
|
/** Request timeout in milliseconds. Defaults to 30 000. */
|
|
25
26
|
timeoutMs?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Optional vault key or recovery code. When provided, the vault is
|
|
29
|
+
* unlocked automatically at construction so `identity.getCredentials()`
|
|
30
|
+
* is immediately available.
|
|
31
|
+
*/
|
|
32
|
+
vaultKey?: string;
|
|
26
33
|
}
|
|
27
34
|
/**
|
|
28
35
|
* Org-level entry point for all Inkbox APIs.
|
|
@@ -47,6 +54,19 @@ export interface InkboxOptions {
|
|
|
47
54
|
* bodyText: "Tracking number: 1Z999AA10123456784",
|
|
48
55
|
* });
|
|
49
56
|
* ```
|
|
57
|
+
*
|
|
58
|
+
* @example With vault credentials:
|
|
59
|
+
* ```ts
|
|
60
|
+
* const inkbox = new Inkbox({
|
|
61
|
+
* apiKey: process.env.INKBOX_API_KEY!,
|
|
62
|
+
* vaultKey: "my-Vault-key-01!",
|
|
63
|
+
* });
|
|
64
|
+
* const identity = await inkbox.getIdentity("my-agent");
|
|
65
|
+
* const creds = await identity.getCredentials();
|
|
66
|
+
* for (const login of creds.listLogins()) {
|
|
67
|
+
* console.log(login.name);
|
|
68
|
+
* }
|
|
69
|
+
* ```
|
|
50
70
|
*/
|
|
51
71
|
export declare class Inkbox {
|
|
52
72
|
readonly _mailboxes: MailboxesResource;
|
|
@@ -59,6 +79,9 @@ export declare class Inkbox {
|
|
|
59
79
|
readonly _idsResource: IdentitiesResource;
|
|
60
80
|
readonly _authApps: AuthenticatorAppsResource;
|
|
61
81
|
readonly _authAccounts: AuthenticatorAccountsResource;
|
|
82
|
+
readonly _vaultResource: VaultResource;
|
|
83
|
+
/** @internal */
|
|
84
|
+
_vaultUnlockPromise: Promise<unknown> | null;
|
|
62
85
|
constructor(options: InkboxOptions);
|
|
63
86
|
/** Org-level mailbox operations (list, get, create, update, delete). */
|
|
64
87
|
get mailboxes(): MailboxesResource;
|
|
@@ -66,6 +89,8 @@ export declare class Inkbox {
|
|
|
66
89
|
get phoneNumbers(): PhoneNumbersResource;
|
|
67
90
|
/** Org-level authenticator app operations (list, get, create, delete). */
|
|
68
91
|
get authenticatorApps(): AuthenticatorAppsResource;
|
|
92
|
+
/** Encrypted vault (info, unlock, secrets). */
|
|
93
|
+
get vault(): VaultResource;
|
|
69
94
|
/**
|
|
70
95
|
* Create a new agent identity.
|
|
71
96
|
*
|
package/dist/inkbox.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inkbox.d.ts","sourceRoot":"","sources":["../src/inkbox.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAIlE,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"inkbox.d.ts","sourceRoot":"","sources":["../src/inkbox.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAIlE,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,MAAM;IACjB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,yBAAyB,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,6BAA6B,CAAC;IACtD,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC;IACvC,gBAAgB;IAChB,mBAAmB,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAQ;gBAExC,OAAO,EAAE,aAAa;IA+ClC,wEAAwE;IACxE,IAAI,SAAS,IAAI,iBAAiB,CAA4B;IAE9D,yEAAyE;IACzE,IAAI,YAAY,IAAI,oBAAoB,CAA0B;IAElE,0EAA0E;IAC1E,IAAI,iBAAiB,IAAI,yBAAyB,CAA2B;IAE7E,+CAA+C;IAC/C,IAAI,KAAK,IAAI,aAAa,CAAgC;IAM1D;;;;;OAKG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAQjE;;;;;OAKG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI9D;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAIvD;;;;;;OAMG;IACG,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC;CAG9C"}
|
package/dist/inkbox.js
CHANGED
|
@@ -14,6 +14,7 @@ import { TranscriptsResource } from "./phone/resources/transcripts.js";
|
|
|
14
14
|
import { IdentitiesResource } from "./identities/resources/identities.js";
|
|
15
15
|
import { AuthenticatorAppsResource } from "./authenticator/resources/apps.js";
|
|
16
16
|
import { AuthenticatorAccountsResource } from "./authenticator/resources/accounts.js";
|
|
17
|
+
import { VaultResource } from "./vault/resources/vault.js";
|
|
17
18
|
import { AgentIdentity } from "./agent_identity.js";
|
|
18
19
|
const DEFAULT_BASE_URL = "https://api.inkbox.ai";
|
|
19
20
|
/**
|
|
@@ -39,6 +40,19 @@ const DEFAULT_BASE_URL = "https://api.inkbox.ai";
|
|
|
39
40
|
* bodyText: "Tracking number: 1Z999AA10123456784",
|
|
40
41
|
* });
|
|
41
42
|
* ```
|
|
43
|
+
*
|
|
44
|
+
* @example With vault credentials:
|
|
45
|
+
* ```ts
|
|
46
|
+
* const inkbox = new Inkbox({
|
|
47
|
+
* apiKey: process.env.INKBOX_API_KEY!,
|
|
48
|
+
* vaultKey: "my-Vault-key-01!",
|
|
49
|
+
* });
|
|
50
|
+
* const identity = await inkbox.getIdentity("my-agent");
|
|
51
|
+
* const creds = await identity.getCredentials();
|
|
52
|
+
* for (const login of creds.listLogins()) {
|
|
53
|
+
* console.log(login.name);
|
|
54
|
+
* }
|
|
55
|
+
* ```
|
|
42
56
|
*/
|
|
43
57
|
export class Inkbox {
|
|
44
58
|
_mailboxes;
|
|
@@ -51,13 +65,26 @@ export class Inkbox {
|
|
|
51
65
|
_idsResource;
|
|
52
66
|
_authApps;
|
|
53
67
|
_authAccounts;
|
|
68
|
+
_vaultResource;
|
|
69
|
+
/** @internal */
|
|
70
|
+
_vaultUnlockPromise = null;
|
|
54
71
|
constructor(options) {
|
|
55
|
-
const
|
|
72
|
+
const baseUrl = options.baseUrl ?? DEFAULT_BASE_URL;
|
|
73
|
+
if (!baseUrl.startsWith("https://")) {
|
|
74
|
+
const parsed = new URL(baseUrl);
|
|
75
|
+
if (parsed.hostname !== "localhost" && parsed.hostname !== "127.0.0.1") {
|
|
76
|
+
throw new Error("Only HTTPS base URLs are permitted (HTTP is allowed for " +
|
|
77
|
+
"localhost and 127.0.0.1). " +
|
|
78
|
+
"Received a baseUrl that does not start with 'https://'.");
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const apiRoot = `${baseUrl.replace(/\/$/, "")}/api/v1`;
|
|
56
82
|
const ms = options.timeoutMs ?? 30_000;
|
|
57
83
|
const mailHttp = new HttpTransport(options.apiKey, `${apiRoot}/mail`, ms);
|
|
58
84
|
const phoneHttp = new HttpTransport(options.apiKey, `${apiRoot}/phone`, ms);
|
|
59
85
|
const idsHttp = new HttpTransport(options.apiKey, `${apiRoot}/identities`, ms);
|
|
60
86
|
const authHttp = new HttpTransport(options.apiKey, `${apiRoot}/authenticator`, ms);
|
|
87
|
+
const vaultHttp = new HttpTransport(options.apiKey, `${apiRoot}/vault`, ms);
|
|
61
88
|
const apiHttp = new HttpTransport(options.apiKey, apiRoot, ms);
|
|
62
89
|
this._mailboxes = new MailboxesResource(mailHttp);
|
|
63
90
|
this._messages = new MessagesResource(mailHttp);
|
|
@@ -69,6 +96,10 @@ export class Inkbox {
|
|
|
69
96
|
this._idsResource = new IdentitiesResource(idsHttp);
|
|
70
97
|
this._authApps = new AuthenticatorAppsResource(authHttp);
|
|
71
98
|
this._authAccounts = new AuthenticatorAccountsResource(authHttp);
|
|
99
|
+
this._vaultResource = new VaultResource(vaultHttp);
|
|
100
|
+
if (options.vaultKey !== undefined) {
|
|
101
|
+
this._vaultUnlockPromise = this._vaultResource.unlock(options.vaultKey);
|
|
102
|
+
}
|
|
72
103
|
}
|
|
73
104
|
// ------------------------------------------------------------------
|
|
74
105
|
// Public resource accessors
|
|
@@ -79,6 +110,8 @@ export class Inkbox {
|
|
|
79
110
|
get phoneNumbers() { return this._numbers; }
|
|
80
111
|
/** Org-level authenticator app operations (list, get, create, delete). */
|
|
81
112
|
get authenticatorApps() { return this._authApps; }
|
|
113
|
+
/** Encrypted vault (info, unlock, secrets). */
|
|
114
|
+
get vault() { return this._vaultResource; }
|
|
82
115
|
// ------------------------------------------------------------------
|
|
83
116
|
// Org-level operations
|
|
84
117
|
// ------------------------------------------------------------------
|
package/dist/inkbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inkbox.js","sourceRoot":"","sources":["../src/inkbox.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"inkbox.js","sourceRoot":"","sources":["../src/inkbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Message operations: list (auto-paginated), get, send, flag updates, delete.
|
|
5
5
|
*/
|
|
6
6
|
import { HttpTransport } from "../../_http.js";
|
|
7
|
-
import { Message, MessageDetail } from "../types.js";
|
|
7
|
+
import { Message, MessageDetail, MessageDirection } from "../types.js";
|
|
8
8
|
export declare class MessagesResource {
|
|
9
9
|
private readonly http;
|
|
10
10
|
constructor(http: HttpTransport);
|
|
@@ -22,7 +22,7 @@ export declare class MessagesResource {
|
|
|
22
22
|
*/
|
|
23
23
|
list(emailAddress: string, options?: {
|
|
24
24
|
pageSize?: number;
|
|
25
|
-
direction?:
|
|
25
|
+
direction?: MessageDirection;
|
|
26
26
|
}): AsyncGenerator<Message>;
|
|
27
27
|
/**
|
|
28
28
|
* Get a message with full body content.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/mail/resources/messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,OAAO,EACP,aAAa,
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/mail/resources/messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,OAAO,EACP,aAAa,EACb,gBAAgB,EAKjB,MAAM,aAAa,CAAC;AAIrB,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEhD;;;;;;;;;;;OAWG;IACI,IAAI,CACT,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,gBAAgB,CAAA;KAAE,GAC5D,cAAc,CAAC,OAAO,CAAC;IAmB1B;;;;;OAKG;IACG,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAO1E;;;;;;;;;;;;;;;OAeG;IACG,IAAI,CACR,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;QACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,WAAW,CAAC,EAAE,KAAK,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,MAAM,CAAC;YACpB,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC,CAAC;KACJ,GACA,OAAO,CAAC,OAAO,CAAC;IA6BnB;;;;OAIG;IACG,WAAW,CACf,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/C,OAAO,CAAC,OAAO,CAAC;IAYnB,8BAA8B;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzE,gCAAgC;IAC1B,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3E,sBAAsB;IAChB,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrE,wBAAwB;IAClB,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvE,wBAAwB;IAClB,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE;;;;;;;;OAQG;IACG,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/B,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAMjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/mail/resources/messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/mail/resources/messages.ts"],"names":[],"mappings":"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"}
|
package/dist/mail/types.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* inkbox-mail TypeScript SDK — public types.
|
|
3
3
|
*/
|
|
4
|
+
/** Whether a message was received by or sent from a mailbox. */
|
|
5
|
+
export declare enum MessageDirection {
|
|
6
|
+
/** Email received from an external sender. */
|
|
7
|
+
INBOUND = "inbound",
|
|
8
|
+
/** Email sent by the mailbox via SES. */
|
|
9
|
+
OUTBOUND = "outbound"
|
|
10
|
+
}
|
|
4
11
|
export interface Mailbox {
|
|
5
12
|
id: string;
|
|
6
13
|
emailAddress: string;
|
|
@@ -23,7 +30,7 @@ export interface Message {
|
|
|
23
30
|
subject: string | null;
|
|
24
31
|
/** First ~200 characters of the plain-text body */
|
|
25
32
|
snippet: string | null;
|
|
26
|
-
direction:
|
|
33
|
+
direction: MessageDirection;
|
|
27
34
|
status: string;
|
|
28
35
|
isRead: boolean;
|
|
29
36
|
isStarred: boolean;
|
package/dist/mail/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mail/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mDAAmD;IACnD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mail/types.ts"],"names":[],"mappings":"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"}
|
package/dist/mail/types.js
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* inkbox-mail TypeScript SDK — public types.
|
|
3
3
|
*/
|
|
4
|
+
/** Whether a message was received by or sent from a mailbox. */
|
|
5
|
+
export var MessageDirection;
|
|
6
|
+
(function (MessageDirection) {
|
|
7
|
+
/** Email received from an external sender. */
|
|
8
|
+
MessageDirection["INBOUND"] = "inbound";
|
|
9
|
+
/** Email sent by the mailbox via SES. */
|
|
10
|
+
MessageDirection["OUTBOUND"] = "outbound";
|
|
11
|
+
})(MessageDirection || (MessageDirection = {}));
|
|
4
12
|
// ---- parsers ----
|
|
5
13
|
export function parseMailbox(r) {
|
|
6
14
|
return {
|
package/dist/mail/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mail/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mail/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,gEAAgE;AAChE,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,8CAA8C;IAC9C,uCAAmB,CAAA;IACnB,yCAAyC;IACzC,yCAAqB,CAAA;AACvB,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAsHD,oBAAoB;AAEpB,MAAM,UAAU,YAAY,CAAC,CAAa;IACxC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,aAAa;QAC7B,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,UAAU,EAAE,CAAC,CAAC,WAAW;QACzB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;QACjC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAa;IACxC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,WAAW,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI;QACnC,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,SAAS,EAAE,CAAC,CAAC,SAA6B;QAC1C,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,OAAO;QACjB,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,cAAc,EAAE,CAAC,CAAC,eAAe;QACjC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,CAAa;IAC9C,OAAO;QACL,GAAG,YAAY,CAAC,CAAC,CAAC;QAClB,QAAQ,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;QAC7B,QAAQ,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;QAC7B,YAAY,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI;QACrC,SAAS,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;QAChC,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI;QAChC,kBAAkB,EAAE,CAAC,CAAC,mBAAmB,IAAI,IAAI;QACjD,YAAY,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI;QACtC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,UAAW,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAY;IACtC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,YAAY,EAAE,CAAC,CAAC,aAAa;QAC7B,aAAa,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;QAC1C,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAY;IAC5C,OAAO;QACL,GAAG,WAAW,CAAC,CAAC,CAAC;QACjB,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;KAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* inkbox-vault/crypto.ts
|
|
3
|
+
*
|
|
4
|
+
* Client-side cryptography for the encrypted vault.
|
|
5
|
+
*
|
|
6
|
+
* Key derivation: Argon2id (vault key → master key, via hash-wasm)
|
|
7
|
+
* Encryption: AES-256-GCM (via Node.js crypto)
|
|
8
|
+
* Hashing: SHA-256 (via Node.js crypto)
|
|
9
|
+
*
|
|
10
|
+
* Salt derivation:
|
|
11
|
+
* The Argon2id salt is derived deterministically from the organisation ID
|
|
12
|
+
* so that both the dashboard (vault init) and the SDK (vault unlock) can
|
|
13
|
+
* compute the same master key from the same vault key:
|
|
14
|
+
*
|
|
15
|
+
* salt = TextEncoder.encode(orgId)
|
|
16
|
+
*/
|
|
17
|
+
import { VaultKeyType } from "./types.js";
|
|
18
|
+
/**
|
|
19
|
+
* Validate that a vault key meets minimum strength requirements.
|
|
20
|
+
*
|
|
21
|
+
* Requirements: at least 16 characters, one uppercase letter, one
|
|
22
|
+
* lowercase letter, one digit, and one special character.
|
|
23
|
+
*
|
|
24
|
+
* @param vaultKey - The vault key string to validate.
|
|
25
|
+
* @throws {@link InkboxVaultKeyError} If the vault key does not meet requirements.
|
|
26
|
+
*/
|
|
27
|
+
export declare function validateVaultKey(vaultKey: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* Derive the Argon2id salt from the organisation ID.
|
|
30
|
+
*
|
|
31
|
+
* @param organizationId - The organisation ID string.
|
|
32
|
+
* @returns The raw UTF-8 bytes of the organisation ID.
|
|
33
|
+
*/
|
|
34
|
+
export declare function deriveSalt(organizationId: string): Uint8Array;
|
|
35
|
+
/**
|
|
36
|
+
* Derive a 256-bit master key from a vault key using Argon2id.
|
|
37
|
+
*
|
|
38
|
+
* @param vaultKey - The vault key or recovery code string.
|
|
39
|
+
* @param salt - Salt bytes from {@link deriveSalt}.
|
|
40
|
+
* @returns 32-byte master key.
|
|
41
|
+
*/
|
|
42
|
+
export declare function deriveMasterKey(vaultKey: string, salt: Uint8Array): Promise<Uint8Array>;
|
|
43
|
+
/**
|
|
44
|
+
* Compute `SHA-256(masterKey)` as a hex digest.
|
|
45
|
+
*
|
|
46
|
+
* @param masterKey - The 32-byte master key.
|
|
47
|
+
* @returns 64-character hex string.
|
|
48
|
+
*/
|
|
49
|
+
export declare function computeAuthHash(masterKey: Uint8Array): string;
|
|
50
|
+
/**
|
|
51
|
+
* Wrap the org encryption key with a master key.
|
|
52
|
+
*
|
|
53
|
+
* @param masterKey - 32-byte master key.
|
|
54
|
+
* @param orgKey - 32-byte org encryption key to wrap.
|
|
55
|
+
* @returns Base64-encoded ciphertext blob.
|
|
56
|
+
*/
|
|
57
|
+
export declare function wrapOrgKey(masterKey: Uint8Array, orgKey: Uint8Array): string;
|
|
58
|
+
/**
|
|
59
|
+
* Unwrap the org encryption key using a master key.
|
|
60
|
+
*
|
|
61
|
+
* @param masterKey - 32-byte master key.
|
|
62
|
+
* @param wrappedB64 - Base64-encoded ciphertext blob from the server.
|
|
63
|
+
* @returns 32-byte org encryption key.
|
|
64
|
+
*/
|
|
65
|
+
export declare function unwrapOrgKey(masterKey: Uint8Array, wrappedB64: string): Uint8Array;
|
|
66
|
+
/**
|
|
67
|
+
* Serialize a payload to JSON and encrypt it with the org encryption key.
|
|
68
|
+
*
|
|
69
|
+
* @param orgKey - 32-byte org encryption key.
|
|
70
|
+
* @param payload - Plain object to encrypt.
|
|
71
|
+
* @returns Base64-encoded ciphertext blob.
|
|
72
|
+
*/
|
|
73
|
+
export declare function encryptPayload(orgKey: Uint8Array, payload: Record<string, unknown>): string;
|
|
74
|
+
/**
|
|
75
|
+
* Decrypt a base64 ciphertext blob and parse the JSON payload.
|
|
76
|
+
*
|
|
77
|
+
* @param orgKey - 32-byte org encryption key.
|
|
78
|
+
* @param encryptedB64 - Base64-encoded ciphertext blob.
|
|
79
|
+
* @returns The decrypted payload as a plain object.
|
|
80
|
+
*/
|
|
81
|
+
export declare function decryptPayload(orgKey: Uint8Array, encryptedB64: string): Record<string, unknown>;
|
|
82
|
+
/**
|
|
83
|
+
* Generate a random 256-bit org encryption key.
|
|
84
|
+
*
|
|
85
|
+
* @returns 32 cryptographically random bytes.
|
|
86
|
+
*/
|
|
87
|
+
export declare function generateOrgEncryptionKey(): Uint8Array;
|
|
88
|
+
/**
|
|
89
|
+
* Cryptographic material for registering a vault key with the server.
|
|
90
|
+
*
|
|
91
|
+
* Call {@link vaultKeyMaterialToWire} to get a JSON-ready object with
|
|
92
|
+
* snake_case keys matching `POST /vault/initialize` or `POST /vault/keys`.
|
|
93
|
+
*/
|
|
94
|
+
export interface VaultKeyMaterial {
|
|
95
|
+
/** Client-generated UUID (database primary key). */
|
|
96
|
+
id: string;
|
|
97
|
+
/** Base64-encoded AES-256-GCM ciphertext wrapping the org encryption key. */
|
|
98
|
+
wrappedOrgEncryptionKey: string;
|
|
99
|
+
/** `SHA-256(masterKey)` hex digest. */
|
|
100
|
+
authHash: string;
|
|
101
|
+
/** `"primary"` or `"recovery"`. */
|
|
102
|
+
keyType: VaultKeyType;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Convert {@link VaultKeyMaterial} to a JSON-ready object matching the API's
|
|
106
|
+
* expected snake_case schema.
|
|
107
|
+
*/
|
|
108
|
+
export declare function vaultKeyMaterialToWire(m: VaultKeyMaterial): Record<string, string>;
|
|
109
|
+
/**
|
|
110
|
+
* Generate vault key material from a vault key.
|
|
111
|
+
*
|
|
112
|
+
* Derives a master key via Argon2id and wraps the org encryption key.
|
|
113
|
+
*
|
|
114
|
+
* @param vaultKey - The vault key string.
|
|
115
|
+
* @param organizationId - Organisation ID (used as Argon2id salt).
|
|
116
|
+
* @param orgEncryptionKey - 32-byte org encryption key to wrap.
|
|
117
|
+
* @param options.keyType - `"primary"` (default) or `"recovery"`.
|
|
118
|
+
* @returns Material ready to send to the server.
|
|
119
|
+
* @throws {@link InkboxVaultKeyError} If the vault key fails validation.
|
|
120
|
+
*/
|
|
121
|
+
export declare function generateVaultKeyMaterial(vaultKey: string, organizationId: string, orgEncryptionKey: Uint8Array, options?: {
|
|
122
|
+
keyType?: VaultKeyType;
|
|
123
|
+
}): Promise<VaultKeyMaterial>;
|
|
124
|
+
/**
|
|
125
|
+
* Generate a random recovery code and its vault key material.
|
|
126
|
+
*
|
|
127
|
+
* The recovery code is a human-readable string of the form
|
|
128
|
+
* `XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX` (~120 bits of entropy).
|
|
129
|
+
*
|
|
130
|
+
* @param organizationId - Organisation ID (used as Argon2id salt).
|
|
131
|
+
* @param orgEncryptionKey - 32-byte org encryption key to wrap.
|
|
132
|
+
* @returns `[codeString, material]` tuple. The code string must be stored
|
|
133
|
+
* securely — it cannot be recovered.
|
|
134
|
+
*/
|
|
135
|
+
export declare function generateRecoveryCode(organizationId: string, orgEncryptionKey: Uint8Array): Promise<[string, VaultKeyMaterial]>;
|
|
136
|
+
//# sourceMappingURL=crypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/vault/crypto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAYH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAwB1C;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAWvD;AAMD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,UAAU,CAE7D;AAMD;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,UAAU,CAAC,CAWrB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAE7D;AAqCD;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,UAAU,EACrB,MAAM,EAAE,UAAU,GACjB,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,UAAU,EACrB,UAAU,EAAE,MAAM,GACjB,UAAU,CAGZ;AAMD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CAIR;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIzB;AAMD;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,UAAU,CAErD;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,6EAA6E;IAC7E,uBAAuB,EAAE,MAAM,CAAC;IAChC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,OAAO,EAAE,YAAY,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOlF;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,UAAU,EAC5B,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,YAAY,CAAA;CAAO,GACvC,OAAO,CAAC,gBAAgB,CAAC,CAa3B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,UAAU,GAC3B,OAAO,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CA0BrC"}
|