Skip to content

Commit 1a0f124

Browse files
committed
refactor(pack): scope dependency key access
1 parent 0cf845e commit 1a0f124

1 file changed

Lines changed: 11 additions & 11 deletions

File tree

scripts/packed-consumer-contracts.mjs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
/* eslint-disable security/detect-object-injection -- all dynamic keys are validated against the fixed SDK runtime allowlist. */
2-
const REQUIRED_SDK_RUNTIME = Object.freeze({
3-
'@modelcontextprotocol/core': '2.0.0',
4-
'@modelcontextprotocol/node': '2.0.0',
5-
'@modelcontextprotocol/server': '2.0.0',
6-
zod: '4.2.0',
7-
});
1+
const REQUIRED_SDK_RUNTIME = new Map([
2+
['@modelcontextprotocol/core', '2.0.0'],
3+
['@modelcontextprotocol/node', '2.0.0'],
4+
['@modelcontextprotocol/server', '2.0.0'],
5+
['zod', '4.2.0'],
6+
]);
87
const EXPECTED_TOOLS = Object.freeze([
98
'searxng_web_search',
109
'web_url_read',
@@ -52,10 +51,11 @@ function recordSdkRuntimeVersion(name, dependency, versions) {
5251
fail('unsafe_dependency_tree', `${name} is marked extraneous`);
5352
}
5453
parseStableSemver(dependency.version);
55-
if (dependency.version !== REQUIRED_SDK_RUNTIME[name]) {
54+
const requiredVersion = REQUIRED_SDK_RUNTIME.get(name);
55+
if (dependency.version !== requiredVersion) {
5656
fail(
5757
'unsafe_dependency_tree',
58-
`${name} version ${dependency.version} must be ${REQUIRED_SDK_RUNTIME[name]}`,
58+
`${name} version ${dependency.version} must be ${requiredVersion}`,
5959
);
6060
}
6161
versions.push({ name, version: dependency.version });
@@ -75,7 +75,7 @@ function visitDependencyNode(node, versions) {
7575
dependencyValue,
7676
`dependency ${name} is malformed`,
7777
);
78-
if (Object.hasOwn(REQUIRED_SDK_RUNTIME, name)) {
78+
if (REQUIRED_SDK_RUNTIME.has(name)) {
7979
recordSdkRuntimeVersion(name, dependency, versions);
8080
}
8181
visitDependencyNode(dependency, versions);
@@ -88,7 +88,7 @@ export function assertSafeDependencyTree(tree) {
8888
visitDependencyNode(tree, versions);
8989
const uniqueVersions = new Map(versions.map((entry) => [entry.name, entry]));
9090
const found = new Set(uniqueVersions.keys());
91-
const missing = Object.keys(REQUIRED_SDK_RUNTIME).filter((name) => !found.has(name));
91+
const missing = [...REQUIRED_SDK_RUNTIME.keys()].filter((name) => !found.has(name));
9292
if (missing.length > 0) {
9393
fail('unsafe_dependency_tree', `required SDK runtime dependency is missing: ${missing.join(', ')}`);
9494
}

0 commit comments

Comments
 (0)