@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.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pulseFetch
3
- } from "./chunk-LLKP5EJS.js";
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
- async function readPackage(pkgDir, depth) {
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
- wirePackages.push({ name: entry.name, version: entry.version });
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: { ecosystem: manifest.ecosystem, packages: wirePackages },
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-ZSP76JWQ.js.map
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.30",
4
- "description": "Patchstack connector for JavaScript applications. Scans your lockfile and reports installed packages to Patchstack for vulnerability monitoring.",
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
- "types": "./dist/index.d.ts",
22
- "import": "./dist/index.js",
23
- "require": "./dist/index.cjs"
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": "./dist/protect.js",
33
- "require": "./dist/protect.cjs"
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":";AAUA,IAAM,gBAAgB;AAGf,SAAS,cAAc,kBAAkC;AAC9D,QAAM,MAAM,IAAI,IAAI,gBAAgB;AACpC,QAAM,OAAO,IAAI,SAAS,QAAQ,OAAO,EAAE;AAC3C,MAAI,WAAW,KAAK,SAAS,WAAW,IACpC,GAAG,KAAK,MAAM,GAAG,CAAC,YAAY,MAAM,CAAC,WACrC;AACJ,MAAI,SAAS;AACb,MAAI,OAAO;AACX,SAAO,IAAI,SAAS;AACtB;AAGO,SAAS,eAAe,YAAuE;AACpG,QAAM,QAAQ,WAAW,YAAY,GAAG;AACxC,MAAI,SAAS,KAAK,UAAU,WAAW,SAAS,EAAG,QAAO;AAE1D,QAAM,WAAW,WAAW,MAAM,QAAQ,CAAC;AAC3C,MAAI,CAAC,QAAQ,KAAK,QAAQ,EAAG,QAAO;AAEpC,SAAO,EAAE,UAAU,cAAc,WAAW,MAAM,GAAG,KAAK,EAAE;AAC9D;AAEA,IAAI,SAAsD;AAC1D,IAAI,WAA0C;AAGvC,SAAS,kBAAwB;AACtC,WAAS;AACX;AAWA,eAAsB,cACpB,QACA,YAA0B,OACF;AAGxB,MAAI,OAAO,OAAO,cAAc,YAAY,OAAO,UAAU,WAAW,EAAG,QAAO;AAElF,MAAI,WAAW,QAAQ,KAAK,IAAI,IAAI,OAAO,YAAY,eAAe;AACpE,WAAO,OAAO;AAAA,EAChB;AACA,MAAI,aAAa,KAAM,QAAO;AAE9B,QAAM,cAAc,eAAe,OAAO,SAAS;AACnD,MAAI,gBAAgB,KAAM,QAAO;AAEjC,cAAY,YAAY;AACtB,QAAI;AACF,YAAM,WAAW,MAAM,UAAU,cAAc,OAAO,QAAQ,GAAG;AAAA,QAC/D,QAAQ;AAAA,QACR,SAAS;AAAA,UACP,gBAAgB;AAAA,UAChB,QAAQ;AAAA,UACR,cAAc;AAAA,QAChB;AAAA,QACA,MAAM,KAAK,UAAU;AAAA,UACnB,YAAY;AAAA,UACZ,WAAW,YAAY;AAAA,UACvB,eAAe,YAAY;AAAA,QAC7B,CAAC;AAAA,QACD,QAAQ,YAAY,QAAQ,OAAO,SAAS;AAAA,MAC9C,CAAC;AAED,UAAI,CAAC,SAAS,GAAI,QAAO;AAEzB,YAAM,OAAQ,MAAM,SAAS,KAAK;AAClC,UAAI,OAAO,KAAK,iBAAiB,YAAY,KAAK,aAAa,WAAW,EAAG,QAAO;AAEpF,YAAM,YAAY,OAAO,KAAK,UAAU;AACxC,YAAM,QAAQ,OAAO,SAAS,SAAS,KAAK,YAAY,IAAI,YAAY,MAAO;AAC/E,eAAS,EAAE,OAAO,KAAK,cAAc,WAAW,KAAK,IAAI,IAAI,MAAM;AAEnE,aAAO,KAAK;AAAA,IACd,QAAQ;AACN,aAAO;AAAA,IACT,UAAE;AACA,iBAAW;AAAA,IACb;AAAA,EACF,GAAG;AAEH,SAAO;AACT;AAMA,eAAsB,gBACpB,QACA,YAA0B,OACO;AACjC,QAAM,QAAQ,MAAM,cAAc,QAAQ,SAAS;AACnD,SAAO,UAAU,OAAO,CAAC,IAAI,EAAE,eAAe,UAAU,KAAK,GAAG;AAClE;AAcA,eAAsB,WACpB,QACA,KACA,MACA,YAA0B,OACP;AACnB,QAAM,OAAO,YAAY;AACvB,UAAM,OAAO,MAAM,gBAAgB,QAAQ,SAAS;AACpD,UAAM,WAAW,MAAM,UAAU,KAAK;AAAA,MACpC,GAAG;AAAA,MACH,SAAS,EAAE,GAAI,KAAK,SAAgD,GAAG,KAAK;AAAA,IAC9E,CAAC;AAED,WAAO,EAAE,UAAU,eAAe,KAAK,kBAAkB,OAAU;AAAA,EACrE;AAEA,QAAM,QAAQ,MAAM,KAAK;AAIzB,MAAI,MAAM,SAAS,WAAW,OAAO,MAAM,eAAe;AACxD,oBAAgB;AAEhB,YAAQ,MAAM,KAAK,GAAG;AAAA,EACxB;AAEA,SAAO,MAAM;AACf;","names":[]}