@peac/mcp-server 0.13.1 → 0.13.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +23 -20
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs +23 -20
- package/dist/cli.mjs.map +1 -1
- package/dist/handlers/issue.d.ts +1 -1
- package/dist/index.cjs +27 -24
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +27 -24
- package/dist/index.mjs.map +1 -1
- package/dist/infra/constants.d.ts +1 -1
- package/dist/infra/errors.d.ts +7 -7
- package/dist/infra/errors.d.ts.map +1 -1
- package/dist/infra/jwks-loader.d.ts.map +1 -1
- package/dist/infra/key-loader.d.ts.map +1 -1
- package/dist/infra/policy.d.ts.map +1 -1
- package/manifest.json +1 -1
- package/package.json +5 -5
- package/server.json +3 -3
package/dist/index.mjs
CHANGED
|
@@ -13,7 +13,7 @@ import { z } from 'zod';
|
|
|
13
13
|
|
|
14
14
|
// src/infra/constants.ts
|
|
15
15
|
var SERVER_NAME = "peac-mcp-server";
|
|
16
|
-
var SERVER_VERSION = "0.13.
|
|
16
|
+
var SERVER_VERSION = "0.13.3";
|
|
17
17
|
var MCP_PROTOCOL_VERSION = "2025-11-25";
|
|
18
18
|
var DEFAULT_MAX_JWS_BYTES = 16384;
|
|
19
19
|
var DEFAULT_MAX_RESPONSE_BYTES = 65536;
|
|
@@ -26,45 +26,45 @@ var DEFAULT_MAX_TTL_SECONDS = 86400;
|
|
|
26
26
|
// src/infra/errors.ts
|
|
27
27
|
var McpServerError = class extends Error {
|
|
28
28
|
code;
|
|
29
|
-
constructor(code, message) {
|
|
30
|
-
super(message);
|
|
29
|
+
constructor(code, message, options) {
|
|
30
|
+
super(message, options);
|
|
31
31
|
this.name = "McpServerError";
|
|
32
32
|
this.code = code;
|
|
33
33
|
}
|
|
34
34
|
};
|
|
35
35
|
var KeyLoadError = class extends McpServerError {
|
|
36
|
-
constructor(message) {
|
|
37
|
-
super("E_MCP_KEY_LOAD", message);
|
|
36
|
+
constructor(message, options) {
|
|
37
|
+
super("E_MCP_KEY_LOAD", message, options);
|
|
38
38
|
this.name = "KeyLoadError";
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
41
|
var PolicyLoadError = class extends McpServerError {
|
|
42
|
-
constructor(message) {
|
|
43
|
-
super("E_MCP_POLICY_LOAD", message);
|
|
42
|
+
constructor(message, options) {
|
|
43
|
+
super("E_MCP_POLICY_LOAD", message, options);
|
|
44
44
|
this.name = "PolicyLoadError";
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
47
|
var JwksLoadError = class extends McpServerError {
|
|
48
|
-
constructor(message) {
|
|
49
|
-
super("E_MCP_JWKS_LOAD", message);
|
|
48
|
+
constructor(message, options) {
|
|
49
|
+
super("E_MCP_JWKS_LOAD", message, options);
|
|
50
50
|
this.name = "JwksLoadError";
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
53
|
var IssueToolError = class extends McpServerError {
|
|
54
|
-
constructor(message) {
|
|
55
|
-
super("E_MCP_ISSUE_FAILED", message);
|
|
54
|
+
constructor(message, options) {
|
|
55
|
+
super("E_MCP_ISSUE_FAILED", message, options);
|
|
56
56
|
this.name = "IssueToolError";
|
|
57
57
|
}
|
|
58
58
|
};
|
|
59
59
|
var BundleToolError = class extends McpServerError {
|
|
60
|
-
constructor(message) {
|
|
61
|
-
super("E_MCP_BUNDLE_FAILED", message);
|
|
60
|
+
constructor(message, options) {
|
|
61
|
+
super("E_MCP_BUNDLE_FAILED", message, options);
|
|
62
62
|
this.name = "BundleToolError";
|
|
63
63
|
}
|
|
64
64
|
};
|
|
65
65
|
var PathTraversalError = class extends McpServerError {
|
|
66
|
-
constructor(message) {
|
|
67
|
-
super("E_MCP_PATH_TRAVERSAL", message);
|
|
66
|
+
constructor(message, options) {
|
|
67
|
+
super("E_MCP_PATH_TRAVERSAL", message, options);
|
|
68
68
|
this.name = "PathTraversalError";
|
|
69
69
|
}
|
|
70
70
|
};
|
|
@@ -83,14 +83,15 @@ async function loadJwksFile(filePath) {
|
|
|
83
83
|
raw = await readFile(filePath, "utf-8");
|
|
84
84
|
} catch (err) {
|
|
85
85
|
throw new JwksLoadError(
|
|
86
|
-
`Failed to read JWKS file: ${filePath} -- ${err instanceof Error ? err.message : String(err)}
|
|
86
|
+
`Failed to read JWKS file: ${filePath} -- ${err instanceof Error ? err.message : String(err)}`,
|
|
87
|
+
{ cause: err }
|
|
87
88
|
);
|
|
88
89
|
}
|
|
89
90
|
let parsed;
|
|
90
91
|
try {
|
|
91
92
|
parsed = JSON.parse(raw);
|
|
92
|
-
} catch {
|
|
93
|
-
throw new JwksLoadError(`JWKS file is not valid JSON: ${filePath}
|
|
93
|
+
} catch (err) {
|
|
94
|
+
throw new JwksLoadError(`JWKS file is not valid JSON: ${filePath}`, { cause: err });
|
|
94
95
|
}
|
|
95
96
|
if (typeof parsed !== "object" || parsed === null || !("keys" in parsed)) {
|
|
96
97
|
throw new JwksLoadError('JWKS must contain a "keys" array');
|
|
@@ -1495,7 +1496,8 @@ async function loadPolicy(filePath) {
|
|
|
1495
1496
|
raw = await readFile(filePath, "utf-8");
|
|
1496
1497
|
} catch (err) {
|
|
1497
1498
|
throw new PolicyLoadError(
|
|
1498
|
-
`Failed to read policy file: ${filePath} -- ${err instanceof Error ? err.message : String(err)}
|
|
1499
|
+
`Failed to read policy file: ${filePath} -- ${err instanceof Error ? err.message : String(err)}`,
|
|
1500
|
+
{ cause: err }
|
|
1499
1501
|
);
|
|
1500
1502
|
}
|
|
1501
1503
|
try {
|
|
@@ -1511,8 +1513,8 @@ async function loadPolicy(filePath) {
|
|
|
1511
1513
|
let parsed;
|
|
1512
1514
|
try {
|
|
1513
1515
|
parsed = JSON.parse(raw);
|
|
1514
|
-
} catch {
|
|
1515
|
-
throw new PolicyLoadError(`Policy file is not valid JSON: ${filePath}
|
|
1516
|
+
} catch (err) {
|
|
1517
|
+
throw new PolicyLoadError(`Policy file is not valid JSON: ${filePath}`, { cause: err });
|
|
1516
1518
|
}
|
|
1517
1519
|
const result = PolicySchema.safeParse(parsed);
|
|
1518
1520
|
if (!result.success) {
|
|
@@ -1537,7 +1539,8 @@ async function loadIssuerKey(schemeUri) {
|
|
|
1537
1539
|
raw = await readFile(filePath, "utf-8");
|
|
1538
1540
|
} catch (err) {
|
|
1539
1541
|
throw new KeyLoadError(
|
|
1540
|
-
`Failed to read key file: ${filePath} -- ${err instanceof Error ? err.message : String(err)}
|
|
1542
|
+
`Failed to read key file: ${filePath} -- ${err instanceof Error ? err.message : String(err)}`,
|
|
1543
|
+
{ cause: err }
|
|
1541
1544
|
);
|
|
1542
1545
|
}
|
|
1543
1546
|
} else {
|
|
@@ -1548,8 +1551,8 @@ async function loadIssuerKey(schemeUri) {
|
|
|
1548
1551
|
let jwk;
|
|
1549
1552
|
try {
|
|
1550
1553
|
jwk = JSON.parse(raw);
|
|
1551
|
-
} catch {
|
|
1552
|
-
throw new KeyLoadError("Key data is not valid JSON");
|
|
1554
|
+
} catch (err) {
|
|
1555
|
+
throw new KeyLoadError("Key data is not valid JSON", { cause: err });
|
|
1553
1556
|
}
|
|
1554
1557
|
if (typeof jwk !== "object" || jwk === null || !("kty" in jwk) || !("crv" in jwk) || !("d" in jwk)) {
|
|
1555
1558
|
throw new KeyLoadError("JWK must contain kty, crv, and d fields");
|