@padua/cli 2.0.22 → 2.0.23
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 +1 -1
- package/dist/commands/doctor/checks.d.ts +2 -2
- package/dist/commands/doctor/checks.d.ts.map +1 -1
- package/dist/commands/doctor/checks.js +31 -69
- package/dist/commands/doctor/checks.js.map +1 -1
- package/dist/commands/doctor/index.d.ts +1 -1
- package/dist/commands/doctor/index.d.ts.map +1 -1
- package/dist/commands/doctor/index.js +60 -65
- package/dist/commands/doctor/index.js.map +1 -1
- package/dist/commands/doctor/mcp-checks.d.ts +2 -2
- package/dist/commands/doctor/mcp-checks.d.ts.map +1 -1
- package/dist/commands/doctor/mcp-checks.js +13 -59
- package/dist/commands/doctor/mcp-checks.js.map +1 -1
- package/dist/commands/doctor/mcp-service-checks.d.ts +1 -1
- package/dist/commands/doctor/mcp-service-checks.d.ts.map +1 -1
- package/dist/commands/doctor/mcp-service-checks.js +6 -13
- package/dist/commands/doctor/mcp-service-checks.js.map +1 -1
- package/dist/commands/doctor/suggestions.js +3 -8
- package/dist/commands/doctor/suggestions.js.map +1 -1
- package/dist/commands/doctor/types.js +2 -5
- package/dist/commands/doctor/types.js.map +1 -1
- package/dist/commands/exec/aws.d.ts +1 -1
- package/dist/commands/exec/aws.d.ts.map +1 -1
- package/dist/commands/exec/aws.js +31 -37
- package/dist/commands/exec/aws.js.map +1 -1
- package/dist/commands/exec/index.d.ts +1 -1
- package/dist/commands/exec/index.d.ts.map +1 -1
- package/dist/commands/exec/index.js +41 -46
- package/dist/commands/exec/index.js.map +1 -1
- package/dist/commands/exec/types.js +1 -4
- package/dist/commands/exec/types.js.map +1 -1
- package/dist/commands/init/aws-config.js +7 -44
- package/dist/commands/init/aws-config.js.map +1 -1
- package/dist/commands/init/aws-profile.d.ts +2 -2
- package/dist/commands/init/aws-profile.d.ts.map +1 -1
- package/dist/commands/init/aws-profile.js +11 -54
- package/dist/commands/init/aws-profile.js.map +1 -1
- package/dist/commands/init/index.d.ts +2 -2
- package/dist/commands/init/index.d.ts.map +1 -1
- package/dist/commands/init/index.js +87 -97
- package/dist/commands/init/index.js.map +1 -1
- package/dist/commands/init/init.d.ts +1 -1
- package/dist/commands/init/init.d.ts.map +1 -1
- package/dist/commands/init/init.js +20 -65
- package/dist/commands/init/init.js.map +1 -1
- package/dist/commands/init/prerequisites.js +7 -14
- package/dist/commands/init/prerequisites.js.map +1 -1
- package/dist/commands/init/prompts.d.ts +1 -1
- package/dist/commands/init/prompts.d.ts.map +1 -1
- package/dist/commands/init/prompts.js +28 -55
- package/dist/commands/init/prompts.js.map +1 -1
- package/dist/commands/init/sso-discovery.js +22 -68
- package/dist/commands/init/sso-discovery.js.map +1 -1
- package/dist/commands/login/codeartifact.d.ts +1 -1
- package/dist/commands/login/codeartifact.d.ts.map +1 -1
- package/dist/commands/login/codeartifact.js +16 -19
- package/dist/commands/login/codeartifact.js.map +1 -1
- package/dist/commands/login/config.d.ts +1 -1
- package/dist/commands/login/config.d.ts.map +1 -1
- package/dist/commands/login/config.js +5 -42
- package/dist/commands/login/config.js.map +1 -1
- package/dist/commands/login/ecr.d.ts +1 -1
- package/dist/commands/login/ecr.d.ts.map +1 -1
- package/dist/commands/login/ecr.js +14 -17
- package/dist/commands/login/ecr.js.map +1 -1
- package/dist/commands/login/index.js +21 -27
- package/dist/commands/login/index.js.map +1 -1
- package/dist/commands/login/mcp-steps.d.ts +3 -3
- package/dist/commands/login/mcp-steps.d.ts.map +1 -1
- package/dist/commands/login/mcp-steps.js +30 -34
- package/dist/commands/login/mcp-steps.js.map +1 -1
- package/dist/commands/login/npmrc.d.ts +1 -1
- package/dist/commands/login/npmrc.d.ts.map +1 -1
- package/dist/commands/login/npmrc.js +12 -56
- package/dist/commands/login/npmrc.js.map +1 -1
- package/dist/commands/login/orchestrator.d.ts +1 -1
- package/dist/commands/login/orchestrator.d.ts.map +1 -1
- package/dist/commands/login/orchestrator.js +55 -62
- package/dist/commands/login/orchestrator.js.map +1 -1
- package/dist/commands/login/sso.d.ts +1 -1
- package/dist/commands/login/sso.d.ts.map +1 -1
- package/dist/commands/login/sso.js +17 -56
- package/dist/commands/login/sso.js.map +1 -1
- package/dist/commands/login/types.d.ts +1 -1
- package/dist/commands/login/types.d.ts.map +1 -1
- package/dist/commands/login/types.js +9 -20
- package/dist/commands/login/types.js.map +1 -1
- package/dist/commands/login/utils.js +7 -14
- package/dist/commands/login/utils.js.map +1 -1
- package/dist/commands/login/version-check.d.ts.map +1 -1
- package/dist/commands/login/version-check.js +15 -52
- package/dist/commands/login/version-check.js.map +1 -1
- package/dist/commands/profile/index.js +22 -32
- package/dist/commands/profile/index.js.map +1 -1
- package/dist/commands/status/aws-checks.d.ts +2 -2
- package/dist/commands/status/aws-checks.d.ts.map +1 -1
- package/dist/commands/status/aws-checks.js +5 -42
- package/dist/commands/status/aws-checks.js.map +1 -1
- package/dist/commands/status/checks.d.ts +3 -3
- package/dist/commands/status/checks.d.ts.map +1 -1
- package/dist/commands/status/checks.js +14 -59
- package/dist/commands/status/checks.js.map +1 -1
- package/dist/commands/status/index.d.ts +1 -1
- package/dist/commands/status/index.d.ts.map +1 -1
- package/dist/commands/status/index.js +25 -31
- package/dist/commands/status/index.js.map +1 -1
- package/dist/commands/status/mcp-checks.d.ts +2 -2
- package/dist/commands/status/mcp-checks.d.ts.map +1 -1
- package/dist/commands/status/mcp-checks.js +20 -61
- package/dist/commands/status/mcp-checks.js.map +1 -1
- package/dist/commands/status/types.js +1 -2
- package/dist/commands/status/types.js.map +1 -1
- package/dist/commands/tunnel/aws.js +21 -28
- package/dist/commands/tunnel/aws.js.map +1 -1
- package/dist/commands/tunnel/index.d.ts +1 -1
- package/dist/commands/tunnel/index.d.ts.map +1 -1
- package/dist/commands/tunnel/index.js +14 -19
- package/dist/commands/tunnel/index.js.map +1 -1
- package/dist/commands/tunnel/port.js +4 -42
- package/dist/commands/tunnel/port.js.map +1 -1
- package/dist/commands/tunnel/rds.d.ts +1 -1
- package/dist/commands/tunnel/rds.d.ts.map +1 -1
- package/dist/commands/tunnel/rds.js +42 -48
- package/dist/commands/tunnel/rds.js.map +1 -1
- package/dist/commands/tunnel/types.js +5 -10
- package/dist/commands/tunnel/types.js.map +1 -1
- package/dist/index.js +22 -21
- package/dist/index.js.map +1 -1
- package/dist/mcp/config/index.d.ts +3 -3
- package/dist/mcp/config/index.d.ts.map +1 -1
- package/dist/mcp/config/index.js +2 -13
- package/dist/mcp/config/index.js.map +1 -1
- package/dist/mcp/config/loaders.d.ts +1 -1
- package/dist/mcp/config/loaders.d.ts.map +1 -1
- package/dist/mcp/config/loaders.js +24 -30
- package/dist/mcp/config/loaders.js.map +1 -1
- package/dist/mcp/config/types.js +22 -25
- package/dist/mcp/config/types.js.map +1 -1
- package/dist/mcp/daemon/entry-logic.d.ts.map +1 -1
- package/dist/mcp/daemon/entry-logic.js +21 -22
- package/dist/mcp/daemon/entry-logic.js.map +1 -1
- package/dist/mcp/daemon/entry.js +36 -40
- package/dist/mcp/daemon/entry.js.map +1 -1
- package/dist/mcp/daemon/fork.d.ts +1 -1
- package/dist/mcp/daemon/fork.d.ts.map +1 -1
- package/dist/mcp/daemon/fork.js +44 -57
- package/dist/mcp/daemon/fork.js.map +1 -1
- package/dist/mcp/daemon/health.d.ts +1 -1
- package/dist/mcp/daemon/health.d.ts.map +1 -1
- package/dist/mcp/daemon/health.js +3 -6
- package/dist/mcp/daemon/health.js.map +1 -1
- package/dist/mcp/daemon/index.d.ts +5 -5
- package/dist/mcp/daemon/index.d.ts.map +1 -1
- package/dist/mcp/daemon/index.js +4 -21
- package/dist/mcp/daemon/index.js.map +1 -1
- package/dist/mcp/daemon/types.js +10 -13
- package/dist/mcp/daemon/types.js.map +1 -1
- package/dist/mcp/errors/index.d.ts +2 -2
- package/dist/mcp/errors/index.d.ts.map +1 -1
- package/dist/mcp/errors/index.js +1 -12
- package/dist/mcp/errors/index.js.map +1 -1
- package/dist/mcp/errors/types.js +8 -18
- package/dist/mcp/errors/types.js.map +1 -1
- package/dist/mcp/providers/atlassian/auth.d.ts +2 -2
- package/dist/mcp/providers/atlassian/auth.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/auth.js +8 -12
- package/dist/mcp/providers/atlassian/auth.js.map +1 -1
- package/dist/mcp/providers/atlassian/client.d.ts +1 -1
- package/dist/mcp/providers/atlassian/client.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/client.js +5 -8
- package/dist/mcp/providers/atlassian/client.js.map +1 -1
- package/dist/mcp/providers/atlassian/index.d.ts +5 -5
- package/dist/mcp/providers/atlassian/index.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/index.js +3 -10
- package/dist/mcp/providers/atlassian/index.js.map +1 -1
- package/dist/mcp/providers/atlassian/markdown-to-adf/index.d.ts +2 -2
- package/dist/mcp/providers/atlassian/markdown-to-adf/index.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/markdown-to-adf/index.js +7 -10
- package/dist/mcp/providers/atlassian/markdown-to-adf/index.js.map +1 -1
- package/dist/mcp/providers/atlassian/markdown-to-adf/nodes.js +19 -40
- package/dist/mcp/providers/atlassian/markdown-to-adf/nodes.js.map +1 -1
- package/dist/mcp/providers/atlassian/markdown-to-adf/parser.d.ts +1 -1
- package/dist/mcp/providers/atlassian/markdown-to-adf/parser.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/markdown-to-adf/parser.js +3 -40
- package/dist/mcp/providers/atlassian/markdown-to-adf/parser.js.map +1 -1
- package/dist/mcp/providers/atlassian/provider.d.ts +3 -3
- package/dist/mcp/providers/atlassian/provider.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/provider.js +14 -18
- package/dist/mcp/providers/atlassian/provider.js.map +1 -1
- package/dist/mcp/providers/atlassian/resources.d.ts +2 -2
- package/dist/mcp/providers/atlassian/resources.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/resources.js +1 -4
- package/dist/mcp/providers/atlassian/resources.js.map +1 -1
- package/dist/mcp/providers/atlassian/tools/confluence.d.ts +2 -2
- package/dist/mcp/providers/atlassian/tools/confluence.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/tools/confluence.js +39 -42
- package/dist/mcp/providers/atlassian/tools/confluence.js.map +1 -1
- package/dist/mcp/providers/atlassian/tools/jira.d.ts +2 -2
- package/dist/mcp/providers/atlassian/tools/jira.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/tools/jira.js +74 -77
- package/dist/mcp/providers/atlassian/tools/jira.js.map +1 -1
- package/dist/mcp/providers/gitlab/auth.d.ts +2 -2
- package/dist/mcp/providers/gitlab/auth.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/auth.js +1 -4
- package/dist/mcp/providers/gitlab/auth.js.map +1 -1
- package/dist/mcp/providers/gitlab/client.d.ts +1 -1
- package/dist/mcp/providers/gitlab/client.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/client.js +1 -4
- package/dist/mcp/providers/gitlab/client.js.map +1 -1
- package/dist/mcp/providers/gitlab/index.d.ts +4 -4
- package/dist/mcp/providers/gitlab/index.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/index.js +3 -9
- package/dist/mcp/providers/gitlab/index.js.map +1 -1
- package/dist/mcp/providers/gitlab/provider.d.ts +3 -3
- package/dist/mcp/providers/gitlab/provider.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/provider.js +15 -19
- package/dist/mcp/providers/gitlab/provider.js.map +1 -1
- package/dist/mcp/providers/gitlab/resources.d.ts +2 -2
- package/dist/mcp/providers/gitlab/resources.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/resources.js +1 -4
- package/dist/mcp/providers/gitlab/resources.js.map +1 -1
- package/dist/mcp/providers/gitlab/tools/issues.d.ts +2 -2
- package/dist/mcp/providers/gitlab/tools/issues.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/tools/issues.js +32 -35
- package/dist/mcp/providers/gitlab/tools/issues.js.map +1 -1
- package/dist/mcp/providers/gitlab/tools/merge-requests.d.ts +2 -2
- package/dist/mcp/providers/gitlab/tools/merge-requests.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/tools/merge-requests.js +48 -51
- package/dist/mcp/providers/gitlab/tools/merge-requests.js.map +1 -1
- package/dist/mcp/providers/gitlab/tools/pipelines.d.ts +2 -2
- package/dist/mcp/providers/gitlab/tools/pipelines.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/tools/pipelines.js +20 -23
- package/dist/mcp/providers/gitlab/tools/pipelines.js.map +1 -1
- package/dist/mcp/providers/gitlab/tools/repository.d.ts +2 -2
- package/dist/mcp/providers/gitlab/tools/repository.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/tools/repository.js +55 -58
- package/dist/mcp/providers/gitlab/tools/repository.js.map +1 -1
- package/dist/mcp/providers/index.d.ts +3 -3
- package/dist/mcp/providers/index.d.ts.map +1 -1
- package/dist/mcp/providers/index.js +1 -5
- package/dist/mcp/providers/index.js.map +1 -1
- package/dist/mcp/providers/registry.d.ts +1 -1
- package/dist/mcp/providers/registry.d.ts.map +1 -1
- package/dist/mcp/providers/registry.js +1 -5
- package/dist/mcp/providers/registry.js.map +1 -1
- package/dist/mcp/providers/tool-helpers.js +2 -6
- package/dist/mcp/providers/tool-helpers.js.map +1 -1
- package/dist/mcp/providers/types.js +1 -2
- package/dist/mcp/providers/types.js.map +1 -1
- package/dist/mcp/server/adapter.d.ts +2 -2
- package/dist/mcp/server/adapter.d.ts.map +1 -1
- package/dist/mcp/server/adapter.js +3 -7
- package/dist/mcp/server/adapter.js.map +1 -1
- package/dist/mcp/server/auth.js +5 -8
- package/dist/mcp/server/auth.js.map +1 -1
- package/dist/mcp/server/health.js +3 -6
- package/dist/mcp/server/health.js.map +1 -1
- package/dist/mcp/server/index.d.ts +10 -10
- package/dist/mcp/server/index.d.ts.map +1 -1
- package/dist/mcp/server/index.js +6 -26
- package/dist/mcp/server/index.js.map +1 -1
- package/dist/mcp/server/logging.js +13 -19
- package/dist/mcp/server/logging.js.map +1 -1
- package/dist/mcp/server/ratelimit.d.ts +1 -1
- package/dist/mcp/server/ratelimit.d.ts.map +1 -1
- package/dist/mcp/server/ratelimit.js +3 -6
- package/dist/mcp/server/ratelimit.js.map +1 -1
- package/dist/mcp/server/routes.js +1 -4
- package/dist/mcp/server/routes.js.map +1 -1
- package/dist/mcp/server/server.js +20 -23
- package/dist/mcp/server/server.js.map +1 -1
- package/dist/mcp/server/validation.js +13 -16
- package/dist/mcp/server/validation.js.map +1 -1
- package/dist/mcp/store/encrypt.d.ts +1 -1
- package/dist/mcp/store/encrypt.d.ts.map +1 -1
- package/dist/mcp/store/encrypt.js +9 -12
- package/dist/mcp/store/encrypt.js.map +1 -1
- package/dist/mcp/store/index.d.ts +3 -3
- package/dist/mcp/store/index.d.ts.map +1 -1
- package/dist/mcp/store/index.js +2 -7
- package/dist/mcp/store/index.js.map +1 -1
- package/dist/mcp/store/key.js +14 -18
- package/dist/mcp/store/key.js.map +1 -1
- package/dist/mcp/store/migrate.d.ts +1 -1
- package/dist/mcp/store/migrate.d.ts.map +1 -1
- package/dist/mcp/store/migrate.js +24 -35
- package/dist/mcp/store/migrate.js.map +1 -1
- package/dist/mcp/store/null-token-store.d.ts +1 -1
- package/dist/mcp/store/null-token-store.d.ts.map +1 -1
- package/dist/mcp/store/null-token-store.js +1 -5
- package/dist/mcp/store/null-token-store.js.map +1 -1
- package/dist/mcp/store/sqlite.d.ts +1 -1
- package/dist/mcp/store/sqlite.d.ts.map +1 -1
- package/dist/mcp/store/sqlite.js +18 -25
- package/dist/mcp/store/sqlite.js.map +1 -1
- package/dist/mcp/store/types.js +1 -2
- package/dist/mcp/store/types.js.map +1 -1
- package/dist/mcp/token/http-client.d.ts +1 -1
- package/dist/mcp/token/http-client.d.ts.map +1 -1
- package/dist/mcp/token/http-client.js +13 -16
- package/dist/mcp/token/http-client.js.map +1 -1
- package/dist/mcp/token/index.d.ts +4 -4
- package/dist/mcp/token/index.d.ts.map +1 -1
- package/dist/mcp/token/index.js +3 -14
- package/dist/mcp/token/index.js.map +1 -1
- package/dist/mcp/token/manager.d.ts +2 -2
- package/dist/mcp/token/manager.d.ts.map +1 -1
- package/dist/mcp/token/manager.js +16 -22
- package/dist/mcp/token/manager.js.map +1 -1
- package/dist/mcp/token/null-token-manager.d.ts +1 -1
- package/dist/mcp/token/null-token-manager.d.ts.map +1 -1
- package/dist/mcp/token/null-token-manager.js +1 -5
- package/dist/mcp/token/null-token-manager.js.map +1 -1
- package/dist/mcp/token/oauth.d.ts +1 -1
- package/dist/mcp/token/oauth.d.ts.map +1 -1
- package/dist/mcp/token/oauth.js +28 -36
- package/dist/mcp/token/oauth.js.map +1 -1
- package/dist/mcp/token/types.js +1 -2
- package/dist/mcp/token/types.js.map +1 -1
- package/package.json +2 -1
package/dist/mcp/store/key.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Encryption key management for the MCP token store.
|
|
4
3
|
*
|
|
@@ -9,17 +8,14 @@
|
|
|
9
8
|
* On first login, if neither source exists, a random 32-byte key is generated
|
|
10
9
|
* and persisted to the key file with 0o600 permissions.
|
|
11
10
|
*/
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const node_fs_1 = require("node:fs");
|
|
17
|
-
const node_path_1 = require("node:path");
|
|
18
|
-
const node_os_1 = require("node:os");
|
|
11
|
+
import { randomBytes } from 'node:crypto';
|
|
12
|
+
import { readFileSync, writeFileSync, existsSync, chmodSync, mkdirSync } from 'node:fs';
|
|
13
|
+
import { join, dirname } from 'node:path';
|
|
14
|
+
import { homedir } from 'node:os';
|
|
19
15
|
const KEY_HEX_LEN = 64; // 32 bytes as hex
|
|
20
16
|
const HEX_RE = /^[0-9a-fA-F]+$/;
|
|
21
17
|
function defaultKeyFilePath() {
|
|
22
|
-
return
|
|
18
|
+
return join(homedir(), '.padua', 'encryption.key');
|
|
23
19
|
}
|
|
24
20
|
function isValidHexKey(value) {
|
|
25
21
|
return value.length === KEY_HEX_LEN && HEX_RE.test(value);
|
|
@@ -28,14 +24,14 @@ function isValidHexKey(value) {
|
|
|
28
24
|
* Resolve an existing encryption key from environment variable or key file.
|
|
29
25
|
* Returns null if no valid key is found.
|
|
30
26
|
*/
|
|
31
|
-
function resolveEncryptionKey(keyFilePath) {
|
|
27
|
+
export function resolveEncryptionKey(keyFilePath) {
|
|
32
28
|
const envKey = process.env.PADUA_DB_ENCRYPTION_KEY;
|
|
33
29
|
if (envKey && isValidHexKey(envKey))
|
|
34
30
|
return envKey;
|
|
35
31
|
const filePath = keyFilePath ?? defaultKeyFilePath();
|
|
36
|
-
if (
|
|
32
|
+
if (existsSync(filePath)) {
|
|
37
33
|
try {
|
|
38
|
-
const fileKey =
|
|
34
|
+
const fileKey = readFileSync(filePath, 'utf-8').trim();
|
|
39
35
|
if (isValidHexKey(fileKey))
|
|
40
36
|
return fileKey;
|
|
41
37
|
}
|
|
@@ -53,16 +49,16 @@ function resolveEncryptionKey(keyFilePath) {
|
|
|
53
49
|
* In all cases, ensures the key file exists on disk so that other commands
|
|
54
50
|
* (status, doctor) can find it without requiring the env var.
|
|
55
51
|
*/
|
|
56
|
-
function getOrCreateEncryptionKey(keyFilePath) {
|
|
52
|
+
export function getOrCreateEncryptionKey(keyFilePath) {
|
|
57
53
|
const existing = resolveEncryptionKey(keyFilePath);
|
|
58
|
-
const key = existing ??
|
|
54
|
+
const key = existing ?? randomBytes(32).toString('hex');
|
|
59
55
|
// Always persist to file so status/doctor can resolve the key
|
|
60
56
|
// without depending on the PADUA_DB_ENCRYPTION_KEY env var.
|
|
61
57
|
const filePath = keyFilePath ?? defaultKeyFilePath();
|
|
62
|
-
if (!
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
58
|
+
if (!existsSync(filePath) || readFileSync(filePath, 'utf-8').trim() !== key) {
|
|
59
|
+
mkdirSync(dirname(filePath), { recursive: true });
|
|
60
|
+
writeFileSync(filePath, key, 'utf-8');
|
|
61
|
+
chmodSync(filePath, 0o600);
|
|
66
62
|
}
|
|
67
63
|
return key;
|
|
68
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key.js","sourceRoot":"","sources":["../../../src/mcp/store/key.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"key.js","sourceRoot":"","sources":["../../../src/mcp/store/key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,kBAAkB;AAC1C,MAAM,MAAM,GAAG,gBAAgB,CAAC;AAEhC,SAAS,kBAAkB;IACzB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAoB;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IACnD,IAAI,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAEnD,MAAM,QAAQ,GAAG,WAAW,IAAI,kBAAkB,EAAE,CAAC;IACrD,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACvD,IAAI,aAAa,CAAC,OAAO,CAAC;gBAAE,OAAO,OAAO,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,WAAoB;IAC3D,MAAM,QAAQ,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,QAAQ,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,8DAA8D;IAC9D,4DAA4D;IAC5D,MAAM,QAAQ,GAAG,WAAW,IAAI,kBAAkB,EAAE,CAAC;IACrD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;QAC5E,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACtC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* tokens.db format. The wire format is byte-compatible between Go and TS.
|
|
11
11
|
*/
|
|
12
12
|
import Database from 'better-sqlite3';
|
|
13
|
-
import type { MigrationResult } from './types';
|
|
13
|
+
import type { MigrationResult } from './types.js';
|
|
14
14
|
/**
|
|
15
15
|
* Apply any outstanding schema migrations to the given database.
|
|
16
16
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/mcp/store/migrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/mcp/store/migrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAKtC,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,YAAY,CAAC;AA2D/D;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,eAAe,CAUpE;AAiCD;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAkBD,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAG5C,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,GAAE,MAAM,EAAyB,GAAG,MAAM,GAAG,IAAI,CAK5F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,EAAE,GACrB,iBAAiB,CAkEnB"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* SQLite schema migration module for the MCP token store.
|
|
4
3
|
*
|
|
@@ -10,19 +9,13 @@
|
|
|
10
9
|
* locate and migrate legacy padua-mcp SQLite token databases to the new
|
|
11
10
|
* tokens.db format. The wire format is byte-compatible between Go and TS.
|
|
12
11
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
exports.migrateFromGo = migrateFromGo;
|
|
21
|
-
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
22
|
-
const node_fs_1 = require("node:fs");
|
|
23
|
-
const node_path_1 = require("node:path");
|
|
24
|
-
const node_os_1 = require("node:os");
|
|
25
|
-
const errors_1 = require("../errors");
|
|
12
|
+
import Database from 'better-sqlite3';
|
|
13
|
+
import { existsSync, renameSync } from 'node:fs';
|
|
14
|
+
import { join } from 'node:path';
|
|
15
|
+
import { homedir } from 'node:os';
|
|
16
|
+
import { createRequire } from 'node:module';
|
|
17
|
+
import { StoreError, ErrorCodes } from '../errors/index.js';
|
|
18
|
+
const _require = createRequire(import.meta.url);
|
|
26
19
|
const MIGRATIONS = [
|
|
27
20
|
{
|
|
28
21
|
version: 1,
|
|
@@ -72,14 +65,14 @@ function pendingMigrations(currentVersion) {
|
|
|
72
65
|
* @throws StoreError(DB_WRITE_FAILED) if any database operation fails,
|
|
73
66
|
* including introspection queries and migration statements.
|
|
74
67
|
*/
|
|
75
|
-
function runMigrations(db) {
|
|
68
|
+
export function runMigrations(db) {
|
|
76
69
|
try {
|
|
77
70
|
return applyMigrations(db);
|
|
78
71
|
}
|
|
79
72
|
catch (err) {
|
|
80
|
-
if (err instanceof
|
|
73
|
+
if (err instanceof StoreError)
|
|
81
74
|
throw err;
|
|
82
|
-
throw new
|
|
75
|
+
throw new StoreError(`Migration failed: ${err instanceof Error ? err.message : String(err)}`, ErrorCodes.DB_WRITE_FAILED);
|
|
83
76
|
}
|
|
84
77
|
}
|
|
85
78
|
function applyMigrations(db) {
|
|
@@ -117,9 +110,9 @@ function isStoredToken(value) {
|
|
|
117
110
|
typeof obj.expiresAt === 'number' &&
|
|
118
111
|
Array.isArray(obj.scopes));
|
|
119
112
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
113
|
+
export const LEGACY_DB_PATHS = [
|
|
114
|
+
join(homedir(), '.config', 'padua-mcp', 'padua-mcp.db'),
|
|
115
|
+
join(homedir(), '.padua', 'padua-mcp.db'),
|
|
123
116
|
];
|
|
124
117
|
/**
|
|
125
118
|
* Return the first path in searchPaths that resolves to an existing file,
|
|
@@ -127,9 +120,9 @@ exports.LEGACY_DB_PATHS = [
|
|
|
127
120
|
*
|
|
128
121
|
* @param searchPaths - Ordered list of candidate paths. Defaults to LEGACY_DB_PATHS.
|
|
129
122
|
*/
|
|
130
|
-
function detectGoDatabase(searchPaths = [...
|
|
123
|
+
export function detectGoDatabase(searchPaths = [...LEGACY_DB_PATHS]) {
|
|
131
124
|
for (const p of searchPaths) {
|
|
132
|
-
if (
|
|
125
|
+
if (existsSync(p))
|
|
133
126
|
return p;
|
|
134
127
|
}
|
|
135
128
|
return null;
|
|
@@ -149,25 +142,21 @@ function detectGoDatabase(searchPaths = [...exports.LEGACY_DB_PATHS]) {
|
|
|
149
142
|
* @param targetDbPath - Absolute path to the destination tokens.db file.
|
|
150
143
|
* @param searchPaths - Override the default LEGACY_DB_PATHS (used in tests).
|
|
151
144
|
*/
|
|
152
|
-
function migrateFromGo(encryptionKey, targetDbPath, searchPaths) {
|
|
145
|
+
export function migrateFromGo(encryptionKey, targetDbPath, searchPaths) {
|
|
153
146
|
const goDbPath = detectGoDatabase(searchPaths);
|
|
154
147
|
if (!goDbPath) {
|
|
155
148
|
return { migrated: false, reason: 'no-legacy-db-found' };
|
|
156
149
|
}
|
|
157
|
-
if (
|
|
150
|
+
if (existsSync(goDbPath + '-wal')) {
|
|
158
151
|
return { migrated: false, reason: 'wal-files-present' };
|
|
159
152
|
}
|
|
160
153
|
// Import here to avoid circular dependency between migrate.ts and sqlite.ts.
|
|
161
154
|
// sqlite.ts imports migrate.ts (for runMigrations), so we must not import
|
|
162
155
|
// SqliteTokenStore at the module level in this file.
|
|
163
|
-
const { SqliteTokenStore } =
|
|
164
|
-
|
|
165
|
-
require('./sqlite');
|
|
166
|
-
const { createEncryptor } =
|
|
167
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
168
|
-
require('./encrypt');
|
|
156
|
+
const { SqliteTokenStore } = _require('./sqlite.js');
|
|
157
|
+
const { createEncryptor } = _require('./encrypt.js');
|
|
169
158
|
const encryptor = createEncryptor(encryptionKey);
|
|
170
|
-
const goDb = new
|
|
159
|
+
const goDb = new Database(goDbPath, { readonly: true });
|
|
171
160
|
try {
|
|
172
161
|
const rows = goDb
|
|
173
162
|
.prepare(`SELECT service, data FROM tokens`)
|
|
@@ -189,7 +178,7 @@ function migrateFromGo(encryptionKey, targetDbPath, searchPaths) {
|
|
|
189
178
|
for (const { service, plaintext } of decryptedRows) {
|
|
190
179
|
const parsed = JSON.parse(plaintext.toString('utf-8'));
|
|
191
180
|
if (!isStoredToken(parsed)) {
|
|
192
|
-
throw new
|
|
181
|
+
throw new StoreError(`Invalid token structure for service "${service}"`, ErrorCodes.DB_WRITE_FAILED);
|
|
193
182
|
}
|
|
194
183
|
targetStore.upsert(service, parsed);
|
|
195
184
|
}
|
|
@@ -198,14 +187,14 @@ function migrateFromGo(encryptionKey, targetDbPath, searchPaths) {
|
|
|
198
187
|
targetStore.close();
|
|
199
188
|
}
|
|
200
189
|
goDb.close();
|
|
201
|
-
|
|
190
|
+
renameSync(goDbPath, goDbPath + '.bak');
|
|
202
191
|
return { migrated: true, tokensCount: rows.length };
|
|
203
192
|
}
|
|
204
193
|
catch (err) {
|
|
205
194
|
goDb.close();
|
|
206
|
-
if (err instanceof
|
|
195
|
+
if (err instanceof StoreError)
|
|
207
196
|
throw err;
|
|
208
|
-
throw new
|
|
197
|
+
throw new StoreError(`Go database migration failed: ${err instanceof Error ? err.message : String(err)}`, ErrorCodes.DB_WRITE_FAILED);
|
|
209
198
|
}
|
|
210
199
|
}
|
|
211
200
|
//# sourceMappingURL=migrate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/mcp/store/migrate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/mcp/store/migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"null-token-store.d.ts","sourceRoot":"","sources":["../../../src/mcp/store/null-token-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"null-token-store.d.ts","sourceRoot":"","sources":["../../../src/mcp/store/null-token-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D;;;;;;;GAOG;AACH,qBAAa,cAAe,YAAW,UAAU;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgE;IAEtF,MAAM,CAAC,MAAM,IAAI,cAAc;IAI/B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAKxC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI;IAOjD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI7B,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAMrD,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NullTokenStore = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* In-memory TokenStore implementation used for testing and as a null-object
|
|
6
3
|
* fallback when no persistent store is configured.
|
|
@@ -9,7 +6,7 @@ exports.NullTokenStore = void 0;
|
|
|
9
6
|
* encryption, no external dependencies. Returned tokens are shallow-copied
|
|
10
7
|
* so callers cannot mutate internal store state through a returned reference.
|
|
11
8
|
*/
|
|
12
|
-
class NullTokenStore {
|
|
9
|
+
export class NullTokenStore {
|
|
13
10
|
store = new Map();
|
|
14
11
|
static create() {
|
|
15
12
|
return new NullTokenStore();
|
|
@@ -36,5 +33,4 @@ class NullTokenStore {
|
|
|
36
33
|
this.store.clear();
|
|
37
34
|
}
|
|
38
35
|
}
|
|
39
|
-
exports.NullTokenStore = NullTokenStore;
|
|
40
36
|
//# sourceMappingURL=null-token-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"null-token-store.js","sourceRoot":"","sources":["../../../src/mcp/store/null-token-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"null-token-store.js","sourceRoot":"","sources":["../../../src/mcp/store/null-token-store.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,OAAO,cAAc;IACR,KAAK,GAAG,IAAI,GAAG,EAAqD,CAAC;IAEtF,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,cAAc,EAAE,CAAC;IAC9B,CAAC;IAED,GAAG,CAAC,OAAe;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,OAAe,EAAE,KAAkB;QACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE;YACtB,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE;YACnB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;aACpE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* Wire format for the `data` column:
|
|
10
10
|
* nonce (12 bytes) || ciphertext (N bytes) || auth tag (16 bytes)
|
|
11
11
|
*/
|
|
12
|
-
import type { TokenStore, StoredToken, Encryptor } from './types';
|
|
12
|
+
import type { TokenStore, StoredToken, Encryptor } from './types.js';
|
|
13
13
|
export declare class SqliteTokenStore implements TokenStore {
|
|
14
14
|
private readonly db;
|
|
15
15
|
private readonly encryptor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/mcp/store/sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/mcp/store/sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAOrE,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAEtC,OAAO;IA2BP,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,gBAAgB;IAIrE,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAqBxC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI;IAkBjD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM7B,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAUrD,KAAK,IAAI,IAAI;CAGd"}
|
package/dist/mcp/store/sqlite.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* SQLite-backed encrypted token store for the MCP server integration.
|
|
4
3
|
*
|
|
@@ -10,40 +9,35 @@
|
|
|
10
9
|
* Wire format for the `data` column:
|
|
11
10
|
* nonce (12 bytes) || ciphertext (N bytes) || auth tag (16 bytes)
|
|
12
11
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
19
|
-
const node_fs_1 = require("node:fs");
|
|
20
|
-
const node_path_1 = require("node:path");
|
|
21
|
-
const errors_1 = require("../errors");
|
|
22
|
-
const migrate_1 = require("./migrate");
|
|
12
|
+
import Database from 'better-sqlite3';
|
|
13
|
+
import { mkdirSync, chmodSync, existsSync } from 'node:fs';
|
|
14
|
+
import { dirname } from 'node:path';
|
|
15
|
+
import { StoreError, ErrorCodes } from '../errors/index.js';
|
|
16
|
+
import { runMigrations } from './migrate.js';
|
|
23
17
|
// ---------------------------------------------------------------------------
|
|
24
18
|
// SqliteTokenStore
|
|
25
19
|
// ---------------------------------------------------------------------------
|
|
26
|
-
class SqliteTokenStore {
|
|
20
|
+
export class SqliteTokenStore {
|
|
27
21
|
db;
|
|
28
22
|
encryptor;
|
|
29
23
|
constructor(dbPath, encryptor) {
|
|
30
24
|
try {
|
|
31
|
-
|
|
32
|
-
this.db = new
|
|
25
|
+
mkdirSync(dirname(dbPath), { recursive: true });
|
|
26
|
+
this.db = new Database(dbPath);
|
|
33
27
|
this.db.pragma('journal_mode=WAL');
|
|
34
28
|
this.db.pragma('synchronous=NORMAL');
|
|
35
29
|
this.db.pragma('foreign_keys=ON');
|
|
36
30
|
this.db.pragma('busy_timeout=5000');
|
|
37
|
-
|
|
38
|
-
if (dbPath !== ':memory:' &&
|
|
39
|
-
|
|
31
|
+
runMigrations(this.db);
|
|
32
|
+
if (dbPath !== ':memory:' && existsSync(dbPath)) {
|
|
33
|
+
chmodSync(dbPath, 0o600);
|
|
40
34
|
}
|
|
41
35
|
this.encryptor = encryptor;
|
|
42
36
|
}
|
|
43
37
|
catch (err) {
|
|
44
|
-
if (err instanceof
|
|
38
|
+
if (err instanceof StoreError)
|
|
45
39
|
throw err;
|
|
46
|
-
throw new
|
|
40
|
+
throw new StoreError(`Failed to open database at ${dbPath}: ${err instanceof Error ? err.message : String(err)}`, ErrorCodes.DB_OPEN_FAILED);
|
|
47
41
|
}
|
|
48
42
|
}
|
|
49
43
|
static create(dbPath, encryptor) {
|
|
@@ -60,11 +54,11 @@ class SqliteTokenStore {
|
|
|
60
54
|
return JSON.parse(plaintext.toString('utf-8'));
|
|
61
55
|
}
|
|
62
56
|
catch (err) {
|
|
63
|
-
if (err instanceof
|
|
57
|
+
if (err instanceof StoreError)
|
|
64
58
|
throw err;
|
|
65
|
-
throw new
|
|
59
|
+
throw new StoreError(`Failed to decrypt token for service '${service}'. ` +
|
|
66
60
|
`Check that the encryption key matches the one used when the token was stored. ` +
|
|
67
|
-
`Error: ${err instanceof Error ? err.message : String(err)}`,
|
|
61
|
+
`Error: ${err instanceof Error ? err.message : String(err)}`, ErrorCodes.TOKEN_DECRYPTION_FAILED);
|
|
68
62
|
}
|
|
69
63
|
}
|
|
70
64
|
upsert(service, token) {
|
|
@@ -76,9 +70,9 @@ class SqliteTokenStore {
|
|
|
76
70
|
.run(service, encrypted);
|
|
77
71
|
}
|
|
78
72
|
catch (err) {
|
|
79
|
-
if (err instanceof
|
|
73
|
+
if (err instanceof StoreError)
|
|
80
74
|
throw err;
|
|
81
|
-
throw new
|
|
75
|
+
throw new StoreError(`Failed to write token for service '${service}': ${err instanceof Error ? err.message : String(err)}`, ErrorCodes.DB_WRITE_FAILED);
|
|
82
76
|
}
|
|
83
77
|
}
|
|
84
78
|
delete(service) {
|
|
@@ -96,5 +90,4 @@ class SqliteTokenStore {
|
|
|
96
90
|
this.db.close();
|
|
97
91
|
}
|
|
98
92
|
}
|
|
99
|
-
exports.SqliteTokenStore = SqliteTokenStore;
|
|
100
93
|
//# sourceMappingURL=sqlite.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../../src/mcp/store/sqlite.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../../src/mcp/store/sqlite.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/store/types.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Token store type definitions for the MCP server integration.
|
|
4
3
|
*
|
|
@@ -9,5 +8,5 @@
|
|
|
9
8
|
* Wire format for AES-256-GCM (Go-compatible):
|
|
10
9
|
* [ nonce (12 bytes) ][ ciphertext (N bytes) ][ auth tag (16 bytes) ]
|
|
11
10
|
*/
|
|
12
|
-
|
|
11
|
+
export {};
|
|
13
12
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mcp/store/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mcp/store/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { TokenManager, ApiClient, ApiClientOptions } from './types';
|
|
1
|
+
import type { TokenManager, ApiClient, ApiClientOptions } from './types.js';
|
|
2
2
|
export declare function createApiClient(options: ApiClientOptions, tokenManager: TokenManager): ApiClient;
|
|
3
3
|
//# sourceMappingURL=http-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/mcp/token/http-client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAA0B,MAAM,
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/mcp/token/http-client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAA0B,MAAM,YAAY,CAAC;AA0MpG,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,GAAG,SAAS,CAgEhG"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const node_http_1 = require("node:http");
|
|
6
|
-
const node_url_1 = require("node:url");
|
|
7
|
-
const errors_1 = require("../errors");
|
|
1
|
+
import { request as httpsRequest } from 'node:https';
|
|
2
|
+
import { request as httpRequest } from 'node:http';
|
|
3
|
+
import { URL } from 'node:url';
|
|
4
|
+
import { ProviderError, ErrorCodes } from '../errors/index.js';
|
|
8
5
|
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
9
6
|
const MAX_PAGES = 100;
|
|
10
7
|
const PROVIDER = 'http-client';
|
|
@@ -22,7 +19,7 @@ function buildUrl(baseUrl, path, params) {
|
|
|
22
19
|
// appends to the base path (e.g. /api/v4) instead of replacing it.
|
|
23
20
|
const normalizedBase = baseUrl.endsWith('/') ? baseUrl : baseUrl + '/';
|
|
24
21
|
const normalizedPath = path.startsWith('/') ? path.slice(1) : path;
|
|
25
|
-
const url = new
|
|
22
|
+
const url = new URL(normalizedPath, normalizedBase);
|
|
26
23
|
if (params) {
|
|
27
24
|
for (const [key, value] of Object.entries(params)) {
|
|
28
25
|
url.searchParams.set(key, value);
|
|
@@ -45,21 +42,21 @@ function parseJsonBody(raw) {
|
|
|
45
42
|
}
|
|
46
43
|
function handleErrorStatus(status, body, headers) {
|
|
47
44
|
if (status === 401) {
|
|
48
|
-
throw new
|
|
45
|
+
throw new ProviderError('API request unauthorized (401)', ErrorCodes.API_UNAUTHORIZED, PROVIDER);
|
|
49
46
|
}
|
|
50
47
|
if (status === 429) {
|
|
51
48
|
const retryAfter = headers['retry-after'];
|
|
52
49
|
const suffix = retryAfter ? ` Retry-After: ${retryAfter}` : '';
|
|
53
|
-
throw new
|
|
50
|
+
throw new ProviderError(`API rate limited (429).${suffix}`, ErrorCodes.API_RATE_LIMITED, PROVIDER);
|
|
54
51
|
}
|
|
55
|
-
throw new
|
|
52
|
+
throw new ProviderError(`API request failed with status ${status}: ${body}`, `HTTP_${status}`, PROVIDER);
|
|
56
53
|
}
|
|
57
54
|
async function makeRequest(options, tokenManager, method, url, body) {
|
|
58
55
|
const log = options.logger ?? noopLogger;
|
|
59
56
|
const token = await tokenManager.getAccessToken();
|
|
60
|
-
const parsed = new
|
|
57
|
+
const parsed = new URL(url);
|
|
61
58
|
const isHttps = parsed.protocol === 'https:';
|
|
62
|
-
const requestFn = isHttps ?
|
|
59
|
+
const requestFn = isHttps ? httpsRequest : httpRequest;
|
|
63
60
|
const timeoutMs = options.timeout ?? DEFAULT_TIMEOUT_MS;
|
|
64
61
|
const startMs = Date.now();
|
|
65
62
|
// Log the path only — never the full URL which may contain tokens in params
|
|
@@ -113,7 +110,7 @@ async function makeRequest(options, tokenManager, method, url, body) {
|
|
|
113
110
|
const durationMs = Date.now() - startMs;
|
|
114
111
|
log.error('Upstream request timeout', { method, path: logPath, durationMs, timeoutMs });
|
|
115
112
|
req.destroy();
|
|
116
|
-
reject(new
|
|
113
|
+
reject(new ProviderError(`API request timed out after ${timeoutMs}ms`, ErrorCodes.API_TIMEOUT, PROVIDER));
|
|
117
114
|
}, timeoutMs);
|
|
118
115
|
req.on('error', (err) => {
|
|
119
116
|
clearTimeout(timer);
|
|
@@ -124,7 +121,7 @@ async function makeRequest(options, tokenManager, method, url, body) {
|
|
|
124
121
|
}
|
|
125
122
|
const durationMs = Date.now() - startMs;
|
|
126
123
|
log.error('Upstream request error', { method, path: logPath, durationMs, error: err.message });
|
|
127
|
-
reject(new
|
|
124
|
+
reject(new ProviderError(`Request error: ${err.message}`, ErrorCodes.API_TIMEOUT, PROVIDER));
|
|
128
125
|
});
|
|
129
126
|
req.on('close', () => clearTimeout(timer));
|
|
130
127
|
if (bodyStr !== undefined) {
|
|
@@ -151,7 +148,7 @@ function atlassianNextUrl(body) {
|
|
|
151
148
|
// ---------------------------------------------------------------------------
|
|
152
149
|
// Public factory
|
|
153
150
|
// ---------------------------------------------------------------------------
|
|
154
|
-
function createApiClient(options, tokenManager) {
|
|
151
|
+
export function createApiClient(options, tokenManager) {
|
|
155
152
|
async function get(path, params) {
|
|
156
153
|
const url = buildUrl(options.baseUrl, path, params);
|
|
157
154
|
return makeRequest(options, tokenManager, 'GET', url);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/mcp/token/http-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/mcp/token/http-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export type { OAuthConfig, TokenResult, TokenManager, TokenStatus, ApiClient, ApiClientOptions, ApiResponse, PKCEPair, } from './types';
|
|
2
|
-
export { NullTokenManager } from './null-token-manager';
|
|
3
|
-
export { OAuthTokenManager } from './manager';
|
|
4
|
-
export { generatePKCE, buildAuthUrl, exchangeCode, refreshToken, startCallbackServer, openBrowser } from './oauth';
|
|
1
|
+
export type { OAuthConfig, TokenResult, TokenManager, TokenStatus, ApiClient, ApiClientOptions, ApiResponse, PKCEPair, } from './types.js';
|
|
2
|
+
export { NullTokenManager } from './null-token-manager.js';
|
|
3
|
+
export { OAuthTokenManager } from './manager.js';
|
|
4
|
+
export { generatePKCE, buildAuthUrl, exchangeCode, refreshToken, startCallbackServer, openBrowser } from './oauth.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/token/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,QAAQ,GACT,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/token/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,QAAQ,GACT,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/mcp/token/index.js
CHANGED
|
@@ -1,15 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var null_token_manager_1 = require("./null-token-manager");
|
|
5
|
-
Object.defineProperty(exports, "NullTokenManager", { enumerable: true, get: function () { return null_token_manager_1.NullTokenManager; } });
|
|
6
|
-
var manager_1 = require("./manager");
|
|
7
|
-
Object.defineProperty(exports, "OAuthTokenManager", { enumerable: true, get: function () { return manager_1.OAuthTokenManager; } });
|
|
8
|
-
var oauth_1 = require("./oauth");
|
|
9
|
-
Object.defineProperty(exports, "generatePKCE", { enumerable: true, get: function () { return oauth_1.generatePKCE; } });
|
|
10
|
-
Object.defineProperty(exports, "buildAuthUrl", { enumerable: true, get: function () { return oauth_1.buildAuthUrl; } });
|
|
11
|
-
Object.defineProperty(exports, "exchangeCode", { enumerable: true, get: function () { return oauth_1.exchangeCode; } });
|
|
12
|
-
Object.defineProperty(exports, "refreshToken", { enumerable: true, get: function () { return oauth_1.refreshToken; } });
|
|
13
|
-
Object.defineProperty(exports, "startCallbackServer", { enumerable: true, get: function () { return oauth_1.startCallbackServer; } });
|
|
14
|
-
Object.defineProperty(exports, "openBrowser", { enumerable: true, get: function () { return oauth_1.openBrowser; } });
|
|
1
|
+
export { NullTokenManager } from './null-token-manager.js';
|
|
2
|
+
export { OAuthTokenManager } from './manager.js';
|
|
3
|
+
export { generatePKCE, buildAuthUrl, exchangeCode, refreshToken, startCallbackServer, openBrowser } from './oauth.js';
|
|
15
4
|
//# sourceMappingURL=index.js.map
|