原始 JSON 报告 机器可读
{
"data": {
"repo": {
"topics": [
"d",
"thrift",
"cplusplus",
"dart",
"actionscript",
"http",
"network-client",
"network-server",
"csharp",
"library",
"c"
],
"is_fork": false,
"size_kb": 38462,
"has_wiki": false,
"homepage": null,
"languages": {
"C": 1115185,
"D": 669668,
"C#": 623235,
"Go": 802785,
"M4": 173058,
"C++": 5094566,
"CSS": 1070,
"Lex": 9802,
"Lua": 95465,
"PHP": 789009,
"Dart": 193715,
"HTML": 38557,
"Haxe": 358347,
"Java": 1514654,
"Perl": 141737,
"Ruby": 638782,
"Rust": 484168,
"Yacc": 30812,
"CMake": 150262,
"OCaml": 53171,
"Shell": 89285,
"Erlang": 350651,
"Kotlin": 58601,
"Pascal": 663776,
"Python": 633566,
"Thrift": 534538,
"Makefile": 258865,
"Batchfile": 37669,
"Dockerfile": 43314,
"Emacs Lisp": 5361,
"JavaScript": 561218,
"PowerShell": 24619,
"TypeScript": 47757,
"Vim Script": 2846,
"Common Lisp": 41010,
"StringTemplate": 29322
},
"pushed_at": "2026-07-22T00:13:36Z",
"created_at": "2009-09-18T08:00:17Z",
"owner_type": "Organization",
"updated_at": "2026-07-22T00:13:59Z",
"description": "Apache Thrift",
"is_archived": false,
"is_disabled": false,
"license_spdx": "Apache-2.0",
"default_branch": "master",
"license_spdx_raw": "Apache-2.0",
"primary_language": "C++",
"significant_languages": [
"C++"
]
},
"owner": {
"blog": "https://www.apache.org/",
"name": "The Apache Software Foundation",
"type": "Organization",
"login": "apache",
"company": null,
"location": null,
"followers": 23513,
"avatar_url": "https://avatars.githubusercontent.com/u/47359?v=4",
"created_at": "2009-01-17T20:14:40Z",
"is_verified": null,
"public_repos": 3146,
"account_age_days": 6394
},
"license": {
"state": "standard",
"spdx_id": "Apache-2.0",
"raw_spdx": "Apache-2.0",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v0.24.0",
"kind": "minor",
"published_at": "2026-07-11T16:48:47Z"
},
{
"tag": "v0.23.0",
"kind": "minor",
"published_at": "2026-04-27T22:41:53Z"
},
{
"tag": "v0.22.0",
"kind": "minor",
"published_at": "2025-05-23T20:49:03Z"
},
{
"tag": "v0.21.0",
"kind": "minor",
"published_at": "2024-09-21T13:13:40Z"
},
{
"tag": "v0.20.0",
"kind": "minor",
"published_at": "2024-03-22T22:52:36Z"
},
{
"tag": "v0.19.0",
"kind": "minor",
"published_at": "2023-09-02T11:35:32Z"
},
{
"tag": "v0.18.1",
"kind": "patch",
"published_at": "2023-03-01T22:17:28Z"
},
{
"tag": "v0.18.0",
"kind": "minor",
"published_at": "2023-02-13T20:57:14Z"
},
{
"tag": "v0.17.0",
"kind": "minor",
"published_at": "2022-09-18T13:39:57Z"
},
{
"tag": "v0.16.0",
"kind": "minor",
"published_at": "2022-02-15T21:22:16Z"
},
{
"tag": "lib/go/thrift/v0.0.1-do-not-use",
"kind": "other",
"published_at": "2021-10-18T20:18:43Z"
},
{
"tag": "v0.15.0",
"kind": "minor",
"published_at": "2021-09-11T11:54:01Z"
},
{
"tag": "v0.14.2",
"kind": "patch",
"published_at": "2021-06-17T20:46:18Z"
},
{
"tag": "v0.14.1",
"kind": "patch",
"published_at": "2021-03-08T21:32:02Z"
},
{
"tag": "v0.14.0",
"kind": "minor",
"published_at": "2021-02-11T23:08:09Z"
},
{
"tag": "v0.13.0",
"kind": "minor",
"published_at": "2020-05-27T07:08:57Z"
},
{
"tag": "0.9.3.1",
"kind": "other",
"published_at": "2019-03-13T13:13:12Z"
},
{
"tag": "v0.12.0",
"kind": "minor",
"published_at": "2018-12-27T13:48:51Z"
}
],
"recent_commits": [
{
"oid": "307f64bc8d59a75168b4f1fe351605bfa08d91b8",
"body": "Bumps [linkify-it](https://github.com/markdown-it/linkify-it) from 5.0.1 to 5.0.2.\n- [Changelog](https://github.com/markdown-it/linkify-it/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/markdown-it/linkify-it/compare/5.0.1...5.0.2)\n\n---\nupdated-dependencies:\n- dependency-name: linkify-it\n dependency-version: 5.0.2\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump linkify-it from 5.0.1 to 5.0.2 in /lib/js",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-22T00:13:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3b81e1d280890ce4b4bf48c76ae73a191b8f0b52",
"body": "Client: rb\n\nCo-Authored-By: OpenAI Codex (GPT-5.6) <codex@openai.com>",
"is_bot": false,
"headline": "THRIFT-6112: Reject duplicate Ruby socket opens",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-21T23:49:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "41ab486cdde0766c0d4a8e1ce28ba1b819d1308d",
"body": "…l responses\n\nClient: rb\n\nCo-Authored-By: OpenAI Codex (GPT-5.6) <codex@openai.com>",
"is_bot": false,
"headline": "THRIFT-6110: Ruby HTTP client transport should reject empty successfu…",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-21T22:57:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8db51cf4710ae5c9976ea4776f37b4354ffe3d4e",
"body": "Client: rb\n\nCo-Authored-By: OpenAI Codex (GPT-5.6) <codex@openai.com>",
"is_bot": false,
"headline": "THRIFT-6098: Preserve caller-supplied Ruby SSL contexts",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-21T22:40:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "af9d5556aa7eaffb2de04409f4bbdcc5b454b817",
"body": "…ocal builds\n\nClient: py\n\nThe check-local recipe invoked the test without passing THRIFT through as\nan environment variable, so find_thrift() never saw the compiler make had\njust built. Its relative-path fallback was also off by one directory\nlevel and could never resolve to compiler/cpp/thrift or\nb\n[…]\n test silently printed \"thrift compiler not found, skipping test\" and\nreturned success, giving no real coverage in CI since THRIFT-5927 merged.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "THRIFT-6113: Fix test_keyword_escape.py silently skipping in CI and l…",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-21T22:19:33Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8c00c6489ae9cd34bed4694f5b1b4f218430db07",
"body": null,
"is_bot": false,
"headline": "updated System.ServiceModel.Primitives 10.x breaks net8/net9",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-21T22:13:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c65ef8f2f3551e2f87a16f278e12382e9f2b3753",
"body": null,
"is_bot": false,
"headline": "FIX: AreSequenceEqual() is correct",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-21T21:02:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cd00f037fa9363f7a068d963d33729bfe9372412",
"body": null,
"is_bot": false,
"headline": "nuget package update",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-21T12:51:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d8eeec5f3f1f9ee186da1cc324ec9bc09672fa4f",
"body": "Bumps [shell-quote](https://github.com/ljharb/shell-quote) from 1.8.4 to 1.10.0.\n- [Changelog](https://github.com/ljharb/shell-quote/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/ljharb/shell-quote/compare/v1.8.4...v1.10.0)\n\n---\nupdated-dependencies:\n- dependency-name: shell-quote\n dependency-version: 1.10.0\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump shell-quote from 1.8.4 to 1.10.0 in /lib/js",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-21T12:43:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1bd5e4d5496c1896042fb495c9a56dce763929ad",
"body": "---\nupdated-dependencies:\n- dependency-name: System.Security.Cryptography.Xml\n dependency-version: 10.0.10\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump System.Security.Cryptography.Xml from 10.0.7 to 10.0.10",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-21T12:43:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5e4f1f23fc1c3f09dc8243ed5140e081b0d7cf3a",
"body": "Client: rb\n\nCo-Authored-By: OpenAI Codex (GPT-5.4) <codex@openai.com>",
"is_bot": false,
"headline": "THRIFT-6111: Make Ruby struct equality symmetric",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-21T12:21:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "794ab0d4eab55c9293fbc239375cf48f4623fb0c",
"body": "---\nupdated-dependencies:\n- dependency-name: System.Security.Cryptography.Xml\n dependency-version: 10.0.10\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump System.Security.Cryptography.Xml from 10.0.7 to 10.0.10",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-21T09:34:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "03804e86243a2e86b35788736c825c83244e1745",
"body": "…t label\n\nClient: rb\n\nCo-Authored-By: OpenAI Codex (GPT-5.6) <codex@openai.com>",
"is_bot": false,
"headline": "THRIFT-6109: Ruby HTTP client transport should provide a safe endpoin…",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-20T23:34:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d2001f7444f7540e26ca553ceddad10e31392298",
"body": "…alues\n\nClient: rb\n\nCo-Authored-By: OpenAI Codex (GPT-5.4) <codex@openai.com>",
"is_bot": false,
"headline": "THRIFT-6103: Ruby MemoryBufferTransport should return unsigned byte v…",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-20T22:00:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2fa08c0d36afc15fbab00df457e6bd9fe3c54824",
"body": "Client: rb\n\nCo-Authored-By: OpenAI Codex (GPT-5.4) <codex@openai.com>",
"is_bot": false,
"headline": "THRIFT-6105: Preserve partial MemoryBufferTransport read progress",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-20T21:25:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "36f43a87c94bb2c5c62ec209bf2d79dd80a9b079",
"body": "…tion buffers\n\nClient: rb\n\nCo-Authored-By: OpenAI Codex (GPT-5.4) <codex@openai.com>",
"is_bot": false,
"headline": "THRIFT-6100: Ruby MemoryBufferTransport should respect frozen destina…",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-20T19:31:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "deb21c2cebe27d3455823346ef5eb386b2d0f464",
"body": "…sistently\n\nClient: rb\n\nCo-Authored-By: OpenAI Codex (GPT-5.4) <codex@openai.com>",
"is_bot": false,
"headline": "THRIFT-6102: Ruby CompactProtocol should report malformed headers con…",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-20T19:30:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "35291f71024c537a024e531565dd8e5f12c4d436",
"body": "Client: rb\n\nCo-Authored-By: OpenAI Codex (GPT-5.4) <codex@openai.com>",
"is_bot": false,
"headline": "THRIFT-6106: Decode fixed-width values without undefined shifts",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-20T15:36:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9e96ff4a4500de09d4709afb9b451675315d2925",
"body": "Client: rb\n\nCo-Authored-By: OpenAI Codex (GPT-5.4) <codex@openai.com>",
"is_bot": false,
"headline": "THRIFT-6104: Ruby native struct writing should accept Set subclasses",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-20T15:35:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "53276391d2ae45acba782eb5b51699e465751638",
"body": "…ting booleans\n\nClient: rb\n\nCo-Authored-By: OpenAI Codex (GPT-5.4) <codex@openai.com>",
"is_bot": false,
"headline": "THRIFT-6101: Ruby CompactProtocol should use Ruby truthiness when wri…",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-20T15:34:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ae44493d2db21f672be7e7a93f0a74466e11a409",
"body": "…ngths\n\nClient: rb\n\nCo-Authored-By: OpenAI Codex (GPT-5.4) <codex@openai.com>",
"is_bot": false,
"headline": "THRIFT-6099: Ruby MemoryBufferTransport should reject invalid read le…",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-20T15:32:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bc2dd8fdb5b2aeecaa66b737db7de6c019a452f2",
"body": "Client: rb\n\nCo-Authored-By: OpenAI Codex (GPT-5.4) <codex@openai.com>",
"is_bot": false,
"headline": "THRIFT-6098: Verify Ruby SSL peers by default",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-20T15:31:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "40d5a7ed9558adaacefc2aa4958fb6742d9b3f3f",
"body": "Several 0.24.0 fixes were merged as direct commits rather than through\na GitHub PR, so the CHANGES.md generator (THRIFT-6077) had no PR to\nattribute them to. Adds the missing JIRA references (THRIFT-6083\nthrough THRIFT-6096) and upgrades existing bare PR-number entries to\ntheir JIRA ticket links.",
"is_bot": false,
"headline": "Link CHANGES.md 0.24.0 entries to their JIRA tickets",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-18T23:30:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6351cd5a05ad04ce99469e33e633d9ce4b2f5654",
"body": "Client: go\n\nparseHeaders() read the wire-supplied transform count and sized two\nallocations from it before checking anything beyond count > 0. Every other\nwire-supplied container count (list/set/map sizes across the binary,\ncompact, and JSON protocols) is already validated through\ncheckContainerSizeForProtocol() before use; the transform count is now\nrouted through the same check.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Validate the THeader transform count against the configured message size",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-18T23:27:21Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "0187cf606bfac2064eb98475c467ae176e0c778e",
"body": "Client: cpp\n\nTFramedTransportFactory, THeaderTransportFactory, TBufferedTransportFactory,\nTPipedTransportFactory, TPipedFileReaderTransportFactory, TZlibTransportFactory,\nand THttpServerTransportFactory (base of both TWebSocketServer variants) all\nconstructed their wrapper transport without forwardi\n[…]\ne one TConfiguration instance by\nreference. Each factory now passes the wrapped transport's configuration\nthrough to its wrapper's constructor.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Propagate TConfiguration through standard transport factory wrappers",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-18T23:27:14Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c6f6b484af1b0e42b12fbf99a779d96e76d6563a",
"body": "THRIFT-6075: Generate Equal method for Delphi Thrift structs\nClient: delphi\nPatch: Jens Geyer\n\nCo-authored-by: Claude Code (misc models) <noreply@anthropic.com>",
"is_bot": false,
"headline": "THRIFT-6075: Generate Equal method for Delphi Thrift structs (#3612)",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-18T11:32:17Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "cdb7e5fbe8d5bd7c3dd6dae779d39974f65577f9",
"body": "Client: rs\n\nCo-Authored-By: OpenAI Codex (GPT-5) <noreply@openai.com>",
"is_bot": false,
"headline": "THRIFT-6097: Add rustls client and server support",
"author_name": "HTHou",
"author_login": "HTHou",
"committed_at": "2026-07-18T11:20:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "09cd5f23b1e289b7a641dd0b8cf2cd890e3f4399",
"body": "Client: rs\n\nGenerated-by: OpenAI Codex (GPT-5)",
"is_bot": false,
"headline": "THRIFT-5917: Remove Rust deprecation warning",
"author_name": "HTHou",
"author_login": "HTHou",
"committed_at": "2026-07-15T22:53:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ad471499638d63eff45e8d77e2f6dacb19aa00d2",
"body": "… test shutdown\n\nClient: py\n\nThe SIGALRM-based shutdown handler in TestServer.py called\nserver.stop() from within the signal handler itself. When the\nalarm interrupts the main thread while it's blocked in\nTProcessPoolServer.serve()'s Condition.wait(), the reentrant\nCondition.notify() call deadlocks:\n[…]\nTerminate the workers and exit the process directly instead of\ncoordinating through the Condition, since the process is being\ntorn down anyway.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "THRIFT-6082: Avoid reentrant Condition.notify() in TProcessPoolServer…",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-15T22:52:29Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "bfa471bc2918dca8aa2c70eeb451646f7cbe5abb",
"body": "Bumps [ws](https://github.com/websockets/ws) from 6.2.3 to 6.2.4.\n- [Release notes](https://github.com/websockets/ws/releases)\n- [Commits](https://github.com/websockets/ws/compare/6.2.3...6.2.4)\n\n---\nupdated-dependencies:\n- dependency-name: ws\n dependency-version: 6.2.4\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump ws from 6.2.3 to 6.2.4 in /lib/js",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-15T21:24:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "882bc8fe9100d49670a1a8f513066a599d6c6db7",
"body": "Client: rb\n\nCo-Authored-By: OpenAI Codex (GPT-5.4) <codex@openai.com>",
"is_bot": false,
"headline": "THRIFT-6079: Add Rack HTTP server support for Ruby",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-13T23:05:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4ade7f7ad807e5701721cb0e4b7275583406cdfb",
"body": "Client: py\n\nCo-Authored-By: OpenAI Codex (GPT-5.4) <codex@openai.com>",
"is_bot": false,
"headline": "THRIFT-6081: Fix UUID handling in Python Header protocol",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-12T13:18:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b3fa3eef5756214ac4f507631f80e12d05348980",
"body": "Client: cpp\n\nCo-Authored-By: OpenAI Codex (GPT-5.4) <codex@openai.com>",
"is_bot": false,
"headline": "Enable C++ TLS cross-tests",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-12T13:18:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a1d117afb2070ac7ba15b40b3b47bf6b5496483f",
"body": null,
"is_bot": false,
"headline": "Sharpened some aspects of AGENTS/CLAUDE.md",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-12T09:03:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "afa1fd590c1ace9c2d4a0cf7953e654d07898183",
"body": "A hung TestServer.py subprocess previously consumed the full\n6-hour default GitHub Actions job timeout before the run was\ncancelled. Cap these jobs so a future hang fails within minutes\ninstead of tying up scarce macOS runner capacity.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add job timeout to Python CI jobs",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-11T22:49:39Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "bfa9648c587f0566a0c94d4e59c21b3e8aee379f",
"body": "Bumps [ws](https://github.com/websockets/ws) from 6.2.3 to 6.2.4.\n- [Release notes](https://github.com/websockets/ws/releases)\n- [Commits](https://github.com/websockets/ws/compare/6.2.3...6.2.4)\n\n---\nupdated-dependencies:\n- dependency-name: ws\n dependency-version: 6.2.4\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump ws from 6.2.3 to 6.2.4 in /lib/ts",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-11T22:49:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "10e18b1ed577f0c3f401312f2f553306f7632dbd",
"body": "…ompiler-cpp SCA job\n\ncppcheck needs -I compiler/cpp/src to resolve project headers\nlike thrift/version.h (which defines THRIFT_VERSION).\nWithout it, the adjacent string-literal concatenation pattern\nintroduced in this PR triggers unknownMacro errors.\n\nAlso suppress danglingTempReference false positive in\nt_cpp_generator.cc where a ternary between a derived-type\nlvalue and a base-class lvalue produces a valid reference,\nnot a dangling temporary.\n\nClient: sca",
"is_bot": false,
"headline": "THRIFT-6076: Add include path and suppress danglingTempReference in c…",
"author_name": "Justin Caratzas",
"author_login": "bigjust",
"committed_at": "2026-07-11T16:28:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b88950c541aa3ff79211c2eb3c40f703ca5151a0",
"body": "…ler generators\n\nGCC 14 with LTO (-flto=auto) produces false-positive -Werror=stringop-overflow\nand -Werror=stringop-overread diagnostics at link time when chained\nstd::string() + \"literal\" + \"literal\" expressions are inlined across\ntranslation units.\n\nThe root cause is a GCC 14 LTO inter-procedural\n[…]\nent()\n t_delphi_generator.cc : autogen_comment()\n t_rb_generator.cc : rb_autogen_comment()\n t_xsd_generator.cc : xml_autogen_comment()\n\nSee: https://issues.apache.org/jira/browse/THRIFT-6076",
"is_bot": false,
"headline": "THRIFT-6076: Fix GCC 14 LTO false-positive stringop-overflow in compi…",
"author_name": "Justin Caratzas",
"author_login": "bigjust",
"committed_at": "2026-07-11T16:28:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "aecca3988239148dd2bd8c81cc2580d32364ace6",
"body": null,
"is_bot": false,
"headline": "Merge branch 'release/0.24.0' into upstream-master",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-11T16:23:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b7b838d4508a79d37fe0bf8eb1065d0ebe4c30d9",
"body": null,
"is_bot": false,
"headline": "bump version number, fixed veralign.sh new/removed files",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-11T15:56:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "76a94da65d48fd27ca49c6be64bd4717af52a6c3",
"body": "Client: java\n\nTSaslTransport.readFrame() allocated the data-frame buffer directly from the\nwire-declared length, checking only for negative values. The SASL negotiation\nphase (receiveSaslMessage) and the layered TFramedTransport already bound the\ndeclared size by TConfiguration; apply the same getMa\n[…]\nSize() limit here so\nthe post-handshake data path rejects a frame larger than the configured maximum\nbefore allocating the buffer.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add a frame size limit to the SASL data-frame reader",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-08T23:25:32Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "175e803d7e0c2700afb9468542a91fbdac7c1eec",
"body": "Client: java\n\nFrameReader allocated the payload buffer directly from the header-declared\nsize. The layered TFramedTransport already bounds incoming frames by\nTConfiguration.getMaxFrameSize(); apply the same limit here so the SASL\nnegotiation and data frame paths reject a payload size larger than the\nconfigured maximum before allocating the buffer.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add a configurable frame size limit to the SASL frame reader",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-08T23:25:05Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "4bbda18f0d7cf77e785c9b15fafacc7fec620162",
"body": "Client: rb\n\nCo-Authored-By: OpenAI Codex (GPT-5.4) <codex@openai.com>",
"is_bot": false,
"headline": "THRIFT-6078: Send SNI from Ruby SSL clients",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-06T22:19:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "231d3b89e6cf397fd8397b83bf807745fa6eab6c",
"body": "Client: rb\n\nCo-Authored-By: OpenAI Codex (GPT-5.4) <codex@openai.com>",
"is_bot": false,
"headline": "Skip Thin HTTP server bundle on Ruby head",
"author_name": "Dmytro Shteflyuk",
"author_login": "kpumuk",
"committed_at": "2026-07-06T22:16:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3494a2dbbc7f9a892e0aab46e83a44c71bb66eb2",
"body": "Keep cibuildwheel release builds from silently falling back to pure-Python wheels when the fastbinary C extension fails to compile.\n\nThe upstream PyPI workflow already builds manylinux aarch64 wheels; this guard makes those release wheels fail fast instead of publishing incomplete binary artifacts.\n\nCo-authored-by: OpenAI ChatGPT <noreply@openai.com>",
"is_bot": false,
"headline": "THRIFT-5955 Require C extension in Python wheels",
"author_name": "Vitaly Zdanevich",
"author_login": "vitaly-zdanevich",
"committed_at": "2026-07-06T20:41:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6d2ec95f450b4ce404afb8929ff479e68770141a",
"body": "Adjust what \"make dist\" ships in the release tarball.\n\nDropped (build output and generated code that a built tree leaves behind,\nswept in via whole-directory EXTRA_DIST entries and pruned in dist-hook;\nnone of it is tracked, so a clean checkout never contained it):\n- lib/haxe/test/{bin,gen-haxe}, li\n[…]\n entries, and the only tracked files removed are .github/* and\ndoc/thrift-threat-model.md.\n\nClient: netstd,haxe,javame,lua,php,cpp\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Tune make dist: drop generated/build artifacts, add missing sources",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-05T20:04:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "4f303a2413c9f6b0116a0714c55a7686579109e6",
"body": "When lib/nodejs/test has been through \"npm install\", it contains a\nnode_modules/thrift symlink pointing back at the repo root (so the tests\ncan require('thrift')). \"make dist\" copies the whole test/ tree via\nEXTRA_DIST and tars it with --hard-dereference, which follows that\nself-referential link rec\n[…]\nest/node_modules to the nodejs clean-local rule, which already removed\nthe episodic node_modules but not this one.\n\nClient: nodejs\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Strip node_modules from dist to fix make dist symlink recursion",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-05T11:54:36Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "529a3128766e7aed1a8105b006458baeef0b95b5",
"body": "The configure checks parsed the toolchain version with sed expressions that\nonly matched single-digit components (e.g. [0-9].[0-9].[0-9]). Modern\ntoolchains such as go1.25.0 therefore did not match, and the raw, unparsed\ncommand output -- including the \"go: downloading ...\" toolchain line and the\n\"\n[…]\nersion line and accept multi-digit,\nmulti-component version numbers, yielding a clean value (e.g. 1.25.0 / 1.85.1).\n\nClient: go,rs\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix Go and Rust version detection for multi-digit version numbers",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-05T11:21:42Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e685cc2cb84e10f32abf4ab31cd637555f2c8150",
"body": "Assemble the autotools source distribution (bootstrap, configure, make dist)\non every push and pull request, so stale EXTRA_DIST references -- a file\nlisted in the distribution but since removed or moved -- are caught at merge\ntime instead of only when cutting a release.\n\n--disable-libs keeps the jo\n[…]\nanguage directory via DIST_SUBDIRS, so all EXTRA_DIST lists\nare validated regardless of which bindings are enabled.\n\nClient: build\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add a make dist job to CI",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-05T11:19:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ee6f4fa655598447a11dc7446a967ab89ac052a9",
"body": "Two files listed in the distribution no longer existed at their referenced\npaths, so \"make dist\" aborted with \"No rule to make target ...\":\n\n- Thrift.podspec was removed together with the Swift binding but was left\n behind in the top-level EXTRA_DIST.\n- The netstd THttpServerTransport.cs was moved \n[…]\nport/Server/; point EXTRA_DIST at the Transport\n directory instead, matching the existing Thrift/Transport entry.\n\nClient: netstd\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix stale EXTRA_DIST references that broke make dist",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-05T11:19:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "270b81edfb343546a6ed1dbc03d9d82633c91af2",
"body": "Two files listed in the distribution no longer existed at their referenced\npaths, so \"make dist\" aborted with \"No rule to make target ...\":\n\n- Thrift.podspec was removed together with the Swift binding but was left\n behind in the top-level EXTRA_DIST.\n- The netstd THttpServerTransport.cs was moved \n[…]\nport/Server/; point EXTRA_DIST at the Transport\n directory instead, matching the existing Thrift/Transport entry.\n\nClient: netstd\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix stale EXTRA_DIST references that broke make dist",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-05T11:18:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c1df044f2eb290c7e51cc99ddb547e34fdbf0430",
"body": "The configure checks parsed the toolchain version with sed expressions that\nonly matched single-digit components (e.g. [0-9].[0-9].[0-9]). Modern\ntoolchains such as go1.25.0 therefore did not match, and the raw, unparsed\ncommand output -- including the \"go: downloading ...\" toolchain line and the\n\"\n[…]\nersion line and accept multi-digit,\nmulti-component version numbers, yielding a clean value (e.g. 1.25.0 / 1.85.1).\n\nClient: go,rs\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix Go and Rust version detection for multi-digit version numbers",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-05T11:18:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b68c323595257d0de1bffb1c049e1880e38037b0",
"body": null,
"is_bot": false,
"headline": "Minor corrections/improvements to ReleaseManagement.md",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-05T08:34:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dd8ecde06ee114731d9cf0e87e63d5004d094eab",
"body": null,
"is_bot": false,
"headline": "Minor corrections/improvements to ReleaseManagement.md",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-05T08:31:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "342a80320e959ced1956a70fd5fd2624f0e01398",
"body": null,
"is_bot": false,
"headline": "updated CHANGES.md",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-04T23:36:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "24c1f0144f5d3346fbb9772eaf3a60d863acc80e",
"body": "Client: build\n\nbuild/generate-changes.py routed several classes of entries to \"(No Section)\"\nin the generated draft even though a usable signal was available:\n\n- dependabot / CI PRs whose only GitHub labels are github_actions,\n dependencies, testsuite or doc were unmapped;\n- rebase-merged PRs land \n[…]\n the commit Client: trailer for componentless tickets.\nAdd build/test_generate_changes.py covering the section-assignment helpers.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "THRIFT-6077: improve CHANGES.md generator section assignment",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-04T23:26:51Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0d66913b703d48156bec6530d8f3bc478d501f27",
"body": null,
"is_bot": false,
"headline": "bump doap & debian changelog",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-07-04T22:26:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f961cdb44249c293fcce6a840ffa1f7419fd88d0",
"body": "Client: cpp\nPatch: Javid Khan <dxbjavid@gmail.com>\n\nwhen reading the key/value info headers of a THeader frame, readString reads\nthe length varint and then bounds it against the bytes left in the header\nsection. the comparison uses ptr before it is moved past the varint, so the\nremaining count is ov\n[…]\nhose checks pass so the documented\nadvance-on-success behaviour still holds. regression tests covering both the\noversized and the negative length are added to ThrifttReadCheckTests.\n\nThis closes #3610",
"is_bot": false,
"headline": "fix info-header string bound check in THeaderTransport::readString",
"author_name": "Javid Khan",
"author_login": "dxbjavid",
"committed_at": "2026-07-02T21:24:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0ab16e3a83637711f4e0f788c205f66576fd0a55",
"body": null,
"is_bot": false,
"headline": "enforce max_string_size on non-strict binary message name",
"author_name": "Javid Khan",
"author_login": "dxbjavid",
"committed_at": "2026-07-01T21:53:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "817e0f17a84264f894dad62e8fcbb146070790e0",
"body": "Bumps [rubygems/release-gem](https://github.com/rubygems/release-gem) from 1.2.0 to 1.4.0.\n- [Release notes](https://github.com/rubygems/release-gem/releases)\n- [Commits](https://github.com/rubygems/release-gem/compare/6317d8d1f7e28c24d28f6eff169ea854948bd9f7...052cc82692552de3ef2b81fd670e41d13cba80\n[…]\npendency-name: rubygems/release-gem\n dependency-version: 1.4.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump rubygems/release-gem from 1.2.0 to 1.4.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-01T20:54:03Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6dfb0b26ea6b9ab9c114e0ef4c0f6e7b8110b242",
"body": "Client: cpp\n\nAdd explicit SSLContext(SSL_CTX* ctx) to wrap an application-configured\nOpenSSL context via the existing SSLContextFactory hook. Document the\ninjection pattern and add SecurityTest coverage.",
"is_bot": false,
"headline": "THRIFT-6073: Allow injecting external SSL_CTX into C++ SSLContext",
"author_name": "761417898",
"author_login": "hongzhi-gao",
"committed_at": "2026-07-01T20:47:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "81e2f0a361edf318416e9bbf36ce2489f5183442",
"body": "Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.310.0 to 1.314.0.\n- [Release notes](https://github.com/ruby/setup-ruby/releases)\n- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)\n- [Commits](https://github.com/ruby/setup-ruby/compare/afeafc3d1ab54a631816aba4\n[…]\n dependency-name: ruby/setup-ruby\n dependency-version: 1.314.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump ruby/setup-ruby from 1.310.0 to 1.314.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-01T20:27:01Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ff2b3dc88274589e9af08b703ff1f131d03cb1e5",
"body": "Bumps [rust-lang/crates-io-auth-action](https://github.com/rust-lang/crates-io-auth-action) from 1.0.4 to 1.0.5.\n- [Release notes](https://github.com/rust-lang/crates-io-auth-action/releases)\n- [Commits](https://github.com/rust-lang/crates-io-auth-action/compare/bbd81622f20ce9e2dd9622e3218b975523e45\n[…]\nme: rust-lang/crates-io-auth-action\n dependency-version: 1.0.5\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump rust-lang/crates-io-auth-action from 1.0.4 to 1.0.5",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-01T20:26:51Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b4cf30d3702188a73d99735577d87c7917a11b39",
"body": "Bumps [jvm](https://github.com/JetBrains/kotlin) from 2.3.21 to 2.4.0.\n- [Release notes](https://github.com/JetBrains/kotlin/releases)\n- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)\n- [Commits](https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.0)\n\n---\nupdated-dependencies:\n- dependency-name: jvm\n dependency-version: 2.4.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump jvm from 2.3.21 to 2.4.0 in /lib/kotlin",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-01T20:26:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e5860a3278c2344b80929c386d2e1667455366eb",
"body": "Bumps com.diffplug.spotless from 8.5.1 to 8.7.0.\n\n---\nupdated-dependencies:\n- dependency-name: com.diffplug.spotless\n dependency-version: 8.7.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump com.diffplug.spotless from 8.5.1 to 8.7.0 in /lib/kotlin",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-01T20:26:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "10de225e8164f1ed5bc80790c34ac9a35d69db29",
"body": "Bumps [actions/setup-go](https://github.com/actions/setup-go) from 6.4.0 to 6.5.0.\n- [Release notes](https://github.com/actions/setup-go/releases)\n- [Commits](https://github.com/actions/setup-go/compare/4a3601121dd01d1626a1e23e37211e3254c1c06c...924ae3a1cded613372ab5595356fb5720e22ba16)\n\n---\nupdated\n[…]\n- dependency-name: actions/setup-go\n dependency-version: 6.5.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump actions/setup-go from 6.4.0 to 6.5.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-01T13:42:42Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "073a35933b885beb418bcb2fb9db329c617d8dc0",
"body": "…in lib/js\n\nUpgrade jsdoc from ^3.6.7 to ^4.0.0 in lib/js and add an npm override\nto force grunt-jsdoc to use jsdoc 4.x instead of 3.x. This eliminates\ntaffydb from the lib/js dependency tree.\n\nlib/ts has no jsdoc dependency on current master, so no change needed there.\n\nClient: js\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nGenerated-by: Claude Sonnet 4.6\n\nThis closes #3608",
"is_bot": false,
"headline": "THRIFT-6017: Upgrade jsdoc to 4.x and override transitive dependency …",
"author_name": "Justin Caratzas",
"author_login": "bigjust",
"committed_at": "2026-06-30T16:54:46Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "d68305a7308a11df2c1daef16f55dbc19dfa6ff0",
"body": "Client: c_glib\n\nthrift_framed_transport_read_slow copies leftover bytes from the previous frame with memcpy(buf, t->r_buf, t->r_buf->len), passing the GByteArray struct pointer as the source instead of t->r_buf->data. The correct source is the buffer's data member, as used by the other memcpy calls \n[…]\name mistake in its leftover path. Both are updated to read from t->r_buf->data, and a regression test using a memory buffer exercises the cross-boundary read path in each transport.\n\nThis closes #3607",
"is_bot": false,
"headline": "copy buffered data not the GByteArray struct in c_glib read_slow",
"author_name": "Javid Khan",
"author_login": "dxbjavid",
"committed_at": "2026-06-27T10:04:18Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e455f3255f4d3a45129c621151ce7b5c9945bd28",
"body": "…(#3595)\n\n* THRIFT-6069: python: avoid utf8 copy during fastbinary string encode\nClient: py\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "THRIFT-6069: python: avoid utf8 copy during fastbinary string encode …",
"author_name": "Mark Molinaro",
"author_login": "markjm",
"committed_at": "2026-06-26T21:58:28Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "deb36fa409849de45973b04ffc3ce49d277ca90a",
"body": null,
"is_bot": false,
"headline": "enforce stringLengthLimit in TCompactProtocol.readBinary",
"author_name": "dxbjavid",
"author_login": "dxbjavid",
"committed_at": "2026-06-24T21:15:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "137d693e281dabda8790340cde5642ca8739df35",
"body": "…the Go JSON protocol\n\nClient: go\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Bound the container element count before the 64-bit size precheck in …",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-06-18T22:52:16Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ed643a86d4fec8d94dbff9048ad5fda67fcca473",
"body": "Client: go\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "widen container size precheck to 64-bit in go protocols",
"author_name": "dxbjavid",
"author_login": "dxbjavid",
"committed_at": "2026-06-18T22:52:16Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "80ed45a71ad26b76cc9f35b3c073d01ef08e4bc0",
"body": "…protocols\n\nClient: netstd,delphi,haxe\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Compute container size precheck in 64-bit in netstd, Delphi and Haxe …",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-06-18T22:32:17Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "eee7d03a6aedcc76eea03b476e252a78e7201a39",
"body": "Client: cpp\n\nCo-Authored-By: Codex <noreply@openai.com>",
"is_bot": false,
"headline": "THRIFT-3165: Set C++ default TLS protocol floor",
"author_name": "HTHou",
"author_login": "HTHou",
"committed_at": "2026-06-18T21:26:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "43e699045d9bef059510924120610a02c3b931fc",
"body": "Client: swift\n\nRemove the Swift compiler generator, library, tests, tutorial, and all\nassociated build system, CI, and documentation references. No maintainer\nhas been available for this binding; the lib-swift CI job has been\ndisabled since 0.23.0.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "THRIFT-5864: Remove Swift binding",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-06-18T20:32:58Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "fe96c888516ade1ece4f677efd9852939d1a4fad",
"body": "… and SimpleServer\n\nClient: rb\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "THRIFT-6072: Rescue connection errors during accept in ThreadedServer…",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-06-18T20:24:14Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "c016cd23c8bd20eb57e2190f0f93435d4c95ca40",
"body": "Client: nodejs\n\nImproved input buffer allocation strategy. Apply default consistent with the maxMessageSize / maxFrameSize used by the other Thrift libraries and reject larger input through the stream error path; the limit stays opt-in for the existing client read paths so their behaviour is unchanged.\n\nAdds tests for the receivers and for the server path.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Bound receive size and amortize buffer growth in Node.js transports",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-06-17T23:52:53Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "db4a473f3a984eee27273256fe737be5dd175595",
"body": "Client: cpp\n\nThe zlib read path decompressed the frame into the transform buffer and then copied the result back into the receive buffer. Swap the transform buffer in as the receive buffer and read the result directly instead of copying it.\n\nAdds a write/read round-trip test through the zlib transform.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Read the zlib transform result directly in THeaderTransport untransform",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-06-17T23:51:18Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "0e4a47eac95767af4501e60f337dc67189b7b022",
"body": "…g conversion in TSimpleJSONProtocol\n\nClient: go\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "THRIFT-6071: Validate container size fits int32 range before narrowin…",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-06-17T21:26:09Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ae251547b481cfd94e9670ae4f0ae787f7cafef0",
"body": "THeaderTransport.cpp is compiled into libthriftz, not libthrift.\nWithout this link, the new THeaderTransport test case produces an\nundefined reference to the vtable at link time.\n\nClient: cpp\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "link UnitTests against libthriftz to resolve THeaderTransport vtable",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-06-17T21:18:20Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "4da36faeef0b7db4b1dea560b01eb15957335934",
"body": null,
"is_bot": false,
"headline": "fix off-by-ten header bounds check in readHeaderFormat",
"author_name": "dxbjavid",
"author_login": "dxbjavid",
"committed_at": "2026-06-17T21:18:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7d1c098df544ebf82584e516f638a8efd12210de",
"body": "Client: go\n\nCompanion to THRIFT-6071 (same guard for ParseElemListBegin).\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Validate map size fits int32 range before narrowing in ReadMapBegin",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-06-17T20:18:50Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "90721695045463743265f088e8f489d8aaed34fc",
"body": null,
"is_bot": false,
"headline": "check wire-supplied size in simple json ReadMapBegin",
"author_name": "dxbjavid",
"author_login": "dxbjavid",
"committed_at": "2026-06-17T20:18:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "11d8207554bccbb06fca5dabf0c1de8d3d046c59",
"body": "Client: py\n\nCo-Authored-By: Codex <noreply@openai.com>",
"is_bot": false,
"headline": "THRIFT-6070: Publish Python wheel distributions to PyPI",
"author_name": "HTHou",
"author_login": "HTHou",
"committed_at": "2026-06-17T14:17:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "983c813c9a1a2302d9a3ae23d7368beceaac2d0a",
"body": "…arithmetic overflow on LLP64 platforms\n\nClient: cpp,c_glib\nPatch: Javid Khan\n\nThis closes #3590",
"is_bot": false,
"headline": "Widen multiplication operands in container size prechecks to prevent …",
"author_name": "dxbjavid",
"author_login": "dxbjavid",
"committed_at": "2026-06-13T09:53:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "35c1a53dd6de205a4a7c23fc356f1fba490116c4",
"body": "…mports\n\nClient: rs\n\nThe Rust code generator hardcodes 'use crate::' for cross-file imports\n(e.g., when event.thrift includes trees.thrift). This assumes the\ngenerated files are placed at the crate root (src/). When files are\nplaced in a submodule (e.g., src/thrift/), the correct prefix is\n'super', \n[…]\n 'use ::module;' (an external\ncrate path in Rust 2018+). Unknown options are reported with the\ngenerator prefix ('unknown option rs:') per compiler convention.\n\nCo-Authored-By: Grok 4.3 <noreply@x.ai>",
"is_bot": false,
"headline": "THRIFT-6059: add crate_prefix option to Rust codegen for cross-file i…",
"author_name": "Santiago Medina Rolong",
"author_login": "santiagomed",
"committed_at": "2026-06-11T20:57:15Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4b0691b2ab59ab7e61a49ae2e435d962b9a6b1c1",
"body": "Client: py\n\n- Add _recursion_depth counter and DEFAULT_RECURSION_DEPTH=64 to TProtocolBase;\n increment_recursion_depth() raises TProtocolException.DEPTH_LIMIT and\n self-decrements before raising so a reused protocol is not corrupted on overflow\n- Generated read()/write() wrap struct body in increm\n[…]\n linked to DEFAULT_RECURSION_DEPTH constant; accelerated\n tests skip when fastbinary is not built; regression test for counter-leak on reuse\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "THRIFT-6043: Limit struct read/write recursion depth in Python library",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-06-11T20:24:15Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b9b268a8c30506a9746c6d348423319a40d38042",
"body": "Bumps [shell-quote](https://github.com/ljharb/shell-quote) from 1.7.3 to 1.8.4.\n- [Changelog](https://github.com/ljharb/shell-quote/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/ljharb/shell-quote/compare/v1.7.3...v1.8.4)\n\n---\nupdated-dependencies:\n- dependency-name: shell-quote\n dependency-version: 1.8.4\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump shell-quote from 1.7.3 to 1.8.4 in /lib/js",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-11T20:22:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "445c062e3ac745a2841962002a8ec1e8f41320e8",
"body": "Bumps [shell-quote](https://github.com/ljharb/shell-quote) from 1.7.3 to 1.8.4.\n- [Changelog](https://github.com/ljharb/shell-quote/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/ljharb/shell-quote/compare/v1.7.3...v1.8.4)\n\n---\nupdated-dependencies:\n- dependency-name: shell-quote\n dependency-version: 1.8.4\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump shell-quote from 1.7.3 to 1.8.4 in /lib/ts",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-09T21:50:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "878db5809e51a8223051496b6125d27a243d3441",
"body": "Client: rs\n\n- Split single job into dry-run (no env/OIDC) + publish (release only)\n- Pin RUSTUP_TOOLCHAIN to 1.85 instead of floating stable\n- Add version consistency check between Cargo.toml and release tag\n- Fix zizmor code-injection finding in release_rust.yml\n- Pass release tag name via env var instead of direct template expansion\n in the run block to prevent shell injection.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\nThis closes #3588",
"is_bot": false,
"headline": "THRIFT-6068: Auto-publish Rust crate on GitHub Release",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-06-09T20:49:15Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "37925920f03aa036fe90d87b4bd61dc631d6d367",
"body": "… explicitly\n\nGitHub is redirecting windows-2025 to windows-2025-vs2026 by 2026-06-15.\nThe new runner image has Docker Engine installed but not auto-started, causing\nthe daemon-readiness polling loop to exhaust its 4-minute budget. Explicitly\nstart the Docker service if it is not running and extend the poll deadline to\n6 minutes (step timeout 8 minutes).\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Update MSVC CI to windows-2025-vs2026 runner and start Docker service…",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-06-08T21:10:12Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "4b4484ac06911c0703e0c7f55dbc06372f76de5c",
"body": "Client: nodejs,compiler\n\nAdds BigInt support to the js:node binding through the compiler and a\npair of JS-level helpers; the binary protocol itself is not touched.\n\nt_js_generator.cc gains a bare `bigint` flag (default off, opt-in)\nthat applies when `node` is in the option list. When set:\n\n- I64 con\n[…]\n for this work yet; a committer should\ncreate one and rename the PR title / branch to the THRIFT-NNNN\nconvention.\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>\nGenerated-by: Claude Opus 4.7",
"is_bot": false,
"headline": "nodejs+compiler: Add opt-in BigInt support for int64 via js:bigint flag",
"author_name": "Jiayu Liu",
"author_login": "jimexist",
"committed_at": "2026-06-08T21:09:36Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c097d239f76d0ff904065242e5ec91f1aabea355",
"body": null,
"is_bot": false,
"headline": "limit recursion depth in c_glib thrift_protocol_skip",
"author_name": "dxbjavid",
"author_login": "dxbjavid",
"committed_at": "2026-06-08T20:36:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "73a168bed349303c6677232e68df38cca6fc5480",
"body": "…ds on setuptools < 69\n\nthrift ships sdist-only, so every pip install builds lib/py/setup.py via the\nPEP 517 in-process backend. setup.py calls sys.exit(0) on its build success\npaths. setuptools' build_meta.run_setup() runs setup.py with exec(). On\nsetuptools < 69 the resulting SystemExit propagates\n[…]\nunchanged.\n\nRelated: THRIFT-5915 / PR #3007 (distutils -> setuptools migration).\nSigned-off-by: Vikrant Puppala <vikrant.puppala@databricks.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "THRIFT-6067: [py] Remove sys.exit() from setup.py to fix PEP 517 buil…",
"author_name": "Vikrant Puppala",
"author_login": "vikrantpuppala",
"committed_at": "2026-06-06T16:35:42Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "68cfa01fb6623f545a9ee220a42307396cb0770c",
"body": "…omise\n\nClient: js,nodets\nPatch: Jiayu Liu\n\nRemoves the runtime dependency on the `q` Promise library and switches\nthe JS/TS code generator to emit native Promise by default.\n\n- Compiler (t_js_generator.cc): in non-ES6 mode the processor emits\n `new Promise((resolve) => resolve(handler.fn(args)))` \n[…]\ncall `assert.fail(...)` directly instead\n of `fail(...)` which only returned a function and was never invoked.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>\n\nThis closes #3528",
"is_bot": false,
"headline": "THRIFT-6040: Switch JS/Node generator and runtime from Q to native Pr…",
"author_name": "Jiayu Liu",
"author_login": "jimexist",
"committed_at": "2026-06-05T23:36:23Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "dc9644eacba48cd77260c6106e498d98daff5392",
"body": "…ckage\n\nClient: netstd\n\nThe core ApacheThrift package no longer depends on the ASP.NET Core stack or\nthe Microsoft.Extensions.Logging providers, so non-web projects no longer pull\nin all of those DLLs. THttpServerTransport (the only ASP.NET Core type) moves to\na new ApacheThrift.AspNetCore package; the core library keeps only the\nMicrosoft.Extensions.Logging.Abstractions dependency used by the TServer types.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "THRIFT-4534: Move ASP.NET Core HTTP server transport to a separate pa…",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-06-05T22:44:14Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "208b779bc98c17c01fb2fdde327056a5ab3882bf",
"body": "Client: nodejs\n\nws v8 added strict validation of the protocols argument and rejects\nan empty string with `SyntaxError: An invalid or duplicated subprotocol\nwas specified`. ws v5 tolerated `\"\"` silently.\n\nWSConnection passed `\"\"` as the protocols argument when running on\nNode (browser code path is un\n[…]\n documented signatures.\n\nSurfaced by the lib-nodejs CI job after the ws 5 -> 8 upgrade.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>\nGenerated-by: Claude Opus 4.7 (1M context)",
"is_bot": false,
"headline": "Fix WebSocket subprotocol for ws v8",
"author_name": "Jiayu Liu",
"author_login": "jimexist",
"committed_at": "2026-06-03T21:12:27Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2973732067dcb3eca2f987947891aff2d364c067",
"body": "Client: nodejs\n\nThe ws package was pinned at ^5.2.3 (resolved 5.2.4), which is\nseveral major versions behind the current 8.21.0 release.\n\nws is consumed indirectly via isomorphic-ws in\nlib/nodejs/lib/thrift/ws_connection.js; only the client-side\n`new WebSocket(uri, \"\", wsOptions)` constructor is use\n[…]\ns BSD-2-Clause licensed (ASF Category A), so no LICENSE or\nNOTICE updates are required.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>\nGenerated-by: Claude Opus 4.7 (1M context)",
"is_bot": false,
"headline": "Upgrade ws from 5.2.x to 8.21.0",
"author_name": "Jiayu Liu",
"author_login": "jimexist",
"committed_at": "2026-06-03T21:12:27Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d2d907d83b523ee0130e33a9cd456f13e00a9831",
"body": "…in PHP library\n\nClient: php\n\nA recursion-depth counter (incrementRecursionDepth/decrementRecursionDepth,\nlimit DEFAULT_RECURSION_DEPTH = 64, TProtocolException::DEPTH_LIMIT on excess)\nis enforced at the two mutually exclusive generated-code call sites: the\ngenerator wraps the inline read/write loop\n[…]\nst<self>,\nso the reader recurses through the guarded struct path rather than skip()).\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "THRIFT-6047: Limit struct/union/exception read/write recursion depth …",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-06-03T21:11:30Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "26ba56a5bae085d57a76c05627dc22c57c688f35",
"body": "Client: go\n\nThe Go code generator now wraps every generated struct Read/Write with a\nper-context recursion-depth tracker (thrift.CheckRecursionDepth /\nDecrementRecursionDepth), returning TProtocolException(DEPTH_LIMIT) once the\nnesting exceeds DEFAULT_RECURSION_DEPTH (64). Previously only Skip() was\n[…]\ngument\nwith context.Background(); those matchers are relaxed to gomock.Any() (the\ncall sequence, argument types and values are still asserted).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "THRIFT-6044: Limit struct read/write recursion depth in Go library",
"author_name": "Jens Geyer",
"author_login": "Jens-G",
"committed_at": "2026-06-03T21:10:08Z",
"body_truncated": true,
"is_coding_agent": true
}
],
"releases_count": 18,
"commits_last_year": 566,
"latest_release_at": "2026-07-11T16:48:47Z",
"latest_release_tag": "v0.24.0",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 47,
"days_since_latest_release": 10,
"mean_days_between_releases": 178.5
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 87,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": true
},
"ecosystem": {
"packages": [
{
"name": "github.com/apache/thrift",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/apache/thrift",
"is_deprecated": false,
"latest_version": "v0.24.0",
"repository_url": "https://github.com/apache/thrift",
"versions_count": 16,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-07-05T20:04:17Z",
"latest_version_yanked": null,
"days_since_latest_publish": 16
},
{
"name": "thrift",
"exists": true,
"license": "Apache-2.0",
"keywords": [],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/thrift",
"is_deprecated": false,
"latest_version": "0.24.0",
"repository_url": "https://github.com/apache/thrift",
"versions_count": 29,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 5,
"monthly_downloads": 5546382,
"first_published_at": "2011-01-03T06:02:40.364000Z",
"latest_published_at": "2026-07-11T20:42:57.561000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 10
},
{
"name": "apache/thrift",
"exists": true,
"license": "Apache-2.0",
"keywords": [
"rpc"
],
"ecosystem": "packagist",
"matches_repo": true,
"registry_url": "https://packagist.org/packages/apache/thrift",
"is_deprecated": false,
"latest_version": "v0.24.0",
"repository_url": "https://github.com/apache/thrift",
"versions_count": 22,
"total_downloads": 2115718,
"dependents_count": 54,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": 9426,
"first_published_at": null,
"latest_published_at": "2026-07-05T20:04:17Z",
"latest_version_yanked": null,
"days_since_latest_publish": 16
}
]
},
"popularity": {
"forks": 4113,
"stars": 10941,
"watchers": 445,
"fork_history": {
"days": [
{
"date": "2020-09-18",
"count": 1
},
{
"date": "2020-09-21",
"count": 2
},
{
"date": "2020-09-22",
"count": 1
},
{
"date": "2020-09-24",
"count": 1
},
{
"date": "2020-09-25",
"count": 1
},
{
"date": "2020-09-27",
"count": 2
},
{
"date": "2020-09-29",
"count": 1
},
{
"date": "2020-10-01",
"count": 1
},
{
"date": "2020-10-03",
"count": 1
},
{
"date": "2020-10-04",
"count": 1
},
{
"date": "2020-10-05",
"count": 2
},
{
"date": "2020-10-06",
"count": 1
},
{
"date": "2020-10-09",
"count": 1
},
{
"date": "2020-10-11",
"count": 1
},
{
"date": "2020-10-12",
"count": 1
},
{
"date": "2020-10-13",
"count": 2
},
{
"date": "2020-10-14",
"count": 1
},
{
"date": "2020-10-16",
"count": 2
},
{
"date": "2020-10-20",
"count": 4
},
{
"date": "2020-10-21",
"count": 2
},
{
"date": "2020-10-22",
"count": 1
},
{
"date": "2020-10-23",
"count": 1
},
{
"date": "2020-10-24",
"count": 1
},
{
"date": "2020-10-25",
"count": 1
},
{
"date": "2020-10-26",
"count": 1
},
{
"date": "2020-10-27",
"count": 4
},
{
"date": "2020-10-28",
"count": 1
},
{
"date": "2020-10-29",
"count": 1
},
{
"date": "2020-10-30",
"count": 3
},
{
"date": "2020-10-31",
"count": 1
},
{
"date": "2020-11-02",
"count": 1
},
{
"date": "2020-11-03",
"count": 2
},
{
"date": "2020-11-05",
"count": 2
},
{
"date": "2020-11-06",
"count": 1
},
{
"date": "2020-11-10",
"count": 2
},
{
"date": "2020-11-12",
"count": 2
},
{
"date": "2020-11-13",
"count": 3
},
{
"date": "2020-11-14",
"count": 1
},
{
"date": "2020-11-16",
"count": 6
},
{
"date": "2020-11-18",
"count": 1
},
{
"date": "2020-11-23",
"count": 1
},
{
"date": "2020-11-24",
"count": 3
},
{
"date": "2020-11-25",
"count": 1
},
{
"date": "2020-11-27",
"count": 2
},
{
"date": "2020-12-01",
"count": 3
},
{
"date": "2020-12-02",
"count": 2
},
{
"date": "2020-12-03",
"count": 1
},
{
"date": "2020-12-04",
"count": 1
},
{
"date": "2020-12-06",
"count": 1
},
{
"date": "2020-12-08",
"count": 3
},
{
"date": "2020-12-09",
"count": 2
},
{
"date": "2020-12-14",
"count": 1
},
{
"date": "2020-12-16",
"count": 4
},
{
"date": "2020-12-17",
"count": 1
},
{
"date": "2020-12-18",
"count": 1
},
{
"date": "2020-12-21",
"count": 1
},
{
"date": "2020-12-22",
"count": 1
},
{
"date": "2020-12-24",
"count": 1
},
{
"date": "2020-12-25",
"count": 2
},
{
"date": "2020-12-28",
"count": 1
},
{
"date": "2021-01-02",
"count": 1
},
{
"date": "2021-01-03",
"count": 1
},
{
"date": "2021-01-05",
"count": 1
},
{
"date": "2021-01-08",
"count": 2
},
{
"date": "2021-01-09",
"count": 1
},
{
"date": "2021-01-10",
"count": 1
},
{
"date": "2021-01-12",
"count": 1
},
{
"date": "2021-01-13",
"count": 1
},
{
"date": "2021-01-14",
"count": 2
},
{
"date": "2021-01-18",
"count": 1
},
{
"date": "2021-01-20",
"count": 2
},
{
"date": "2021-01-23",
"count": 1
},
{
"date": "2021-01-24",
"count": 1
},
{
"date": "2021-01-27",
"count": 3
},
{
"date": "2021-01-28",
"count": 3
},
{
"date": "2021-01-29",
"count": 1
},
{
"date": "2021-01-31",
"count": 2
},
{
"date": "2021-02-01",
"count": 1
},
{
"date": "2021-02-02",
"count": 2
},
{
"date": "2021-02-03",
"count": 2
},
{
"date": "2021-02-04",
"count": 3
},
{
"date": "2021-02-05",
"count": 3
},
{
"date": "2021-02-08",
"count": 1
},
{
"date": "2021-02-09",
"count": 1
},
{
"date": "2021-02-15",
"count": 1
},
{
"date": "2021-02-17",
"count": 3
},
{
"date": "2021-02-18",
"count": 1
},
{
"date": "2021-02-19",
"count": 1
},
{
"date": "2021-02-20",
"count": 1
},
{
"date": "2021-02-22",
"count": 1
},
{
"date": "2021-02-23",
"count": 2
},
{
"date": "2021-02-25",
"count": 3
},
{
"date": "2021-02-26",
"count": 2
},
{
"date": "2021-03-02",
"count": 2
},
{
"date": "2021-03-04",
"count": 1
},
{
"date": "2021-03-08",
"count": 1
},
{
"date": "2021-03-10",
"count": 1
},
{
"date": "2021-03-14",
"count": 2
},
{
"date": "2021-03-15",
"count": 1
},
{
"date": "2021-03-17",
"count": 1
},
{
"date": "2021-03-18",
"count": 1
},
{
"date": "2021-03-20",
"count": 1
},
{
"date": "2021-03-23",
"count": 3
},
{
"date": "2021-03-24",
"count": 1
},
{
"date": "2021-03-28",
"count": 1
},
{
"date": "2021-03-29",
"count": 1
},
{
"date": "2021-04-01",
"count": 1
},
{
"date": "2021-04-02",
"count": 1
},
{
"date": "2021-04-05",
"count": 1
},
{
"date": "2021-04-07",
"count": 2
},
{
"date": "2021-04-08",
"count": 1
},
{
"date": "2021-04-09",
"count": 1
},
{
"date": "2021-04-11",
"count": 1
},
{
"date": "2021-04-13",
"count": 1
},
{
"date": "2021-04-15",
"count": 1
},
{
"date": "2021-04-16",
"count": 2
},
{
"date": "2021-04-17",
"count": 1
},
{
"date": "2021-04-19",
"count": 1
},
{
"date": "2021-04-21",
"count": 3
},
{
"date": "2021-04-23",
"count": 6
},
{
"date": "2021-04-26",
"count": 1
},
{
"date": "2021-04-27",
"count": 1
},
{
"date": "2021-04-28",
"count": 2
},
{
"date": "2021-04-29",
"count": 1
},
{
"date": "2021-05-03",
"count": 1
},
{
"date": "2021-05-04",
"count": 1
},
{
"date": "2021-05-07",
"count": 1
},
{
"date": "2021-05-10",
"count": 1
},
{
"date": "2021-05-11",
"count": 1
},
{
"date": "2021-05-12",
"count": 2
},
{
"date": "2021-05-13",
"count": 2
},
{
"date": "2021-05-14",
"count": 2
},
{
"date": "2021-05-15",
"count": 2
},
{
"date": "2021-05-19",
"count": 1
},
{
"date": "2021-05-20",
"count": 1
},
{
"date": "2021-05-21",
"count": 3
},
{
"date": "2021-05-22",
"count": 2
},
{
"date": "2021-05-26",
"count": 1
},
{
"date": "2021-05-27",
"count": 1
},
{
"date": "2021-05-28",
"count": 2
},
{
"date": "2021-05-31",
"count": 1
},
{
"date": "2021-06-01",
"count": 2
},
{
"date": "2021-06-03",
"count": 1
},
{
"date": "2021-06-04",
"count": 1
},
{
"date": "2021-06-05",
"count": 1
},
{
"date": "2021-06-07",
"count": 1
},
{
"date": "2021-06-10",
"count": 1
},
{
"date": "2021-06-11",
"count": 3
},
{
"date": "2021-06-14",
"count": 1
},
{
"date": "2021-06-16",
"count": 1
},
{
"date": "2021-06-20",
"count": 1
},
{
"date": "2021-06-21",
"count": 1
},
{
"date": "2021-06-22",
"count": 1
},
{
"date": "2021-06-29",
"count": 2
},
{
"date": "2021-06-30",
"count": 3
},
{
"date": "2021-07-01",
"count": 1
},
{
"date": "2021-07-02",
"count": 1
},
{
"date": "2021-07-05",
"count": 1
},
{
"date": "2021-07-07",
"count": 1
},
{
"date": "2021-07-08",
"count": 2
},
{
"date": "2021-07-09",
"count": 1
},
{
"date": "2021-07-12",
"count": 1
},
{
"date": "2021-07-13",
"count": 1
},
{
"date": "2021-07-19",
"count": 1
},
{
"date": "2021-07-20",
"count": 1
},
{
"date": "2021-07-21",
"count": 1
},
{
"date": "2021-07-23",
"count": 3
},
{
"date": "2021-07-26",
"count": 1
},
{
"date": "2021-07-27",
"count": 2
},
{
"date": "2021-07-28",
"count": 2
},
{
"date": "2021-07-29",
"count": 2
},
{
"date": "2021-08-01",
"count": 1
},
{
"date": "2021-08-03",
"count": 1
},
{
"date": "2021-08-05",
"count": 1
},
{
"date": "2021-08-06",
"count": 1
},
{
"date": "2021-08-07",
"count": 1
},
{
"date": "2021-08-08",
"count": 1
},
{
"date": "2021-08-11",
"count": 1
},
{
"date": "2021-08-14",
"count": 1
},
{
"date": "2021-08-21",
"count": 1
},
{
"date": "2021-08-23",
"count": 1
},
{
"date": "2021-08-24",
"count": 1
},
{
"date": "2021-08-30",
"count": 2
},
{
"date": "2021-09-01",
"count": 1
},
{
"date": "2021-09-05",
"count": 2
},
{
"date": "2021-09-08",
"count": 2
},
{
"date": "2021-09-09",
"count": 2
},
{
"date": "2021-09-10",
"count": 1
},
{
"date": "2021-09-11",
"count": 1
},
{
"date": "2021-09-14",
"count": 1
},
{
"date": "2021-09-15",
"count": 1
},
{
"date": "2021-09-19",
"count": 1
},
{
"date": "2021-09-22",
"count": 1
},
{
"date": "2021-09-23",
"count": 1
},
{
"date": "2021-09-27",
"count": 1
},
{
"date": "2021-09-28",
"count": 2
},
{
"date": "2021-09-30",
"count": 1
},
{
"date": "2021-10-04",
"count": 1
},
{
"date": "2021-10-06",
"count": 1
},
{
"date": "2021-10-08",
"count": 1
},
{
"date": "2021-10-09",
"count": 2
},
{
"date": "2021-10-10",
"count": 1
},
{
"date": "2021-10-11",
"count": 1
},
{
"date": "2021-10-13",
"count": 1
},
{
"date": "2021-10-14",
"count": 1
},
{
"date": "2021-10-15",
"count": 1
},
{
"date": "2021-10-19",
"count": 1
},
{
"date": "2021-10-23",
"count": 1
},
{
"date": "2021-10-25",
"count": 2
},
{
"date": "2021-10-28",
"count": 1
},
{
"date": "2021-10-29",
"count": 1
},
{
"date": "2021-11-02",
"count": 1
},
{
"date": "2021-11-03",
"count": 2
},
{
"date": "2021-11-04",
"count": 1
},
{
"date": "2021-11-08",
"count": 1
},
{
"date": "2021-11-09",
"count": 1
},
{
"date": "2021-11-10",
"count": 1
},
{
"date": "2021-11-12",
"count": 1
},
{
"date": "2021-11-13",
"count": 2
},
{
"date": "2021-11-15",
"count": 1
},
{
"date": "2021-11-16",
"count": 1
},
{
"date": "2021-11-17",
"count": 2
},
{
"date": "2021-11-18",
"count": 1
},
{
"date": "2021-11-23",
"count": 2
},
{
"date": "2021-11-25",
"count": 1
},
{
"date": "2021-11-26",
"count": 1
},
{
"date": "2021-11-29",
"count": 1
},
{
"date": "2021-12-01",
"count": 1
},
{
"date": "2021-12-05",
"count": 1
},
{
"date": "2021-12-06",
"count": 1
},
{
"date": "2021-12-07",
"count": 3
},
{
"date": "2021-12-08",
"count": 1
},
{
"date": "2021-12-11",
"count": 1
},
{
"date": "2021-12-13",
"count": 1
},
{
"date": "2021-12-14",
"count": 1
},
{
"date": "2021-12-16",
"count": 1
},
{
"date": "2021-12-17",
"count": 1
},
{
"date": "2021-12-18",
"count": 1
},
{
"date": "2021-12-19",
"count": 3
},
{
"date": "2021-12-21",
"count": 1
},
{
"date": "2021-12-23",
"count": 1
},
{
"date": "2021-12-24",
"count": 1
},
{
"date": "2021-12-26",
"count": 2
},
{
"date": "2021-12-29",
"count": 1
},
{
"date": "2021-12-30",
"count": 1
},
{
"date": "2021-12-31",
"count": 3
},
{
"date": "2022-01-03",
"count": 1
},
{
"date": "2022-01-05",
"count": 1
},
{
"date": "2022-01-06",
"count": 1
},
{
"date": "2022-01-07",
"count": 1
},
{
"date": "2022-01-09",
"count": 2
},
{
"date": "2022-01-10",
"count": 1
},
{
"date": "2022-01-11",
"count": 1
},
{
"date": "2022-01-12",
"count": 2
},
{
"date": "2022-01-20",
"count": 1
},
{
"date": "2022-01-21",
"count": 1
},
{
"date": "2022-01-22",
"count": 1
},
{
"date": "2022-01-25",
"count": 1
},
{
"date": "2022-01-26",
"count": 1
},
{
"date": "2022-01-27",
"count": 1
},
{
"date": "2022-01-31",
"count": 1
},
{
"date": "2022-02-04",
"count": 2
},
{
"date": "2022-02-05",
"count": 3
},
{
"date": "2022-02-07",
"count": 1
},
{
"date": "2022-02-08",
"count": 5
},
{
"date": "2022-02-12",
"count": 3
},
{
"date": "2022-02-13",
"count": 1
},
{
"date": "2022-02-14",
"count": 1
},
{
"date": "2022-02-17",
"count": 2
},
{
"date": "2022-02-18",
"count": 1
},
{
"date": "2022-02-20",
"count": 1
},
{
"date": "2022-02-21",
"count": 3
},
{
"date": "2022-02-22",
"count": 1
},
{
"date": "2022-02-24",
"count": 2
},
{
"date": "2022-02-26",
"count": 2
},
{
"date": "2022-02-28",
"count": 1
},
{
"date": "2022-03-02",
"count": 1
},
{
"date": "2022-03-08",
"count": 2
},
{
"date": "2022-03-10",
"count": 2
},
{
"date": "2022-03-14",
"count": 1
},
{
"date": "2022-03-15",
"count": 3
},
{
"date": "2022-03-16",
"count": 2
},
{
"date": "2022-03-17",
"count": 2
},
{
"date": "2022-03-18",
"count": 3
},
{
"date": "2022-03-20",
"count": 1
},
{
"date": "2022-03-25",
"count": 1
},
{
"date": "2022-03-31",
"count": 1
},
{
"date": "2022-04-01",
"count": 1
},
{
"date": "2022-04-05",
"count": 1
},
{
"date": "2022-04-06",
"count": 2
},
{
"date": "2022-04-10",
"count": 2
},
{
"date": "2022-04-11",
"count": 1
},
{
"date": "2022-04-12",
"count": 1
},
{
"date": "2022-04-13",
"count": 4
},
{
"date": "2022-04-17",
"count": 1
},
{
"date": "2022-04-19",
"count": 2
},
{
"date": "2022-04-21",
"count": 1
},
{
"date": "2022-04-23",
"count": 2
},
{
"date": "2022-04-24",
"count": 2
},
{
"date": "2022-04-26",
"count": 1
},
{
"date": "2022-04-28",
"count": 1
},
{
"date": "2022-05-02",
"count": 1
},
{
"date": "2022-05-03",
"count": 2
},
{
"date": "2022-05-05",
"count": 1
},
{
"date": "2022-05-08",
"count": 1
},
{
"date": "2022-05-10",
"count": 1
},
{
"date": "2022-05-11",
"count": 1
},
{
"date": "2022-05-18",
"count": 1
},
{
"date": "2022-05-21",
"count": 1
},
{
"date": "2022-05-23",
"count": 1
},
{
"date": "2022-05-25",
"count": 2
},
{
"date": "2022-05-26",
"count": 1
},
{
"date": "2022-05-28",
"count": 2
},
{
"date": "2022-05-29",
"count": 2
},
{
"date": "2022-05-30",
"count": 1
},
{
"date": "2022-06-01",
"count": 1
},
{
"date": "2022-06-02",
"count": 1
},
{
"date": "2022-06-03",
"count": 1
},
{
"date": "2022-06-06",
"count": 1
},
{
"date": "2022-06-07",
"count": 1
},
{
"date": "2022-06-08",
"count": 1
},
{
"date": "2022-06-09",
"count": 1
},
{
"date": "2022-06-10",
"count": 2
},
{
"date": "2022-06-12",
"count": 1
},
{
"date": "2022-06-21",
"count": 1
},
{
"date": "2022-06-24",
"count": 2
},
{
"date": "2022-06-28",
"count": 1
},
{
"date": "2022-06-30",
"count": 1
},
{
"date": "2022-07-01",
"count": 2
},
{
"date": "2022-07-04",
"count": 1
},
{
"date": "2022-07-06",
"count": 2
},
{
"date": "2022-07-07",
"count": 1
},
{
"date": "2022-07-09",
"count": 1
},
{
"date": "2022-07-11",
"count": 2
},
{
"date": "2022-07-14",
"count": 1
},
{
"date": "2022-07-16",
"count": 1
},
{
"date": "2022-07-18",
"count": 2
},
{
"date": "2022-07-28",
"count": 1
},
{
"date": "2022-08-03",
"count": 1
},
{
"date": "2022-08-05",
"count": 1
},
{
"date": "2022-08-08",
"count": 1
},
{
"date": "2022-08-09",
"count": 1
},
{
"date": "2022-08-14",
"count": 1
},
{
"date": "2022-08-15",
"count": 2
},
{
"date": "2022-08-16",
"count": 1
},
{
"date": "2022-08-17",
"count": 1
},
{
"date": "2022-08-18",
"count": 2
},
{
"date": "2022-08-19",
"count": 1
},
{
"date": "2022-08-22",
"count": 2
},
{
"date": "2022-08-23",
"count": 1
},
{
"date": "2022-08-24",
"count": 2
},
{
"date": "2022-08-27",
"count": 1
},
{
"date": "2022-08-29",
"count": 1
},
{
"date": "2022-09-04",
"count": 1
},
{
"date": "2022-09-07",
"count": 2
},
{
"date": "2022-09-13",
"count": 1
},
{
"date": "2022-09-15",
"count": 1
},
{
"date": "2022-09-20",
"count": 1
},
{
"date": "2022-09-21",
"count": 2
},
{
"date": "2022-09-24",
"count": 1
},
{
"date": "2022-09-26",
"count": 1
},
{
"date": "2022-09-28",
"count": 1
},
{
"date": "2022-10-03",
"count": 1
},
{
"date": "2022-10-09",
"count": 1
},
{
"date": "2022-10-12",
"count": 2
},
{
"date": "2022-10-13",
"count": 1
},
{
"date": "2022-10-16",
"count": 1
},
{
"date": "2022-10-18",
"count": 1
},
{
"date": "2022-10-23",
"count": 1
},
{
"date": "2022-10-30",
"count": 2
},
{
"date": "2022-11-04",
"count": 1
},
{
"date": "2022-11-07",
"count": 1
},
{
"date": "2022-11-08",
"count": 1
},
{
"date": "2022-11-09",
"count": 1
},
{
"date": "2022-11-11",
"count": 1
},
{
"date": "2022-11-14",
"count": 2
},
{
"date": "2022-11-16",
"count": 1
},
{
"date": "2022-11-17",
"count": 1
},
{
"date": "2022-11-19",
"count": 2
},
{
"date": "2022-11-20",
"count": 1
},
{
"date": "2022-11-21",
"count": 1
},
{
"date": "2022-11-29",
"count": 2
},
{
"date": "2022-12-01",
"count": 1
},
{
"date": "2022-12-03",
"count": 1
},
{
"date": "2022-12-05",
"count": 1
},
{
"date": "2022-12-08",
"count": 1
},
{
"date": "2022-12-09",
"count": 1
},
{
"date": "2022-12-13",
"count": 1
},
{
"date": "2022-12-15",
"count": 2
},
{
"date": "2022-12-22",
"count": 2
},
{
"date": "2022-12-23",
"count": 1
},
{
"date": "2023-01-03",
"count": 1
},
{
"date": "2023-01-06",
"count": 1
},
{
"date": "2023-01-07",
"count": 1
},
{
"date": "2023-01-13",
"count": 1
},
{
"date": "2023-01-15",
"count": 1
},
{
"date": "2023-01-16",
"count": 1
},
{
"date": "2023-01-21",
"count": 1
},
{
"date": "2023-01-22",
"count": 1
},
{
"date": "2023-01-26",
"count": 1
},
{
"date": "2023-01-30",
"count": 2
},
{
"date": "2023-02-06",
"count": 1
},
{
"date": "2023-02-07",
"count": 2
},
{
"date": "2023-02-09",
"count": 2
},
{
"date": "2023-02-13",
"count": 1
},
{
"date": "2023-02-14",
"count": 2
},
{
"date": "2023-02-15",
"count": 1
},
{
"date": "2023-02-17",
"count": 1
},
{
"date": "2023-02-19",
"count": 1
},
{
"date": "2023-02-20",
"count": 2
},
{
"date": "2023-02-21",
"count": 1
},
{
"date": "2023-02-24",
"count": 1
},
{
"date": "2023-03-02",
"count": 1
},
{
"date": "2023-03-04",
"count": 3
},
{
"date": "2023-03-06",
"count": 2
},
{
"date": "2023-03-08",
"count": 1
},
{
"date": "2023-03-12",
"count": 1
},
{
"date": "2023-03-13",
"count": 1
},
{
"date": "2023-03-14",
"count": 2
},
{
"date": "2023-03-15",
"count": 2
},
{
"date": "2023-03-17",
"count": 1
},
{
"date": "2023-03-19",
"count": 1
},
{
"date": "2023-03-22",
"count": 1
},
{
"date": "2023-03-23",
"count": 1
},
{
"date": "2023-03-24",
"count": 1
},
{
"date": "2023-03-27",
"count": 1
},
{
"date": "2023-03-28",
"count": 1
},
{
"date": "2023-03-29",
"count": 1
},
{
"date": "2023-03-31",
"count": 2
},
{
"date": "2023-04-01",
"count": 2
},
{
"date": "2023-04-04",
"count": 1
},
{
"date": "2023-04-05",
"count": 1
},
{
"date": "2023-04-07",
"count": 1
},
{
"date": "2023-04-10",
"count": 1
},
{
"date": "2023-04-11",
"count": 2
},
{
"date": "2023-04-12",
"count": 1
},
{
"date": "2023-04-13",
"count": 2
},
{
"date": "2023-04-17",
"count": 2
},
{
"date": "2023-04-19",
"count": 1
},
{
"date": "2023-04-20",
"count": 1
},
{
"date": "2023-04-24",
"count": 1
},
{
"date": "2023-04-25",
"count": 2
},
{
"date": "2023-04-28",
"count": 1
},
{
"date": "2023-05-06",
"count": 1
},
{
"date": "2023-05-10",
"count": 1
},
{
"date": "2023-05-11",
"count": 1
},
{
"date": "2023-05-12",
"count": 2
},
{
"date": "2023-05-15",
"count": 2
},
{
"date": "2023-05-16",
"count": 1
},
{
"date": "2023-05-17",
"count": 1
},
{
"date": "2023-05-19",
"count": 1
},
{
"date": "2023-05-22",
"count": 1
},
{
"date": "2023-05-23",
"count": 2
},
{
"date": "2023-05-24",
"count": 1
},
{
"date": "2023-05-29",
"count": 1
},
{
"date": "2023-05-30",
"count": 1
},
{
"date": "2023-06-01",
"count": 1
},
{
"date": "2023-06-06",
"count": 1
},
{
"date": "2023-06-08",
"count": 2
},
{
"date": "2023-06-12",
"count": 1
},
{
"date": "2023-06-14",
"count": 1
},
{
"date": "2023-06-17",
"count": 1
},
{
"date": "2023-06-19",
"count": 1
},
{
"date": "2023-06-21",
"count": 2
},
{
"date": "2023-06-24",
"count": 1
},
{
"date": "2023-06-26",
"count": 1
},
{
"date": "2023-06-28",
"count": 1
},
{
"date": "2023-06-29",
"count": 1
},
{
"date": "2023-07-03",
"count": 1
},
{
"date": "2023-07-04",
"count": 1
},
{
"date": "2023-07-06",
"count": 1
},
{
"date": "2023-07-12",
"count": 2
},
{
"date": "2023-07-13",
"count": 1
},
{
"date": "2023-07-14",
"count": 1
},
{
"date": "2023-07-19",
"count": 1
},
{
"date": "2023-07-31",
"count": 1
},
{
"date": "2023-08-04",
"count": 1
},
{
"date": "2023-08-07",
"count": 1
},
{
"date": "2023-08-10",
"count": 1
},
{
"date": "2023-08-11",
"count": 1
},
{
"date": "2023-08-14",
"count": 2
},
{
"date": "2023-08-18",
"count": 2
},
{
"date": "2023-08-24",
"count": 1
},
{
"date": "2023-08-28",
"count": 2
},
{
"date": "2023-08-30",
"count": 1
},
{
"date": "2023-09-05",
"count": 1
},
{
"date": "2023-09-08",
"count": 1
},
{
"date": "2023-09-11",
"count": 1
},
{
"date": "2023-09-12",
"count": 1
},
{
"date": "2023-09-15",
"count": 1
},
{
"date": "2023-09-18",
"count": 1
},
{
"date": "2023-09-21",
"count": 1
},
{
"date": "2023-09-27",
"count": 2
},
{
"date": "2023-10-06",
"count": 1
},
{
"date": "2023-10-10",
"count": 1
},
{
"date": "2023-10-11",
"count": 1
},
{
"date": "2023-10-15",
"count": 1
},
{
"date": "2023-10-16",
"count": 1
},
{
"date": "2023-10-17",
"count": 1
},
{
"date": "2023-10-21",
"count": 1
},
{
"date": "2023-10-24",
"count": 2
},
{
"date": "2023-10-29",
"count": 2
},
{
"date": "2023-11-02",
"count": 1
},
{
"date": "2023-11-07",
"count": 1
},
{
"date": "2023-11-16",
"count": 1
},
{
"date": "2023-11-17",
"count": 1
},
{
"date": "2023-11-18",
"count": 1
},
{
"date": "2023-11-22",
"count": 1
},
{
"date": "2023-11-23",
"count": 1
},
{
"date": "2023-11-24",
"count": 1
},
{
"date": "2023-12-06",
"count": 1
},
{
"date": "2023-12-09",
"count": 1
},
{
"date": "2023-12-10",
"count": 1
},
{
"date": "2023-12-15",
"count": 1
},
{
"date": "2023-12-18",
"count": 2
},
{
"date": "2023-12-25",
"count": 1
},
{
"date": "2024-01-04",
"count": 1
},
{
"date": "2024-01-11",
"count": 1
},
{
"date": "2024-01-15",
"count": 1
},
{
"date": "2024-01-20",
"count": 1
},
{
"date": "2024-01-22",
"count": 1
},
{
"date": "2024-01-24",
"count": 1
},
{
"date": "2024-01-26",
"count": 1
},
{
"date": "2024-01-31",
"count": 1
},
{
"date": "2024-02-06",
"count": 1
},
{
"date": "2024-02-11",
"count": 1
},
{
"date": "2024-02-14",
"count": 1
},
{
"date": "2024-02-16",
"count": 1
},
{
"date": "2024-02-23",
"count": 1
},
{
"date": "2024-02-26",
"count": 1
},
{
"date": "2024-02-27",
"count": 1
},
{
"date": "2024-02-29",
"count": 1
},
{
"date": "2024-03-06",
"count": 2
},
{
"date": "2024-03-07",
"count": 1
},
{
"date": "2024-03-11",
"count": 2
},
{
"date": "2024-03-12",
"count": 1
},
{
"date": "2024-03-18",
"count": 1
},
{
"date": "2024-03-22",
"count": 2
},
{
"date": "2024-03-27",
"count": 1
},
{
"date": "2024-03-30",
"count": 1
},
{
"date": "2024-03-31",
"count": 1
},
{
"date": "2024-04-01",
"count": 1
},
{
"date": "2024-04-06",
"count": 1
},
{
"date": "2024-04-16",
"count": 1
},
{
"date": "2024-04-18",
"count": 2
},
{
"date": "2024-04-19",
"count": 1
},
{
"date": "2024-04-26",
"count": 1
},
{
"date": "2024-04-29",
"count": 1
},
{
"date": "2024-04-30",
"count": 1
},
{
"date": "2024-05-06",
"count": 1
},
{
"date": "2024-05-11",
"count": 1
},
{
"date": "2024-05-15",
"count": 1
},
{
"date": "2024-05-17",
"count": 1
},
{
"date": "2024-05-19",
"count": 1
},
{
"date": "2024-05-22",
"count": 1
},
{
"date": "2024-05-27",
"count": 3
},
{
"date": "2024-05-29",
"count": 2
},
{
"date": "2024-05-31",
"count": 1
},
{
"date": "2024-06-06",
"count": 1
},
{
"date": "2024-06-07",
"count": 1
},
{
"date": "2024-06-08",
"count": 1
},
{
"date": "2024-06-20",
"count": 2
},
{
"date": "2024-06-23",
"count": 1
},
{
"date": "2024-06-28",
"count": 2
},
{
"date": "2024-06-29",
"count": 2
},
{
"date": "2024-07-03",
"count": 2
},
{
"date": "2024-07-15",
"count": 1
},
{
"date": "2024-07-19",
"count": 3
},
{
"date": "2024-07-21",
"count": 1
},
{
"date": "2024-07-25",
"count": 1
},
{
"date": "2024-07-28",
"count": 1
},
{
"date": "2024-08-08",
"count": 1
},
{
"date": "2024-08-12",
"count": 1
},
{
"date": "2024-08-17",
"count": 1
},
{
"date": "2024-08-18",
"count": 1
},
{
"date": "2024-08-21",
"count": 1
},
{
"date": "2024-08-22",
"count": 1
},
{
"date": "2024-08-23",
"count": 1
},
{
"date": "2024-08-28",
"count": 1
},
{
"date": "2024-08-29",
"count": 1
},
{
"date": "2024-08-30",
"count": 1
},
{
"date": "2024-09-03",
"count": 1
},
{
"date": "2024-09-09",
"count": 1
},
{
"date": "2024-09-10",
"count": 1
},
{
"date": "2024-09-16",
"count": 1
},
{
"date": "2024-09-18",
"count": 1
},
{
"date": "2024-09-20",
"count": 1
},
{
"date": "2024-09-25",
"count": 1
},
{
"date": "2024-09-26",
"count": 1
},
{
"date": "2024-09-29",
"count": 1
},
{
"date": "2024-10-08",
"count": 1
},
{
"date": "2024-10-09",
"count": 2
},
{
"date": "2024-10-10",
"count": 1
},
{
"date": "2024-10-11",
"count": 1
},
{
"date": "2024-10-12",
"count": 1
},
{
"date": "2024-10-15",
"count": 1
},
{
"date": "2024-10-22",
"count": 1
},
{
"date": "2024-10-24",
"count": 2
},
{
"date": "2024-10-25",
"count": 2
},
{
"date": "2024-10-29",
"count": 1
},
{
"date": "2024-11-01",
"count": 1
},
{
"date": "2024-11-02",
"count": 1
},
{
"date": "2024-11-19",
"count": 1
},
{
"date": "2024-11-21",
"count": 1
},
{
"date": "2024-11-25",
"count": 1
},
{
"date": "2024-11-26",
"count": 1
},
{
"date": "2024-12-07",
"count": 1
},
{
"date": "2024-12-10",
"count": 1
},
{
"date": "2024-12-11",
"count": 1
},
{
"date": "2024-12-13",
"count": 1
},
{
"date": "2024-12-16",
"count": 1
},
{
"date": "2024-12-26",
"count": 1
},
{
"date": "2024-12-28",
"count": 1
},
{
"date": "2024-12-29",
"count": 1
},
{
"date": "2024-12-30",
"count": 1
},
{
"date": "2024-12-31",
"count": 1
},
{
"date": "2025-01-02",
"count": 2
},
{
"date": "2025-01-06",
"count": 2
},
{
"date": "2025-01-07",
"count": 1
},
{
"date": "2025-01-08",
"count": 1
},
{
"date": "2025-01-09",
"count": 1
},
{
"date": "2025-01-10",
"count": 2
},
{
"date": "2025-01-11",
"count": 1
},
{
"date": "2025-01-25",
"count": 1
},
{
"date": "2025-02-02",
"count": 1
},
{
"date": "2025-02-03",
"count": 1
},
{
"date": "2025-02-06",
"count": 1
},
{
"date": "2025-02-07",
"count": 2
},
{
"date": "2025-02-20",
"count": 2
},
{
"date": "2025-02-21",
"count": 1
},
{
"date": "2025-02-26",
"count": 1
},
{
"date": "2025-03-01",
"count": 1
},
{
"date": "2025-03-03",
"count": 1
},
{
"date": "2025-03-04",
"count": 1
},
{
"date": "2025-03-05",
"count": 1
},
{
"date": "2025-03-06",
"count": 1
},
{
"date": "2025-03-09",
"count": 2
},
{
"date": "2025-03-12",
"count": 1
},
{
"date": "2025-03-20",
"count": 1
},
{
"date": "2025-03-23",
"count": 1
},
{
"date": "2025-03-24",
"count": 1
},
{
"date": "2025-04-02",
"count": 2
},
{
"date": "2025-04-07",
"count": 1
},
{
"date": "2025-04-08",
"count": 1
},
{
"date": "2025-04-11",
"count": 1
},
{
"date": "2025-04-17",
"count": 1
},
{
"date": "2025-04-18",
"count": 2
},
{
"date": "2025-04-20",
"count": 2
},
{
"date": "2025-04-21",
"count": 1
},
{
"date": "2025-04-28",
"count": 1
},
{
"date": "2025-04-30",
"count": 1
},
{
"date": "2025-05-13",
"count": 1
},
{
"date": "2025-05-19",
"count": 2
},
{
"date": "2025-05-21",
"count": 1
},
{
"date": "2025-05-24",
"count": 1
},
{
"date": "2025-05-28",
"count": 2
},
{
"date": "2025-05-30",
"count": 1
},
{
"date": "2025-06-03",
"count": 1
},
{
"date": "2025-06-10",
"count": 1
},
{
"date": "2025-06-19",
"count": 1
},
{
"date": "2025-06-20",
"count": 1
},
{
"date": "2025-06-23",
"count": 1
},
{
"date": "2025-06-30",
"count": 1
},
{
"date": "2025-07-01",
"count": 1
},
{
"date": "2025-07-03",
"count": 1
},
{
"date": "2025-07-04",
"count": 1
},
{
"date": "2025-07-09",
"count": 1
},
{
"date": "2025-07-11",
"count": 1
},
{
"date": "2025-07-15",
"count": 1
},
{
"date": "2025-07-17",
"count": 2
},
{
"date": "2025-07-21",
"count": 1
},
{
"date": "2025-07-24",
"count": 3
},
{
"date": "2025-07-25",
"count": 1
},
{
"date": "2025-08-09",
"count": 1
},
{
"date": "2025-08-10",
"count": 1
},
{
"date": "2025-08-12",
"count": 1
},
{
"date": "2025-08-15",
"count": 1
},
{
"date": "2025-08-24",
"count": 1
},
{
"date": "2025-09-04",
"count": 1
},
{
"date": "2025-09-06",
"count": 1
},
{
"date": "2025-09-08",
"count": 1
},
{
"date": "2025-09-15",
"count": 1
},
{
"date": "2025-09-16",
"count": 1
},
{
"date": "2025-09-21",
"count": 1
},
{
"date": "2025-09-24",
"count": 3
},
{
"date": "2025-09-25",
"count": 1
},
{
"date": "2025-09-26",
"count": 1
},
{
"date": "2025-10-10",
"count": 1
},
{
"date": "2025-10-16",
"count": 1
},
{
"date": "2025-10-24",
"count": 1
},
{
"date": "2025-10-26",
"count": 1
},
{
"date": "2025-10-28",
"count": 2
},
{
"date": "2025-10-30",
"count": 1
},
{
"date": "2025-11-04",
"count": 1
},
{
"date": "2025-11-06",
"count": 1
},
{
"date": "2025-11-08",
"count": 3
},
{
"date": "2025-11-19",
"count": 1
},
{
"date": "2025-11-20",
"count": 1
},
{
"date": "2025-11-21",
"count": 1
},
{
"date": "2025-11-26",
"count": 1
},
{
"date": "2025-11-27",
"count": 1
},
{
"date": "2025-12-04",
"count": 2
},
{
"date": "2025-12-07",
"count": 2
},
{
"date": "2025-12-17",
"count": 1
},
{
"date": "2025-12-18",
"count": 1
},
{
"date": "2025-12-20",
"count": 1
},
{
"date": "2025-12-22",
"count": 1
},
{
"date": "2026-01-07",
"count": 1
},
{
"date": "2026-01-13",
"count": 1
},
{
"date": "2026-01-20",
"count": 1
},
{
"date": "2026-02-01",
"count": 1
},
{
"date": "2026-02-02",
"count": 1
},
{
"date": "2026-02-03",
"count": 1
},
{
"date": "2026-02-05",
"count": 1
},
{
"date": "2026-02-09",
"count": 1
},
{
"date": "2026-02-16",
"count": 1
},
{
"date": "2026-02-20",
"count": 1
},
{
"date": "2026-02-22",
"count": 1
},
{
"date": "2026-02-26",
"count": 1
},
{
"date": "2026-03-02",
"count": 1
},
{
"date": "2026-03-04",
"count": 1
},
{
"date": "2026-03-11",
"count": 1
},
{
"date": "2026-03-15",
"count": 1
},
{
"date": "2026-03-16",
"count": 1
},
{
"date": "2026-03-17",
"count": 2
},
{
"date": "2026-03-18",
"count": 1
},
{
"date": "2026-03-20",
"count": 1
},
{
"date": "2026-03-21",
"count": 2
},
{
"date": "2026-03-31",
"count": 1
},
{
"date": "2026-04-02",
"count": 1
},
{
"date": "2026-04-07",
"count": 1
},
{
"date": "2026-04-15",
"count": 2
},
{
"date": "2026-04-21",
"count": 1
},
{
"date": "2026-04-26",
"count": 1
},
{
"date": "2026-04-29",
"count": 2
},
{
"date": "2026-05-06",
"count": 1
},
{
"date": "2026-05-08",
"count": 2
},
{
"date": "2026-05-11",
"count": 3
},
{
"date": "2026-05-13",
"count": 2
},
{
"date": "2026-05-14",
"count": 2
},
{
"date": "2026-05-15",
"count": 1
},
{
"date": "2026-05-18",
"count": 1
},
{
"date": "2026-05-19",
"count": 1
},
{
"date": "2026-05-25",
"count": 1
},
{
"date": "2026-05-28",
"count": 2
},
{
"date": "2026-06-05",
"count": 2
},
{
"date": "2026-06-11",
"count": 1
},
{
"date": "2026-06-13",
"count": 1
},
{
"date": "2026-06-14",
"count": 1
},
{
"date": "2026-06-17",
"count": 1
},
{
"date": "2026-06-24",
"count": 1
},
{
"date": "2026-06-25",
"count": 1
},
{
"date": "2026-06-26",
"count": 2
},
{
"date": "2026-06-29",
"count": 1
},
{
"date": "2026-07-09",
"count": 1
},
{
"date": "2026-07-18",
"count": 1
},
{
"date": "2026-07-20",
"count": 1
}
],
"complete": false,
"collected": 1000,
"total_forks": 4113
},
"star_history": {
"days": [
{
"date": "2024-04-13",
"count": 1
},
{
"date": "2024-04-14",
"count": 2
},
{
"date": "2024-04-15",
"count": 1
},
{
"date": "2024-04-16",
"count": 2
},
{
"date": "2024-04-17",
"count": 3
},
{
"date": "2024-04-20",
"count": 4
},
{
"date": "2024-04-21",
"count": 1
},
{
"date": "2024-04-23",
"count": 1
},
{
"date": "2024-04-24",
"count": 5
},
{
"date": "2024-04-26",
"count": 2
},
{
"date": "2024-04-28",
"count": 2
},
{
"date": "2024-04-29",
"count": 3
},
{
"date": "2024-04-30",
"count": 3
},
{
"date": "2024-05-02",
"count": 1
},
{
"date": "2024-05-03",
"count": 3
},
{
"date": "2024-05-04",
"count": 1
},
{
"date": "2024-05-06",
"count": 2
},
{
"date": "2024-05-07",
"count": 4
},
{
"date": "2024-05-08",
"count": 1
},
{
"date": "2024-05-09",
"count": 3
},
{
"date": "2024-05-11",
"count": 3
},
{
"date": "2024-05-12",
"count": 4
},
{
"date": "2024-05-14",
"count": 2
},
{
"date": "2024-05-15",
"count": 1
},
{
"date": "2024-05-16",
"count": 2
},
{
"date": "2024-05-17",
"count": 1
},
{
"date": "2024-05-18",
"count": 1
},
{
"date": "2024-05-19",
"count": 1
},
{
"date": "2024-05-20",
"count": 3
},
{
"date": "2024-05-21",
"count": 4
},
{
"date": "2024-05-24",
"count": 1
},
{
"date": "2024-05-25",
"count": 1
},
{
"date": "2024-05-26",
"count": 3
},
{
"date": "2024-05-27",
"count": 1
},
{
"date": "2024-05-29",
"count": 2
},
{
"date": "2024-05-30",
"count": 3
},
{
"date": "2024-06-02",
"count": 1
},
{
"date": "2024-06-05",
"count": 3
},
{
"date": "2024-06-06",
"count": 2
},
{
"date": "2024-06-08",
"count": 1
},
{
"date": "2024-06-09",
"count": 2
},
{
"date": "2024-06-11",
"count": 1
},
{
"date": "2024-06-12",
"count": 1
},
{
"date": "2024-06-15",
"count": 3
},
{
"date": "2024-06-16",
"count": 2
},
{
"date": "2024-06-17",
"count": 1
},
{
"date": "2024-06-18",
"count": 1
},
{
"date": "2024-06-19",
"count": 1
},
{
"date": "2024-06-20",
"count": 1
},
{
"date": "2024-06-21",
"count": 2
},
{
"date": "2024-06-23",
"count": 2
},
{
"date": "2024-06-25",
"count": 3
},
{
"date": "2024-06-26",
"count": 2
},
{
"date": "2024-06-27",
"count": 3
},
{
"date": "2024-06-28",
"count": 2
},
{
"date": "2024-06-30",
"count": 1
},
{
"date": "2024-07-01",
"count": 1
},
{
"date": "2024-07-02",
"count": 1
},
{
"date": "2024-07-03",
"count": 1
},
{
"date": "2024-07-04",
"count": 1
},
{
"date": "2024-07-05",
"count": 1
},
{
"date": "2024-07-07",
"count": 1
},
{
"date": "2024-07-08",
"count": 2
},
{
"date": "2024-07-09",
"count": 1
},
{
"date": "2024-07-11",
"count": 2
},
{
"date": "2024-07-12",
"count": 1
},
{
"date": "2024-07-13",
"count": 1
},
{
"date": "2024-07-14",
"count": 1
},
{
"date": "2024-07-15",
"count": 2
},
{
"date": "2024-07-16",
"count": 2
},
{
"date": "2024-07-17",
"count": 5
},
{
"date": "2024-07-18",
"count": 2
},
{
"date": "2024-07-19",
"count": 1
},
{
"date": "2024-07-20",
"count": 1
},
{
"date": "2024-07-21",
"count": 2
},
{
"date": "2024-07-22",
"count": 1
},
{
"date": "2024-07-23",
"count": 1
},
{
"date": "2024-07-24",
"count": 3
},
{
"date": "2024-07-25",
"count": 4
},
{
"date": "2024-07-26",
"count": 1
},
{
"date": "2024-07-27",
"count": 1
},
{
"date": "2024-07-28",
"count": 1
},
{
"date": "2024-07-29",
"count": 4
},
{
"date": "2024-07-30",
"count": 2
},
{
"date": "2024-07-31",
"count": 2
},
{
"date": "2024-08-01",
"count": 2
},
{
"date": "2024-08-04",
"count": 2
},
{
"date": "2024-08-05",
"count": 1
},
{
"date": "2024-08-06",
"count": 2
},
{
"date": "2024-08-07",
"count": 1
},
{
"date": "2024-08-09",
"count": 2
},
{
"date": "2024-08-10",
"count": 1
},
{
"date": "2024-08-12",
"count": 2
},
{
"date": "2024-08-13",
"count": 2
},
{
"date": "2024-08-14",
"count": 1
},
{
"date": "2024-08-15",
"count": 3
},
{
"date": "2024-08-20",
"count": 1
},
{
"date": "2024-08-21",
"count": 2
},
{
"date": "2024-08-22",
"count": 5
},
{
"date": "2024-08-24",
"count": 1
},
{
"date": "2024-08-26",
"count": 3
},
{
"date": "2024-08-27",
"count": 3
},
{
"date": "2024-08-28",
"count": 2
},
{
"date": "2024-08-29",
"count": 2
},
{
"date": "2024-08-30",
"count": 1
},
{
"date": "2024-08-31",
"count": 1
},
{
"date": "2024-09-01",
"count": 1
},
{
"date": "2024-09-04",
"count": 1
},
{
"date": "2024-09-05",
"count": 1
},
{
"date": "2024-09-06",
"count": 1
},
{
"date": "2024-09-08",
"count": 1
},
{
"date": "2024-09-09",
"count": 4
},
{
"date": "2024-09-10",
"count": 4
},
{
"date": "2024-09-11",
"count": 4
},
{
"date": "2024-09-14",
"count": 1
},
{
"date": "2024-09-15",
"count": 1
},
{
"date": "2024-09-17",
"count": 2
},
{
"date": "2024-09-18",
"count": 2
},
{
"date": "2024-09-19",
"count": 2
},
{
"date": "2024-09-20",
"count": 3
},
{
"date": "2024-09-21",
"count": 3
},
{
"date": "2024-09-22",
"count": 2
},
{
"date": "2024-09-23",
"count": 1
},
{
"date": "2024-09-24",
"count": 2
},
{
"date": "2024-09-25",
"count": 2
},
{
"date": "2024-09-27",
"count": 1
},
{
"date": "2024-09-29",
"count": 2
},
{
"date": "2024-09-30",
"count": 2
},
{
"date": "2024-10-03",
"count": 1
},
{
"date": "2024-10-04",
"count": 2
},
{
"date": "2024-10-06",
"count": 1
},
{
"date": "2024-10-07",
"count": 1
},
{
"date": "2024-10-08",
"count": 1
},
{
"date": "2024-10-09",
"count": 4
},
{
"date": "2024-10-12",
"count": 3
},
{
"date": "2024-10-13",
"count": 2
},
{
"date": "2024-10-14",
"count": 1
},
{
"date": "2024-10-16",
"count": 2
},
{
"date": "2024-10-17",
"count": 4
},
{
"date": "2024-10-18",
"count": 2
},
{
"date": "2024-10-21",
"count": 2
},
{
"date": "2024-10-22",
"count": 4
},
{
"date": "2024-10-23",
"count": 1
},
{
"date": "2024-10-24",
"count": 2
},
{
"date": "2024-10-25",
"count": 3
},
{
"date": "2024-10-27",
"count": 3
},
{
"date": "2024-10-28",
"count": 4
},
{
"date": "2024-10-29",
"count": 1
},
{
"date": "2024-10-31",
"count": 2
},
{
"date": "2024-11-01",
"count": 1
},
{
"date": "2024-11-02",
"count": 1
},
{
"date": "2024-11-03",
"count": 1
},
{
"date": "2024-11-04",
"count": 1
},
{
"date": "2024-11-06",
"count": 1
},
{
"date": "2024-11-07",
"count": 2
},
{
"date": "2024-11-08",
"count": 2
},
{
"date": "2024-11-09",
"count": 2
},
{
"date": "2024-11-11",
"count": 2
},
{
"date": "2024-11-12",
"count": 1
},
{
"date": "2024-11-13",
"count": 2
},
{
"date": "2024-11-14",
"count": 2
},
{
"date": "2024-11-15",
"count": 2
},
{
"date": "2024-11-16",
"count": 1
},
{
"date": "2024-11-17",
"count": 2
},
{
"date": "2024-11-18",
"count": 2
},
{
"date": "2024-11-19",
"count": 1
},
{
"date": "2024-11-20",
"count": 1
},
{
"date": "2024-11-21",
"count": 2
},
{
"date": "2024-11-22",
"count": 1
},
{
"date": "2024-11-24",
"count": 1
},
{
"date": "2024-11-25",
"count": 1
},
{
"date": "2024-11-26",
"count": 2
},
{
"date": "2024-11-27",
"count": 3
},
{
"date": "2024-11-30",
"count": 1
},
{
"date": "2024-12-01",
"count": 2
},
{
"date": "2024-12-03",
"count": 3
},
{
"date": "2024-12-04",
"count": 3
},
{
"date": "2024-12-05",
"count": 4
},
{
"date": "2024-12-06",
"count": 2
},
{
"date": "2024-12-07",
"count": 1
},
{
"date": "2024-12-09",
"count": 2
},
{
"date": "2024-12-10",
"count": 1
},
{
"date": "2024-12-11",
"count": 2
},
{
"date": "2024-12-12",
"count": 3
},
{
"date": "2024-12-13",
"count": 2
},
{
"date": "2024-12-14",
"count": 1
},
{
"date": "2024-12-15",
"count": 2
},
{
"date": "2024-12-16",
"count": 2
},
{
"date": "2024-12-17",
"count": 1
},
{
"date": "2024-12-18",
"count": 2
},
{
"date": "2024-12-19",
"count": 1
},
{
"date": "2024-12-22",
"count": 1
},
{
"date": "2024-12-24",
"count": 1
},
{
"date": "2024-12-25",
"count": 2
},
{
"date": "2024-12-26",
"count": 2
},
{
"date": "2024-12-29",
"count": 2
},
{
"date": "2024-12-30",
"count": 1
},
{
"date": "2024-12-31",
"count": 1
},
{
"date": "2025-01-01",
"count": 1
},
{
"date": "2025-01-02",
"count": 1
},
{
"date": "2025-01-03",
"count": 1
},
{
"date": "2025-01-04",
"count": 2
},
{
"date": "2025-01-05",
"count": 2
},
{
"date": "2025-01-06",
"count": 2
},
{
"date": "2025-01-07",
"count": 7
},
{
"date": "2025-01-08",
"count": 6
},
{
"date": "2025-01-09",
"count": 46
},
{
"date": "2025-01-10",
"count": 64
},
{
"date": "2025-01-11",
"count": 19
},
{
"date": "2025-01-12",
"count": 3
},
{
"date": "2025-01-13",
"count": 2
},
{
"date": "2025-01-14",
"count": 1
},
{
"date": "2025-01-15",
"count": 4
},
{
"date": "2025-01-16",
"count": 2
},
{
"date": "2025-01-17",
"count": 1
},
{
"date": "2025-01-18",
"count": 1
},
{
"date": "2025-01-19",
"count": 2
},
{
"date": "2025-01-20",
"count": 1
},
{
"date": "2025-01-21",
"count": 1
},
{
"date": "2025-01-22",
"count": 1
},
{
"date": "2025-01-23",
"count": 2
},
{
"date": "2025-01-24",
"count": 1
},
{
"date": "2025-01-26",
"count": 1
},
{
"date": "2025-01-28",
"count": 2
},
{
"date": "2025-01-29",
"count": 1
},
{
"date": "2025-01-30",
"count": 1
},
{
"date": "2025-01-31",
"count": 2
},
{
"date": "2025-02-02",
"count": 1
},
{
"date": "2025-02-03",
"count": 1
},
{
"date": "2025-02-04",
"count": 1
},
{
"date": "2025-02-06",
"count": 1
},
{
"date": "2025-02-08",
"count": 1
},
{
"date": "2025-02-12",
"count": 1
},
{
"date": "2025-02-15",
"count": 1
},
{
"date": "2025-02-16",
"count": 1
},
{
"date": "2025-02-17",
"count": 2
},
{
"date": "2025-02-18",
"count": 3
},
{
"date": "2025-02-24",
"count": 3
},
{
"date": "2025-02-25",
"count": 1
},
{
"date": "2025-02-26",
"count": 1
},
{
"date": "2025-02-27",
"count": 4
},
{
"date": "2025-03-01",
"count": 1
},
{
"date": "2025-03-02",
"count": 1
},
{
"date": "2025-03-03",
"count": 1
},
{
"date": "2025-03-04",
"count": 3
},
{
"date": "2025-03-05",
"count": 3
},
{
"date": "2025-03-06",
"count": 3
},
{
"date": "2025-03-07",
"count": 1
},
{
"date": "2025-03-09",
"count": 1
},
{
"date": "2025-03-13",
"count": 1
},
{
"date": "2025-03-14",
"count": 1
},
{
"date": "2025-03-15",
"count": 1
},
{
"date": "2025-03-16",
"count": 2
},
{
"date": "2025-03-17",
"count": 1
},
{
"date": "2025-03-19",
"count": 1
},
{
"date": "2025-03-22",
"count": 1
},
{
"date": "2025-03-25",
"count": 1
},
{
"date": "2025-03-27",
"count": 2
},
{
"date": "2025-04-04",
"count": 1
},
{
"date": "2025-04-07",
"count": 2
},
{
"date": "2025-04-08",
"count": 1
},
{
"date": "2025-04-15",
"count": 2
},
{
"date": "2025-04-16",
"count": 2
},
{
"date": "2025-04-17",
"count": 3
},
{
"date": "2025-04-18",
"count": 3
},
{
"date": "2025-04-24",
"count": 1
},
{
"date": "2025-04-27",
"count": 1
},
{
"date": "2025-04-29",
"count": 1
},
{
"date": "2025-04-30",
"count": 2
},
{
"date": "2025-05-01",
"count": 2
},
{
"date": "2025-05-02",
"count": 1
},
{
"date": "2025-05-04",
"count": 1
},
{
"date": "2025-05-05",
"count": 2
},
{
"date": "2025-05-07",
"count": 1
},
{
"date": "2025-05-08",
"count": 1
},
{
"date": "2025-05-12",
"count": 2
},
{
"date": "2025-05-13",
"count": 2
},
{
"date": "2025-05-15",
"count": 2
},
{
"date": "2025-05-16",
"count": 1
},
{
"date": "2025-05-17",
"count": 2
},
{
"date": "2025-05-19",
"count": 1
},
{
"date": "2025-05-22",
"count": 1
},
{
"date": "2025-05-23",
"count": 1
},
{
"date": "2025-05-25",
"count": 2
},
{
"date": "2025-05-26",
"count": 1
},
{
"date": "2025-05-27",
"count": 1
},
{
"date": "2025-05-28",
"count": 1
},
{
"date": "2025-05-29",
"count": 2
},
{
"date": "2025-05-30",
"count": 1
},
{
"date": "2025-05-31",
"count": 1
},
{
"date": "2025-06-02",
"count": 1
},
{
"date": "2025-06-03",
"count": 3
},
{
"date": "2025-06-04",
"count": 1
},
{
"date": "2025-06-05",
"count": 3
},
{
"date": "2025-06-06",
"count": 1
},
{
"date": "2025-06-07",
"count": 1
},
{
"date": "2025-06-10",
"count": 2
},
{
"date": "2025-06-11",
"count": 1
},
{
"date": "2025-06-13",
"count": 1
},
{
"date": "2025-06-14",
"count": 2
},
{
"date": "2025-06-15",
"count": 2
},
{
"date": "2025-06-16",
"count": 1
},
{
"date": "2025-06-17",
"count": 2
},
{
"date": "2025-06-18",
"count": 1
},
{
"date": "2025-06-19",
"count": 2
},
{
"date": "2025-06-20",
"count": 2
},
{
"date": "2025-06-21",
"count": 1
},
{
"date": "2025-06-22",
"count": 4
},
{
"date": "2025-06-23",
"count": 1
},
{
"date": "2025-06-24",
"count": 1
},
{
"date": "2025-06-25",
"count": 3
},
{
"date": "2025-06-27",
"count": 1
},
{
"date": "2025-06-29",
"count": 1
},
{
"date": "2025-06-30",
"count": 3
},
{
"date": "2025-07-01",
"count": 1
},
{
"date": "2025-07-02",
"count": 1
},
{
"date": "2025-07-03",
"count": 2
},
{
"date": "2025-07-04",
"count": 1
},
{
"date": "2025-07-05",
"count": 2
},
{
"date": "2025-07-06",
"count": 1
},
{
"date": "2025-07-07",
"count": 1
},
{
"date": "2025-07-09",
"count": 4
},
{
"date": "2025-07-10",
"count": 2
},
{
"date": "2025-07-11",
"count": 1
},
{
"date": "2025-07-15",
"count": 2
},
{
"date": "2025-07-17",
"count": 1
},
{
"date": "2025-07-18",
"count": 2
},
{
"date": "2025-07-22",
"count": 2
},
{
"date": "2025-07-23",
"count": 2
},
{
"date": "2025-07-24",
"count": 2
},
{
"date": "2025-07-25",
"count": 2
},
{
"date": "2025-07-27",
"count": 2
},
{
"date": "2025-07-28",
"count": 3
},
{
"date": "2025-07-30",
"count": 3
},
{
"date": "2025-07-31",
"count": 1
},
{
"date": "2025-08-03",
"count": 1
},
{
"date": "2025-08-04",
"count": 2
},
{
"date": "2025-08-05",
"count": 2
},
{
"date": "2025-08-06",
"count": 1
},
{
"date": "2025-08-08",
"count": 1
},
{
"date": "2025-08-10",
"count": 1
},
{
"date": "2025-08-11",
"count": 3
},
{
"date": "2025-08-12",
"count": 1
},
{
"date": "2025-08-13",
"count": 1
},
{
"date": "2025-08-15",
"count": 3
},
{
"date": "2025-08-18",
"count": 2
},
{
"date": "2025-08-19",
"count": 2
},
{
"date": "2025-08-22",
"count": 2
},
{
"date": "2025-08-24",
"count": 2
},
{
"date": "2025-08-25",
"count": 2
},
{
"date": "2025-08-27",
"count": 1
},
{
"date": "2025-08-29",
"count": 1
},
{
"date": "2025-09-01",
"count": 1
},
{
"date": "2025-09-02",
"count": 2
},
{
"date": "2025-09-03",
"count": 1
},
{
"date": "2025-09-08",
"count": 2
},
{
"date": "2025-09-09",
"count": 1
},
{
"date": "2025-09-10",
"count": 1
},
{
"date": "2025-09-11",
"count": 1
},
{
"date": "2025-09-12",
"count": 2
},
{
"date": "2025-09-13",
"count": 1
},
{
"date": "2025-09-14",
"count": 1
},
{
"date": "2025-09-15",
"count": 2
},
{
"date": "2025-09-18",
"count": 1
},
{
"date": "2025-09-19",
"count": 3
},
{
"date": "2025-09-21",
"count": 1
},
{
"date": "2025-09-22",
"count": 1
},
{
"date": "2025-09-26",
"count": 1
},
{
"date": "2025-09-28",
"count": 4
},
{
"date": "2025-09-30",
"count": 2
},
{
"date": "2025-10-04",
"count": 1
},
{
"date": "2025-10-07",
"count": 1
},
{
"date": "2025-10-09",
"count": 1
},
{
"date": "2025-10-10",
"count": 1
},
{
"date": "2025-10-12",
"count": 1
},
{
"date": "2025-10-14",
"count": 1
},
{
"date": "2025-10-16",
"count": 1
},
{
"date": "2025-10-17",
"count": 1
},
{
"date": "2025-10-18",
"count": 2
},
{
"date": "2025-10-19",
"count": 1
},
{
"date": "2025-10-21",
"count": 3
},
{
"date": "2025-10-22",
"count": 1
},
{
"date": "2025-10-24",
"count": 1
},
{
"date": "2025-10-26",
"count": 1
},
{
"date": "2025-10-27",
"count": 1
},
{
"date": "2025-10-28",
"count": 1
},
{
"date": "2025-11-02",
"count": 1
},
{
"date": "2025-11-04",
"count": 3
},
{
"date": "2025-11-05",
"count": 3
},
{
"date": "2025-11-06",
"count": 3
},
{
"date": "2025-11-08",
"count": 5
},
{
"date": "2025-11-09",
"count": 1
},
{
"date": "2025-11-10",
"count": 1
},
{
"date": "2025-11-13",
"count": 2
},
{
"date": "2025-11-14",
"count": 1
},
{
"date": "2025-11-16",
"count": 1
},
{
"date": "2025-11-17",
"count": 1
},
{
"date": "2025-11-18",
"count": 2
},
{
"date": "2025-11-20",
"count": 1
},
{
"date": "2025-11-21",
"count": 1
},
{
"date": "2025-11-24",
"count": 4
},
{
"date": "2025-11-25",
"count": 2
},
{
"date": "2025-11-27",
"count": 1
},
{
"date": "2025-11-30",
"count": 1
},
{
"date": "2025-12-01",
"count": 1
},
{
"date": "2025-12-03",
"count": 2
},
{
"date": "2025-12-04",
"count": 1
},
{
"date": "2025-12-05",
"count": 3
},
{
"date": "2025-12-06",
"count": 1
},
{
"date": "2025-12-08",
"count": 2
},
{
"date": "2025-12-10",
"count": 2
},
{
"date": "2025-12-12",
"count": 3
},
{
"date": "2025-12-14",
"count": 1
},
{
"date": "2025-12-15",
"count": 1
},
{
"date": "2025-12-17",
"count": 1
},
{
"date": "2025-12-18",
"count": 1
},
{
"date": "2025-12-19",
"count": 1
},
{
"date": "2025-12-22",
"count": 1
},
{
"date": "2025-12-24",
"count": 1
},
{
"date": "2025-12-25",
"count": 1
},
{
"date": "2025-12-26",
"count": 2
},
{
"date": "2025-12-29",
"count": 2
},
{
"date": "2025-12-30",
"count": 1
},
{
"date": "2025-12-31",
"count": 2
},
{
"date": "2026-01-06",
"count": 1
},
{
"date": "2026-01-08",
"count": 2
},
{
"date": "2026-01-09",
"count": 1
},
{
"date": "2026-01-10",
"count": 1
},
{
"date": "2026-01-11",
"count": 1
},
{
"date": "2026-01-12",
"count": 1
},
{
"date": "2026-01-13",
"count": 3
},
{
"date": "2026-01-16",
"count": 2
},
{
"date": "2026-01-19",
"count": 1
},
{
"date": "2026-01-20",
"count": 3
},
{
"date": "2026-01-22",
"count": 1
},
{
"date": "2026-01-23",
"count": 1
},
{
"date": "2026-01-26",
"count": 1
},
{
"date": "2026-01-27",
"count": 1
},
{
"date": "2026-01-28",
"count": 1
},
{
"date": "2026-01-30",
"count": 1
},
{
"date": "2026-01-31",
"count": 1
},
{
"date": "2026-02-01",
"count": 2
},
{
"date": "2026-02-02",
"count": 1
},
{
"date": "2026-02-04",
"count": 1
},
{
"date": "2026-02-05",
"count": 2
},
{
"date": "2026-02-09",
"count": 2
},
{
"date": "2026-02-14",
"count": 1
},
{
"date": "2026-02-15",
"count": 1
},
{
"date": "2026-02-16",
"count": 2
},
{
"date": "2026-02-17",
"count": 2
},
{
"date": "2026-02-20",
"count": 1
},
{
"date": "2026-02-21",
"count": 1
},
{
"date": "2026-02-23",
"count": 2
},
{
"date": "2026-02-24",
"count": 1
},
{
"date": "2026-02-26",
"count": 2
},
{
"date": "2026-03-01",
"count": 1
},
{
"date": "2026-03-03",
"count": 1
},
{
"date": "2026-03-04",
"count": 2
},
{
"date": "2026-03-06",
"count": 1
},
{
"date": "2026-03-07",
"count": 1
},
{
"date": "2026-03-10",
"count": 2
},
{
"date": "2026-03-15",
"count": 1
},
{
"date": "2026-03-17",
"count": 1
},
{
"date": "2026-03-19",
"count": 1
},
{
"date": "2026-03-20",
"count": 1
},
{
"date": "2026-03-22",
"count": 1
},
{
"date": "2026-03-24",
"count": 4
},
{
"date": "2026-03-30",
"count": 1
},
{
"date": "2026-04-01",
"count": 1
},
{
"date": "2026-04-04",
"count": 1
},
{
"date": "2026-04-06",
"count": 1
},
{
"date": "2026-04-09",
"count": 1
},
{
"date": "2026-04-12",
"count": 2
},
{
"date": "2026-04-13",
"count": 1
},
{
"date": "2026-04-14",
"count": 2
},
{
"date": "2026-04-15",
"count": 1
},
{
"date": "2026-04-17",
"count": 2
},
{
"date": "2026-04-19",
"count": 1
},
{
"date": "2026-04-21",
"count": 2
},
{
"date": "2026-04-22",
"count": 2
},
{
"date": "2026-04-26",
"count": 1
},
{
"date": "2026-04-27",
"count": 1
},
{
"date": "2026-04-29",
"count": 1
},
{
"date": "2026-05-01",
"count": 2
},
{
"date": "2026-05-04",
"count": 1
},
{
"date": "2026-05-05",
"count": 1
},
{
"date": "2026-05-06",
"count": 2
},
{
"date": "2026-05-10",
"count": 2
},
{
"date": "2026-05-12",
"count": 2
},
{
"date": "2026-05-14",
"count": 1
},
{
"date": "2026-05-15",
"count": 2
},
{
"date": "2026-05-18",
"count": 3
},
{
"date": "2026-05-19",
"count": 1
},
{
"date": "2026-05-24",
"count": 1
},
{
"date": "2026-05-26",
"count": 1
},
{
"date": "2026-05-27",
"count": 2
},
{
"date": "2026-05-28",
"count": 3
},
{
"date": "2026-05-29",
"count": 1
},
{
"date": "2026-05-31",
"count": 1
},
{
"date": "2026-06-03",
"count": 2
},
{
"date": "2026-06-04",
"count": 1
},
{
"date": "2026-06-05",
"count": 1
},
{
"date": "2026-06-16",
"count": 1
},
{
"date": "2026-06-17",
"count": 2
},
{
"date": "2026-06-22",
"count": 1
},
{
"date": "2026-06-25",
"count": 3
},
{
"date": "2026-06-26",
"count": 1
},
{
"date": "2026-06-29",
"count": 1
},
{
"date": "2026-07-07",
"count": 1
},
{
"date": "2026-07-08",
"count": 1
},
{
"date": "2026-07-13",
"count": 2
},
{
"date": "2026-07-14",
"count": 2
},
{
"date": "2026-07-17",
"count": 1
},
{
"date": "2026-07-18",
"count": 2
},
{
"date": "2026-07-19",
"count": 1
},
{
"date": "2026-07-20",
"count": 1
},
{
"date": "2026-07-21",
"count": 1
},
{
"date": "2026-07-22",
"count": 1
}
],
"complete": false,
"collected": 1000,
"total_stars": 10941
},
"open_issues_and_prs": 12
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"examples"
],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [
"contrib/async-test/Makefile",
"contrib/transport-sample/Makefile",
"contrib/zeromq/Makefile",
"lib/nodejs/examples/Makefile",
"lib/ocaml/src/Makefile",
"lib/ocaml/test/Makefile",
"test/ocaml/Makefile",
"test/ocaml/client/Makefile",
"test/ocaml/server/Makefile",
"test/threads/Makefile"
],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"lib/nodets/test/tsconfig.json",
"lib/ts/tsconfig.json"
],
"toolchain_manifests": [
"contrib/Rebus/RebusSample.csproj",
"contrib/thrift-maven-plugin/pom.xml",
"contrib/zeromq/csharp/ThriftZMQ.csproj",
"go.mod",
"lib/go/test/fuzz/go.mod",
"lib/go/test/go.mod",
"lib/java/android/build.gradle",
"lib/java/build.gradle",
"lib/kotlin/build.gradle.kts",
"lib/kotlin/cross-test-client/build.gradle.kts",
"lib/kotlin/cross-test-server/build.gradle.kts",
"lib/netstd/Benchmarks/Thrift.Benchmarks/Thrift.Benchmarks.csproj",
"lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net10/Thrift.Compile.net10.csproj",
"lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net8/Thrift.Compile.net8.csproj",
"lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net9/Thrift.Compile.net9.csproj",
"lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.netstd2/Thrift.Compile.netstd2.csproj",
"lib/netstd/Tests/Thrift.FuzzTests/Thrift.FuzzTests.csproj",
"lib/netstd/Tests/Thrift.IntegrationTests/Thrift.IntegrationTests.csproj",
"lib/netstd/Tests/Thrift.Tests/Thrift.Tests.csproj",
"lib/netstd/Thrift.AspNetCore/Thrift.AspNetCore.csproj",
"lib/netstd/Thrift/Thrift.csproj",
"lib/rs/Cargo.toml",
"lib/rs/test/Cargo.toml",
"lib/rs/test/fuzz/Cargo.toml",
"lib/rs/test_recursive/Cargo.toml",
"test/go/go.mod",
"test/netstd/Client/Client.csproj",
"test/netstd/Server/Server.csproj",
"test/rs/Cargo.toml",
"tutorial/netstd/Client/Client.csproj",
"tutorial/netstd/Interfaces/Interfaces.csproj",
"tutorial/netstd/Server/Server.csproj",
"tutorial/rs/Cargo.toml"
],
"largest_source_bytes": 418812,
"source_files_sampled": 1626,
"oversized_source_files": 17,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 6782
},
"dependencies": {
"manifests": [
"composer.json",
"go.mod",
"package.json"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "shell-quote",
"direct": false,
"version": "1.7.3",
"severity": "critical",
"ecosystem": "npm",
"cvss_score": 9.8,
"advisory_ids": [
"GHSA-395f-4hp3-45gv",
"GHSA-w7jw-789q-3m8p"
],
"fixed_version": "1.9.0",
"advisory_count": 2,
"oldest_advisory_days": 42
},
{
"name": "uuid",
"direct": true,
"version": "3.4.0",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-w5hq-g745-h8pq"
],
"fixed_version": "13.0.1",
"advisory_count": 1,
"oldest_advisory_days": 90
},
{
"name": "brace-expansion",
"direct": false,
"version": "1.1.11",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-3jxr-9vmj-r5cp",
"GHSA-f886-m6hf-6m8v",
"GHSA-v6h2-p8h4-qcjw"
],
"fixed_version": "5.0.7",
"advisory_count": 3,
"oldest_advisory_days": 407
},
{
"name": "brace-expansion",
"direct": false,
"version": "2.0.3",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-3jxr-9vmj-r5cp"
],
"fixed_version": "5.0.7",
"advisory_count": 1,
"oldest_advisory_days": 1
},
{
"name": "brace-expansion",
"direct": false,
"version": "2.1.0",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-3jxr-9vmj-r5cp"
],
"fixed_version": "5.0.7",
"advisory_count": 1,
"oldest_advisory_days": 1
},
{
"name": "cross-spawn",
"direct": false,
"version": "7.0.1",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-3xgq-45jj-v275"
],
"fixed_version": "7.0.5",
"advisory_count": 1,
"oldest_advisory_days": 620
},
{
"name": "elliptic",
"direct": false,
"version": "6.6.1",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.3,
"advisory_ids": [
"GHSA-848j-6mx2-7j84"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 194
},
{
"name": "js-yaml",
"direct": false,
"version": "3.14.2",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-52cp-r559-cp3m",
"GHSA-h67p-54hq-rp68"
],
"fixed_version": "4.3.0",
"advisory_count": 2,
"oldest_advisory_days": 36
},
{
"name": "js-yaml",
"direct": false,
"version": "4.1.1",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-52cp-r559-cp3m",
"GHSA-h67p-54hq-rp68"
],
"fixed_version": "4.3.0",
"advisory_count": 2,
"oldest_advisory_days": 36
},
{
"name": "linkify-it",
"direct": false,
"version": "3.0.3",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-22p9-wv53-3rq4",
"GHSA-v245-v573-v5vm"
],
"fixed_version": "5.0.2",
"advisory_count": 2,
"oldest_advisory_days": 25
},
{
"name": "lodash",
"direct": false,
"version": "4.17.23",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 8.1,
"advisory_ids": [
"GHSA-f23m-r3pf-42rh",
"GHSA-r5fr-rjxr-66jc"
],
"fixed_version": "4.18.0",
"advisory_count": 2,
"oldest_advisory_days": 111
},
{
"name": "minimatch",
"direct": false,
"version": "3.0.8",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-23c5-xmqv-rm74",
"GHSA-3ppc-4f35-3m26",
"GHSA-7r86-cg39-jmmj"
],
"fixed_version": "10.2.3",
"advisory_count": 3,
"oldest_advisory_days": 153
},
{
"name": "minimatch",
"direct": false,
"version": "3.1.2",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-23c5-xmqv-rm74",
"GHSA-3ppc-4f35-3m26",
"GHSA-7r86-cg39-jmmj"
],
"fixed_version": "10.2.3",
"advisory_count": 3,
"oldest_advisory_days": 153
},
{
"name": "puma",
"direct": false,
"version": "6.6.1",
"severity": "high",
"ecosystem": "rubygems",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-2vqw-3mp8-cgmx",
"GHSA-qpgp-93vx-g8v8"
],
"fixed_version": "8.0.2",
"advisory_count": 2,
"oldest_advisory_days": 43
},
{
"name": "underscore",
"direct": false,
"version": "1.13.6",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-qpx9-hpmf-5gmw"
],
"fixed_version": "1.13.8",
"advisory_count": 1,
"oldest_advisory_days": 140
},
{
"name": "bn.js",
"direct": false,
"version": "4.11.8",
"severity": "moderate",
"ecosystem": "npm",
"cvss_score": 5.3,
"advisory_ids": [
"GHSA-378v-28hj-76wf"
],
"fixed_version": "5.2.3",
"advisory_count": 1,
"oldest_advisory_days": 151
},
{
"name": "bn.js",
"direct": false,
"version": "4.12.0",
"severity": "moderate",
"ecosystem": "npm",
"cvss_score": 5.3,
"advisory_ids": [
"GHSA-378v-28hj-76wf"
],
"fixed_version": "5.2.3",
"advisory_count": 1,
"oldest_advisory_days": 151
},
{
"name": "bn.js",
"direct": false,
"version": "5.2.1",
"severity": "moderate",
"ecosystem": "npm",
"cvss_score": 5.3,
"advisory_ids": [
"GHSA-378v-28hj-76wf"
],
"fixed_version": "5.2.3",
"advisory_count": 1,
"oldest_advisory_days": 151
},
{
"name": "markdown-it",
"direct": false,
"version": "12.3.2",
"severity": "moderate",
"ecosystem": "npm",
"cvss_score": 5.3,
"advisory_ids": [
"GHSA-6v5v-wf23-fmfq"
],
"fixed_version": "14.2.0",
"advisory_count": 1,
"oldest_advisory_days": 36
},
{
"name": "micromatch",
"direct": false,
"version": "4.0.4",
"severity": "moderate",
"ecosystem": "npm",
"cvss_score": 5.3,
"advisory_ids": [
"GHSA-952p-6rrq-rcjv"
],
"fixed_version": "4.0.8",
"advisory_count": 1,
"oldest_advisory_days": 798
},
{
"name": "@babel/core",
"direct": false,
"version": "7.8.4",
"severity": "low",
"ecosystem": "npm",
"cvss_score": 3.2,
"advisory_ids": [
"GHSA-4x5r-pxfx-6jf8"
],
"fixed_version": "8.0.0-rc.6",
"advisory_count": 1,
"oldest_advisory_days": 36
},
{
"name": "golang.org/x/sys",
"direct": false,
"version": "v0.0.0-20220412211240-33da011f77ad",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5024"
],
"fixed_version": "0.44.0",
"advisory_count": 1,
"oldest_advisory_days": 60
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"low": 1,
"high": 14,
"unknown": 1,
"critical": 1,
"moderate": 5
},
"advisory_count": 34,
"affected_count": 22,
"assessed_count": 803,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 40,
"direct_affected_count": 1
},
"ecosystems": [
"go",
"npm",
"packagist"
],
"dependencies": [
{
"name": "psr/log",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^1.0 || ^2.0 || ^3.0"
},
{
"name": "psr/http-client",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^1.0"
},
{
"name": "psr/http-factory",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^1.0"
},
{
"name": "psr/http-message",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^1.0 || ^2.0"
},
{
"name": "browser-or-node",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^1.2.1"
},
{
"name": "isomorphic-ws",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^4.0.1"
},
{
"name": "node-int64",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^0.4.0"
},
{
"name": "uuid",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^14.0.0"
},
{
"name": "ws",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^8.21.0"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "browser-or-node",
"direct": true,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "isomorphic-ws",
"direct": true,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "node-int64",
"direct": true,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "uuid",
"direct": true,
"version": "14.0.0",
"ecosystem": "npm"
},
{
"name": "uuid",
"direct": true,
"version": "3.4.0",
"ecosystem": "npm"
},
{
"name": "ws",
"direct": true,
"version": "6.2.4",
"ecosystem": "npm"
},
{
"name": "ws",
"direct": true,
"version": "8.21.0",
"ecosystem": "npm"
},
{
"name": "psr/http-client",
"direct": true,
"version": null,
"ecosystem": "packagist"
},
{
"name": "psr/http-factory",
"direct": true,
"version": null,
"ecosystem": "packagist"
},
{
"name": "psr/http-message",
"direct": true,
"version": null,
"ecosystem": "packagist"
},
{
"name": "psr/log",
"direct": true,
"version": null,
"ecosystem": "packagist"
},
{
"name": "arbitrary",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "bitflags",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "byteorder",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "clap",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "env_logger",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "integer-encoding",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "libfuzzer-sys",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "log",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "ordered-float",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "rand",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "rustls",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "rustls-pemfile",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "threadpool",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "uuid",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "github.com/golang/mock",
"direct": false,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/mod",
"direct": false,
"version": "v0.4.2",
"ecosystem": "go"
},
{
"name": "golang.org/x/sys",
"direct": false,
"version": "v0.0.0-20220412211240-33da011f77ad",
"ecosystem": "go"
},
{
"name": "golang.org/x/tools",
"direct": false,
"version": "v0.1.1",
"ecosystem": "go"
},
{
"name": "golang.org/x/xerrors",
"direct": false,
"version": "v0.0.0-20200804184101-5ec99f83aff1",
"ecosystem": "go"
},
{
"name": "com.google.guava:guava",
"direct": false,
"version": "32.0.1-jre",
"ecosystem": "maven"
},
{
"name": "junit:junit",
"direct": false,
"version": "4.13.1",
"ecosystem": "maven"
},
{
"name": "org.apache.maven.plugins:maven-antrun-plugin",
"direct": false,
"version": null,
"ecosystem": "maven"
},
{
"name": "org.apache.maven.plugins:maven-compiler-plugin",
"direct": false,
"version": null,
"ecosystem": "maven"
},
{
"name": "org.apache.maven.plugins:maven-surefire-plugin",
"direct": false,
"version": null,
"ecosystem": "maven"
},
{
"name": "org.apache.maven:maven-core",
"direct": false,
"version": "3.9.8",
"ecosystem": "maven"
},
{
"name": "org.apache.maven:maven-plugin-api",
"direct": false,
"version": "3.9.8",
"ecosystem": "maven"
},
{
"name": "org.codehaus.plexus:plexus-utils",
"direct": false,
"version": "4.0.3",
"ecosystem": "maven"
},
{
"name": "org.mockito:mockito-all",
"direct": false,
"version": "1.10.19",
"ecosystem": "maven"
},
{
"name": "@babel/code-frame",
"direct": false,
"version": "7.29.0",
"ecosystem": "npm"
},
{
"name": "@babel/core",
"direct": false,
"version": "7.8.4",
"ecosystem": "npm"
},
{
"name": "@babel/generator",
"direct": false,
"version": "7.23.0",
"ecosystem": "npm"
},
{
"name": "@babel/helper-environment-visitor",
"direct": false,
"version": "7.22.20",
"ecosystem": "npm"
},
{
"name": "@babel/helper-function-name",
"direct": false,
"version": "7.23.0",
"ecosystem": "npm"
},
{
"name": "@babel/helper-hoist-variables",
"direct": false,
"version": "7.22.5",
"ecosystem": "npm"
},
{
"name": "@babel/helper-split-export-declaration",
"direct": false,
"version": "7.22.6",
"ecosystem": "npm"
},
{
"name": "@babel/helper-string-parser",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/helper-string-parser",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-validator-identifier",
"direct": false,
"version": "7.28.5",
"ecosystem": "npm"
},
{
"name": "@babel/helper-validator-identifier",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helpers",
"direct": false,
"version": "7.29.2",
"ecosystem": "npm"
},
{
"name": "@babel/parser",
"direct": false,
"version": "7.29.3",
"ecosystem": "npm"
},
{
"name": "@babel/parser",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/template",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/traverse",
"direct": false,
"version": "7.23.2",
"ecosystem": "npm"
},
{
"name": "@babel/types",
"direct": false,
"version": "7.29.0",
"ecosystem": "npm"
},
{
"name": "@babel/types",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@eslint-community/eslint-utils",
"direct": false,
"version": "4.9.1",
"ecosystem": "npm"
},
{
"name": "@eslint-community/regexpp",
"direct": false,
"version": "4.12.1",
"ecosystem": "npm"
},
{
"name": "@eslint/config-array",
"direct": false,
"version": "0.21.2",
"ecosystem": "npm"
},
{
"name": "@eslint/config-helpers",
"direct": false,
"version": "0.4.2",
"ecosystem": "npm"
},
{
"name": "@eslint/core",
"direct": false,
"version": "0.17.0",
"ecosystem": "npm"
},
{
"name": "@eslint/eslintrc",
"direct": false,
"version": "3.3.5",
"ecosystem": "npm"
},
{
"name": "@eslint/js",
"direct": false,
"version": "9.39.4",
"ecosystem": "npm"
},
{
"name": "@eslint/object-schema",
"direct": false,
"version": "2.1.7",
"ecosystem": "npm"
},
{
"name": "@eslint/plugin-kit",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "@humanfs/core",
"direct": false,
"version": "0.19.1",
"ecosystem": "npm"
},
{
"name": "@humanfs/node",
"direct": false,
"version": "0.16.6",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/module-importer",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/retry",
"direct": false,
"version": "0.3.1",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/retry",
"direct": false,
"version": "0.4.3",
"ecosystem": "npm"
},
{
"name": "@istanbuljs/load-nyc-config",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "@istanbuljs/schema",
"direct": false,
"version": "0.1.2",
"ecosystem": "npm"
},
{
"name": "@jridgewell/gen-mapping",
"direct": false,
"version": "0.3.3",
"ecosystem": "npm"
},
{
"name": "@jridgewell/resolve-uri",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "@jridgewell/set-array",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "@jridgewell/sourcemap-codec",
"direct": false,
"version": "1.4.15",
"ecosystem": "npm"
},
{
"name": "@jridgewell/trace-mapping",
"direct": false,
"version": "0.3.20",
"ecosystem": "npm"
},
{
"name": "@jsdoc/salty",
"direct": false,
"version": "0.2.12",
"ecosystem": "npm"
},
{
"name": "@jsdoc/salty",
"direct": false,
"version": "0.2.5",
"ecosystem": "npm"
},
{
"name": "@pkgr/core",
"direct": false,
"version": "0.1.1",
"ecosystem": "npm"
},
{
"name": "@types/color-name",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "@types/estree",
"direct": false,
"version": "1.0.6",
"ecosystem": "npm"
},
{
"name": "@types/json-schema",
"direct": false,
"version": "7.0.15",
"ecosystem": "npm"
},
{
"name": "@types/linkify-it",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "@types/linkify-it",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "@types/markdown-it",
"direct": false,
"version": "12.2.3",
"ecosystem": "npm"
},
{
"name": "@types/markdown-it",
"direct": false,
"version": "14.1.2",
"ecosystem": "npm"
},
{
"name": "@types/mdurl",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "@types/mdurl",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "@types/node",
"direct": false,
"version": "22.10.5",
"ecosystem": "npm"
},
{
"name": "@types/node-int64",
"direct": false,
"version": "0.4.29",
"ecosystem": "npm"
},
{
"name": "@types/node-int64",
"direct": false,
"version": "0.4.32",
"ecosystem": "npm"
},
{
"name": "@types/qunit",
"direct": false,
"version": "2.5.4",
"ecosystem": "npm"
},
{
"name": "abbrev",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "acorn",
"direct": false,
"version": "6.4.2",
"ecosystem": "npm"
},
{
"name": "acorn",
"direct": false,
"version": "7.4.1",
"ecosystem": "npm"
},
{
"name": "acorn",
"direct": false,
"version": "8.16.0",
"ecosystem": "npm"
},
{
"name": "acorn-dynamic-import",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "acorn-jsx",
"direct": false,
"version": "5.3.2",
"ecosystem": "npm"
},
{
"name": "acorn-node",
"direct": false,
"version": "1.6.2",
"ecosystem": "npm"
},
{
"name": "acorn-node",
"direct": false,
"version": "1.8.2",
"ecosystem": "npm"
},
{
"name": "acorn-walk",
"direct": false,
"version": "6.1.1",
"ecosystem": "npm"
},
{
"name": "acorn-walk",
"direct": false,
"version": "7.1.1",
"ecosystem": "npm"
},
{
"name": "agent-base",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "aggregate-error",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "ajv",
"direct": false,
"version": "6.15.0",
"ecosystem": "npm"
},
{
"name": "align-text",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "ansi-regex",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "ansi-regex",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "ansi-styles",
"direct": false,
"version": "2.2.1",
"ecosystem": "npm"
},
{
"name": "ansi-styles",
"direct": false,
"version": "3.2.1",
"ecosystem": "npm"
},
{
"name": "ansi-styles",
"direct": false,
"version": "4.2.1",
"ecosystem": "npm"
},
{
"name": "ansi-styles",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "append-transform",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "archy",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "argparse",
"direct": false,
"version": "1.0.10",
"ecosystem": "npm"
},
{
"name": "argparse",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "array-each",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "array-find-index",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "array-slice",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "asn1.js",
"direct": false,
"version": "5.4.1",
"ecosystem": "npm"
},
{
"name": "assert",
"direct": false,
"version": "1.4.1",
"ecosystem": "npm"
},
{
"name": "assert",
"direct": false,
"version": "1.5.0",
"ecosystem": "npm"
},
{
"name": "async",
"direct": false,
"version": "0.2.10",
"ecosystem": "npm"
},
{
"name": "async",
"direct": false,
"version": "3.2.3",
"ecosystem": "npm"
},
{
"name": "async",
"direct": false,
"version": "3.2.6",
"ecosystem": "npm"
},
{
"name": "async-limiter",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "available-typed-arrays",
"direct": false,
"version": "1.0.7",
"ecosystem": "npm"
},
{
"name": "balanced-match",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "base64-js",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "base64-js",
"direct": false,
"version": "1.3.1",
"ecosystem": "npm"
},
{
"name": "bluebird",
"direct": false,
"version": "3.7.2",
"ecosystem": "npm"
},
{
"name": "bn.js",
"direct": false,
"version": "4.11.8",
"ecosystem": "npm"
},
{
"name": "bn.js",
"direct": false,
"version": "4.12.0",
"ecosystem": "npm"
},
{
"name": "bn.js",
"direct": false,
"version": "5.2.1",
"ecosystem": "npm"
},
{
"name": "bn.js",
"direct": false,
"version": "5.2.3",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "1.1.11",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "braces",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "brorand",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "browser-pack",
"direct": false,
"version": "6.1.0",
"ecosystem": "npm"
},
{
"name": "browser-resolve",
"direct": false,
"version": "1.11.3",
"ecosystem": "npm"
},
{
"name": "browserify",
"direct": false,
"version": "16.2.3",
"ecosystem": "npm"
},
{
"name": "browserify",
"direct": false,
"version": "16.5.0",
"ecosystem": "npm"
},
{
"name": "browserify-aes",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "browserify-cipher",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "browserify-des",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "browserify-rsa",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "browserify-sign",
"direct": false,
"version": "4.2.2",
"ecosystem": "npm"
},
{
"name": "browserify-zlib",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "browserify-zlib",
"direct": false,
"version": "0.2.0",
"ecosystem": "npm"
},
{
"name": "buffer",
"direct": false,
"version": "5.2.1",
"ecosystem": "npm"
},
{
"name": "buffer",
"direct": false,
"version": "5.4.3",
"ecosystem": "npm"
},
{
"name": "buffer-crc32",
"direct": false,
"version": "0.2.13",
"ecosystem": "npm"
},
{
"name": "buffer-equals",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "buffer-from",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "buffer-shims",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "buffer-xor",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "bufferutil",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "builtin-modules",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "builtin-status-codes",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "cached-path-relative",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "caching-transform",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "call-bind",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "call-bind-apply-helpers",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "call-bound",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "callsites",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "camelcase",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "camelcase",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "camelcase",
"direct": false,
"version": "5.3.1",
"ecosystem": "npm"
},
{
"name": "camelcase-keys",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "catharsis",
"direct": false,
"version": "0.9.0",
"ecosystem": "npm"
},
{
"name": "center-align",
"direct": false,
"version": "0.1.3",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": false,
"version": "2.4.1",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "cipher-base",
"direct": false,
"version": "1.0.6",
"ecosystem": "npm"
},
{
"name": "clean-stack",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "cli",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "cliui",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "cliui",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "color-convert",
"direct": false,
"version": "1.9.3",
"ecosystem": "npm"
},
{
"name": "color-convert",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "color-name",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "color-name",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "colors",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "combine-source-map",
"direct": false,
"version": "0.8.0",
"ecosystem": "npm"
},
{
"name": "commander",
"direct": false,
"version": "13.0.0",
"ecosystem": "npm"
},
{
"name": "commander",
"direct": false,
"version": "2.20.0",
"ecosystem": "npm"
},
{
"name": "commondir",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "concat-map",
"direct": false,
"version": "0.0.1",
"ecosystem": "npm"
},
{
"name": "concat-stream",
"direct": false,
"version": "1.6.2",
"ecosystem": "npm"
},
{
"name": "connect",
"direct": false,
"version": "3.6.6",
"ecosystem": "npm"
},
{
"name": "console-browserify",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "constants-browserify",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "convert-source-map",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "convert-source-map",
"direct": false,
"version": "1.7.0",
"ecosystem": "npm"
},
{
"name": "core-util-is",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "create-ecdh",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "create-hash",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "create-hash",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "create-hmac",
"direct": false,
"version": "1.1.7",
"ecosystem": "npm"
},
{
"name": "cross-spawn",
"direct": false,
"version": "7.0.1",
"ecosystem": "npm"
},
{
"name": "cross-spawn",
"direct": false,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "crypto-browserify",
"direct": false,
"version": "3.12.0",
"ecosystem": "npm"
},
{
"name": "currently-unhandled",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "dash-ast",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "date-now",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "dateformat",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "dateformat",
"direct": false,
"version": "4.6.3",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": false,
"version": "2.6.9",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": false,
"version": "3.2.7",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": false,
"version": "4.3.2",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": false,
"version": "4.4.3",
"ecosystem": "npm"
},
{
"name": "decamelize",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "deep-equal",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "deep-is",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "default-require-extensions",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "define-data-property",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "define-properties",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "defined",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "deps-sort",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "deps-sort",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "des.js",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "des.js",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "detect-file",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "detective",
"direct": false,
"version": "5.1.0",
"ecosystem": "npm"
},
{
"name": "detective",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "diffie-hellman",
"direct": false,
"version": "5.0.3",
"ecosystem": "npm"
},
{
"name": "dom-serializer",
"direct": false,
"version": "0.2.2",
"ecosystem": "npm"
},
{
"name": "domain-browser",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "domelementtype",
"direct": false,
"version": "1.3.1",
"ecosystem": "npm"
},
{
"name": "domelementtype",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "domhandler",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "domutils",
"direct": false,
"version": "1.5.1",
"ecosystem": "npm"
},
{
"name": "dunder-proto",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "duplexer",
"direct": false,
"version": "0.1.1",
"ecosystem": "npm"
},
{
"name": "duplexer2",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "ee-first",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "elliptic",
"direct": false,
"version": "6.6.1",
"ecosystem": "npm"
},
{
"name": "emoji-regex",
"direct": false,
"version": "8.0.0",
"ecosystem": "npm"
},
{
"name": "encodeurl",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "entities",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "entities",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "entities",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "entities",
"direct": false,
"version": "4.5.0",
"ecosystem": "npm"
},
{
"name": "error-ex",
"direct": false,
"version": "1.3.2",
"ecosystem": "npm"
},
{
"name": "es-abstract",
"direct": false,
"version": "1.12.0",
"ecosystem": "npm"
},
{
"name": "es-define-property",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "es-errors",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "es-object-atoms",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "es-to-primitive",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "es6-error",
"direct": false,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "es6-promise",
"direct": false,
"version": "4.2.5",
"ecosystem": "npm"
},
{
"name": "es6-promisify",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "escape-html",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "escape-string-regexp",
"direct": false,
"version": "1.0.5",
"ecosystem": "npm"
},
{
"name": "escape-string-regexp",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "escape-string-regexp",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "eslint",
"direct": false,
"version": "9.39.4",
"ecosystem": "npm"
},
{
"name": "eslint-config-prettier",
"direct": false,
"version": "10.0.1",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-prettier",
"direct": false,
"version": "5.2.1",
"ecosystem": "npm"
},
{
"name": "eslint-scope",
"direct": false,
"version": "8.4.0",
"ecosystem": "npm"
},
{
"name": "eslint-visitor-keys",
"direct": false,
"version": "3.4.3",
"ecosystem": "npm"
},
{
"name": "eslint-visitor-keys",
"direct": false,
"version": "4.2.1",
"ecosystem": "npm"
},
{
"name": "espree",
"direct": false,
"version": "10.4.0",
"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": "eventemitter2",
"direct": false,
"version": "0.4.14",
"ecosystem": "npm"
},
{
"name": "eventemitter2",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "events",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "evp_bytestokey",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "exit",
"direct": false,
"version": "0.1.2",
"ecosystem": "npm"
},
{
"name": "exit-x",
"direct": false,
"version": "0.2.2",
"ecosystem": "npm"
},
{
"name": "expand-tilde",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "extend",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "extract-zip",
"direct": false,
"version": "1.7.0",
"ecosystem": "npm"
},
{
"name": "fast-deep-equal",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "fast-diff",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "fast-json-stable-stringify",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "fast-levenshtein",
"direct": false,
"version": "2.0.6",
"ecosystem": "npm"
},
{
"name": "fast-safe-stringify",
"direct": false,
"version": "2.0.7",
"ecosystem": "npm"
},
{
"name": "fd-slicer",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "figures",
"direct": false,
"version": "1.7.0",
"ecosystem": "npm"
},
{
"name": "file-entry-cache",
"direct": false,
"version": "8.0.0",
"ecosystem": "npm"
},
{
"name": "fill-range",
"direct": false,
"version": "7.1.1",
"ecosystem": "npm"
},
{
"name": "finalhandler",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "find-cache-dir",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "find-up",
"direct": false,
"version": "1.1.2",
"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": "findup-sync",
"direct": false,
"version": "0.3.0",
"ecosystem": "npm"
},
{
"name": "findup-sync",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "findup-sync",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "fined",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "flagged-respawn",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "flat-cache",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "flatted",
"direct": false,
"version": "3.4.2",
"ecosystem": "npm"
},
{
"name": "for-each",
"direct": false,
"version": "0.3.3",
"ecosystem": "npm"
},
{
"name": "for-each",
"direct": false,
"version": "0.3.5",
"ecosystem": "npm"
},
{
"name": "for-in",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "for-own",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "foreground-child",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "fromentries",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "fs.realpath",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "function-bind",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "gensync",
"direct": false,
"version": "1.0.0-beta.1",
"ecosystem": "npm"
},
{
"name": "get-assigned-identifiers",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "get-caller-file",
"direct": false,
"version": "2.0.5",
"ecosystem": "npm"
},
{
"name": "get-intrinsic",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "get-package-type",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "get-proto",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "get-stdin",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "getobject",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "glob",
"direct": false,
"version": "5.0.15",
"ecosystem": "npm"
},
{
"name": "glob",
"direct": false,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "glob",
"direct": false,
"version": "7.1.3",
"ecosystem": "npm"
},
{
"name": "glob",
"direct": false,
"version": "7.1.6",
"ecosystem": "npm"
},
{
"name": "glob",
"direct": false,
"version": "7.1.7",
"ecosystem": "npm"
},
{
"name": "glob",
"direct": false,
"version": "7.2.3",
"ecosystem": "npm"
},
{
"name": "glob-parent",
"direct": false,
"version": "6.0.2",
"ecosystem": "npm"
},
{
"name": "global-modules",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "global-prefix",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "globals",
"direct": false,
"version": "11.12.0",
"ecosystem": "npm"
},
{
"name": "globals",
"direct": false,
"version": "14.0.0",
"ecosystem": "npm"
},
{
"name": "globals",
"direct": false,
"version": "15.14.0",
"ecosystem": "npm"
},
{
"name": "gopd",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "graceful-fs",
"direct": false,
"version": "4.1.11",
"ecosystem": "npm"
},
{
"name": "graceful-fs",
"direct": false,
"version": "4.1.15",
"ecosystem": "npm"
},
{
"name": "graceful-fs",
"direct": false,
"version": "4.2.10",
"ecosystem": "npm"
},
{
"name": "graceful-fs",
"direct": false,
"version": "4.2.3",
"ecosystem": "npm"
},
{
"name": "grunt",
"direct": false,
"version": "1.5.3",
"ecosystem": "npm"
},
{
"name": "grunt",
"direct": false,
"version": "1.6.2",
"ecosystem": "npm"
},
{
"name": "grunt-cli",
"direct": false,
"version": "1.4.3",
"ecosystem": "npm"
},
{
"name": "grunt-contrib-concat",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "grunt-contrib-jshint",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "grunt-contrib-qunit",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "grunt-contrib-uglify",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "grunt-contrib-uglify",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "grunt-jsdoc",
"direct": false,
"version": "2.4.1",
"ecosystem": "npm"
},
{
"name": "grunt-known-options",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "grunt-legacy-log",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "grunt-legacy-log",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "grunt-legacy-log-utils",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "grunt-legacy-log-utils",
"direct": false,
"version": "2.1.3",
"ecosystem": "npm"
},
{
"name": "grunt-legacy-util",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "grunt-legacy-util",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "grunt-shell-spawn",
"direct": false,
"version": "0.3.12",
"ecosystem": "npm"
},
{
"name": "grunt-shell-spawn",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "gzip-size",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "gzip-size",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "has",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "has-ansi",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "has-flag",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "has-flag",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "has-property-descriptors",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "has-symbols",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "has-tostringtag",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "hash-base",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "hash-base",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "hash.js",
"direct": false,
"version": "1.1.7",
"ecosystem": "npm"
},
{
"name": "hasha",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "hasown",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "hmac-drbg",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "homedir-polyfill",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "hooker",
"direct": false,
"version": "0.2.3",
"ecosystem": "npm"
},
{
"name": "hosted-git-info",
"direct": false,
"version": "2.8.9",
"ecosystem": "npm"
},
{
"name": "html-escaper",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "htmlescape",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "htmlparser2",
"direct": false,
"version": "3.8.3",
"ecosystem": "npm"
},
{
"name": "https-browserify",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "https-proxy-agent",
"direct": false,
"version": "2.2.4",
"ecosystem": "npm"
},
{
"name": "iconv-lite",
"direct": false,
"version": "0.4.24",
"ecosystem": "npm"
},
{
"name": "iconv-lite",
"direct": false,
"version": "0.6.3",
"ecosystem": "npm"
},
{
"name": "ieee754",
"direct": false,
"version": "1.1.12",
"ecosystem": "npm"
},
{
"name": "ieee754",
"direct": false,
"version": "1.1.13",
"ecosystem": "npm"
},
{
"name": "ignore",
"direct": false,
"version": "5.3.2",
"ecosystem": "npm"
},
{
"name": "import-fresh",
"direct": false,
"version": "3.3.1",
"ecosystem": "npm"
},
{
"name": "imurmurhash",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "indent-string",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "indent-string",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "inflight",
"direct": false,
"version": "1.0.6",
"ecosystem": "npm"
},
{
"name": "inherits",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "inherits",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "inherits",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "ini",
"direct": false,
"version": "1.3.8",
"ecosystem": "npm"
},
{
"name": "inline-source-map",
"direct": false,
"version": "0.6.2",
"ecosystem": "npm"
},
{
"name": "insert-module-globals",
"direct": false,
"version": "7.2.0",
"ecosystem": "npm"
},
{
"name": "interpret",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "is-absolute",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "is-arrayish",
"direct": false,
"version": "0.2.1",
"ecosystem": "npm"
},
{
"name": "is-buffer",
"direct": false,
"version": "1.1.6",
"ecosystem": "npm"
},
{
"name": "is-builtin-module",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "is-callable",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "is-callable",
"direct": false,
"version": "1.2.7",
"ecosystem": "npm"
},
{
"name": "is-core-module",
"direct": false,
"version": "2.8.0",
"ecosystem": "npm"
},
{
"name": "is-date-object",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "is-extglob",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "is-finite",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "is-fullwidth-code-point",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "is-glob",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "is-number",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "is-plain-object",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "is-regex",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "is-relative",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "is-stream",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "is-symbol",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "is-typed-array",
"direct": false,
"version": "1.1.15",
"ecosystem": "npm"
},
{
"name": "is-typedarray",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "is-unc-path",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "is-utf8",
"direct": false,
"version": "0.2.1",
"ecosystem": "npm"
},
{
"name": "is-windows",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "isarray",
"direct": false,
"version": "0.0.1",
"ecosystem": "npm"
},
{
"name": "isarray",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "isarray",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "isarray",
"direct": false,
"version": "2.0.5",
"ecosystem": "npm"
},
{
"name": "isexe",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "isobject",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-coverage",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-hook",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-instrument",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-processinfo",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-report",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-source-maps",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "istanbul-reports",
"direct": false,
"version": "3.2.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": "js2xmlparser",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "jsdoc",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "jsdoc",
"direct": false,
"version": "4.0.5",
"ecosystem": "npm"
},
{
"name": "jsesc",
"direct": false,
"version": "2.5.2",
"ecosystem": "npm"
},
{
"name": "jshint",
"direct": false,
"version": "2.13.5",
"ecosystem": "npm"
},
{
"name": "jslint",
"direct": false,
"version": "0.12.0",
"ecosystem": "npm"
},
{
"name": "jslint",
"direct": false,
"version": "0.12.1",
"ecosystem": "npm"
},
{
"name": "json-buffer",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "json-int64",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "json-int64",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "json-schema-traverse",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "json-stable-stringify",
"direct": false,
"version": "0.0.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": "jsonify",
"direct": false,
"version": "0.0.0",
"ecosystem": "npm"
},
{
"name": "jsonparse",
"direct": false,
"version": "1.3.1",
"ecosystem": "npm"
},
{
"name": "JSONStream",
"direct": false,
"version": "1.3.5",
"ecosystem": "npm"
},
{
"name": "keyv",
"direct": false,
"version": "4.5.4",
"ecosystem": "npm"
},
{
"name": "kind-of",
"direct": false,
"version": "3.2.2",
"ecosystem": "npm"
},
{
"name": "kind-of",
"direct": false,
"version": "6.0.3",
"ecosystem": "npm"
},
{
"name": "klaw",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "labeled-stream-splicer",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "labeled-stream-splicer",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "lazy-cache",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "levn",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "liftup",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "linkify-it",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "linkify-it",
"direct": false,
"version": "5.0.2",
"ecosystem": "npm"
},
{
"name": "load-json-file",
"direct": false,
"version": "1.1.0",
"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",
"direct": false,
"version": "4.17.23",
"ecosystem": "npm"
},
{
"name": "lodash",
"direct": false,
"version": "4.18.1",
"ecosystem": "npm"
},
{
"name": "lodash.flattendeep",
"direct": false,
"version": "4.4.0",
"ecosystem": "npm"
},
{
"name": "lodash.memoize",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "lodash.merge",
"direct": false,
"version": "4.6.2",
"ecosystem": "npm"
},
{
"name": "longest",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "loud-rejection",
"direct": false,
"version": "1.6.0",
"ecosystem": "npm"
},
{
"name": "make-dir",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "make-dir",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "make-iterator",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "map-cache",
"direct": false,
"version": "0.2.2",
"ecosystem": "npm"
},
{
"name": "map-obj",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "markdown-it",
"direct": false,
"version": "12.3.2",
"ecosystem": "npm"
},
{
"name": "markdown-it",
"direct": false,
"version": "14.2.0",
"ecosystem": "npm"
},
{
"name": "markdown-it-anchor",
"direct": false,
"version": "8.6.5",
"ecosystem": "npm"
},
{
"name": "markdown-it-anchor",
"direct": false,
"version": "8.6.7",
"ecosystem": "npm"
},
{
"name": "marked",
"direct": false,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "math-intrinsics",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "maxmin",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "maxmin",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "md5.js",
"direct": false,
"version": "1.3.5",
"ecosystem": "npm"
},
{
"name": "mdurl",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "mdurl",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "meow",
"direct": false,
"version": "3.7.0",
"ecosystem": "npm"
},
{
"name": "micromatch",
"direct": false,
"version": "4.0.4",
"ecosystem": "npm"
},
{
"name": "micromatch",
"direct": false,
"version": "4.0.8",
"ecosystem": "npm"
},
{
"name": "miller-rabin",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "mime",
"direct": false,
"version": "2.4.0",
"ecosystem": "npm"
},
{
"name": "minimalistic-assert",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "minimalistic-crypto-utils",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "3.0.8",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "3.1.2",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "3.1.5",
"ecosystem": "npm"
},
{
"name": "minimist",
"direct": false,
"version": "1.2.6",
"ecosystem": "npm"
},
{
"name": "minimist",
"direct": false,
"version": "1.2.8",
"ecosystem": "npm"
},
{
"name": "mkdirp",
"direct": false,
"version": "0.5.5",
"ecosystem": "npm"
},
{
"name": "mkdirp",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "module-deps",
"direct": false,
"version": "6.2.0",
"ecosystem": "npm"
},
{
"name": "module-deps",
"direct": false,
"version": "6.2.2",
"ecosystem": "npm"
},
{
"name": "ms",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "ms",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "ms",
"direct": false,
"version": "2.1.3",
"ecosystem": "npm"
},
{
"name": "natural-compare",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "node-gyp-build",
"direct": false,
"version": "3.7.0",
"ecosystem": "npm"
},
{
"name": "node-preload",
"direct": false,
"version": "0.2.1",
"ecosystem": "npm"
},
{
"name": "nopt",
"direct": false,
"version": "3.0.6",
"ecosystem": "npm"
},
{
"name": "nopt",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "nopt",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "normalize-package-data",
"direct": false,
"version": "2.4.0",
"ecosystem": "npm"
},
{
"name": "number-is-nan",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "nyc",
"direct": false,
"version": "15.1.0",
"ecosystem": "npm"
},
{
"name": "object-assign",
"direct": false,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "object-inspect",
"direct": false,
"version": "1.6.0",
"ecosystem": "npm"
},
{
"name": "object-keys",
"direct": false,
"version": "1.0.12",
"ecosystem": "npm"
},
{
"name": "object.defaults",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "object.map",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "object.pick",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "on-finished",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "once",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "optionator",
"direct": false,
"version": "0.9.4",
"ecosystem": "npm"
},
{
"name": "os-browserify",
"direct": false,
"version": "0.3.0",
"ecosystem": "npm"
},
{
"name": "os-homedir",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "os-tmpdir",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "osenv",
"direct": false,
"version": "0.1.5",
"ecosystem": "npm"
},
{
"name": "p-each-series",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "p-limit",
"direct": false,
"version": "2.2.2",
"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": "3.0.0",
"ecosystem": "npm"
},
{
"name": "p-reduce",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "p-try",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "package-hash",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "pako",
"direct": false,
"version": "0.2.9",
"ecosystem": "npm"
},
{
"name": "pako",
"direct": false,
"version": "1.0.11",
"ecosystem": "npm"
},
{
"name": "pako",
"direct": false,
"version": "1.0.7",
"ecosystem": "npm"
},
{
"name": "parent-module",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "parents",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "parse-asn1",
"direct": false,
"version": "5.1.6",
"ecosystem": "npm"
},
{
"name": "parse-filepath",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "parse-json",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "parse-passwd",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "parseurl",
"direct": false,
"version": "1.3.2",
"ecosystem": "npm"
},
{
"name": "path-browserify",
"direct": false,
"version": "0.0.1",
"ecosystem": "npm"
},
{
"name": "path-exists",
"direct": false,
"version": "2.1.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-platform",
"direct": false,
"version": "0.11.15",
"ecosystem": "npm"
},
{
"name": "path-root",
"direct": false,
"version": "0.1.1",
"ecosystem": "npm"
},
{
"name": "path-root-regex",
"direct": false,
"version": "0.1.2",
"ecosystem": "npm"
},
{
"name": "path-type",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "pbkdf2",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "pend",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "picocolors",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "picomatch",
"direct": false,
"version": "2.3.2",
"ecosystem": "npm"
},
{
"name": "pify",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "pinkie",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "pinkie-promise",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "pkg-dir",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "possible-typed-array-names",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "prelude-ls",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "prettier",
"direct": false,
"version": "3.4.2",
"ecosystem": "npm"
},
{
"name": "prettier-linter-helpers",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "pretty-bytes",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "pretty-bytes",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "process",
"direct": false,
"version": "0.11.10",
"ecosystem": "npm"
},
{
"name": "process-nextick-args",
"direct": false,
"version": "1.0.7",
"ecosystem": "npm"
},
{
"name": "process-nextick-args",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "process-on-spawn",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "progress",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "proxy-from-env",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "public-encrypt",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "punycode",
"direct": false,
"version": "1.3.2",
"ecosystem": "npm"
},
{
"name": "punycode",
"direct": false,
"version": "1.4.1",
"ecosystem": "npm"
},
{
"name": "punycode",
"direct": false,
"version": "2.3.1",
"ecosystem": "npm"
},
{
"name": "punycode.js",
"direct": false,
"version": "2.3.1",
"ecosystem": "npm"
},
{
"name": "puppeteer",
"direct": false,
"version": "1.20.0",
"ecosystem": "npm"
},
{
"name": "querystring",
"direct": false,
"version": "0.2.0",
"ecosystem": "npm"
},
{
"name": "querystring-es3",
"direct": false,
"version": "0.2.1",
"ecosystem": "npm"
},
{
"name": "randombytes",
"direct": false,
"version": "2.0.6",
"ecosystem": "npm"
},
{
"name": "randombytes",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "randomfill",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "read-only-stream",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "read-pkg",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "read-pkg-up",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "readable-stream",
"direct": false,
"version": "1.1.14",
"ecosystem": "npm"
},
{
"name": "readable-stream",
"direct": false,
"version": "2.1.5",
"ecosystem": "npm"
},
{
"name": "readable-stream",
"direct": false,
"version": "2.3.6",
"ecosystem": "npm"
},
{
"name": "readable-stream",
"direct": false,
"version": "2.3.7",
"ecosystem": "npm"
},
{
"name": "readable-stream",
"direct": false,
"version": "3.6.0",
"ecosystem": "npm"
},
{
"name": "readable-stream",
"direct": false,
"version": "3.6.2",
"ecosystem": "npm"
},
{
"name": "rechoir",
"direct": false,
"version": "0.7.1",
"ecosystem": "npm"
},
{
"name": "redent",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "release-zalgo",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "repeat-string",
"direct": false,
"version": "1.6.1",
"ecosystem": "npm"
},
{
"name": "repeating",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "require-directory",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "require-main-filename",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "requizzle",
"direct": false,
"version": "0.2.3",
"ecosystem": "npm"
},
{
"name": "resolve",
"direct": false,
"version": "1.1.7",
"ecosystem": "npm"
},
{
"name": "resolve",
"direct": false,
"version": "1.15.1",
"ecosystem": "npm"
},
{
"name": "resolve",
"direct": false,
"version": "1.20.0",
"ecosystem": "npm"
},
{
"name": "resolve",
"direct": false,
"version": "1.7.1",
"ecosystem": "npm"
},
{
"name": "resolve",
"direct": false,
"version": "1.9.0",
"ecosystem": "npm"
},
{
"name": "resolve-dir",
"direct": false,
"version": "1.0.1",
"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": "resumer",
"direct": false,
"version": "0.0.0",
"ecosystem": "npm"
},
{
"name": "right-align",
"direct": false,
"version": "0.1.3",
"ecosystem": "npm"
},
{
"name": "rimraf",
"direct": false,
"version": "2.6.2",
"ecosystem": "npm"
},
{
"name": "rimraf",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "ripemd160",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "ripemd160",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "safe-buffer",
"direct": false,
"version": "5.1.2",
"ecosystem": "npm"
},
{
"name": "safe-buffer",
"direct": false,
"version": "5.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": "5.7.2",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "7.8.0",
"ecosystem": "npm"
},
{
"name": "set-blocking",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "set-function-length",
"direct": false,
"version": "1.2.2",
"ecosystem": "npm"
},
{
"name": "sha.js",
"direct": false,
"version": "2.4.12",
"ecosystem": "npm"
},
{
"name": "shasum",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "shasum-object",
"direct": false,
"version": "1.0.0",
"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": "shell-quote",
"direct": false,
"version": "1.10.0",
"ecosystem": "npm"
},
{
"name": "shell-quote",
"direct": false,
"version": "1.7.3",
"ecosystem": "npm"
},
{
"name": "signal-exit",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "simple-concat",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "source-map",
"direct": false,
"version": "0.5.7",
"ecosystem": "npm"
},
{
"name": "source-map",
"direct": false,
"version": "0.6.1",
"ecosystem": "npm"
},
{
"name": "spawn-wrap",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "spdx-correct",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "spdx-exceptions",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "spdx-expression-parse",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "spdx-license-ids",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "sprintf-js",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "sprintf-js",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "sprintf-js",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "statuses",
"direct": false,
"version": "1.3.1",
"ecosystem": "npm"
},
{
"name": "stream-browserify",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "stream-browserify",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "stream-combiner2",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "stream-http",
"direct": false,
"version": "2.8.3",
"ecosystem": "npm"
},
{
"name": "stream-http",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "stream-splicer",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "stream-splicer",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "string-width",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "string-width",
"direct": false,
"version": "4.2.3",
"ecosystem": "npm"
},
{
"name": "string.prototype.trim",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "string_decoder",
"direct": false,
"version": "0.10.31",
"ecosystem": "npm"
},
{
"name": "string_decoder",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "string_decoder",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "string_decoder",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "strip-ansi",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "strip-ansi",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "strip-ansi",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "strip-bom",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "strip-bom",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "strip-indent",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "strip-json-comments",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "strip-json-comments",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "subarg",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "supports-color",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "supports-color",
"direct": false,
"version": "5.5.0",
"ecosystem": "npm"
},
{
"name": "supports-color",
"direct": false,
"version": "7.2.0",
"ecosystem": "npm"
},
{
"name": "synckit",
"direct": false,
"version": "0.9.2",
"ecosystem": "npm"
},
{
"name": "syntax-error",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "tape",
"direct": false,
"version": "4.9.1",
"ecosystem": "npm"
},
{
"name": "test-exclude",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "thrift",
"direct": false,
"version": "0.23.0",
"ecosystem": "npm"
},
{
"name": "through",
"direct": false,
"version": "2.3.8",
"ecosystem": "npm"
},
{
"name": "through2",
"direct": false,
"version": "2.0.5",
"ecosystem": "npm"
},
{
"name": "timers-browserify",
"direct": false,
"version": "1.4.2",
"ecosystem": "npm"
},
{
"name": "to-arraybuffer",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "to-buffer",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "to-regex-range",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "trim-newlines",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "tslib",
"direct": false,
"version": "2.8.1",
"ecosystem": "npm"
},
{
"name": "tty-browserify",
"direct": false,
"version": "0.0.1",
"ecosystem": "npm"
},
{
"name": "type-check",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "0.8.1",
"ecosystem": "npm"
},
{
"name": "typed-array-buffer",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "typedarray",
"direct": false,
"version": "0.0.6",
"ecosystem": "npm"
},
{
"name": "typedarray-to-buffer",
"direct": false,
"version": "3.1.5",
"ecosystem": "npm"
},
{
"name": "typescript",
"direct": false,
"version": "5.7.2",
"ecosystem": "npm"
},
{
"name": "typescript",
"direct": false,
"version": "5.7.3",
"ecosystem": "npm"
},
{
"name": "uc.micro",
"direct": false,
"version": "1.0.6",
"ecosystem": "npm"
},
{
"name": "uc.micro",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "uglify-js",
"direct": false,
"version": "2.6.4",
"ecosystem": "npm"
},
{
"name": "uglify-js",
"direct": false,
"version": "3.6.0",
"ecosystem": "npm"
},
{
"name": "uglify-to-browserify",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "umd",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "unc-path-regex",
"direct": false,
"version": "0.1.2",
"ecosystem": "npm"
},
{
"name": "undeclared-identifiers",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "undeclared-identifiers",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "underscore",
"direct": false,
"version": "1.13.6",
"ecosystem": "npm"
},
{
"name": "underscore",
"direct": false,
"version": "1.13.8",
"ecosystem": "npm"
},
{
"name": "underscore.string",
"direct": false,
"version": "3.3.6",
"ecosystem": "npm"
},
{
"name": "undici-types",
"direct": false,
"version": "6.20.0",
"ecosystem": "npm"
},
{
"name": "unpipe",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "uri-js",
"direct": false,
"version": "4.4.1",
"ecosystem": "npm"
},
{
"name": "uri-path",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "url",
"direct": false,
"version": "0.11.0",
"ecosystem": "npm"
},
{
"name": "utf-8-validate",
"direct": false,
"version": "5.0.2",
"ecosystem": "npm"
},
{
"name": "util",
"direct": false,
"version": "0.10.3",
"ecosystem": "npm"
},
{
"name": "util",
"direct": false,
"version": "0.10.4",
"ecosystem": "npm"
},
{
"name": "util-deprecate",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "utils-merge",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "v8flags",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "validate-npm-package-license",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "vm-browserify",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "vm-browserify",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "which",
"direct": false,
"version": "1.3.1",
"ecosystem": "npm"
},
{
"name": "which",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "which-module",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "which-typed-array",
"direct": false,
"version": "1.1.19",
"ecosystem": "npm"
},
{
"name": "window-size",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "word-wrap",
"direct": false,
"version": "1.2.5",
"ecosystem": "npm"
},
{
"name": "wordwrap",
"direct": false,
"version": "0.0.2",
"ecosystem": "npm"
},
{
"name": "wrap-ansi",
"direct": false,
"version": "6.2.0",
"ecosystem": "npm"
},
{
"name": "wrappy",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "write-file-atomic",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "xmlcreate",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "xtend",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "xtend",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "y18n",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "yargs",
"direct": false,
"version": "15.4.1",
"ecosystem": "npm"
},
{
"name": "yargs",
"direct": false,
"version": "3.10.0",
"ecosystem": "npm"
},
{
"name": "yargs-parser",
"direct": false,
"version": "18.1.3",
"ecosystem": "npm"
},
{
"name": "yauzl",
"direct": false,
"version": "2.10.0",
"ecosystem": "npm"
},
{
"name": "yocto-queue",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "BenchmarkDotNet",
"direct": false,
"version": "0.15.8",
"ecosystem": "nuget"
},
{
"name": "CompareNETObjects",
"direct": false,
"version": "4.84.0",
"ecosystem": "nuget"
},
{
"name": "Microsoft.AspNetCore.Components.Web",
"direct": false,
"version": "7.0.9",
"ecosystem": "nuget"
},
{
"name": "Microsoft.AspNetCore.Http.Abstractions",
"direct": false,
"version": "2.3.11",
"ecosystem": "nuget"
},
{
"name": "Microsoft.Extensions.DependencyInjection",
"direct": false,
"version": "10.0.10",
"ecosystem": "nuget"
},
{
"name": "Microsoft.Extensions.Logging",
"direct": false,
"version": "10.0.10",
"ecosystem": "nuget"
},
{
"name": "Microsoft.Extensions.Logging.Abstractions",
"direct": false,
"version": "10.0.10",
"ecosystem": "nuget"
},
{
"name": "Microsoft.Extensions.Logging.Console",
"direct": false,
"version": "10.0.10",
"ecosystem": "nuget"
},
{
"name": "Microsoft.Extensions.Logging.Debug",
"direct": false,
"version": "10.0.10",
"ecosystem": "nuget"
},
{
"name": "Microsoft.NET.Test.Sdk",
"direct": false,
"version": "18.8.1",
"ecosystem": "nuget"
},
{
"name": "MSTest.TestAdapter",
"direct": false,
"version": "4.3.2",
"ecosystem": "nuget"
},
{
"name": "MSTest.TestFramework",
"direct": false,
"version": "4.3.2",
"ecosystem": "nuget"
},
{
"name": "NSubstitute",
"direct": false,
"version": "6.0.0",
"ecosystem": "nuget"
},
{
"name": "SharpFuzz",
"direct": false,
"version": "2.2.0",
"ecosystem": "nuget"
},
{
"name": "System.IO.Pipes.AccessControl",
"direct": false,
"version": "5.0.0",
"ecosystem": "nuget"
},
{
"name": "System.Net.Http.WinHttpHandler",
"direct": false,
"version": "10.0.10",
"ecosystem": "nuget"
},
{
"name": "System.Security.Cryptography.Xml",
"direct": false,
"version": "10.0.10",
"ecosystem": "nuget"
},
{
"name": "System.ServiceModel.Primitives",
"direct": false,
"version": "10.0.652802",
"ecosystem": "nuget"
},
{
"name": "System.ServiceModel.Primitives",
"direct": false,
"version": "8.1.2",
"ecosystem": "nuget"
},
{
"name": "ext-curl",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "ext-json",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "ext-pcntl",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "ext-xml",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "guzzlehttp/guzzle",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "nyholm/psr7",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "php",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "php-http/discovery",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "php-mock/php-mock-phpunit",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "phpstan/phpstan",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "phpunit/phpunit",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "squizlabs/php_codesniffer",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "setuptools",
"direct": false,
"version": null,
"ecosystem": "pypi"
},
{
"name": "ast",
"direct": false,
"version": "2.4.3",
"ecosystem": "rubygems"
},
{
"name": "async",
"direct": false,
"version": "2.42.0",
"ecosystem": "rubygems"
},
{
"name": "async-container",
"direct": false,
"version": "0.37.0",
"ecosystem": "rubygems"
},
{
"name": "async-http",
"direct": false,
"version": "0.95.1",
"ecosystem": "rubygems"
},
{
"name": "async-http-cache",
"direct": false,
"version": "0.4.6",
"ecosystem": "rubygems"
},
{
"name": "async-pool",
"direct": false,
"version": "0.11.2",
"ecosystem": "rubygems"
},
{
"name": "async-service",
"direct": false,
"version": "0.24.1",
"ecosystem": "rubygems"
},
{
"name": "async-utilization",
"direct": false,
"version": "0.4.0",
"ecosystem": "rubygems"
},
{
"name": "bake",
"direct": false,
"version": "0.25.0",
"ecosystem": "rubygems"
},
{
"name": "bigdecimal",
"direct": false,
"version": "4.1.2",
"ecosystem": "rubygems"
},
{
"name": "bundler",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "cgi",
"direct": false,
"version": "0.5.0",
"ecosystem": "rubygems"
},
{
"name": "cgi",
"direct": false,
"version": "0.5.2",
"ecosystem": "rubygems"
},
{
"name": "console",
"direct": false,
"version": "1.36.0",
"ecosystem": "rubygems"
},
{
"name": "daemons",
"direct": false,
"version": "1.4.1",
"ecosystem": "rubygems"
},
{
"name": "diff-lcs",
"direct": false,
"version": "1.6.2",
"ecosystem": "rubygems"
},
{
"name": "eventmachine",
"direct": false,
"version": "1.2.7",
"ecosystem": "rubygems"
},
{
"name": "falcon",
"direct": false,
"version": "0.55.5",
"ecosystem": "rubygems"
},
{
"name": "fiber-annotation",
"direct": false,
"version": "0.2.0",
"ecosystem": "rubygems"
},
{
"name": "fiber-local",
"direct": false,
"version": "1.1.0",
"ecosystem": "rubygems"
},
{
"name": "fiber-storage",
"direct": false,
"version": "1.0.1",
"ecosystem": "rubygems"
},
{
"name": "io-endpoint",
"direct": false,
"version": "0.17.2",
"ecosystem": "rubygems"
},
{
"name": "io-event",
"direct": false,
"version": "1.19.1",
"ecosystem": "rubygems"
},
{
"name": "io-stream",
"direct": false,
"version": "0.13.1",
"ecosystem": "rubygems"
},
{
"name": "json",
"direct": false,
"version": "2.19.2",
"ecosystem": "rubygems"
},
{
"name": "language_server-protocol",
"direct": false,
"version": "3.17.0.5",
"ecosystem": "rubygems"
},
{
"name": "lint_roller",
"direct": false,
"version": "1.1.0",
"ecosystem": "rubygems"
},
{
"name": "localhost",
"direct": false,
"version": "1.8.0",
"ecosystem": "rubygems"
},
{
"name": "logger",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "logger",
"direct": false,
"version": "1.7.0",
"ecosystem": "rubygems"
},
{
"name": "metrics",
"direct": false,
"version": "0.15.0",
"ecosystem": "rubygems"
},
{
"name": "nio4r",
"direct": false,
"version": "2.7.5",
"ecosystem": "rubygems"
},
{
"name": "openssl",
"direct": false,
"version": "4.0.2",
"ecosystem": "rubygems"
},
{
"name": "ostruct",
"direct": false,
"version": "0.6.3",
"ecosystem": "rubygems"
},
{
"name": "parallel",
"direct": false,
"version": "1.27.0",
"ecosystem": "rubygems"
},
{
"name": "parser",
"direct": false,
"version": "3.3.10.1",
"ecosystem": "rubygems"
},
{
"name": "power_assert",
"direct": false,
"version": "3.0.1",
"ecosystem": "rubygems"
},
{
"name": "prism",
"direct": false,
"version": "1.9.0",
"ecosystem": "rubygems"
},
{
"name": "protocol-hpack",
"direct": false,
"version": "1.5.1",
"ecosystem": "rubygems"
},
{
"name": "protocol-http",
"direct": false,
"version": "0.62.2",
"ecosystem": "rubygems"
},
{
"name": "protocol-http1",
"direct": false,
"version": "0.39.0",
"ecosystem": "rubygems"
},
{
"name": "protocol-http2",
"direct": false,
"version": "0.26.0",
"ecosystem": "rubygems"
},
{
"name": "protocol-rack",
"direct": false,
"version": "0.22.1",
"ecosystem": "rubygems"
},
{
"name": "protocol-url",
"direct": false,
"version": "0.4.0",
"ecosystem": "rubygems"
},
{
"name": "puma",
"direct": false,
"version": "6.6.1",
"ecosystem": "rubygems"
},
{
"name": "racc",
"direct": false,
"version": "1.8.1",
"ecosystem": "rubygems"
},
{
"name": "rack",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "rack",
"direct": false,
"version": "2.2.23",
"ecosystem": "rubygems"
},
{
"name": "rack-test",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "rack-test",
"direct": false,
"version": "0.8.3",
"ecosystem": "rubygems"
},
{
"name": "rainbow",
"direct": false,
"version": "3.1.1",
"ecosystem": "rubygems"
},
{
"name": "rake",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "rake",
"direct": false,
"version": "13.3.1",
"ecosystem": "rubygems"
},
{
"name": "regexp_parser",
"direct": false,
"version": "2.11.3",
"ecosystem": "rubygems"
},
{
"name": "rspec",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "rspec",
"direct": false,
"version": "3.13.2",
"ecosystem": "rubygems"
},
{
"name": "rspec-core",
"direct": false,
"version": "3.13.6",
"ecosystem": "rubygems"
},
{
"name": "rspec-expectations",
"direct": false,
"version": "3.13.5",
"ecosystem": "rubygems"
},
{
"name": "rspec-mocks",
"direct": false,
"version": "3.13.7",
"ecosystem": "rubygems"
},
{
"name": "rspec-support",
"direct": false,
"version": "3.13.6",
"ecosystem": "rubygems"
},
{
"name": "rubocop",
"direct": false,
"version": "1.82.1",
"ecosystem": "rubygems"
},
{
"name": "rubocop-ast",
"direct": false,
"version": "1.49.0",
"ecosystem": "rubygems"
},
{
"name": "rubocop-performance",
"direct": false,
"version": "1.26.1",
"ecosystem": "rubygems"
},
{
"name": "rubocop-rspec",
"direct": false,
"version": "3.8.0",
"ecosystem": "rubygems"
},
{
"name": "ruby-progressbar",
"direct": false,
"version": "1.13.0",
"ecosystem": "rubygems"
},
{
"name": "samovar",
"direct": false,
"version": "2.5.1",
"ecosystem": "rubygems"
},
{
"name": "string-format",
"direct": false,
"version": "0.2.0",
"ecosystem": "rubygems"
},
{
"name": "test-unit",
"direct": false,
"version": "3.7.3",
"ecosystem": "rubygems"
},
{
"name": "thin",
"direct": false,
"version": "1.8.2",
"ecosystem": "rubygems"
},
{
"name": "traces",
"direct": false,
"version": "0.18.2",
"ecosystem": "rubygems"
},
{
"name": "unicode-display_width",
"direct": false,
"version": "3.2.0",
"ecosystem": "rubygems"
},
{
"name": "unicode-emoji",
"direct": false,
"version": "4.2.0",
"ecosystem": "rubygems"
}
],
"collected": true,
"truncated": false,
"total_count": 843,
"direct_count": 11,
"indirect_count": 832
}
},
"maintainership": {
"issues": {
"open_prs": 12,
"merged_prs": 1375,
"open_issues": 0,
"closed_ratio": null,
"closed_issues": 0,
"closed_unmerged_prs": 2265
},
"bus_factor": 3,
"bot_contributors": 2,
"top_contributors": [
{
"type": "User",
"login": "Jens-G",
"commits": 1269,
"avatar_url": "https://avatars.githubusercontent.com/u/5834733?v=4"
},
{
"type": "User",
"login": "bufferoverflow",
"commits": 720,
"avatar_url": "https://avatars.githubusercontent.com/u/378909?v=4"
},
{
"type": "User",
"login": "jfarrell",
"commits": 354,
"avatar_url": "https://avatars.githubusercontent.com/u/770483?v=4"
},
{
"type": "User",
"login": "jeking3",
"commits": 293,
"avatar_url": "https://avatars.githubusercontent.com/u/11771245?v=4"
},
{
"type": "User",
"login": "nsuke",
"commits": 243,
"avatar_url": "https://avatars.githubusercontent.com/u/3064114?v=4"
},
{
"type": "User",
"login": "emmenlau",
"commits": 112,
"avatar_url": "https://avatars.githubusercontent.com/u/1098087?v=4"
},
{
"type": "User",
"login": "kpumuk",
"commits": 104,
"avatar_url": "https://avatars.githubusercontent.com/u/10163?v=4"
},
{
"type": "User",
"login": "henrique",
"commits": 84,
"avatar_url": "https://avatars.githubusercontent.com/u/128897?v=4"
},
{
"type": "User",
"login": "jimexist",
"commits": 70,
"avatar_url": "https://avatars.githubusercontent.com/u/622789?v=4"
},
{
"type": "User",
"login": "hcorg",
"commits": 62,
"avatar_url": "https://avatars.githubusercontent.com/u/8628672?v=4"
}
],
"contributors_sampled": 98,
"top_contributor_share": 0.301
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"asf-allowlist-check.yml",
"build.yml",
"cmake.yml",
"docker.yml",
"generate-changes.yml",
"make-dist.yml",
"msvc.yml",
"pypi.yml",
"release_ruby.yml",
"release_rust.yml",
"sca.yml"
],
"has_docs_dir": true,
"linter_configs": [
".flake8",
".rubocop.yml",
"eslint.config.mjs",
"phpstan.neon"
],
"has_editorconfig": true,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"Gemfile.lock",
"go.sum",
"package-lock.json"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 3,
"reason": "branch protection is not maximal on development and all release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 10,
"reason": "25 out of 25 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": 1,
"reason": "Found 3/26 approved changesets -- score normalized to 1",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 33 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 10,
"reason": "update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 10,
"reason": "project is fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 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": 4,
"reason": "dependency not pinned by hash detected -- score normalized to 4",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 10,
"reason": "SAST tool is run on all commits",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 10,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 8,
"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": "25 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "a8c6db2da2857721149df55945b69c2e2a950d16",
"ran_at": "2026-07-22T00:32:02Z",
"aggregate_score": 7.3,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": true,
"has_dependabot_config": true
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-22T00:30:39Z",
"oldest_open_prs": [
{
"number": 3275,
"created_at": "2025-12-21T23:34:54Z",
"last_comment_at": "2025-12-22T13:46:35Z",
"last_comment_author": "kpumuk"
},
{
"number": 3347,
"created_at": "2026-03-17T23:36:24Z",
"last_comment_at": "2026-04-07T20:19:43Z",
"last_comment_author": "Jens-G"
},
{
"number": 3444,
"created_at": "2026-05-03T18:06:28Z",
"last_comment_at": "2026-06-14T21:33:30Z",
"last_comment_author": "kpumuk"
},
{
"number": 3594,
"created_at": "2026-06-13T07:06:26Z",
"last_comment_at": "2026-07-11T16:51:26Z",
"last_comment_author": "Jens-G"
},
{
"number": 3596,
"created_at": "2026-06-13T07:28:21Z",
"last_comment_at": "2026-07-11T15:42:24Z",
"last_comment_author": "Jens-G"
},
{
"number": 3635,
"created_at": "2026-07-13T23:06:25Z",
"last_comment_at": "2026-07-13T23:33:56Z",
"last_comment_author": "kpumuk"
},
{
"number": 3648,
"created_at": "2026-07-20T15:47:19Z",
"last_comment_at": "2026-07-20T22:58:51Z",
"last_comment_author": "Jens-G"
},
{
"number": 3659,
"created_at": "2026-07-21T21:13:46Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3660,
"created_at": "2026-07-21T21:47:37Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3662,
"created_at": "2026-07-21T22:17:39Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3663,
"created_at": "2026-07-21T23:02:11Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3664,
"created_at": "2026-07-21T23:39:41Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-07-22T00:13:34Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/apache/thrift",
"host": "github.com",
"name": "thrift",
"owner": "apache"
},
"metrics": {
"overall": {
"key": "overall",
"band": "good",
"name": "Overall health",
"note": null,
"notes": [],
"value": 82,
"inputs": {
"security": 71,
"vitality": 91,
"community": 95,
"governance": 70,
"engineering": 84
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "excellent",
"name": "Vitality",
"value": 91,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "excellent",
"name": "Development activity",
"note": null,
"notes": [],
"value": 96,
"inputs": {
"commits_last_year": 566,
"human_commit_share": 0.86,
"days_since_last_push": 0,
"active_weeks_last_year": 47
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "47/52 weeks with commits",
"points": 32.5,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 47
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "566 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 566
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 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": "good",
"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": 84,
"inputs": {
"releases_count": 18,
"latest_release_tag": "v0.24.0",
"releases_from_tags": false,
"days_since_latest_release": 10,
"mean_days_between_releases": 178.5
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "18 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 18
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 10 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 10
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~178.5 days",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 178.5
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 0,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 0 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 0
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "excellent",
"name": "Community & Adoption",
"value": 95,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "excellent",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"forks": 4113,
"stars": 10941,
"watchers": 445,
"growth_state": "organic",
"growth_factor_pct": 100
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "10,941 stars",
"points": 60,
"status": "met",
"details": [
{
"code": "stars",
"params": {
"count": 10941
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "4,113 forks",
"points": 25,
"status": "met",
"details": [
{
"code": "forks",
"params": {
"count": 4113
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "445 watchers",
"points": 14.7,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 445
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "excellent",
"name": "Community health",
"note": null,
"notes": [],
"value": 92,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (Apache-2.0)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "Apache-2.0"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 13.5,
"status": "met",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 6.3,
"status": "met",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "excellent",
"name": "Ecosystem adoption (downloads)",
"note": null,
"notes": [],
"value": 92,
"inputs": {
"packages": [
"github.com/apache/thrift",
"thrift",
"apache/thrift"
],
"dependents": 54,
"ecosystems": "go, npm, packagist",
"total_downloads": 2115718,
"monthly_downloads": 5555808
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "5,555,808 downloads/month across go, npm, packagist",
"points": 80,
"status": "met",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 5555808,
"ecosystems": "go, npm, packagist"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "54 packages depend on it",
"points": 11.6,
"status": "partial",
"details": [
{
"code": "registry_dependents",
"params": {
"count": 54
}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "good",
"name": "Sustainability & Governance",
"value": 70,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "good",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 75,
"inputs": {
"bus_factor": 3,
"contributors_sampled": 98,
"top_contributor_share": 0.301
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "3 contributor(s) cover half of all commits",
"points": 36,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 3
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 30% of commits",
"points": 15.7,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 30
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "98 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 98
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 33 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "at_risk",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"issue_resolution"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 30,
"inputs": {
"merged_prs": 1375,
"open_issues": 0,
"closed_issues": 0,
"issue_closed_ratio": null,
"closed_unmerged_prs": 2265
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "no issues or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_issues_or_data",
"params": {}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "1375/3640 decided PRs merged",
"points": 14.4,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 1375,
"decided": 3640
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 3/26 approved changesets -- score normalized to 1",
"points": 1.5,
"status": "partial",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "good",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 80,
"inputs": {
"followers": 23513,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "apache",
"public_repos": 3146,
"account_age_days": 6394
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "organization-owned",
"points": 30,
"status": "met",
"details": [
{
"code": "owner_organization",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "23,513 followers of apache",
"points": 25,
"status": "met",
"details": [
{
"code": "owner_followers",
"params": {
"count": 23513,
"login": "apache"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "3146 public repos, account ~17 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 3146
}
},
{
"code": "account_age_years",
"params": {
"years": 17
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"github.com/apache/thrift",
"thrift",
"apache/thrift"
],
"ecosystems": "go, npm, packagist",
"any_deprecated": false,
"min_days_since_publish": 10
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "3 package(s) on go, npm, packagist",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 3,
"ecosystems": "go, npm, packagist"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 10 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 10
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "29 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 29
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 84,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "excellent",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": true,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "11 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 11
}
}
],
"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": ".flake8, .rubocop.yml, eslint.config.mjs, phpstan.neon",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".flake8, .rubocop.yml, eslint.config.mjs, phpstan.neon"
}
}
],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 6.4,
"status": "met",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "25 out of 25 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "good",
"name": "Documentation",
"note": null,
"notes": [],
"value": 75,
"inputs": {
"topics": [
"d",
"thrift",
"cplusplus",
"dart",
"actionscript",
"http",
"network-client",
"network-server",
"csharp",
"library",
"c"
],
"has_wiki": false,
"homepage": null,
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "11 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 11
}
}
],
"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": "good",
"name": "Security",
"value": 71,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "good",
"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": 73,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 7.3
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection is not maximal on development and all release branches",
"points": 2.2,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "25 out of 25 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 3/26 approved changesets -- score normalized to 1",
"points": 0.8,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 33 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "update tool detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is fuzzed",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 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 4",
"points": 2,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is run on all commits",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "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": 6,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "25 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "moderate",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 803 resolved dependencies against OSV; 40 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"indirect_dependencies_free_of_known_advisories"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_repository",
"params": {
"assessed": 803
}
},
{
"code": "advisories_unassessed",
"params": {
"count": 40
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 64,
"inputs": {
"source": "osv",
"advisories": 34,
"affected_packages": 22,
"assessed_packages": 803,
"unassessed_packages": 40,
"affected_by_severity": "critical 1, high 14, moderate 5, low 1, unknown 1",
"direct_affected_packages": 1
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "1 affected: uuid 3.4.0 (high 7.5)",
"points": 14,
"status": "partial",
"details": [
{
"code": "advisories_affected",
"params": {
"count": 1,
"packages": "uuid 3.4.0 (high 7.5)"
}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "transitive set not separable from development and test dependencies in this scope",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_scope_not_separable",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "1 advisory-carrying package(s) unaddressed past 90 days; oldest published 90 days ago",
"points": 33.7,
"status": "partial",
"details": [
{
"code": "advisories_stale",
"params": {
"days": 90,
"count": 1,
"oldest": 90
}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "excellent",
"name": "Malicious dependencies",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"source": "osv",
"meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
"packages": [],
"red_flag": false,
"assessed_packages": 803,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 14
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "good",
"name": "AI Readiness",
"value": 82,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "good",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 77,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.593,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 6782
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "AGENTS.md, CLAUDE.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "AGENTS.md, CLAUDE.md"
}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "51 of 86 human commits state their intent (structured subject or explanatory body)",
"points": 31.6,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 51,
"sampled": 86
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "excellent",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 94,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"Gemfile.lock",
"go.sum",
"package-lock.json"
],
"has_dockerfile": true,
"typed_language": true,
"bootstrap_files": [
"contrib/async-test/Makefile",
"contrib/transport-sample/Makefile",
"contrib/zeromq/Makefile",
"lib/nodejs/examples/Makefile",
"lib/ocaml/src/Makefile",
"lib/ocaml/test/Makefile",
"test/ocaml/Makefile",
"test/ocaml/client/Makefile",
"test/ocaml/server/Makefile",
"test/threads/Makefile"
],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [
"lib/nodets/test/tsconfig.json",
"lib/ts/tsconfig.json"
],
"agent_commit_share": 0.39,
"toolchain_manifests": [
"contrib/Rebus/RebusSample.csproj",
"contrib/thrift-maven-plugin/pom.xml",
"contrib/zeromq/csharp/ThriftZMQ.csproj",
"go.mod",
"lib/go/test/fuzz/go.mod",
"lib/go/test/go.mod",
"lib/java/android/build.gradle",
"lib/java/build.gradle",
"lib/kotlin/build.gradle.kts",
"lib/kotlin/cross-test-client/build.gradle.kts",
"lib/kotlin/cross-test-server/build.gradle.kts",
"lib/netstd/Benchmarks/Thrift.Benchmarks/Thrift.Benchmarks.csproj",
"lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net10/Thrift.Compile.net10.csproj",
"lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net8/Thrift.Compile.net8.csproj",
"lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net9/Thrift.Compile.net9.csproj",
"lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.netstd2/Thrift.Compile.netstd2.csproj",
"lib/netstd/Tests/Thrift.FuzzTests/Thrift.FuzzTests.csproj",
"lib/netstd/Tests/Thrift.IntegrationTests/Thrift.IntegrationTests.csproj",
"lib/netstd/Tests/Thrift.Tests/Thrift.Tests.csproj",
"lib/netstd/Thrift.AspNetCore/Thrift.AspNetCore.csproj",
"lib/netstd/Thrift/Thrift.csproj",
"lib/rs/Cargo.toml",
"lib/rs/test/Cargo.toml",
"lib/rs/test/fuzz/Cargo.toml",
"lib/rs/test_recursive/Cargo.toml",
"test/go/go.mod",
"test/netstd/Client/Client.csproj",
"test/netstd/Server/Server.csproj",
"test/rs/Cargo.toml",
"tutorial/netstd/Client/Client.csproj",
"tutorial/netstd/Interfaces/Interfaces.csproj",
"tutorial/netstd/Server/Server.csproj",
"tutorial/rs/Cargo.toml"
],
"dependency_bot_commit_share": 0.14
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "contrib/async-test/Makefile, contrib/transport-sample/Makefile, contrib/zeromq/Makefile, lib/nodejs/examples/Makefile, lib/ocaml/src/Makefile, lib/ocaml/test/Makefile, test/ocaml/Makefile, test/ocaml/client/Makefile, test/ocaml/server/Makefile, test/threads/Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "contrib/async-test/Makefile, contrib/transport-sample/Makefile, contrib/zeromq/Makefile, lib/nodejs/examples/Makefile, lib/ocaml/src/Makefile, lib/ocaml/test/Makefile, test/ocaml/Makefile, test/ocaml/client/Makefile, test/ocaml/server/Makefile, test/threads/Makefile"
}
}
],
"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": ".flake8, .rubocop.yml, eslint.config.mjs, phpstan.neon",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".flake8, .rubocop.yml, eslint.config.mjs, phpstan.neon"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "lib/nodets/test/tsconfig.json, lib/ts/tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "lib/nodets/test/tsconfig.json, lib/ts/tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "Dockerfile, lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Dockerfile, lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "39 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 39,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "14 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 14,
"sampled": 100
}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 4",
"points": 4,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 99,
"inputs": {
"primary_language": "C++",
"largest_source_bytes": 418812,
"source_files_sampled": 1626,
"oversized_source_files": 17
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "C++ (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "C++"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "17/1626 source files over 60KB",
"points": 54.4,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 1626,
"oversized": 17
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"examples"
],
"has_mcp_signal": false,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "examples",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples"
}
}
],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"deps.dev does not index npm:thrift@0.24.0; advisories assessed against the repository dependency graph instead"
],
"report_type": "repository",
"generated_at": "2026-07-22T00:32:36.798291Z",
"schema_version": "0.26.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/a/apache/thrift.svg",
"full_name": "apache/thrift",
"license_state": "standard",
"license_spdx": "Apache-2.0"
}