Informe JSON sin procesar legible por máquina
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 165825,
"has_wiki": true,
"homepage": null,
"languages": {
"EJS": 18636434,
"HTML": 71192,
"Shell": 5140,
"Mustache": 96141,
"Batchfile": 942,
"Dockerfile": 3535,
"JavaScript": 1474657,
"PowerShell": 5157,
"TypeScript": 873988
},
"pushed_at": "2026-07-31T05:47:13Z",
"created_at": "2020-06-25T09:57:44Z",
"owner_type": "Organization",
"updated_at": "2026-07-31T05:47:28Z",
"description": "Oobee (formerly known as Purple A11y) is a customisable, automated web accessibility testing tool that allows software development teams to find and fix accessibility problems to improve persons with disabilities (PWDs) access to digital services.",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "master",
"license_spdx_raw": "MIT",
"primary_language": "EJS",
"significant_languages": [
"EJS"
]
},
"owner": {
"blog": "https://www.tech.gov.sg/",
"name": "Government Technology Agency of Singapore (GovTech Singapore)",
"type": "Organization",
"login": "GovTechSG",
"company": null,
"location": "Singapore",
"followers": 312,
"avatar_url": "https://avatars.githubusercontent.com/u/12439141?v=4",
"created_at": "2015-05-14T03:32:23Z",
"is_verified": null,
"public_repos": 171,
"account_age_days": 4097
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "0.11.6",
"kind": "patch",
"published_at": "2026-07-31T03:50:31Z"
},
{
"tag": "0.11.5",
"kind": "patch",
"published_at": "2026-07-24T09:53:36Z"
},
{
"tag": "0.11.1",
"kind": "patch",
"published_at": "2026-07-13T11:40:07Z"
},
{
"tag": "0.10.97",
"kind": "patch",
"published_at": "2026-07-07T08:28:42Z"
},
{
"tag": "0.10.94",
"kind": "patch",
"published_at": "2026-06-18T08:32:43Z"
},
{
"tag": "0.10.91",
"kind": "patch",
"published_at": "2026-06-05T11:47:08Z"
},
{
"tag": "0.10.89",
"kind": "patch",
"published_at": "2026-05-28T15:21:37Z"
},
{
"tag": "0.10.87",
"kind": "patch",
"published_at": "2026-05-21T05:38:02Z"
},
{
"tag": "0.10.86",
"kind": "patch",
"published_at": "2026-04-21T06:47:33Z"
},
{
"tag": "0.10.85",
"kind": "patch",
"published_at": "2026-03-25T07:36:56Z"
},
{
"tag": "0.10.84",
"kind": "patch",
"published_at": "2026-03-18T09:27:48Z"
},
{
"tag": "0.10.83",
"kind": "patch",
"published_at": "2026-03-05T06:34:14Z"
},
{
"tag": "0.10.77",
"kind": "patch",
"published_at": "2026-02-03T10:01:51Z"
},
{
"tag": "0.10.76",
"kind": "patch",
"published_at": "2026-01-27T11:43:18Z"
},
{
"tag": "0.10.74",
"kind": "patch",
"published_at": "2026-01-21T10:17:39Z"
},
{
"tag": "0.10.72",
"kind": "patch",
"published_at": "2026-01-09T08:58:30Z"
},
{
"tag": "0.10.70",
"kind": "patch",
"published_at": "2025-10-15T07:35:13Z"
},
{
"tag": "0.10.69",
"kind": "patch",
"published_at": "2025-10-13T06:16:07Z"
},
{
"tag": "0.10.68",
"kind": "patch",
"published_at": "2025-09-16T14:15:12Z"
},
{
"tag": "0.10.67",
"kind": "patch",
"published_at": "2025-09-16T08:03:27Z"
},
{
"tag": "0.10.65",
"kind": "patch",
"published_at": "2025-08-20T10:24:35Z"
},
{
"tag": "0.10.63",
"kind": "patch",
"published_at": "2025-08-12T03:57:30Z"
},
{
"tag": "0.10.61",
"kind": "patch",
"published_at": "2025-08-04T12:30:12Z"
},
{
"tag": "0.10.58",
"kind": "patch",
"published_at": "2025-07-22T12:30:00Z"
},
{
"tag": "0.10.57",
"kind": "patch",
"published_at": "2025-07-21T10:29:34Z"
},
{
"tag": "0.10.51",
"kind": "patch",
"published_at": "2025-06-05T10:34:51Z"
},
{
"tag": "0.10.50",
"kind": "patch",
"published_at": "2025-05-22T09:18:49Z"
},
{
"tag": "0.10.49",
"kind": "patch",
"published_at": "2025-05-19T16:31:28Z"
},
{
"tag": "0.10.45",
"kind": "patch",
"published_at": "2025-05-13T13:14:20Z"
},
{
"tag": "0.10.42",
"kind": "patch",
"published_at": "2025-04-22T04:06:38Z"
},
{
"tag": "0.10.39",
"kind": "patch",
"published_at": "2025-03-14T08:05:38Z"
},
{
"tag": "0.10.36",
"kind": "patch",
"published_at": "2025-02-28T11:37:30Z"
},
{
"tag": "0.10.34",
"kind": "patch",
"published_at": "2025-02-21T06:16:45Z"
},
{
"tag": "0.10.33",
"kind": "patch",
"published_at": "2025-02-18T02:19:32Z"
},
{
"tag": "0.10.28",
"kind": "patch",
"published_at": "2025-02-07T09:59:33Z"
},
{
"tag": "0.10.27",
"kind": "patch",
"published_at": "2025-02-05T15:40:36Z"
},
{
"tag": "0.10.25",
"kind": "patch",
"published_at": "2025-01-24T15:03:11Z"
},
{
"tag": "0.10.24",
"kind": "patch",
"published_at": "2025-01-17T13:30:45Z"
},
{
"tag": "0.10.21",
"kind": "patch",
"published_at": "2024-12-30T02:31:31Z"
},
{
"tag": "0.10.20",
"kind": "patch",
"published_at": "2024-12-10T06:12:41Z"
},
{
"tag": "0.10.18",
"kind": "patch",
"published_at": "2024-11-13T08:49:44Z"
},
{
"tag": "0.10.17",
"kind": "patch",
"published_at": "2024-10-25T03:38:01Z"
},
{
"tag": "0.10.16",
"kind": "patch",
"published_at": "2024-10-14T09:53:09Z"
},
{
"tag": "0.10.15",
"kind": "patch",
"published_at": "2024-09-11T05:01:49Z"
},
{
"tag": "0.10.14",
"kind": "patch",
"published_at": "2024-08-30T13:36:32Z"
},
{
"tag": "0.10.10",
"kind": "patch",
"published_at": "2024-08-22T12:15:35Z"
},
{
"tag": "0.10.7",
"kind": "patch",
"published_at": "2024-07-16T05:34:13Z"
},
{
"tag": "0.10.5",
"kind": "patch",
"published_at": "2024-06-21T09:27:17Z"
},
{
"tag": "0.10.4",
"kind": "patch",
"published_at": "2024-06-20T09:02:42Z"
},
{
"tag": "0.10.2",
"kind": "patch",
"published_at": "2024-06-19T10:43:07Z"
},
{
"tag": "0.10.1",
"kind": "patch",
"published_at": "2024-06-14T08:20:22Z"
},
{
"tag": "0.10.0",
"kind": "minor",
"published_at": "2024-06-06T12:11:04Z"
},
{
"tag": "0.9.59",
"kind": "patch",
"published_at": "2024-05-26T04:19:09Z"
},
{
"tag": "0.9.54",
"kind": "patch",
"published_at": "2024-05-22T14:12:56Z"
},
{
"tag": "cache",
"kind": "other",
"published_at": "2024-05-22T13:58:44Z"
},
{
"tag": "0.9.52",
"kind": "patch",
"published_at": "2024-05-13T09:24:51Z"
},
{
"tag": "0.9.51",
"kind": "patch",
"published_at": "2024-05-08T10:47:07Z"
},
{
"tag": "0.9.50",
"kind": "patch",
"published_at": "2024-04-26T09:49:29Z"
},
{
"tag": "0.9.48",
"kind": "patch",
"published_at": "2024-04-02T07:00:34Z"
},
{
"tag": "0.9.47",
"kind": "patch",
"published_at": "2024-03-15T07:14:34Z"
},
{
"tag": "0.9.46",
"kind": "patch",
"published_at": "2024-02-26T14:50:08Z"
},
{
"tag": "0.9.45",
"kind": "patch",
"published_at": "2024-02-07T10:06:33Z"
},
{
"tag": "0.9.43",
"kind": "patch",
"published_at": "2024-01-22T03:02:39Z"
},
{
"tag": "0.9.41",
"kind": "patch",
"published_at": "2024-01-03T06:51:43Z"
},
{
"tag": "0.9.40",
"kind": "patch",
"published_at": "2023-12-14T07:30:05Z"
},
{
"tag": "0.9.39",
"kind": "patch",
"published_at": "2023-12-08T08:35:04Z"
},
{
"tag": "0.9.36",
"kind": "patch",
"published_at": "2023-12-04T09:46:23Z"
},
{
"tag": "0.9.35",
"kind": "patch",
"published_at": "2023-12-01T07:00:07Z"
},
{
"tag": "0.9.34",
"kind": "patch",
"published_at": "2023-11-21T10:01:55Z"
},
{
"tag": "0.9.33",
"kind": "patch",
"published_at": "2023-11-20T06:36:11Z"
},
{
"tag": "0.9.32",
"kind": "patch",
"published_at": "2023-11-06T09:58:14Z"
},
{
"tag": "0.9.31",
"kind": "patch",
"published_at": "2023-11-03T11:45:15Z"
},
{
"tag": "0.9.26",
"kind": "patch",
"published_at": "2023-10-19T09:46:41Z"
},
{
"tag": "0.9.25",
"kind": "patch",
"published_at": "2023-10-06T08:46:33Z"
},
{
"tag": "0.9.19",
"kind": "patch",
"published_at": "2023-09-21T10:08:11Z"
},
{
"tag": "0.9.17",
"kind": "patch",
"published_at": "2023-09-08T09:09:22Z"
},
{
"tag": "0.9.14",
"kind": "patch",
"published_at": "2023-08-31T08:28:21Z"
},
{
"tag": "0.9.13",
"kind": "patch",
"published_at": "2023-08-24T09:43:36Z"
},
{
"tag": "0.9.7",
"kind": "patch",
"published_at": "2023-08-15T02:44:25Z"
},
{
"tag": "0.9.4",
"kind": "patch",
"published_at": "2023-07-21T11:25:47Z"
},
{
"tag": "0.9.3",
"kind": "patch",
"published_at": "2023-07-18T08:34:45Z"
},
{
"tag": "0.9.2",
"kind": "patch",
"published_at": "2023-07-14T09:34:44Z"
},
{
"tag": "0.9.1",
"kind": "patch",
"published_at": "2023-07-05T00:46:16Z"
},
{
"tag": "0.9.0",
"kind": "minor",
"published_at": "2023-06-30T04:21:42Z"
},
{
"tag": "0.0.15",
"kind": "patch",
"published_at": "2023-05-24T09:08:11Z"
},
{
"tag": "0.0.14",
"kind": "patch",
"published_at": "2023-05-13T10:17:59Z"
},
{
"tag": "0.0.13",
"kind": "patch",
"published_at": "2023-05-04T10:43:57Z"
},
{
"tag": "0.0.12",
"kind": "patch",
"published_at": "2023-05-02T10:39:31Z"
},
{
"tag": "0.0.11",
"kind": "patch",
"published_at": "2023-04-14T15:44:53Z"
},
{
"tag": "0.0.10",
"kind": "patch",
"published_at": "2023-04-13T04:07:24Z"
},
{
"tag": "0.0.9",
"kind": "patch",
"published_at": "2023-04-04T11:34:49Z"
},
{
"tag": "0.0.8",
"kind": "patch",
"published_at": "2023-03-30T10:13:53Z"
},
{
"tag": "0.0.7",
"kind": "patch",
"published_at": "2023-03-18T09:40:03Z"
},
{
"tag": "0.0.6",
"kind": "patch",
"published_at": "2023-03-15T07:28:24Z"
},
{
"tag": "0.0.5",
"kind": "patch",
"published_at": "2023-02-10T14:44:45Z"
},
{
"tag": "0.0.4",
"kind": "patch",
"published_at": "2023-01-17T14:48:36Z"
},
{
"tag": "0.0.3",
"kind": "patch",
"published_at": "2022-12-19T16:10:47Z"
},
{
"tag": "v0.0.2",
"kind": "patch",
"published_at": "2020-10-20T08:38:06Z"
}
],
"recent_commits": [
{
"oid": "0034173737a089071aa1b8ac77c37ffb4cf5ac43",
"body": "Refactor GitHub Actions workflow to support multi-architecture builds and digest uploads.",
"is_bot": false,
"headline": "Enhance docker-push-ghcr workflow for multi-arch support",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-31T05:47:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1f431f24fe331fd81823609f6a3de55adf287acc",
"body": null,
"is_bot": false,
"headline": "Disable cache for Docker push in GitHub Actions",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-31T03:49:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1c8bd196226638704415e80ca2a5e6e8e9d431a0",
"body": "…(#808)\n\nFollow-up to #803. After landing the stacked load + stability phases,\none intermittent aria-required-children finding still surfaced in 1 of\n~3700 pages scanned in Docker. Three root causes:\n\n1. `networkidle` was racing the mutation observer in Phase 2 and\n winning too early. It fires aft\n[…]\ns at the env vars) and debug-log the resolution\nreason on the normal path (so future rare misses are greppable\nwithout another 3700-URL sweep).\n\nCo-authored-by: Claude Opus 4.7 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(crawler): harden waitForPageLoaded for Docker/CPU-contended runs …",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-31T00:25:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a825ef645c86a29417bbd0e9bbf9af9f4baeb04d",
"body": "…(#807)\n\nFollow-up to #803. After landing the stacked load + stability phases,\none intermittent aria-required-children finding still surfaced in 1 of\n~3700 pages scanned in Docker. Three root causes:\n\n1. `networkidle` was racing the mutation observer in Phase 2 and\n winning too early. It fires aft\n[…]\ns at the env vars) and debug-log the resolution\nreason on the normal path (so future rare misses are greppable\nwithout another 3700-URL sweep).\n\nCo-authored-by: Claude Opus 4.7 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(crawler): harden waitForPageLoaded for Docker/CPU-contended runs …",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-31T00:22:58Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "918321d2d588c30bd2988e0031926b14fbaad125",
"body": "…ed runs\"\n\nThis reverts commit e12dc7dc531a7922c9bc9c1eecee3e1e58c12354.",
"is_bot": false,
"headline": "Revert \"fix(crawler): harden waitForPageLoaded for Docker/CPU-contend…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-31T00:21:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e12dc7dc531a7922c9bc9c1eecee3e1e58c12354",
"body": "Follow-up to #803. After landing the stacked load + stability phases,\none intermittent aria-required-children finding still surfaced in 1 of\n~3700 pages scanned in Docker. Three root causes:\n\n1. `networkidle` was racing the mutation observer in Phase 2 and\n winning too early. It fires after 500ms \n[…]\ns at the env vars) and debug-log the resolution\nreason on the normal path (so future rare misses are greppable\nwithout another 3700-URL sweep).\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(crawler): harden waitForPageLoaded for Docker/CPU-contended runs",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-30T12:47:41Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "97fb69d35a9eab20b3ee89b451ca8071346a9665",
"body": null,
"is_bot": false,
"headline": "Bump package version",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-30T10:20:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "647d3e9fbb417f98e99c61a3f61544926869a423",
"body": "* feat: route Chromium via Cloudflare Worker SOCKS5 tunnel\n\nAdds cfProxyWorker that spins up a local SOCKS5 server tunneling each\nconnection to a Cloudflare Worker over WebSocket, activated only when\nCF_WORKER_PROXY is set (optional CF_WORKER_PROXY_AUTH_TOKEN and\nCF_WORKER_PROXY_PORT). proxyService \n[…]\nranges are simply omitted from the response.\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>\n\n* Feature upstream IP support\n\n---------\n\nCo-authored-by: Claude Opus 4.7 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat: route Chromium via Cloudflare Worker SOCKS5 tunnel (#805)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-30T10:17:13Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "55a493a24bccdfdc1707692afc85fce8ff6bbdd8",
"body": "…804)\n\nThe target-size failure summary was reporting the element's full\nbounding-rect (re-measured from the DOM), which hides the real hit-area\naxe evaluated when the element is partially obscured or has a\nlargest-inner-rect smaller than its bounds. Read width/height from the\ntarget-size check's sto\n[…]\n't record dimensions. When neither\nsource is available, leave axe's original failureSummary in place\nrather than blanking the dimensions field.\n\nCo-authored-by: Claude Opus 4.7 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(crawler): use axe's stored sub-rect for target-size enrichment (#…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-30T10:16:53Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d63d6d6b063ddd9bf02fa3b6a15b0a49495591b5",
"body": "* fix(crawler): stop rate-controller from ratcheting concurrency to 1\n\nTwo bugs made concurrency collapse quickly on 4xx clusters and never\nrecover:\n\n1. Retried 403 URLs halved concurrency twice. On first failure,\n failedRequestHandler called onFailure() (halving) then re-enqueued\n with rateLimi\n[…]\nn:true through onFailure, so\n the same URL cannot halve concurrency twice.\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.7 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix/rate controller double halve and recovery (#806)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-30T10:16:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e45b2d765f17bc17e0d41f2b95c2fd0498748100",
"body": "waitForPageLoaded was returning before the DOM was ready to scan in two\nways: (1) the mutation observer treated repeated attribute mutations on\nthe same element (e.g. a nav dropdown flipping class during init) as a\n\"DOM settled\" signal, and (2) inside a single Promise.race, load almost\nalways beat t\n[…]\nFile all now call\n waitForPageLoaded() with the default budgets. Local file scans\n previously skipped this step entirely and are now covered.\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(crawler): make waitForPageLoaded actually wait for hydration (#803)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-30T10:10:45Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9ee6d58b5cf7de399010fbc437d8ff4875b989dd",
"body": "Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.20 to 7.5.22.\n- [Release notes](https://github.com/isaacs/node-tar/releases)\n- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.20...v7.5.22)\n\n---\nupdated-depend\n[…]\nar\n dependency-version: 7.5.22\n dependency-type: indirect\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": "chore(deps): bump tar from 7.5.20 to 7.5.22 (#802)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-27T08:35:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a22899838931935bb9369d7a5ef1c68b99b8b775",
"body": "Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 5.0.7 to 5.0.8.\n- [Release notes](https://github.com/juliangruber/brace-expansion/releases)\n- [Commits](https://github.com/juliangruber/brace-expansion/compare/v5.0.7...v5.0.8)\n\n---\nupdated-dependencies:\n- dependency-name:\n[…]\nion\n dependency-version: 5.0.8\n dependency-type: indirect\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": "chore(deps): bump brace-expansion from 5.0.7 to 5.0.8 (#801)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-27T08:35:15Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1f81f529da80756313af4ff5d8cec4ed47c3eed4",
"body": null,
"is_bot": false,
"headline": "Routine update to axe-core docs to 4.11",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-24T09:23:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1c4c73cc7c1f68f1e3b55b951eb9a2a6981a935a",
"body": "HTTP_PROXY, HTTPS_PROXY, and ALL_PROXY of the form\n\"scheme://user:pass@host:port\" were passed to Playwright with credentials\nstill embedded in proxy.server, which Playwright rejects. Extract userinfo\ninto separate username/password fields (URL-decoded) so Playwright receives\nproxy auth correctly. Env-var creds (PROXY_USERNAME/PROXY_PASSWORD) still\ntake precedence over URL-embedded creds.",
"is_bot": false,
"headline": "fix: parse embedded userinfo from proxy env URLs (#798)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-24T07:31:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "65eeec1df1853c6d2e3327741112a4f36a9329a2",
"body": "* Restore native constructors before running axe\n\nPages that replace built-ins like Set/Map/WeakMap with incomplete\npolyfills cause axe-core to throw `r.has is not a function` from\ninside its minified internals, and also break Playwright's own\nreturn-value serialization (page.evaluate returns undefi\n[…]\neakSet/WeakMap. On clean pages the probe\nreturns immediately, avoiding an unnecessary DOM mutation per scan.\n\n* Bump package version\n\n---------\n\nCo-authored-by: Claude Opus 4.7 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Restore native constructors before running axe (#797)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-24T07:19:00Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c96b9bd72e8a69849c8b204be6a3b73e2f6fbbfc",
"body": "`docker exec -e OOBEE_VERBOSE=1 GOOGLE_SAFE_BROWSING=1 OOBEE_FAST_CRAWLER=1 oobee-container ...`\nmade docker treat `GOOGLE_SAFE_BROWSING=1` as the container name, failing\nwith \"No such container: GOOGLE_SAFE_BROWSING=1\". Each env var needs its\nown -e flag.\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(ci): pass each env var with its own -e in docker-test.yml",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-23T08:01:26Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "0fe17f933f326ec11edb242c6eda94b7a24257a6",
"body": "…m publish manually (#796)\n\n* fix: unblock Safe Browsing DB warmup in Docker/BuildKit builds\n\nThe build-time warmup was silently timing out because Chrome refused to\nlaunch in the container:\n\n1. `--no-zygote` was passed without `--no-sandbox`. Chrome rejects that\n combination outright (\"Zygote can\n[…]\nerators explicitly pick which commit's package.json version\n lands on npm.\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.7 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: unblock Safe Browsing DB warmup in Docker/BuildKit builds and np…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-23T07:53:41Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9375ee629610fc5121eadb13c8a775248ae11319",
"body": "Chrome refuses to run as root without --no-sandbox (which was intentionally\ndropped from the warmup args), causing the build-time DB download to time\nout silently. Pre-create /data/chrome-profile owned by `purple` in the same\nroot RUN that adds the user, then drop the USER root switch around the\nwar\n[…]\nrmup chown.\n\nAlso remove the CACHEBUST build-arg plumbing: it was masking this bug by\nguaranteeing a fresh (and failing) warmup on every build.\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: run Safe Browsing warmup as `purple` user so Chrome will launch",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-23T07:25:54Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6a3704f5330a90962d2f0b5cae1a5a9170a5f60f",
"body": "The Chrome Safe Browsing threat DB was not populating within the previous\n600s budget during Docker image builds, and cached layers on retry meant\nthe warmup step effectively no-op'd in 12s without a fresh DB.\n\n- Raise --timeout to 1200000 ms in the Dockerfile warmup step.\n- Introduce a CACHEBUST AR\n[…]\nall, and build.\n- Pass CACHEBUST=<run_id>-<run_attempt> from the GHCR workflow so retries\n of a failed build also invalidate the warmup layer.\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>",
"is_bot": false,
"headline": "ci: bump Safe Browsing warmup to 1200s and bust cache per build",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-23T07:10:59Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "34a797d274373806aaf635407d43e854783cc729",
"body": "…--no-sandbox (#795)\n\n* fix: runCustom window duplication, overlay noise, SB injection, drop --no-sandbox\n\n- runCustom: force headless UA sniffer, wait for persistent-context initial\n page instead of racing to newPage() (fixes duplicate about:blank window on\n macOS), close any stray pages that com\n[…]\n Claude Opus 4.7 <noreply@anthropic.com>\n\n* chore: remove pr-description.md\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.7 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: runCustom window duplication, overlay noise, SB injection, drop …",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-23T05:58:51Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2fbd120b2d21b1e30421ff38f67e21186ba5e0af",
"body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: bump version 0.11.1 → v0.11.2 (#794)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-07-23T05:02:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5fda8370b04fa2da1b885505e0f13bfa7e1592ee",
"body": "* fix: restore viewport and reset capture entries on failure\n\nEnsure mobile viewport is restored even if screenshot capture throws,\nand always clear capture entries even if manifest write fails so a\nsubsequent scan does not inherit stale entries.\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.c\n[…]\n screenshot capture, and expose desktopDom /\nmobileDom in domManifest.json.\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.7 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat: Page DOM and Screenshot Capture for UA Testing (#782)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-23T05:00:52Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a4249f7de47c85ff699c59e50e6b02691b604cb9",
"body": "Updated the description for GOOGLE_SAFE_BROWSING to clarify compatibility with browsers.",
"is_bot": false,
"headline": "Clarify GOOGLE_SAFE_BROWSING compatibility in README",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-23T04:38:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "44466ca12eff822e869ac9db2aa003cc272e8fbd",
"body": "Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 5.0.6 to 5.0.7.\n- [Release notes](https://github.com/juliangruber/brace-expansion/releases)\n- [Commits](https://github.com/juliangruber/brace-expansion/compare/v5.0.6...v5.0.7)\n\n---\nupdated-dependencies:\n- dependency-name:\n[…]\nion\n dependency-version: 5.0.7\n dependency-type: indirect\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": "chore(deps): bump brace-expansion from 5.0.6 to 5.0.7 (#792)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-23T04:35:52Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fb0ce80bdee38faf096b81b6224cb6f422733183",
"body": "feat: add Google Safe Browsing integration to detect phishing/malware URLs\n\nImplements Safe Browsing protection to classify blocked URLs in scan results:\n- Add standalone warmup script for Docker build-time DB download\n- Support both amd64 and arm64 Chrome architectures\n- Pre-populate Safe Browsing \n[…]\ne detection\n- Update README with usage instructions\n\nRequires Google Chrome (not Chromium) on Linux, macOS, and Windows supported.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat: add Google Safe Browsing protection (Linux, Mac, Windows) (#793)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-23T04:34:50Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "4e44d6ab0c28b3f040c507bf2604bd94dfea002a",
"body": "Updated the Node CLI command to use 'intelligent' for scan type and modified log printing to target specific log files.",
"is_bot": false,
"headline": "Modify Docker test workflow for CLI and logs",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-13T11:48:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d4adb42b5882784c4e5bc25c2befe15eda2d79d2",
"body": "* feat: add page DOM and screenshot capture via OOBEE_SAVE_DOM and OOBEE_SAVE_PAGE_SCREENSHOT\n\nWhen enabled, saves full-page DOM, desktop viewport screenshot, and mobile\nviewport screenshot to the results directory under page-doms/. A\ndom-manifest.json maps each URL to its hash, file paths, and erro\n[…]\ns detected at any level.\n\nBump version to 0.11.1.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix/403 retry storm (#790)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-13T11:39:03Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ac8f46208477736aa162b5120e55e83c793fc91d",
"body": "Clarify hardware requirements for scanning and concurrency settings.",
"is_bot": false,
"headline": "Update hardware recommendations for scanning",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-13T08:57:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "366bfbb0e2444d65d2273c7f742b10d640749896",
"body": "…temap optimization, download/403 handling, unsupported document classification (#789)\n\n* fix: clone cookies from pristine user profile and eagerly clean retired pools\n\nPreviously the first browser in each pool used userDataDirectory\ndirectly, allowing Chrome to modify the cookie database. All subse\n[…]\ny@anthropic.com>\n\n* chore: bump version to 0.11.0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: cookie clone from pristine profile, pool cleanup, intelligent si…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-13T07:19:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "4286ab316fcbf451cf8140bef2a4c364283e4c6a",
"body": "If cleanup fails on Windows (e.g. locked files), the crawlee and\ncrawlee_rq directories would otherwise be included in the zip artifact.\nSkip any root-level directory starting with \"crawlee\" during zipping.\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: exclude crawlee* directories from zip output (#788)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-12T03:41:26Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a78d1c86be9dcc8db3f1c2763d6cb57576454d3f",
"body": "* fix: resolve Windows crash from Crawlee lock-file race in intelligent crawl\n\nDataset and RequestQueue were opened with the same absolute path name,\ncausing both to write to the same directory on disk. On Windows,\nproper-lockfile's .lock directories from the sitemap phase could race\nwith the domain\n[…]\nlee_rq cleanup to avoid skipping on prior failure\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix/windows crawlee lock race (#787)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-12T03:34:57Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fb27a157475207b8444976fe1377ef2ba4db8b8b",
"body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: bump version 0.10.97 → v0.10.98 (#786)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-07-09T16:19:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1f16746751809427f88b8d8ff67de86bfd5a0eb9",
"body": "When crawlIntelligentSitemap invokes crawlSitemap and crawlDomain\nsequentially, each phase created a CrawlRateController with the full\nmaxRequestsPerCrawl budget (scannedCount = 0). This allowed the total\npages scanned to far exceed -p (e.g. 6500+ with -p 5000).\n\nFix: when fromCrawlIntelligentSitema\n[…]\n true, initialize the rate\ncontroller with the remaining budget (maxRequestsPerCrawl minus pages\nalready scanned in prior phases).\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: intelligent crawl overshoots page limit (-p) across phases (#785)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-09T16:15:53Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "35991dc7fe50dfcf37d35fc5ca2a12250df87875",
"body": "…(#784)\n\n* fix: propagate ruleset parameter to sitemap and intelligent crawlers\n\ncrawlSitemap and crawlIntelligentSitemap were not receiving or passing\nthe ruleset flag to runAxeScript, causing --ruleset options (e.g.\nenable-wcag-aaa) to be silently ignored for non-website scan types.\n\nCo-Authored-B\n[…]\nNavigationHook\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n* Add section on scan consistency\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: propagate ruleset parameter to sitemap and intelligent crawlers …",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-09T14:12:40Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a20dde330f18a68faf012739b0cf8eb8b60e9e4b",
"body": "…rge crawls (#783)\n\nAfter ~3500+ pages on Windows, the crawler would hang indefinitely due to\nbrowser pool resource exhaustion. Three contributing factors are addressed:\n\n1. Reduce browser retirements by increasing retireBrowserAfterPageCount from\n 100 (default) to 500, and ensure retired browsers\n[…]\nsecutive failure abort threshold, so the crawl aborts\n gracefully instead of retrying indefinitely when resources are exhausted.\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: prevent Windows hang from browser pool resource exhaustion on la…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-09T09:37:27Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e7b40e57e047b0a7c27981d63b83d25c0031c596",
"body": "…empty elements (#780)\n\n* Improve isElementTooSmall logic for element visibility\n\nEnhance isElementTooSmall function to check for non-perceivable elements based on dimensions and content.\n\n* Refactor isElementTooSmall function condition\n\nSimplified the condition for non-perceivable elements by removing checks for children and text content.",
"is_bot": false,
"headline": "improv: false positive in oobee-accessible-label for non-perceivable …",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-09T08:41:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d6508bc0185bfb8c43a7a16d3496fde69af0cb21",
"body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: bump version 0.10.96 → v0.10.97 (#779)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-07-07T08:25:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "38a1bbc1cf6667fe88be4ac9fe493beede1e103c",
"body": "* fix: clean up browser pool directories and reduce their disk footprint\n\nPool re-launches create sibling directories (oobee-{token}_pool*) that\nwere never deleted by cleanUp(), and copying entire Chrome profiles into\neach pool dir caused gigabytes of waste during large scans. This adds\nglob-based p\n[…]\nresolution doesn't skip subsequent cleanup steps.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix/cleanup browser pool directories (#778)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-07T08:22:29Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "553b740241662a59bb7e0ac6c5de68df7f7a4be3",
"body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: bump version 0.10.95 → v0.10.96 (#777)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-07-07T00:41:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d774972227039263dce343522a5eb5ab33940bb8",
"body": null,
"is_bot": false,
"headline": "Upgrade crawlee and playwright versions (#776)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-07T00:39:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4d43b12872e02a19126bb4434b3820dac920f588",
"body": null,
"is_bot": false,
"headline": "Fix typo in Intel-based Mac support note",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-06T11:40:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4b8ff8fd19ecda497e437e9d19235a9624910294",
"body": "Updated macOS requirement from version 12 Monterey to version 15 Sequoia. Added note about discontinuation of support for Intel-based Macs.",
"is_bot": false,
"headline": "Update macOS version requirement and add Intel note",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-06T11:39:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e03481ed6004859f0d2277db92a4752c737b0352",
"body": "…(#775)\n\nOn non-Docker platforms (macOS/Windows), fs.emptyDirSync(TMPDIR) was\nnuking the shared system temp directory, crashing the PDF generation\nstep with \"Maximum number of attempts reached\" when locked files from\nother processes prevented deletion.\n\n- Guard emptyDirSync and rmSync of TMPDIR to o\n[…]\nked files are non-fatal\n- Append process.pid to the Docker TMPDIR path so concurrent scans\n don't clobber each other's temp files\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: restrict TMPDIR cleanup to Docker and isolate per scan instance …",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-06T10:56:46Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d742cc060aa0d323d8294f315ffeb0e133148ded",
"body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: bump version 0.10.94 → v0.10.95 (#774)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-07-06T10:37:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "52aba6d0f820b5e62f5d1e198868630adbe1d430",
"body": "Bumps [undici](https://github.com/nodejs/undici) from 7.24.4 to 7.28.0.\n- [Release notes](https://github.com/nodejs/undici/releases)\n- [Commits](https://github.com/nodejs/undici/compare/v7.24.4...v7.28.0)\n\n---\nupdated-dependencies:\n- dependency-name: undici\n dependency-version: 7.28.0\n dependency-type: indirect\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": "chore(deps): bump undici from 7.24.4 to 7.28.0 (#771)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-06T10:09:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3017147a1839f4c83be938bd00fcf9b462845cac",
"body": "…773)\n\n* improv: omit passed items from disk writes to reduce storage usage\n\n- mergeAxeResults.ts: skip itemsStore.appendPageItems for 'passed' category\n in pushResults (both custom flow and standard flow paths)\n- mergeAxeResults.ts: remove 'passed' from buildHtmlGroups loop (no items\n stored in i\n[…]\n, causing Chrome to crash with SIGTRAP on launch.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "improv: omit passed items from disk writes to reduce storage usage (#…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-07-06T10:09:19Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "dfc6be34cc052115856b0f747da4fb66e6578163",
"body": "…ncy (#770)\n\n* Fix redirect-aware entryUrl propagation and localfile URL validation\n\n* Update URL logging in found sitemaps\n\n* Set crawler retries and session rotations for domain and sitemap scans\n\n* Abort sitemap crawl early when no pages succeed and failures accumulate",
"is_bot": false,
"headline": "improve: redirect entry URL handling and harden sitemap crawl resilie…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-18T08:09:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "346dd9c6c1ccb800a6105af35c672463f363e2bc",
"body": "…avior in EJS reports (#769)\n\n- fix scan/about modal accessibility issues and semantics in EJS components/scripts/styles\n- remove unnecessary `!important` usage in scan modal styles\n- correct ARIA roles/relationships for segmented tabs and related panels\n- make WCAG gauge value contrast evaluation d\n[…]\nmodal components/scripts/styles\n- segmented tabs components/scripts\n- `WcagGaugeBar` styles\n- rule modal page accordion builder\n- screenshot lightbox script\n- rule offcanvas accordion region semantics",
"is_bot": false,
"headline": "Fix accessibility regressions and custom-flow screenshot/lightbox beh…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-18T06:35:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0d838085ac796f7e62c936b066a243d43c4455ce",
"body": "Added guidelines for URL guard and overlay management in custom flow to prevent infinite reload loops and ensure proper handling of protocols.",
"is_bot": false,
"headline": "Enhance URL guard and overlay management instructions",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-18T04:26:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a20e0dfa3cbcbf772241aa445d5ef9b47bb77fb8",
"body": "… (#768)\n\n- urlGuard: restoreToSafeUrl now checks that the safe/fallback URL is\n http/https before calling page.goto(). When the entry URL is file://\n (e.g. scanning a local HTML report), the fallback is also file://, so\n redirecting created an infinite reload loop.\n\n- urlGuard: skip about: proto\n[…]\nrlayAllowed returns false (e.g. transient\n file:// or about:blank URL), skip removeOverlayMenu and fall through\n to addOverlayMenu so the overlay is (re-)injected rather than\n permanently disabled.",
"is_bot": false,
"headline": "fix: url guard infinite redirect and missing overlay on macOS/Windows…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-18T03:05:20Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c6353fc0933763da213c6634d1394da5ffc6aaaf",
"body": "…cans (#767)\n\n* fix(crawler): skip empty pre-navigation headers rewrite\n\n* fix(sitemap): apply auth/non-auth headers in crawler launch context\n\n* ## Changes made\n\n### 1. `src/constants/common.ts` — `checkUrlConnectivityWithBrowser`\n**Old:** `extraHTTPHeaders.Accept ||= '...'` — mutated the shared ob\n[…]\nfired | ✅ expected — only fires when `-m` auth headers are passed |\n\n* Resolve page hang / waiting on navigation\n\n* Wait for DOMContentLoaded to fire\n\n* Update AGENTS.md for Playwright header-rewrites",
"is_bot": false,
"headline": "Fix: suppress Playwright header-rewrite warning for unauthenticated s…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-18T02:28:42Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d3efa0b4336e2a5e717927158b754f11fe778a52",
"body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: bump version 0.10.93 → v0.10.94 (#766)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-06-17T09:14:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b82a1b26a4e43fdb66c7000af445e3a655bcf7f4",
"body": "…crawlDomain and crawlSitemap (#762)",
"is_bot": false,
"headline": "refactor(crawler): use common preNavigationHooks for auth headers in …",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-17T09:13:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4ce1ee9d66f4adead19f65481324917980824d13",
"body": "* This commit fixes multiple accessibility violations in report UI templates by correcting ARIA usage, restoring valid list structure, and preserving keyboard/sort behavior.\n\nWhat was fixed\n\n1. Prioritise issues list semantics and selection behavior\n- Updated PrioritiseIssues.ejs so the priority iss\n[…]\nn place.\n- Accessibility tree semantics are now aligned with WCAG/ARIA expectations and common axe checks.\n\n* Fix <ul> list glitch in priority-issue-item\n\n* Fix underline on hover accessibility issues",
"is_bot": false,
"headline": "Fix/report a11y issues (#765)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-17T09:12:35Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "eedf38916704d1180d2b033e0a3604fb4373d0df",
"body": null,
"is_bot": false,
"headline": "Fix sitemap index parsing and skip image sitemaps (#764)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-16T10:38:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f77e8b2096d025aca534160357650e7071390cbf",
"body": "* fix: handle XSL sitemap fetch without networkidle timeout\n\n* docs: document sitemap XSL stylesheet fetch behavior\n\n* chore: include sitemap URL in sitemap type logs",
"is_bot": false,
"headline": "Fix Jetpack/XSL sitemap handling and skip image sitemap feeds (#763)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-16T10:33:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "70513487a162fdd4ed827a25bcc2dc2fc3da2e68",
"body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: bump version 0.10.92 → v0.10.93 (#760)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-06-16T05:06:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dd8c28b5d36de8078df62c43ddb83ac5339da3d8",
"body": "…SON parsing errors that blocked report artifact generation, and messy console logs during initial connectivity checks (#759)\n\n* fix: pass auth headers safely in custom flow and avoid CORS failures\n\n- Add extraHTTPHeaders support to runCustom (was missing entirely)\n- Extract shared splitAuthHeaders(\n[…]\n headers are missing\n\n* fix(checkUrl): eliminate URL check console ERR_FAILED logs by restoring native layout rendering\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: issues regarding authentication-triggered CORS failures, fatal J…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-16T05:03:01Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "364d8beeceec96d018ad9911f35d7810f9d6ddaf",
"body": "…on (#758)\n\nCo-authored-by: Wilson WeeSheng Khoo <wilson.khooweesheng@cognizant.com>",
"is_bot": false,
"headline": "chore: upgrade @sentry/node to v10 and refresh scanner fallback versi…",
"author_name": "Wilson",
"author_login": "WilsonkwSheng",
"committed_at": "2026-06-16T03:27:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ef5c1bc40187fa935b202186bc05c43ab0a3e607",
"body": null,
"is_bot": false,
"headline": "Update AGENTS.md and README.md with env variables",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-15T11:16:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dadf76793bf802bab22297236ab7d2b2d27afbf6",
"body": "* fix: use Crawlee dataset.drop() for graceful storage cleanup\n\n* fix: exclude tmp-items from oobee-scan-results.zip\n\nMove createRuleIdJson, itemsStore.cleanup(), and Sentry reporting\nbefore zipResults so that the temporary intermediate files are removed\nfrom the results directory before it gets zip\n[…]\ntems cleanup and zipResults ordering in AGENTS.md\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: use Crawlee dataset.drop() for graceful storage cleanup (#745)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-15T10:57:38Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f33dca4385be30bff57a1fd87ae2880bd5f9cf52",
"body": "…#757)\n\n* fix: group additionalScanMetadata by category in Sentry telemetry\n\nStructure ruleIdJson output from createRuleIdJson and\ncreateBasicFormHTMLSnippet by mustFix/goodToFix/needsReview so that\nSentry additionalScanMetadata distinguishes which category each rule\nbelongs to.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n* Additional tagging in Sentry for agency users\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix/sentry scan metadata by category and websiteTag custom variable (…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-15T10:57:10Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "cb1fe4001429a438791b9afe83d6659593df9b10",
"body": "Co-authored-by: Wilson WeeSheng Khoo <wilson.khooweesheng@cognizant.com>",
"is_bot": false,
"headline": "fix(deps): bump lodash to 4.18.1 for security patch (#756)",
"author_name": "Wilson",
"author_login": "WilsonkwSheng",
"committed_at": "2026-06-15T09:06:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d9960fa08f5ba36739aa6c8ddf08408f1d58778f",
"body": "…ts, automated concurrency recovery (#755)\n\n* fix: use cloned browser profile directly and pass user-agent to crawler contexts\n\nThe domain and sitemap crawlers were creating empty sub-profile directories\nper browser launch, discarding the cloned Chrome profile data. They also\nnever passed process.en\n[…]\nindows locales\n- Update profile cleanup to glob _pool* directories alongside base oobee-{token} dir\n\n* Update AGENTS.md\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: use cloned browser profile and pass user-agent to crawler contex…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-15T09:05:36Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6e323e90ca344657e9e1eacff928aa4067c5858b",
"body": "Removed error log file handling logic and simplified error logging.",
"is_bot": false,
"headline": "Refactor error logging in utils.ts",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-12T08:55:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d28c5677a33c0001df77a177c81646b48364ee2f",
"body": "… timing races (#753)\n\nCarousel libraries like slick-slider set aria-hidden=\"true\" on inactive\nslides then apply tabindex=\"-1\" to child links slightly later. The axe\nscan can capture the DOM between these two operations, reporting a\nviolation that doesn't exist in steady state. Add a post-scan\nre-ve\n[…]\ns to the event loop and re-checks the\nlive DOM — if all focusable descendants now have tabindex < 0 the\nviolation is filtered out.\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: filter false-positive aria-hidden-focus violations from carousel…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-12T06:55:01Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "19f846d7472247819284e01242b0cac062171a20",
"body": "…(#752)\n\nCrawlRateController.claimSlot() was called at the top of the request\nhandler before scanning. If a page was then discarded (redirect, dedup,\nskip), the slot was consumed without producing a scanned page — causing\nfewer pages than maxPages.\n\nMove claimSlot() to the moment of success (right b\n[…]\noperations are synchronous, no race condition is possible.\n\nAlso switches remaining console.log to consoleLogger.info in crawlers.\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: claim scan slots at success time to prevent maxPages undershoot …",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-12T06:54:40Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "43e7b679ec91884738e31bf39348ac3f2b73d120",
"body": "…awl rate control (#750)\n\n* fix: normalize www prefix in isFollowStrategy hostname comparison\n\nSitemaps often list child sitemap URLs without the www prefix (e.g.,\nmom.gov.sg/sitemap.xml) even when the parent sitemap is served from\nwww.mom.gov.sg. The strict hostname comparison rejected these URLs,\n\n[…]\noleLogger.info instead of console.log in crawlers\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: normalize www prefix in hostname comparisons and add adaptive cr…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-12T02:23:03Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "07755a5ae34d23f32c8c8131b5f9ba2d04eb2981",
"body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: bump version 0.10.91 → v0.10.92 (#749)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-06-11T14:04:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "84f34ce0b478b807ee87d38678b0b5747b25c802",
"body": "Comprehensive reference covering architecture, crawl flow, browser handling, platform differences, environment variables, common pitfalls, and lessons from the last 3 months of bug fixes. \r\n\r\nHelps AI agents understand Oobee's intricacies when making changes.",
"is_bot": false,
"headline": "docs: add AGENTS.md developer guide for AI agents",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-11T14:04:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3761c42f74c5ef62b68604d371d3db63b02b0921",
"body": "…/Docker environments (#748)\n\n* fix: apply modified User-Agent during sitemap discovery in headless mode\n\nThe intelligent crawl's sitemap detection (robots.txt fetch and sitemap\npath probing) was using the raw Chromium User-Agent which contains\n\"HeadlessChrome\" in Docker/Linux. Sites like www.moh.go\n[…]\n will keep processing until enough pages succeed.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: resolve sitemap detection and content fetch failures in headless…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-11T13:44:18Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "26a185c7aae7a7a24cf67180f38b05e2a2cd149b",
"body": "…retries (#747)\n\nPreviously, urlsCrawled.error was pushed in the requestHandler catch block\non every failed attempt. Since Crawlee retries requests up to 3 times, this\ncaused duplicate entries for the same URL and false positives for URLs that\neventually succeeded on retry. Errors are now only recorded in\nfailedRequestHandler, which fires exclusively after all retries are exhausted.\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: remove duplicate/false-positive error entries caused by request …",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-11T13:44:04Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ea03d963a0c292a960567f6f9e462dc26a10b74e",
"body": "…(), before axe scanning, screenshot capture, and other operations that can close the page (#746)\n\nRemove the error recovery path that created a new page and re-navigated just to get the title (which also leaked pages since they were never closed)\nEliminates repeated \"Error while getting page title: Target page, context or browser has been closed\" log noise",
"is_bot": false,
"headline": "Move page.evaluate(() => document.title) to the start of runAxeScript…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-11T13:42:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cd9619aca1a73b9c1e148a8ade94dfba5298d54e",
"body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: bump version 0.10.90 → v0.10.91 (#744)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-06-05T10:03:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e32187cf5bce6af8a35eee6c8dc996a65b64b241",
"body": "…eneration (#743)\n\nOn Windows, Crawlee's async lock-file operations (mkdir .json.lock) can\nfire after the crawl finishes, causing uncaughtException EPERM that kills\nthe process mid-report. This adds a scoped exception handler to suppress\nthose errors, increases the flush delay on Windows, and retries the\ncleanup rm with a fallback to best-effort so report generation always\ncompletes.\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: prevent Node crash from Crawlee EPERM on Windows during report g…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-05T10:02:39Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "8cf8f9d937c1b4e320b81a35425ba5040b8c9fc5",
"body": null,
"is_bot": false,
"headline": "Update generateOobeeClientScanner.js",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-04T11:00:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8caaf4adac2eac948121a3fcba8af40ee6175992",
"body": null,
"is_bot": false,
"headline": "Add steps to install dependencies and generate file",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-04T10:58:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "708c041dcd26149531048aa725c7e48e33d25ec8",
"body": "Removed the step to commit and push the generated client scanner.",
"is_bot": false,
"headline": "Remove commit step for generated client scanner",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-04T10:55:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "14377281570e69cd7aee28dedae9e09148de2852",
"body": null,
"is_bot": false,
"headline": "Fix tag naming in publish workflow",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-04T10:51:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5d02b28bdb9d44bd0a793c98532d8befa013acc1",
"body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: bump version 0.10.89 → v0.10.90 (#742)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-06-04T10:32:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4cde54b73db9758bb9c27e88033750a816d8328c",
"body": "…#741)\n\nRun dist/generateOobeeClientScanner.js after build and commit the\ngenerated bundle back to the repo before tagging and publishing.\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "ci: generate and commit oobee-client-scanner.js in publish workflow (…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-04T10:29:14Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e184e09f757ab45d8513df6ffde23e0c32f8d7b1",
"body": "Bumps [axios](https://github.com/axios/axios) from 1.15.2 to 1.16.0.\n- [Release notes](https://github.com/axios/axios/releases)\n- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)\n- [Commits](https://github.com/axios/axios/compare/v1.15.2...v1.16.0)\n\n---\nupdated-dependencies:\n- depe\n[…]\nndency-version: 1.16.0\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 axios from 1.15.2 to 1.16.0 (#738)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-04T10:18:55Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3c19149732446eabda489147ed635bce681bee0d",
"body": "Stream page result files sequentially instead of loading all into memory,\nwrite violation items to per-rule JSONL files on disk during accumulation\n(keeping only itemsCount in the in-memory allIssues object), and defer\nhtmlGroups construction to a second pass reading from disk.\n\nThis reduces peak heap from ~3GB to well under 4GB for 1,000-page scans\non ECS containers, preventing OOM during report artifact generation.\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: reduce memory usage in mergeAxeResults for large scans (#740)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-04T10:16:52Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "5d9e6ca914249328d66657755f336b534d4ca804",
"body": null,
"is_bot": false,
"headline": "Add release tag `latest` and build on ghcr likewise (#739)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-06-02T08:50:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "56cef699490b3f3664561d63acc4aa93e945944a",
"body": "Added DPG Badge to README.md",
"is_bot": false,
"headline": "Add DPG Badge to README",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-05-29T11:02:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ffef20c1cbfc082d336d495759e27c8b4e2714b9",
"body": "Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore: bump version to 0.10.89",
"author_name": "younglim",
"author_login": "younglim",
"committed_at": "2026-05-28T15:20:15Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "b4dea24ebde090c9b92a96e39b7ec94b162ed29a",
"body": "For needsReview/incomplete color-contrast results where axe could not\ndetermine foreground or background colors, fall back to the default axe\nmessage instead of showing \"unknown foreground on unknown background\".\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: skip custom contrast message when axe cannot determine colors",
"author_name": "younglim",
"author_login": "younglim",
"committed_at": "2026-05-28T15:19:24Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "66bc384b78803dc3db4e9fabdd5720136cc11a47",
"body": "Bumps [qs](https://github.com/ljharb/qs) from 6.15.0 to 6.15.2.\n- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/ljharb/qs/compare/v6.15.0...v6.15.2)\n\n---\nupdated-dependencies:\n- dependency-name: qs\n dependency-version: 6.15.2\n dependency-type: indirect\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 qs from 6.15.0 to 6.15.2 (#737)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-05-28T15:01:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f5274f20e7cb55894402fe0ea8f4d306be6029dc",
"body": "…sisted fixes (#720)\n\n* feat: augment axe violation messages with actionable context for LLMs\n\nEnriches Details messages for color-contrast, color-contrast-enhanced,\ntarget-size, valid-lang, and oobee-grading-text-contents with additional\ncontext gathered at scan time via Playwright page.evaluate(),\n[…]\nhan raw axe output alone.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n* Bump package version\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat: augment axe violation messages with live DOM context for LLM-as…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-05-28T15:00:56Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0dab555175e41e73f73c5648195d2d6b077a1542",
"body": "Docker requires all-lowercase image tags. Use shell parameter expansion\nto lowercase the github.repository variable before building tags.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: lowercase repository name in GHCR image tags",
"author_name": "younglim",
"author_login": "younglim",
"committed_at": "2026-05-28T07:34:50Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "1c76c8dfeed24034b304671072888e22cbf4404c",
"body": "Add a manually-triggered GitHub Actions workflow that builds the oobee\nbase image for amd64 and arm64, then pushes to ghcr.io with the\nspecified release tag. Remove pinned apt versions from Dockerfile for\ncross-architecture compatibility.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat: add multi-arch Docker image build and push to GHCR",
"author_name": "younglim",
"author_login": "younglim",
"committed_at": "2026-05-28T07:24:30Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "32f5a382f351d2186b685080b4316e1676cb4658",
"body": "…s.txt (#736)\n\nTwo bugs in sanitisePattern/getUrlsFromRobotsTxt:\n\n1. Bare paths (e.g. /subscription/unsubscribe) were converted to a single\n '/**' glob which does not match the exact URL without a trailing slash.\n Now emits both the exact-path pattern and a children glob so the page\n itself an\n[…]\nfix.\n\nsanitisePattern return type changed from string to string[]; call sites\nupdated to spread the result into disallowedUrls / allowedUrls.\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: correctly block exact paths and query-string patterns from robot…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-05-21T03:41:08Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "4cf309ea3472b8a995d0ea859cfc2a2c33a948be",
"body": "* fix: allow all URLs from local file sitemaps to be scanned\n\nWhen a local sitemap.xml is passed as the scan target, `crawlSitemap`\nfalls back to using the raw file path (e.g. `/app/sitemaps/foo.xml`) as\n`userUrl`. Inside `getLinksFromSitemap`, `isFollowStrategy` then tries\n`new URL('/app/sitemaps/.\n[…]\n check so redirect destinations\n that are disallowed are never fetched\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix/local sitemap no pages scanned (#735)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-05-21T03:31:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "198dda18a7cd5df647e509cc54a156d12995949d",
"body": "The crawlee folder deletion was deferred via setTimeout (fire-and-forget)\nwhich meant the folder was still present when zipResults ran immediately\nafter, including all crawlee internal JSON files in the output zip.\n\nReplace with an awaited 3-second delay followed by synchronous deletion,\nensuring the folder is removed before zipping starts.\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: await crawlee folder cleanup before zipping results (#734)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-05-20T13:50:36Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7a4adc7cad8fb68ce3545d2122b29c670e4bd937",
"body": "URLs like https://example.com and https://example.com/ are the same page\nbut were treated as different entries in the scannedUrlSet, causing\nduplicate scans (especially in intelligent crawls where the sitemap\nphase may list the URL without trailing slash and the domain crawl phase\ndiscovers it with \n[…]\n(the same function crawlee uses\ninternally) for consistent URL normalization in dedup sets. Exposed as\nnormUrl helper in utils.ts.\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: normalize URLs for dedup to prevent scanning same page twice (#733)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-05-20T13:42:42Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0730de9ee9af23eb5c2ab9115304722341a6271f",
"body": "…trategy in sitemap/intelligent crawls (#731)\n\n* feat: honour strategy in sitemap and intelligent crawls, skip redirects to external domains\n\n- Add 'ignore' strategy option (maps to EnqueueStrategy.All, no URL filtering)\n- Default strategy to 'ignore' for sitemap-only scans, 'same-domain' for others\n[…]\nl phase to proceed when no duration limit is set.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat: skip redirects to external domains and honour domain/hostname s…",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-05-20T07:58:11Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fba67ac4c6d7dd2909f0f526b86cb0df09439bfb",
"body": "* fix: prevent OOM in summary.html generation for large scans\n\nThe summary.ejs template was JSON.stringify-ing the entire items object\nincluding all pagesAffected arrays with their individual issue items.\nFor large scans (1000+ pages), this could produce a 2GB+ string that\nexceeds V8's string size l\n[…]\n of scanItems-light temp files after report write\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: prevent OOM in summary.html generation for large scans (#732)",
"author_name": "Zui Young",
"author_login": "younglim",
"committed_at": "2026-05-20T01:46:25Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "709d66e27efebb00cfbe4546b62fcc487ac1470b",
"body": "Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: bump version 0.10.86 → v0.10.87 (#730)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-05-19T05:48:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "08df9a1d7da2807305278edcef2ab7a64dd4933d",
"body": "Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 5.5.11 to 5.8.0.\n- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)\n- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)\n- [Commits](https://\n[…]\nser\n dependency-version: 5.7.1\n dependency-type: indirect\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 fast-xml-parser from 5.5.11 to 5.8.0 (#716)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-05-19T05:44:36Z",
"body_truncated": true,
"is_coding_agent": false
}
],
"releases_count": 98,
"commits_last_year": 265,
"latest_release_at": "2026-07-31T03:50:31Z",
"latest_release_tag": "0.11.6",
"releases_from_tags": false,
"days_since_last_push": 1,
"active_weeks_last_year": 35,
"days_since_latest_release": 1,
"mean_days_between_releases": 14.2
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 75,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": true
},
"ecosystem": {
"packages": [
{
"name": "@govtechsg/oobee",
"exists": true,
"license": "MIT",
"keywords": [],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/@govtechsg/oobee",
"is_deprecated": false,
"latest_version": "0.11.3",
"repository_url": "https://github.com/GovTechSG/oobee",
"versions_count": 49,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 10,
"monthly_downloads": 59435,
"first_published_at": "2024-12-12T08:23:12.963000Z",
"latest_published_at": "2026-07-23T06:02:35.279000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 9
}
]
},
"popularity": {
"forks": 52,
"stars": 164,
"watchers": 6,
"fork_history": {
"days": [
{
"date": "2020-09-21",
"count": 1
},
{
"date": "2021-03-22",
"count": 1
},
{
"date": "2021-04-27",
"count": 1
},
{
"date": "2021-07-05",
"count": 1
},
{
"date": "2021-07-20",
"count": 1
},
{
"date": "2021-10-11",
"count": 1
},
{
"date": "2021-11-05",
"count": 1
},
{
"date": "2022-01-01",
"count": 1
},
{
"date": "2022-06-05",
"count": 1
},
{
"date": "2022-06-15",
"count": 1
},
{
"date": "2022-06-24",
"count": 1
},
{
"date": "2022-10-15",
"count": 1
},
{
"date": "2022-12-12",
"count": 1
},
{
"date": "2022-12-19",
"count": 1
},
{
"date": "2023-02-12",
"count": 1
},
{
"date": "2023-02-23",
"count": 2
},
{
"date": "2023-04-12",
"count": 1
},
{
"date": "2023-04-15",
"count": 1
},
{
"date": "2023-07-23",
"count": 1
},
{
"date": "2023-09-21",
"count": 1
},
{
"date": "2023-09-22",
"count": 1
},
{
"date": "2023-12-28",
"count": 1
},
{
"date": "2024-01-30",
"count": 1
},
{
"date": "2024-02-08",
"count": 1
},
{
"date": "2024-03-19",
"count": 1
},
{
"date": "2024-04-02",
"count": 1
},
{
"date": "2024-04-21",
"count": 1
},
{
"date": "2024-04-22",
"count": 1
},
{
"date": "2024-05-30",
"count": 1
},
{
"date": "2024-07-08",
"count": 1
},
{
"date": "2024-08-06",
"count": 1
},
{
"date": "2024-08-31",
"count": 1
},
{
"date": "2024-10-15",
"count": 1
},
{
"date": "2024-10-18",
"count": 1
},
{
"date": "2024-12-10",
"count": 1
},
{
"date": "2025-02-09",
"count": 1
},
{
"date": "2025-04-19",
"count": 1
},
{
"date": "2025-07-23",
"count": 1
},
{
"date": "2025-09-29",
"count": 1
},
{
"date": "2025-10-31",
"count": 1
},
{
"date": "2025-11-18",
"count": 1
},
{
"date": "2025-12-09",
"count": 1
},
{
"date": "2026-01-23",
"count": 1
},
{
"date": "2026-03-28",
"count": 1
},
{
"date": "2026-04-01",
"count": 1
},
{
"date": "2026-04-16",
"count": 1
},
{
"date": "2026-07-23",
"count": 1
}
],
"complete": true,
"collected": 48,
"total_forks": 52
},
"star_history": null,
"open_issues_and_prs": 20
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"examples"
],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"examples/oobee-cypress-integration-ts/tsconfig.json",
"examples/oobee-playwright-integration-ts/tsconfig.json",
"tsconfig.json"
],
"toolchain_manifests": [],
"largest_source_bytes": 1456005,
"source_files_sampled": 82,
"oversized_source_files": 4,
"agent_instruction_files": [
"AGENTS.md"
],
"agent_instruction_max_bytes": 40971
},
"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": 500,
"malicious_count": 0,
"assessed_package": "npm:@govtechsg/oobee@0.11.3",
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "@aws-sdk/client-s3",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^3.1049.0"
},
{
"name": "@json2csv/node",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^7.0.3"
},
{
"name": "@napi-rs/canvas",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^0.1.53"
},
{
"name": "@sentry/node",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^10.58.0"
},
{
"name": "@types/aws-sdk",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^0.0.42"
},
{
"name": "axe-core",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^4.11.4"
},
{
"name": "axios",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^1.8.2"
},
{
"name": "base64-stream",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^1.0.0"
},
{
"name": "cheerio",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^1.0.0-rc.12"
},
{
"name": "crawlee",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^3.17.0"
},
{
"name": "ejs",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^3.1.9"
},
{
"name": "file-type",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^21.3.3"
},
{
"name": "fs-extra",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^11.2.0"
},
{
"name": "glob",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^13.0.6"
},
{
"name": "https",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^1.0.0"
},
{
"name": "inquirer",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^9.2.12"
},
{
"name": "jsdom",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^29.0.0"
},
{
"name": "jszip",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^3.10.1"
},
{
"name": "lodash",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^4.18.1"
},
{
"name": "mime",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^4.0.7"
},
{
"name": "mime-types",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^2.1.35"
},
{
"name": "minimatch",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^10.2.4"
},
{
"name": "pdfjs-dist",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "github:veraPDF/pdfjs-dist#v4.4.168-taggedPdf-0.1.20"
},
{
"name": "playwright",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^1.61.1"
},
{
"name": "prettier",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^3.1.0"
},
{
"name": "print-message",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^3.0.1"
},
{
"name": "safe-regex",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^2.1.1"
},
{
"name": "text-readability",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^1.1.0"
},
{
"name": "tldts",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^7.0.27"
},
{
"name": "typescript",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^5.4.5"
},
{
"name": "url",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^0.11.3"
},
{
"name": "uuid",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^14.0.0"
},
{
"name": "validator",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^13.11.0"
},
{
"name": "which",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^4.0.0"
},
{
"name": "winston",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^3.11.0"
},
{
"name": "ws",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^8.21.1"
},
{
"name": "xml2js",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^0.6.2"
},
{
"name": "xpath-to-css",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^1.2.0"
},
{
"name": "yargs",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^17.7.2"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "@aws-sdk/client-s3",
"direct": true,
"version": "3.1049.0",
"ecosystem": "npm"
},
{
"name": "@json2csv/node",
"direct": true,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "@napi-rs/canvas",
"direct": true,
"version": "0.1.97",
"ecosystem": "npm"
},
{
"name": "@sentry/node",
"direct": true,
"version": "10.58.0",
"ecosystem": "npm"
},
{
"name": "@types/aws-sdk",
"direct": true,
"version": "0.0.42",
"ecosystem": "npm"
},
{
"name": "axe-core",
"direct": true,
"version": "4.11.4",
"ecosystem": "npm"
},
{
"name": "axios",
"direct": true,
"version": "1.18.1",
"ecosystem": "npm"
},
{
"name": "base64-stream",
"direct": true,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "cheerio",
"direct": true,
"version": "1.0.0-rc.12",
"ecosystem": "npm"
},
{
"name": "cheerio",
"direct": true,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "crawlee",
"direct": true,
"version": "3.17.0",
"ecosystem": "npm"
},
{
"name": "ejs",
"direct": true,
"version": "3.1.10",
"ecosystem": "npm"
},
{
"name": "file-type",
"direct": true,
"version": "21.3.3",
"ecosystem": "npm"
},
{
"name": "fs-extra",
"direct": true,
"version": "11.3.4",
"ecosystem": "npm"
},
{
"name": "glob",
"direct": true,
"version": "13.0.6",
"ecosystem": "npm"
},
{
"name": "https",
"direct": true,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "inquirer",
"direct": true,
"version": "8.2.7",
"ecosystem": "npm"
},
{
"name": "inquirer",
"direct": true,
"version": "9.3.8",
"ecosystem": "npm"
},
{
"name": "jsdom",
"direct": true,
"version": "26.1.0",
"ecosystem": "npm"
},
{
"name": "jsdom",
"direct": true,
"version": "29.0.0",
"ecosystem": "npm"
},
{
"name": "jszip",
"direct": true,
"version": "3.10.1",
"ecosystem": "npm"
},
{
"name": "lodash",
"direct": true,
"version": "4.18.1",
"ecosystem": "npm"
},
{
"name": "mime",
"direct": true,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "mime-types",
"direct": true,
"version": "2.1.35",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": true,
"version": "10.2.4",
"ecosystem": "npm"
},
{
"name": "pdfjs-dist",
"direct": true,
"version": "4.4.168",
"ecosystem": "npm"
},
{
"name": "playwright",
"direct": true,
"version": "1.61.1",
"ecosystem": "npm"
},
{
"name": "playwright",
"direct": true,
"version": "^1.55.0",
"ecosystem": "npm"
},
{
"name": "prettier",
"direct": true,
"version": "3.8.1",
"ecosystem": "npm"
},
{
"name": "print-message",
"direct": true,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "safe-regex",
"direct": true,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "text-readability",
"direct": true,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "tldts",
"direct": true,
"version": "6.1.86",
"ecosystem": "npm"
},
{
"name": "tldts",
"direct": true,
"version": "7.0.27",
"ecosystem": "npm"
},
{
"name": "typescript",
"direct": true,
"version": "5.9.3",
"ecosystem": "npm"
},
{
"name": "typescript",
"direct": true,
"version": "^5.9.3",
"ecosystem": "npm"
},
{
"name": "url",
"direct": true,
"version": "0.11.4",
"ecosystem": "npm"
},
{
"name": "uuid",
"direct": true,
"version": "14.0.0",
"ecosystem": "npm"
},
{
"name": "validator",
"direct": true,
"version": "13.15.26",
"ecosystem": "npm"
},
{
"name": "which",
"direct": true,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "which",
"direct": true,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "winston",
"direct": true,
"version": "3.19.0",
"ecosystem": "npm"
},
{
"name": "ws",
"direct": true,
"version": "8.21.1",
"ecosystem": "npm"
},
{
"name": "xml2js",
"direct": true,
"version": "0.6.2",
"ecosystem": "npm"
},
{
"name": "xpath-to-css",
"direct": true,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "yargs",
"direct": true,
"version": "17.7.2",
"ecosystem": "npm"
},
{
"name": "@apify/consts",
"direct": false,
"version": "2.53.3",
"ecosystem": "npm"
},
{
"name": "@apify/datastructures",
"direct": false,
"version": "2.0.6",
"ecosystem": "npm"
},
{
"name": "@apify/log",
"direct": false,
"version": "2.5.41",
"ecosystem": "npm"
},
{
"name": "@apify/ps-tree",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "@apify/pseudo_url",
"direct": false,
"version": "2.0.82",
"ecosystem": "npm"
},
{
"name": "@apify/timeout",
"direct": false,
"version": "0.3.5",
"ecosystem": "npm"
},
{
"name": "@apify/utilities",
"direct": false,
"version": "2.34.1",
"ecosystem": "npm"
},
{
"name": "@asamuzakjp/css-color",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "@asamuzakjp/css-color",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "@asamuzakjp/dom-selector",
"direct": false,
"version": "7.0.3",
"ecosystem": "npm"
},
{
"name": "@asamuzakjp/nwsapi",
"direct": false,
"version": "2.3.9",
"ecosystem": "npm"
},
{
"name": "@aws-crypto/crc32",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "@aws-crypto/crc32c",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "@aws-crypto/sha1-browser",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "@aws-crypto/sha256-browser",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "@aws-crypto/sha256-js",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "@aws-crypto/supports-web-crypto",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "@aws-crypto/util",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/core",
"direct": false,
"version": "3.974.12",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/crc64-nvme",
"direct": false,
"version": "3.972.8",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/credential-provider-env",
"direct": false,
"version": "3.972.38",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/credential-provider-http",
"direct": false,
"version": "3.972.40",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/credential-provider-ini",
"direct": false,
"version": "3.972.42",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/credential-provider-login",
"direct": false,
"version": "3.972.42",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/credential-provider-node",
"direct": false,
"version": "3.972.43",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/credential-provider-process",
"direct": false,
"version": "3.972.38",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/credential-provider-sso",
"direct": false,
"version": "3.972.42",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/credential-provider-web-identity",
"direct": false,
"version": "3.972.42",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/middleware-bucket-endpoint",
"direct": false,
"version": "3.972.14",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/middleware-expect-continue",
"direct": false,
"version": "3.972.12",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/middleware-flexible-checksums",
"direct": false,
"version": "3.974.20",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/middleware-location-constraint",
"direct": false,
"version": "3.972.10",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/middleware-sdk-s3",
"direct": false,
"version": "3.972.41",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/middleware-ssec",
"direct": false,
"version": "3.972.10",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/nested-clients",
"direct": false,
"version": "3.997.10",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/signature-v4-multi-region",
"direct": false,
"version": "3.996.27",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/token-providers",
"direct": false,
"version": "3.1049.0",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/types",
"direct": false,
"version": "3.973.8",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/util-locate-window",
"direct": false,
"version": "3.965.5",
"ecosystem": "npm"
},
{
"name": "@aws-sdk/xml-builder",
"direct": false,
"version": "3.972.24",
"ecosystem": "npm"
},
{
"name": "@aws/lambda-invoke-store",
"direct": false,
"version": "0.2.4",
"ecosystem": "npm"
},
{
"name": "@babel/code-frame",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/compat-data",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/core",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/generator",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-compilation-targets",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-globals",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-module-imports",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-module-transforms",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-plugin-utils",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-string-parser",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-validator-identifier",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-validator-option",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helpers",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/parser",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-async-generators",
"direct": false,
"version": "7.8.4",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-bigint",
"direct": false,
"version": "7.8.3",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-class-properties",
"direct": false,
"version": "7.12.13",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-class-static-block",
"direct": false,
"version": "7.14.5",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-import-attributes",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-import-meta",
"direct": false,
"version": "7.10.4",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-json-strings",
"direct": false,
"version": "7.8.3",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-jsx",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-logical-assignment-operators",
"direct": false,
"version": "7.10.4",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-nullish-coalescing-operator",
"direct": false,
"version": "7.8.3",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-numeric-separator",
"direct": false,
"version": "7.10.4",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-object-rest-spread",
"direct": false,
"version": "7.8.3",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-optional-catch-binding",
"direct": false,
"version": "7.8.3",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-optional-chaining",
"direct": false,
"version": "7.8.3",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-private-property-in-object",
"direct": false,
"version": "7.14.5",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-top-level-await",
"direct": false,
"version": "7.14.5",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-typescript",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/template",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/traverse",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/types",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@bcoe/v8-coverage",
"direct": false,
"version": "0.2.3",
"ecosystem": "npm"
},
{
"name": "@borewit/text-codec",
"direct": false,
"version": "0.2.2",
"ecosystem": "npm"
},
{
"name": "@bramus/specificity",
"direct": false,
"version": "2.4.2",
"ecosystem": "npm"
},
{
"name": "@colors/colors",
"direct": false,
"version": "1.6.0",
"ecosystem": "npm"
},
{
"name": "@crawlee/basic",
"direct": false,
"version": "3.17.0",
"ecosystem": "npm"
},
{
"name": "@crawlee/browser",
"direct": false,
"version": "3.17.0",
"ecosystem": "npm"
},
{
"name": "@crawlee/browser-pool",
"direct": false,
"version": "3.17.0",
"ecosystem": "npm"
},
{
"name": "@crawlee/cheerio",
"direct": false,
"version": "3.17.0",
"ecosystem": "npm"
},
{
"name": "@crawlee/cli",
"direct": false,
"version": "3.17.0",
"ecosystem": "npm"
},
{
"name": "@crawlee/core",
"direct": false,
"version": "3.17.0",
"ecosystem": "npm"
},
{
"name": "@crawlee/http",
"direct": false,
"version": "3.17.0",
"ecosystem": "npm"
},
{
"name": "@crawlee/jsdom",
"direct": false,
"version": "3.17.0",
"ecosystem": "npm"
},
{
"name": "@crawlee/linkedom",
"direct": false,
"version": "3.17.0",
"ecosystem": "npm"
},
{
"name": "@crawlee/memory-storage",
"direct": false,
"version": "3.17.0",
"ecosystem": "npm"
},
{
"name": "@crawlee/playwright",
"direct": false,
"version": "3.17.0",
"ecosystem": "npm"
},
{
"name": "@crawlee/puppeteer",
"direct": false,
"version": "3.17.0",
"ecosystem": "npm"
},
{
"name": "@crawlee/templates",
"direct": false,
"version": "3.17.0",
"ecosystem": "npm"
},
{
"name": "@crawlee/types",
"direct": false,
"version": "3.17.0",
"ecosystem": "npm"
},
{
"name": "@crawlee/utils",
"direct": false,
"version": "3.17.0",
"ecosystem": "npm"
},
{
"name": "@csstools/color-helpers",
"direct": false,
"version": "5.1.0",
"ecosystem": "npm"
},
{
"name": "@csstools/color-helpers",
"direct": false,
"version": "6.0.2",
"ecosystem": "npm"
},
{
"name": "@csstools/css-calc",
"direct": false,
"version": "2.1.4",
"ecosystem": "npm"
},
{
"name": "@csstools/css-calc",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "@csstools/css-color-parser",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "@csstools/css-color-parser",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "@csstools/css-parser-algorithms",
"direct": false,
"version": "3.0.5",
"ecosystem": "npm"
},
{
"name": "@csstools/css-parser-algorithms",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "@csstools/css-syntax-patches-for-csstree",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "@csstools/css-tokenizer",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "@csstools/css-tokenizer",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "@dabh/diagnostics",
"direct": false,
"version": "2.0.8",
"ecosystem": "npm"
},
{
"name": "@emnapi/core",
"direct": false,
"version": "1.10.0",
"ecosystem": "npm"
},
{
"name": "@emnapi/runtime",
"direct": false,
"version": "1.10.0",
"ecosystem": "npm"
},
{
"name": "@emnapi/wasi-threads",
"direct": false,
"version": "1.2.1",
"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/config-array",
"direct": false,
"version": "0.21.2",
"ecosystem": "npm"
},
{
"name": "@eslint/config-helpers",
"direct": false,
"version": "0.4.2",
"ecosystem": "npm"
},
{
"name": "@eslint/core",
"direct": false,
"version": "0.17.0",
"ecosystem": "npm"
},
{
"name": "@eslint/eslintrc",
"direct": false,
"version": "3.3.5",
"ecosystem": "npm"
},
{
"name": "@eslint/js",
"direct": false,
"version": "9.39.4",
"ecosystem": "npm"
},
{
"name": "@eslint/object-schema",
"direct": false,
"version": "2.1.7",
"ecosystem": "npm"
},
{
"name": "@eslint/plugin-kit",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "@exodus/bytes",
"direct": false,
"version": "1.15.0",
"ecosystem": "npm"
},
{
"name": "@govtechsg/oobee",
"direct": false,
"version": "^0.10.69",
"ecosystem": "npm"
},
{
"name": "@humanfs/core",
"direct": false,
"version": "0.19.1",
"ecosystem": "npm"
},
{
"name": "@humanfs/node",
"direct": false,
"version": "0.16.7",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/module-importer",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/retry",
"direct": false,
"version": "0.4.3",
"ecosystem": "npm"
},
{
"name": "@inquirer/external-editor",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@inquirer/figures",
"direct": false,
"version": "1.0.15",
"ecosystem": "npm"
},
{
"name": "@isaacs/fs-minipass",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "@istanbuljs/load-nyc-config",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "@istanbuljs/schema",
"direct": false,
"version": "0.1.6",
"ecosystem": "npm"
},
{
"name": "@jest/console",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "@jest/core",
"direct": false,
"version": "30.4.2",
"ecosystem": "npm"
},
{
"name": "@jest/diff-sequences",
"direct": false,
"version": "30.4.0",
"ecosystem": "npm"
},
{
"name": "@jest/environment",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "@jest/expect",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "@jest/expect-utils",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "@jest/fake-timers",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "@jest/get-type",
"direct": false,
"version": "30.1.0",
"ecosystem": "npm"
},
{
"name": "@jest/globals",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "@jest/pattern",
"direct": false,
"version": "30.4.0",
"ecosystem": "npm"
},
{
"name": "@jest/reporters",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "@jest/schemas",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "@jest/snapshot-utils",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "@jest/source-map",
"direct": false,
"version": "30.0.1",
"ecosystem": "npm"
},
{
"name": "@jest/test-result",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "@jest/test-sequencer",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "@jest/transform",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "@jest/types",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "@jridgewell/gen-mapping",
"direct": false,
"version": "0.3.13",
"ecosystem": "npm"
},
{
"name": "@jridgewell/remapping",
"direct": false,
"version": "2.3.5",
"ecosystem": "npm"
},
{
"name": "@jridgewell/resolve-uri",
"direct": false,
"version": "3.1.2",
"ecosystem": "npm"
},
{
"name": "@jridgewell/sourcemap-codec",
"direct": false,
"version": "1.5.5",
"ecosystem": "npm"
},
{
"name": "@jridgewell/trace-mapping",
"direct": false,
"version": "0.3.31",
"ecosystem": "npm"
},
{
"name": "@json2csv/formatters",
"direct": false,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "@json2csv/plainjs",
"direct": false,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "@keyv/serialize",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "@mapbox/node-pre-gyp",
"direct": false,
"version": "1.0.11",
"ecosystem": "npm"
},
{
"name": "@napi-rs/canvas-android-arm64",
"direct": false,
"version": "0.1.97",
"ecosystem": "npm"
},
{
"name": "@napi-rs/canvas-darwin-arm64",
"direct": false,
"version": "0.1.97",
"ecosystem": "npm"
},
{
"name": "@napi-rs/canvas-darwin-x64",
"direct": false,
"version": "0.1.97",
"ecosystem": "npm"
},
{
"name": "@napi-rs/canvas-linux-arm-gnueabihf",
"direct": false,
"version": "0.1.97",
"ecosystem": "npm"
},
{
"name": "@napi-rs/canvas-linux-arm64-gnu",
"direct": false,
"version": "0.1.53",
"ecosystem": "npm"
},
{
"name": "@napi-rs/canvas-linux-arm64-gnu",
"direct": false,
"version": "0.1.97",
"ecosystem": "npm"
},
{
"name": "@napi-rs/canvas-linux-arm64-musl",
"direct": false,
"version": "0.1.53",
"ecosystem": "npm"
},
{
"name": "@napi-rs/canvas-linux-arm64-musl",
"direct": false,
"version": "0.1.97",
"ecosystem": "npm"
},
{
"name": "@napi-rs/canvas-linux-riscv64-gnu",
"direct": false,
"version": "0.1.97",
"ecosystem": "npm"
},
{
"name": "@napi-rs/canvas-linux-x64-gnu",
"direct": false,
"version": "0.1.53",
"ecosystem": "npm"
},
{
"name": "@napi-rs/canvas-linux-x64-gnu",
"direct": false,
"version": "0.1.97",
"ecosystem": "npm"
},
{
"name": "@napi-rs/canvas-linux-x64-musl",
"direct": false,
"version": "0.1.53",
"ecosystem": "npm"
},
{
"name": "@napi-rs/canvas-linux-x64-musl",
"direct": false,
"version": "0.1.97",
"ecosystem": "npm"
},
{
"name": "@napi-rs/canvas-win32-arm64-msvc",
"direct": false,
"version": "0.1.97",
"ecosystem": "npm"
},
{
"name": "@napi-rs/canvas-win32-x64-msvc",
"direct": false,
"version": "0.1.53",
"ecosystem": "npm"
},
{
"name": "@napi-rs/canvas-win32-x64-msvc",
"direct": false,
"version": "0.1.97",
"ecosystem": "npm"
},
{
"name": "@napi-rs/wasm-runtime",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "@nodable/entities",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "@opentelemetry/api",
"direct": false,
"version": "1.9.1",
"ecosystem": "npm"
},
{
"name": "@opentelemetry/api-logs",
"direct": false,
"version": "0.214.0",
"ecosystem": "npm"
},
{
"name": "@opentelemetry/core",
"direct": false,
"version": "2.8.0",
"ecosystem": "npm"
},
{
"name": "@opentelemetry/instrumentation",
"direct": false,
"version": "0.214.0",
"ecosystem": "npm"
},
{
"name": "@opentelemetry/resources",
"direct": false,
"version": "2.8.0",
"ecosystem": "npm"
},
{
"name": "@opentelemetry/sdk-trace-base",
"direct": false,
"version": "2.8.0",
"ecosystem": "npm"
},
{
"name": "@opentelemetry/semantic-conventions",
"direct": false,
"version": "1.41.1",
"ecosystem": "npm"
},
{
"name": "@pkgr/core",
"direct": false,
"version": "0.2.9",
"ecosystem": "npm"
},
{
"name": "@rtsao/scc",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "@sapphire/async-queue",
"direct": false,
"version": "1.5.5",
"ecosystem": "npm"
},
{
"name": "@sapphire/shapeshift",
"direct": false,
"version": "3.9.7",
"ecosystem": "npm"
},
{
"name": "@sec-ant/readable-stream",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "@sentry/core",
"direct": false,
"version": "10.58.0",
"ecosystem": "npm"
},
{
"name": "@sentry/node-core",
"direct": false,
"version": "10.58.0",
"ecosystem": "npm"
},
{
"name": "@sentry/opentelemetry",
"direct": false,
"version": "10.58.0",
"ecosystem": "npm"
},
{
"name": "@sentry/server-utils",
"direct": false,
"version": "10.58.0",
"ecosystem": "npm"
},
{
"name": "@sinclair/typebox",
"direct": false,
"version": "0.34.49",
"ecosystem": "npm"
},
{
"name": "@sindresorhus/is",
"direct": false,
"version": "4.6.0",
"ecosystem": "npm"
},
{
"name": "@sindresorhus/is",
"direct": false,
"version": "5.6.0",
"ecosystem": "npm"
},
{
"name": "@sindresorhus/is",
"direct": false,
"version": "7.2.0",
"ecosystem": "npm"
},
{
"name": "@sinonjs/commons",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "@sinonjs/fake-timers",
"direct": false,
"version": "15.4.0",
"ecosystem": "npm"
},
{
"name": "@smithy/core",
"direct": false,
"version": "3.24.3",
"ecosystem": "npm"
},
{
"name": "@smithy/credential-provider-imds",
"direct": false,
"version": "4.3.3",
"ecosystem": "npm"
},
{
"name": "@smithy/fetch-http-handler",
"direct": false,
"version": "5.4.3",
"ecosystem": "npm"
},
{
"name": "@smithy/is-array-buffer",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "@smithy/node-http-handler",
"direct": false,
"version": "4.7.3",
"ecosystem": "npm"
},
{
"name": "@smithy/signature-v4",
"direct": false,
"version": "5.4.3",
"ecosystem": "npm"
},
{
"name": "@smithy/types",
"direct": false,
"version": "4.14.2",
"ecosystem": "npm"
},
{
"name": "@smithy/util-buffer-from",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "@smithy/util-utf8",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "@so-ric/colorspace",
"direct": false,
"version": "1.1.6",
"ecosystem": "npm"
},
{
"name": "@streamparser/json",
"direct": false,
"version": "0.0.20",
"ecosystem": "npm"
},
{
"name": "@tokenizer/inflate",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "@tokenizer/token",
"direct": false,
"version": "0.3.0",
"ecosystem": "npm"
},
{
"name": "@tybys/wasm-util",
"direct": false,
"version": "0.10.2",
"ecosystem": "npm"
},
{
"name": "@types/babel__core",
"direct": false,
"version": "7.20.5",
"ecosystem": "npm"
},
{
"name": "@types/babel__generator",
"direct": false,
"version": "7.27.0",
"ecosystem": "npm"
},
{
"name": "@types/babel__template",
"direct": false,
"version": "7.4.4",
"ecosystem": "npm"
},
{
"name": "@types/babel__traverse",
"direct": false,
"version": "7.28.0",
"ecosystem": "npm"
},
{
"name": "@types/base64-stream",
"direct": false,
"version": "1.0.5",
"ecosystem": "npm"
},
{
"name": "@types/content-type",
"direct": false,
"version": "1.1.9",
"ecosystem": "npm"
},
{
"name": "@types/eslint",
"direct": false,
"version": "9.6.1",
"ecosystem": "npm"
},
{
"name": "@types/eslint__js",
"direct": false,
"version": "8.42.3",
"ecosystem": "npm"
},
{
"name": "@types/estree",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "@types/fs-extra",
"direct": false,
"version": "11.0.4",
"ecosystem": "npm"
},
{
"name": "@types/http-cache-semantics",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "@types/inquirer",
"direct": false,
"version": "9.0.9",
"ecosystem": "npm"
},
{
"name": "@types/istanbul-lib-coverage",
"direct": false,
"version": "2.0.6",
"ecosystem": "npm"
},
{
"name": "@types/istanbul-lib-report",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "@types/istanbul-reports",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "@types/jest",
"direct": false,
"version": "^30.0.0",
"ecosystem": "npm"
},
{
"name": "@types/jsdom",
"direct": false,
"version": "21.1.7",
"ecosystem": "npm"
},
{
"name": "@types/json-schema",
"direct": false,
"version": "7.0.15",
"ecosystem": "npm"
},
{
"name": "@types/json5",
"direct": false,
"version": "0.0.29",
"ecosystem": "npm"
},
{
"name": "@types/jsonfile",
"direct": false,
"version": "6.1.4",
"ecosystem": "npm"
},
{
"name": "@types/lodash",
"direct": false,
"version": "4.17.24",
"ecosystem": "npm"
},
{
"name": "@types/mime",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "@types/mime-types",
"direct": false,
"version": "2.1.4",
"ecosystem": "npm"
},
{
"name": "@types/node",
"direct": false,
"version": "25.5.0",
"ecosystem": "npm"
},
{
"name": "@types/pluralize",
"direct": false,
"version": "0.0.29",
"ecosystem": "npm"
},
{
"name": "@types/safe-regex",
"direct": false,
"version": "1.1.6",
"ecosystem": "npm"
},
{
"name": "@types/sax",
"direct": false,
"version": "1.2.7",
"ecosystem": "npm"
},
{
"name": "@types/stack-utils",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "@types/through",
"direct": false,
"version": "0.0.33",
"ecosystem": "npm"
},
{
"name": "@types/tough-cookie",
"direct": false,
"version": "4.0.5",
"ecosystem": "npm"
},
{
"name": "@types/triple-beam",
"direct": false,
"version": "1.3.5",
"ecosystem": "npm"
},
{
"name": "@types/validator",
"direct": false,
"version": "13.15.10",
"ecosystem": "npm"
},
{
"name": "@types/which",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "@types/xml2js",
"direct": false,
"version": "0.4.14",
"ecosystem": "npm"
},
{
"name": "@types/yargs",
"direct": false,
"version": "17.0.35",
"ecosystem": "npm"
},
{
"name": "@types/yargs-parser",
"direct": false,
"version": "21.0.3",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/eslint-plugin",
"direct": false,
"version": "8.57.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/parser",
"direct": false,
"version": "8.57.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/project-service",
"direct": false,
"version": "8.57.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/scope-manager",
"direct": false,
"version": "8.57.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/tsconfig-utils",
"direct": false,
"version": "8.57.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/type-utils",
"direct": false,
"version": "8.57.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/types",
"direct": false,
"version": "8.57.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/typescript-estree",
"direct": false,
"version": "8.57.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/utils",
"direct": false,
"version": "8.57.1",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/visitor-keys",
"direct": false,
"version": "8.57.1",
"ecosystem": "npm"
},
{
"name": "@ungap/structured-clone",
"direct": false,
"version": "1.3.1",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-android-arm-eabi",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-android-arm64",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-darwin-arm64",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-darwin-x64",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-freebsd-x64",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-arm-gnueabihf",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-arm-musleabihf",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-arm64-gnu",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-arm64-musl",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-loong64-gnu",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-loong64-musl",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-ppc64-gnu",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-riscv64-gnu",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-riscv64-musl",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-s390x-gnu",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-x64-gnu",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-linux-x64-musl",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-openharmony-arm64",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-wasm32-wasi",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-win32-arm64-msvc",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-win32-ia32-msvc",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@unrs/resolver-binding-win32-x64-msvc",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "@vladfrangu/async_event_emitter",
"direct": false,
"version": "2.4.7",
"ecosystem": "npm"
},
{
"name": "abbrev",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "abort-controller",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "acorn",
"direct": false,
"version": "8.16.0",
"ecosystem": "npm"
},
{
"name": "acorn-import-attributes",
"direct": false,
"version": "1.9.5",
"ecosystem": "npm"
},
{
"name": "acorn-jsx",
"direct": false,
"version": "5.3.2",
"ecosystem": "npm"
},
{
"name": "adm-zip",
"direct": false,
"version": "0.6.0",
"ecosystem": "npm"
},
{
"name": "agent-base",
"direct": false,
"version": "6.0.2",
"ecosystem": "npm"
},
{
"name": "agent-base",
"direct": false,
"version": "7.1.4",
"ecosystem": "npm"
},
{
"name": "ajv",
"direct": false,
"version": "6.14.0",
"ecosystem": "npm"
},
{
"name": "ansi-colors",
"direct": false,
"version": "4.1.3",
"ecosystem": "npm"
},
{
"name": "ansi-escapes",
"direct": false,
"version": "4.3.2",
"ecosystem": "npm"
},
{
"name": "ansi-regex",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "ansi-styles",
"direct": false,
"version": "2.2.1",
"ecosystem": "npm"
},
{
"name": "ansi-styles",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "ansi-styles",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "anymatch",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "aproba",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "are-we-there-yet",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "argparse",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "array-buffer-byte-length",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "array-includes",
"direct": false,
"version": "3.1.9",
"ecosystem": "npm"
},
{
"name": "array.prototype.findlastindex",
"direct": false,
"version": "1.2.6",
"ecosystem": "npm"
},
{
"name": "array.prototype.flat",
"direct": false,
"version": "1.3.3",
"ecosystem": "npm"
},
{
"name": "array.prototype.flatmap",
"direct": false,
"version": "1.3.3",
"ecosystem": "npm"
},
{
"name": "arraybuffer.prototype.slice",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "async",
"direct": false,
"version": "3.2.6",
"ecosystem": "npm"
},
{
"name": "async-function",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "asynckit",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "available-typed-arrays",
"direct": false,
"version": "1.0.7",
"ecosystem": "npm"
},
{
"name": "babel-jest",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "babel-plugin-istanbul",
"direct": false,
"version": "7.0.1",
"ecosystem": "npm"
},
{
"name": "babel-plugin-jest-hoist",
"direct": false,
"version": "30.4.0",
"ecosystem": "npm"
},
{
"name": "babel-preset-current-node-syntax",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "babel-preset-jest",
"direct": false,
"version": "30.4.0",
"ecosystem": "npm"
},
{
"name": "balanced-match",
"direct": false,
"version": "4.0.4",
"ecosystem": "npm"
},
{
"name": "base64-js",
"direct": false,
"version": "1.5.1",
"ecosystem": "npm"
},
{
"name": "baseline-browser-mapping",
"direct": false,
"version": "2.10.8",
"ecosystem": "npm"
},
{
"name": "bidi-js",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "bl",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "boolbase",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "bowser",
"direct": false,
"version": "2.14.1",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "5.0.8",
"ecosystem": "npm"
},
{
"name": "browserify-zlib",
"direct": false,
"version": "0.2.0",
"ecosystem": "npm"
},
{
"name": "browserslist",
"direct": false,
"version": "4.28.1",
"ecosystem": "npm"
},
{
"name": "bser",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "buffer",
"direct": false,
"version": "5.7.1",
"ecosystem": "npm"
},
{
"name": "buffer",
"direct": false,
"version": "6.0.3",
"ecosystem": "npm"
},
{
"name": "buffer-from",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "byte-counter",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "cacheable-lookup",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "cacheable-request",
"direct": false,
"version": "13.0.19",
"ecosystem": "npm"
},
{
"name": "call-bind",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "call-bind-apply-helpers",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "call-bound",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "callsites",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "callsites",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "camelcase",
"direct": false,
"version": "5.3.1",
"ecosystem": "npm"
},
{
"name": "camelcase",
"direct": false,
"version": "6.3.0",
"ecosystem": "npm"
},
{
"name": "caniuse-lite",
"direct": false,
"version": "1.0.30001780",
"ecosystem": "npm"
},
{
"name": "canvas",
"direct": false,
"version": "2.11.2",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "char-regex",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "chardet",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "cheerio-select",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "chownr",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "ci-info",
"direct": false,
"version": "4.4.0",
"ecosystem": "npm"
},
{
"name": "cjs-module-lexer",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "cli-cursor",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "cli-spinners",
"direct": false,
"version": "2.9.2",
"ecosystem": "npm"
},
{
"name": "cli-width",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "cli-width",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "cliui",
"direct": false,
"version": "8.0.1",
"ecosystem": "npm"
},
{
"name": "clone",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "co",
"direct": false,
"version": "4.6.0",
"ecosystem": "npm"
},
{
"name": "collect-v8-coverage",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "color",
"direct": false,
"version": "5.0.3",
"ecosystem": "npm"
},
{
"name": "color-convert",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "color-convert",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "color-name",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "color-name",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "color-string",
"direct": false,
"version": "2.1.4",
"ecosystem": "npm"
},
{
"name": "color-support",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "combined-stream",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "commander",
"direct": false,
"version": "14.0.3",
"ecosystem": "npm"
},
{
"name": "confusing-browser-globals",
"direct": false,
"version": "1.0.11",
"ecosystem": "npm"
},
{
"name": "console-control-strings",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "content-type",
"direct": false,
"version": "1.0.5",
"ecosystem": "npm"
},
{
"name": "convert-source-map",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "core-util-is",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "cross-spawn",
"direct": false,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "css-select",
"direct": false,
"version": "5.2.2",
"ecosystem": "npm"
},
{
"name": "css-tree",
"direct": false,
"version": "3.2.1",
"ecosystem": "npm"
},
{
"name": "css-what",
"direct": false,
"version": "6.2.2",
"ecosystem": "npm"
},
{
"name": "cssom",
"direct": false,
"version": "0.5.0",
"ecosystem": "npm"
},
{
"name": "cssstyle",
"direct": false,
"version": "4.6.0",
"ecosystem": "npm"
},
{
"name": "csv-stringify",
"direct": false,
"version": "6.8.1",
"ecosystem": "npm"
},
{
"name": "cypress",
"direct": false,
"version": "^13.0.0",
"ecosystem": "npm"
},
{
"name": "cypress",
"direct": false,
"version": "^15.3.0",
"ecosystem": "npm"
},
{
"name": "data-urls",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "data-urls",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "data-view-buffer",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "data-view-byte-length",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "data-view-byte-offset",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": false,
"version": "3.2.7",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": false,
"version": "4.4.3",
"ecosystem": "npm"
},
{
"name": "decimal.js",
"direct": false,
"version": "10.6.0",
"ecosystem": "npm"
},
{
"name": "decompress-response",
"direct": false,
"version": "10.0.0",
"ecosystem": "npm"
},
{
"name": "decompress-response",
"direct": false,
"version": "4.2.1",
"ecosystem": "npm"
},
{
"name": "dedent",
"direct": false,
"version": "1.7.2",
"ecosystem": "npm"
},
{
"name": "deep-is",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "deepmerge",
"direct": false,
"version": "4.3.1",
"ecosystem": "npm"
},
{
"name": "defaults",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "define-data-property",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "define-properties",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "delayed-stream",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "delegates",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "detect-libc",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "detect-newline",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "devtools-protocol",
"direct": false,
"version": "0.0.1656784",
"ecosystem": "npm"
},
{
"name": "doctrine",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "dom-serializer",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "domelementtype",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "domhandler",
"direct": false,
"version": "5.0.3",
"ecosystem": "npm"
},
{
"name": "domutils",
"direct": false,
"version": "3.2.2",
"ecosystem": "npm"
},
{
"name": "dot-prop",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "dot-prop",
"direct": false,
"version": "7.2.0",
"ecosystem": "npm"
},
{
"name": "dunder-proto",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "duplexer",
"direct": false,
"version": "0.1.2",
"ecosystem": "npm"
},
{
"name": "electron-to-chromium",
"direct": false,
"version": "1.5.321",
"ecosystem": "npm"
},
{
"name": "emittery",
"direct": false,
"version": "0.13.1",
"ecosystem": "npm"
},
{
"name": "emoji-regex",
"direct": false,
"version": "8.0.0",
"ecosystem": "npm"
},
{
"name": "enabled",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "encoding-sniffer",
"direct": false,
"version": "0.2.1",
"ecosystem": "npm"
},
{
"name": "entities",
"direct": false,
"version": "4.5.0",
"ecosystem": "npm"
},
{
"name": "entities",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "entities",
"direct": false,
"version": "7.0.1",
"ecosystem": "npm"
},
{
"name": "error-ex",
"direct": false,
"version": "1.3.4",
"ecosystem": "npm"
},
{
"name": "es-abstract",
"direct": false,
"version": "1.24.1",
"ecosystem": "npm"
},
{
"name": "es-define-property",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "es-errors",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "es-object-atoms",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "es-set-tostringtag",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "es-shim-unscopables",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "es-to-primitive",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "escalade",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "escape-string-regexp",
"direct": false,
"version": "1.0.5",
"ecosystem": "npm"
},
{
"name": "escape-string-regexp",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "escape-string-regexp",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "eslint",
"direct": false,
"version": "9.39.4",
"ecosystem": "npm"
},
{
"name": "eslint-config-airbnb-base",
"direct": false,
"version": "15.0.0",
"ecosystem": "npm"
},
{
"name": "eslint-config-prettier",
"direct": false,
"version": "8.10.2",
"ecosystem": "npm"
},
{
"name": "eslint-import-resolver-node",
"direct": false,
"version": "0.3.9",
"ecosystem": "npm"
},
{
"name": "eslint-module-utils",
"direct": false,
"version": "2.12.1",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-import",
"direct": false,
"version": "2.32.0",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-prettier",
"direct": false,
"version": "5.5.5",
"ecosystem": "npm"
},
{
"name": "eslint-scope",
"direct": false,
"version": "8.4.0",
"ecosystem": "npm"
},
{
"name": "eslint-visitor-keys",
"direct": false,
"version": "3.4.3",
"ecosystem": "npm"
},
{
"name": "eslint-visitor-keys",
"direct": false,
"version": "4.2.1",
"ecosystem": "npm"
},
{
"name": "eslint-visitor-keys",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "espree",
"direct": false,
"version": "10.4.0",
"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": "5.3.0",
"ecosystem": "npm"
},
{
"name": "esutils",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "event-stream",
"direct": false,
"version": "3.3.4",
"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": "execa",
"direct": false,
"version": "5.1.1",
"ecosystem": "npm"
},
{
"name": "exit-x",
"direct": false,
"version": "0.2.2",
"ecosystem": "npm"
},
{
"name": "expect",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "fast-deep-equal",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "fast-diff",
"direct": false,
"version": "1.3.0",
"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-xml-builder",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "fast-xml-parser",
"direct": false,
"version": "5.8.0",
"ecosystem": "npm"
},
{
"name": "fb-watchman",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "fdir",
"direct": false,
"version": "6.5.0",
"ecosystem": "npm"
},
{
"name": "fecha",
"direct": false,
"version": "4.2.3",
"ecosystem": "npm"
},
{
"name": "figlet",
"direct": false,
"version": "1.11.0",
"ecosystem": "npm"
},
{
"name": "figures",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "file-entry-cache",
"direct": false,
"version": "8.0.0",
"ecosystem": "npm"
},
{
"name": "filelist",
"direct": false,
"version": "1.0.6",
"ecosystem": "npm"
},
{
"name": "find-up",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "find-up",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "fingerprint-generator",
"direct": false,
"version": "2.1.82",
"ecosystem": "npm"
},
{
"name": "fingerprint-injector",
"direct": false,
"version": "2.1.82",
"ecosystem": "npm"
},
{
"name": "flat-cache",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "flatted",
"direct": false,
"version": "3.4.2",
"ecosystem": "npm"
},
{
"name": "fn.name",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "follow-redirects",
"direct": false,
"version": "1.16.0",
"ecosystem": "npm"
},
{
"name": "for-each",
"direct": false,
"version": "0.3.5",
"ecosystem": "npm"
},
{
"name": "form-data",
"direct": false,
"version": "4.0.6",
"ecosystem": "npm"
},
{
"name": "form-data-encoder",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "from",
"direct": false,
"version": "0.1.7",
"ecosystem": "npm"
},
{
"name": "fsevents",
"direct": false,
"version": "2.3.2",
"ecosystem": "npm"
},
{
"name": "fsevents",
"direct": false,
"version": "2.3.3",
"ecosystem": "npm"
},
{
"name": "function-bind",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "function.prototype.name",
"direct": false,
"version": "1.1.8",
"ecosystem": "npm"
},
{
"name": "functions-have-names",
"direct": false,
"version": "1.2.3",
"ecosystem": "npm"
},
{
"name": "gauge",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "generative-bayesian-network",
"direct": false,
"version": "2.1.83",
"ecosystem": "npm"
},
{
"name": "generator-function",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "gensync",
"direct": false,
"version": "1.0.0-beta.2",
"ecosystem": "npm"
},
{
"name": "get-caller-file",
"direct": false,
"version": "2.0.5",
"ecosystem": "npm"
},
{
"name": "get-intrinsic",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "get-package-type",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "get-proto",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "get-stream",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "get-stream",
"direct": false,
"version": "9.0.1",
"ecosystem": "npm"
},
{
"name": "get-symbol-description",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "glob-parent",
"direct": false,
"version": "6.0.2",
"ecosystem": "npm"
},
{
"name": "globals",
"direct": false,
"version": "14.0.0",
"ecosystem": "npm"
},
{
"name": "globals",
"direct": false,
"version": "15.15.0",
"ecosystem": "npm"
},
{
"name": "globalthis",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "gopd",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "got",
"direct": false,
"version": "14.6.6",
"ecosystem": "npm"
},
{
"name": "got-scraping",
"direct": false,
"version": "4.2.1",
"ecosystem": "npm"
},
{
"name": "graceful-fs",
"direct": false,
"version": "4.2.11",
"ecosystem": "npm"
},
{
"name": "has-ansi",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "has-bigints",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "has-flag",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "has-property-descriptors",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "has-proto",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "has-symbols",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "has-tostringtag",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "has-unicode",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "hasown",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "hasown",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "header-generator",
"direct": false,
"version": "2.1.82",
"ecosystem": "npm"
},
{
"name": "html-encoding-sniffer",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "html-encoding-sniffer",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "html-escaper",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "html-escaper",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "htmlparser2",
"direct": false,
"version": "10.1.0",
"ecosystem": "npm"
},
{
"name": "htmlparser2",
"direct": false,
"version": "8.0.2",
"ecosystem": "npm"
},
{
"name": "htmlparser2",
"direct": false,
"version": "9.1.0",
"ecosystem": "npm"
},
{
"name": "http-cache-semantics",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "http-proxy-agent",
"direct": false,
"version": "7.0.2",
"ecosystem": "npm"
},
{
"name": "http2-wrapper",
"direct": false,
"version": "2.2.1",
"ecosystem": "npm"
},
{
"name": "https-proxy-agent",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "https-proxy-agent",
"direct": false,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "human-signals",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "iconv-lite",
"direct": false,
"version": "0.6.3",
"ecosystem": "npm"
},
{
"name": "iconv-lite",
"direct": false,
"version": "0.7.2",
"ecosystem": "npm"
},
{
"name": "idcac-playwright",
"direct": false,
"version": "0.2.0",
"ecosystem": "npm"
},
{
"name": "ieee754",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "ignore",
"direct": false,
"version": "5.3.2",
"ecosystem": "npm"
},
{
"name": "ignore",
"direct": false,
"version": "7.0.5",
"ecosystem": "npm"
},
{
"name": "immediate",
"direct": false,
"version": "3.0.6",
"ecosystem": "npm"
},
{
"name": "import-fresh",
"direct": false,
"version": "3.3.1",
"ecosystem": "npm"
},
{
"name": "import-in-the-middle",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "import-local",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "imurmurhash",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "inherits",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "internal-slot",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "ip-address",
"direct": false,
"version": "10.2.0",
"ecosystem": "npm"
},
{
"name": "is-any-array",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "is-array-buffer",
"direct": false,
"version": "3.0.5",
"ecosystem": "npm"
},
{
"name": "is-arrayish",
"direct": false,
"version": "0.2.1",
"ecosystem": "npm"
},
{
"name": "is-async-function",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "is-bigint",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "is-boolean-object",
"direct": false,
"version": "1.2.2",
"ecosystem": "npm"
},
{
"name": "is-callable",
"direct": false,
"version": "1.2.7",
"ecosystem": "npm"
},
{
"name": "is-core-module",
"direct": false,
"version": "2.16.1",
"ecosystem": "npm"
},
{
"name": "is-data-view",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "is-date-object",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "is-extglob",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "is-finalizationregistry",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "is-fullwidth-code-point",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "is-generator-fn",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "is-generator-function",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "is-glob",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "is-interactive",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "is-map",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "is-negative-zero",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "is-number-object",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "is-obj",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "is-potential-custom-element-name",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "is-regex",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "is-set",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "is-shared-array-buffer",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "is-stream",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "is-stream",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "is-string",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "is-symbol",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "is-typed-array",
"direct": false,
"version": "1.1.15",
"ecosystem": "npm"
},
{
"name": "is-unicode-supported",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "is-weakmap",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "is-weakref",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "is-weakset",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "isarray",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "isarray",
"direct": false,
"version": "2.0.5",
"ecosystem": "npm"
},
{
"name": "isexe",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "isexe",
"direct": false,
"version": "3.1.5",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-coverage",
"direct": false,
"version": "3.2.2",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-instrument",
"direct": false,
"version": "6.0.3",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-report",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-source-maps",
"direct": false,
"version": "5.0.6",
"ecosystem": "npm"
},
{
"name": "istanbul-reports",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "jake",
"direct": false,
"version": "10.9.4",
"ecosystem": "npm"
},
{
"name": "jest",
"direct": false,
"version": "30.4.2",
"ecosystem": "npm"
},
{
"name": "jest-changed-files",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "jest-circus",
"direct": false,
"version": "30.4.2",
"ecosystem": "npm"
},
{
"name": "jest-cli",
"direct": false,
"version": "30.4.2",
"ecosystem": "npm"
},
{
"name": "jest-config",
"direct": false,
"version": "30.4.2",
"ecosystem": "npm"
},
{
"name": "jest-diff",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "jest-docblock",
"direct": false,
"version": "30.4.0",
"ecosystem": "npm"
},
{
"name": "jest-each",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "jest-environment-node",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "jest-haste-map",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "jest-leak-detector",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "jest-matcher-utils",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "jest-message-util",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "jest-mock",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "jest-pnp-resolver",
"direct": false,
"version": "1.2.3",
"ecosystem": "npm"
},
{
"name": "jest-regex-util",
"direct": false,
"version": "30.4.0",
"ecosystem": "npm"
},
{
"name": "jest-resolve",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "jest-resolve-dependencies",
"direct": false,
"version": "30.4.2",
"ecosystem": "npm"
},
{
"name": "jest-runner",
"direct": false,
"version": "30.4.2",
"ecosystem": "npm"
},
{
"name": "jest-runtime",
"direct": false,
"version": "30.4.2",
"ecosystem": "npm"
},
{
"name": "jest-snapshot",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "jest-util",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "jest-validate",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "jest-watcher",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "jest-worker",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "jquery",
"direct": false,
"version": "3.7.1",
"ecosystem": "npm"
},
{
"name": "js-tokens",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "js-yaml",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "jsesc",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "json-buffer",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "json-parse-even-better-errors",
"direct": false,
"version": "2.3.1",
"ecosystem": "npm"
},
{
"name": "json-schema-traverse",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "json-stable-stringify-without-jsonify",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "json5",
"direct": false,
"version": "2.2.3",
"ecosystem": "npm"
},
{
"name": "jsonfile",
"direct": false,
"version": "6.2.0",
"ecosystem": "npm"
},
{
"name": "keyv",
"direct": false,
"version": "4.5.4",
"ecosystem": "npm"
},
{
"name": "keyv",
"direct": false,
"version": "5.6.0",
"ecosystem": "npm"
},
{
"name": "kleur",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "kuler",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "leven",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "levn",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "lie",
"direct": false,
"version": "3.3.0",
"ecosystem": "npm"
},
{
"name": "lines-and-columns",
"direct": false,
"version": "1.2.4",
"ecosystem": "npm"
},
{
"name": "linkedom",
"direct": false,
"version": "0.18.12",
"ecosystem": "npm"
},
{
"name": "locate-path",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "locate-path",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "lodash.isequal",
"direct": false,
"version": "4.5.0",
"ecosystem": "npm"
},
{
"name": "lodash.merge",
"direct": false,
"version": "4.6.2",
"ecosystem": "npm"
},
{
"name": "log-symbols",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "logform",
"direct": false,
"version": "2.7.0",
"ecosystem": "npm"
},
{
"name": "lowercase-keys",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "lru-cache",
"direct": false,
"version": "10.4.3",
"ecosystem": "npm"
},
{
"name": "lru-cache",
"direct": false,
"version": "11.2.7",
"ecosystem": "npm"
},
{
"name": "lru-cache",
"direct": false,
"version": "5.1.1",
"ecosystem": "npm"
},
{
"name": "make-dir",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "make-dir",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "makeerror",
"direct": false,
"version": "1.0.12",
"ecosystem": "npm"
},
{
"name": "map-stream",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "math-intrinsics",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "mdn-data",
"direct": false,
"version": "2.27.1",
"ecosystem": "npm"
},
{
"name": "merge-stream",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "mime-db",
"direct": false,
"version": "1.52.0",
"ecosystem": "npm"
},
{
"name": "mimic-fn",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "mimic-response",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "mimic-response",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "minimist",
"direct": false,
"version": "1.2.8",
"ecosystem": "npm"
},
{
"name": "minipass",
"direct": false,
"version": "7.1.3",
"ecosystem": "npm"
},
{
"name": "minizlib",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "ml-array-max",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "ml-array-min",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "ml-array-rescale",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "ml-logistic-regression",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "ml-matrix",
"direct": false,
"version": "6.13.0",
"ecosystem": "npm"
},
{
"name": "module-details-from-path",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "ms",
"direct": false,
"version": "2.1.3",
"ecosystem": "npm"
},
{
"name": "mute-stream",
"direct": false,
"version": "0.0.8",
"ecosystem": "npm"
},
{
"name": "mute-stream",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "nan",
"direct": false,
"version": "2.26.1",
"ecosystem": "npm"
},
{
"name": "nanoid",
"direct": false,
"version": "3.3.15",
"ecosystem": "npm"
},
{
"name": "napi-postinstall",
"direct": false,
"version": "0.3.4",
"ecosystem": "npm"
},
{
"name": "natural-compare",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "node-fetch",
"direct": false,
"version": "2.7.0",
"ecosystem": "npm"
},
{
"name": "node-int64",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "node-releases",
"direct": false,
"version": "2.0.36",
"ecosystem": "npm"
},
{
"name": "nopt",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "normalize-path",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "normalize-strings",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "normalize-url",
"direct": false,
"version": "8.1.1",
"ecosystem": "npm"
},
{
"name": "npm-run-path",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "npmlog",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "nth-check",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "nwsapi",
"direct": false,
"version": "2.2.24",
"ecosystem": "npm"
},
{
"name": "object-assign",
"direct": false,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "object-inspect",
"direct": false,
"version": "1.13.4",
"ecosystem": "npm"
},
{
"name": "object-keys",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "object.assign",
"direct": false,
"version": "4.1.7",
"ecosystem": "npm"
},
{
"name": "object.entries",
"direct": false,
"version": "1.1.9",
"ecosystem": "npm"
},
{
"name": "object.fromentries",
"direct": false,
"version": "2.0.8",
"ecosystem": "npm"
},
{
"name": "object.groupby",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "object.values",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "once",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "one-time",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "onetime",
"direct": false,
"version": "5.1.2",
"ecosystem": "npm"
},
{
"name": "optionator",
"direct": false,
"version": "0.9.4",
"ecosystem": "npm"
},
{
"name": "ora",
"direct": false,
"version": "5.4.1",
"ecosystem": "npm"
},
{
"name": "ow",
"direct": false,
"version": "0.28.2",
"ecosystem": "npm"
},
{
"name": "ow",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "own-keys",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "p-cancelable",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "p-limit",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "p-limit",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "p-locate",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "p-locate",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "p-try",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "pako",
"direct": false,
"version": "1.0.11",
"ecosystem": "npm"
},
{
"name": "parent-module",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "parent-require",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "parse-json",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "parse5",
"direct": false,
"version": "7.3.0",
"ecosystem": "npm"
},
{
"name": "parse5",
"direct": false,
"version": "8.0.0",
"ecosystem": "npm"
},
{
"name": "parse5-htmlparser2-tree-adapter",
"direct": false,
"version": "7.1.0",
"ecosystem": "npm"
},
{
"name": "parse5-parser-stream",
"direct": false,
"version": "7.1.2",
"ecosystem": "npm"
},
{
"name": "path-exists",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "path-expression-matcher",
"direct": false,
"version": "1.5.0",
"ecosystem": "npm"
},
{
"name": "path-key",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "path-parse",
"direct": false,
"version": "1.0.7",
"ecosystem": "npm"
},
{
"name": "path-scurry",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "path2d",
"direct": false,
"version": "0.2.2",
"ecosystem": "npm"
},
{
"name": "pause-stream",
"direct": false,
"version": "0.0.11",
"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": "pirates",
"direct": false,
"version": "4.0.7",
"ecosystem": "npm"
},
{
"name": "pkg-dir",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "playwright-core",
"direct": false,
"version": "1.61.1",
"ecosystem": "npm"
},
{
"name": "pluralize",
"direct": false,
"version": "8.0.0",
"ecosystem": "npm"
},
{
"name": "possible-typed-array-names",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "prelude-ls",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "prettier-linter-helpers",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "pretty-format",
"direct": false,
"version": "30.4.1",
"ecosystem": "npm"
},
{
"name": "process",
"direct": false,
"version": "0.11.10",
"ecosystem": "npm"
},
{
"name": "process-nextick-args",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "proper-lockfile",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "proxy-chain",
"direct": false,
"version": "2.7.1",
"ecosystem": "npm"
},
{
"name": "proxy-from-env",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "punycode",
"direct": false,
"version": "1.4.1",
"ecosystem": "npm"
},
{
"name": "punycode",
"direct": false,
"version": "2.3.1",
"ecosystem": "npm"
},
{
"name": "pure-rand",
"direct": false,
"version": "7.0.1",
"ecosystem": "npm"
},
{
"name": "qs",
"direct": false,
"version": "6.15.2",
"ecosystem": "npm"
},
{
"name": "quick-lru",
"direct": false,
"version": "5.1.1",
"ecosystem": "npm"
},
{
"name": "quick-lru",
"direct": false,
"version": "7.3.0",
"ecosystem": "npm"
},
{
"name": "react-is",
"direct": false,
"version": "18.3.1",
"ecosystem": "npm"
},
{
"name": "react-is",
"direct": false,
"version": "19.2.7",
"ecosystem": "npm"
},
{
"name": "readable-stream",
"direct": false,
"version": "2.3.8",
"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": "reflect.getprototypeof",
"direct": false,
"version": "1.0.10",
"ecosystem": "npm"
},
{
"name": "regexp-tree",
"direct": false,
"version": "0.1.27",
"ecosystem": "npm"
},
{
"name": "regexp.prototype.flags",
"direct": false,
"version": "1.5.4",
"ecosystem": "npm"
},
{
"name": "require-directory",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "require-from-string",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "require-in-the-middle",
"direct": false,
"version": "8.0.1",
"ecosystem": "npm"
},
{
"name": "resolve",
"direct": false,
"version": "1.22.11",
"ecosystem": "npm"
},
{
"name": "resolve-alpn",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "resolve-cwd",
"direct": false,
"version": "3.0.0",
"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": "responselike",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "restore-cursor",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "retry",
"direct": false,
"version": "0.12.0",
"ecosystem": "npm"
},
{
"name": "rimraf",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "robots-parser",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "rrweb-cssom",
"direct": false,
"version": "0.8.0",
"ecosystem": "npm"
},
{
"name": "run-async",
"direct": false,
"version": "2.4.1",
"ecosystem": "npm"
},
{
"name": "run-async",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "rxjs",
"direct": false,
"version": "7.8.2",
"ecosystem": "npm"
},
{
"name": "safe-array-concat",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "safe-buffer",
"direct": false,
"version": "5.1.2",
"ecosystem": "npm"
},
{
"name": "safe-buffer",
"direct": false,
"version": "5.2.1",
"ecosystem": "npm"
},
{
"name": "safe-push-apply",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "safe-regex-test",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "safe-stable-stringify",
"direct": false,
"version": "2.5.0",
"ecosystem": "npm"
},
{
"name": "safer-buffer",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "sax",
"direct": false,
"version": "1.6.0",
"ecosystem": "npm"
},
{
"name": "saxes",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "6.3.1",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "7.7.4",
"ecosystem": "npm"
},
{
"name": "set-blocking",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "set-function-length",
"direct": false,
"version": "1.2.2",
"ecosystem": "npm"
},
{
"name": "set-function-name",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "set-proto",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "setimmediate",
"direct": false,
"version": "1.0.5",
"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": "side-channel",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "side-channel-list",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "side-channel-map",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "side-channel-weakmap",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "signal-exit",
"direct": false,
"version": "3.0.7",
"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": "3.1.1",
"ecosystem": "npm"
},
{
"name": "slash",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "smart-buffer",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "socks",
"direct": false,
"version": "2.8.9",
"ecosystem": "npm"
},
{
"name": "socks-proxy-agent",
"direct": false,
"version": "8.0.5",
"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": "source-map-support",
"direct": false,
"version": "0.5.13",
"ecosystem": "npm"
},
{
"name": "split",
"direct": false,
"version": "0.3.3",
"ecosystem": "npm"
},
{
"name": "stack-trace",
"direct": false,
"version": "0.0.10",
"ecosystem": "npm"
},
{
"name": "stack-utils",
"direct": false,
"version": "2.0.6",
"ecosystem": "npm"
},
{
"name": "stop-iteration-iterator",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "stream-chain",
"direct": false,
"version": "2.2.5",
"ecosystem": "npm"
},
{
"name": "stream-combiner",
"direct": false,
"version": "0.0.4",
"ecosystem": "npm"
},
{
"name": "stream-json",
"direct": false,
"version": "1.9.1",
"ecosystem": "npm"
},
{
"name": "string-comparison",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "string-length",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "string-width",
"direct": false,
"version": "4.2.3",
"ecosystem": "npm"
},
{
"name": "string.prototype.trim",
"direct": false,
"version": "1.2.10",
"ecosystem": "npm"
},
{
"name": "string.prototype.trimend",
"direct": false,
"version": "1.0.9",
"ecosystem": "npm"
},
{
"name": "string.prototype.trimstart",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "string_decoder",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "string_decoder",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "strip-ansi",
"direct": false,
"version": "3.0.1",
"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-bom",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "strip-final-newline",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "strip-json-comments",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "strnum",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "strtok3",
"direct": false,
"version": "10.3.4",
"ecosystem": "npm"
},
{
"name": "supports-color",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "supports-color",
"direct": false,
"version": "7.2.0",
"ecosystem": "npm"
},
{
"name": "supports-color",
"direct": false,
"version": "8.1.1",
"ecosystem": "npm"
},
{
"name": "supports-preserve-symlinks-flag",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "syllable",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "symbol-tree",
"direct": false,
"version": "3.2.4",
"ecosystem": "npm"
},
{
"name": "synckit",
"direct": false,
"version": "0.11.12",
"ecosystem": "npm"
},
{
"name": "tar",
"direct": false,
"version": "7.5.22",
"ecosystem": "npm"
},
{
"name": "test-exclude",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "text-hex",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "through",
"direct": false,
"version": "2.3.8",
"ecosystem": "npm"
},
{
"name": "tiny-typed-emitter",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "tinyglobby",
"direct": false,
"version": "0.2.15",
"ecosystem": "npm"
},
{
"name": "tldts-core",
"direct": false,
"version": "6.1.86",
"ecosystem": "npm"
},
{
"name": "tldts-core",
"direct": false,
"version": "7.0.27",
"ecosystem": "npm"
},
{
"name": "tmpl",
"direct": false,
"version": "1.0.5",
"ecosystem": "npm"
},
{
"name": "token-types",
"direct": false,
"version": "6.1.2",
"ecosystem": "npm"
},
{
"name": "tough-cookie",
"direct": false,
"version": "5.1.2",
"ecosystem": "npm"
},
{
"name": "tr46",
"direct": false,
"version": "0.0.3",
"ecosystem": "npm"
},
{
"name": "tr46",
"direct": false,
"version": "5.1.1",
"ecosystem": "npm"
},
{
"name": "tr46",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "triple-beam",
"direct": false,
"version": "1.4.1",
"ecosystem": "npm"
},
{
"name": "ts-api-utils",
"direct": false,
"version": "2.4.0",
"ecosystem": "npm"
},
{
"name": "tsconfig-paths",
"direct": false,
"version": "3.15.0",
"ecosystem": "npm"
},
{
"name": "tslib",
"direct": false,
"version": "2.8.1",
"ecosystem": "npm"
},
{
"name": "type-check",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "type-detect",
"direct": false,
"version": "4.0.8",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "0.21.3",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "2.19.0",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "4.41.0",
"ecosystem": "npm"
},
{
"name": "typed-array-buffer",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "typed-array-byte-length",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "typed-array-byte-offset",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "typed-array-length",
"direct": false,
"version": "1.0.7",
"ecosystem": "npm"
},
{
"name": "typescript-eslint",
"direct": false,
"version": "8.57.1",
"ecosystem": "npm"
},
{
"name": "uhyphen",
"direct": false,
"version": "0.2.0",
"ecosystem": "npm"
},
{
"name": "uint8array-extras",
"direct": false,
"version": "1.5.0",
"ecosystem": "npm"
},
{
"name": "unbox-primitive",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "undici",
"direct": false,
"version": "7.28.0",
"ecosystem": "npm"
},
{
"name": "undici-types",
"direct": false,
"version": "7.18.2",
"ecosystem": "npm"
},
{
"name": "universalify",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "unrs-resolver",
"direct": false,
"version": "1.12.2",
"ecosystem": "npm"
},
{
"name": "update-browserslist-db",
"direct": false,
"version": "1.2.3",
"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-to-istanbul",
"direct": false,
"version": "9.3.0",
"ecosystem": "npm"
},
{
"name": "vali-date",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "w3c-xmlserializer",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "walker",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "wcwidth",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "webidl-conversions",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "webidl-conversions",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "webidl-conversions",
"direct": false,
"version": "8.0.1",
"ecosystem": "npm"
},
{
"name": "whatwg-encoding",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "whatwg-mimetype",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "whatwg-mimetype",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "whatwg-url",
"direct": false,
"version": "14.2.0",
"ecosystem": "npm"
},
{
"name": "whatwg-url",
"direct": false,
"version": "16.0.1",
"ecosystem": "npm"
},
{
"name": "whatwg-url",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "which-boxed-primitive",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "which-builtin-type",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "which-collection",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "which-typed-array",
"direct": false,
"version": "1.1.20",
"ecosystem": "npm"
},
{
"name": "wide-align",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "winston-transport",
"direct": false,
"version": "4.9.0",
"ecosystem": "npm"
},
{
"name": "word-wrap",
"direct": false,
"version": "1.2.5",
"ecosystem": "npm"
},
{
"name": "wrap-ansi",
"direct": false,
"version": "6.2.0",
"ecosystem": "npm"
},
{
"name": "wrap-ansi",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "wrappy",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "write-file-atomic",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "xml-name-validator",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "xml-naming",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "xmlbuilder",
"direct": false,
"version": "11.0.1",
"ecosystem": "npm"
},
{
"name": "xmlchars",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "y18n",
"direct": false,
"version": "5.0.8",
"ecosystem": "npm"
},
{
"name": "yallist",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "yallist",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "yargonaut",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "yargs-parser",
"direct": false,
"version": "21.1.1",
"ecosystem": "npm"
},
{
"name": "yocto-queue",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "yoctocolors-cjs",
"direct": false,
"version": "2.1.3",
"ecosystem": "npm"
}
],
"collected": true,
"truncated": false,
"total_count": 941,
"direct_count": 46,
"indirect_count": 895
}
},
"maintainership": {
"issues": {
"open_prs": 7,
"merged_prs": 642,
"open_issues": 13,
"closed_ratio": 0.74,
"closed_issues": 37,
"closed_unmerged_prs": 109
},
"bus_factor": 1,
"bot_contributors": 2,
"top_contributors": [
{
"type": "User",
"login": "younglim",
"commits": 670,
"avatar_url": "https://avatars.githubusercontent.com/u/2021525?v=4"
},
{
"type": "User",
"login": "CKodes",
"commits": 77,
"avatar_url": "https://avatars.githubusercontent.com/u/78678795?v=4"
},
{
"type": "User",
"login": "WilsonkwSheng",
"commits": 34,
"avatar_url": "https://avatars.githubusercontent.com/u/30139121?v=4"
},
{
"type": "User",
"login": "greyguy21",
"commits": 32,
"avatar_url": "https://avatars.githubusercontent.com/u/62389546?v=4"
},
{
"type": "User",
"login": "khoodehui",
"commits": 31,
"avatar_url": "https://avatars.githubusercontent.com/u/67047571?v=4"
},
{
"type": "User",
"login": "joshualwf",
"commits": 29,
"avatar_url": "https://avatars.githubusercontent.com/u/105707762?v=4"
},
{
"type": "User",
"login": "jodichoo",
"commits": 28,
"avatar_url": "https://avatars.githubusercontent.com/u/77408309?v=4"
},
{
"type": "User",
"login": "Thumster",
"commits": 26,
"avatar_url": "https://avatars.githubusercontent.com/u/50561219?v=4"
},
{
"type": "User",
"login": "shioju",
"commits": 26,
"avatar_url": "https://avatars.githubusercontent.com/u/4652591?v=4"
},
{
"type": "User",
"login": "angyonghaseyo",
"commits": 25,
"avatar_url": "https://avatars.githubusercontent.com/u/89739997?v=4"
}
],
"contributors_sampled": 29,
"top_contributor_share": 0.633
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"bump-package-version.yml",
"docker-push-ghcr.yml",
"docker-test.yml",
"image.yml",
"publish.yml"
],
"has_docs_dir": false,
"linter_configs": [
"eslint.config.js"
],
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"package-lock.json"
],
"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": null,
"reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 0,
"reason": "0 out of 17 merged PRs checked by a CI test -- score normalized to 0",
"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/26 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 3,
"reason": "project has 1 contributing companies or organizations -- score normalized to 3",
"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": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 1 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": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 1,
"reason": "dependency not pinned by hash detected -- score normalized to 1",
"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": 10,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": 0,
"reason": "Project has not signed or included provenance with any releases.",
"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": 10,
"reason": "0 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "0034173737a089071aa1b8ac77c37ffb4cf5ac43",
"ran_at": "2026-08-01T19:03:37Z",
"aggregate_score": 5.5,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": true,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-31T05:54:49Z",
"oldest_open_prs": [
{
"number": 587,
"created_at": "2025-10-31T04:37:04Z",
"last_comment_at": "2026-02-03T09:44:32Z",
"last_comment_author": "younglim"
},
{
"number": 601,
"created_at": "2025-12-09T01:27:09Z",
"last_comment_at": "2025-12-09T12:36:09Z",
"last_comment_author": "mgifford"
},
{
"number": 680,
"created_at": "2026-03-12T09:15:38Z",
"last_comment_at": "2026-03-12T09:51:25Z",
"last_comment_author": "younglim"
},
{
"number": 717,
"created_at": "2026-04-28T09:19:21Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 751,
"created_at": "2026-06-12T02:29:42Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 772,
"created_at": "2026-06-24T07:52:08Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 800,
"created_at": "2026-07-27T01:07:17Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-07-31T00:25:35Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 7,
"created_at": "2020-09-04T13:16:15Z",
"last_comment_at": "2021-12-14T01:37:58Z",
"last_comment_author": "mgifford"
},
{
"number": 14,
"created_at": "2020-09-24T17:29:30Z",
"last_comment_at": "2024-10-14T09:57:41Z",
"last_comment_author": "younglim"
},
{
"number": 19,
"created_at": "2021-01-25T14:02:34Z",
"last_comment_at": "2023-07-25T19:09:37Z",
"last_comment_author": "brianteeman"
},
{
"number": 44,
"created_at": "2021-11-30T20:57:06Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 52,
"created_at": "2022-02-18T02:24:59Z",
"last_comment_at": "2024-01-18T17:11:54Z",
"last_comment_author": "jcrain23"
},
{
"number": 217,
"created_at": "2023-10-26T16:02:52Z",
"last_comment_at": "2024-03-14T15:58:44Z",
"last_comment_author": "brianteeman"
},
{
"number": 240,
"created_at": "2023-11-27T13:03:28Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 241,
"created_at": "2023-11-27T13:05:21Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 255,
"created_at": "2024-01-05T17:24:52Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 256,
"created_at": "2024-01-06T13:47:24Z",
"last_comment_at": "2024-01-08T17:30:58Z",
"last_comment_author": "mgifford"
},
{
"number": 257,
"created_at": "2024-01-06T14:01:20Z",
"last_comment_at": "2024-01-08T17:52:33Z",
"last_comment_author": "mgifford"
},
{
"number": 263,
"created_at": "2024-01-19T20:17:40Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 380,
"created_at": "2024-07-03T14:18:43Z",
"last_comment_at": "2024-07-18T07:56:03Z",
"last_comment_author": "younglim"
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/GovTechSG/oobee",
"host": "github.com",
"name": "oobee",
"owner": "GovTechSG"
},
"metrics": {
"overall": {
"key": "overall",
"band": "excellent",
"name": "Overall health",
"note": "The weighted overall 69 is calibrated to 81 on the published index scale (record calibration 2026-08-02).",
"notes": [
{
"code": "overall_calibration",
"params": {
"raw": 69,
"calibrated": 81,
"calibration": "2026-08-02"
}
}
],
"value": 81,
"inputs": {
"security": 64,
"vitality": 89,
"community": 67,
"governance": 65,
"calibration": "2026-08-02",
"engineering": 58,
"ai_readiness": 73,
"weighted_overall_raw": 69
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "excellent",
"name": "Vitality",
"value": 89,
"weight": 0.21,
"metrics": [
{
"key": "development_activity",
"band": "excellent",
"name": "Development activity",
"note": null,
"notes": [],
"value": 88,
"inputs": {
"commits_last_year": 265,
"human_commit_share": 0.82,
"days_since_last_push": 1,
"active_weeks_last_year": 35
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 1 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 1
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "35/52 weeks with commits",
"points": 24.2,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 35
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "265 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 265
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 1 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": null,
"notes": [],
"value": 90,
"inputs": {
"releases_count": 98,
"latest_release_tag": "0.11.6",
"releases_from_tags": false,
"days_since_latest_release": 1,
"mean_days_between_releases": 14.2
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "98 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 98
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 1 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 1
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~14.2 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 14.2
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "exceptional",
"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": 4,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 4 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 4
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "good",
"name": "Community & Adoption",
"value": 67,
"weight": 0.17,
"metrics": [
{
"key": "popularity",
"band": "moderate",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 54,
"inputs": {
"forks": 52,
"stars": 164,
"watchers": 6,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "164 stars",
"points": 35.9,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 164
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "52 forks",
"points": 14.2,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 52
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "6 watchers",
"points": 3.9,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 6
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "good",
"name": "Community health",
"note": null,
"notes": [],
"value": 72,
"inputs": {
"has_readme": true,
"has_license": true,
"readme_badges": null,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": true,
"readme_badge_services": [],
"has_pull_request_template": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"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": 13.5,
"status": "met",
"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": 6.3,
"status": "met",
"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": 80,
"inputs": {
"packages": [
"@govtechsg/oobee"
],
"dependents": null,
"ecosystems": "npm",
"total_downloads": null,
"monthly_downloads": 59435
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "59,435 downloads/month across npm",
"points": 63.7,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 59435,
"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": "good",
"name": "Sustainability & Governance",
"value": 65,
"weight": 0.23,
"metrics": [
{
"key": "maintainer_resilience",
"band": "at_risk",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 34,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 29,
"top_contributor_share": 0.633
},
"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 63% of commits",
"points": 8.3,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 63
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "29 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 29
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 1 contributing companies or organizations -- score normalized to 3",
"points": 3,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): Newcomer PR acceptance. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"newcomer_pr_acceptance"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 65,
"inputs": {
"merged_prs": 642,
"open_issues": 13,
"closed_issues": 37,
"prs_merged_7d": null,
"prs_decided_7d": null,
"prs_merged_30d": null,
"prs_decided_30d": null,
"issue_closed_ratio": 0.74,
"closed_unmerged_prs": 109,
"first_time_authors_30d": null,
"first_time_prs_merged_30d": null,
"first_time_prs_decided_30d": null
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "74% of issues closed",
"points": 31.1,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 74
}
}
],
"max_points": 42
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "642/751 decided PRs merged",
"points": 25.6,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 642,
"decided": 751
}
}
],
"max_points": 30
},
{
"key": "newcomer_pr_acceptance",
"name": "Newcomer PR acceptance",
"detail": "no first-time contributor's PR decided in 30d",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_newcomer_prs",
"params": {
"days": 30
}
}
],
"max_points": 13
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/26 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "good",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 73,
"inputs": {
"followers": 312,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "GovTechSG",
"public_repos": 171,
"account_age_days": 4097
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "organization-owned",
"points": 30,
"status": "met",
"details": [
{
"code": "owner_organization",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "312 followers of GovTechSG",
"points": 17.9,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 312,
"login": "GovTechSG"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "171 public repos, account ~11 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 171
}
},
{
"code": "account_age_years",
"params": {
"years": 11
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "exceptional",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"@govtechsg/oobee"
],
"ecosystems": "npm",
"any_deprecated": false,
"min_days_since_publish": 9
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on npm",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "npm"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 9 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 9
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "49 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 49
}
}
],
"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": "moderate",
"name": "Engineering Quality",
"value": 58,
"weight": 0.19,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 64,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "5 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 5
}
}
],
"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": "eslint.config.js",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "eslint.config.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": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "0 out of 17 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"topics": [],
"has_wiki": true,
"homepage": null,
"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": null,
"points": 0,
"status": "missed",
"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": null,
"points": 0,
"status": "missed",
"details": [],
"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": 64,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "moderate",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Branch-Protection. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"branch_protection"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 55,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 5.5
},
"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": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "0 out of 17 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"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/26 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 1 contributing companies or organizations -- score normalized to 3",
"points": 0.8,
"status": "partial",
"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 detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 1 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 detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 1",
"points": 0.5,
"status": "partial",
"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 detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"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": "0 existing vulnerabilities detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "exceptional",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:@govtechsg/oobee@0.11.3 runtime dependency closure — what installing the published package pulls in — 500 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:@govtechsg/oobee@0.11.3",
"assessed": 500
}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 100,
"inputs": {
"source": "osv",
"advisories": 0,
"affected_packages": 0,
"assessed_packages": 500,
"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": "exceptional",
"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": 500,
"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": "exceptional",
"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"
],
"commit_weight_rule": {
"min_commits": 50,
"min_commit_share": 0.1
},
"review_only_matches": 0,
"below_threshold_exposures": [],
"assessed_self_published_locations": 4
},
"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": "good",
"name": "AI Readiness",
"value": 73,
"weight": 0.04,
"metrics": [
{
"key": "ai_agent_context",
"band": "excellent",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.841,
"agent_instruction_files": [
"AGENTS.md"
],
"agent_instruction_max_bytes": 40971
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "AGENTS.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "AGENTS.md"
}
}
],
"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": "69 of 82 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 69,
"sampled": 82
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "good",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 73,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"package-lock.json"
],
"has_dockerfile": true,
"typed_language": false,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [
"examples/oobee-cypress-integration-ts/tsconfig.json",
"examples/oobee-playwright-integration-ts/tsconfig.json",
"tsconfig.json"
],
"agent_commit_share": 0.48,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0.07
},
"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": "eslint.config.js",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "eslint.config.js"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "examples/oobee-cypress-integration-ts/tsconfig.json, examples/oobee-playwright-integration-ts/tsconfig.json, tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples/oobee-cypress-integration-ts/tsconfig.json, examples/oobee-playwright-integration-ts/tsconfig.json, tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "Dockerfile, lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Dockerfile, lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "48 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 48,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "7 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 7,
"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 1",
"points": 1,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "good",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 79,
"inputs": {
"primary_language": "EJS",
"largest_source_bytes": 1456005,
"source_files_sampled": 82,
"oversized_source_files": 4
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "EJS with type-check config (examples/oobee-cypress-integration-ts/tsconfig.json, examples/oobee-playwright-integration-ts/tsconfig.json, tsconfig.json)",
"points": 27,
"status": "partial",
"details": [
{
"code": "typecheck_config_language",
"params": {
"files": "examples/oobee-cypress-integration-ts/tsconfig.json, examples/oobee-playwright-integration-ts/tsconfig.json, tsconfig.json",
"language": "EJS"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "4/82 source files over 60KB",
"points": 52.3,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 82,
"oversized": 4
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "weak",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"examples"
],
"has_mcp_signal": false,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "examples",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples"
}
}
],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
}
],
"classification": {
"top": [
"library",
"application"
],
"labels": [
"library",
"cli"
],
"scores": {
"cli": 4,
"library": 6
},
"primary": "library",
"evidence": [
{
"tier": "distribution",
"label": "library",
"source": "registry:npm",
"weight": 6
},
{
"tier": "dependencies",
"label": "cli",
"source": "dep:yargs",
"weight": 4
}
],
"artifacts": [],
"confidence": "medium",
"host_extension": false,
"runs_as_process": true,
"consumed_by_code": true
},
"metrics_version": "2.5.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
],
"report_type": "repository",
"generated_at": "2026-08-01T19:04:02.694606Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/g/GovTechSG/oobee.svg",
"full_name": "GovTechSG/oobee",
"license_state": "standard",
"license_spdx": "MIT"
}