JSON-Rohbericht maschinenlesbar
{
"data": {
"repo": {
"topics": [
"http",
"https",
"nodejs",
"pac",
"proxy",
"socks",
"agent"
],
"is_fork": false,
"size_kb": 1013,
"has_wiki": true,
"homepage": "https://proxy-agents.n8.io",
"languages": {
"JavaScript": 13785,
"TypeScript": 246473
},
"pushed_at": "2026-07-12T21:26:11Z",
"created_at": "2013-07-09T20:43:26Z",
"owner_type": "User",
"updated_at": "2026-07-17T00:46:56Z",
"description": "Node.js HTTP Proxy Agents Monorepo",
"is_archived": false,
"is_disabled": false,
"license_spdx": null,
"default_branch": "main",
"license_spdx_raw": null,
"primary_language": "TypeScript",
"significant_languages": [
"TypeScript"
]
},
"owner": {
"blog": "https://n8.io",
"name": "Nathan Rajlich",
"type": "User",
"login": "TooTallNate",
"company": "@vercel ",
"location": "San Francisco, CA",
"followers": 6565,
"avatar_url": "https://avatars.githubusercontent.com/u/71256?v=4",
"created_at": "2009-04-07T06:11:03Z",
"is_verified": null,
"public_repos": 409,
"account_age_days": 6315
},
"license": {
"state": "absent",
"spdx_id": null,
"raw_spdx": null,
"file_present": false,
"scorecard_found": false,
"profile_has_license": false
},
"activity": {
"releases": [
{
"tag": "get-uri@8.0.1",
"kind": "other",
"published_at": "2026-06-08T16:48:02Z"
},
{
"tag": "proxy@4.1.0",
"kind": "other",
"published_at": "2026-06-08T16:47:59Z"
},
{
"tag": "pac-proxy-agent@9.1.0",
"kind": "other",
"published_at": "2026-06-08T16:47:56Z"
},
{
"tag": "http-proxy-agent@9.1.0",
"kind": "other",
"published_at": "2026-06-08T16:47:53Z"
},
{
"tag": "proxy-agent-negotiate@1.1.0",
"kind": "other",
"published_at": "2026-06-08T16:47:50Z"
},
{
"tag": "socks-proxy-agent@10.1.0",
"kind": "other",
"published_at": "2026-06-08T16:47:47Z"
},
{
"tag": "https-proxy-agent@9.1.0",
"kind": "other",
"published_at": "2026-06-08T16:47:44Z"
},
{
"tag": "proxy-agent@8.0.2",
"kind": "other",
"published_at": "2026-06-08T16:47:41Z"
},
{
"tag": "pac-resolver@9.0.1",
"kind": "other",
"published_at": "2026-04-06T06:41:25Z"
},
{
"tag": "proxy-agent@8.0.1",
"kind": "other",
"published_at": "2026-04-06T06:41:22Z"
},
{
"tag": "pac-proxy-agent@9.0.1",
"kind": "other",
"published_at": "2026-04-06T06:41:19Z"
},
{
"tag": "degenerator@7.0.1",
"kind": "other",
"published_at": "2026-04-06T06:41:16Z"
},
{
"tag": "http-proxy-agent@9.0.0",
"kind": "other",
"published_at": "2026-04-01T06:58:36Z"
},
{
"tag": "proxy@4.0.0",
"kind": "other",
"published_at": "2026-04-01T06:58:33Z"
},
{
"tag": "pac-proxy-agent@9.0.0",
"kind": "other",
"published_at": "2026-04-01T06:58:30Z"
},
{
"tag": "pac-resolver@9.0.0",
"kind": "other",
"published_at": "2026-04-01T06:58:27Z"
},
{
"tag": "get-uri@8.0.0",
"kind": "other",
"published_at": "2026-04-01T06:58:24Z"
},
{
"tag": "https-proxy-agent@9.0.0",
"kind": "other",
"published_at": "2026-04-01T06:58:21Z"
},
{
"tag": "socks-proxy-agent@10.0.0",
"kind": "other",
"published_at": "2026-04-01T06:58:18Z"
},
{
"tag": "proxy-agent@8.0.0",
"kind": "other",
"published_at": "2026-04-01T06:58:15Z"
},
{
"tag": "agent-base@9.0.0",
"kind": "other",
"published_at": "2026-04-01T06:58:12Z"
},
{
"tag": "data-uri-to-buffer@8.0.0",
"kind": "other",
"published_at": "2026-04-01T06:58:09Z"
},
{
"tag": "degenerator@7.0.0",
"kind": "other",
"published_at": "2026-04-01T06:58:06Z"
},
{
"tag": "data-uri-to-buffer@7.0.0",
"kind": "other",
"published_at": "2026-03-11T16:59:31Z"
},
{
"tag": "pac-resolver@8.0.0",
"kind": "other",
"published_at": "2026-03-11T16:59:28Z"
},
{
"tag": "socks-proxy-agent@9.0.0",
"kind": "other",
"published_at": "2026-03-11T16:59:25Z"
},
{
"tag": "degenerator@6.0.0",
"kind": "other",
"published_at": "2026-03-11T16:59:22Z"
},
{
"tag": "proxy@3.0.0",
"kind": "other",
"published_at": "2026-03-11T16:59:19Z"
},
{
"tag": "get-uri@7.0.0",
"kind": "other",
"published_at": "2026-03-11T16:59:16Z"
},
{
"tag": "pac-proxy-agent@8.0.0",
"kind": "other",
"published_at": "2026-03-11T16:59:13Z"
},
{
"tag": "https-proxy-agent@8.0.0",
"kind": "other",
"published_at": "2026-03-11T16:59:10Z"
},
{
"tag": "agent-base@8.0.0",
"kind": "other",
"published_at": "2026-03-11T16:59:07Z"
},
{
"tag": "proxy-agent@7.0.0",
"kind": "other",
"published_at": "2026-03-11T16:59:04Z"
},
{
"tag": "http-proxy-agent@8.0.0",
"kind": "other",
"published_at": "2026-03-11T16:59:01Z"
},
{
"tag": "get-uri@6.0.5",
"kind": "other",
"published_at": "2025-07-07T17:44:08Z"
},
{
"tag": "agent-base@7.1.4",
"kind": "other",
"published_at": "2025-07-07T17:44:05Z"
},
{
"tag": "pac-proxy-agent@7.2.0",
"kind": "other",
"published_at": "2025-02-18T19:38:35Z"
},
{
"tag": "agent-base@7.1.3",
"kind": "other",
"published_at": "2024-12-08T04:04:13Z"
},
{
"tag": "socks-proxy-agent@8.0.5",
"kind": "other",
"published_at": "2024-12-07T03:32:29Z"
},
{
"tag": "proxy-agent@6.5.0",
"kind": "other",
"published_at": "2024-12-07T03:32:26Z"
},
{
"tag": "pac-proxy-agent@7.1.0",
"kind": "other",
"published_at": "2024-12-07T03:32:23Z"
},
{
"tag": "https-proxy-agent@7.0.6",
"kind": "other",
"published_at": "2024-12-07T03:32:20Z"
},
{
"tag": "agent-base@7.1.2",
"kind": "other",
"published_at": "2024-12-07T03:32:17Z"
},
{
"tag": "get-uri@6.0.4",
"kind": "other",
"published_at": "2024-12-03T23:31:34Z"
},
{
"tag": "socks-proxy-agent@8.0.4",
"kind": "other",
"published_at": "2024-06-28T07:34:02Z"
},
{
"tag": "proxy@2.2.0",
"kind": "other",
"published_at": "2024-06-28T07:33:59Z"
},
{
"tag": "pac-proxy-agent@7.0.2",
"kind": "other",
"published_at": "2024-06-28T07:33:56Z"
},
{
"tag": "https-proxy-agent@7.0.5",
"kind": "other",
"published_at": "2024-06-28T07:33:53Z"
},
{
"tag": "socks-proxy-agent@8.0.3",
"kind": "other",
"published_at": "2024-03-30T01:31:46Z"
},
{
"tag": "agent-base@7.1.1",
"kind": "other",
"published_at": "2024-03-30T01:31:43Z"
},
{
"tag": "http-proxy-agent@7.0.2",
"kind": "other",
"published_at": "2024-02-15T19:14:28Z"
},
{
"tag": "https-proxy-agent@7.0.4",
"kind": "other",
"published_at": "2024-02-15T19:14:25Z"
},
{
"tag": "get-uri@6.0.3",
"kind": "other",
"published_at": "2024-02-12T18:25:01Z"
},
{
"tag": "proxy-agent@6.4.0",
"kind": "other",
"published_at": "2024-02-12T18:24:58Z"
},
{
"tag": "pac-resolver@7.0.1",
"kind": "other",
"published_at": "2024-02-12T18:24:55Z"
},
{
"tag": "https-proxy-agent@7.0.3",
"kind": "other",
"published_at": "2024-02-12T18:24:52Z"
},
{
"tag": "http-proxy-agent@7.0.1",
"kind": "other",
"published_at": "2024-02-12T18:24:49Z"
},
{
"tag": "data-uri-to-buffer@6.0.2",
"kind": "other",
"published_at": "2024-02-12T18:24:46Z"
},
{
"tag": "data-uri-to-buffer@6.0.1",
"kind": "other",
"published_at": "2023-09-30T14:49:59Z"
},
{
"tag": "get-uri@6.0.2",
"kind": "other",
"published_at": "2023-09-30T14:29:58Z"
},
{
"tag": "data-uri-to-buffer@6.0.0",
"kind": "other",
"published_at": "2023-09-30T14:29:55Z"
},
{
"tag": "socks-proxy-agent@8.0.2",
"kind": "other",
"published_at": "2023-09-04T08:10:00Z"
},
{
"tag": "proxy-agent@6.3.1",
"kind": "other",
"published_at": "2023-09-04T08:09:57Z"
},
{
"tag": "pac-proxy-agent@7.0.1",
"kind": "other",
"published_at": "2023-09-04T08:09:54Z"
},
{
"tag": "https-proxy-agent@7.0.2",
"kind": "other",
"published_at": "2023-09-04T08:09:51Z"
},
{
"tag": "degenerator@5.0.1",
"kind": "other",
"published_at": "2023-07-19T21:01:13Z"
},
{
"tag": "proxy-agent@6.3.0",
"kind": "other",
"published_at": "2023-07-18T09:04:40Z"
},
{
"tag": "pac-resolver@7.0.0",
"kind": "other",
"published_at": "2023-07-18T09:04:37Z"
},
{
"tag": "pac-proxy-agent@7.0.0",
"kind": "other",
"published_at": "2023-07-18T09:04:34Z"
},
{
"tag": "degenerator@5.0.0",
"kind": "other",
"published_at": "2023-07-18T09:04:31Z"
},
{
"tag": "proxy-agent@6.2.2",
"kind": "other",
"published_at": "2023-07-13T19:34:35Z"
},
{
"tag": "pac-proxy-agent@6.0.4",
"kind": "other",
"published_at": "2023-07-13T19:34:31Z"
},
{
"tag": "https-proxy-agent@7.0.1",
"kind": "other",
"published_at": "2023-07-10T19:39:37Z"
},
{
"tag": "pac-resolver@6.0.2",
"kind": "other",
"published_at": "2023-06-29T22:01:23Z"
},
{
"tag": "degenerator@4.0.4",
"kind": "other",
"published_at": "2023-06-29T22:01:20Z"
},
{
"tag": "degenerator@4.0.3",
"kind": "other",
"published_at": "2023-06-17T08:24:40Z"
},
{
"tag": "proxy-agent@6.2.1",
"kind": "other",
"published_at": "2023-05-25T00:23:11Z"
},
{
"tag": "pac-proxy-agent@6.0.3",
"kind": "other",
"published_at": "2023-05-25T00:23:08Z"
},
{
"tag": "https-proxy-agent@7.0.0",
"kind": "other",
"published_at": "2023-05-25T00:23:05Z"
},
{
"tag": "http-proxy-agent@7.0.0",
"kind": "other",
"published_at": "2023-05-25T00:23:02Z"
},
{
"tag": "https-proxy-agent@6.2.1",
"kind": "other",
"published_at": "2023-05-24T08:11:57Z"
},
{
"tag": "proxy@2.1.1",
"kind": "other",
"published_at": "2023-05-18T19:31:34Z"
},
{
"tag": "https-proxy-agent@6.2.0",
"kind": "other",
"published_at": "2023-05-18T19:31:31Z"
},
{
"tag": "http-proxy-agent@6.1.0",
"kind": "other",
"published_at": "2023-05-18T19:31:28Z"
},
{
"tag": "agent-base@7.0.2",
"kind": "other",
"published_at": "2023-05-18T19:31:25Z"
},
{
"tag": "proxy@2.1.0",
"kind": "other",
"published_at": "2023-05-12T20:03:34Z"
},
{
"tag": "proxy-agent@6.2.0",
"kind": "other",
"published_at": "2023-05-09T09:03:48Z"
},
{
"tag": "pac-proxy-agent@6.0.2",
"kind": "other",
"published_at": "2023-05-09T09:03:45Z"
},
{
"tag": "degenerator@4.0.2",
"kind": "other",
"published_at": "2023-05-09T09:03:42Z"
},
{
"tag": "proxy-agent@6.1.2",
"kind": "other",
"published_at": "2023-05-05T22:04:16Z"
},
{
"tag": "proxy@2.0.1",
"kind": "other",
"published_at": "2023-05-05T22:04:16Z"
},
{
"tag": "pac-proxy-agent@6.0.1",
"kind": "other",
"published_at": "2023-05-05T22:04:16Z"
},
{
"tag": "degenerator@4.0.1",
"kind": "other",
"published_at": "2023-05-05T22:04:16Z"
},
{
"tag": "http-proxy-agent@6.0.1",
"kind": "other",
"published_at": "2023-05-05T22:04:16Z"
},
{
"tag": "socks-proxy-agent@8.0.1",
"kind": "other",
"published_at": "2023-05-05T22:04:16Z"
},
{
"tag": "https-proxy-agent@6.1.0",
"kind": "other",
"published_at": "2023-05-05T22:04:16Z"
},
{
"tag": "get-uri@6.0.1",
"kind": "other",
"published_at": "2023-05-05T22:04:16Z"
},
{
"tag": "data-uri-to-buffer@5.0.1",
"kind": "other",
"published_at": "2023-05-05T22:04:16Z"
},
{
"tag": "agent-base@7.0.1",
"kind": "other",
"published_at": "2023-05-05T22:04:16Z"
},
{
"tag": "pac-resolver@6.0.1",
"kind": "other",
"published_at": "2023-05-05T22:04:16Z"
}
],
"recent_commits": [
{
"oid": "4813885d3f4e2ff837878ceffdba656a71dc31f0",
"body": "Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 4.0.18 to 4.1.0.\n- [Release notes](https://github.com/vitest-dev/vitest/releases)\n- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)\n- [Commits](https://github.com/vitest-dev/vitest/commit\n[…]\nndency-version: 4.1.0\n dependency-type: direct:development\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Bump vitest from 4.0.18 to 4.1.0 (#436)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-12T21:26:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0f80493bd44de4e4a716178f0f7e029cd45db268",
"body": "* chore: update quickjs-wasi to v3.0.0\n\nBreaking change in v3: WASM bytes must be explicitly provided to\nQuickJS.create(). Updated all call sites to load the WASM binary\nvia readFile() with import.meta.resolve().\n\n* chore: format code with prettier\n\n---------\n\nCo-authored-by: clutz-bot[bot] <261721731+clutz-bot[bot]@users.noreply.github.com>\nCo-authored-by: clutz-bot[bot] <clutz-bot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: update quickjs-wasi to v3.0.0 (#435)",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-07-12T21:25:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b7e5f7ccce1a3ac5b339cc4c587974e8989cbc16",
"body": "* test: increase timeout for keepAlive test (flaky on Windows)\n\nThe 'should work with keepAlive: true' test in proxy-agent intermittently\ntimes out on Windows CI (10s default). The socket 'free' event can be\nslow on Windows. Bump to 30s for this specific test.\n\n* style: format test file with prettier\n\n* fix: format\n\n---------\n\nCo-authored-by: clutz-bot[bot] <261721731+clutz-bot[bot]@users.noreply.github.com>\nCo-authored-by: clutz-bot[bot] <clutz-bot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "test: increase timeout for flaky keepAlive test on Windows (#434)",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-05-24T07:20:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "065d1ffc2c4d60a33091b0607d8706ebc4bae6b8",
"body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Version Packages (#416)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-05-24T07:10:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8e7958c423a7f4ebbac645952c9ced82ab151f81",
"body": "- actions/checkout v4 → v6\n- actions/setup-node v4 → v6\n- pnpm/action-setup v4 → v6\n\nNode.js 20 actions are deprecated and will be forced to Node.js 24\nstarting June 2, 2026.\n\nCo-authored-by: clutz-bot[bot] <261721731+clutz-bot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "ci: update GitHub Actions to v6 (Node.js 24 support) (#433)",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-05-24T07:06:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "45d001602a5c7ae37979632710fde7c075f19ef4",
"body": "* Bump turbo from 1.13.4 to 2.9.14\n\nBumps [turbo](https://github.com/vercel/turborepo) from 1.13.4 to 2.9.14.\n- [Release notes](https://github.com/vercel/turborepo/releases)\n- [Changelog](https://github.com/vercel/turborepo/blob/main/RELEASE.md)\n- [Commits](https://github.com/vercel/turborepo/compar\n[…]\n33+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: clutz-bot[bot] <clutz-bot[bot]@users.noreply.github.com>\nCo-authored-by: clutz-bot[bot] <261721731+clutz-bot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Bump turbo from 1.13.4 to 2.9.14 (#430)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-05-24T07:03:46Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "28777f4310c84547eeac9f9950441d769d8863ed",
"body": "Bumps [ws](https://github.com/websockets/ws) from 8.19.0 to 8.20.1.\n- [Release notes](https://github.com/websockets/ws/releases)\n- [Commits](https://github.com/websockets/ws/compare/8.19.0...8.20.1)\n\n---\nupdated-dependencies:\n- dependency-name: ws\n dependency-version: 8.20.1\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Bump ws from 8.19.0 to 8.20.1 (#429)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-05-24T06:59:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7c5eba025418a85003e8945375327d86b2357d38",
"body": "github.actor is whoever pushed last, not the PR author. When another\nbot merges main into a dependabot PR, the actor changes. Use\ngithub.event.pull_request.user.login to reliably detect dependabot PRs.\n\nCo-authored-by: clutz-bot[bot] <261721731+clutz-bot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "ci: check PR author instead of actor for E2E skip (#432)",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-05-24T06:52:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1dd8266d18cf719355a8fc36d8cbef73474d3588",
"body": "The E2E job requires NordVPN secrets which aren't available to fork PRs\nor Dependabot PRs. Use a job-level `if` condition so the job shows as\n'skipped' in the GitHub UI rather than falsely succeeding or failing.\n\nCo-authored-by: clutz-bot[bot] <261721731+clutz-bot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "ci: skip E2E job for PRs without secret access (#431)",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-05-24T06:46:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2cae41b9a33e387454750f9748c04a23f7599df5",
"body": "Bumps [basic-ftp](https://github.com/patrickjuchli/basic-ftp) from 5.3.0 to 5.3.1.\n- [Release notes](https://github.com/patrickjuchli/basic-ftp/releases)\n- [Changelog](https://github.com/patrickjuchli/basic-ftp/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/patrickjuchli/basic-ftp/compare/\n[…]\nendency-version: 5.3.1\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Bump basic-ftp from 5.3.0 to 5.3.1 (#425)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-05-24T06:40:21Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "84e85ed393bc78fcad1d50cffc4e2640f3b933a0",
"body": "…ort (#420)\n\n* feat: add onProxyAuth callback and Negotiate/Kerberos proxy auth support\n\n- Add optional async onProxyAuth callback to HttpsProxyAgent and HttpProxyAgent\n- On 407 Proxy-Authentication Required, invoke callback with response and scheme\n- Callback returns headers for retry (e.g. Proxy-A\n[…]\nctually imports from 'kerberos'.\n\n---------\n\nCo-authored-by: clutz-bot[bot] <261721731+clutz-bot[bot]@users.noreply.github.com>\nCo-authored-by: clutz-bot[bot] <clutz-bot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "feat: add onProxyAuth callback and Negotiate/Kerberos proxy auth supp…",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-05-04T00:22:21Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ce0243e33af7f950baa049926e74ba184478bf5b",
"body": "…ng (#421)\n\n* feat(pac-proxy-agent): add sanitizeProxyResultCredentials() to strip credentials from log output\n\nAdd a utility function that sanitizes PAC proxy result strings by replacing\nembedded credentials (userinfo) with '<credentials>' for safe logging.\n\nThis prevents credentials from leaking i\n[…]\n.\n\n* style: format with prettier\n\n---------\n\nCo-authored-by: clutz-bot[bot] <261721731+clutz-bot[bot]@users.noreply.github.com>\nCo-authored-by: clutz-bot[bot] <clutz-bot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "feat(pac-proxy-agent): sanitize credentials in PAC proxy result loggi…",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-05-03T21:26:06Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3ebf4b2576f7ae0ca777f8c5ede60d618e79ae29",
"body": "Emit a `proxy` event on the request object after the proxy connection\nis established. The event payload includes `{ proxy, socket }` where\n`proxy` is the proxy URL string and `socket` is the connected socket.\n\nThis is useful for debugging and logging which proxy was used for a\nconnection, and aligns with VS Code's vscode-proxy-agent behavior.\n\nCo-authored-by: clutz-bot[bot] <261721731+clutz-bot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "feat: add `proxy` event emission on request for all proxy agents (#422)",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-05-03T21:25:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8487a7826934568038e4dbc737355448c825c97d",
"body": "* feat(pac-proxy-agent): add tests for credentials in PAC proxy results\n\nPAC files can return proxy results with embedded credentials like\n'PROXY user:pass@host:port'. These credentials are already correctly\npassed through to the underlying proxy agents (HttpProxyAgent,\nHttpsProxyAgent, SocksProxyAg\n[…]\ncuments\nthe support via a changeset.\n\nRefs #213\n\n* fix: replace broken changeset symlink with proper file\n\n---------\n\nCo-authored-by: clutz-bot[bot] <261721731+clutz-bot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "feat(pac-proxy-agent): support credentials in PAC proxy results (#423)",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-05-03T20:45:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1852c750bb68a8a84ee96fda5977e7431aa22f92",
"body": "…ndition (#424)\n\nThe resume() function called on the 'socket' event was immediately\nswitching the socket to flowing mode, causing buffered data to be\nemitted before the HTTP client machinery had attached its data\nlisteners. This race condition was worked around downstream in\nVS Code's vscode-proxy-a\n[…]\nping socket.resume() in setImmediate() so all 'socket'\nevent handlers have a chance to attach their listeners first.\n\nCo-authored-by: clutz-bot[bot] <261721731+clutz-bot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "fix(https-proxy-agent): defer socket.resume() to prevent data race co…",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-05-03T20:42:08Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "42a7ffa8b3c808e41af0e29105d3185e24e05f81",
"body": "…tching\n\nThe NordVPN server cert uses *.proxy.nordvpn.com wildcard, but the\nhostname field returns e.g. us10299.nordvpn.com which doesn't match.\nUse the proxy_hostname from the proxy_ssl technology metadata instead.",
"is_bot": true,
"headline": "fix: use proxy_hostname from NordVPN metadata for correct TLS cert ma…",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-05-03T19:54:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8761b473b125faf162e7cd5a274fdebd9be61d04",
"body": null,
"is_bot": true,
"headline": "fix: log error message on each E2E retry attempt",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-05-03T19:47:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "434d23769543e539935b1f19435f7f1b45de3345",
"body": null,
"is_bot": true,
"headline": "fix: increase E2E test timeout to 120s for retry headroom",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-05-03T19:45:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d8f2926e30f97562bdca17e346cc875f0de915d4",
"body": "* feat(http-proxy-agent): emit 'proxyConnect' event\n\nAdds `proxyConnect` event emission to `http-proxy-agent` for parity with\n`https-proxy-agent`. The event is emitted on both the request and the\nagent instance when the socket connects to the proxy server.\n\nThe event payload includes:\n- `socket`: Th\n[…]\n 4.6 <noreply@anthropic.com>\n\n* chore: add changeset for proxyConnect event\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(http-proxy-agent): emit 'proxyConnect' event (#390)",
"author_name": "Abhishek Chauhan",
"author_login": "abhu85",
"committed_at": "2026-05-03T19:43:52Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "671a3146f2bf9fb5f8f94ceddc2a3c0d31722685",
"body": "…(#419)\n\nThe E2E tests were flaky because they picked a single random NordVPN\nserver and made one attempt. If that server was slow or down, the test\nfailed. Now the proxy test retries up to 3 times, picking a different\nrandom server on each attempt.\n\nCo-authored-by: clutz-bot[bot] <261721731+clutz-bot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "fix: retry NordVPN E2E proxy tests with different servers on failure …",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-05-03T19:36:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0f40077ee34f0adcf576f84e771ea3265fe40747",
"body": "…418)\n\nRemove the unmaintained `basic-auth-parser` dependency and replace it\nwith a simple built-in parser. Removes a `require()` call and the\n`@ts-expect-error` suppression.\n\nCo-authored-by: clutz-bot[bot] <261721731+clutz-bot[bot]@users.noreply.github.com>\nCo-authored-by: jangolano <jangolano@users.noreply.github.com>",
"is_bot": true,
"headline": "fix(proxy): replace basic-auth-parser with built-in implementation (#…",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-05-03T19:25:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "31d7ef1507deec9072a869174486bb43a4aa3003",
"body": "Reject URLs longer than 4096 characters with HTTP 414 (URI Too Long)\nin both onrequest and onconnect handlers.\n\n\nFixes #380\n\nCo-authored-by: clutz-bot[bot] <261721731+clutz-bot[bot]@users.noreply.github.com>\nCo-authored-by: abhu85 <abhu85@users.noreply.github.com>",
"is_bot": true,
"headline": "fix(proxy): reject excessively long URLs to prevent DoS (#417)",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-05-03T19:17:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "417f6e9bda39979d2e5f79df6b53cf43f7ff0670",
"body": "* Bump basic-ftp from 5.2.0 to 5.3.0\n\nBumps [basic-ftp](https://github.com/patrickjuchli/basic-ftp) from 5.2.0 to 5.3.0.\n- [Release notes](https://github.com/patrickjuchli/basic-ftp/releases)\n- [Changelog](https://github.com/patrickjuchli/basic-ftp/blob/master/CHANGELOG.md)\n- [Commits](https://githu\n[…]\nsion 5.3.0.\n\n---------\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Nathan Rajlich <n@n8.io>",
"is_bot": true,
"headline": "Bump basic-ftp from 5.2.0 to 5.3.0 (#413)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-05-03T19:09:42Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "03d9ee9a5cfddfc4521b7000ea84207909762134",
"body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Version Packages (#410)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-04-06T06:40:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "16a7c8ab8514937e7da4caf877e63ed9bc0bf190",
"body": "* fix: update quickjs-wasi to v2.2.0 APIs\n\n* fix: remove invalid argument from QuickJS dispose() calls\n\nquickjs-wasi v2.2.0's dispose() takes no arguments. The previous\nboolean parameter was from an older API version.\n\n* chore: add changeset for quickjs-wasi v2.2.0 update\n\n---------\n\nCo-authored-by: clutz-bot[bot] <clutz-bot[bot]@users.noreply.github.com>",
"is_bot": false,
"headline": "fix: update quickjs-wasi to v2.2.0 APIs (#409)",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2026-04-06T06:38:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "af317e080c20d64fa76f93c741026ca7eaa9a31e",
"body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Version Packages (#397)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-04-01T06:57:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7ca27d0d47fd3feba17a61021d7bf07896433928",
"body": "…on (#408)\n\nCo-authored-by: Kevin Lentin <kevin.lentin@team.telstra.com>",
"is_bot": false,
"headline": "Simplify package.json exports to remove unnecessary imports restricti…",
"author_name": "Kevin Lentin",
"author_login": "KrayzeeKev",
"committed_at": "2026-04-01T06:50:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "605e32a7b9958276ee5facab17ee8ea96ff41ea2",
"body": "Pin the socksv5 github dependency from a branch reference to a specific\ncommit hash (d937368) to prevent potential supply chain attacks.\n\nFixes #387\n\nCo-authored-by: clutz-bot[bot] <clutz-bot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "fix: pin socksv5 devDependency to commit hash (#402)",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-03-15T05:50:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4e922b55afcbd4b45b3e667ffad1d18ca58d1dfe",
"body": "* chore: Upgrades basic-ftp to v5.2.0\n\n* Adds changeset\n\n---------\n\nCo-authored-by: Leonardo Stenico <leonardostenico@gmail.com>",
"is_bot": true,
"headline": "chore: Upgrade basic-ftp to v5.2.0 (#401)",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-03-15T05:39:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0e639d4b16f99093b9b7b37a92d9afd04ccac858",
"body": "- Fixes [DEP0169: Insecure `url.parse()`](https://nodejs.org/api/deprecations.html#DEP0169)\n\nSigned-off-by: Rafael Santos <rafael@risantos.com>\nCo-authored-by: Rafael Santos <rafael@risantos.com>",
"is_bot": true,
"headline": "chore: update `proxy-from-env` (#400)",
"author_name": "clutz-bot[bot]",
"author_login": "clutz-bot[bot]",
"committed_at": "2026-03-15T05:37:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ca1214831e101db331c974f1006592de97f5a59c",
"body": "…(#399)\n\n* fix(agent-base): use duck typing for agent detection in createSocket\n\nUse duck typing (checking for addRequest method) instead of strict\ninstanceof http.Agent check, consistent with Node.js core behavior.\n\nNode.js _http_client.js uses duck typing for options.agent - it only\nchecks typeof \n[…]\nunit test\n\n* fix(agent-base): resolve no-explicit-any lint warnings\n\n* style: format agent-base files with prettier\n\n---------\n\nCo-authored-by: clutz-bot[bot] <clutz-bot[bot]@users.noreply.github.com>",
"is_bot": false,
"headline": "fix(agent-base): use duck typing for agent detection in createSocket …",
"author_name": "CatCatYu",
"author_login": "fjh1997",
"committed_at": "2026-03-15T05:33:40Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b85186b0d23ee597f0e38757b36289fd3a9b08d2",
"body": null,
"is_bot": false,
"headline": "Update engines check to require >= 20",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2026-03-11T19:04:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7d12b51fab7ec6853091e247a6812ac0f6b9aeaa",
"body": "Closes #376",
"is_bot": false,
"headline": "Set minimum Node.js version to 20 and add Node 24.x to CI matrix",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2026-03-11T17:39:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8dcdac8ad2b8318948c4c9364d3b95acca74f355",
"body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Version Packages (#395)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-03-11T16:57:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d4a8cf4ba8bb328bc47e0812164415377beaa648",
"body": null,
"is_bot": false,
"headline": "Update pnpm/action-setup to v4 and use package_json_file for version",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2026-03-11T16:52:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3c8b3f79b2d52635e2626d8dafaca2fb2f8ab86d",
"body": "Closes #384",
"is_bot": false,
"headline": "Set up OIDC npm trusted publishing",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2026-03-11T16:48:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f60af8fc4efc1546e053bf0fcd6a7504ea232581",
"body": null,
"is_bot": false,
"headline": "Update changesets to v2.30.0",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2026-03-06T23:37:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b1509d851e75d7ba313985c4e772fd3290a7da4f",
"body": "* Replace @tootallnate/quickjs-emscripten with quickjs-wasi\n\nMigrate degenerator, pac-resolver, and pac-proxy-agent from\n@tootallnate/quickjs-emscripten to quickjs-wasi, a lighter-weight\nQuickJS WASM runtime built on quickjs-ng with WASI reactor mode.\n\nKey changes:\n- degenerator: compile() now takes\n[…]\n quickjs-wasi as peerDependency (type appears in public API)\n- pac-proxy-agent: store QuickJS instance, dispose previous VM when PAC is\n reloaded with new content, dispose unused VM when hash matches",
"is_bot": false,
"headline": "Replace `@tootallnate/quickjs-emscripten` with `quickjs-wasi` (#394)",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2026-03-06T23:27:56Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5d3f71a2d021ec07b2b9156c543423e47053218c",
"body": "Add a catalog to pnpm-workspace.yaml defining versions for 11\ncommonly repeated dependencies across the monorepo. Update all\npackage.json files to use catalog: references instead of inline\nversion strings.\n\nThis also normalizes several version mismatches:\n- typescript: ^5.0.4 / ^5.1.6 -> ^5.1.6\n- debug / @types/debug: bare '4' in https-proxy-agent -> ^4.3.4 / ^4.1.7\n- ws / @types/ws: ^5.2.4 / ^6.0.4 in agent-base -> ^8.13.0 / ^8.5.4\n- socksv5: npm 0.0.6 in pac-proxy-agent -> GitHub fork",
"is_bot": false,
"headline": "Use pnpm catalog: for shared dependencies",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2026-03-06T23:18:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "77da0681427860f4d29307b5b43a6b28529666af",
"body": "Replace semver ranges with workspace:* protocol for all 16\ndependencies between packages in this monorepo. This ensures\nlocal development always uses the workspace versions and pnpm\nwill substitute the correct version range at publish time.",
"is_bot": false,
"headline": "Use workspace:* for inter-repo dependencies",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2026-03-06T23:13:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f70a9dcad65fdeabf6e7ce0e71dfd2319b54deec",
"body": "- Drop Node.js 14.x and 16.x from CI matrix (pnpm 10 requires >= 18.12,\n vitest 4 / vite 7 requires >= 20)\n- Test on Node.js 20.x and 22.x instead\n- Move e2e test exclusion from global vitest config to per-package test\n scripts so that test-e2e commands still work\n- Fix get-uri file descriptor GC error by passing the FileHandle directly\n to createReadStream instead of extracting the raw fd",
"is_bot": false,
"headline": "Fix CI failures: update Node.js matrix and test configuration",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2026-03-06T23:08:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "08e62f7ba3b762a19f57aaf2f849b997813290cf",
"body": null,
"is_bot": false,
"headline": "Don't cache test results",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2026-03-06T22:36:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e30ec52abda549c2daab833b5ca0d0b419c307c9",
"body": "Use `new URL()` instead of `url.parse()` to eliminate the DEP0169\ndeprecation warning. Strip IPv6 bracket notation from hostname since\n`new URL()` preserves brackets (e.g. `[::]`) unlike `url.parse()`\nwhich returned bare addresses.",
"is_bot": false,
"headline": "Replace deprecated url.parse() with WHATWG URL API in proxy package",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2026-03-06T22:22:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "549af5e8780b16b75fe5a28b353f988edc270ef8",
"body": "- Regenerate get-uri SSL test cert (1024-bit -> 2048-bit) to fix\n 'ee key too small' error on modern OpenSSL\n- Fix get-uri file test to consume stream before reusing as cache\n to avoid file descriptor GC errors\n- Exclude e2e test files from default vitest runs\n- Polyfill util.isError for socksv5 test dependency which uses the\n removed Node.js API",
"is_bot": false,
"headline": "Fix pre-existing test issues exposed by vitest migration",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2026-03-06T22:14:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9c92c09649dba8002c24e6b80052c3630619c560",
"body": "BREAKING CHANGE: All packages now use `\"type\": \"module\"` and emit\nESM output instead of CommonJS. The tsconfig base has been updated\nto use `module: NodeNext` and `moduleResolution: NodeNext`.\n\nChanges include:\n- Add `\"type\": \"module\"` to all publishable package.json files\n- Replace `main`/`types` w\n[…]\nrts (required by NodeNext)\n- Fix CommonJS-specific code in proxy package (require -> createRequire)\n- Align get-uri tsconfig to extend shared base\n- Add changeset for semver major bump on all packages",
"is_bot": false,
"headline": "Convert all packages to ESM with type: module",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2026-03-06T22:06:55Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0b77ac72f0ed4964a012942453c99340119423c4",
"body": "Replace jest/ts-jest with vitest across all packages. Add vitest as a\nroot devDependency with globals enabled. Delete all jest.config.js files\nand add a root vitest.config.ts. Update test scripts in all packages.\n\nAlso update @types/node from ^14 to ^22 and fix resulting type errors\nin agent-base, data-uri-to-buffer, get-uri, and socks-proxy-agent.",
"is_bot": false,
"headline": "Migrate from Jest to Vitest",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2026-03-06T22:02:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3fea00044744520ddab64676fbf0512e42a13efc",
"body": "Update the packageManager field in root package.json and all\npnpm version references in CI workflows (test.yml, release.yml).\n\nAlso fix broken custom ftpd tarball URL in get-uri by switching\nto the standard npm registry version.",
"is_bot": false,
"headline": "Update pnpm from 7.32.2 to 10.30.3",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2026-03-06T21:51:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b923f5363875d8fd56477094d5ffc562840a4b76",
"body": null,
"is_bot": true,
"headline": "Version Packages (#381)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2025-07-07T17:43:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0e7dccc0348588bf7ff6c2db98d8cc8425cd6996",
"body": "Co-authored-by: brl1 <bert.ROSELL@3ds.com>\nCo-authored-by: Nathan Rajlich <n@n8.io>",
"is_bot": false,
"headline": "Need to close the handle when there is a cache hit (#372)",
"author_name": "Bert Rosell",
"author_login": "brosell",
"committed_at": "2025-07-07T17:39:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ed00d3016e85d2fc1f8d318f862b98d220b9c788",
"body": null,
"is_bot": false,
"headline": "Re-generate self-signed cert for tests",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2025-07-07T17:29:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a6fe3fd3b9f8690674fe279105a2ca109e7d6240",
"body": null,
"is_bot": false,
"headline": "Make options for `Agent.prototype.getName` optional (#378)",
"author_name": "Douglas Parker",
"author_login": "dgp1130",
"committed_at": "2025-07-07T16:32:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "536aaa5165b888c548cbfa8095801c05478605fe",
"body": null,
"is_bot": true,
"headline": "Version Packages (#364)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2025-02-18T19:37:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bc3ae7cd820f1972026224c2c67fe9192128dfee",
"body": null,
"is_bot": false,
"headline": "Fix formatting",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2025-02-18T19:33:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9d462b8bcf6113f3976ce02c7baa2de02dada90a",
"body": null,
"is_bot": false,
"headline": "[pac-proxy-agent] Expose `PacProxyAgent.getResolver()` publicly (#363)",
"author_name": "Alex Bakon",
"author_login": "akonradi-signal",
"committed_at": "2025-02-18T19:31:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3e691507813d237253b56e6750490ba5f2e8f119",
"body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Version Packages (#360)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2024-12-08T04:03:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "12bbc085ef537dd66c00d9e8b388deee254037d2",
"body": null,
"is_bot": false,
"headline": "Remove unused debug dependency (#359)",
"author_name": "Alex Parish",
"author_login": "alexparish",
"committed_at": "2024-12-08T02:37:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7cf0b795e05218d9e49047d5c93de77d2f606510",
"body": null,
"is_bot": true,
"headline": "Version Packages (#352)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2024-12-07T03:31:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "55e03bdcbdd6de7f21a687bef8a03ba6820be7ad",
"body": null,
"is_bot": false,
"headline": "Add CI engines check for prod deps (#357)",
"author_name": "Luke Karrys",
"author_login": "lukekarrys",
"committed_at": "2024-12-07T03:04:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "38760db4f872e7abbdc5bd8845ca501d3f43a5e4",
"body": null,
"is_bot": false,
"headline": "lazy load non-direct proxies within pac-proxy (#356)",
"author_name": "Luke Karrys",
"author_login": "lukekarrys",
"committed_at": "2024-12-06T22:44:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5fd25462f4f6f83de4b5c521fa12dfd45462dd91",
"body": null,
"is_bot": false,
"headline": "Run format check in CI (#355)",
"author_name": "Luke Karrys",
"author_login": "lukekarrys",
"committed_at": "2024-12-06T22:14:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "77c35997717aa3e1607bdeaca1b544dba4a1e8a6",
"body": "…ctor instead. (#348)\n\n\r\n---------\r\n\r\nCo-authored-by: George <minggeorgelei@163.com>\r\nCo-authored-by: George Lei <mlei@opentext.com>\r\nCo-authored-by: Luke Karrys <luke@lukekarrys.com>",
"is_bot": false,
"headline": "[pac-proxy-agent]: Since format method is deprecated, use URL constru…",
"author_name": "Ming-George-Lei",
"author_login": "Ming-George-Lei",
"committed_at": "2024-12-06T22:12:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "913a49af08cde419082706fe29ba2d0d68c4488b",
"body": "…ss (#354)",
"is_bot": false,
"headline": "Only overwrite servername in tls connect when host is not an IP addre…",
"author_name": "Luke Karrys",
"author_login": "lukekarrys",
"committed_at": "2024-12-06T22:12:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1699a09fb192f137c9931d6358bca74abcd6c52c",
"body": "`tls.createSecureContext()` can throw exceptions, so `.addRequest()`\r\ncan throw exceptions as well.",
"is_bot": false,
"headline": "Handle exceptions from agent addRequest() (#330)",
"author_name": "Anna Henningsen",
"author_login": "addaleax",
"committed_at": "2024-12-06T17:32:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "96b771ba482b85105a41812c287c3542a975e4be",
"body": "This allows more flexibility in the callback, e.g. for inspecting\r\nrequest headers before deciding on a given proxy.\r\n\r\n---------\r\n\r\nCo-authored-by: Anna Henningsen <anna@addaleax.net>",
"is_bot": false,
"headline": "Pass req to getProxyForUrl callback (#353)",
"author_name": "Luke Karrys",
"author_login": "lukekarrys",
"committed_at": "2024-12-06T17:18:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e90e2b21dae65a9896586df02fa68fec9e63d302",
"body": "This mirrors the check in the core `proxy-agent` package and\r\nserves the same purpose.",
"is_bot": false,
"headline": "Use WebSocket check in pac-proxy-agent (#329)",
"author_name": "Anna Henningsen",
"author_login": "addaleax",
"committed_at": "2024-12-06T16:54:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "85b10b395c65cf3ec52ba3ff2bfe4641a030501b",
"body": null,
"is_bot": false,
"headline": "[proxy-agent] Lazily load agents (#327)",
"author_name": "Anna Henningsen",
"author_login": "addaleax",
"committed_at": "2024-12-05T05:31:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ad68f6391aa2f240973e30df66d6008516508867",
"body": "Co-authored-by: Anna Henningsen <anna@addaleax.net>",
"is_bot": false,
"headline": "Destroy agent instances when disposed from cache (#350)",
"author_name": "Luke Karrys",
"author_login": "lukekarrys",
"committed_at": "2024-12-05T03:02:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a40e3ad498c1a16c686ec4d15fe926198148ea45",
"body": null,
"is_bot": true,
"headline": "Version Packages (#342)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2024-12-03T23:30:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7dc268174d90f1cd9810a210bb9563991b91d77c",
"body": null,
"is_bot": false,
"headline": "[get-uri] Remove `fs-extra` dependency (#341)",
"author_name": "Alex Parish",
"author_login": "alexparish",
"committed_at": "2024-10-22T21:45:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7d4bd262041e38bc7110bc04857e64f6965e3278",
"body": null,
"is_bot": false,
"headline": "[get-uri] Update 'st' from v1 to v3 (#336)",
"author_name": "Max Schmitt",
"author_login": "mxschmitt",
"committed_at": "2024-10-21T21:14:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5555794b6d9e4b0a36fac80a2d3acea876a8f7dc",
"body": null,
"is_bot": true,
"headline": "Version Packages (#311)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2024-06-28T07:28:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b991ffe3221fb2f4fbc9abbcdf09bb68767907ae",
"body": null,
"is_bot": true,
"headline": "Bump ws from 3.3.3 to 5.2.4 (#320)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2024-06-28T07:25:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fdeed27fea0a892ccdf35c4daf5f959f6ff5a211",
"body": "…package (#322)\n\nCo-authored-by: Ricardo Lopes <ricardo.lopes@appliedblockchain.com>",
"is_bot": false,
"headline": "Bump socks and pac-resolver versions to mitigate vulnerability in IP …",
"author_name": "Hervé Commowick",
"author_login": "vr",
"committed_at": "2024-06-28T07:22:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0fd02c5e0cc601b1ba9b52a2e838d776bed6e0e0",
"body": null,
"is_bot": false,
"headline": "Don't test Node v14 on macOS (#323)",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2024-06-28T07:21:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "70023c12abe0d014004af6309ff7d0fdbaa60875",
"body": null,
"is_bot": false,
"headline": "Add SOCKS auth tests",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2024-04-06T06:54:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5908e84db988a3ab7316fec848b7cd00b64ec94e",
"body": "Fixes #308.",
"is_bot": false,
"headline": "Remove `net.isIP()` check for TLS `servername` (#312)",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2024-04-06T06:07:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "28104d2121ae7f3e2318e3aa6015c5a8a93e4957",
"body": "Closes #260.",
"is_bot": false,
"headline": "Add bin for proxy CLI (#305)",
"author_name": "Luke Karrys",
"author_login": "lukekarrys",
"committed_at": "2024-04-06T05:55:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "010fdc304a18931d2a1da7767e71303e7ce05abd",
"body": null,
"is_bot": false,
"headline": "Fix e2e (#303)",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2024-03-30T08:43:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1429c7e80cb9b2b00c426387db1ec24f7fb50e8e",
"body": null,
"is_bot": true,
"headline": "Version Packages (#301)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2024-03-30T01:31:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ada656deb9db01afb3b4d51a3a8ef3fc645ee5fc",
"body": "Co-authored-by: Nathan Rajlich <n@n8.io>",
"is_bot": false,
"headline": "[socks-proxy-agent] pass socket_options to SocksClient (#302)",
"author_name": "Luke Karrys",
"author_login": "lukekarrys",
"committed_at": "2024-03-30T01:19:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e62863c3459987c3e2ad3dbb555d413d875dac5b",
"body": "… used (#300)\n\n* Synchronously update internal sockets length so http.Agent pooling is used\r\n\r\nFixes #299\r\n\r\n* Fix some comments\r\n\r\n* Use fewer ts-expect-error comments\r\n\r\n* Implement getName method to get both http/https names\r\n\r\n* Fix linting\r\n\r\n* Create seven-colts-flash.md\r\n\r\n* Make getName() public and add tests for it\r\n\r\n* Add test for keepAlive+maxSockets when using https",
"is_bot": false,
"headline": "Synchronously update internal sockets length so http.Agent pooling is…",
"author_name": "Luke Karrys",
"author_login": "lukekarrys",
"committed_at": "2024-03-30T00:21:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b5f94e3222c0aaa3bc56218ff125e2c56417c86e",
"body": null,
"is_bot": true,
"headline": "Version Packages (#290)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2024-02-15T19:13:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b88ab4654950899a4fb1fc47ac5cdef1d78ccb64",
"body": null,
"is_bot": false,
"headline": "fix: `URL` imports for Node 14 (#289)",
"author_name": "Daniel Bankhead",
"author_login": "danielbankhead",
"committed_at": "2024-02-15T19:02:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d8a4fba1db1ecb423e29f14af93782e1433e85f4",
"body": "The following updates are performed:\r\n* update actions/checkout to v4\r\n* update actions/setup-node to v4\r\n* update pnpm/action-setup to v3",
"is_bot": false,
"headline": "chore: update actions in GitHub Actions workflows (#283)",
"author_name": "Dirk Stolle",
"author_login": "striezel",
"committed_at": "2024-02-13T00:06:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d494f891ba74b7c5274ccf71d0e05e94f2824cbc",
"body": null,
"is_bot": false,
"headline": "chore: fix some typos (#282)",
"author_name": "Dirk Stolle",
"author_login": "striezel",
"committed_at": "2024-02-13T00:02:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d4d3cd09184813d1dbe3612af8b3919957abf145",
"body": null,
"is_bot": true,
"headline": "Version Packages (#271)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2024-02-12T18:23:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a954da3800cd6de4166e2c904f08954d00f016fa",
"body": null,
"is_bot": false,
"headline": "[pac-resolver] Remove `ip` dependency (#281)",
"author_name": "Viktor U",
"author_login": "viktor-urbanas-qatalog",
"committed_at": "2024-02-12T18:14:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e7e0e56d1f260c80a2c3660b6a015b38f83e0b7e",
"body": "This allows users to use an asynchronous getProxyForUrl in case they need\r\nto do asynchronous operations to resolve the correct proxy URL. This can\r\nbe the case, for example, if using Electron.Session.resolveProxy(url).",
"is_bot": false,
"headline": "[proxy-agent] Allow asynchronous `getProxyForUrl` (#275)",
"author_name": "Mark Yen",
"author_login": "mook-as",
"committed_at": "2024-02-12T18:11:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c854e4c9235f9d0ab93e57114e59a1b2f5fba4b4",
"body": null,
"is_bot": false,
"headline": "[get-uri] Update `fs-extra` to v11 (#279)",
"author_name": "Mehul Kar",
"author_login": "mehulkar",
"committed_at": "2024-02-12T17:50:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c881a1804197b89580320b87082971c3c6a61746",
"body": "* Make decoding of base64 data URIs faster\r\n\r\nI saw in https://github.com/microsoft/vscode-js-debug/issues/1911 that\r\nbase64 decoding of a data URI was taking a bit of time.\r\n\r\nThis PR feature-detects the presence of a global `Buffer` to use native\r\ndecoding when running in Node.js, which is about 2\n[…]\n:)\r\n\r\n* use conditional exports\r\n\r\n* fix test import\r\n\r\n* fix node test import, and set stringToBuffer encoding\r\n\r\n* Create few-adults-rhyme.md\r\n\r\n---------\r\n\r\nCo-authored-by: Nathan Rajlich <n@n8.io>",
"is_bot": false,
"headline": "Use native decoding of base64 in Node.js (#269)",
"author_name": "Connor Peet",
"author_login": "connor4312",
"committed_at": "2024-01-08T17:56:50Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c3c405ee03748af5d3a863bec00c13e5a1b75051",
"body": null,
"is_bot": false,
"headline": "fix: URL types were missing (#268)",
"author_name": "Dimitri DO BAIRRO",
"author_login": "rimiti",
"committed_at": "2024-01-08T17:55:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b133295fd16f6475578b6b15bd9b4e33ecb0d0b7",
"body": null,
"is_bot": true,
"headline": "Version Packages (#255)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2023-09-30T14:49:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1d146e878f1b7f8393a3ee424c55e2cb586aeea9",
"body": "… (#254)",
"is_bot": false,
"headline": "Ensure `<reference types=\"node\" />` is not present in generated types…",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2023-09-30T14:46:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b149ecc84107aa23e616cb01c43dbfdedd5359a8",
"body": null,
"is_bot": true,
"headline": "Version Packages (#253)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2023-09-30T14:28:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "52b458f7892b6b877d5a0aac8cf7d063440e0011",
"body": "… Node.js `Buffer` (#252)\n\nBreaking change refactor to return an `ArrayBuffer` instead of a Node.js `Buffer`.\r\n\r\nThis change is being made to make the package platform-agnostic, and work in web browsers or other non-Node.js environments without polyfills.\r\n\r\nFor Node.js users of this package, you ca\n[…]\n `ArrayBuffer` like so:\r\n\r\n```typescript\r\nconst uri = 'data:,Hello%2C%20World!';\r\nconst parsed = dataUriToBuffer(uri);\r\nconst buffer = Buffer.from(parsed.buffer);\r\n// `buffer` is a Node.js Buffer\r\n```",
"is_bot": false,
"headline": "[data-uri-to-buffer] Refactor to return an `ArrayBuffer` instead of a…",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2023-09-30T14:26:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "aaebfa4c3664aa1e8538fc450e2ad48d65e613f5",
"body": null,
"is_bot": false,
"headline": "Prettier",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2023-09-30T14:09:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5923589c2e5206504772c250ac4f20fc31122d3b",
"body": null,
"is_bot": false,
"headline": "Moved licenses to separate files (#251)",
"author_name": "tschlechtweg",
"author_login": null,
"committed_at": "2023-09-22T13:46:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "43a96899673e041d4e31bf6a83e6ee05a8f77e9e",
"body": null,
"is_bot": false,
"headline": "Fix lint and tweak eslint error message",
"author_name": "Nathan Rajlich",
"author_login": "TooTallNate",
"committed_at": "2023-09-08T07:57:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "523b74c7d2ebfe9442f3e812b449f291c7706780",
"body": null,
"is_bot": false,
"headline": "Restrict use of global URL in certain packages (#246)",
"author_name": "Luke Karrys",
"author_login": "lukekarrys",
"committed_at": "2023-09-08T07:27:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dd3b98f0f0bf1da83a58c3330415805568b297f6",
"body": null,
"is_bot": true,
"headline": "Version Packages (#238)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2023-09-04T08:08:42Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 100,
"commits_last_year": 47,
"latest_release_at": "2026-06-08T16:48:02Z",
"latest_release_tag": "get-uri@8.0.1",
"releases_from_tags": false,
"days_since_last_push": 9,
"active_weeks_last_year": 6,
"days_since_latest_release": 43,
"mean_days_between_releases": 7
},
"community": {
"has_readme": true,
"has_license": false,
"has_description": true,
"has_contributing": false,
"health_percentage": 28,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "proxy",
"exists": true,
"license": "MIT",
"keywords": [
"http",
"https",
"proxy",
"connect",
"tunnel",
"squid",
"privoxy",
"apache",
"mod_proxy",
"via",
"x-forwarded-for"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/proxy",
"is_deprecated": false,
"latest_version": "4.1.0",
"repository_url": "https://github.com/TooTallNate/proxy-agents",
"versions_count": 18,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 1966184,
"first_published_at": "2013-09-08T02:23:50.128000Z",
"latest_published_at": "2026-06-08T16:47:16.801000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 43
},
{
"name": "get-uri",
"exists": true,
"license": "MIT",
"keywords": [
"uri",
"read",
"readstream",
"stream",
"get",
"http",
"https",
"ftp",
"file",
"data",
"protocol",
"url"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/get-uri",
"is_deprecated": false,
"latest_version": "8.0.1",
"repository_url": "https://github.com/TooTallNate/proxy-agents",
"versions_count": 26,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 111096886,
"first_published_at": "2014-01-12T22:48:32.824000Z",
"latest_published_at": "2026-06-08T16:47:20.580000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 43
},
{
"name": "proxy-agent-negotiate",
"exists": true,
"license": "MIT",
"keywords": [
"proxy",
"negotiate",
"kerberos",
"spnego",
"authentication"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/proxy-agent-negotiate",
"is_deprecated": false,
"latest_version": "1.1.0",
"repository_url": "https://github.com/TooTallNate/proxy-agents",
"versions_count": 2,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 8389247,
"first_published_at": "2026-06-08T16:42:37.881000Z",
"latest_published_at": "2026-06-08T16:47:13.126000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 43
},
{
"name": "agent-base",
"exists": true,
"license": "MIT",
"keywords": [
"http",
"agent",
"base",
"barebones",
"https"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/agent-base",
"is_deprecated": false,
"latest_version": "9.0.0",
"repository_url": "https://github.com/TooTallNate/proxy-agents",
"versions_count": 33,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 1011258370,
"first_published_at": "2013-07-09T20:14:39.860000Z",
"latest_published_at": "2026-04-01T06:57:34.221000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 112
},
{
"name": "degenerator",
"exists": true,
"license": "MIT",
"keywords": [],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/degenerator",
"is_deprecated": false,
"latest_version": "7.0.1",
"repository_url": "https://github.com/TooTallNate/proxy-agents",
"versions_count": 31,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 108193855,
"first_published_at": "2013-12-06T23:47:58.716000Z",
"latest_published_at": "2026-04-06T06:41:04.741000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 107
},
{
"name": "proxy-agent",
"exists": true,
"license": "MIT",
"keywords": [
"http",
"https",
"socks",
"agent",
"mapping",
"proxy"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/proxy-agent",
"is_deprecated": false,
"latest_version": "8.0.2",
"repository_url": "https://github.com/TooTallNate/proxy-agents",
"versions_count": 33,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 115192566,
"first_published_at": "2013-11-21T01:02:52.160000Z",
"latest_published_at": "2026-06-08T16:47:38.809000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 43
},
{
"name": "pac-resolver",
"exists": true,
"license": "MIT",
"keywords": [
"pac",
"file",
"proxy",
"resolve",
"dns"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/pac-resolver",
"is_deprecated": false,
"latest_version": "9.0.1",
"repository_url": "https://github.com/TooTallNate/proxy-agents",
"versions_count": 28,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 113293787,
"first_published_at": "2013-12-09T21:44:42.130000Z",
"latest_published_at": "2026-04-06T06:41:07.822000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 107
},
{
"name": "pac-proxy-agent",
"exists": true,
"license": "MIT",
"keywords": [
"pac",
"proxy",
"agent",
"http",
"https",
"socks",
"request",
"access"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/pac-proxy-agent",
"is_deprecated": false,
"latest_version": "9.1.0",
"repository_url": "https://github.com/TooTallNate/proxy-agents",
"versions_count": 30,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 115867099,
"first_published_at": "2014-01-13T06:20:21.850000Z",
"latest_published_at": "2026-06-08T16:47:35.283000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 43
}
]
},
"popularity": {
"forks": 279,
"stars": 1149,
"watchers": 18,
"fork_history": {
"days": [
{
"date": "2013-11-18",
"count": 1
},
{
"date": "2014-01-13",
"count": 1
},
{
"date": "2014-02-14",
"count": 1
},
{
"date": "2015-05-21",
"count": 1
},
{
"date": "2015-08-26",
"count": 1
},
{
"date": "2015-12-14",
"count": 2
},
{
"date": "2016-03-01",
"count": 1
},
{
"date": "2016-03-07",
"count": 1
},
{
"date": "2016-04-28",
"count": 1
},
{
"date": "2016-06-24",
"count": 1
},
{
"date": "2016-08-03",
"count": 1
},
{
"date": "2016-09-22",
"count": 1
},
{
"date": "2016-09-25",
"count": 1
},
{
"date": "2016-11-06",
"count": 1
},
{
"date": "2016-11-13",
"count": 1
},
{
"date": "2016-12-01",
"count": 1
},
{
"date": "2016-12-11",
"count": 1
},
{
"date": "2017-02-06",
"count": 1
},
{
"date": "2017-07-20",
"count": 1
},
{
"date": "2017-10-23",
"count": 1
},
{
"date": "2017-11-02",
"count": 1
},
{
"date": "2017-11-06",
"count": 1
},
{
"date": "2017-11-11",
"count": 1
},
{
"date": "2017-11-14",
"count": 1
},
{
"date": "2017-12-12",
"count": 1
},
{
"date": "2018-01-04",
"count": 1
},
{
"date": "2018-01-07",
"count": 1
},
{
"date": "2018-01-29",
"count": 1
},
{
"date": "2018-03-28",
"count": 2
},
{
"date": "2018-04-03",
"count": 1
},
{
"date": "2018-04-26",
"count": 1
},
{
"date": "2018-05-14",
"count": 1
},
{
"date": "2018-07-06",
"count": 1
},
{
"date": "2018-07-07",
"count": 1
},
{
"date": "2018-07-12",
"count": 1
},
{
"date": "2018-07-22",
"count": 1
},
{
"date": "2018-09-24",
"count": 1
},
{
"date": "2018-10-09",
"count": 1
},
{
"date": "2018-10-19",
"count": 1
},
{
"date": "2018-11-02",
"count": 1
},
{
"date": "2018-12-23",
"count": 1
},
{
"date": "2018-12-27",
"count": 1
},
{
"date": "2019-01-06",
"count": 1
},
{
"date": "2019-02-08",
"count": 1
},
{
"date": "2019-03-22",
"count": 1
},
{
"date": "2019-04-10",
"count": 1
},
{
"date": "2019-05-21",
"count": 1
},
{
"date": "2019-07-14",
"count": 1
},
{
"date": "2019-07-16",
"count": 1
},
{
"date": "2019-07-23",
"count": 1
},
{
"date": "2019-07-26",
"count": 1
},
{
"date": "2019-09-05",
"count": 1
},
{
"date": "2019-09-24",
"count": 1
},
{
"date": "2019-09-29",
"count": 1
},
{
"date": "2019-10-18",
"count": 1
},
{
"date": "2019-10-21",
"count": 1
},
{
"date": "2019-11-20",
"count": 1
},
{
"date": "2019-11-26",
"count": 1
},
{
"date": "2019-12-16",
"count": 1
},
{
"date": "2019-12-28",
"count": 1
},
{
"date": "2020-01-26",
"count": 1
},
{
"date": "2020-02-07",
"count": 1
},
{
"date": "2020-03-10",
"count": 1
},
{
"date": "2020-04-27",
"count": 1
},
{
"date": "2020-05-13",
"count": 2
},
{
"date": "2020-05-20",
"count": 1
},
{
"date": "2020-05-22",
"count": 1
},
{
"date": "2020-05-24",
"count": 1
},
{
"date": "2020-06-03",
"count": 2
},
{
"date": "2020-07-01",
"count": 1
},
{
"date": "2020-07-29",
"count": 1
},
{
"date": "2020-09-01",
"count": 2
},
{
"date": "2020-09-10",
"count": 1
},
{
"date": "2020-09-15",
"count": 1
},
{
"date": "2020-09-23",
"count": 1
},
{
"date": "2020-11-10",
"count": 1
},
{
"date": "2021-02-12",
"count": 2
},
{
"date": "2021-03-19",
"count": 1
},
{
"date": "2021-03-31",
"count": 1
},
{
"date": "2021-04-04",
"count": 1
},
{
"date": "2021-04-13",
"count": 1
},
{
"date": "2021-04-15",
"count": 1
},
{
"date": "2021-05-20",
"count": 1
},
{
"date": "2021-05-26",
"count": 1
},
{
"date": "2021-06-14",
"count": 1
},
{
"date": "2021-06-29",
"count": 1
},
{
"date": "2021-07-10",
"count": 1
},
{
"date": "2021-08-04",
"count": 1
},
{
"date": "2021-08-08",
"count": 1
},
{
"date": "2021-08-10",
"count": 1
},
{
"date": "2021-08-15",
"count": 1
},
{
"date": "2021-09-15",
"count": 1
},
{
"date": "2021-10-04",
"count": 1
},
{
"date": "2021-10-07",
"count": 1
},
{
"date": "2021-11-13",
"count": 1
},
{
"date": "2021-11-15",
"count": 1
},
{
"date": "2021-11-22",
"count": 1
},
{
"date": "2021-11-25",
"count": 1
},
{
"date": "2021-12-10",
"count": 1
},
{
"date": "2022-01-27",
"count": 1
},
{
"date": "2022-01-31",
"count": 1
},
{
"date": "2022-03-07",
"count": 1
},
{
"date": "2022-03-10",
"count": 1
},
{
"date": "2022-03-22",
"count": 1
},
{
"date": "2022-03-24",
"count": 1
},
{
"date": "2022-03-29",
"count": 1
},
{
"date": "2022-03-30",
"count": 1
},
{
"date": "2022-04-08",
"count": 1
},
{
"date": "2022-04-20",
"count": 1
},
{
"date": "2022-05-04",
"count": 1
},
{
"date": "2022-05-14",
"count": 1
},
{
"date": "2022-06-08",
"count": 1
},
{
"date": "2022-07-07",
"count": 1
},
{
"date": "2022-08-04",
"count": 1
},
{
"date": "2022-08-11",
"count": 1
},
{
"date": "2022-09-08",
"count": 2
},
{
"date": "2022-09-30",
"count": 1
},
{
"date": "2022-11-01",
"count": 1
},
{
"date": "2022-11-07",
"count": 1
},
{
"date": "2022-11-11",
"count": 1
},
{
"date": "2023-01-23",
"count": 1
},
{
"date": "2023-02-01",
"count": 1
},
{
"date": "2023-03-09",
"count": 2
},
{
"date": "2023-03-31",
"count": 1
},
{
"date": "2023-04-21",
"count": 1
},
{
"date": "2023-04-28",
"count": 1
},
{
"date": "2023-05-07",
"count": 2
},
{
"date": "2023-05-12",
"count": 3
},
{
"date": "2023-05-19",
"count": 2
},
{
"date": "2023-05-22",
"count": 1
},
{
"date": "2023-06-07",
"count": 1
},
{
"date": "2023-06-09",
"count": 3
},
{
"date": "2023-06-13",
"count": 1
},
{
"date": "2023-06-15",
"count": 1
},
{
"date": "2023-06-20",
"count": 1
},
{
"date": "2023-06-27",
"count": 1
},
{
"date": "2023-06-30",
"count": 2
},
{
"date": "2023-07-17",
"count": 1
},
{
"date": "2023-07-23",
"count": 1
},
{
"date": "2023-08-05",
"count": 1
},
{
"date": "2023-08-10",
"count": 1
},
{
"date": "2023-08-15",
"count": 1
},
{
"date": "2023-08-21",
"count": 1
},
{
"date": "2023-08-29",
"count": 1
},
{
"date": "2023-08-30",
"count": 1
},
{
"date": "2023-10-14",
"count": 1
},
{
"date": "2023-10-26",
"count": 1
},
{
"date": "2023-10-28",
"count": 1
},
{
"date": "2023-11-16",
"count": 1
},
{
"date": "2023-11-25",
"count": 1
},
{
"date": "2023-11-28",
"count": 1
},
{
"date": "2023-12-04",
"count": 1
},
{
"date": "2023-12-07",
"count": 1
},
{
"date": "2023-12-17",
"count": 1
},
{
"date": "2024-01-04",
"count": 2
},
{
"date": "2024-01-05",
"count": 1
},
{
"date": "2024-01-08",
"count": 1
},
{
"date": "2024-01-12",
"count": 1
},
{
"date": "2024-01-22",
"count": 1
},
{
"date": "2024-01-23",
"count": 1
},
{
"date": "2024-01-24",
"count": 1
},
{
"date": "2024-02-01",
"count": 2
},
{
"date": "2024-02-07",
"count": 1
},
{
"date": "2024-02-09",
"count": 1
},
{
"date": "2024-02-14",
"count": 1
},
{
"date": "2024-02-15",
"count": 2
},
{
"date": "2024-02-19",
"count": 1
},
{
"date": "2024-02-21",
"count": 1
},
{
"date": "2024-02-26",
"count": 1
},
{
"date": "2024-03-11",
"count": 1
},
{
"date": "2024-03-21",
"count": 1
},
{
"date": "2024-03-25",
"count": 1
},
{
"date": "2024-03-31",
"count": 1
},
{
"date": "2024-04-07",
"count": 1
},
{
"date": "2024-04-12",
"count": 1
},
{
"date": "2024-04-26",
"count": 1
},
{
"date": "2024-05-06",
"count": 1
},
{
"date": "2024-05-10",
"count": 1
},
{
"date": "2024-05-14",
"count": 1
},
{
"date": "2024-05-22",
"count": 1
},
{
"date": "2024-05-23",
"count": 1
},
{
"date": "2024-06-16",
"count": 1
},
{
"date": "2024-06-17",
"count": 1
},
{
"date": "2024-06-26",
"count": 1
},
{
"date": "2024-07-15",
"count": 1
},
{
"date": "2024-07-21",
"count": 3
},
{
"date": "2024-07-30",
"count": 1
},
{
"date": "2024-08-04",
"count": 1
},
{
"date": "2024-08-07",
"count": 2
},
{
"date": "2024-08-16",
"count": 1
},
{
"date": "2024-08-26",
"count": 1
},
{
"date": "2024-10-01",
"count": 1
},
{
"date": "2024-10-07",
"count": 1
},
{
"date": "2024-10-13",
"count": 1
},
{
"date": "2024-11-06",
"count": 1
},
{
"date": "2024-11-07",
"count": 1
},
{
"date": "2024-11-21",
"count": 2
},
{
"date": "2024-11-23",
"count": 1
},
{
"date": "2024-12-06",
"count": 1
},
{
"date": "2024-12-09",
"count": 1
},
{
"date": "2025-02-18",
"count": 1
},
{
"date": "2025-02-24",
"count": 1
},
{
"date": "2025-04-02",
"count": 1
},
{
"date": "2025-04-17",
"count": 1
},
{
"date": "2025-04-22",
"count": 2
},
{
"date": "2025-04-28",
"count": 1
},
{
"date": "2025-05-09",
"count": 1
},
{
"date": "2025-05-14",
"count": 1
},
{
"date": "2025-05-20",
"count": 1
},
{
"date": "2025-06-02",
"count": 1
},
{
"date": "2025-06-26",
"count": 1
},
{
"date": "2025-06-30",
"count": 3
},
{
"date": "2025-07-07",
"count": 1
},
{
"date": "2025-07-28",
"count": 2
},
{
"date": "2025-09-05",
"count": 1
},
{
"date": "2025-09-11",
"count": 1
},
{
"date": "2025-10-02",
"count": 1
},
{
"date": "2025-10-16",
"count": 1
},
{
"date": "2025-11-06",
"count": 1
},
{
"date": "2025-11-22",
"count": 1
},
{
"date": "2025-12-07",
"count": 1
},
{
"date": "2026-01-08",
"count": 1
},
{
"date": "2026-01-10",
"count": 1
},
{
"date": "2026-01-30",
"count": 1
},
{
"date": "2026-02-12",
"count": 1
},
{
"date": "2026-02-18",
"count": 1
},
{
"date": "2026-02-20",
"count": 1
},
{
"date": "2026-02-23",
"count": 1
},
{
"date": "2026-03-02",
"count": 2
},
{
"date": "2026-03-03",
"count": 1
},
{
"date": "2026-03-13",
"count": 1
},
{
"date": "2026-03-14",
"count": 1
},
{
"date": "2026-03-19",
"count": 1
},
{
"date": "2026-04-20",
"count": 1
},
{
"date": "2026-05-06",
"count": 1
},
{
"date": "2026-06-16",
"count": 1
},
{
"date": "2026-07-06",
"count": 1
},
{
"date": "2026-07-22",
"count": 1
}
],
"complete": true,
"collected": 265,
"total_forks": 279
},
"star_history": null,
"open_issues_and_prs": 20
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"packages/agent-base/test/tsconfig.json",
"packages/agent-base/tsconfig.json",
"packages/data-uri-to-buffer/test/tsconfig.json",
"packages/data-uri-to-buffer/tsconfig.json",
"packages/degenerator/test/tsconfig.json",
"packages/degenerator/tsconfig.json",
"packages/get-uri/test/tsconfig.json",
"packages/get-uri/tsconfig.json",
"packages/http-proxy-agent/test/tsconfig.json",
"packages/http-proxy-agent/tsconfig.json",
"packages/https-proxy-agent/test/tsconfig.json",
"packages/https-proxy-agent/tsconfig.json",
"packages/negotiate/tsconfig.json",
"packages/pac-proxy-agent/test/tsconfig.json",
"packages/pac-proxy-agent/tsconfig.json",
"packages/pac-resolver/test/tsconfig.json",
"packages/pac-resolver/tsconfig.json",
"packages/proxy-agent/test/tsconfig.json",
"packages/proxy-agent/tsconfig.json",
"packages/proxy/test/tsconfig.json",
"packages/proxy/tsconfig.json",
"packages/socks-proxy-agent/test/tsconfig.json",
"packages/socks-proxy-agent/tsconfig.json"
],
"toolchain_manifests": [],
"largest_source_bytes": 17005,
"source_files_sampled": 95,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"package.json"
],
"advisories": {
"error": null,
"scope": "published_package",
"source": "osv",
"findings": [],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 13,
"malicious_count": 0,
"assessed_package": "npm:proxy@4.1.0",
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "ast-types",
"manifest": "packages/degenerator/package.json",
"ecosystem": "npm",
"version_constraint": "^0.13.4"
},
{
"name": "escodegen",
"manifest": "packages/degenerator/package.json",
"ecosystem": "npm",
"version_constraint": "^2.1.0"
},
{
"name": "esprima",
"manifest": "packages/degenerator/package.json",
"ecosystem": "npm",
"version_constraint": "^4.0.1"
},
{
"name": "basic-ftp",
"manifest": "packages/get-uri/package.json",
"ecosystem": "npm",
"version_constraint": "^5.3.1"
},
{
"name": "data-uri-to-buffer",
"manifest": "packages/get-uri/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "debug",
"manifest": "packages/get-uri/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "agent-base",
"manifest": "packages/http-proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "debug",
"manifest": "packages/http-proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "proxy-agent-negotiate",
"manifest": "packages/http-proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "agent-base",
"manifest": "packages/https-proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "debug",
"manifest": "packages/https-proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "proxy-agent-negotiate",
"manifest": "packages/https-proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "agent-base",
"manifest": "packages/pac-proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "debug",
"manifest": "packages/pac-proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "get-uri",
"manifest": "packages/pac-proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "http-proxy-agent",
"manifest": "packages/pac-proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "https-proxy-agent",
"manifest": "packages/pac-proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "pac-resolver",
"manifest": "packages/pac-proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "quickjs-wasi",
"manifest": "packages/pac-proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "socks-proxy-agent",
"manifest": "packages/pac-proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "degenerator",
"manifest": "packages/pac-resolver/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "netmask",
"manifest": "packages/pac-resolver/package.json",
"ecosystem": "npm",
"version_constraint": "^2.0.2"
},
{
"name": "agent-base",
"manifest": "packages/proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "debug",
"manifest": "packages/proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "http-proxy-agent",
"manifest": "packages/proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "https-proxy-agent",
"manifest": "packages/proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "lru-cache",
"manifest": "packages/proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "^7.14.1"
},
{
"name": "pac-proxy-agent",
"manifest": "packages/proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "proxy-from-env",
"manifest": "packages/proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "^2.0.0"
},
{
"name": "socks-proxy-agent",
"manifest": "packages/proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "args",
"manifest": "packages/proxy/package.json",
"ecosystem": "npm",
"version_constraint": "^5.0.3"
},
{
"name": "debug",
"manifest": "packages/proxy/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "agent-base",
"manifest": "packages/socks-proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "debug",
"manifest": "packages/socks-proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "socks",
"manifest": "packages/socks-proxy-agent/package.json",
"ecosystem": "npm",
"version_constraint": "^2.8.3"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "args",
"direct": true,
"version": "5.0.3",
"ecosystem": "npm"
},
{
"name": "args",
"direct": true,
"version": "^5.0.3",
"ecosystem": "npm"
},
{
"name": "ast-types",
"direct": true,
"version": "0.13.4",
"ecosystem": "npm"
},
{
"name": "ast-types",
"direct": true,
"version": "^0.13.4",
"ecosystem": "npm"
},
{
"name": "basic-ftp",
"direct": true,
"version": "5.3.1",
"ecosystem": "npm"
},
{
"name": "basic-ftp",
"direct": true,
"version": "^5.3.1",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": true,
"version": "4.4.3",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": true,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "escodegen",
"direct": true,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "escodegen",
"direct": true,
"version": "^2.1.0",
"ecosystem": "npm"
},
{
"name": "esprima",
"direct": true,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "esprima",
"direct": true,
"version": "^4.0.1",
"ecosystem": "npm"
},
{
"name": "lru-cache",
"direct": true,
"version": "11.2.6",
"ecosystem": "npm"
},
{
"name": "lru-cache",
"direct": true,
"version": "7.18.3",
"ecosystem": "npm"
},
{
"name": "lru-cache",
"direct": true,
"version": "^7.14.1",
"ecosystem": "npm"
},
{
"name": "netmask",
"direct": true,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "netmask",
"direct": true,
"version": "^2.0.2",
"ecosystem": "npm"
},
{
"name": "proxy-from-env",
"direct": true,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "proxy-from-env",
"direct": true,
"version": "^2.0.0",
"ecosystem": "npm"
},
{
"name": "quickjs-wasi",
"direct": true,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "quickjs-wasi",
"direct": true,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "socks",
"direct": true,
"version": "2.8.7",
"ecosystem": "npm"
},
{
"name": "socks",
"direct": true,
"version": "^2.8.3",
"ecosystem": "npm"
},
{
"name": "@babel/code-frame",
"direct": false,
"version": "7.12.11",
"ecosystem": "npm"
},
{
"name": "@babel/helper-validator-identifier",
"direct": false,
"version": "7.28.5",
"ecosystem": "npm"
},
{
"name": "@babel/highlight",
"direct": false,
"version": "7.25.9",
"ecosystem": "npm"
},
{
"name": "@babel/runtime",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@changesets/apply-release-plan",
"direct": false,
"version": "7.1.0",
"ecosystem": "npm"
},
{
"name": "@changesets/assemble-release-plan",
"direct": false,
"version": "6.0.9",
"ecosystem": "npm"
},
{
"name": "@changesets/changelog-git",
"direct": false,
"version": "0.2.1",
"ecosystem": "npm"
},
{
"name": "@changesets/cli",
"direct": false,
"version": "2.30.0",
"ecosystem": "npm"
},
{
"name": "@changesets/config",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "@changesets/errors",
"direct": false,
"version": "0.2.0",
"ecosystem": "npm"
},
{
"name": "@changesets/get-dependents-graph",
"direct": false,
"version": "2.1.3",
"ecosystem": "npm"
},
{
"name": "@changesets/get-release-plan",
"direct": false,
"version": "4.0.15",
"ecosystem": "npm"
},
{
"name": "@changesets/get-version-range-type",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "@changesets/git",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "@changesets/logger",
"direct": false,
"version": "0.1.1",
"ecosystem": "npm"
},
{
"name": "@changesets/parse",
"direct": false,
"version": "0.4.3",
"ecosystem": "npm"
},
{
"name": "@changesets/pre",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "@changesets/read",
"direct": false,
"version": "0.6.7",
"ecosystem": "npm"
},
{
"name": "@changesets/should-skip-package",
"direct": false,
"version": "0.1.2",
"ecosystem": "npm"
},
{
"name": "@changesets/types",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "@changesets/types",
"direct": false,
"version": "6.1.0",
"ecosystem": "npm"
},
{
"name": "@changesets/write",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "@esbuild/aix-ppc64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/android-arm",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/android-arm64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/android-x64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/darwin-arm64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/darwin-x64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/freebsd-arm64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/freebsd-x64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-arm",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-arm64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-ia32",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-loong64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-mips64el",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-ppc64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-riscv64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-s390x",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-x64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/netbsd-arm64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/netbsd-x64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/openbsd-arm64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/openbsd-x64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/openharmony-arm64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/sunos-x64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/win32-arm64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/win32-ia32",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/win32-x64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@eslint-community/eslint-utils",
"direct": false,
"version": "4.9.1",
"ecosystem": "npm"
},
{
"name": "@eslint-community/regexpp",
"direct": false,
"version": "4.12.2",
"ecosystem": "npm"
},
{
"name": "@eslint/eslintrc",
"direct": false,
"version": "0.4.3",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/config-array",
"direct": false,
"version": "0.5.0",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/object-schema",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "@inquirer/external-editor",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@jridgewell/sourcemap-codec",
"direct": false,
"version": "1.5.5",
"ecosystem": "npm"
},
{
"name": "@manypkg/find-root",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "@manypkg/get-packages",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "@nodelib/fs.scandir",
"direct": false,
"version": "2.1.5",
"ecosystem": "npm"
},
{
"name": "@nodelib/fs.stat",
"direct": false,
"version": "2.0.5",
"ecosystem": "npm"
},
{
"name": "@nodelib/fs.walk",
"direct": false,
"version": "1.2.8",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-android-arm-eabi",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-android-arm64",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-darwin-arm64",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-darwin-x64",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-freebsd-arm64",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-freebsd-x64",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-arm-gnueabihf",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-arm-musleabihf",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-arm64-gnu",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-arm64-musl",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-loong64-gnu",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-loong64-musl",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-ppc64-gnu",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-ppc64-musl",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-riscv64-gnu",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-riscv64-musl",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-s390x-gnu",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-x64-gnu",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-x64-musl",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-openbsd-x64",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-openharmony-arm64",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-win32-arm64-msvc",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-win32-ia32-msvc",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-win32-x64-gnu",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-win32-x64-msvc",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "@standard-schema/spec",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "@turbo/darwin-64",
"direct": false,
"version": "2.9.14",
"ecosystem": "npm"
},
{
"name": "@turbo/darwin-arm64",
"direct": false,
"version": "2.9.14",
"ecosystem": "npm"
},
{
"name": "@turbo/linux-64",
"direct": false,
"version": "2.9.14",
"ecosystem": "npm"
},
{
"name": "@turbo/linux-arm64",
"direct": false,
"version": "2.9.14",
"ecosystem": "npm"
},
{
"name": "@turbo/windows-64",
"direct": false,
"version": "2.9.14",
"ecosystem": "npm"
},
{
"name": "@turbo/windows-arm64",
"direct": false,
"version": "2.9.14",
"ecosystem": "npm"
},
{
"name": "@types/agent-base",
"direct": false,
"version": "4.2.5",
"ecosystem": "npm"
},
{
"name": "@types/agent-base",
"direct": false,
"version": "^4.2.0",
"ecosystem": "npm"
},
{
"name": "@types/args",
"direct": false,
"version": "5.0.4",
"ecosystem": "npm"
},
{
"name": "@types/args",
"direct": false,
"version": "^5.0.0",
"ecosystem": "npm"
},
{
"name": "@types/async-retry",
"direct": false,
"version": "1.4.9",
"ecosystem": "npm"
},
{
"name": "@types/async-retry",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "@types/chai",
"direct": false,
"version": "5.2.3",
"ecosystem": "npm"
},
{
"name": "@types/debug",
"direct": false,
"version": "4.1.12",
"ecosystem": "npm"
},
{
"name": "@types/debug",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "@types/deep-eql",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "@types/dns2",
"direct": false,
"version": "2.0.10",
"ecosystem": "npm"
},
{
"name": "@types/dns2",
"direct": false,
"version": "^2.0.3",
"ecosystem": "npm"
},
{
"name": "@types/escodegen",
"direct": false,
"version": "0.0.7",
"ecosystem": "npm"
},
{
"name": "@types/escodegen",
"direct": false,
"version": "^0.0.7",
"ecosystem": "npm"
},
{
"name": "@types/esprima",
"direct": false,
"version": "4.0.6",
"ecosystem": "npm"
},
{
"name": "@types/esprima",
"direct": false,
"version": "^4.0.3",
"ecosystem": "npm"
},
{
"name": "@types/estree",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "@types/estree",
"direct": false,
"version": "1.0.9",
"ecosystem": "npm"
},
{
"name": "@types/ftpd",
"direct": false,
"version": "0.2.40",
"ecosystem": "npm"
},
{
"name": "@types/ftpd",
"direct": false,
"version": "^0.2.35",
"ecosystem": "npm"
},
{
"name": "@types/json-schema",
"direct": false,
"version": "7.0.15",
"ecosystem": "npm"
},
{
"name": "@types/ms",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "@types/netmask",
"direct": false,
"version": "1.0.30",
"ecosystem": "npm"
},
{
"name": "@types/netmask",
"direct": false,
"version": "^1.0.30",
"ecosystem": "npm"
},
{
"name": "@types/node",
"direct": false,
"version": "12.20.55",
"ecosystem": "npm"
},
{
"name": "@types/node",
"direct": false,
"version": "22.19.15",
"ecosystem": "npm"
},
{
"name": "@types/node",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "@types/proxy-from-env",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "@types/proxy-from-env",
"direct": false,
"version": "^1.0.1",
"ecosystem": "npm"
},
{
"name": "@types/readable-stream",
"direct": false,
"version": "4.0.23",
"ecosystem": "npm"
},
{
"name": "@types/retry",
"direct": false,
"version": "0.12.5",
"ecosystem": "npm"
},
{
"name": "@types/semver",
"direct": false,
"version": "7.7.1",
"ecosystem": "npm"
},
{
"name": "@types/semver",
"direct": false,
"version": "^7.3.13",
"ecosystem": "npm"
},
{
"name": "@types/ws",
"direct": false,
"version": "8.18.1",
"ecosystem": "npm"
},
{
"name": "@types/ws",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/eslint-plugin",
"direct": false,
"version": "5.62.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/parser",
"direct": false,
"version": "5.62.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/scope-manager",
"direct": false,
"version": "5.62.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/type-utils",
"direct": false,
"version": "5.62.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/types",
"direct": false,
"version": "5.62.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/typescript-estree",
"direct": false,
"version": "5.62.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/utils",
"direct": false,
"version": "5.62.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/visitor-keys",
"direct": false,
"version": "5.62.0",
"ecosystem": "npm"
},
{
"name": "@vitest/expect",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "@vitest/mocker",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "@vitest/pretty-format",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "@vitest/runner",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "@vitest/snapshot",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "@vitest/spy",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "@vitest/utils",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "abort-controller",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "acorn",
"direct": false,
"version": "7.4.1",
"ecosystem": "npm"
},
{
"name": "acorn-jsx",
"direct": false,
"version": "5.3.2",
"ecosystem": "npm"
},
{
"name": "ajv",
"direct": false,
"version": "6.14.0",
"ecosystem": "npm"
},
{
"name": "ajv",
"direct": false,
"version": "8.18.0",
"ecosystem": "npm"
},
{
"name": "ansi-colors",
"direct": false,
"version": "4.1.3",
"ecosystem": "npm"
},
{
"name": "ansi-regex",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "ansi-styles",
"direct": false,
"version": "3.2.1",
"ecosystem": "npm"
},
{
"name": "ansi-styles",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "argparse",
"direct": false,
"version": "1.0.10",
"ecosystem": "npm"
},
{
"name": "argparse",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "array-union",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "assertion-error",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "astral-regex",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "async-listen",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "async-listen",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "async-retry",
"direct": false,
"version": "1.3.3",
"ecosystem": "npm"
},
{
"name": "async-retry",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "balanced-match",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "base64-js",
"direct": false,
"version": "1.5.1",
"ecosystem": "npm"
},
{
"name": "better-path-resolve",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "bl",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "bl",
"direct": false,
"version": "6.1.6",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "1.1.12",
"ecosystem": "npm"
},
{
"name": "braces",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "buffer",
"direct": false,
"version": "5.7.1",
"ecosystem": "npm"
},
{
"name": "buffer",
"direct": false,
"version": "6.0.3",
"ecosystem": "npm"
},
{
"name": "cacheable-lookup",
"direct": false,
"version": "6.1.0",
"ecosystem": "npm"
},
{
"name": "cacheable-lookup",
"direct": false,
"version": "^6.1.0",
"ecosystem": "npm"
},
{
"name": "callsites",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "camelcase",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "chai",
"direct": false,
"version": "6.2.2",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": false,
"version": "2.4.2",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "chardet",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "chownr",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "color-convert",
"direct": false,
"version": "1.9.3",
"ecosystem": "npm"
},
{
"name": "color-convert",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "color-name",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "color-name",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "concat-map",
"direct": false,
"version": "0.0.1",
"ecosystem": "npm"
},
{
"name": "convert-source-map",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "cross-spawn",
"direct": false,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "dateformat",
"direct": false,
"version": "1.0.7-1.2.3",
"ecosystem": "npm"
},
{
"name": "decompress-response",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "deep-extend",
"direct": false,
"version": "0.6.0",
"ecosystem": "npm"
},
{
"name": "deep-is",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "detect-indent",
"direct": false,
"version": "6.1.0",
"ecosystem": "npm"
},
{
"name": "detect-libc",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "dir-glob",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "dns2",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "dns2",
"direct": false,
"version": "^2.1.0",
"ecosystem": "npm"
},
{
"name": "doctrine",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "emoji-regex",
"direct": false,
"version": "8.0.0",
"ecosystem": "npm"
},
{
"name": "end-of-stream",
"direct": false,
"version": "1.4.5",
"ecosystem": "npm"
},
{
"name": "enquirer",
"direct": false,
"version": "2.4.1",
"ecosystem": "npm"
},
{
"name": "es-module-lexer",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "esbuild",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "escape-string-regexp",
"direct": false,
"version": "1.0.5",
"ecosystem": "npm"
},
{
"name": "escape-string-regexp",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "eslint",
"direct": false,
"version": "7.32.0",
"ecosystem": "npm"
},
{
"name": "eslint-config-prettier",
"direct": false,
"version": "8.10.2",
"ecosystem": "npm"
},
{
"name": "eslint-scope",
"direct": false,
"version": "5.1.1",
"ecosystem": "npm"
},
{
"name": "eslint-utils",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "eslint-visitor-keys",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "eslint-visitor-keys",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "eslint-visitor-keys",
"direct": false,
"version": "3.4.3",
"ecosystem": "npm"
},
{
"name": "espree",
"direct": false,
"version": "7.3.1",
"ecosystem": "npm"
},
{
"name": "esquery",
"direct": false,
"version": "1.7.0",
"ecosystem": "npm"
},
{
"name": "esrecurse",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "estraverse",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "estraverse",
"direct": false,
"version": "5.3.0",
"ecosystem": "npm"
},
{
"name": "estree-walker",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "esutils",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "event-target-shim",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "events",
"direct": false,
"version": "3.3.0",
"ecosystem": "npm"
},
{
"name": "expand-template",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "expect-type",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "extendable-error",
"direct": false,
"version": "0.1.7",
"ecosystem": "npm"
},
{
"name": "fast-deep-equal",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "fast-glob",
"direct": false,
"version": "3.3.3",
"ecosystem": "npm"
},
{
"name": "fast-json-stable-stringify",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "fast-levenshtein",
"direct": false,
"version": "2.0.6",
"ecosystem": "npm"
},
{
"name": "fast-uri",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "fastq",
"direct": false,
"version": "1.20.1",
"ecosystem": "npm"
},
{
"name": "fd",
"direct": false,
"version": "0.0.3",
"ecosystem": "npm"
},
{
"name": "fdir",
"direct": false,
"version": "6.5.0",
"ecosystem": "npm"
},
{
"name": "file-entry-cache",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "fill-range",
"direct": false,
"version": "7.1.1",
"ecosystem": "npm"
},
{
"name": "find-up",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "flat-cache",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "flatted",
"direct": false,
"version": "3.3.4",
"ecosystem": "npm"
},
{
"name": "fs-constants",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "fs-extra",
"direct": false,
"version": "7.0.1",
"ecosystem": "npm"
},
{
"name": "fs-extra",
"direct": false,
"version": "8.1.0",
"ecosystem": "npm"
},
{
"name": "fs.realpath",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "fsevents",
"direct": false,
"version": "2.3.3",
"ecosystem": "npm"
},
{
"name": "ftpd",
"direct": false,
"version": "0.2.16",
"ecosystem": "npm"
},
{
"name": "ftpd",
"direct": false,
"version": "^0.2.14",
"ecosystem": "npm"
},
{
"name": "functional-red-black-tree",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "github-from-package",
"direct": false,
"version": "0.0.0",
"ecosystem": "npm"
},
{
"name": "glob",
"direct": false,
"version": "7.2.3",
"ecosystem": "npm"
},
{
"name": "glob-parent",
"direct": false,
"version": "5.1.2",
"ecosystem": "npm"
},
{
"name": "globals",
"direct": false,
"version": "13.24.0",
"ecosystem": "npm"
},
{
"name": "globby",
"direct": false,
"version": "11.1.0",
"ecosystem": "npm"
},
{
"name": "graceful-fs",
"direct": false,
"version": "4.2.11",
"ecosystem": "npm"
},
{
"name": "graphemer",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "has-flag",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "has-flag",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "human-id",
"direct": false,
"version": "4.1.3",
"ecosystem": "npm"
},
{
"name": "iconv-lite",
"direct": false,
"version": "0.7.2",
"ecosystem": "npm"
},
{
"name": "ieee754",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "ignore",
"direct": false,
"version": "4.0.6",
"ecosystem": "npm"
},
{
"name": "ignore",
"direct": false,
"version": "5.3.2",
"ecosystem": "npm"
},
{
"name": "import-fresh",
"direct": false,
"version": "3.3.1",
"ecosystem": "npm"
},
{
"name": "imurmurhash",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "inflight",
"direct": false,
"version": "1.0.6",
"ecosystem": "npm"
},
{
"name": "inherits",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "ini",
"direct": false,
"version": "1.3.8",
"ecosystem": "npm"
},
{
"name": "ip-address",
"direct": false,
"version": "10.1.0",
"ecosystem": "npm"
},
{
"name": "is-extglob",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "is-fullwidth-code-point",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "is-glob",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "is-number",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "is-subdir",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "is-windows",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "isexe",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "js-tokens",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "js-yaml",
"direct": false,
"version": "3.14.2",
"ecosystem": "npm"
},
{
"name": "js-yaml",
"direct": false,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "json-buffer",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "json-schema-traverse",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "json-schema-traverse",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "json-stable-stringify-without-jsonify",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "jsonfile",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "kerberos",
"direct": false,
"version": "2.2.2",
"ecosystem": "npm"
},
{
"name": "keyv",
"direct": false,
"version": "4.5.4",
"ecosystem": "npm"
},
{
"name": "leven",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "levn",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "locate-path",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "lodash.merge",
"direct": false,
"version": "4.6.2",
"ecosystem": "npm"
},
{
"name": "lodash.startcase",
"direct": false,
"version": "4.4.0",
"ecosystem": "npm"
},
{
"name": "lodash.truncate",
"direct": false,
"version": "4.4.2",
"ecosystem": "npm"
},
{
"name": "magic-string",
"direct": false,
"version": "0.30.21",
"ecosystem": "npm"
},
{
"name": "merge2",
"direct": false,
"version": "1.4.1",
"ecosystem": "npm"
},
{
"name": "micromatch",
"direct": false,
"version": "4.0.8",
"ecosystem": "npm"
},
{
"name": "mime",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "mimic-response",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "3.1.5",
"ecosystem": "npm"
},
{
"name": "minimist",
"direct": false,
"version": "1.2.8",
"ecosystem": "npm"
},
{
"name": "mkdirp-classic",
"direct": false,
"version": "0.5.3",
"ecosystem": "npm"
},
{
"name": "mri",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "mri",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "ms",
"direct": false,
"version": "2.1.3",
"ecosystem": "npm"
},
{
"name": "nanoid",
"direct": false,
"version": "3.3.12",
"ecosystem": "npm"
},
{
"name": "napi-build-utils",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "natural-compare",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "natural-compare-lite",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "negotiator",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "node-abi",
"direct": false,
"version": "3.90.0",
"ecosystem": "npm"
},
{
"name": "node-addon-api",
"direct": false,
"version": "6.1.0",
"ecosystem": "npm"
},
{
"name": "obug",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "once",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "optionator",
"direct": false,
"version": "0.9.4",
"ecosystem": "npm"
},
{
"name": "outdent",
"direct": false,
"version": "0.5.0",
"ecosystem": "npm"
},
{
"name": "p-filter",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "p-limit",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "p-locate",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "p-map",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "p-try",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "package-manager-detector",
"direct": false,
"version": "0.2.11",
"ecosystem": "npm"
},
{
"name": "parent-module",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "path-exists",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "path-is-absolute",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "path-key",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "path-type",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "pathe",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "picocolors",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "picomatch",
"direct": false,
"version": "2.3.2",
"ecosystem": "npm"
},
{
"name": "picomatch",
"direct": false,
"version": "4.0.4",
"ecosystem": "npm"
},
{
"name": "pify",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "postcss",
"direct": false,
"version": "8.5.15",
"ecosystem": "npm"
},
{
"name": "prebuild-install",
"direct": false,
"version": "7.1.3",
"ecosystem": "npm"
},
{
"name": "prelude-ls",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "prettier",
"direct": false,
"version": "2.8.8",
"ecosystem": "npm"
},
{
"name": "process",
"direct": false,
"version": "0.11.10",
"ecosystem": "npm"
},
{
"name": "progress",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "pump",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "punycode",
"direct": false,
"version": "2.3.1",
"ecosystem": "npm"
},
{
"name": "quansync",
"direct": false,
"version": "0.2.11",
"ecosystem": "npm"
},
{
"name": "queue-microtask",
"direct": false,
"version": "1.2.3",
"ecosystem": "npm"
},
{
"name": "rc",
"direct": false,
"version": "1.2.8",
"ecosystem": "npm"
},
{
"name": "read-yaml-file",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "readable-stream",
"direct": false,
"version": "3.6.2",
"ecosystem": "npm"
},
{
"name": "readable-stream",
"direct": false,
"version": "4.7.0",
"ecosystem": "npm"
},
{
"name": "regexpp",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "require-from-string",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "resolve-from",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "resolve-from",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "retry",
"direct": false,
"version": "0.13.1",
"ecosystem": "npm"
},
{
"name": "reusify",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "rimraf",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "rollup",
"direct": false,
"version": "4.61.0",
"ecosystem": "npm"
},
{
"name": "run-parallel",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "safe-buffer",
"direct": false,
"version": "5.2.1",
"ecosystem": "npm"
},
{
"name": "safer-buffer",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "7.7.4",
"ecosystem": "npm"
},
{
"name": "shebang-command",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "shebang-regex",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "siginfo",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "signal-exit",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "simple-concat",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "simple-get",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "slash",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "slice-ansi",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "smart-buffer",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "socksv5",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "socksv5",
"direct": false,
"version": "https://codeload.github.com/TooTallNate/socksv5/tar.gz/d937368b28e929396166d77a06d387a4a902bd51",
"ecosystem": "npm"
},
{
"name": "source-map",
"direct": false,
"version": "0.6.1",
"ecosystem": "npm"
},
{
"name": "source-map-js",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "spawndamnit",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "sprintf-js",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "st",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "st",
"direct": false,
"version": "^3.0.0",
"ecosystem": "npm"
},
{
"name": "stackback",
"direct": false,
"version": "0.0.2",
"ecosystem": "npm"
},
{
"name": "stat-mode",
"direct": false,
"version": "0.2.2",
"ecosystem": "npm"
},
{
"name": "std-env",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "string-width",
"direct": false,
"version": "4.2.3",
"ecosystem": "npm"
},
{
"name": "string_decoder",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "strip-ansi",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "strip-bom",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "strip-json-comments",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "strip-json-comments",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "supports-color",
"direct": false,
"version": "5.5.0",
"ecosystem": "npm"
},
{
"name": "supports-color",
"direct": false,
"version": "7.2.0",
"ecosystem": "npm"
},
{
"name": "table",
"direct": false,
"version": "6.9.0",
"ecosystem": "npm"
},
{
"name": "tar-fs",
"direct": false,
"version": "2.1.4",
"ecosystem": "npm"
},
{
"name": "tar-stream",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "term-size",
"direct": false,
"version": "2.2.1",
"ecosystem": "npm"
},
{
"name": "text-table",
"direct": false,
"version": "0.2.0",
"ecosystem": "npm"
},
{
"name": "tinybench",
"direct": false,
"version": "2.9.0",
"ecosystem": "npm"
},
{
"name": "tinyexec",
"direct": false,
"version": "1.2.4",
"ecosystem": "npm"
},
{
"name": "tinyglobby",
"direct": false,
"version": "0.2.17",
"ecosystem": "npm"
},
{
"name": "tinyrainbow",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "to-regex-range",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "tslib",
"direct": false,
"version": "1.14.1",
"ecosystem": "npm"
},
{
"name": "tslib",
"direct": false,
"version": "2.8.1",
"ecosystem": "npm"
},
{
"name": "tsutils",
"direct": false,
"version": "3.21.0",
"ecosystem": "npm"
},
{
"name": "tunnel-agent",
"direct": false,
"version": "0.6.0",
"ecosystem": "npm"
},
{
"name": "turbo",
"direct": false,
"version": "2.9.14",
"ecosystem": "npm"
},
{
"name": "type-check",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "0.20.2",
"ecosystem": "npm"
},
{
"name": "typescript",
"direct": false,
"version": "5.9.3",
"ecosystem": "npm"
},
{
"name": "typescript",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "undici-types",
"direct": false,
"version": "6.21.0",
"ecosystem": "npm"
},
{
"name": "universalify",
"direct": false,
"version": "0.1.2",
"ecosystem": "npm"
},
{
"name": "uri-js",
"direct": false,
"version": "4.4.1",
"ecosystem": "npm"
},
{
"name": "util-deprecate",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "v8-compile-cache",
"direct": false,
"version": "2.4.0",
"ecosystem": "npm"
},
{
"name": "vite",
"direct": false,
"version": "7.3.1",
"ecosystem": "npm"
},
{
"name": "vitest",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "which",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "why-is-node-running",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "word-wrap",
"direct": false,
"version": "1.2.5",
"ecosystem": "npm"
},
{
"name": "wrappy",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "ws",
"direct": false,
"version": "8.21.0",
"ecosystem": "npm"
},
{
"name": "ws",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
}
],
"collected": true,
"truncated": false,
"total_count": 432,
"direct_count": 23,
"indirect_count": 409
}
},
"maintainership": {
"issues": {
"open_prs": 9,
"merged_prs": 145,
"open_issues": 11,
"closed_ratio": 0.943,
"closed_issues": 182,
"closed_unmerged_prs": 75
},
"bus_factor": 1,
"bot_contributors": 3,
"top_contributors": [
{
"type": "User",
"login": "TooTallNate",
"commits": 224,
"avatar_url": "https://avatars.githubusercontent.com/u/71256?v=4"
},
{
"type": "User",
"login": "lukekarrys",
"commits": 10,
"avatar_url": "https://avatars.githubusercontent.com/u/542108?v=4"
},
{
"type": "User",
"login": "lpinca",
"commits": 7,
"avatar_url": "https://avatars.githubusercontent.com/u/1443911?v=4"
},
{
"type": "User",
"login": "addaleax",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/899444?v=4"
},
{
"type": "User",
"login": "jportner",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/5295965?v=4"
},
{
"type": "User",
"login": "sadasant",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/417016?v=4"
},
{
"type": "User",
"login": "mceIdo",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/58237675?v=4"
},
{
"type": "User",
"login": "Krinkle",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/156867?v=4"
},
{
"type": "User",
"login": "striezel",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/20865852?v=4"
},
{
"type": "User",
"login": "alexparish",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/135674?v=4"
}
],
"contributors_sampled": 42,
"top_contributor_share": 0.775
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"release.yml",
"test.yml"
],
"has_docs_dir": false,
"linter_configs": [
".eslintrc.js"
],
"has_editorconfig": true,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"pnpm-lock.yaml"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 3,
"reason": "branch protection is not maximal on development and all release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 7,
"reason": "18 out of 25 merged PRs checked by a CI test -- score normalized to 7",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 0/6 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 14 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 10,
"reason": "update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 0,
"reason": "license file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "23 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "17 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "4813885d3f4e2ff837878ceffdba656a71dc31f0",
"ran_at": "2026-07-22T16:35:44Z",
"aggregate_score": 4.2,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-12T21:27:48Z",
"oldest_open_prs": [
{
"number": 259,
"created_at": "2023-11-18T00:44:22Z",
"last_comment_at": "2023-11-18T00:44:26Z",
"last_comment_author": "vercel"
},
{
"number": 306,
"created_at": "2024-03-31T20:00:36Z",
"last_comment_at": "2024-03-31T21:07:30Z",
"last_comment_author": "erickythierry"
},
{
"number": 328,
"created_at": "2024-08-07T19:38:40Z",
"last_comment_at": "2024-08-07T19:38:45Z",
"last_comment_author": "vercel"
},
{
"number": 347,
"created_at": "2024-11-23T11:14:30Z",
"last_comment_at": "2024-11-23T11:15:56Z",
"last_comment_author": "crutch12"
},
{
"number": 367,
"created_at": "2025-03-02T13:18:20Z",
"last_comment_at": "2026-07-10T10:16:11Z",
"last_comment_author": "jarroyorodriguez-dashlane"
},
{
"number": 371,
"created_at": "2025-04-22T17:32:43Z",
"last_comment_at": "2026-02-18T09:11:36Z",
"last_comment_author": "vercel"
},
{
"number": 383,
"created_at": "2025-07-28T13:45:05Z",
"last_comment_at": "2025-07-28T13:45:10Z",
"last_comment_author": "vercel"
},
{
"number": 438,
"created_at": "2026-07-06T16:04:02Z",
"last_comment_at": "2026-07-06T16:04:10Z",
"last_comment_author": "changeset-bot"
},
{
"number": 439,
"created_at": "2026-07-22T15:41:51Z",
"last_comment_at": "2026-07-22T15:41:56Z",
"last_comment_author": "changeset-bot"
}
],
"last_merged_pr_at": "2026-07-12T21:26:09Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 243,
"created_at": "2023-08-29T20:57:42Z",
"last_comment_at": "2024-05-01T16:37:20Z",
"last_comment_author": "lukekarrys"
},
{
"number": 256,
"created_at": "2023-10-06T18:44:00Z",
"last_comment_at": "2024-12-12T20:24:35Z",
"last_comment_author": "timursevimli"
},
{
"number": 314,
"created_at": "2024-05-19T11:42:57Z",
"last_comment_at": "2024-11-23T11:15:26Z",
"last_comment_author": "crutch12"
},
{
"number": 333,
"created_at": "2024-08-27T21:38:33Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 340,
"created_at": "2024-10-02T15:42:28Z",
"last_comment_at": "2025-10-22T08:46:30Z",
"last_comment_author": "Agritite"
},
{
"number": 365,
"created_at": "2025-02-21T01:05:48Z",
"last_comment_at": "2025-02-23T15:25:03Z",
"last_comment_author": "warjiang"
},
{
"number": 374,
"created_at": "2025-05-15T15:11:11Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 379,
"created_at": "2025-06-30T18:20:19Z",
"last_comment_at": "2025-08-21T13:04:47Z",
"last_comment_author": "kapouer"
},
{
"number": 382,
"created_at": "2025-07-09T11:37:02Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 427,
"created_at": "2026-05-22T15:10:18Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 437,
"created_at": "2026-06-24T06:30:08Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/TooTallNate/proxy-agents",
"host": "github.com",
"name": "proxy-agents",
"owner": "TooTallNate"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 69,
"inputs": {
"security": 54,
"vitality": 75,
"community": 65,
"governance": 67,
"engineering": 80
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 75,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 58,
"inputs": {
"commits_last_year": 47,
"human_commit_share": 0.59,
"days_since_last_push": 9,
"active_weeks_last_year": 6
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 9 days ago",
"points": 28.8,
"status": "partial",
"details": [
{
"code": "push_recency",
"params": {
"days": 9
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "6/52 weeks with commits",
"points": 4.2,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 6
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "47 commits in the last year",
"points": 15.1,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 47
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "23 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 100,
"inputs": {
"releases_count": 100,
"latest_release_tag": "get-uri@8.0.1",
"releases_from_tags": false,
"days_since_latest_release": 43,
"mean_days_between_releases": 7
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "100 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 100
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 43 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 43
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~7 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 7
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 79,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 79 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 79
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "moderate",
"name": "Community & Adoption",
"value": 65,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "good",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 77,
"inputs": {
"forks": 279,
"stars": 1149,
"watchers": 18,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "1,149 stars",
"points": 49.6,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 1149
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "279 forks",
"points": 20.4,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 279
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "18 watchers",
"points": 6.8,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 18
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "critical",
"name": "Community health",
"note": null,
"notes": [],
"value": 25,
"inputs": {
"has_readme": true,
"has_license": false,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "no license file detected",
"points": 0,
"status": "missed",
"details": [
{
"code": "license_absent",
"params": {}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "excellent",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 100,
"inputs": {
"packages": [
"proxy",
"get-uri",
"proxy-agent-negotiate",
"agent-base",
"degenerator",
"proxy-agent",
"pac-resolver",
"pac-proxy-agent"
],
"dependents": null,
"ecosystems": "npm",
"total_downloads": null,
"monthly_downloads": 1585257994
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "1,585,257,994 downloads/month across npm",
"points": 80,
"status": "met",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 1585257994,
"ecosystems": "npm"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 67,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "at_risk",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 38,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 42,
"top_contributor_share": 0.775
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 78% of commits",
"points": 5.1,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 78
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "42 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 42
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 14 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "moderate",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 69,
"inputs": {
"merged_prs": 145,
"open_issues": 11,
"closed_issues": 182,
"issue_closed_ratio": 0.943,
"closed_unmerged_prs": 75
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "94% of issues closed",
"points": 44.1,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 94
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "145/220 decided PRs merged",
"points": 25.2,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 145,
"decided": 220
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/6 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "good",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 75,
"inputs": {
"followers": 6565,
"owner_type": "User",
"is_verified": null,
"owner_login": "TooTallNate",
"public_repos": 409,
"account_age_days": 6315
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "6,565 followers of TooTallNate",
"points": 25,
"status": "met",
"details": [
{
"code": "owner_followers",
"params": {
"count": 6565,
"login": "TooTallNate"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "409 public repos, account ~17 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 409
}
},
{
"code": "account_age_years",
"params": {
"years": 17
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"proxy",
"get-uri",
"proxy-agent-negotiate",
"agent-base",
"degenerator",
"proxy-agent",
"pac-resolver",
"pac-proxy-agent"
],
"ecosystems": "npm",
"any_deprecated": false,
"min_days_since_publish": 43
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "8 package(s) on npm",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 8,
"ecosystems": "npm"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 43 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 43
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "33 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 33
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 80,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "good",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 84,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": true,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "2 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 2
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": ".eslintrc.js",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".eslintrc.js"
}
}
],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 6.4,
"status": "met",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "18 out of 25 merged PRs checked by a CI test -- score normalized to 7",
"points": 14,
"status": "partial",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "good",
"name": "Documentation",
"note": null,
"notes": [],
"value": 75,
"inputs": {
"topics": [
"http",
"https",
"nodejs",
"pac",
"proxy",
"socks",
"agent"
],
"has_wiki": true,
"homepage": "https://proxy-agents.n8.io",
"has_readme": true,
"has_docs_dir": false,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://proxy-agents.n8.io",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "7 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 7
}
}
],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "moderate",
"name": "Security",
"value": 54,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"packaging",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 42,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 16,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 2,
"scorecard_aggregate": 4.2
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection is not maximal on development and all release branches",
"points": 2.2,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "18 out of 25 merged PRs checked by a CI test -- score normalized to 7",
"points": 1.8,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/6 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 14 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "update tool detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "23 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "17 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "excellent",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:proxy@4.1.0 runtime dependency closure — what installing the published package pulls in — 13 packages. Reachability is not analyzed.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"no_advisories_left_outstanding"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_published",
"params": {
"package": "npm:proxy@4.1.0",
"assessed": 13
}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 100,
"inputs": {
"source": "osv",
"advisories": 0,
"affected_packages": 0,
"assessed_packages": 13,
"unassessed_packages": 0,
"affected_by_severity": "none",
"direct_affected_packages": 0
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "no direct dependency carries a known advisory",
"points": 35,
"status": "met",
"details": [
{
"code": "no_direct_advisories",
"params": {}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "no indirect dependency carries a known advisory",
"points": 25,
"status": "met",
"details": [
{
"code": "no_indirect_advisories",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "no advisory carries a publication date",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_no_publication_date",
"params": {}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "excellent",
"name": "Malicious dependencies",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"source": "osv",
"meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
"packages": [],
"red_flag": false,
"assessed_packages": 13,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 21
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "moderate",
"name": "AI Readiness",
"value": 62,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "at_risk",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.763,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "no CLAUDE.md / AGENTS.md / editor rules",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_instructions",
"params": {}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "45 of 59 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 45,
"sampled": 59
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 64,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"pnpm-lock.yaml"
],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [
"packages/agent-base/test/tsconfig.json",
"packages/agent-base/tsconfig.json",
"packages/data-uri-to-buffer/test/tsconfig.json",
"packages/data-uri-to-buffer/tsconfig.json",
"packages/degenerator/test/tsconfig.json",
"packages/degenerator/tsconfig.json",
"packages/get-uri/test/tsconfig.json",
"packages/get-uri/tsconfig.json",
"packages/http-proxy-agent/test/tsconfig.json",
"packages/http-proxy-agent/tsconfig.json",
"packages/https-proxy-agent/test/tsconfig.json",
"packages/https-proxy-agent/tsconfig.json",
"packages/negotiate/tsconfig.json",
"packages/pac-proxy-agent/test/tsconfig.json",
"packages/pac-proxy-agent/tsconfig.json",
"packages/pac-resolver/test/tsconfig.json",
"packages/pac-resolver/tsconfig.json",
"packages/proxy-agent/test/tsconfig.json",
"packages/proxy-agent/tsconfig.json",
"packages/proxy/test/tsconfig.json",
"packages/proxy/tsconfig.json",
"packages/socks-proxy-agent/test/tsconfig.json",
"packages/socks-proxy-agent/tsconfig.json"
],
"agent_commit_share": 0.01,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0.06
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": ".eslintrc.js",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".eslintrc.js"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "packages/agent-base/test/tsconfig.json, packages/agent-base/tsconfig.json, packages/data-uri-to-buffer/test/tsconfig.json, packages/data-uri-to-buffer/tsconfig.json, packages/degenerator/test/tsconfig.json, packages/degenerator/tsconfig.json, packages/get-uri/test/tsconfig.json, packages/get-uri/tsconfig.json, packages/http-proxy-agent/test/tsconfig.json, packages/http-proxy-agent/tsconfig.json, packages/https-proxy-agent/test/tsconfig.json, packages/https-proxy-agent/tsconfig.json, packages/negotiate/tsconfig.json, packages/pac-proxy-agent/test/tsconfig.json, packages/pac-proxy-agent/tsconfig.json, packages/pac-resolver/test/tsconfig.json, packages/pac-resolver/tsconfig.json, packages/proxy-agent/test/tsconfig.json, packages/proxy-agent/tsconfig.json, packages/proxy/test/tsconfig.json, packages/proxy/tsconfig.json, packages/socks-proxy-agent/test/tsconfig.json, packages/socks-proxy-agent/tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "packages/agent-base/test/tsconfig.json, packages/agent-base/tsconfig.json, packages/data-uri-to-buffer/test/tsconfig.json, packages/data-uri-to-buffer/tsconfig.json, packages/degenerator/test/tsconfig.json, packages/degenerator/tsconfig.json, packages/get-uri/test/tsconfig.json, packages/get-uri/tsconfig.json, packages/http-proxy-agent/test/tsconfig.json, packages/http-proxy-agent/tsconfig.json, packages/https-proxy-agent/test/tsconfig.json, packages/https-proxy-agent/tsconfig.json, packages/negotiate/tsconfig.json, packages/pac-proxy-agent/test/tsconfig.json, packages/pac-proxy-agent/tsconfig.json, packages/pac-resolver/test/tsconfig.json, packages/pac-resolver/tsconfig.json, packages/proxy-agent/test/tsconfig.json, packages/proxy-agent/tsconfig.json, packages/proxy/test/tsconfig.json, packages/proxy/tsconfig.json, packages/socks-proxy-agent/test/tsconfig.json, packages/socks-proxy-agent/tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "1 of the last 100 commits agent-authored or agent-credited",
"points": 2,
"status": "partial",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 1,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "6 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 6,
"sampled": 100
}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "TypeScript",
"largest_source_bytes": 17005,
"source_files_sampled": 95,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "TypeScript (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "TypeScript"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "0/95 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 95,
"oversized": 0
}
}
],
"max_points": 55
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
],
"report_type": "repository",
"generated_at": "2026-07-22T16:36:10.183177Z",
"schema_version": "0.26.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/t/TooTallNate/proxy-agents.svg",
"full_name": "TooTallNate/proxy-agents",
"license_state": "absent",
"license_spdx": null
}