@patchstack/connect 0.3.30 → 0.3.32
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/AGENT-INSTALL.md +180 -20
- package/README.md +17 -3
- package/dist/{chunk-LLKP5EJS.js → chunk-3G2I6QL6.js} +1 -1
- package/dist/chunk-3G2I6QL6.js.map +1 -0
- package/dist/cli.js +309 -130
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +48 -18
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +58 -3
- package/dist/index.d.ts +58 -3
- package/dist/index.js +48 -18
- package/dist/index.js.map +1 -1
- package/dist/protect.cjs +2749 -1373
- package/dist/protect.cjs.map +1 -1
- package/dist/protect.d.cts +316 -0
- package/dist/protect.d.ts +134 -18
- package/dist/protect.edge.js +2776 -1412
- package/dist/protect.edge.js.map +3 -4
- package/dist/protect.js +2697 -1355
- package/dist/protect.js.map +1 -1
- package/dist/{refresh-manifest-ZSP76JWQ.js → refresh-manifest-SWCPQ52Z.js} +49 -19
- package/dist/refresh-manifest-SWCPQ52Z.js.map +1 -0
- package/package.json +44 -11
- package/dist/chunk-LLKP5EJS.js.map +0 -1
- package/dist/refresh-manifest-ZSP76JWQ.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
pulseFetch
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-3G2I6QL6.js";
|
|
4
4
|
|
|
5
5
|
// src/config.ts
|
|
6
6
|
import { readFile, writeFile, chmod } from "fs/promises";
|
|
@@ -528,7 +528,7 @@ async function walkNodeModules(cwd) {
|
|
|
528
528
|
seen.set(await realpath(cwd), -1);
|
|
529
529
|
} catch {
|
|
530
530
|
}
|
|
531
|
-
return dedupeByShallowest(await walk(root, 0, seen));
|
|
531
|
+
return dedupeByShallowest(await walk(root, 0, seen, cwd));
|
|
532
532
|
}
|
|
533
533
|
function dedupeByShallowest(found) {
|
|
534
534
|
const best = /* @__PURE__ */ new Map();
|
|
@@ -539,7 +539,7 @@ function dedupeByShallowest(found) {
|
|
|
539
539
|
return [...best.values()].map(({ entry }) => entry);
|
|
540
540
|
}
|
|
541
541
|
var CONCURRENCY = 32;
|
|
542
|
-
async function walk(dir, depth, seen) {
|
|
542
|
+
async function walk(dir, depth, seen, root) {
|
|
543
543
|
let names;
|
|
544
544
|
try {
|
|
545
545
|
names = await readdir(dir);
|
|
@@ -551,7 +551,7 @@ async function walk(dir, depth, seen) {
|
|
|
551
551
|
const fullPath = path4.join(dir, name);
|
|
552
552
|
const resolved = await claim(fullPath, seen, depth);
|
|
553
553
|
if (resolved === null) return [];
|
|
554
|
-
if (PACKAGE_STORE_DIRS.has(name)) return walk(fullPath, depth, seen);
|
|
554
|
+
if (PACKAGE_STORE_DIRS.has(name)) return walk(fullPath, depth, seen, root);
|
|
555
555
|
if (name.startsWith("@")) {
|
|
556
556
|
let subNames;
|
|
557
557
|
try {
|
|
@@ -564,16 +564,16 @@ async function walk(dir, depth, seen) {
|
|
|
564
564
|
const scopedDir = path4.join(fullPath, sub);
|
|
565
565
|
const scopedReal = await claim(scopedDir, seen, depth);
|
|
566
566
|
if (scopedReal === null) return [];
|
|
567
|
-
return packageAndNested(scopedDir, scopedReal, depth, seen);
|
|
567
|
+
return packageAndNested(scopedDir, scopedReal, depth, seen, root);
|
|
568
568
|
});
|
|
569
569
|
return scoped.flat();
|
|
570
570
|
}
|
|
571
|
-
return packageAndNested(fullPath, resolved, depth, seen);
|
|
571
|
+
return packageAndNested(fullPath, resolved, depth, seen, root);
|
|
572
572
|
});
|
|
573
573
|
return perEntry.flat();
|
|
574
574
|
}
|
|
575
|
-
async function packageAndNested(pkgDir, resolved, depth, seen) {
|
|
576
|
-
const [own, nested] = await Promise.all([readPackage(pkgDir, depth), walkNested(pkgDir, depth, seen)]);
|
|
575
|
+
async function packageAndNested(pkgDir, resolved, depth, seen, root) {
|
|
576
|
+
const [own, nested] = await Promise.all([readPackage(pkgDir, depth, root), walkNested(pkgDir, depth, seen, root)]);
|
|
577
577
|
return own === null ? nested : [{ entry: own, realpath: resolved, depth }, ...nested];
|
|
578
578
|
}
|
|
579
579
|
async function mapLimit(items, fn) {
|
|
@@ -588,7 +588,10 @@ async function mapLimit(items, fn) {
|
|
|
588
588
|
await Promise.all(workers);
|
|
589
589
|
return results;
|
|
590
590
|
}
|
|
591
|
-
|
|
591
|
+
function installLocation(root, pkgDir, impl = path4) {
|
|
592
|
+
return impl.relative(root, pkgDir).split(impl.sep).join("/");
|
|
593
|
+
}
|
|
594
|
+
async function readPackage(pkgDir, depth, root) {
|
|
592
595
|
let raw;
|
|
593
596
|
try {
|
|
594
597
|
raw = await readFile5(path4.join(pkgDir, "package.json"), "utf8");
|
|
@@ -607,14 +610,14 @@ async function readPackage(pkgDir, depth) {
|
|
|
607
610
|
if (typeof parsed.version !== "string" || parsed.version.length === 0) {
|
|
608
611
|
return null;
|
|
609
612
|
}
|
|
610
|
-
return { name: parsed.name, version: parsed.version, direct: depth === 0 };
|
|
613
|
+
return { name: parsed.name, version: parsed.version, path: installLocation(root, pkgDir), direct: depth === 0 };
|
|
611
614
|
}
|
|
612
|
-
async function walkNested(pkgDir, depth, seen) {
|
|
615
|
+
async function walkNested(pkgDir, depth, seen, root) {
|
|
613
616
|
const nested = path4.join(pkgDir, "node_modules");
|
|
614
617
|
if (await claim(nested, seen, depth + 1) === null) {
|
|
615
618
|
return [];
|
|
616
619
|
}
|
|
617
|
-
return walk(nested, depth + 1, seen);
|
|
620
|
+
return walk(nested, depth + 1, seen, root);
|
|
618
621
|
}
|
|
619
622
|
async function claim(dir, seen, depth) {
|
|
620
623
|
let resolved;
|
|
@@ -1257,21 +1260,33 @@ async function exists(filePath) {
|
|
|
1257
1260
|
}
|
|
1258
1261
|
|
|
1259
1262
|
// src/normalize.ts
|
|
1260
|
-
function buildWirePayload(manifest) {
|
|
1263
|
+
function buildWirePayload(manifest, options = {}) {
|
|
1264
|
+
const withPaths = options.installPaths === true;
|
|
1261
1265
|
const seen = /* @__PURE__ */ new Map();
|
|
1262
1266
|
const wirePackages = [];
|
|
1267
|
+
const byIdentity = /* @__PURE__ */ new Map();
|
|
1268
|
+
let entriesWithoutPath = 0;
|
|
1263
1269
|
for (const entry of manifest.packages) {
|
|
1270
|
+
const identity = `${entry.name}@${entry.version}`;
|
|
1271
|
+
const location = withPaths && entry.path !== void 0 && entry.path !== "" ? entry.path : void 0;
|
|
1272
|
+
if (location === void 0) entriesWithoutPath++;
|
|
1273
|
+
const existing = byIdentity.get(identity);
|
|
1274
|
+
if (existing) {
|
|
1275
|
+
if (location !== void 0) addPath(existing, location);
|
|
1276
|
+
continue;
|
|
1277
|
+
}
|
|
1264
1278
|
const versions = seen.get(entry.name);
|
|
1265
1279
|
if (versions) {
|
|
1266
|
-
if (versions.has(entry.version)) {
|
|
1267
|
-
continue;
|
|
1268
|
-
}
|
|
1269
1280
|
versions.add(entry.version);
|
|
1270
1281
|
} else {
|
|
1271
1282
|
seen.set(entry.name, /* @__PURE__ */ new Set([entry.version]));
|
|
1272
1283
|
}
|
|
1273
|
-
|
|
1284
|
+
const wire = { name: entry.name, version: entry.version };
|
|
1285
|
+
if (location !== void 0) addPath(wire, location);
|
|
1286
|
+
byIdentity.set(identity, wire);
|
|
1287
|
+
wirePackages.push(wire);
|
|
1274
1288
|
}
|
|
1289
|
+
for (const wire of wirePackages) wire.paths?.sort();
|
|
1275
1290
|
wirePackages.sort((a, b) => {
|
|
1276
1291
|
if (a.name === b.name) {
|
|
1277
1292
|
return compareVersions(a.version, b.version);
|
|
@@ -1285,7 +1300,18 @@ function buildWirePayload(manifest) {
|
|
|
1285
1300
|
}
|
|
1286
1301
|
}
|
|
1287
1302
|
return {
|
|
1288
|
-
payload: {
|
|
1303
|
+
payload: {
|
|
1304
|
+
ecosystem: manifest.ecosystem,
|
|
1305
|
+
packages: wirePackages,
|
|
1306
|
+
// Every entry had a location, so a missing path anywhere means the package is not installed there.
|
|
1307
|
+
// One entry without one forfeits that for the whole payload: a consumer reading a short `paths` has
|
|
1308
|
+
// no way to tell which entry was the incomplete one.
|
|
1309
|
+
//
|
|
1310
|
+
// No separate check for "locations were not requested": with them off every entry counts as without
|
|
1311
|
+
// one, so this is already false — which is the default, and the safe direction. An explicit
|
|
1312
|
+
// `withPaths &&` here was a guard no test could distinguish from its absence.
|
|
1313
|
+
installPathsComplete: entriesWithoutPath === 0 && manifest.packages.length > 0
|
|
1314
|
+
},
|
|
1289
1315
|
stats: {
|
|
1290
1316
|
uniqueNames: seen.size,
|
|
1291
1317
|
duplicateNames,
|
|
@@ -1293,6 +1319,10 @@ function buildWirePayload(manifest) {
|
|
|
1293
1319
|
}
|
|
1294
1320
|
};
|
|
1295
1321
|
}
|
|
1322
|
+
function addPath(wire, installPath) {
|
|
1323
|
+
if (wire.paths === void 0) wire.paths = [installPath];
|
|
1324
|
+
else if (!wire.paths.includes(installPath)) wire.paths.push(installPath);
|
|
1325
|
+
}
|
|
1296
1326
|
function compareVersions(a, b) {
|
|
1297
1327
|
if (a === b) {
|
|
1298
1328
|
return 0;
|
|
@@ -1371,4 +1401,4 @@ async function reportManifest(cwd) {
|
|
|
1371
1401
|
export {
|
|
1372
1402
|
reportManifest
|
|
1373
1403
|
};
|
|
1374
|
-
//# sourceMappingURL=refresh-manifest-
|
|
1404
|
+
//# sourceMappingURL=refresh-manifest-SWCPQ52Z.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/config.ts","../src/types.ts","../src/client.ts","../src/parsers/index.ts","../src/parsers/consistency.ts","../src/parsers/bun.ts","../src/parsers/report.ts","../src/parsers/npm.ts","../src/parsers/node_modules.ts","../src/parsers/pnpm.ts","../src/parsers/yarn.ts","../src/normalize.ts","../src/protect/refresh-manifest.ts"],"mappings":"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","names":["path","readFile","path","readFile","readFile","readFile","path","readFile","path","readFile","path","path","readFile","readFile","readFile","readFile","path","readFile","path","readFile","path","path"]}
|
package/package.json
CHANGED
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patchstack/connect",
|
|
3
|
-
"version": "0.3.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.3.32",
|
|
4
|
+
"description": "Runtime application security for JavaScript and Node.js: dependency inventory, attack-surface mapping, and an in-process guard that virtually patches known vulnerabilities and hardens responses.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"patchstack",
|
|
7
7
|
"security",
|
|
8
|
+
"application-security",
|
|
9
|
+
"nodejs-security",
|
|
10
|
+
"runtime-security",
|
|
11
|
+
"rasp",
|
|
12
|
+
"virtual-patching",
|
|
13
|
+
"waf",
|
|
8
14
|
"vulnerability",
|
|
9
15
|
"cve",
|
|
10
|
-
"npm-audit",
|
|
11
16
|
"sca",
|
|
12
|
-
"dependency-scanning"
|
|
17
|
+
"dependency-scanning",
|
|
18
|
+
"npm-audit",
|
|
19
|
+
"attack-surface",
|
|
20
|
+
"ssrf",
|
|
21
|
+
"secret-redaction"
|
|
13
22
|
],
|
|
14
23
|
"license": "MIT",
|
|
15
24
|
"type": "module",
|
|
@@ -18,19 +27,31 @@
|
|
|
18
27
|
"types": "./dist/index.d.ts",
|
|
19
28
|
"exports": {
|
|
20
29
|
".": {
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
30
|
+
"import": {
|
|
31
|
+
"types": "./dist/index.d.ts",
|
|
32
|
+
"default": "./dist/index.js"
|
|
33
|
+
},
|
|
34
|
+
"require": {
|
|
35
|
+
"types": "./dist/index.d.cts",
|
|
36
|
+
"default": "./dist/index.cjs"
|
|
37
|
+
},
|
|
38
|
+
"default": "./dist/index.js"
|
|
24
39
|
},
|
|
25
40
|
"./protect": {
|
|
26
|
-
"types": "./dist/protect.d.ts",
|
|
27
41
|
"workerd": "./dist/protect.edge.js",
|
|
28
42
|
"worker": "./dist/protect.edge.js",
|
|
29
43
|
"edge-light": "./dist/protect.edge.js",
|
|
30
44
|
"deno": "./dist/protect.edge.js",
|
|
31
45
|
"browser": "./dist/protect.edge.js",
|
|
32
|
-
"import":
|
|
33
|
-
|
|
46
|
+
"import": {
|
|
47
|
+
"types": "./dist/protect.d.ts",
|
|
48
|
+
"default": "./dist/protect.js"
|
|
49
|
+
},
|
|
50
|
+
"require": {
|
|
51
|
+
"types": "./dist/protect.d.cts",
|
|
52
|
+
"default": "./dist/protect.cjs"
|
|
53
|
+
},
|
|
54
|
+
"default": "./dist/protect.js"
|
|
34
55
|
}
|
|
35
56
|
},
|
|
36
57
|
"bin": {
|
|
@@ -47,6 +68,10 @@
|
|
|
47
68
|
"verify:edge": "node scripts/verify-edge-platform.mjs",
|
|
48
69
|
"dev": "tsup --watch",
|
|
49
70
|
"test": "vitest run",
|
|
71
|
+
"test:consumers": "node scripts/compat-matrix.mjs",
|
|
72
|
+
"test:bundled": "node scripts/bundled-consumer.mjs",
|
|
73
|
+
"test:demos": "npm run build && node scripts/run-demos.mjs",
|
|
74
|
+
"audit:side-effects": "npm run build && node scripts/side-effect-audit.mjs --selftest && node scripts/side-effect-audit.mjs",
|
|
50
75
|
"test:manifest": "bun scripts/test-manifest.ts",
|
|
51
76
|
"test:watch": "vitest",
|
|
52
77
|
"typecheck": "tsc --noEmit && node scripts/typecheck-templates.mjs",
|
|
@@ -61,12 +86,20 @@
|
|
|
61
86
|
"engines": {
|
|
62
87
|
"node": ">=18"
|
|
63
88
|
},
|
|
89
|
+
"publishConfig": {
|
|
90
|
+
"access": "public",
|
|
91
|
+
"registry": "https://registry.npmjs.org/"
|
|
92
|
+
},
|
|
64
93
|
"devDependencies": {
|
|
65
94
|
"@types/node": "^20.11.0",
|
|
66
95
|
"fastify": "^5.12.1",
|
|
67
96
|
"tsup": "^8.0.0",
|
|
68
97
|
"typescript": "^5.4.0",
|
|
69
|
-
"vitest": "^3.0.0"
|
|
98
|
+
"vitest": "^3.0.0",
|
|
99
|
+
"yaml": "^2.9.0"
|
|
100
|
+
},
|
|
101
|
+
"overrides": {
|
|
102
|
+
"esbuild": "^0.28.1"
|
|
70
103
|
},
|
|
71
104
|
"repository": {
|
|
72
105
|
"type": "git",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/pulse-token.ts"],"sourcesContent":["import type { Config } from './types.js';\n\n/**\n * Bearer tokens for the authenticated Pulse endpoints (ADR-0018).\n *\n * Deliberately separate from the block-log token flow in\n * `src/protect/firewall-log.js`: that path talks to the auth/ Lambda's\n * /oauth/token and must keep working exactly as it does today.\n */\n\nconst TOKEN_SKEW_MS = 60_000;\n\n/** Build the Pulse token URL corresponding to a manifest endpoint override. */\nexport function buildTokenUrl(manifestEndpoint: string): string {\n const url = new URL(manifestEndpoint);\n const path = url.pathname.replace(/\\/$/, '');\n url.pathname = path.endsWith('/manifest')\n ? `${path.slice(0, -'/manifest'.length)}/token`\n : '/monitor/pulse/token';\n url.search = '';\n url.hash = '';\n return url.toString();\n}\n\n/** Split the WP-format `{secret}-{oauth.id}` credential on its last hyphen. */\nexport function parsePulseAuth(credential: string): { clientId: string; clientSecret: string } | null {\n const index = credential.lastIndexOf('-');\n if (index <= 0 || index === credential.length - 1) return null;\n\n const clientId = credential.slice(index + 1);\n if (!/^\\d+$/.test(clientId)) return null;\n\n return { clientId, clientSecret: credential.slice(0, index) };\n}\n\nlet cached: { token: string; expiresAt: number } | null = null;\nlet inflight: Promise<string | null> | null = null;\n\n/** Drops the cached token. Exported for tests and for 401 handling. */\nexport function clearPulseToken(): void {\n cached = null;\n}\n\n/**\n * Resolve a bearer token for `config.pulseAuth`, exchanging one if needed.\n *\n * Returns null whenever a token cannot be obtained — no credential, a rejected\n * exchange, a network failure. Callers then send the request unauthenticated,\n * and every site-addressed Pulse endpoint refuses it: only a first-time\n * provisioning call is anonymous. Returning null rather than throwing keeps that\n * refusal on the caller's own error path, where it can fall back or report.\n */\nexport async function getPulseToken(\n config: Config,\n fetchImpl: typeof fetch = fetch,\n): Promise<string | null> {\n // Not `=== null`: Config is public, so callers can hand us an object that\n // predates this field, and an unusable credential must never throw here.\n if (typeof config.pulseAuth !== 'string' || config.pulseAuth.length === 0) return null;\n\n if (cached !== null && Date.now() < cached.expiresAt - TOKEN_SKEW_MS) {\n return cached.token;\n }\n if (inflight !== null) return inflight;\n\n const credentials = parsePulseAuth(config.pulseAuth);\n if (credentials === null) return null;\n\n inflight = (async () => {\n try {\n const response = await fetchImpl(buildTokenUrl(config.endpoint), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n 'User-Agent': '@patchstack/connect',\n },\n body: JSON.stringify({\n grant_type: 'client_credentials',\n client_id: credentials.clientId,\n client_secret: credentials.clientSecret,\n }),\n signal: AbortSignal.timeout(config.timeoutMs),\n });\n\n if (!response.ok) return null;\n\n const body = (await response.json()) as { access_token?: unknown; expires_in?: unknown };\n if (typeof body.access_token !== 'string' || body.access_token.length === 0) return null;\n\n const expiresIn = Number(body.expires_in);\n const ttlMs = Number.isFinite(expiresIn) && expiresIn > 0 ? expiresIn * 1000 : 3600_000;\n cached = { token: body.access_token, expiresAt: Date.now() + ttlMs };\n\n return body.access_token;\n } catch {\n return null;\n } finally {\n inflight = null;\n }\n })();\n\n return inflight;\n}\n\n/**\n * `Authorization` header for a Pulse request, or `{}` when unauthenticated.\n * Spread into an existing header object so call sites stay one line.\n */\nexport async function pulseAuthHeader(\n config: Config,\n fetchImpl: typeof fetch = fetch,\n): Promise<Record<string, string>> {\n const token = await getPulseToken(config, fetchImpl);\n return token === null ? {} : { Authorization: `Bearer ${token}` };\n}\n\n/**\n * Send a Pulse request, attaching the bearer token and retrying once if the\n * server rejects it.\n *\n * A cached token can stop being valid before it expires — the credential may\n * have been rotated or revoked meanwhile — so the server's 401 is authoritative\n * over our own clock. Without this a long-running process would keep presenting\n * a dead token until its local expiry.\n *\n * Only 401 retries: a 403 is a scope or site mismatch, which a fresh token\n * would not fix.\n */\nexport async function pulseFetch(\n config: Config,\n url: string,\n init: RequestInit,\n fetchImpl: typeof fetch = fetch,\n): Promise<Response> {\n const send = async () => {\n const auth = await pulseAuthHeader(config, fetchImpl);\n const response = await fetchImpl(url, {\n ...init,\n headers: { ...(init.headers as Record<string, string> | undefined), ...auth },\n });\n\n return { response, authenticated: auth.Authorization !== undefined };\n };\n\n const first = await send();\n\n // Retrying an unauthenticated request would just repeat it: the 401 was\n // about something other than our token.\n if (first.response.status === 401 && first.authenticated) {\n clearPulseToken();\n\n return (await send()).response;\n }\n\n return first.response;\n}\n"],"mappings":"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","names":[]}
|