latchkey 3.13.1 → 3.15.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 +28 -1
- package/dist/src/apiCredentials/base.d.ts +53 -5
- package/dist/src/apiCredentials/base.d.ts.map +1 -1
- package/dist/src/apiCredentials/base.js +43 -9
- package/dist/src/apiCredentials/base.js.map +1 -1
- package/dist/src/apiCredentials/serialization.d.ts +11 -139
- package/dist/src/apiCredentials/serialization.d.ts.map +1 -1
- package/dist/src/apiCredentials/serialization.js +53 -81
- package/dist/src/apiCredentials/serialization.js.map +1 -1
- package/dist/src/apiCredentials/store.d.ts +7 -2
- package/dist/src/apiCredentials/store.d.ts.map +1 -1
- package/dist/src/apiCredentials/store.js +18 -8
- package/dist/src/apiCredentials/store.js.map +1 -1
- package/dist/src/cli.js +13 -2
- package/dist/src/cli.js.map +1 -1
- package/dist/src/cliCommands.d.ts +15 -7
- package/dist/src/cliCommands.d.ts.map +1 -1
- package/dist/src/cliCommands.js +56 -25
- package/dist/src/cliCommands.js.map +1 -1
- package/dist/src/config.d.ts +10 -0
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +15 -0
- package/dist/src/config.js.map +1 -1
- package/dist/src/configDataStore.d.ts +3 -0
- package/dist/src/configDataStore.d.ts.map +1 -1
- package/dist/src/configDataStore.js +1 -0
- package/dist/src/configDataStore.js.map +1 -1
- package/dist/src/curlInjection.d.ts +15 -4
- package/dist/src/curlInjection.d.ts.map +1 -1
- package/dist/src/curlInjection.js +16 -6
- package/dist/src/curlInjection.js.map +1 -1
- package/dist/src/diagnosticHeaders.d.ts +19 -0
- package/dist/src/diagnosticHeaders.d.ts.map +1 -0
- package/dist/src/diagnosticHeaders.js +20 -0
- package/dist/src/diagnosticHeaders.js.map +1 -0
- package/dist/src/errorMessages.d.ts.map +1 -1
- package/dist/src/errorMessages.js +35 -1
- package/dist/src/errorMessages.js.map +1 -1
- package/dist/src/gateway/gatewayEndpoint.d.ts.map +1 -1
- package/dist/src/gateway/gatewayEndpoint.js +11 -4
- package/dist/src/gateway/gatewayEndpoint.js.map +1 -1
- package/dist/src/gateway/headerEncoding.d.ts +22 -0
- package/dist/src/gateway/headerEncoding.d.ts.map +1 -0
- package/dist/src/gateway/headerEncoding.js +26 -0
- package/dist/src/gateway/headerEncoding.js.map +1 -0
- package/dist/src/gateway/server.d.ts.map +1 -1
- package/dist/src/gateway/server.js +5 -2
- package/dist/src/gateway/server.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/migrations.d.ts.map +1 -1
- package/dist/src/migrations.js +8 -8
- package/dist/src/migrations.js.map +1 -1
- package/dist/src/oauthUtils.d.ts +17 -0
- package/dist/src/oauthUtils.d.ts.map +1 -1
- package/dist/src/oauthUtils.js +22 -1
- package/dist/src/oauthUtils.js.map +1 -1
- package/dist/src/pluginSdk.d.ts +117 -0
- package/dist/src/pluginSdk.d.ts.map +1 -0
- package/dist/src/pluginSdk.js +97 -0
- package/dist/src/pluginSdk.js.map +1 -0
- package/dist/src/plugins.d.ts +74 -0
- package/dist/src/plugins.d.ts.map +1 -0
- package/dist/src/plugins.js +221 -0
- package/dist/src/plugins.js.map +1 -0
- package/dist/src/serviceRegistry.d.ts +2 -2
- package/dist/src/serviceRegistry.d.ts.map +1 -1
- package/dist/src/serviceRegistry.js +3 -3
- package/dist/src/serviceRegistry.js.map +1 -1
- package/dist/src/services/aws.d.ts +2 -1
- package/dist/src/services/aws.d.ts.map +1 -1
- package/dist/src/services/aws.js +4 -2
- package/dist/src/services/aws.js.map +1 -1
- package/dist/src/services/core/base.d.ts +42 -2
- package/dist/src/services/core/base.d.ts.map +1 -1
- package/dist/src/services/core/base.js +48 -1
- package/dist/src/services/core/base.js.map +1 -1
- package/dist/src/services/dropbox.d.ts.map +1 -1
- package/dist/src/services/dropbox.js +2 -2
- package/dist/src/services/dropbox.js.map +1 -1
- package/dist/src/services/fastmail.d.ts +4 -19
- package/dist/src/services/fastmail.d.ts.map +1 -1
- package/dist/src/services/fastmail.js +17 -22
- package/dist/src/services/fastmail.js.map +1 -1
- package/dist/src/services/google/base.d.ts +8 -3
- package/dist/src/services/google/base.d.ts.map +1 -1
- package/dist/src/services/google/base.js +23 -13
- package/dist/src/services/google/base.js.map +1 -1
- package/dist/src/services/notion-mcp.d.ts +16 -16
- package/dist/src/services/notion-mcp.d.ts.map +1 -1
- package/dist/src/services/notion-mcp.js +36 -21
- package/dist/src/services/notion-mcp.js.map +1 -1
- package/dist/src/services/ramp.d.ts.map +1 -1
- package/dist/src/services/ramp.js +2 -2
- package/dist/src/services/ramp.js.map +1 -1
- package/dist/src/services/slack.d.ts +2 -1
- package/dist/src/services/slack.d.ts.map +1 -1
- package/dist/src/services/slack.js +4 -2
- package/dist/src/services/slack.js.map +1 -1
- package/dist/src/services/tailscale.d.ts +2 -1
- package/dist/src/services/tailscale.d.ts.map +1 -1
- package/dist/src/services/tailscale.js +4 -2
- package/dist/src/services/tailscale.js.map +1 -1
- package/dist/src/services/telegram.d.ts +2 -1
- package/dist/src/services/telegram.d.ts.map +1 -1
- package/dist/src/services/telegram.js +4 -2
- package/dist/src/services/telegram.js.map +1 -1
- package/dist/src/services/zoom.d.ts +2 -1
- package/dist/src/services/zoom.d.ts.map +1 -1
- package/dist/src/services/zoom.js +4 -2
- package/dist/src/services/zoom.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/tests/apiCredentialStore.test.js +54 -1
- package/dist/tests/apiCredentialStore.test.js.map +1 -1
- package/dist/tests/apiCredentials.test.js +73 -12
- package/dist/tests/apiCredentials.test.js.map +1 -1
- package/dist/tests/cli.test.js +97 -1
- package/dist/tests/cli.test.js.map +1 -1
- package/dist/tests/config.test.js +7 -0
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/diagnosticHeaders.test.d.ts +2 -0
- package/dist/tests/diagnosticHeaders.test.d.ts.map +1 -0
- package/dist/tests/diagnosticHeaders.test.js +22 -0
- package/dist/tests/diagnosticHeaders.test.js.map +1 -0
- package/dist/tests/errorMessages.test.d.ts +6 -0
- package/dist/tests/errorMessages.test.d.ts.map +1 -0
- package/dist/tests/errorMessages.test.js +31 -0
- package/dist/tests/errorMessages.test.js.map +1 -0
- package/dist/tests/gateway.test.js +65 -4
- package/dist/tests/gateway.test.js.map +1 -1
- package/dist/tests/gatewayExtensions.test.js +5 -2
- package/dist/tests/gatewayExtensions.test.js.map +1 -1
- package/dist/tests/headerEncoding.test.d.ts +5 -0
- package/dist/tests/headerEncoding.test.d.ts.map +1 -0
- package/dist/tests/headerEncoding.test.js +40 -0
- package/dist/tests/headerEncoding.test.js.map +1 -0
- package/dist/tests/latchkeyEndpoint.test.js +8 -6
- package/dist/tests/latchkeyEndpoint.test.js.map +1 -1
- package/dist/tests/notion-mcp.test.d.ts +2 -0
- package/dist/tests/notion-mcp.test.d.ts.map +1 -0
- package/dist/tests/notion-mcp.test.js +16 -0
- package/dist/tests/notion-mcp.test.js.map +1 -0
- package/dist/tests/oauthUtils.test.js +23 -1
- package/dist/tests/oauthUtils.test.js.map +1 -1
- package/dist/tests/plugins.test.d.ts +2 -0
- package/dist/tests/plugins.test.d.ts.map +1 -0
- package/dist/tests/plugins.test.js +506 -0
- package/dist/tests/plugins.test.js.map +1 -0
- package/dist/tests/sharedOperations.test.js +63 -2
- package/dist/tests/sharedOperations.test.js.map +1 -1
- package/dist/tests/tailscale.test.js +1 -3
- package/dist/tests/tailscale.test.js.map +1 -1
- package/package.json +16 -2
|
@@ -4,96 +4,68 @@
|
|
|
4
4
|
* This module is separate from base.ts to avoid circular dependencies:
|
|
5
5
|
* service files import base types from base.ts, and this module imports
|
|
6
6
|
* from both base.ts and service files.
|
|
7
|
+
*
|
|
8
|
+
* Which credentials can be read back is decided by a list of
|
|
9
|
+
* {@link ApiCredentialsType}s. {@link BUILTIN_API_CREDENTIALS_TYPES} covers
|
|
10
|
+
* everything Latchkey ships with and is the default; the CLI passes the
|
|
11
|
+
* combined built-in and plugin list instead.
|
|
7
12
|
*/
|
|
8
13
|
import { z } from 'zod';
|
|
9
|
-
import { AuthorizationBare,
|
|
10
|
-
import { AwsCredentials
|
|
11
|
-
import { GoogleApiKeyCredentials
|
|
12
|
-
import { SlackApiCredentials
|
|
13
|
-
import { TelegramBotCredentials
|
|
14
|
-
import { ZoomServerToServerCredentials
|
|
15
|
-
import { TailscaleCredentials
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Deserialize credentials from JSON data.
|
|
33
|
-
*/
|
|
34
|
-
export function deserializeCredentials(data) {
|
|
35
|
-
switch (data.objectType) {
|
|
36
|
-
case 'authorizationBearer':
|
|
37
|
-
return AuthorizationBearer.fromJSON(data);
|
|
38
|
-
case 'authorizationBare':
|
|
39
|
-
return AuthorizationBare.fromJSON(data);
|
|
40
|
-
case 'slack':
|
|
41
|
-
return SlackApiCredentials.fromJSON(data);
|
|
42
|
-
case 'oauth':
|
|
43
|
-
return OAuthCredentials.fromJSON(data);
|
|
44
|
-
case 'rawCurl':
|
|
45
|
-
return RawCurlCredentials.fromJSON(data);
|
|
46
|
-
case 'telegramBot':
|
|
47
|
-
return TelegramBotCredentials.fromJSON(data);
|
|
48
|
-
case 'aws':
|
|
49
|
-
return AwsCredentials.fromJSON(data);
|
|
50
|
-
case 'googleApiKey':
|
|
51
|
-
return GoogleApiKeyCredentials.fromJSON(data);
|
|
52
|
-
case 'zoomServerToServer':
|
|
53
|
-
return ZoomServerToServerCredentials.fromJSON(data);
|
|
54
|
-
case 'tailscale':
|
|
55
|
-
return TailscaleCredentials.fromJSON(data);
|
|
56
|
-
default: {
|
|
57
|
-
const exhaustiveCheck = data;
|
|
58
|
-
throw new ApiCredentialsSerializationError(`Unknown credential type: ${exhaustiveCheck.objectType}`);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
14
|
+
import { AuthorizationBare, AuthorizationBearer, OAuthCredentials, RawCurlCredentials, } from './base.js';
|
|
15
|
+
import { AwsCredentials } from '../services/aws.js';
|
|
16
|
+
import { GoogleApiKeyCredentials } from '../services/google/base.js';
|
|
17
|
+
import { SlackApiCredentials } from '../services/slack.js';
|
|
18
|
+
import { TelegramBotCredentials } from '../services/telegram.js';
|
|
19
|
+
import { ZoomServerToServerCredentials } from '../services/zoom.js';
|
|
20
|
+
import { TailscaleCredentials } from '../services/tailscale.js';
|
|
21
|
+
export const BUILTIN_API_CREDENTIALS_TYPES = [
|
|
22
|
+
AuthorizationBearer,
|
|
23
|
+
AuthorizationBare,
|
|
24
|
+
SlackApiCredentials,
|
|
25
|
+
OAuthCredentials,
|
|
26
|
+
RawCurlCredentials,
|
|
27
|
+
TelegramBotCredentials,
|
|
28
|
+
AwsCredentials,
|
|
29
|
+
GoogleApiKeyCredentials,
|
|
30
|
+
ZoomServerToServerCredentials,
|
|
31
|
+
TailscaleCredentials,
|
|
32
|
+
];
|
|
33
|
+
const OBJECT_TYPE_SCHEMA = z.object({ objectType: z.string() });
|
|
34
|
+
function findApiCredentialsType(objectType, apiCredentialsTypes) {
|
|
35
|
+
return apiCredentialsTypes.find((type) => type.objectType === objectType);
|
|
61
36
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (credentials instanceof AuthorizationBearer) {
|
|
67
|
-
return credentials.toJSON();
|
|
37
|
+
export function deserializeCredentials(data, apiCredentialsTypes = BUILTIN_API_CREDENTIALS_TYPES) {
|
|
38
|
+
const header = OBJECT_TYPE_SCHEMA.safeParse(data);
|
|
39
|
+
if (!header.success) {
|
|
40
|
+
throw new ApiCredentialsSerializationError('Credential data does not name an objectType.');
|
|
68
41
|
}
|
|
69
|
-
|
|
70
|
-
|
|
42
|
+
const objectType = header.data.objectType;
|
|
43
|
+
const type = findApiCredentialsType(objectType, apiCredentialsTypes);
|
|
44
|
+
if (type === undefined) {
|
|
45
|
+
throw new ApiCredentialsSerializationError(`Unknown credential type '${objectType}'. Credentials of a type defined by a plugin ` +
|
|
46
|
+
'can only be used while that plugin is installed.');
|
|
71
47
|
}
|
|
72
|
-
|
|
73
|
-
return
|
|
48
|
+
try {
|
|
49
|
+
return type.fromJSON(data);
|
|
74
50
|
}
|
|
75
|
-
|
|
76
|
-
|
|
51
|
+
catch (error) {
|
|
52
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
53
|
+
throw new ApiCredentialsSerializationError(`Invalid '${objectType}' credential data: ${message}`);
|
|
77
54
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
if (credentials
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
if (credentials instanceof GoogleApiKeyCredentials) {
|
|
88
|
-
return credentials.toJSON();
|
|
89
|
-
}
|
|
90
|
-
if (credentials instanceof ZoomServerToServerCredentials) {
|
|
91
|
-
return credentials.toJSON();
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Refuses credentials that could not be read back afterwards, so that the
|
|
58
|
+
* mistake surfaces when they are stored rather than when they are needed.
|
|
59
|
+
*/
|
|
60
|
+
export function serializeCredentials(credentials, apiCredentialsTypes = BUILTIN_API_CREDENTIALS_TYPES) {
|
|
61
|
+
if (credentials.toJSON === undefined) {
|
|
62
|
+
throw new ApiCredentialsSerializationError(`Credentials of type '${credentials.objectType}' are never stored.`);
|
|
92
63
|
}
|
|
93
|
-
if (credentials
|
|
94
|
-
|
|
64
|
+
if (findApiCredentialsType(credentials.objectType, apiCredentialsTypes) === undefined) {
|
|
65
|
+
throw new ApiCredentialsSerializationError(`Unknown credential type '${credentials.objectType}'. A plugin defining its own ` +
|
|
66
|
+
"credentials class has to list its type in 'apiCredentialsTypes'.");
|
|
95
67
|
}
|
|
96
|
-
|
|
68
|
+
return credentials.toJSON();
|
|
97
69
|
}
|
|
98
70
|
export class ApiCredentialsSerializationError extends Error {
|
|
99
71
|
constructor(message) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../../src/apiCredentials/serialization.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../../src/apiCredentials/serialization.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* account is used, or an {@link AmbiguousAccountError} is raised when several
|
|
19
19
|
* accounts exist and the caller must disambiguate.
|
|
20
20
|
*/
|
|
21
|
-
import type { ApiCredentials } from './base.js';
|
|
21
|
+
import type { ApiCredentials, ApiCredentialsType } from './base.js';
|
|
22
22
|
import { EncryptedStorage } from '../encryptedStorage.js';
|
|
23
23
|
export declare class ApiCredentialStoreError extends Error {
|
|
24
24
|
constructor(message: string);
|
|
@@ -35,7 +35,12 @@ export declare class AmbiguousAccountError extends Error {
|
|
|
35
35
|
export declare class ApiCredentialStore {
|
|
36
36
|
readonly path: string;
|
|
37
37
|
private readonly encryptedStorage;
|
|
38
|
-
|
|
38
|
+
private readonly apiCredentialsTypes;
|
|
39
|
+
/**
|
|
40
|
+
* `apiCredentialsTypes` is every credentials type the store can hold. The
|
|
41
|
+
* CLI passes the built-in ones plus those its plugins define.
|
|
42
|
+
*/
|
|
43
|
+
constructor(path: string, encryptedStorage: EncryptedStorage, apiCredentialsTypes?: readonly ApiCredentialsType[]);
|
|
39
44
|
private loadStoreData;
|
|
40
45
|
private saveStoreData;
|
|
41
46
|
private parseCredentials;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/apiCredentials/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/apiCredentials/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAOpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;gBAEzB,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE;CAU7D;AASD,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAgC;IAEpE;;;OAGG;gBAED,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,GAAE,SAAS,kBAAkB,EAAkC;IAOpF,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,gBAAgB;IAaxB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAU9B,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAejE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAgBjF;;;OAGG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAS1D;;;OAGG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,IAAI;IAM1E;;;OAGG;IACH,wBAAwB,IAAI,SAAS,MAAM,EAAE;IAI7C;;;;OAIG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE;IAMpD;;;OAGG;IACH,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAalE;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO;IAyBtD;;;;OAIG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CAUxC"}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* accounts exist and the caller must disambiguate.
|
|
20
20
|
*/
|
|
21
21
|
import { DEFAULT_ACCOUNT, formatAccount } from './account.js';
|
|
22
|
-
import {
|
|
22
|
+
import { ApiCredentialsSerializationError, BUILTIN_API_CREDENTIALS_TYPES, deserializeCredentials, serializeCredentials, } from './serialization.js';
|
|
23
23
|
export class ApiCredentialStoreError extends Error {
|
|
24
24
|
constructor(message) {
|
|
25
25
|
super(message);
|
|
@@ -45,9 +45,15 @@ export class AmbiguousAccountError extends Error {
|
|
|
45
45
|
export class ApiCredentialStore {
|
|
46
46
|
path;
|
|
47
47
|
encryptedStorage;
|
|
48
|
-
|
|
48
|
+
apiCredentialsTypes;
|
|
49
|
+
/**
|
|
50
|
+
* `apiCredentialsTypes` is every credentials type the store can hold. The
|
|
51
|
+
* CLI passes the built-in ones plus those its plugins define.
|
|
52
|
+
*/
|
|
53
|
+
constructor(path, encryptedStorage, apiCredentialsTypes = BUILTIN_API_CREDENTIALS_TYPES) {
|
|
49
54
|
this.path = path;
|
|
50
55
|
this.encryptedStorage = encryptedStorage;
|
|
56
|
+
this.apiCredentialsTypes = apiCredentialsTypes;
|
|
51
57
|
}
|
|
52
58
|
loadStoreData() {
|
|
53
59
|
try {
|
|
@@ -74,11 +80,15 @@ export class ApiCredentialStore {
|
|
|
74
80
|
}
|
|
75
81
|
}
|
|
76
82
|
parseCredentials(serviceName, credentialData) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
83
|
+
try {
|
|
84
|
+
return deserializeCredentials(credentialData, this.apiCredentialsTypes);
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
if (error instanceof ApiCredentialsSerializationError) {
|
|
88
|
+
throw new ApiCredentialStoreError(`Invalid credential data for service ${serviceName}: ${error.message}`);
|
|
89
|
+
}
|
|
90
|
+
throw error;
|
|
80
91
|
}
|
|
81
|
-
return deserializeCredentials(parseResult.data);
|
|
82
92
|
}
|
|
83
93
|
/**
|
|
84
94
|
* Resolve which stored account to operate on when the caller did not name
|
|
@@ -118,7 +128,7 @@ export class ApiCredentialStore {
|
|
|
118
128
|
const resolvedAccount = account ?? this.resolveImplicitAccount(serviceName, accounts) ?? DEFAULT_ACCOUNT;
|
|
119
129
|
data.credentials[serviceName] = {
|
|
120
130
|
...serviceData,
|
|
121
|
-
[resolvedAccount]: serializeCredentials(apiCredentials),
|
|
131
|
+
[resolvedAccount]: serializeCredentials(apiCredentials, this.apiCredentialsTypes),
|
|
122
132
|
};
|
|
123
133
|
this.saveStoreData(data);
|
|
124
134
|
}
|
|
@@ -140,7 +150,7 @@ export class ApiCredentialStore {
|
|
|
140
150
|
*/
|
|
141
151
|
savePreparation(serviceName, apiCredentials) {
|
|
142
152
|
const data = this.loadStoreData();
|
|
143
|
-
data.preparations[serviceName] = serializeCredentials(apiCredentials);
|
|
153
|
+
data.preparations[serviceName] = serializeCredentials(apiCredentials, this.apiCredentialsTypes);
|
|
144
154
|
this.saveStoreData(data);
|
|
145
155
|
}
|
|
146
156
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/apiCredentials/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/apiCredentials/store.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli.js
CHANGED
|
@@ -4,15 +4,26 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { existsSync } from 'node:fs';
|
|
6
6
|
import { program } from 'commander';
|
|
7
|
-
import { registerCommands, createDefaultDependencies } from './cliCommands.js';
|
|
7
|
+
import { registerCommands, createDefaultDependencies, } from './cliCommands.js';
|
|
8
8
|
import { CurlNotFoundError, InsecureFilePermissionsError } from './config.js';
|
|
9
9
|
import { EncryptedStorage } from './encryptedStorage.js';
|
|
10
10
|
import { EncryptionKeyLostError, EncryptionKeyUnavailableError, resolveEncryptionKey, } from './encryption.js';
|
|
11
11
|
import { KeychainTimeoutError } from './keychain.js';
|
|
12
12
|
import { MigrationError, runMigrations } from './migrations.js';
|
|
13
13
|
import { countDailyIfNeeded } from './dailyCounting.js';
|
|
14
|
+
import { PluginLoadError } from './plugins.js';
|
|
14
15
|
import { VERSION } from './version.js';
|
|
15
|
-
|
|
16
|
+
let deps;
|
|
17
|
+
try {
|
|
18
|
+
deps = await createDefaultDependencies();
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
if (error instanceof PluginLoadError) {
|
|
22
|
+
console.error(`Error: ${error.message}`);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
16
27
|
const gatewayMode = deps.config.gatewayUrl !== null;
|
|
17
28
|
try {
|
|
18
29
|
deps.config.checkSystemPrerequisites();
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* CLI command implementations with dependency injection for testability.
|
|
3
3
|
*/
|
|
4
4
|
import type { Command } from 'commander';
|
|
5
|
+
import { ApiCredentialsType } from './apiCredentials/base.js';
|
|
5
6
|
import { Config } from './config.js';
|
|
6
7
|
import type { CurlResult } from './curl.js';
|
|
7
8
|
import { ServiceRegistry } from './serviceRegistry.js';
|
|
@@ -20,12 +21,18 @@ export declare const PERMISSION_DENIED_EXIT_CODE = 126;
|
|
|
20
21
|
export interface CliDependencies {
|
|
21
22
|
readonly registry: ServiceRegistry;
|
|
22
23
|
/**
|
|
23
|
-
* The services latchkey ships with
|
|
24
|
-
* of before config.json is applied to it.
|
|
25
|
-
* from these on every request, so it needs
|
|
26
|
-
* which has already had config.json applied
|
|
24
|
+
* The services latchkey ships with plus those its plugins contribute, which
|
|
25
|
+
* is what a registry is built on top of before config.json is applied to it.
|
|
26
|
+
* The gateway rebuilds a registry from these on every request, so it needs
|
|
27
|
+
* them separately from `registry`, which has already had config.json applied
|
|
28
|
+
* and the hidden services removed.
|
|
27
29
|
*/
|
|
28
|
-
readonly
|
|
30
|
+
readonly baseServices: readonly Service[];
|
|
31
|
+
/**
|
|
32
|
+
* Every credentials type that can be stored: the ones latchkey ships with
|
|
33
|
+
* plus those its plugins define.
|
|
34
|
+
*/
|
|
35
|
+
readonly apiCredentialsTypes: readonly ApiCredentialsType[];
|
|
29
36
|
readonly config: Config;
|
|
30
37
|
readonly runCurl: (args: readonly string[]) => CurlResult;
|
|
31
38
|
readonly runCurlAsync: typeof curlRunAsync;
|
|
@@ -38,9 +45,10 @@ export interface CliDependencies {
|
|
|
38
45
|
readonly version: string;
|
|
39
46
|
}
|
|
40
47
|
/**
|
|
41
|
-
* Default implementation of CLI dependencies.
|
|
48
|
+
* Default implementation of CLI dependencies. Loads the plugins, which is why
|
|
49
|
+
* it is asynchronous; throws `PluginLoadError` when one of them is broken.
|
|
42
50
|
*/
|
|
43
|
-
export declare function createDefaultDependencies(): CliDependencies
|
|
51
|
+
export declare function createDefaultDependencies(): Promise<CliDependencies>;
|
|
44
52
|
/**
|
|
45
53
|
* Register all CLI commands on the given program.
|
|
46
54
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliCommands.d.ts","sourceRoot":"","sources":["../../src/cliCommands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cliCommands.d.ts","sourceRoot":"","sources":["../../src/cliCommands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,OAAO,EAEL,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAkBlC,OAAO,EAAE,MAAM,EAAU,MAAM,aAAa,CAAC;AAQ7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAKL,eAAe,EAEhB,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EASL,OAAO,EAIR,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAIL,QAAQ,IAAI,YAAY,EACzB,MAAM,WAAW,CAAC;AACnB,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,kBAAkB,CAAC;AAqC1B;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,EAAE,SAAS,OAAO,EAAE,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC5D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,UAAU,CAAC;IAC1D,QAAQ,CAAC,YAAY,EAAE,OAAO,YAAY,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,CACxB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,sBAAsB,EAAE,OAAO,EAC/B,QAAQ,CAAC,EAAE,uBAAuB,KAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;IACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,eAAe,CAAC,CAgC1E;AAqQD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CA4lC9E"}
|