Informe JSON sin procesar legible por máquina
{
"data": {
"icon": {
"bytes": 9194,
"width": 256,
"height": 256,
"rejected": [],
"collected": true,
"media_type": "image/jpeg",
"source_url": "https://avatars.githubusercontent.com/u/205419?v=4&s=256",
"source_type": "avatar",
"content_hash": "95ae7e1be65c089a932080720ed1d8900761244e23fe24896f3a4af533d23823",
"candidates_considered": 1
},
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 8580,
"has_wiki": false,
"homepage": null,
"languages": {
"C++": 23778,
"Shell": 280,
"Python": 2385,
"JavaScript": 22762,
"TypeScript": 78646
},
"pushed_at": "2026-07-25T05:59:27Z",
"created_at": "2025-12-05T18:44:38Z",
"owner_type": "User",
"updated_at": "2026-07-25T05:59:34Z",
"description": null,
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "trunk",
"license_spdx_raw": "MIT",
"primary_language": "TypeScript",
"significant_languages": [
"TypeScript",
"C++",
"JavaScript"
]
},
"owner": {
"blog": null,
"name": "Adam Zieliński",
"type": "User",
"login": "adamziel",
"company": "Automattic",
"location": "Wrocław, Poland",
"followers": 282,
"avatar_url": "https://avatars.githubusercontent.com/u/205419?v=4",
"created_at": "2010-02-17T17:09:20Z",
"is_verified": null,
"public_repos": 165,
"account_age_days": 6012
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v2.2.10",
"kind": "patch",
"published_at": "2026-07-25T05:59:25Z"
},
{
"tag": "v2.2.9",
"kind": "patch",
"published_at": "2026-05-27T07:20:50Z"
},
{
"tag": "v2.2.8",
"kind": "patch",
"published_at": "2026-05-20T15:38:35Z"
},
{
"tag": "v2.2.7",
"kind": "patch",
"published_at": "2026-01-30T23:51:03Z"
},
{
"tag": "v2.2.6",
"kind": "patch",
"published_at": "2025-12-09T13:24:57Z"
},
{
"tag": "v2.2.5",
"kind": "patch",
"published_at": "2025-12-09T13:12:38Z"
},
{
"tag": "v2.2.4",
"kind": "patch",
"published_at": "2025-12-06T01:01:24Z"
},
{
"tag": "v2.2.3",
"kind": "patch",
"published_at": "2025-12-06T00:57:40Z"
},
{
"tag": "v2.2.2",
"kind": "patch",
"published_at": "2025-12-06T00:53:10Z"
},
{
"tag": "v2.2.1",
"kind": "patch",
"published_at": "2025-12-06T00:50:08Z"
}
],
"recent_commits": [
{
"oid": "a52f91c2a685d55d335a0572d40186a74a9cd119",
"body": null,
"is_bot": true,
"headline": "v2.2.10",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-07-25T05:59:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "645a42f0f0fec895d14b4886ea675786727d7943",
"body": "Platforms:\n- macOS: x64, arm64\n- Linux: x64, arm64\n- Windows: x64, arm64\n\nNode versions: ABI registry (>=20)\nElectron version: Studio package.json\nTriggered by: adamziel",
"is_bot": true,
"headline": "chore: refresh fs-ext prebuilds",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-07-25T05:59:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fc0b4b304c01bc40acfbcc7ffa8b97675af963ae",
"body": "…res on Windows (#6)\n\nWindows code-signing tools (e.g. signtool.exe via electron-winstaller)\nattempt to sign all .node files found in a package. Because binaries/\nships prebuilds for all platforms, darwin and linux binaries end up on\nWindows installs and cause signing to fail with a format error.\n\ninstall.js now deletes any binary whose filename doesn't match the\ncurrent platform immediately after a successful prebuilt load, so only\nthe relevant platform binaries remain on disk.",
"is_bot": false,
"headline": "Remove cross-platform binaries after install to prevent signing failu…",
"author_name": "Wojtek Naruniec",
"author_login": "wojtekn",
"committed_at": "2026-06-12T00:09:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "25c3f2b9db66d528e07e7e007ddea29bf7804d49",
"body": null,
"is_bot": true,
"headline": "v2.2.9",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-05-27T07:20:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9a21426e0b50a1b365dcff5a27c17025ac1ae3bc",
"body": "Platforms:\n- macOS: x64, arm64\n- Linux: x64, arm64\n- Windows: x64, arm64\n\nNode versions: ABI registry (>=20)\nElectron version: Studio package.json\nTriggered by: adamziel",
"is_bot": true,
"headline": "chore: refresh fs-ext prebuilds",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-05-27T07:20:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bab141a5b29bacfdcd2d5bb0d9d257bc0aed60be",
"body": null,
"is_bot": true,
"headline": "v2.2.8",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-05-20T15:38:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "720bcfce717d303f9125f46af1e695857dd9aa97",
"body": null,
"is_bot": false,
"headline": "Fix npm trusted publishing workflow",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2026-05-20T15:37:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "606390d710d1f69f58b73959295b75fb8a9965a7",
"body": "Platforms:\n- macOS: x64, arm64\n- Linux: x64, arm64\n- Windows: x64, arm64\n\nNode versions: ABI registry (>=20)\nElectron version: Studio package.json\nTriggered by: adamziel",
"is_bot": true,
"headline": "chore: refresh fs-ext prebuilds",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-05-20T15:26:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cbfbb5079b98dc5afb65af44f3bad623897dc1a0",
"body": "Platforms:\n- macOS: x64, arm64\n- Linux: x64, arm64\n- Windows: x64, arm64\n\nNode versions: ABI registry (>=20)\nElectron version: Studio package.json\nTriggered by: adamziel",
"is_bot": true,
"headline": "chore: refresh fs-ext prebuilds",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-05-20T15:25:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4184a0484af07b23aa62940bceec73d3fef700b0",
"body": null,
"is_bot": false,
"headline": "Fix Electron 42 Windows builds",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2026-05-20T15:17:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8221d1d79844e506bd995fbdfbea712460d1fe9c",
"body": "Patch NAN before native builds so Electron 42 headers compile across CI prebuilds and fallback source builds.",
"is_bot": false,
"headline": "Support Electron 42 prebuilds",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2026-05-20T15:04:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2c778476ee2124bb23688d4666d9386d17cf6245",
"body": "Adds scheduled upstream target detection for prebuilt binaries and dispatches publishing when regenerated package contents change.",
"is_bot": false,
"headline": "Schedule prebuild refreshes",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2026-05-20T14:46:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5ce31f9fda9b35ae325794bd8b85987c91c7f1dd",
"body": null,
"is_bot": true,
"headline": "v2.2.7",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-01-30T23:51:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4b92038d330a97c00c193192b1420b15ca01042a",
"body": "Platforms:\n- macOS: x64, arm64\n- Linux: x64, arm64\n- Windows: x64, arm64\n\nNode versions: ABI registry (>=20)\nElectron version: Studio package.json\nTriggered by: brandonpayton",
"is_bot": true,
"headline": "chore: refresh fs-ext prebuilds",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-01-30T23:40:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e27f9469e394da5d214d6060664e96d6d1e50c60",
"body": "Static Nan::Persistent<String> handles for statvfs result keys were\ncached at module load time. When workers were disposed and new workers\nloaded the addon, init() called Reset() on these stale handles, causing\na V8 crash.\n\nSolution: Remove persistent handle caching entirely. Strings are now\ncreated inline when building statvfs results. This has zero performance\nimpact on flock/fcntl operations since those symbols were only used by\nstatvfs.",
"is_bot": false,
"headline": "Fix worker thread reload crash (Check failed: node->IsInUse()) (#5)",
"author_name": "Brandon Payton",
"author_login": "brandonpayton",
"committed_at": "2026-01-30T23:34:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "225e333058c74d9d0454650c9f7b64cd9d6f2f41",
"body": "This PR adds a test for LockFileEx failure.\n\nI saw an issue in using this package that felt like there was a bug in\nrelaying LockFileEx failure. Prior to this PR, there were no tests for\nLockFileEx failure, so I added a test.\n\nThis test passes, so the bug I observed must be elsewhere. But let's\nkeep this new test.",
"is_bot": false,
"headline": "Add test for LockFileEx failure (#4)",
"author_name": "Brandon Payton",
"author_login": "brandonpayton",
"committed_at": "2025-12-15T22:31:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d0d98bbbaaa8f450afd1d9fc527760ffd62a1257",
"body": null,
"is_bot": false,
"headline": "Update README.md",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-09T13:25:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "145235faa677bf81d8077466f1103af2e37cadd6",
"body": null,
"is_bot": true,
"headline": "v2.2.6",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2025-12-09T13:24:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a3ce3689ed85cc4d6ec2c73def1da3caabad0fcb",
"body": null,
"is_bot": true,
"headline": "v2.2.5",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2025-12-09T13:12:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "651318f9bfac401fdba4dd3d1a44d52ef7ac3ab3",
"body": "Platforms:\n- macOS: x64, arm64\n- Linux: x64, arm64\n- Windows: x64, arm64\n\nNode versions: ABI registry (>=20)\nElectron version: Studio package.json\nTriggered by: adamziel",
"is_bot": true,
"headline": "chore: refresh fs-ext prebuilds",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2025-12-09T13:10:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d1d061564d77ec2baa68871a10b5b84d80588d97",
"body": "The build-prebuilds workflow will now automatically run when fs-ext.cc\nis modified on the trunk branch, ensuring prebuilt binaries stay in sync\nwith native code changes.",
"is_bot": false,
"headline": "Auto-trigger prebuild workflow when fs-ext.cc changes on trunk",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-09T13:02:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eef10cae40ec88c43f114dd8a9a25f64d807500d",
"body": "## Summary\n\nThis PR converts the entire codebase from JavaScript to TypeScript,\nenabling typed local development while maintaining JavaScript\ncompatibility for package consumers.\n\n- Converted `fs-ext.js` to `src/fs-ext.ts` with full type definitions\nfor all APIs\n- Converted all test files from JavaS\n[…]\nass\n- [ ] Run `npm run lint` - should pass with no errors\n- [ ] Run `npm run typecheck` - should pass with no errors\n- [ ] Verify package can be imported in a TypeScript project with full\ntype support",
"is_bot": false,
"headline": "Convert codebase to TypeScript (#3)",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-09T13:01:25Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "dc7b283ba15b3761cde60b536fea27741fd3f28c",
"body": "## Summary\n\nThis PR extends the `fcntl()` API to support specifying byte ranges when\nusing `F_SETLK`, `F_SETLKW`, and `F_GETLK` commands. Previously, fcntl\nalways locked the entire file `(l_start=0, l_len=0)`. Now you can lock\nspecific byte ranges.\n\n**Old API signature:**\n- `fcntl(fd, cmd, arg)`,\n- \n[…]\nnge lock with start/len \n- [x] Added tests for F_SETLKW (blocking lock) with range\n- [x] Verified backward compatibility with whole-file locks (no\nstart/len)\n- [x] All existing tests continue to pass",
"is_bot": false,
"headline": "Add start and len parameters to fcntl for range locking (#2)",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-09T11:37:56Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cd2685720fe75de95eccc15bf0f1e989f85080e3",
"body": null,
"is_bot": true,
"headline": "v2.2.4",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2025-12-06T01:01:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a4ef8ae3ebb1fd57299f71255510753f5493466b",
"body": null,
"is_bot": false,
"headline": "npm trusted publishers",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-06T01:00:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2ec687e88deefaf131eb55a1a34f799ad01f5699",
"body": null,
"is_bot": true,
"headline": "v2.2.3",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2025-12-06T00:57:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6d9b076c9480b5aed4f15f9b1c794221c9e2d3d6",
"body": null,
"is_bot": false,
"headline": "npm trusted publishers",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-06T00:56:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7fc0c77b6b2cfaa009bc83c7c436a0397b2935ab",
"body": null,
"is_bot": true,
"headline": "v2.2.2",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2025-12-06T00:53:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4a504139a408362447c0af5965f55472e71bb088",
"body": null,
"is_bot": false,
"headline": "npm trusted publisher: id-token in publish workflow",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-06T00:52:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5db6665c8760b0f7f6abb39a06df118be7c6fc4e",
"body": null,
"is_bot": true,
"headline": "v2.2.1",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2025-12-06T00:50:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d1f79e401b17341895e27158fbd67f2389eb4254",
"body": "Use the 'files' field to whitelist only runtime files:\n- fs-ext.js, load-prebuilt.js, install.js (JS modules)\n- binaries/ (prebuilt native modules)\n- binding.gyp, fs-ext.cc (for node-gyp fallback)\n- LICENSE.txt\n\nMoved build-only dependencies to devDependencies.",
"is_bot": false,
"headline": "Exclude dev files from published package",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-06T00:45:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e83358849368729b418c245f790e77d61b7ff8b0",
"body": "- Fix worker test race condition by using timestamps instead of file\n I/O for verifying lock ordering (works reliably on Windows)\n- Rename package to fs-ext-extra-prebuilt\n- Add publish workflow that bumps version, commits, and publishes to npm",
"is_bot": false,
"headline": "Fix worker test, rename package, add publish workflow",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-06T00:37:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fe9537bcb7f99fb189df891edf2a3ed28e1537d3",
"body": "Ensure LOCKFILE_EXCLUSIVE_LOCK and LOCKFILE_FAIL_IMMEDIATELY are\navailable in constants on all platforms, not just Windows.",
"is_bot": false,
"headline": "Export LockFileEx constants on all platforms",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-06T00:33:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cb0eb4605dcccd0d7c282764cbd616f7df0f1d34",
"body": "The binary selection logic is now in load-prebuilt.js and reused by\nboth install.js (to check if compilation can be skipped) and fs-ext.js\n(to load the binary at runtime). This eliminates code duplication and\nensures both use the same matching algorithm.",
"is_bot": false,
"headline": "Extract prebuilt loading logic into shared module",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-06T00:19:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e113f467f878c1c775d4c1b037b51f858b1df187",
"body": "The install script now tries to load a prebuilt binary first. If it\nworks, node-gyp compilation is skipped entirely. This means users\non supported platforms don't need Python, C++ compilers, or other\nbuild tools installed.\n\nOnly falls back to node-gyp if no prebuilt binary matches the current\nplatform/architecture/Node version.",
"is_bot": false,
"headline": "Skip node-gyp when prebuilt binary is available",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-06T00:12:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "53a41072f38684c0cbdd648cb20bd282b0041880",
"body": "This fork of fs-ext ships prebuilt binaries for all major platforms\n(macOS, Linux, Windows on both x64 and arm64) and adds Windows-specific\nLockFileEx/UnlockFileEx APIs for byte-range file locking.\n\nThe README now documents the new Windows APIs and explains why this\nfork exists.",
"is_bot": false,
"headline": "Rename package to @wp-playground/fs-ext and update README",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-06T00:08:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8e858fb9a88feb7fdde3b5e6866d74c59007a889",
"body": "The test was failing on fast machines (macOS x64) because\nfs.appendFileSync doesn't guarantee the write is persisted before\nthe lock is released. The worker could acquire the lock and read the\nfile before the filesystem had flushed the main thread's write.\n\nFixed by using explicit open/write/fsync/close sequence to ensure\nthe write is fully persisted before unlocking.",
"is_bot": false,
"headline": "Fix race condition in worker test",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:59:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "acc3fc247341ab39ed9e2e00d65277df6a534273",
"body": "Runs tests on all 6 platform/architecture combinations on every push\nto trunk and on every pull request.",
"is_bot": false,
"headline": "Add test workflow for trunk and PRs",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:54:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "81c7e3de17074a7957d02721e1ba0b791947c456",
"body": null,
"is_bot": false,
"headline": "Use macos-15-intel instead of deprecated macos-13",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:49:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dcb4162f7ee3b7a831eb0ebf885d812893e8563d",
"body": "Platforms:\n- macOS: x64, arm64\n- Linux: x64, arm64\n- Windows: x64, arm64\n\nNode versions: ABI registry (>=20)\nElectron version: Studio package.json\nTriggered by: adamziel",
"is_bot": true,
"headline": "chore: refresh fs-ext prebuilds",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2025-12-05T23:48:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e95986255a9621f4d01aa48145ab0a2369e0647c",
"body": "Universal binaries weren't working on macOS - the binary was x86_64 only.\nSwitch to building for native architecture on all platforms and use\nseparate runners for x64 and arm64 on macOS (macos-13 and macos-14).",
"is_bot": false,
"headline": "Build for native architecture on all platforms",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:42:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "45226aabca90e3cae678128295a9852d383dc33f",
"body": "- Fix undefined tryLoad function call\n- Handle missing binaries directory gracefully\n- Add better error messages when no binary found\n- Add diagnostic step to list binaries before tests",
"is_bot": false,
"headline": "Fix fs-ext.js loading and add diagnostics",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:35:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7a939a9715fc05f6627aa340663765cce4c83117",
"body": "Add a new test file that exercises the Windows-specific LockFileEx and\nUnlockFileEx APIs, testing both sync and async variants with shared locks,\nexclusive locks, and byte-range locks.\n\nThe test is only run on Windows where these APIs are available.",
"is_bot": false,
"headline": "Add Windows LockFileEx tests and run tests in CI",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:26:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eafe1a262bc50a5015aea71a8650e8937b258ebc",
"body": "Platforms:\n- macOS: universal (x64 + arm64)\n- Linux: x64, arm64\n- Windows: x64, arm64\n\nNode versions: ABI registry (>=20)\nElectron version: Studio package.json\nTriggered by: adamziel",
"is_bot": true,
"headline": "chore: refresh fs-ext prebuilds",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2025-12-05T23:20:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a9f0246cc159bcc2a306abbecef734779c8747ef",
"body": "Update the CI workflow to build native binaries for:\n- macOS: universal (x64 + arm64)\n- Linux: x64 and arm64 (separate runners)\n- Windows: x64 and arm64 (separate runners)\n\nPush binaries directly to trunk instead of creating PRs.",
"is_bot": false,
"headline": "Build for all platforms and architectures in CI",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:13:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5bcee078755378820d282effa4401b9d96b33912",
"body": null,
"is_bot": false,
"headline": "Try prebuilt binaries before falling back to the node-gyp built one",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:11:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "719001bb28969bf1ba6b58e792d707dbe92f1975",
"body": "This reverts commit f03bf9cb046db510d6382e717747ec46a44736a1.",
"is_bot": false,
"headline": "Revert \"Refactor: split into tryRequire and tryLoadPrebuilt functions\"",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:06:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dd5f575421e89bd53613eaba7e63962719546565",
"body": null,
"is_bot": false,
"headline": "Refactor: split into tryRequire and tryLoadPrebuilt functions",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:06:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a1ed4942f8fdd911fab58a131cb9b10a23eff1c6",
"body": "The module now tries to load a matching prebuilt binary from the\nbinaries directory based on platform, architecture, and Node/Electron\nversion. Falls back to the locally built binary if no prebuilt is\nfound or if loading fails (e.g., architecture mismatch).",
"is_bot": false,
"headline": "Load prebuilt binaries before falling back to local build",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:06:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0e6faec6ed64e6213d62aadc9ab109f84e51a2e0",
"body": null,
"is_bot": false,
"headline": "Add node_modules/.bin to PATH for node-gyp",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:06:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ce4ff97965cc0aca2cb89186fffb6681e1e4b128",
"body": null,
"is_bot": false,
"headline": "Add node-gyp as dependency for prebuildify",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:06:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "49b76a6a22d937a565bdf8fd810eeecdec431319",
"body": "- Use locally installed prebuildify instead of npx (avoids download hangs)\n- Use spawnSync instead of execSync for better argument handling\n- Add shell: true on Windows for proper .cmd execution\n- Log the command being run for debugging",
"is_bot": false,
"headline": "Fix Windows build: use local prebuildify with spawnSync",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:06:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f915651b350a2fe83e6bcc8b0e92acafa6e4a46f",
"body": "The --arch x86_64+arm flag caused Windows to hang trying to set up\nARM cross-compilation toolchain. Now only macOS builds universal\nbinaries; other platforms build for their native architecture.",
"is_bot": false,
"headline": "Fix Windows hang: only build universal binaries on macOS",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:06:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bc024a0a708abcbb33815ec391057f2515ea18db",
"body": "Windows builds were hanging indefinitely. This timeout will at least\nfail with a useful error message rather than running forever.",
"is_bot": false,
"headline": "Add 10-minute timeout per build target to prevent infinite hangs",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:06:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fe5afb350a84a424a7d036fdc133289326f0a858",
"body": "Empty CC/CXX values caused linker errors on Ubuntu. Split into\nseparate steps to only set CC/CXX on macOS where LLVM Clang is needed.",
"is_bot": false,
"headline": "Fix: separate build steps for macOS vs other platforms",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:06:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bf8304c8c26b28bcb17515bb9274ef581518d10a",
"body": "Apple Clang doesn't fully support C++20 non-type template parameters\nwith aggregate initializers, which Node 25's V8 headers require.\nLLVM Clang from Homebrew has complete support for this feature.",
"is_bot": false,
"headline": "Install LLVM Clang on macOS for full C++20 NTTP support",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:06:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4e7fa49386cd88bb39c49c17856e84e58eb25519",
"body": "NAN 2.24.0 explicitly supports Node 25 and includes fixes for V8's\nnew C++20 NTTP features. The previous NAN version couldn't compile\nagainst Node 25's V8 headers on macOS due to missing support for\naggregate initializers in template arguments.",
"is_bot": false,
"headline": "Update NAN to 2.24.0 for Node 25 compatibility",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:06:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7e43e70acbda39438a47f7278e1d628912ce507d",
"body": null,
"is_bot": false,
"headline": "Debug: add verbose make output on macOS",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:06:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7f16723fbe01a3e1e764e1fd6393e92ec743cf40",
"body": null,
"is_bot": false,
"headline": "Add verbose flag to debug compiler flags",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:06:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "572f26c327387cf2c681037144f5afd727bd6817",
"body": "GYP's make generator ignores binding.gyp cflags_cc on macOS. Setting\nGYP_GENERATORS=xcode forces the xcode generator which correctly applies\nxcode_settings including CLANG_CXX_LANGUAGE_STANDARD=c++20.",
"is_bot": false,
"headline": "Force xcode generator on macOS for proper C++20 support",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:06:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b5f6c8ac59ad4a89137d3672475e23ba81f1c4f7",
"body": "GYP's make generator on macOS ignores binding.gyp cflags_cc settings.\nSetting CXX='clang++ -std=c++20' directly ensures the flag reaches the\ncompiler for Node 25+ V8 headers that use C++20 template features.",
"is_bot": false,
"headline": "Force C++20 on macOS by setting CXX environment variable",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:06:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "347dccbfa927c1f778f71ad6bb1c116fa501f175",
"body": "When node-gyp uses the make generator on macOS (instead of xcodebuild),\nthe xcode_settings may not be applied. Adding cflags_cc directly to the\nmacOS condition ensures C++20 is used regardless of which generator runs.",
"is_bot": false,
"headline": "Add explicit cflags_cc to macOS condition in binding.gyp",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:06:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "db23b4de8331ddafc7ce991007d81caa622de183",
"body": "node-gyp doesn't read CXXFLAGS directly. It respects npm_config_* variables\ninstead. This ensures the -std=c++20 flag reaches the compiler when building\nfor Node 25, whose V8 headers use C++20 aggregate initializers in templates.",
"is_bot": false,
"headline": "Fix macOS build by passing C++20 flag via npm_config_cxxflags",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T23:06:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "61f952fadc00a5d8d7001345768350bc3cac0965",
"body": "chore: refresh fs-ext prebuilds",
"is_bot": false,
"headline": "chore: refresh fs-ext prebuilds (#1)",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T22:47:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b2d9637cc86d5b3e8551b8b827fd6368bfa19840",
"body": null,
"is_bot": false,
"headline": "chore: refresh fs-ext prebuilds",
"author_name": "adamziel",
"author_login": "adamziel",
"committed_at": "2025-12-05T21:01:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ba5d2e9891d8cd0dcde303f4fb275acbca882fbd",
"body": null,
"is_bot": false,
"headline": "Try fix mac build error",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T19:42:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "31d2d2f6687bc6be86fe2569489206521b11ffb8",
"body": null,
"is_bot": false,
"headline": "Try fix mac build error",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T19:38:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bdf9bdedccea9c6fb8f476175e1ca9af3096941a",
"body": null,
"is_bot": false,
"headline": "Try fix mac build error",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T19:33:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0307b6244fa0236898841f4432ee7caa3526a6d2",
"body": null,
"is_bot": false,
"headline": "add lock",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T19:19:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "449c9ee81833f1704320d12e78da415370af31d2",
"body": null,
"is_bot": false,
"headline": "ci job to rebuild pre-built binaries",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T19:14:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "029ef0850bfc1eddbcbb6d27478244381ac691b0",
"body": null,
"is_bot": false,
"headline": "node modules",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T18:46:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "121b60ac0a78b6c19502406a6793cf94599007e0",
"body": null,
"is_bot": false,
"headline": "prebuilt darwin binaries",
"author_name": "Adam Zieliński",
"author_login": "adamziel",
"committed_at": "2025-12-05T18:45:29Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 10,
"commits_last_year": 72,
"latest_release_at": "2026-07-25T05:59:25Z",
"latest_release_tag": "v2.2.10",
"releases_from_tags": true,
"days_since_last_push": 11,
"active_weeks_last_year": 7,
"days_since_latest_release": 11,
"mean_days_between_releases": 25.7
},
"artifacts": {
"collected": true,
"structure": [],
"declarations": [
{
"name": "fs-ext-extra-prebuilt",
"path": "package.json",
"tokens": [
"npm.entry"
],
"ecosystem": "npm"
}
]
},
"community": {
"has_readme": true,
"has_license": true,
"readme_badges": {
"hosts": [],
"total": 0,
"header": 0,
"collected": true,
"has_inspect_badge": false
},
"has_description": false,
"has_contributing": false,
"health_percentage": 28,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "fs-ext-extra-prebuilt",
"exists": true,
"license": "MIT",
"keywords": [
"fs",
"filesystem",
"flock",
"seek",
"lockfileex",
"prebuilt"
],
"ecosystem": "npm",
"categories": [],
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/fs-ext-extra-prebuilt",
"declared_type": null,
"is_deprecated": false,
"latest_version": "2.2.10",
"repository_url": "https://github.com/adamziel/fs-ext-prebuilt",
"versions_count": 8,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 300006,
"first_published_at": "2025-12-06T00:47:09.983000Z",
"latest_published_at": "2026-07-25T05:59:41.472000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 11
}
]
},
"popularity": {
"forks": 1,
"stars": 0,
"watchers": 0,
"fork_history": {
"days": [
{
"date": "2026-02-19",
"count": 1
}
],
"complete": true,
"collected": 1,
"total_forks": 1
},
"star_history": {
"days": [],
"complete": true,
"collected": 0,
"total_stars": 0,
"collected_at": null
},
"open_issues_and_prs": 1
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"tsconfig.json"
],
"toolchain_manifests": [],
"largest_source_bytes": 23778,
"source_files_sampled": 22,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"package.json"
],
"advisories": {
"error": null,
"scope": "published_package",
"source": "osv",
"findings": [],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 1,
"malicious_count": 0,
"assessed_package": "npm:fs-ext-extra-prebuilt@2.2.10",
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "nan",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^2.27.0"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "nan",
"direct": true,
"version": "2.27.0",
"ecosystem": "npm"
},
{
"name": "@babel/code-frame",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/compat-data",
"direct": false,
"version": "7.28.5",
"ecosystem": "npm"
},
{
"name": "@babel/core",
"direct": false,
"version": "7.28.5",
"ecosystem": "npm"
},
{
"name": "@babel/generator",
"direct": false,
"version": "7.28.5",
"ecosystem": "npm"
},
{
"name": "@babel/helper-compilation-targets",
"direct": false,
"version": "7.27.2",
"ecosystem": "npm"
},
{
"name": "@babel/helper-globals",
"direct": false,
"version": "7.28.0",
"ecosystem": "npm"
},
{
"name": "@babel/helper-module-imports",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/helper-module-transforms",
"direct": false,
"version": "7.28.3",
"ecosystem": "npm"
},
{
"name": "@babel/helper-plugin-utils",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/helper-string-parser",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/helper-validator-identifier",
"direct": false,
"version": "7.28.5",
"ecosystem": "npm"
},
{
"name": "@babel/helper-validator-option",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/helpers",
"direct": false,
"version": "7.28.4",
"ecosystem": "npm"
},
{
"name": "@babel/parser",
"direct": false,
"version": "7.28.5",
"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.27.1",
"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.27.1",
"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.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/template",
"direct": false,
"version": "7.27.2",
"ecosystem": "npm"
},
{
"name": "@babel/traverse",
"direct": false,
"version": "7.28.5",
"ecosystem": "npm"
},
{
"name": "@babel/types",
"direct": false,
"version": "7.28.5",
"ecosystem": "npm"
},
{
"name": "@bcoe/v8-coverage",
"direct": false,
"version": "0.2.3",
"ecosystem": "npm"
},
{
"name": "@cspotcode/source-map-support",
"direct": false,
"version": "0.8.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/aix-ppc64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/android-arm",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/android-arm64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/android-x64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/darwin-arm64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/darwin-x64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/freebsd-arm64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/freebsd-x64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-arm",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-arm64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-ia32",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-loong64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-mips64el",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-ppc64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-riscv64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-s390x",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-x64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/netbsd-arm64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/netbsd-x64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/openbsd-arm64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/openbsd-x64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/openharmony-arm64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/sunos-x64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/win32-arm64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/win32-ia32",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@esbuild/win32-x64",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "@eslint-community/eslint-utils",
"direct": false,
"version": "4.9.0",
"ecosystem": "npm"
},
{
"name": "@eslint-community/regexpp",
"direct": false,
"version": "4.12.2",
"ecosystem": "npm"
},
{
"name": "@eslint/eslintrc",
"direct": false,
"version": "2.1.4",
"ecosystem": "npm"
},
{
"name": "@eslint/js",
"direct": false,
"version": "8.57.1",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/config-array",
"direct": false,
"version": "0.13.0",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/module-importer",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/object-schema",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "@isaacs/cliui",
"direct": false,
"version": "8.0.2",
"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.3",
"ecosystem": "npm"
},
{
"name": "@jest/console",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/core",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/diff-sequences",
"direct": false,
"version": "30.0.1",
"ecosystem": "npm"
},
{
"name": "@jest/environment",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/expect",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/expect-utils",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/expect-utils",
"direct": false,
"version": "30.2.0",
"ecosystem": "npm"
},
{
"name": "@jest/fake-timers",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/get-type",
"direct": false,
"version": "30.1.0",
"ecosystem": "npm"
},
{
"name": "@jest/globals",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/pattern",
"direct": false,
"version": "30.0.1",
"ecosystem": "npm"
},
{
"name": "@jest/reporters",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/schemas",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "@jest/schemas",
"direct": false,
"version": "30.0.5",
"ecosystem": "npm"
},
{
"name": "@jest/source-map",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "@jest/test-result",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/test-sequencer",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/transform",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "@jest/types",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "@jest/types",
"direct": false,
"version": "30.2.0",
"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": "@jridgewell/trace-mapping",
"direct": false,
"version": "0.3.9",
"ecosystem": "npm"
},
{
"name": "@nodelib/fs.scandir",
"direct": false,
"version": "2.1.5",
"ecosystem": "npm"
},
{
"name": "@nodelib/fs.stat",
"direct": false,
"version": "2.0.5",
"ecosystem": "npm"
},
{
"name": "@nodelib/fs.walk",
"direct": false,
"version": "1.2.8",
"ecosystem": "npm"
},
{
"name": "@npmcli/agent",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "@npmcli/fs",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "@pkgjs/parseargs",
"direct": false,
"version": "0.11.0",
"ecosystem": "npm"
},
{
"name": "@sinclair/typebox",
"direct": false,
"version": "0.27.8",
"ecosystem": "npm"
},
{
"name": "@sinclair/typebox",
"direct": false,
"version": "0.34.41",
"ecosystem": "npm"
},
{
"name": "@sinonjs/commons",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "@sinonjs/fake-timers",
"direct": false,
"version": "10.3.0",
"ecosystem": "npm"
},
{
"name": "@tsconfig/node10",
"direct": false,
"version": "1.0.12",
"ecosystem": "npm"
},
{
"name": "@tsconfig/node12",
"direct": false,
"version": "1.0.11",
"ecosystem": "npm"
},
{
"name": "@tsconfig/node14",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@tsconfig/node16",
"direct": false,
"version": "1.0.4",
"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/graceful-fs",
"direct": false,
"version": "4.1.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/node",
"direct": false,
"version": "24.10.2",
"ecosystem": "npm"
},
{
"name": "@types/stack-utils",
"direct": false,
"version": "2.0.3",
"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.49.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/parser",
"direct": false,
"version": "8.49.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/project-service",
"direct": false,
"version": "8.49.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/scope-manager",
"direct": false,
"version": "8.49.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/tsconfig-utils",
"direct": false,
"version": "8.49.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/type-utils",
"direct": false,
"version": "8.49.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/types",
"direct": false,
"version": "8.49.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/typescript-estree",
"direct": false,
"version": "8.49.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/utils",
"direct": false,
"version": "8.49.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/visitor-keys",
"direct": false,
"version": "8.49.0",
"ecosystem": "npm"
},
{
"name": "@ungap/structured-clone",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "abbrev",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "acorn",
"direct": false,
"version": "8.15.0",
"ecosystem": "npm"
},
{
"name": "acorn-jsx",
"direct": false,
"version": "5.3.2",
"ecosystem": "npm"
},
{
"name": "acorn-walk",
"direct": false,
"version": "8.3.4",
"ecosystem": "npm"
},
{
"name": "agent-base",
"direct": false,
"version": "7.1.4",
"ecosystem": "npm"
},
{
"name": "ajv",
"direct": false,
"version": "6.12.6",
"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-regex",
"direct": false,
"version": "6.2.2",
"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": "ansi-styles",
"direct": false,
"version": "6.2.3",
"ecosystem": "npm"
},
{
"name": "anymatch",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "arg",
"direct": false,
"version": "4.1.3",
"ecosystem": "npm"
},
{
"name": "argparse",
"direct": false,
"version": "1.0.10",
"ecosystem": "npm"
},
{
"name": "argparse",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "babel-jest",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "babel-plugin-istanbul",
"direct": false,
"version": "6.1.1",
"ecosystem": "npm"
},
{
"name": "babel-plugin-jest-hoist",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "babel-preset-current-node-syntax",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "babel-preset-jest",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "balanced-match",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "base64-js",
"direct": false,
"version": "1.5.1",
"ecosystem": "npm"
},
{
"name": "baseline-browser-mapping",
"direct": false,
"version": "2.9.5",
"ecosystem": "npm"
},
{
"name": "bl",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "1.1.12",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "braces",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "browserslist",
"direct": false,
"version": "4.28.1",
"ecosystem": "npm"
},
{
"name": "bs-logger",
"direct": false,
"version": "0.2.6",
"ecosystem": "npm"
},
{
"name": "bser",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "buffer",
"direct": false,
"version": "5.7.1",
"ecosystem": "npm"
},
{
"name": "buffer-from",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "cacache",
"direct": false,
"version": "19.0.1",
"ecosystem": "npm"
},
{
"name": "callsites",
"direct": false,
"version": "3.1.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.30001760",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "char-regex",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "chownr",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "chownr",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "ci-info",
"direct": false,
"version": "3.9.0",
"ecosystem": "npm"
},
{
"name": "ci-info",
"direct": false,
"version": "4.3.1",
"ecosystem": "npm"
},
{
"name": "cjs-module-lexer",
"direct": false,
"version": "1.4.3",
"ecosystem": "npm"
},
{
"name": "cliui",
"direct": false,
"version": "8.0.1",
"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-convert",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "color-name",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "concat-map",
"direct": false,
"version": "0.0.1",
"ecosystem": "npm"
},
{
"name": "convert-source-map",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "create-jest",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "create-require",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "cross-spawn",
"direct": false,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": false,
"version": "4.4.3",
"ecosystem": "npm"
},
{
"name": "dedent",
"direct": false,
"version": "1.7.0",
"ecosystem": "npm"
},
{
"name": "deep-is",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "deepmerge",
"direct": false,
"version": "4.3.1",
"ecosystem": "npm"
},
{
"name": "detect-newline",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "diff",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "diff-sequences",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "doctrine",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "eastasianwidth",
"direct": false,
"version": "0.2.0",
"ecosystem": "npm"
},
{
"name": "electron-to-chromium",
"direct": false,
"version": "1.5.267",
"ecosystem": "npm"
},
{
"name": "emittery",
"direct": false,
"version": "0.13.1",
"ecosystem": "npm"
},
{
"name": "emoji-regex",
"direct": false,
"version": "8.0.0",
"ecosystem": "npm"
},
{
"name": "emoji-regex",
"direct": false,
"version": "9.2.2",
"ecosystem": "npm"
},
{
"name": "encoding",
"direct": false,
"version": "0.1.13",
"ecosystem": "npm"
},
{
"name": "end-of-stream",
"direct": false,
"version": "1.4.5",
"ecosystem": "npm"
},
{
"name": "env-paths",
"direct": false,
"version": "2.2.1",
"ecosystem": "npm"
},
{
"name": "err-code",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "error-ex",
"direct": false,
"version": "1.3.4",
"ecosystem": "npm"
},
{
"name": "esbuild",
"direct": false,
"version": "0.27.1",
"ecosystem": "npm"
},
{
"name": "escalade",
"direct": false,
"version": "3.2.0",
"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": "8.57.1",
"ecosystem": "npm"
},
{
"name": "eslint-scope",
"direct": false,
"version": "7.2.2",
"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": "espree",
"direct": false,
"version": "9.6.1",
"ecosystem": "npm"
},
{
"name": "esprima",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "esquery",
"direct": false,
"version": "1.6.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": "execa",
"direct": false,
"version": "5.1.1",
"ecosystem": "npm"
},
{
"name": "exit",
"direct": false,
"version": "0.1.2",
"ecosystem": "npm"
},
{
"name": "expect",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "expect",
"direct": false,
"version": "30.2.0",
"ecosystem": "npm"
},
{
"name": "exponential-backoff",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "fast-deep-equal",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "fast-json-stable-stringify",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "fast-levenshtein",
"direct": false,
"version": "2.0.6",
"ecosystem": "npm"
},
{
"name": "fastq",
"direct": false,
"version": "1.19.1",
"ecosystem": "npm"
},
{
"name": "fb-watchman",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "fdir",
"direct": false,
"version": "6.5.0",
"ecosystem": "npm"
},
{
"name": "file-entry-cache",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "fill-range",
"direct": false,
"version": "7.1.1",
"ecosystem": "npm"
},
{
"name": "find-up",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "find-up",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "flat-cache",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "flatted",
"direct": false,
"version": "3.3.3",
"ecosystem": "npm"
},
{
"name": "foreground-child",
"direct": false,
"version": "3.3.1",
"ecosystem": "npm"
},
{
"name": "fs-constants",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "fs-minipass",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "fs.realpath",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "fsevents",
"direct": false,
"version": "2.3.3",
"ecosystem": "npm"
},
{
"name": "function-bind",
"direct": false,
"version": "1.1.2",
"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-package-type",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "get-stream",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "get-tsconfig",
"direct": false,
"version": "4.13.0",
"ecosystem": "npm"
},
{
"name": "glob",
"direct": false,
"version": "10.5.0",
"ecosystem": "npm"
},
{
"name": "glob",
"direct": false,
"version": "7.2.3",
"ecosystem": "npm"
},
{
"name": "glob-parent",
"direct": false,
"version": "6.0.2",
"ecosystem": "npm"
},
{
"name": "globals",
"direct": false,
"version": "13.24.0",
"ecosystem": "npm"
},
{
"name": "graceful-fs",
"direct": false,
"version": "4.2.11",
"ecosystem": "npm"
},
{
"name": "graphemer",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "handlebars",
"direct": false,
"version": "4.7.8",
"ecosystem": "npm"
},
{
"name": "has-flag",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "hasown",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "html-escaper",
"direct": false,
"version": "2.0.2",
"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": "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": "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": "import-fresh",
"direct": false,
"version": "3.3.1",
"ecosystem": "npm"
},
{
"name": "import-local",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "imurmurhash",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "inflight",
"direct": false,
"version": "1.0.6",
"ecosystem": "npm"
},
{
"name": "inherits",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "ip-address",
"direct": false,
"version": "10.1.0",
"ecosystem": "npm"
},
{
"name": "is-arrayish",
"direct": false,
"version": "0.2.1",
"ecosystem": "npm"
},
{
"name": "is-core-module",
"direct": false,
"version": "2.16.1",
"ecosystem": "npm"
},
{
"name": "is-extglob",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "is-fullwidth-code-point",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "is-generator-fn",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "is-glob",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "is-number",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "is-path-inside",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "is-stream",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "isexe",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "isexe",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-coverage",
"direct": false,
"version": "3.2.2",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-instrument",
"direct": false,
"version": "5.2.1",
"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": "4.0.1",
"ecosystem": "npm"
},
{
"name": "istanbul-reports",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "jackspeak",
"direct": false,
"version": "3.4.3",
"ecosystem": "npm"
},
{
"name": "jest",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-changed-files",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-circus",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-cli",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-config",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-diff",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-diff",
"direct": false,
"version": "30.2.0",
"ecosystem": "npm"
},
{
"name": "jest-docblock",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-each",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-environment-node",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-get-type",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "jest-haste-map",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-leak-detector",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-matcher-utils",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-matcher-utils",
"direct": false,
"version": "30.2.0",
"ecosystem": "npm"
},
{
"name": "jest-message-util",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-message-util",
"direct": false,
"version": "30.2.0",
"ecosystem": "npm"
},
{
"name": "jest-mock",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-mock",
"direct": false,
"version": "30.2.0",
"ecosystem": "npm"
},
{
"name": "jest-pnp-resolver",
"direct": false,
"version": "1.2.3",
"ecosystem": "npm"
},
{
"name": "jest-regex-util",
"direct": false,
"version": "29.6.3",
"ecosystem": "npm"
},
{
"name": "jest-regex-util",
"direct": false,
"version": "30.0.1",
"ecosystem": "npm"
},
{
"name": "jest-resolve",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-resolve-dependencies",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-runner",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-runtime",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-snapshot",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-util",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-util",
"direct": false,
"version": "30.2.0",
"ecosystem": "npm"
},
{
"name": "jest-validate",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-watcher",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "jest-worker",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "js-tokens",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "js-yaml",
"direct": false,
"version": "3.14.2",
"ecosystem": "npm"
},
{
"name": "js-yaml",
"direct": false,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "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": "keyv",
"direct": false,
"version": "4.5.4",
"ecosystem": "npm"
},
{
"name": "kleur",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "leven",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "levn",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "lines-and-columns",
"direct": false,
"version": "1.2.4",
"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.memoize",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "lodash.merge",
"direct": false,
"version": "4.6.2",
"ecosystem": "npm"
},
{
"name": "lru-cache",
"direct": false,
"version": "10.4.3",
"ecosystem": "npm"
},
{
"name": "lru-cache",
"direct": false,
"version": "5.1.1",
"ecosystem": "npm"
},
{
"name": "make-dir",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "make-error",
"direct": false,
"version": "1.3.6",
"ecosystem": "npm"
},
{
"name": "make-fetch-happen",
"direct": false,
"version": "14.0.3",
"ecosystem": "npm"
},
{
"name": "makeerror",
"direct": false,
"version": "1.0.12",
"ecosystem": "npm"
},
{
"name": "merge-stream",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "micromatch",
"direct": false,
"version": "4.0.8",
"ecosystem": "npm"
},
{
"name": "mimic-fn",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "3.1.2",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "9.0.5",
"ecosystem": "npm"
},
{
"name": "minimist",
"direct": false,
"version": "1.2.8",
"ecosystem": "npm"
},
{
"name": "minipass",
"direct": false,
"version": "3.3.6",
"ecosystem": "npm"
},
{
"name": "minipass",
"direct": false,
"version": "7.1.2",
"ecosystem": "npm"
},
{
"name": "minipass-collect",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "minipass-fetch",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "minipass-flush",
"direct": false,
"version": "1.0.5",
"ecosystem": "npm"
},
{
"name": "minipass-pipeline",
"direct": false,
"version": "1.2.4",
"ecosystem": "npm"
},
{
"name": "minipass-sized",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "minizlib",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "mkdirp-classic",
"direct": false,
"version": "0.5.3",
"ecosystem": "npm"
},
{
"name": "ms",
"direct": false,
"version": "2.1.3",
"ecosystem": "npm"
},
{
"name": "natural-compare",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "negotiator",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "neo-async",
"direct": false,
"version": "2.6.2",
"ecosystem": "npm"
},
{
"name": "node-abi",
"direct": false,
"version": "3.85.0",
"ecosystem": "npm"
},
{
"name": "node-gyp",
"direct": false,
"version": "11.5.0",
"ecosystem": "npm"
},
{
"name": "node-int64",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "node-releases",
"direct": false,
"version": "2.0.27",
"ecosystem": "npm"
},
{
"name": "nopt",
"direct": false,
"version": "8.1.0",
"ecosystem": "npm"
},
{
"name": "normalize-path",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "npm-run-path",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "npm-run-path",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "once",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "onetime",
"direct": false,
"version": "5.1.2",
"ecosystem": "npm"
},
{
"name": "optionator",
"direct": false,
"version": "0.9.4",
"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-map",
"direct": false,
"version": "7.0.4",
"ecosystem": "npm"
},
{
"name": "p-try",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "package-json-from-dist",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "parent-module",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "parse-json",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "path-exists",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "path-is-absolute",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "path-key",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "path-parse",
"direct": false,
"version": "1.0.7",
"ecosystem": "npm"
},
{
"name": "path-scurry",
"direct": false,
"version": "1.11.1",
"ecosystem": "npm"
},
{
"name": "picocolors",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "picomatch",
"direct": false,
"version": "2.3.1",
"ecosystem": "npm"
},
{
"name": "picomatch",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "pirates",
"direct": false,
"version": "4.0.7",
"ecosystem": "npm"
},
{
"name": "pkg-dir",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "prebuildify",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "prelude-ls",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "pretty-format",
"direct": false,
"version": "29.7.0",
"ecosystem": "npm"
},
{
"name": "pretty-format",
"direct": false,
"version": "30.2.0",
"ecosystem": "npm"
},
{
"name": "proc-log",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "promise-retry",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "prompts",
"direct": false,
"version": "2.4.2",
"ecosystem": "npm"
},
{
"name": "pump",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "punycode",
"direct": false,
"version": "2.3.1",
"ecosystem": "npm"
},
{
"name": "pure-rand",
"direct": false,
"version": "6.1.0",
"ecosystem": "npm"
},
{
"name": "queue-microtask",
"direct": false,
"version": "1.2.3",
"ecosystem": "npm"
},
{
"name": "react-is",
"direct": false,
"version": "18.3.1",
"ecosystem": "npm"
},
{
"name": "readable-stream",
"direct": false,
"version": "3.6.2",
"ecosystem": "npm"
},
{
"name": "require-directory",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "resolve",
"direct": false,
"version": "1.22.11",
"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": "resolve-pkg-maps",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "resolve.exports",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "retry",
"direct": false,
"version": "0.12.0",
"ecosystem": "npm"
},
{
"name": "reusify",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "rimraf",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "run-parallel",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "safe-buffer",
"direct": false,
"version": "5.2.1",
"ecosystem": "npm"
},
{
"name": "safer-buffer",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "6.3.1",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "7.7.3",
"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": "signal-exit",
"direct": false,
"version": "3.0.7",
"ecosystem": "npm"
},
{
"name": "signal-exit",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "sisteransi",
"direct": false,
"version": "1.0.5",
"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.7",
"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-support",
"direct": false,
"version": "0.5.13",
"ecosystem": "npm"
},
{
"name": "sprintf-js",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "ssri",
"direct": false,
"version": "12.0.0",
"ecosystem": "npm"
},
{
"name": "stack-utils",
"direct": false,
"version": "2.0.6",
"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-width",
"direct": false,
"version": "5.1.2",
"ecosystem": "npm"
},
{
"name": "string_decoder",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "strip-ansi",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "strip-ansi",
"direct": false,
"version": "7.1.2",
"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": "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": "tar",
"direct": false,
"version": "7.5.2",
"ecosystem": "npm"
},
{
"name": "tar-fs",
"direct": false,
"version": "2.1.4",
"ecosystem": "npm"
},
{
"name": "tar-stream",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "test-exclude",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "text-table",
"direct": false,
"version": "0.2.0",
"ecosystem": "npm"
},
{
"name": "tinyglobby",
"direct": false,
"version": "0.2.15",
"ecosystem": "npm"
},
{
"name": "tmpl",
"direct": false,
"version": "1.0.5",
"ecosystem": "npm"
},
{
"name": "to-regex-range",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "ts-api-utils",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "ts-jest",
"direct": false,
"version": "29.4.6",
"ecosystem": "npm"
},
{
"name": "ts-node",
"direct": false,
"version": "10.9.2",
"ecosystem": "npm"
},
{
"name": "tsx",
"direct": false,
"version": "4.21.0",
"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.20.2",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "0.21.3",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "4.41.0",
"ecosystem": "npm"
},
{
"name": "typescript",
"direct": false,
"version": "5.9.3",
"ecosystem": "npm"
},
{
"name": "uglify-js",
"direct": false,
"version": "3.19.3",
"ecosystem": "npm"
},
{
"name": "undici-types",
"direct": false,
"version": "7.16.0",
"ecosystem": "npm"
},
{
"name": "unique-filename",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "unique-slug",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "update-browserslist-db",
"direct": false,
"version": "1.2.2",
"ecosystem": "npm"
},
{
"name": "uri-js",
"direct": false,
"version": "4.4.1",
"ecosystem": "npm"
},
{
"name": "util-deprecate",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "v8-compile-cache-lib",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "v8-to-istanbul",
"direct": false,
"version": "9.3.0",
"ecosystem": "npm"
},
{
"name": "walker",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "which",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "which",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "word-wrap",
"direct": false,
"version": "1.2.5",
"ecosystem": "npm"
},
{
"name": "wordwrap",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "wrap-ansi",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "wrap-ansi",
"direct": false,
"version": "8.1.0",
"ecosystem": "npm"
},
{
"name": "wrappy",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "write-file-atomic",
"direct": false,
"version": "4.0.2",
"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": "4.0.0",
"ecosystem": "npm"
},
{
"name": "yallist",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "yargs",
"direct": false,
"version": "17.7.2",
"ecosystem": "npm"
},
{
"name": "yargs-parser",
"direct": false,
"version": "21.1.1",
"ecosystem": "npm"
},
{
"name": "yn",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "yocto-queue",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
}
],
"collected": true,
"truncated": false,
"total_count": 498,
"direct_count": 1,
"indirect_count": 497
}
},
"maintainership": {
"issues": {
"open_prs": 0,
"merged_prs": 10,
"open_issues": 1,
"closed_ratio": 0,
"closed_issues": 0,
"closed_unmerged_prs": 0
},
"bus_factor": 1,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "adamziel",
"commits": 51,
"avatar_url": "https://avatars.githubusercontent.com/u/205419?v=4"
},
{
"type": "User",
"login": "brandonpayton",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/530877?v=4"
},
{
"type": "User",
"login": "wojtekn",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/727413?v=4"
}
],
"contributors_sampled": 3,
"top_contributor_share": 0.944
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"build-prebuilds.yml",
"node.js.yml",
"publish.yml",
"test.yml"
],
"has_docs_dir": false,
"linter_configs": [
".eslintrc"
],
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"package-lock.json"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 0,
"reason": "binaries present in source code",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 10,
"reason": "9 out of 9 merged PRs checked by a CI test -- score normalized to 10",
"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 1/30 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": 0,
"reason": "no 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": "12 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 2,
"reason": "dependency not pinned by hash detected -- score normalized to 2",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "38 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "a52f91c2a685d55d335a0572d40186a74a9cd119",
"ran_at": "2026-08-05T09:13:58Z",
"aggregate_score": 3,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"recent_prs": {
"merged_7d": 0,
"decided_7d": 0,
"merged_30d": 0,
"authors_30d": 0,
"decided_30d": 0,
"sample_size": 10,
"window_days": 30,
"sample_exhausted": false,
"authors_probed_30d": 0,
"newcomer_merged_30d": 0,
"bot_prs_excluded_30d": 0,
"newcomer_authors_30d": 0,
"newcomer_decided_30d": 0
},
"ci_last_run_at": "2026-08-05T05:59:46Z",
"oldest_open_prs": [],
"last_merged_pr_at": "2026-06-12T00:09:35Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 11,
"created_at": "2026-06-11T20:11:31Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/adamziel/fs-ext-prebuilt",
"host": "github.com",
"name": "fs-ext-prebuilt",
"owner": "adamziel"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": "The weighted overall 54 is calibrated to 56 on the published index scale (record calibration 2026-08-02).",
"notes": [
{
"code": "overall_calibration",
"params": {
"raw": 54,
"calibrated": 56,
"calibration": "2026-08-02"
}
}
],
"value": 56,
"inputs": {
"security": 44,
"vitality": 71,
"community": 41,
"governance": 50,
"calibration": "2026-08-02",
"engineering": 62,
"ai_readiness": 56,
"weighted_overall_raw": 54
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 71,
"weight": 0.21,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 60,
"inputs": {
"commits_last_year": 72,
"human_commit_share": 0.75,
"days_since_last_push": 11,
"active_weeks_last_year": 7
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 11 days ago",
"points": 28.8,
"status": "partial",
"details": [
{
"code": "push_recency",
"params": {
"days": 11
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "7/52 weeks with commits",
"points": 4.8,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 7
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "72 commits in the last year",
"points": 16.7,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 72
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "12 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 88,
"inputs": {
"releases_count": 10,
"latest_release_tag": "v2.2.10",
"releases_from_tags": true,
"days_since_latest_release": 11,
"mean_days_between_releases": 25.7
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "10 version tags (no GitHub releases)",
"points": 16.2,
"status": "partial",
"details": [
{
"code": "version_tags_no_releases",
"params": {
"count": 10
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 11 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 11
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~25.7 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 25.7
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "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": 54,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 54 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 54
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "weak",
"name": "Community & Adoption",
"value": 41,
"weight": 0.17,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 1,
"stars": 0,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "0 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 0
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "1 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 1
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "moderate",
"name": "Community health",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"has_readme": true,
"has_license": true,
"readme_badges": 0,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"readme_badge_services": [],
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "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": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "excellent",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 91,
"inputs": {
"packages": [
"fs-ext-extra-prebuilt"
],
"dependents": null,
"ecosystems": "npm",
"total_downloads": null,
"monthly_downloads": 300006
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "300,006 downloads/month across npm",
"points": 73,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 300006,
"ecosystems": "npm"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 50,
"weight": 0.23,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 17,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 3,
"top_contributor_share": 0.944
},
"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 94% of commits",
"points": 1.3,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 94
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "3 contributors",
"points": 4.1,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 3
}
}
],
"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": "at_risk",
"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": 34,
"inputs": {
"merged_prs": 10,
"open_issues": 1,
"closed_issues": 0,
"prs_merged_7d": 0,
"prs_decided_7d": 0,
"prs_merged_30d": 0,
"prs_decided_30d": 0,
"issue_closed_ratio": 0,
"closed_unmerged_prs": 0,
"first_time_authors_30d": 0,
"first_time_prs_merged_30d": 0,
"first_time_prs_decided_30d": 0
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "0% of issues closed",
"points": 0,
"status": "missed",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 0
}
}
],
"max_points": 42
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "10/10 decided PRs merged",
"points": 30,
"status": "met",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 10,
"decided": 10
}
}
],
"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 1/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "good",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 66,
"inputs": {
"followers": 282,
"owner_type": "User",
"is_verified": null,
"owner_login": "adamziel",
"public_repos": 165,
"account_age_days": 6012
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "282 followers of adamziel",
"points": 17.6,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 282,
"login": "adamziel"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "165 public repos, account ~16 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 165
}
},
{
"code": "account_age_years",
"params": {
"years": 16
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "exceptional",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"fs-ext-extra-prebuilt"
],
"ecosystems": "npm",
"any_deprecated": false,
"min_days_since_publish": 11
},
"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 11 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 11
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "8 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 8
}
}
],
"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": 62,
"weight": 0.19,
"metrics": [
{
"key": "engineering_practices",
"band": "excellent",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 84,
"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": "4 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 4
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": ".eslintrc",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".eslintrc"
}
}
],
"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": "9 out of 9 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "at_risk",
"name": "Documentation",
"note": null,
"notes": [],
"value": 30,
"inputs": {
"topics": [],
"has_wiki": false,
"homepage": null,
"has_readme": true,
"has_docs_dir": false,
"has_description": false
},
"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": 0,
"status": "missed",
"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": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "weak",
"name": "Security",
"value": 44,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 30,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 3
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "binaries present in source code",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "9 out of 9 merged PRs checked by a CI test -- score normalized to 10",
"points": 2.5,
"status": "met",
"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 1/30 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": "no update tool detected",
"points": 0,
"status": "missed",
"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": "12 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow 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 2",
"points": 1,
"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 not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "38 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"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:fs-ext-extra-prebuilt@2.2.10 runtime dependency closure — what installing the published package pulls in — 1 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:fs-ext-extra-prebuilt@2.2.10",
"assessed": 1
}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 100,
"inputs": {
"source": "osv",
"advisories": 0,
"affected_packages": 0,
"assessed_packages": 1,
"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": 1,
"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": 5
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "moderate",
"name": "AI Readiness",
"value": 56,
"weight": 0.04,
"metrics": [
{
"key": "ai_agent_context",
"band": "at_risk",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 33,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.611,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "no CLAUDE.md / AGENTS.md / editor rules",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_instructions",
"params": {}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "33 of 54 human commits state their intent (structured subject or explanatory body)",
"points": 32.6,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 33,
"sampled": 54
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 56,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"package-lock.json"
],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [
"tsconfig.json"
],
"agent_commit_share": 0,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": ".eslintrc",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".eslintrc"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "no agent-authored commits among the last 72",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"sampled": 72
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 2",
"points": 2,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "exceptional",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "TypeScript",
"largest_source_bytes": 23778,
"source_files_sampled": 22,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "TypeScript (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "TypeScript"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "0/22 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 22,
"oversized": 0
}
}
],
"max_points": 55
}
]
}
],
"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"
],
"labels": [
"library"
],
"scores": {
"library": 14
},
"primary": "library",
"evidence": [
{
"tier": "declared",
"label": "library",
"source": "npm.entry",
"weight": 8
},
{
"tier": "distribution",
"label": "library",
"source": "registry:npm",
"weight": 6
}
],
"artifacts": [
{
"path": "package.json",
"labels": [
"library"
],
"ecosystem": "npm"
}
],
"confidence": "high",
"host_extension": false,
"runs_as_process": false,
"consumed_by_code": true
},
"metrics_version": "2.5.0"
},
"warnings": [],
"report_type": "repository",
"generated_at": "2026-08-05T09:14:09.180973Z",
"schema_version": "0.31.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/a/adamziel/fs-ext-prebuilt.svg",
"full_name": "adamziel/fs-ext-prebuilt",
"license_state": "standard",
"license_spdx": "MIT"
}