with\nthe `/m` flag (added for block comments), so `.` matched newlines and a\nsingle `--` comment consumed the rest of the statement, hiding a real\n`LIMIT` that followed it. The command then appended a second `LIMIT`,\nproducing invalid SQL. The line-comment pattern now stops at the newline.", "is_bot": false, "headline": "Strip only the commented line when detecting a LIMIT in rails query", "author_name": "Kenta Ishizaki", "author_login": "55728", "committed_at": "2026-07-12T13:14:00Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "109b3c4c58fb1514718e1190810e3971153596e7", "body": "…ime-inputs\n\nAccept `Date` and numeric inputs in `relative_time_in_words`", "is_bot": false, "headline": "Merge pull request #58092 from 55728/fix-relative-time-in-words-non-t…", "author_name": "fatkodima", "author_login": "fatkodima", "committed_at": "2026-07-12T12:10:39Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "b0955ca345dc18315668a0647f254ccc8f95e976", "body": "Passing a Date or a Numeric raised ArgumentError instead of returning a\ndistance string, unlike distance_of_time_in_words which accepts them.", "is_bot": false, "headline": "Accept Date and numeric inputs in relative_time_in_words", "author_name": "Kenta Ishizaki", "author_login": "55728", "committed_at": "2026-07-12T12:02:17Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "d30eb2413cc0f785a7be21775e495b7ab1f58c90", "body": "…-if-not-exists\n\nHonor `if_not_exists:` in SQLite3 `add_check_constraint` and `add_foreign_key`", "is_bot": false, "headline": "Merge pull request #58091 from 55728/fix-sqlite3-add-check-constraint…", "author_name": "fatkodima", "author_login": "fatkodima", "committed_at": "2026-07-12T11:53:18Z", "body_truncated": false, "is_coding_agent": false }, { "oid": "b1a33e9d2a78f077e4af1069d3ab555a7a03e066", "body": "add_check_constraint and add_foreign_key accept if_not_exists: true to make\nadding a constraint or foreign key that already exists a no-op instead of an\nerror. The abstract adapter (used by MySQL and Trilogy) and the SQLite3\nremove_check_constraint and remove_foreign_key overrides all honor their\nex\n[…]\n:, so the option fell into **options\nunused and a duplicate was added.\n\nThey now return early when the constraint or foreign key already exists,\nmatching the abstract adapter and the remove overrides.", "is_bot": false, "headline": "Honor if_not_exists in SQLite3 add_check_constraint and add_foreign_key", "author_name": "Kenta Ishizaki", "author_login": "55728", "committed_at": "2026-07-12T10:17:59Z", "body_truncated": true, "is_coding_agent": false }, { "oid": "450c547ef823bbe948afbccd58fd887c349b48e3", "body": "Decouple schema loading from the versions formatter", "is_bot": false, "headline": "Merge pull request #58093 from rails/fxn/ruby-schema-load", "author_name": "Xavier Noria", "author_login": "fxn", "committed_at": "2026-07-12T09:42:37Z", "body_truncated": false, "is_coding_agent": false } ], "releases_count": 100, "commits_last_year": 3266, "latest_release_at": "2026-03-24T20:26:02Z", "latest_release_tag": "v8.1.3", "releases_from_tags": false, "days_since_last_push": 0, "active_weeks_last_year": 52, "days_since_latest_release": 119, "mean_days_between_releases": 16.3 }, "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": "rails", "exists": true, "license": "MIT", "keywords": [], "ecosystem": "rubygems", "matches_repo": true, "registry_url": "https://rubygems.org/gems/rails", "is_deprecated": false, "latest_version": "8.1.3", "repository_url": "https://github.com/rails/rails/tree/v8.1.3", "versions_count": 516, "total_downloads": 766141815, "dependents_count": null, "deprecation_note": null, "maintainers_count": null, "monthly_downloads": null, "first_published_at": "2009-07-25T18:01:56Z", "latest_published_at": "2026-03-24T20:27:42.098000Z", "latest_version_yanked": null, "days_since_latest_publish": 119 }, { "name": "@rails/actiontext", "exists": true, "license": "MIT", "keywords": [], "ecosystem": "npm", "matches_repo": true, "registry_url": "https://www.npmjs.com/package/@rails/actiontext", "is_deprecated": false, "latest_version": "8.1.300", "repository_url": "https://github.com/rails/rails", "versions_count": 151, "total_downloads": null, "dependents_count": null, "deprecation_note": null, "maintainers_count": 8, "monthly_downloads": 1611030, "first_published_at": "2019-01-10T15:27:54.243000Z", "latest_published_at": "2026-03-24T20:27:36.704000Z", "latest_version_yanked": null, "days_since_latest_publish": 119 }, { "name": "@rails/actioncable", "exists": true, "license": "MIT", "keywords": [ "websockets", "actioncable", "rails" ], "ecosystem": "npm", "matches_repo": true, "registry_url": "https://www.npmjs.com/package/@rails/actioncable", "is_deprecated": false, "latest_version": "8.1.300", "repository_url": "https://github.com/rails/rails", "versions_count": 151, "total_downloads": null, "dependents_count": null, "deprecation_note": null, "maintainers_count": 8, "monthly_downloads": 7107601, "first_published_at": "2019-01-10T15:31:50.177000Z", "latest_published_at": "2026-03-24T20:27:20.911000Z", "latest_version_yanked": null, "days_since_latest_publish": 119 }, { "name": "railties", "exists": true, "license": "MIT", "keywords": [], "ecosystem": "rubygems", "matches_repo": true, "registry_url": "https://rubygems.org/gems/railties", "is_deprecated": false, "latest_version": "8.1.3", "repository_url": "https://github.com/rails/rails/tree/v8.1.3/railties", "versions_count": 452, "total_downloads": 763536375, "dependents_count": null, "deprecation_note": null, "maintainers_count": null, "monthly_downloads": null, "first_published_at": "2010-02-05T03:02:06.511000Z", "latest_published_at": "2026-03-24T20:27:39.394000Z", "latest_version_yanked": null, "days_since_latest_publish": 119 }, { "name": "@rails/activestorage", "exists": true, "license": "MIT", "keywords": [], "ecosystem": "npm", "matches_repo": true, "registry_url": "https://www.npmjs.com/package/@rails/activestorage", "is_deprecated": false, "latest_version": "8.1.300", "repository_url": "https://github.com/rails/rails", "versions_count": 151, "total_downloads": null, "dependents_count": null, "deprecation_note": null, "maintainers_count": 8, "monthly_downloads": 3915592, "first_published_at": "2019-01-10T15:34:04.565000Z", "latest_published_at": "2026-03-24T20:27:26.803000Z", "latest_version_yanked": null, "days_since_latest_publish": 119 }, { "name": "activejob", "exists": true, "license": "MIT", "keywords": [], "ecosystem": "rubygems", "matches_repo": true, "registry_url": "https://rubygems.org/gems/activejob", "is_deprecated": false, "latest_version": "8.1.3", "repository_url": "https://github.com/rails/rails/tree/v8.1.3/activejob", "versions_count": 266, "total_downloads": 682910108, "dependents_count": null, "deprecation_note": null, "maintainers_count": null, "monthly_downloads": null, "first_published_at": "2014-05-20T18:10:32.961000Z", "latest_published_at": "2026-03-24T20:27:09.681000Z", "latest_version_yanked": null, "days_since_latest_publish": 119 }, { "name": "actionpack", "exists": true, "license": "MIT", "keywords": [], "ecosystem": "rubygems", "matches_repo": true, "registry_url": "https://rubygems.org/gems/actionpack", "is_deprecated": false, "latest_version": "8.1.3", "repository_url": "https://github.com/rails/rails/tree/v8.1.3/actionpack", "versions_count": 515, "total_downloads": 801507633, "dependents_count": null, "deprecation_note": null, "maintainers_count": null, "monthly_downloads": null, "first_published_at": "2009-07-25T18:36:20Z", "latest_published_at": "2026-03-24T20:27:06.634000Z", "latest_version_yanked": null, "days_since_latest_publish": 119 }, { "name": "actiontext", "exists": true, "license": "MIT", "keywords": [], "ecosystem": "rubygems", "matches_repo": true, "registry_url": "https://rubygems.org/gems/actiontext", "is_deprecated": false, "latest_version": "8.1.3", "repository_url": "https://github.com/rails/rails/tree/v8.1.3/actiontext", "versions_count": 150, "total_downloads": 424155745, "dependents_count": null, "deprecation_note": null, "maintainers_count": null, "monthly_downloads": null, "first_published_at": "2019-01-18T21:23:18.544000Z", "latest_published_at": "2026-03-24T20:27:32.815000Z", "latest_version_yanked": null, "days_since_latest_publish": 119 } ] }, "popularity": { "forks": 22363, "stars": 58641, "watchers": 2334, "fork_history": { "days": [ { "date": "2025-06-14", "count": 2 }, { "date": "2025-06-15", "count": 1 }, { "date": "2025-06-16", "count": 1 }, { "date": "2025-06-17", "count": 3 }, { "date": "2025-06-20", "count": 1 }, { "date": "2025-06-22", "count": 1 }, { "date": "2025-06-23", "count": 2 }, { "date": "2025-06-24", "count": 1 }, { "date": "2025-06-26", "count": 1 }, { "date": "2025-06-27", "count": 1 }, { "date": "2025-06-29", "count": 1 }, { "date": "2025-07-01", "count": 3 }, { "date": "2025-07-02", "count": 2 }, { "date": "2025-07-03", "count": 3 }, { "date": "2025-07-05", "count": 1 }, { "date": "2025-07-06", "count": 2 }, { "date": "2025-07-07", "count": 2 }, { "date": "2025-07-08", "count": 2 }, { "date": "2025-07-09", "count": 3 }, { "date": "2025-07-10", "count": 4 }, { "date": "2025-07-11", "count": 2 }, { "date": "2025-07-12", "count": 1 }, { "date": "2025-07-14", "count": 3 }, { "date": "2025-07-15", "count": 3 }, { "date": "2025-07-16", "count": 2 }, { "date": "2025-07-17", "count": 5 }, { "date": "2025-07-18", "count": 6 }, { "date": "2025-07-19", "count": 2 }, { "date": "2025-07-20", "count": 2 }, { "date": "2025-07-21", "count": 5 }, { "date": "2025-07-22", "count": 3 }, { "date": "2025-07-23", "count": 2 }, { "date": "2025-07-24", "count": 2 }, { "date": "2025-07-25", "count": 1 }, { "date": "2025-07-26", "count": 5 }, { "date": "2025-07-27", "count": 1 }, { "date": "2025-07-28", "count": 1 }, { "date": "2025-07-29", "count": 2 }, { "date": "2025-07-30", "count": 1 }, { "date": "2025-07-31", "count": 2 }, { "date": "2025-08-01", "count": 1 }, { "date": "2025-08-02", "count": 1 }, { "date": "2025-08-03", "count": 4 }, { "date": "2025-08-04", "count": 1 }, { "date": "2025-08-05", "count": 3 }, { "date": "2025-08-06", "count": 1 }, { "date": "2025-08-07", "count": 1 }, { "date": "2025-08-08", "count": 4 }, { "date": "2025-08-09", "count": 2 }, { "date": "2025-08-12", "count": 2 }, { "date": "2025-08-13", "count": 2 }, { "date": "2025-08-14", "count": 4 }, { "date": "2025-08-17", "count": 3 }, { "date": "2025-08-18", "count": 3 }, { "date": "2025-08-19", "count": 3 }, { "date": "2025-08-20", "count": 3 }, { "date": "2025-08-21", "count": 2 }, { "date": "2025-08-22", "count": 1 }, { "date": "2025-08-23", "count": 4 }, { "date": "2025-08-25", "count": 4 }, { "date": "2025-08-26", "count": 3 }, { "date": "2025-08-27", "count": 2 }, { "date": "2025-08-28", "count": 3 }, { "date": "2025-08-30", "count": 2 }, { "date": "2025-09-01", "count": 2 }, { "date": "2025-09-02", "count": 1 }, { "date": "2025-09-03", "count": 1 }, { "date": "2025-09-04", "count": 5 }, { "date": "2025-09-05", "count": 5 }, { "date": "2025-09-06", "count": 4 }, { "date": "2025-09-07", "count": 2 }, { "date": "2025-09-08", "count": 1 }, { "date": "2025-09-09", "count": 4 }, { "date": "2025-09-10", "count": 1 }, { "date": "2025-09-12", "count": 2 }, { "date": "2025-09-14", "count": 1 }, { "date": "2025-09-15", "count": 4 }, { "date": "2025-09-16", "count": 1 }, { "date": "2025-09-17", "count": 2 }, { "date": "2025-09-18", "count": 1 }, { "date": "2025-09-19", "count": 1 }, { "date": "2025-09-20", "count": 2 }, { "date": "2025-09-21", "count": 3 }, { "date": "2025-09-22", "count": 3 }, { "date": "2025-09-23", "count": 1 }, { "date": "2025-09-24", "count": 4 }, { "date": "2025-09-25", "count": 9 }, { "date": "2025-09-26", "count": 2 }, { "date": "2025-09-27", "count": 3 }, { "date": "2025-09-29", "count": 4 }, { "date": "2025-10-01", "count": 1 }, { "date": "2025-10-02", "count": 2 }, { "date": "2025-10-03", "count": 1 }, { "date": "2025-10-04", "count": 2 }, { "date": "2025-10-05", "count": 2 }, { "date": "2025-10-06", "count": 1 }, { "date": "2025-10-07", "count": 2 }, { "date": "2025-10-08", "count": 3 }, { "date": "2025-10-10", "count": 2 }, { "date": "2025-10-15", "count": 3 }, { "date": "2025-10-16", "count": 2 }, { "date": "2025-10-17", "count": 4 }, { "date": "2025-10-18", "count": 5 }, { "date": "2025-10-19", "count": 1 }, { "date": "2025-10-20", "count": 2 }, { "date": "2025-10-21", "count": 2 }, { "date": "2025-10-22", "count": 3 }, { "date": "2025-10-23", "count": 5 }, { "date": "2025-10-24", "count": 4 }, { "date": "2025-10-26", "count": 1 }, { "date": "2025-10-28", "count": 1 }, { "date": "2025-10-29", "count": 2 }, { "date": "2025-10-30", "count": 1 }, { "date": "2025-10-31", "count": 2 }, { "date": "2025-11-01", "count": 4 }, { "date": "2025-11-02", "count": 3 }, { "date": "2025-11-03", "count": 4 }, { "date": "2025-11-05", "count": 3 }, { "date": "2025-11-06", "count": 1 }, { "date": "2025-11-07", "count": 2 }, { "date": "2025-11-08", "count": 2 }, { "date": "2025-11-09", "count": 2 }, { "date": "2025-11-10", "count": 1 }, { "date": "2025-11-11", "count": 4 }, { "date": "2025-11-12", "count": 1 }, { "date": "2025-11-13", "count": 3 }, { "date": "2025-11-14", "count": 2 }, { "date": "2025-11-15", "count": 4 }, { "date": "2025-11-16", "count": 3 }, { "date": "2025-11-17", "count": 3 }, { "date": "2025-11-18", "count": 4 }, { "date": "2025-11-20", "count": 2 }, { "date": "2025-11-21", "count": 3 }, { "date": "2025-11-22", "count": 1 }, { "date": "2025-11-23", "count": 2 }, { "date": "2025-11-24", "count": 2 }, { "date": "2025-11-25", "count": 1 }, { "date": "2025-11-26", "count": 1 }, { "date": "2025-11-27", "count": 2 }, { "date": "2025-11-28", "count": 1 }, { "date": "2025-11-29", "count": 4 }, { "date": "2025-11-30", "count": 3 }, { "date": "2025-12-02", "count": 2 }, { "date": "2025-12-03", "count": 2 }, { "date": "2025-12-04", "count": 2 }, { "date": "2025-12-05", "count": 2 }, { "date": "2025-12-06", "count": 1 }, { "date": "2025-12-07", "count": 2 }, { "date": "2025-12-08", "count": 1 }, { "date": "2025-12-11", "count": 3 }, { "date": "2025-12-13", "count": 2 }, { "date": "2025-12-15", "count": 3 }, { "date": "2025-12-16", "count": 3 }, { "date": "2025-12-17", "count": 1 }, { "date": "2025-12-18", "count": 3 }, { "date": "2025-12-19", "count": 3 }, { "date": "2025-12-20", "count": 3 }, { "date": "2025-12-21", "count": 2 }, { "date": "2025-12-22", "count": 2 }, { "date": "2025-12-23", "count": 3 }, { "date": "2025-12-24", "count": 2 }, { "date": "2025-12-25", "count": 2 }, { "date": "2025-12-26", "count": 2 }, { "date": "2025-12-27", "count": 1 }, { "date": "2025-12-28", "count": 1 }, { "date": "2025-12-29", "count": 3 }, { "date": "2025-12-31", "count": 3 }, { "date": "2026-01-01", "count": 2 }, { "date": "2026-01-02", "count": 2 }, { "date": "2026-01-05", "count": 2 }, { "date": "2026-01-06", "count": 2 }, { "date": "2026-01-07", "count": 2 }, { "date": "2026-01-08", "count": 4 }, { "date": "2026-01-09", "count": 2 }, { "date": "2026-01-10", "count": 2 }, { "date": "2026-01-11", "count": 2 }, { "date": "2026-01-12", "count": 7 }, { "date": "2026-01-13", "count": 6 }, { "date": "2026-01-14", "count": 4 }, { "date": "2026-01-15", "count": 1 }, { "date": "2026-01-16", "count": 3 }, { "date": "2026-01-18", "count": 1 }, { "date": "2026-01-20", "count": 4 }, { "date": "2026-01-21", "count": 1 }, { "date": "2026-01-22", "count": 2 }, { "date": "2026-01-23", "count": 3 }, { "date": "2026-01-25", "count": 2 }, { "date": "2026-01-26", "count": 1 }, { "date": "2026-01-27", "count": 2 }, { "date": "2026-01-30", "count": 3 }, { "date": "2026-01-31", "count": 3 }, { "date": "2026-02-01", "count": 1 }, { "date": "2026-02-02", "count": 6 }, { "date": "2026-02-03", "count": 2 }, { "date": "2026-02-04", "count": 2 }, { "date": "2026-02-05", "count": 4 }, { "date": "2026-02-06", "count": 3 }, { "date": "2026-02-07", "count": 3 }, { "date": "2026-02-08", "count": 2 }, { "date": "2026-02-09", "count": 1 }, { "date": "2026-02-10", "count": 2 }, { "date": "2026-02-11", "count": 1 }, { "date": "2026-02-12", "count": 2 }, { "date": "2026-02-13", "count": 1 }, { "date": "2026-02-14", "count": 1 }, { "date": "2026-02-15", "count": 3 }, { "date": "2026-02-16", "count": 1 }, { "date": "2026-02-17", "count": 2 }, { "date": "2026-02-18", "count": 3 }, { "date": "2026-02-19", "count": 3 }, { "date": "2026-02-20", "count": 2 }, { "date": "2026-02-22", "count": 1 }, { "date": "2026-02-23", "count": 1 }, { "date": "2026-02-24", "count": 3 }, { "date": "2026-02-25", "count": 2 }, { "date": "2026-02-26", "count": 5 }, { "date": "2026-02-28", "count": 1 }, { "date": "2026-03-02", "count": 1 }, { "date": "2026-03-03", "count": 1 }, { "date": "2026-03-04", "count": 1 }, { "date": "2026-03-05", "count": 1 }, { "date": "2026-03-06", "count": 2 }, { "date": "2026-03-07", "count": 2 }, { "date": "2026-03-08", "count": 1 }, { "date": "2026-03-09", "count": 1 }, { "date": "2026-03-10", "count": 2 }, { "date": "2026-03-11", "count": 6 }, { "date": "2026-03-12", "count": 4 }, { "date": "2026-03-13", "count": 1 }, { "date": "2026-03-14", "count": 1 }, { "date": "2026-03-15", "count": 2 }, { "date": "2026-03-16", "count": 2 }, { "date": "2026-03-17", "count": 4 }, { "date": "2026-03-18", "count": 1 }, { "date": "2026-03-19", "count": 3 }, { "date": "2026-03-21", "count": 3 }, { "date": "2026-03-22", "count": 2 }, { "date": "2026-03-23", "count": 2 }, { "date": "2026-03-24", "count": 1 }, { "date": "2026-03-25", "count": 5 }, { "date": "2026-03-26", "count": 3 }, { "date": "2026-03-27", "count": 2 }, { "date": "2026-03-29", "count": 1 }, { "date": "2026-03-30", "count": 1 }, { "date": "2026-03-31", "count": 3 }, { "date": "2026-04-01", "count": 2 }, { "date": "2026-04-02", "count": 2 }, { "date": "2026-04-03", "count": 3 }, { "date": "2026-04-04", "count": 4 }, { "date": "2026-04-06", "count": 1 }, { "date": "2026-04-07", "count": 4 }, { "date": "2026-04-08", "count": 1 }, { "date": "2026-04-09", "count": 1 }, { "date": "2026-04-11", "count": 3 }, { "date": "2026-04-13", "count": 4 }, { "date": "2026-04-14", "count": 1 }, { "date": "2026-04-15", "count": 1 }, { "date": "2026-04-16", "count": 2 }, { "date": "2026-04-17", "count": 2 }, { "date": "2026-04-18", "count": 1 }, { "date": "2026-04-19", "count": 3 }, { "date": "2026-04-22", "count": 3 }, { "date": "2026-04-23", "count": 4 }, { "date": "2026-04-24", "count": 3 }, { "date": "2026-04-25", "count": 4 }, { "date": "2026-04-27", "count": 5 }, { "date": "2026-04-28", "count": 1 }, { "date": "2026-04-29", "count": 4 }, { "date": "2026-04-30", "count": 1 }, { "date": "2026-05-01", "count": 1 }, { "date": "2026-05-03", "count": 2 }, { "date": "2026-05-04", "count": 3 }, { "date": "2026-05-05", "count": 1 }, { "date": "2026-05-06", "count": 4 }, { "date": "2026-05-07", "count": 2 }, { "date": "2026-05-08", "count": 3 }, { "date": "2026-05-09", "count": 2 }, { "date": "2026-05-10", "count": 3 }, { "date": "2026-05-11", "count": 5 }, { "date": "2026-05-13", "count": 3 }, { "date": "2026-05-14", "count": 2 }, { "date": "2026-05-18", "count": 3 }, { "date": "2026-05-20", "count": 3 }, { "date": "2026-05-21", "count": 3 }, { "date": "2026-05-22", "count": 1 }, { "date": "2026-05-23", "count": 3 }, { "date": "2026-05-26", "count": 1 }, { "date": "2026-05-27", "count": 3 }, { "date": "2026-05-28", "count": 4 }, { "date": "2026-05-29", "count": 2 }, { "date": "2026-05-30", "count": 3 }, { "date": "2026-05-31", "count": 1 }, { "date": "2026-06-01", "count": 1 }, { "date": "2026-06-03", "count": 1 }, { "date": "2026-06-05", "count": 3 }, { "date": "2026-06-06", "count": 2 }, { "date": "2026-06-07", "count": 2 }, { "date": "2026-06-08", "count": 1 }, { "date": "2026-06-09", "count": 1 }, { "date": "2026-06-10", "count": 2 }, { "date": "2026-06-11", "count": 3 }, { "date": "2026-06-12", "count": 1 }, { "date": "2026-06-13", "count": 2 }, { "date": "2026-06-14", "count": 2 }, { "date": "2026-06-15", "count": 4 }, { "date": "2026-06-16", "count": 1 }, { "date": "2026-06-17", "count": 1 }, { "date": "2026-06-19", "count": 3 }, { "date": "2026-06-21", "count": 1 }, { "date": "2026-06-22", "count": 1 }, { "date": "2026-06-23", "count": 2 }, { "date": "2026-06-24", "count": 3 }, { "date": "2026-06-26", "count": 1 }, { "date": "2026-06-27", "count": 2 }, { "date": "2026-06-28", "count": 3 }, { "date": "2026-06-29", "count": 2 }, { "date": "2026-06-30", "count": 24 }, { "date": "2026-07-01", "count": 10 }, { "date": "2026-07-02", "count": 11 }, { "date": "2026-07-03", "count": 12 }, { "date": "2026-07-04", "count": 22 }, { "date": "2026-07-05", "count": 15 }, { "date": "2026-07-06", "count": 6 }, { "date": "2026-07-07", "count": 12 }, { "date": "2026-07-08", "count": 4 }, { "date": "2026-07-09", "count": 11 }, { "date": "2026-07-10", "count": 33 }, { "date": "2026-07-11", "count": 20 }, { "date": "2026-07-12", "count": 5 }, { "date": "2026-07-13", "count": 9 }, { "date": "2026-07-14", "count": 8 }, { "date": "2026-07-15", "count": 5 }, { "date": "2026-07-16", "count": 2 }, { "date": "2026-07-17", "count": 3 }, { "date": "2026-07-18", "count": 17 }, { "date": "2026-07-19", "count": 7 }, { "date": "2026-07-20", "count": 8 }, { "date": "2026-07-21", "count": 21 } ], "complete": false, "collected": 1000, "total_forks": 22363 }, "star_history": { "days": [ { "date": "2025-12-23", "count": 5 }, { "date": "2025-12-24", "count": 2 }, { "date": "2025-12-25", "count": 3 }, { "date": "2025-12-26", "count": 5 }, { "date": "2025-12-27", "count": 4 }, { "date": "2025-12-28", "count": 5 }, { "date": "2025-12-29", "count": 7 }, { "date": "2025-12-30", "count": 6 }, { "date": "2025-12-31", "count": 5 }, { "date": "2026-01-01", "count": 4 }, { "date": "2026-01-02", "count": 5 }, { "date": "2026-01-03", "count": 3 }, { "date": "2026-01-04", "count": 4 }, { "date": "2026-01-05", "count": 8 }, { "date": "2026-01-06", "count": 14 }, { "date": "2026-01-07", "count": 5 }, { "date": "2026-01-08", "count": 10 }, { "date": "2026-01-09", "count": 5 }, { "date": "2026-01-10", "count": 1 }, { "date": "2026-01-11", "count": 5 }, { "date": "2026-01-12", "count": 3 }, { "date": "2026-01-13", "count": 5 }, { "date": "2026-01-14", "count": 5 }, { "date": "2026-01-15", "count": 3 }, { "date": "2026-01-16", "count": 5 }, { "date": "2026-01-17", "count": 3 }, { "date": "2026-01-18", "count": 6 }, { "date": "2026-01-19", "count": 7 }, { "date": "2026-01-20", "count": 4 }, { "date": "2026-01-21", "count": 2 }, { "date": "2026-01-22", "count": 5 }, { "date": "2026-01-23", "count": 3 }, { "date": "2026-01-24", "count": 4 }, { "date": "2026-01-25", "count": 3 }, { "date": "2026-01-26", "count": 5 }, { "date": "2026-01-27", "count": 6 }, { "date": "2026-01-28", "count": 5 }, { "date": "2026-01-29", "count": 6 }, { "date": "2026-01-30", "count": 4 }, { "date": "2026-01-31", "count": 5 }, { "date": "2026-02-01", "count": 4 }, { "date": "2026-02-02", "count": 4 }, { "date": "2026-02-03", "count": 6 }, { "date": "2026-02-04", "count": 5 }, { "date": "2026-02-05", "count": 3 }, { "date": "2026-02-06", "count": 1 }, { "date": "2026-02-07", "count": 7 }, { "date": "2026-02-08", "count": 7 }, { "date": "2026-02-09", "count": 2 }, { "date": "2026-02-10", "count": 5 }, { "date": "2026-02-11", "count": 6 }, { "date": "2026-02-12", "count": 6 }, { "date": "2026-02-13", "count": 7 }, { "date": "2026-02-14", "count": 1 }, { "date": "2026-02-15", "count": 2 }, { "date": "2026-02-16", "count": 1 }, { "date": "2026-02-17", "count": 5 }, { "date": "2026-02-18", "count": 3 }, { "date": "2026-02-19", "count": 9 }, { "date": "2026-02-20", "count": 7 }, { "date": "2026-02-21", "count": 3 }, { "date": "2026-02-22", "count": 3 }, { "date": "2026-02-23", "count": 2 }, { "date": "2026-02-24", "count": 2 }, { "date": "2026-02-25", "count": 7 }, { "date": "2026-02-26", "count": 4 }, { "date": "2026-02-27", "count": 4 }, { "date": "2026-02-28", "count": 7 }, { "date": "2026-03-01", "count": 2 }, { "date": "2026-03-02", "count": 5 }, { "date": "2026-03-03", "count": 1 }, { "date": "2026-03-04", "count": 5 }, { "date": "2026-03-05", "count": 8 }, { "date": "2026-03-06", "count": 3 }, { "date": "2026-03-07", "count": 3 }, { "date": "2026-03-08", "count": 2 }, { "date": "2026-03-09", "count": 2 }, { "date": "2026-03-10", "count": 6 }, { "date": "2026-03-11", "count": 3 }, { "date": "2026-03-12", "count": 2 }, { "date": "2026-03-13", "count": 4 }, { "date": "2026-03-14", "count": 2 }, { "date": "2026-03-15", "count": 2 }, { "date": "2026-03-16", "count": 8 }, { "date": "2026-03-17", "count": 4 }, { "date": "2026-03-18", "count": 4 }, { "date": "2026-03-19", "count": 5 }, { "date": "2026-03-20", "count": 2 }, { "date": "2026-03-21", "count": 4 }, { "date": "2026-03-22", "count": 7 }, { "date": "2026-03-23", "count": 3 }, { "date": "2026-03-24", "count": 11 }, { "date": "2026-03-25", "count": 10 }, { "date": "2026-03-26", "count": 5 }, { "date": "2026-03-27", "count": 5 }, { "date": "2026-03-28", "count": 2 }, { "date": "2026-03-29", "count": 2 }, { "date": "2026-03-30", "count": 1 }, { "date": "2026-03-31", "count": 5 }, { "date": "2026-04-01", "count": 5 }, { "date": "2026-04-02", "count": 2 }, { "date": "2026-04-03", "count": 4 }, { "date": "2026-04-04", "count": 3 }, { "date": "2026-04-05", "count": 2 }, { "date": "2026-04-06", "count": 3 }, { "date": "2026-04-07", "count": 3 }, { "date": "2026-04-08", "count": 1 }, { "date": "2026-04-09", "count": 7 }, { "date": "2026-04-10", "count": 6 }, { "date": "2026-04-11", "count": 4 }, { "date": "2026-04-12", "count": 4 }, { "date": "2026-04-13", "count": 7 }, { "date": "2026-04-14", "count": 3 }, { "date": "2026-04-15", "count": 8 }, { "date": "2026-04-16", "count": 5 }, { "date": "2026-04-17", "count": 4 }, { "date": "2026-04-18", "count": 1 }, { "date": "2026-04-19", "count": 4 }, { "date": "2026-04-20", "count": 6 }, { "date": "2026-04-21", "count": 1 }, { "date": "2026-04-22", "count": 3 }, { "date": "2026-04-23", "count": 7 }, { "date": "2026-04-24", "count": 7 }, { "date": "2026-04-25", "count": 7 }, { "date": "2026-04-26", "count": 6 }, { "date": "2026-04-27", "count": 2 }, { "date": "2026-04-28", "count": 9 }, { "date": "2026-04-29", "count": 10 }, { "date": "2026-04-30", "count": 4 }, { "date": "2026-05-01", "count": 5 }, { "date": "2026-05-02", "count": 7 }, { "date": "2026-05-03", "count": 4 }, { "date": "2026-05-04", "count": 3 }, { "date": "2026-05-05", "count": 6 }, { "date": "2026-05-06", "count": 3 }, { "date": "2026-05-07", "count": 10 }, { "date": "2026-05-08", "count": 5 }, { "date": "2026-05-09", "count": 2 }, { "date": "2026-05-10", "count": 3 }, { "date": "2026-05-11", "count": 2 }, { "date": "2026-05-12", "count": 1 }, { "date": "2026-05-13", "count": 1 }, { "date": "2026-05-14", "count": 3 }, { "date": "2026-05-15", "count": 4 }, { "date": "2026-05-16", "count": 5 }, { "date": "2026-05-17", "count": 5 }, { "date": "2026-05-18", "count": 5 }, { "date": "2026-05-19", "count": 6 }, { "date": "2026-05-20", "count": 10 }, { "date": "2026-05-21", "count": 5 }, { "date": "2026-05-22", "count": 4 }, { "date": "2026-05-23", "count": 2 }, { "date": "2026-05-24", "count": 8 }, { "date": "2026-05-25", "count": 11 }, { "date": "2026-05-26", "count": 7 }, { "date": "2026-05-27", "count": 2 }, { "date": "2026-05-28", "count": 6 }, { "date": "2026-05-29", "count": 5 }, { "date": "2026-05-30", "count": 10 }, { "date": "2026-05-31", "count": 5 }, { "date": "2026-06-01", "count": 4 }, { "date": "2026-06-02", "count": 3 }, { "date": "2026-06-03", "count": 3 }, { "date": "2026-06-04", "count": 5 }, { "date": "2026-06-05", "count": 26 }, { "date": "2026-06-06", "count": 5 }, { "date": "2026-06-07", "count": 6 }, { "date": "2026-06-08", "count": 2 }, { "date": "2026-06-10", "count": 24 }, { "date": "2026-06-11", "count": 4 }, { "date": "2026-06-12", "count": 3 }, { "date": "2026-06-13", "count": 6 }, { "date": "2026-06-14", "count": 6 }, { "date": "2026-06-15", "count": 2 }, { "date": "2026-06-16", "count": 6 }, { "date": "2026-06-17", "count": 6 }, { "date": "2026-06-18", "count": 2 }, { "date": "2026-06-19", "count": 2 }, { "date": "2026-06-20", "count": 2 }, { "date": "2026-06-21", "count": 2 }, { "date": "2026-06-22", "count": 4 }, { "date": "2026-06-23", "count": 1 }, { "date": "2026-06-24", "count": 12 }, { "date": "2026-06-25", "count": 3 }, { "date": "2026-06-26", "count": 4 }, { "date": "2026-06-27", "count": 8 }, { "date": "2026-06-28", "count": 1 }, { "date": "2026-06-29", "count": 1 }, { "date": "2026-06-30", "count": 6 }, { "date": "2026-07-01", "count": 3 }, { "date": "2026-07-02", "count": 7 }, { "date": "2026-07-03", "count": 3 }, { "date": "2026-07-04", "count": 5 }, { "date": "2026-07-05", "count": 4 }, { "date": "2026-07-06", "count": 6 }, { "date": "2026-07-07", "count": 5 }, { "date": "2026-07-08", "count": 4 }, { "date": "2026-07-09", "count": 7 }, { "date": "2026-07-10", "count": 4 }, { "date": "2026-07-11", "count": 3 }, { "date": "2026-07-13", "count": 4 }, { "date": "2026-07-14", "count": 5 }, { "date": "2026-07-15", "count": 5 }, { "date": "2026-07-16", "count": 5 }, { "date": "2026-07-17", "count": 2 }, { "date": "2026-07-18", "count": 5 }, { "date": "2026-07-19", "count": 7 }, { "date": "2026-07-20", "count": 9 }, { "date": "2026-07-21", "count": 9 } ], "complete": false, "collected": 1000, "total_stars": 58641 }, "open_issues_and_prs": 1555 }, "ai_readiness": { "has_nix": false, "example_dirs": [ "examples" ], "has_llms_txt": false, "has_dockerfile": true, "has_mcp_signal": false, "bootstrap_files": [], "api_schema_files": [], "has_devcontainer": true, "typecheck_configs": [], "toolchain_manifests": [], "largest_source_bytes": 449565, "source_files_sampled": 3497, "oversized_source_files": 39, "agent_instruction_files": [ "AGENTS.md" ], "agent_instruction_max_bytes": 6905 }, "dependencies": { "manifests": [ "Gemfile", "actioncable/package.json", "actiontext/package.json", "activestorage/package.json", "package.json" ], "advisories": { "error": null, "scope": "published_package", "source": "osv", "findings": [], "collected": true, "malicious": [], "truncated": false, "by_severity": {}, "advisory_count": 0, "affected_count": 0, "assessed_count": 2, "malicious_count": 0, "assessed_package": "npm:@rails/actiontext@8.1.300", "unassessed_count": 0, "direct_affected_count": 0 }, "ecosystems": [ "npm", "rubygems" ], "dependencies": [ { "name": "minitest", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 6.0" }, { "name": "minitest-mock", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "releaser", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "sprockets-rails", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 2.0.0" }, { "name": "propshaft", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 0.1.7" }, { "name": "capybara", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 3.39" }, { "name": "selenium-webdriver", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 4.20.0" }, { "name": "rack-cache", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 1.2" }, { "name": "stimulus-rails", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "turbo-rails", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "jsbundling-rails", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "cssbundling-rails", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "importmap-rails", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 1.2.3" }, { "name": "tailwindcss-rails", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "dartsass-rails", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "solid_cache", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "solid_queue", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "solid_cable", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "kamal", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 2.1.0" }, { "name": "thruster", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "bcrypt", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 3.1.11" }, { "name": "argon2", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 2.3.2" }, { "name": "terser", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 1.1.4" }, { "name": "json", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 2.0.0" }, { "name": "uri", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 0.13.1" }, { "name": "prism", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "rubocop", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "1.79.2" }, { "name": "rubocop-minitest", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "rubocop-packaging", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "rubocop-performance", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "rubocop-rails", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "rubocop-md", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "rubocop-rails-omakase", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "mdl", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "!= 0.13.0" }, { "name": "sdoc", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 2.6.4" }, { "name": "redcarpet", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 3.6.1" }, { "name": "w3c_validators", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 1.3.6" }, { "name": "rouge", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "rubyzip", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 2.0" }, { "name": "dalli", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "redis-client", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 0.28.0" }, { "name": "listen", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 3.3" }, { "name": "libxml-ruby", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "connection_pool", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "rexml", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "msgpack", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 1.7.0" }, { "name": "bootsnap", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 1.4.4" }, { "name": "webrick", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "jbuilder", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "web-console", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "rack", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "rack", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "useragent", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "resque", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "resque-scheduler", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "queue_classic", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 4.0.0" }, { "name": "sneakers", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "backburner", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "puma", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 5.0.3" }, { "name": "redis", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 4.0.1" }, { "name": "redis-namespace", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "websocket-client-simple", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "aws-sdk-s3", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "google-cloud-storage", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 1.11" }, { "name": "image_processing", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 2.0" }, { "name": "ruby-vips", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 2.3" }, { "name": "mini_magick", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 5.0" }, { "name": "aws-sdk-sns", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "webmock", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "brakeman", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "bundler-audit", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "nokogiri", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 1.8.1" }, { "name": "sqlite3", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 2.1" }, { "name": "pg", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 1.3" }, { "name": "mysql2", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": "~> 0.5" }, { "name": "trilogy", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 2.7.0" }, { "name": "tzinfo-data", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "wdm", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": ">= 0.1.0" }, { "name": "launchy", "manifest": "Gemfile", "ecosystem": "rubygems", "version_constraint": null }, { "name": "@rails/activestorage", "manifest": "actiontext/package.json", "ecosystem": "npm", "version_constraint": ">= 8.1.0-alpha" }, { "name": "spark-md5", "manifest": "activestorage/package.json", "ecosystem": "npm", "version_constraint": "^3.0.1" }, { "name": "js-sha256", "manifest": "activestorage/package.json", "ecosystem": "npm", "version_constraint": "^0.9.0" } ], "all_dependencies": { "error": null, "source": "github-sbom", "packages": [ { "name": "@rails/activestorage", "direct": true, "version": "8.1.0-beta1", "ecosystem": "npm" }, { "name": "@rails/activestorage", "direct": true, "version": ">= 8.1.0-alpha", "ecosystem": "npm" }, { "name": "js-sha256", "direct": true, "version": "0.9.0", "ecosystem": "npm" }, { "name": "js-sha256", "direct": true, "version": "^0.9.0", "ecosystem": "npm" }, { "name": "spark-md5", "direct": true, "version": "3.0.2", "ecosystem": "npm" }, { "name": "spark-md5", "direct": true, "version": "^3.0.1", "ecosystem": "npm" }, { "name": "argon2", "direct": true, "version": "2.3.2", "ecosystem": "rubygems" }, { "name": "aws-sdk-s3", "direct": true, "version": "1.197.0", "ecosystem": "rubygems" }, { "name": "aws-sdk-sns", "direct": true, "version": "1.92.0", "ecosystem": "rubygems" }, { "name": "backburner", "direct": true, "version": "1.7.0", "ecosystem": "rubygems" }, { "name": "bcrypt", "direct": true, "version": "3.1.20", "ecosystem": "rubygems" }, { "name": "bootsnap", "direct": true, "version": null, "ecosystem": "rubygems" }, { "name": "bootsnap", "direct": true, "version": "1.18.4", "ecosystem": "rubygems" }, { "name": "brakeman", "direct": true, "version": "7.0.0", "ecosystem": "rubygems" }, { "name": "bundler-audit", "direct": true, "version": "0.9.3", "ecosystem": "rubygems" }, { "name": "capybara", "direct": true, "version": null, "ecosystem": "rubygems" }, { "name": "capybara", "direct": true, "version": "3.40.0", "ecosystem": "rubygems" }, { "name": "connection_pool", "direct": true, "version": null, "ecosystem": "rubygems" }, { "name": "connection_pool", "direct": true, "version": "3.0.2", "ecosystem": "rubygems" }, { "name": "cssbundling-rails", "direct": true, "version": "1.4.1", "ecosystem": "rubygems" }, { "name": "dalli", "direct": true, "version": "5.0.0", "ecosystem": "rubygems" }, { "name": "dartsass-rails", "direct": true, "version": "0.5.1", "ecosystem": "rubygems" }, { "name": "google-cloud-storage", "direct": true, "version": "1.54.0", "ecosystem": "rubygems" }, { "name": "image_processing", "direct": true, "version": "2.0.1", "ecosystem": "rubygems" }, { "name": "importmap-rails", "direct": true, "version": "2.1.0", "ecosystem": "rubygems" }, { "name": "jbuilder", "direct": true, "version": "2.13.0", "ecosystem": "rubygems" }, { "name": "jsbundling-rails", "direct": true, "version": "1.3.1", "ecosystem": "rubygems" }, { "name": "json", "direct": true, "version": null, "ecosystem": "rubygems" }, { "name": "json", "direct": true, "version": "2.20.0", "ecosystem": "rubygems" }, { "name": "kamal", "direct": true, "version": "2.4.0", "ecosystem": "rubygems" }, { "name": "launchy", "direct": true, "version": "3.0.1", "ecosystem": "rubygems" }, { "name": "libxml-ruby", "direct": true, "version": "6.0.0", "ecosystem": "rubygems" }, { "name": "listen", "direct": true, "version": null, "ecosystem": "rubygems" }, { "name": "listen", "direct": true, "version": "3.9.0", "ecosystem": "rubygems" }, { "name": "mdl", "direct": true, "version": "0.12.0", "ecosystem": "rubygems" }, { "name": "mini_magick", "direct": true, "version": "5.3.1", "ecosystem": "rubygems" }, { "name": "minitest", "direct": true, "version": null, "ecosystem": "rubygems" }, { "name": "minitest", "direct": true, "version": "5.25.1", "ecosystem": "rubygems" }, { "name": "minitest", "direct": true, "version": "6.0.6", "ecosystem": "rubygems" }, { "name": "minitest-mock", "direct": true, "version": "5.27.0", "ecosystem": "rubygems" }, { "name": "msgpack", "direct": true, "version": "1.7.5", "ecosystem": "rubygems" }, { "name": "mysql2", "direct": true, "version": "0.5.6", "ecosystem": "rubygems" }, { "name": "nokogiri", "direct": true, "version": null, "ecosystem": "rubygems" }, { "name": "nokogiri", "direct": true, "version": "1.19.1", "ecosystem": "rubygems" }, { "name": "pg", "direct": true, "version": "1.6.3", "ecosystem": "rubygems" }, { "name": "prism", "direct": true, "version": null, "ecosystem": "rubygems" }, { "name": "prism", "direct": true, "version": "1.7.0", "ecosystem": "rubygems" }, { "name": "propshaft", "direct": true, "version": "1.3.1", "ecosystem": "rubygems" }, { "name": "puma", "direct": true, "version": "6.5.0", "ecosystem": "rubygems" }, { "name": "queue_classic", "direct": true, "version": "4.0.0", "ecosystem": "rubygems" }, { "name": "rack", "direct": true, "version": null, "ecosystem": "rubygems" }, { "name": "rack", "direct": true, "version": "3.2.1", "ecosystem": "rubygems" }, { "name": "rack-cache", "direct": true, "version": "1.17.0", "ecosystem": "rubygems" }, { "name": "redcarpet", "direct": true, "version": "3.6.1", "ecosystem": "rubygems" }, { "name": "redis", "direct": true, "version": "5.4.1", "ecosystem": "rubygems" }, { "name": "redis-client", "direct": true, "version": "0.28.0", "ecosystem": "rubygems" }, { "name": "redis-namespace", "direct": true, "version": "1.11.0", "ecosystem": "rubygems" }, { "name": "resque", "direct": true, "version": "2.7.0", "ecosystem": "rubygems" }, { "name": "resque-scheduler", "direct": true, "version": "4.11.0", "ecosystem": "rubygems" }, { "name": "rexml", "direct": true, "version": "3.4.0", "ecosystem": "rubygems" }, { "name": "rouge", "direct": true, "version": "4.6.1", "ecosystem": "rubygems" }, { "name": "rubocop", "direct": true, "version": "1.79.2", "ecosystem": "rubygems" }, { "name": "rubocop-md", "direct": true, "version": "2.0.1", "ecosystem": "rubygems" }, { "name": "rubocop-minitest", "direct": true, "version": "0.37.1", "ecosystem": "rubygems" }, { "name": "rubocop-packaging", "direct": true, "version": "0.6.0", "ecosystem": "rubygems" }, { "name": "rubocop-performance", "direct": true, "version": "1.24.0", "ecosystem": "rubygems" }, { "name": "rubocop-rails", "direct": true, "version": "2.30.3", "ecosystem": "rubygems" }, { "name": "rubocop-rails-omakase", "direct": true, "version": "1.0.0", "ecosystem": "rubygems" }, { "name": "ruby-vips", "direct": true, "version": "2.3.0", "ecosystem": "rubygems" }, { "name": "rubyzip", "direct": true, "version": "2.4.1", "ecosystem": "rubygems" }, { "name": "sdoc", "direct": true, "version": "2.6.5", "ecosystem": "rubygems" }, { "name": "selenium-webdriver", "direct": true, "version": null, "ecosystem": "rubygems" }, { "name": "selenium-webdriver", "direct": true, "version": "4.32.0", "ecosystem": "rubygems" }, { "name": "sneakers", "direct": true, "version": "2.11.0", "ecosystem": "rubygems" }, { "name": "solid_cable", "direct": true, "version": "3.0.5", "ecosystem": "rubygems" }, { "name": "solid_cache", "direct": true, "version": "1.0.6", "ecosystem": "rubygems" }, { "name": "solid_queue", "direct": true, "version": "1.1.2", "ecosystem": "rubygems" }, { "name": "sprockets-rails", "direct": true, "version": "3.5.2", "ecosystem": "rubygems" }, { "name": "sqlite3", "direct": true, "version": "2.5.0", "ecosystem": "rubygems" }, { "name": "stimulus-rails", "direct": true, "version": "1.3.4", "ecosystem": "rubygems" }, { "name": "tailwindcss-rails", "direct": true, "version": "3.2.0", "ecosystem": "rubygems" }, { "name": "terser", "direct": true, "version": "1.2.4", "ecosystem": "rubygems" }, { "name": "thruster", "direct": true, "version": "0.1.16", "ecosystem": "rubygems" }, { "name": "trilogy", "direct": true, "version": "2.11.0", "ecosystem": "rubygems" }, { "name": "turbo-rails", "direct": true, "version": "2.0.11", "ecosystem": "rubygems" }, { "name": "tzinfo-data", "direct": true, "version": null, "ecosystem": "rubygems" }, { "name": "uri", "direct": true, "version": null, "ecosystem": "rubygems" }, { "name": "uri", "direct": true, "version": "1.0.3", "ecosystem": "rubygems" }, { "name": "uri", "direct": true, "version": "1.0.4", "ecosystem": "rubygems" }, { "name": "useragent", "direct": true, "version": null, "ecosystem": "rubygems" }, { "name": "useragent", "direct": true, "version": "0.16.11", "ecosystem": "rubygems" }, { "name": "w3c_validators", "direct": true, "version": "1.3.7", "ecosystem": "rubygems" }, { "name": "web-console", "direct": true, "version": null, "ecosystem": "rubygems" }, { "name": "web-console", "direct": true, "version": "4.2.1", "ecosystem": "rubygems" }, { "name": "webmock", "direct": true, "version": "3.25.0", "ecosystem": "rubygems" }, { "name": "webrick", "direct": true, "version": "1.9.1", "ecosystem": "rubygems" }, { "name": "websocket-client-simple", "direct": true, "version": "0.9.0", "ecosystem": "rubygems" }, { "name": "@babel/code-frame", "direct": false, "version": "7.22.5", "ecosystem": "npm" }, { "name": "@babel/helper-validator-identifier", "direct": false, "version": "7.22.5", "ecosystem": "npm" }, { "name": "@babel/highlight", "direct": false, "version": "7.22.5", "ecosystem": "npm" }, { "name": "@eggjs/yauzl", "direct": false, "version": "2.11.0", "ecosystem": "npm" }, { "name": "@eslint-community/eslint-utils", "direct": false, "version": "4.9.0", "ecosystem": "npm" }, { "name": "@eslint-community/regexpp", "direct": false, "version": "4.12.1", "ecosystem": "npm" }, { "name": "@eslint/config-array", "direct": false, "version": "0.21.0", "ecosystem": "npm" }, { "name": "@eslint/config-helpers", "direct": false, "version": "0.4.0", "ecosystem": "npm" }, { "name": "@eslint/core", "direct": false, "version": "0.16.0", "ecosystem": "npm" }, { "name": "@eslint/eslintrc", "direct": false, "version": "3.3.1", "ecosystem": "npm" }, { "name": "@eslint/js", "direct": false, "version": "9.37.0", "ecosystem": "npm" }, { "name": "@eslint/js", "direct": false, "version": "^9.24.0", "ecosystem": "npm" }, { "name": "@eslint/object-schema", "direct": false, "version": "2.1.6", "ecosystem": "npm" }, { "name": "@eslint/plugin-kit", "direct": false, "version": "0.4.0", "ecosystem": "npm" }, { "name": "@hapi/bourne", "direct": false, "version": "3.0.0", "ecosystem": "npm" }, { "name": "@humanfs/core", "direct": false, "version": "0.19.1", "ecosystem": "npm" }, { "name": "@humanfs/node", "direct": false, "version": "0.16.7", "ecosystem": "npm" }, { "name": "@humanwhocodes/module-importer", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "@humanwhocodes/retry", "direct": false, "version": "0.4.3", "ecosystem": "npm" }, { "name": "@isaacs/cliui", "direct": false, "version": "8.0.2", "ecosystem": "npm" }, { "name": "@jridgewell/resolve-uri", "direct": false, "version": "3.1.2", "ecosystem": "npm" }, { "name": "@jridgewell/source-map", "direct": false, "version": "0.3.4", "ecosystem": "npm" }, { "name": "@jridgewell/sourcemap-codec", "direct": false, "version": "1.5.5", "ecosystem": "npm" }, { "name": "@jridgewell/trace-mapping", "direct": false, "version": "0.3.31", "ecosystem": "npm" }, { "name": "@nodable/entities", "direct": false, "version": "2.2.0", "ecosystem": "npm" }, { "name": "@nodelib/fs.scandir", "direct": false, "version": "2.1.5", "ecosystem": "npm" }, { "name": "@nodelib/fs.stat", "direct": false, "version": "2.0.5", "ecosystem": "npm" }, { "name": "@nodelib/fs.walk", "direct": false, "version": "1.2.8", "ecosystem": "npm" }, { "name": "@pkgjs/parseargs", "direct": false, "version": "0.11.0", "ecosystem": "npm" }, { "name": "@promptbook/utils", "direct": false, "version": "0.69.5", "ecosystem": "npm" }, { "name": "@puppeteer/browsers", "direct": false, "version": "2.13.2", "ecosystem": "npm" }, { "name": "@rollup/plugin-commonjs", "direct": false, "version": "19.0.2", "ecosystem": "npm" }, { "name": "@rollup/plugin-commonjs", "direct": false, "version": "^19.0.1", "ecosystem": "npm" }, { "name": "@rollup/plugin-node-resolve", "direct": false, "version": "11.2.1", "ecosystem": "npm" }, { "name": "@rollup/plugin-node-resolve", "direct": false, "version": "15.3.1", "ecosystem": "npm" }, { "name": "@rollup/plugin-node-resolve", "direct": false, "version": "^11.0.1", "ecosystem": "npm" }, { "name": "@rollup/pluginutils", "direct": false, "version": "3.1.0", "ecosystem": "npm" }, { "name": "@rollup/pluginutils", "direct": false, "version": "5.4.0", "ecosystem": "npm" }, { "name": "@rollup/rollup-android-arm-eabi", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-android-arm64", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-darwin-arm64", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-darwin-x64", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-freebsd-arm64", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-freebsd-x64", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-linux-arm-gnueabihf", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-linux-arm-musleabihf", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-linux-arm64-gnu", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-linux-arm64-musl", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-linux-loong64-gnu", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-linux-loong64-musl", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-linux-ppc64-gnu", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-linux-ppc64-musl", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-linux-riscv64-gnu", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-linux-riscv64-musl", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-linux-s390x-gnu", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-linux-x64-gnu", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-linux-x64-musl", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-openbsd-x64", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-openharmony-arm64", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-win32-arm64-msvc", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-win32-ia32-msvc", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-win32-x64-gnu", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rollup/rollup-win32-x64-msvc", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "@rtsao/scc", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "@sindresorhus/is", "direct": false, "version": "4.6.0", "ecosystem": "npm" }, { "name": "@szmarczak/http-timer", "direct": false, "version": "4.0.6", "ecosystem": "npm" }, { "name": "@tootallnate/quickjs-emscripten", "direct": false, "version": "0.23.0", "ecosystem": "npm" }, { "name": "@types/accepts", "direct": false, "version": "1.3.7", "ecosystem": "npm" }, { "name": "@types/babel__code-frame", "direct": false, "version": "7.27.0", "ecosystem": "npm" }, { "name": "@types/body-parser", "direct": false, "version": "1.19.6", "ecosystem": "npm" }, { "name": "@types/cacheable-request", "direct": false, "version": "6.0.3", "ecosystem": "npm" }, { "name": "@types/co-body", "direct": false, "version": "6.1.3", "ecosystem": "npm" }, { "name": "@types/command-line-args", "direct": false, "version": "5.2.3", "ecosystem": "npm" }, { "name": "@types/connect", "direct": false, "version": "3.4.38", "ecosystem": "npm" }, { "name": "@types/content-disposition", "direct": false, "version": "0.5.9", "ecosystem": "npm" }, { "name": "@types/convert-source-map", "direct": false, "version": "2.0.3", "ecosystem": "npm" }, { "name": "@types/cookies", "direct": false, "version": "0.9.2", "ecosystem": "npm" }, { "name": "@types/debounce", "direct": false, "version": "1.2.4", "ecosystem": "npm" }, { "name": "@types/estree", "direct": false, "version": "0.0.39", "ecosystem": "npm" }, { "name": "@types/estree", "direct": false, "version": "1.0.8", "ecosystem": "npm" }, { "name": "@types/estree", "direct": false, "version": "1.0.9", "ecosystem": "npm" }, { "name": "@types/express", "direct": false, "version": "5.0.6", "ecosystem": "npm" }, { "name": "@types/express-serve-static-core", "direct": false, "version": "5.1.1", "ecosystem": "npm" }, { "name": "@types/http-assert", "direct": false, "version": "1.5.6", "ecosystem": "npm" }, { "name": "@types/http-cache-semantics", "direct": false, "version": "4.2.0", "ecosystem": "npm" }, { "name": "@types/http-errors", "direct": false, "version": "2.0.5", "ecosystem": "npm" }, { "name": "@types/istanbul-lib-coverage", "direct": false, "version": "2.0.6", "ecosystem": "npm" }, { "name": "@types/istanbul-lib-report", "direct": false, "version": "3.0.3", "ecosystem": "npm" }, { "name": "@types/istanbul-reports", "direct": false, "version": "3.0.4", "ecosystem": "npm" }, { "name": "@types/json-schema", "direct": false, "version": "7.0.15", "ecosystem": "npm" }, { "name": "@types/json5", "direct": false, "version": "0.0.29", "ecosystem": "npm" }, { "name": "@types/keygrip", "direct": false, "version": "1.0.6", "ecosystem": "npm" }, { "name": "@types/keyv", "direct": false, "version": "3.1.4", "ecosystem": "npm" }, { "name": "@types/koa", "direct": false, "version": "2.15.2", "ecosystem": "npm" }, { "name": "@types/koa", "direct": false, "version": "3.0.3", "ecosystem": "npm" }, { "name": "@types/koa-compose", "direct": false, "version": "3.2.9", "ecosystem": "npm" }, { "name": "@types/node", "direct": false, "version": "20.19.43", "ecosystem": "npm" }, { "name": "@types/node", "direct": false, "version": "20.3.2", "ecosystem": "npm" }, { "name": "@types/parse5", "direct": false, "version": "6.0.3", "ecosystem": "npm" }, { "name": "@types/qs", "direct": false, "version": "6.15.1", "ecosystem": "npm" }, { "name": "@types/range-parser", "direct": false, "version": "1.2.7", "ecosystem": "npm" }, { "name": "@types/resolve", "direct": false, "version": "1.17.1", "ecosystem": "npm" }, { "name": "@types/resolve", "direct": false, "version": "1.20.2", "ecosystem": "npm" }, { "name": "@types/responselike", "direct": false, "version": "1.0.3", "ecosystem": "npm" }, { "name": "@types/send", "direct": false, "version": "1.2.1", "ecosystem": "npm" }, { "name": "@types/serve-static", "direct": false, "version": "2.2.0", "ecosystem": "npm" }, { "name": "@types/sinonjs__fake-timers", "direct": false, "version": "8.1.5", "ecosystem": "npm" }, { "name": "@types/which", "direct": false, "version": "2.0.2", "ecosystem": "npm" }, { "name": "@types/ws", "direct": false, "version": "7.4.7", "ecosystem": "npm" }, { "name": "@types/ws", "direct": false, "version": "8.18.1", "ecosystem": "npm" }, { "name": "@types/yauzl", "direct": false, "version": "2.10.3", "ecosystem": "npm" }, { "name": "@wdio/config", "direct": false, "version": "9.28.0", "ecosystem": "npm" }, { "name": "@wdio/logger", "direct": false, "version": "9.18.0", "ecosystem": "npm" }, { "name": "@wdio/protocols", "direct": false, "version": "9.28.0", "ecosystem": "npm" }, { "name": "@wdio/repl", "direct": false, "version": "9.16.2", "ecosystem": "npm" }, { "name": "@wdio/types", "direct": false, "version": "9.28.0", "ecosystem": "npm" }, { "name": "@wdio/utils", "direct": false, "version": "9.28.0", "ecosystem": "npm" }, { "name": "@web/browser-logs", "direct": false, "version": "0.4.1", "ecosystem": "npm" }, { "name": "@web/config-loader", "direct": false, "version": "0.3.3", "ecosystem": "npm" }, { "name": "@web/dev-server", "direct": false, "version": "0.4.6", "ecosystem": "npm" }, { "name": "@web/dev-server-core", "direct": false, "version": "0.7.5", "ecosystem": "npm" }, { "name": "@web/dev-server-rollup", "direct": false, "version": "0.6.4", "ecosystem": "npm" }, { "name": "@web/parse5-utils", "direct": false, "version": "2.1.1", "ecosystem": "npm" }, { "name": "@web/test-runner", "direct": false, "version": "0.20.2", "ecosystem": "npm" }, { "name": "@web/test-runner", "direct": false, "version": "^0.20.2", "ecosystem": "npm" }, { "name": "@web/test-runner-chrome", "direct": false, "version": "0.18.1", "ecosystem": "npm" }, { "name": "@web/test-runner-commands", "direct": false, "version": "0.9.0", "ecosystem": "npm" }, { "name": "@web/test-runner-core", "direct": false, "version": "0.13.4", "ecosystem": "npm" }, { "name": "@web/test-runner-coverage-v8", "direct": false, "version": "0.8.0", "ecosystem": "npm" }, { "name": "@web/test-runner-mocha", "direct": false, "version": "0.9.0", "ecosystem": "npm" }, { "name": "@web/test-runner-saucelabs", "direct": false, "version": "0.13.0", "ecosystem": "npm" }, { "name": "@web/test-runner-saucelabs", "direct": false, "version": "^0.13.0", "ecosystem": "npm" }, { "name": "@web/test-runner-webdriver", "direct": false, "version": "0.9.0", "ecosystem": "npm" }, { "name": "@zip.js/zip.js", "direct": false, "version": "2.8.26", "ecosystem": "npm" }, { "name": "abort-controller", "direct": false, "version": "3.0.0", "ecosystem": "npm" }, { "name": "accepts", "direct": false, "version": "1.3.8", "ecosystem": "npm" }, { "name": "acorn", "direct": false, "version": "8.15.0", "ecosystem": "npm" }, { "name": "acorn-jsx", "direct": false, "version": "5.3.2", "ecosystem": "npm" }, { "name": "agent-base", "direct": false, "version": "7.1.4", "ecosystem": "npm" }, { "name": "ajv", "direct": false, "version": "6.12.6", "ecosystem": "npm" }, { "name": "ansi-escapes", "direct": false, "version": "4.3.2", "ecosystem": "npm" }, { "name": "ansi-regex", "direct": false, "version": "5.0.1", "ecosystem": "npm" }, { "name": "ansi-regex", "direct": false, "version": "6.2.2", "ecosystem": "npm" }, { "name": "ansi-styles", "direct": false, "version": "3.2.1", "ecosystem": "npm" }, { "name": "ansi-styles", "direct": false, "version": "4.3.0", "ecosystem": "npm" }, { "name": "ansi-styles", "direct": false, "version": "6.2.3", "ecosystem": "npm" }, { "name": "anynum", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "archiver", "direct": false, "version": "7.0.1", "ecosystem": "npm" }, { "name": "archiver-utils", "direct": false, "version": "5.0.2", "ecosystem": "npm" }, { "name": "argparse", "direct": false, "version": "2.0.1", "ecosystem": "npm" }, { "name": "aria-query", "direct": false, "version": "5.3.2", "ecosystem": "npm" }, { "name": "array-back", "direct": false, "version": "3.1.0", "ecosystem": "npm" }, { "name": "array-back", "direct": false, "version": "6.2.3", "ecosystem": "npm" }, { "name": "array-buffer-byte-length", "direct": false, "version": "1.0.2", "ecosystem": "npm" }, { "name": "array-includes", "direct": false, "version": "3.1.9", "ecosystem": "npm" }, { "name": "array-union", "direct": false, "version": "2.1.0", "ecosystem": "npm" }, { "name": "array.prototype.findlastindex", "direct": false, "version": "1.2.6", "ecosystem": "npm" }, { "name": "array.prototype.flat", "direct": false, "version": "1.3.3", "ecosystem": "npm" }, { "name": "array.prototype.flatmap", "direct": false, "version": "1.3.3", "ecosystem": "npm" }, { "name": "arraybuffer.prototype.slice", "direct": false, "version": "1.0.4", "ecosystem": "npm" }, { "name": "ast-types", "direct": false, "version": "0.13.4", "ecosystem": "npm" }, { "name": "astral-regex", "direct": false, "version": "2.0.0", "ecosystem": "npm" }, { "name": "async", "direct": false, "version": "3.2.6", "ecosystem": "npm" }, { "name": "async-function", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "asynckit", "direct": false, "version": "0.4.0", "ecosystem": "npm" }, { "name": "available-typed-arrays", "direct": false, "version": "1.0.7", "ecosystem": "npm" }, { "name": "b4a", "direct": false, "version": "1.8.1", "ecosystem": "npm" }, { "name": "balanced-match", "direct": false, "version": "1.0.2", "ecosystem": "npm" }, { "name": "bare-events", "direct": false, "version": "2.9.1", "ecosystem": "npm" }, { "name": "bare-fs", "direct": false, "version": "4.7.2", "ecosystem": "npm" }, { "name": "bare-os", "direct": false, "version": "3.9.1", "ecosystem": "npm" }, { "name": "bare-path", "direct": false, "version": "3.0.1", "ecosystem": "npm" }, { "name": "bare-stream", "direct": false, "version": "2.13.2", "ecosystem": "npm" }, { "name": "bare-url", "direct": false, "version": "2.4.5", "ecosystem": "npm" }, { "name": "base64-js", "direct": false, "version": "1.5.1", "ecosystem": "npm" }, { "name": "basic-ftp", "direct": false, "version": "5.3.1", "ecosystem": "npm" }, { "name": "bl", "direct": false, "version": "1.2.3", "ecosystem": "npm" }, { "name": "boolbase", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "brace-expansion", "direct": false, "version": "1.1.11", "ecosystem": "npm" }, { "name": "brace-expansion", "direct": false, "version": "2.1.1", "ecosystem": "npm" }, { "name": "braces", "direct": false, "version": "3.0.3", "ecosystem": "npm" }, { "name": "buffer", "direct": false, "version": "6.0.3", "ecosystem": "npm" }, { "name": "buffer-alloc", "direct": false, "version": "1.2.0", "ecosystem": "npm" }, { "name": "buffer-alloc-unsafe", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "buffer-crc32", "direct": false, "version": "0.2.13", "ecosystem": "npm" }, { "name": "buffer-crc32", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "buffer-fill", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "buffer-from", "direct": false, "version": "1.1.2", "ecosystem": "npm" }, { "name": "builtin-modules", "direct": false, "version": "3.3.0", "ecosystem": "npm" }, { "name": "bytes", "direct": false, "version": "3.1.2", "ecosystem": "npm" }, { "name": "cache-content-type", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "cacheable-lookup", "direct": false, "version": "5.0.4", "ecosystem": "npm" }, { "name": "cacheable-request", "direct": false, "version": "7.0.4", "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": "camel-case", "direct": false, "version": "4.1.2", "ecosystem": "npm" }, { "name": "camelcase", "direct": false, "version": "6.3.0", "ecosystem": "npm" }, { "name": "capital-case", "direct": false, "version": "1.0.4", "ecosystem": "npm" }, { "name": "chalk", "direct": false, "version": "2.4.2", "ecosystem": "npm" }, { "name": "chalk", "direct": false, "version": "4.1.2", "ecosystem": "npm" }, { "name": "chalk", "direct": false, "version": "5.6.2", "ecosystem": "npm" }, { "name": "chalk-template", "direct": false, "version": "0.4.0", "ecosystem": "npm" }, { "name": "change-case", "direct": false, "version": "4.1.2", "ecosystem": "npm" }, { "name": "cheerio", "direct": false, "version": "1.2.0", "ecosystem": "npm" }, { "name": "cheerio-select", "direct": false, "version": "2.1.0", "ecosystem": "npm" }, { "name": "chokidar", "direct": false, "version": "4.0.3", "ecosystem": "npm" }, { "name": "chrome-launcher", "direct": false, "version": "0.15.2", "ecosystem": "npm" }, { "name": "chromium-bidi", "direct": false, "version": "14.0.0", "ecosystem": "npm" }, { "name": "cli-cursor", "direct": false, "version": "3.1.0", "ecosystem": "npm" }, { "name": "cliui", "direct": false, "version": "8.0.1", "ecosystem": "npm" }, { "name": "clone", "direct": false, "version": "2.1.2", "ecosystem": "npm" }, { "name": "clone-response", "direct": false, "version": "1.0.3", "ecosystem": "npm" }, { "name": "co", "direct": false, "version": "4.6.0", "ecosystem": "npm" }, { "name": "co-body", "direct": false, "version": "6.2.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": "combined-stream", "direct": false, "version": "1.0.8", "ecosystem": "npm" }, { "name": "command-line-args", "direct": false, "version": "5.2.1", "ecosystem": "npm" }, { "name": "command-line-usage", "direct": false, "version": "7.0.4", "ecosystem": "npm" }, { "name": "commander", "direct": false, "version": "2.20.3", "ecosystem": "npm" }, { "name": "commander", "direct": false, "version": "7.2.0", "ecosystem": "npm" }, { "name": "commander", "direct": false, "version": "9.5.0", "ecosystem": "npm" }, { "name": "commondir", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "compress-commons", "direct": false, "version": "6.0.2", "ecosystem": "npm" }, { "name": "compressing", "direct": false, "version": "1.10.5", "ecosystem": "npm" }, { "name": "concat-map", "direct": false, "version": "0.0.1", "ecosystem": "npm" }, { "name": "constant-case", "direct": false, "version": "3.0.4", "ecosystem": "npm" }, { "name": "content-disposition", "direct": false, "version": "0.5.4", "ecosystem": "npm" }, { "name": "content-type", "direct": false, "version": "1.0.5", "ecosystem": "npm" }, { "name": "convert-source-map", "direct": false, "version": "2.0.0", "ecosystem": "npm" }, { "name": "cookies", "direct": false, "version": "0.9.1", "ecosystem": "npm" }, { "name": "core-util-is", "direct": false, "version": "1.0.3", "ecosystem": "npm" }, { "name": "crc-32", "direct": false, "version": "1.2.2", "ecosystem": "npm" }, { "name": "crc32-stream", "direct": false, "version": "6.0.0", "ecosystem": "npm" }, { "name": "cross-spawn", "direct": false, "version": "7.0.6", "ecosystem": "npm" }, { "name": "css-select", "direct": false, "version": "5.2.2", "ecosystem": "npm" }, { "name": "css-shorthand-properties", "direct": false, "version": "1.1.2", "ecosystem": "npm" }, { "name": "css-value", "direct": false, "version": "0.0.1", "ecosystem": "npm" }, { "name": "css-what", "direct": false, "version": "6.2.2", "ecosystem": "npm" }, { "name": "data-uri-to-buffer", "direct": false, "version": "6.0.2", "ecosystem": "npm" }, { "name": "data-view-buffer", "direct": false, "version": "1.0.2", "ecosystem": "npm" }, { "name": "data-view-byte-length", "direct": false, "version": "1.0.2", "ecosystem": "npm" }, { "name": "data-view-byte-offset", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "debounce", "direct": false, "version": "1.2.1", "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.4", "ecosystem": "npm" }, { "name": "debug", "direct": false, "version": "4.4.3", "ecosystem": "npm" }, { "name": "decamelize", "direct": false, "version": "6.0.1", "ecosystem": "npm" }, { "name": "decode-uri-component", "direct": false, "version": "0.2.2", "ecosystem": "npm" }, { "name": "decompress-response", "direct": false, "version": "6.0.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": "deepmerge", "direct": false, "version": "4.3.1", "ecosystem": "npm" }, { "name": "deepmerge-ts", "direct": false, "version": "7.1.5", "ecosystem": "npm" }, { "name": "default-gateway", "direct": false, "version": "6.0.3", "ecosystem": "npm" }, { "name": "defer-to-connect", "direct": false, "version": "2.0.1", "ecosystem": "npm" }, { "name": "define-data-property", "direct": false, "version": "1.1.4", "ecosystem": "npm" }, { "name": "define-lazy-prop", "direct": false, "version": "2.0.0", "ecosystem": "npm" }, { "name": "define-properties", "direct": false, "version": "1.2.1", "ecosystem": "npm" }, { "name": "degenerator", "direct": false, "version": "5.0.1", "ecosystem": "npm" }, { "name": "delayed-stream", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "delegates", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "depd", "direct": false, "version": "1.1.2", "ecosystem": "npm" }, { "name": "depd", "direct": false, "version": "2.0.0", "ecosystem": "npm" }, { "name": "dependency-graph", "direct": false, "version": "0.11.0", "ecosystem": "npm" }, { "name": "destroy", "direct": false, "version": "1.2.0", "ecosystem": "npm" }, { "name": "devtools-protocol", "direct": false, "version": "0.0.1608973", "ecosystem": "npm" }, { "name": "diff", "direct": false, "version": "5.2.2", "ecosystem": "npm" }, { "name": "dir-glob", "direct": false, "version": "3.0.1", "ecosystem": "npm" }, { "name": "doctrine", "direct": false, "version": "2.1.0", "ecosystem": "npm" }, { "name": "dom-serializer", "direct": false, "version": "2.0.0", "ecosystem": "npm" }, { "name": "domelementtype", "direct": false, "version": "2.3.0", "ecosystem": "npm" }, { "name": "domhandler", "direct": false, "version": "5.0.3", "ecosystem": "npm" }, { "name": "domutils", "direct": false, "version": "3.2.2", "ecosystem": "npm" }, { "name": "dot-case", "direct": false, "version": "3.0.4", "ecosystem": "npm" }, { "name": "dunder-proto", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "eastasianwidth", "direct": false, "version": "0.2.0", "ecosystem": "npm" }, { "name": "edge-paths", "direct": false, "version": "3.0.5", "ecosystem": "npm" }, { "name": "edgedriver", "direct": false, "version": "6.3.0", "ecosystem": "npm" }, { "name": "ee-first", "direct": false, "version": "1.1.1", "ecosystem": "npm" }, { "name": "emoji-regex", "direct": false, "version": "8.0.0", "ecosystem": "npm" }, { "name": "emoji-regex", "direct": false, "version": "9.2.2", "ecosystem": "npm" }, { "name": "encodeurl", "direct": false, "version": "1.0.2", "ecosystem": "npm" }, { "name": "encoding-sniffer", "direct": false, "version": "0.2.1", "ecosystem": "npm" }, { "name": "end-of-stream", "direct": false, "version": "1.4.4", "ecosystem": "npm" }, { "name": "entities", "direct": false, "version": "4.5.0", "ecosystem": "npm" }, { "name": "entities", "direct": false, "version": "6.0.1", "ecosystem": "npm" }, { "name": "entities", "direct": false, "version": "7.0.1", "ecosystem": "npm" }, { "name": "errorstacks", "direct": false, "version": "2.4.2", "ecosystem": "npm" }, { "name": "es-abstract", "direct": false, "version": "1.24.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-module-lexer", "direct": false, "version": "1.7.0", "ecosystem": "npm" }, { "name": "es-object-atoms", "direct": false, "version": "1.1.1", "ecosystem": "npm" }, { "name": "es-set-tostringtag", "direct": false, "version": "2.1.0", "ecosystem": "npm" }, { "name": "es-shim-unscopables", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "es-to-primitive", "direct": false, "version": "1.3.0", "ecosystem": "npm" }, { "name": "escalade", "direct": false, "version": "3.2.0", "ecosystem": "npm" }, { "name": "escape-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": "4.0.0", "ecosystem": "npm" }, { "name": "escodegen", "direct": false, "version": "2.1.0", "ecosystem": "npm" }, { "name": "eslint", "direct": false, "version": "9.37.0", "ecosystem": "npm" }, { "name": "eslint", "direct": false, "version": "^9.24.0", "ecosystem": "npm" }, { "name": "eslint-import-resolver-node", "direct": false, "version": "0.3.9", "ecosystem": "npm" }, { "name": "eslint-module-utils", "direct": false, "version": "2.12.1", "ecosystem": "npm" }, { "name": "eslint-plugin-import", "direct": false, "version": "2.32.0", "ecosystem": "npm" }, { "name": "eslint-plugin-import", "direct": false, "version": "^2.31.0", "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.5.0", "ecosystem": "npm" }, { "name": "esrecurse", "direct": false, "version": "4.3.0", "ecosystem": "npm" }, { "name": "estraverse", "direct": false, "version": "5.3.0", "ecosystem": "npm" }, { "name": "estree-walker", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "estree-walker", "direct": false, "version": "2.0.2", "ecosystem": "npm" }, { "name": "esutils", "direct": false, "version": "2.0.3", "ecosystem": "npm" }, { "name": "etag", "direct": false, "version": "1.8.1", "ecosystem": "npm" }, { "name": "event-target-shim", "direct": false, "version": "5.0.1", "ecosystem": "npm" }, { "name": "events", "direct": false, "version": "3.3.0", "ecosystem": "npm" }, { "name": "events-universal", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "execa", "direct": false, "version": "5.1.1", "ecosystem": "npm" }, { "name": "extract-zip", "direct": false, "version": "2.0.1", "ecosystem": "npm" }, { "name": "fast-deep-equal", "direct": false, "version": "2.0.1", "ecosystem": "npm" }, { "name": "fast-deep-equal", "direct": false, "version": "3.1.3", "ecosystem": "npm" }, { "name": "fast-fifo", "direct": false, "version": "1.3.2", "ecosystem": "npm" }, { "name": "fast-glob", "direct": false, "version": "3.3.3", "ecosystem": "npm" }, { "name": "fast-json-stable-stringify", "direct": false, "version": "2.1.0", "ecosystem": "npm" }, { "name": "fast-levenshtein", "direct": false, "version": "2.0.6", "ecosystem": "npm" }, { "name": "fast-xml-builder", "direct": false, "version": "1.2.0", "ecosystem": "npm" }, { "name": "fast-xml-parser", "direct": false, "version": "5.8.0", "ecosystem": "npm" }, { "name": "fastq", "direct": false, "version": "1.20.1", "ecosystem": "npm" }, { "name": "fd-slicer", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "fd-slicer2", "direct": false, "version": "1.2.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": "filter-obj", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "find-replace", "direct": false, "version": "3.0.0", "ecosystem": "npm" }, { "name": "find-up", "direct": false, "version": "5.0.0", "ecosystem": "npm" }, { "name": "flat-cache", "direct": false, "version": "4.0.1", "ecosystem": "npm" }, { "name": "flatted", "direct": false, "version": "3.3.1", "ecosystem": "npm" }, { "name": "flushwritable", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "for-each", "direct": false, "version": "0.3.5", "ecosystem": "npm" }, { "name": "foreground-child", "direct": false, "version": "3.3.1", "ecosystem": "npm" }, { "name": "form-data", "direct": false, "version": "4.0.5", "ecosystem": "npm" }, { "name": "fresh", "direct": false, "version": "0.5.2", "ecosystem": "npm" }, { "name": "fs-constants", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "fs.realpath", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "fsevents", "direct": false, "version": "2.3.3", "ecosystem": "npm" }, { "name": "function-bind", "direct": false, "version": "1.1.2", "ecosystem": "npm" }, { "name": "function.prototype.name", "direct": false, "version": "1.1.8", "ecosystem": "npm" }, { "name": "functions-have-names", "direct": false, "version": "1.2.3", "ecosystem": "npm" }, { "name": "geckodriver", "direct": false, "version": "6.1.0", "ecosystem": "npm" }, { "name": "generator-function", "direct": false, "version": "2.0.1", "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-port", "direct": false, "version": "7.2.0", "ecosystem": "npm" }, { "name": "get-proto", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "get-ready", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "get-stream", "direct": false, "version": "5.2.0", "ecosystem": "npm" }, { "name": "get-stream", "direct": false, "version": "6.0.1", "ecosystem": "npm" }, { "name": "get-symbol-description", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "get-uri", "direct": false, "version": "6.0.5", "ecosystem": "npm" }, { "name": "glob", "direct": false, "version": "10.5.0", "ecosystem": "npm" }, { "name": "glob", "direct": false, "version": "7.2.3", "ecosystem": "npm" }, { "name": "glob-parent", "direct": false, "version": "5.1.2", "ecosystem": "npm" }, { "name": "glob-parent", "direct": false, "version": "6.0.2", "ecosystem": "npm" }, { "name": "globals", "direct": false, "version": "14.0.0", "ecosystem": "npm" }, { "name": "globals", "direct": false, "version": "^14.0.0", "ecosystem": "npm" }, { "name": "globalthis", "direct": false, "version": "1.0.4", "ecosystem": "npm" }, { "name": "globalyzer", "direct": false, "version": "0.1.0", "ecosystem": "npm" }, { "name": "globby", "direct": false, "version": "11.1.0", "ecosystem": "npm" }, { "name": "globrex", "direct": false, "version": "0.1.2", "ecosystem": "npm" }, { "name": "gopd", "direct": false, "version": "1.2.0", "ecosystem": "npm" }, { "name": "got", "direct": false, "version": "11.8.6", "ecosystem": "npm" }, { "name": "graceful-fs", "direct": false, "version": "4.2.11", "ecosystem": "npm" }, { "name": "grapheme-splitter", "direct": false, "version": "1.0.4", "ecosystem": "npm" }, { "name": "has-bigints", "direct": false, "version": "1.1.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-proto", "direct": false, "version": "1.2.0", "ecosystem": "npm" }, { "name": "has-symbols", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "has-tostringtag", "direct": false, "version": "1.0.2", "ecosystem": "npm" }, { "name": "hash.js", "direct": false, "version": "1.1.7", "ecosystem": "npm" }, { "name": "hasown", "direct": false, "version": "2.0.2", "ecosystem": "npm" }, { "name": "header-case", "direct": false, "version": "2.0.4", "ecosystem": "npm" }, { "name": "html-escaper", "direct": false, "version": "2.0.2", "ecosystem": "npm" }, { "name": "htmlfy", "direct": false, "version": "0.8.1", "ecosystem": "npm" }, { "name": "htmlparser2", "direct": false, "version": "10.1.0", "ecosystem": "npm" }, { "name": "http-assert", "direct": false, "version": "1.5.0", "ecosystem": "npm" }, { "name": "http-cache-semantics", "direct": false, "version": "4.2.0", "ecosystem": "npm" }, { "name": "http-errors", "direct": false, "version": "1.6.3", "ecosystem": "npm" }, { "name": "http-errors", "direct": false, "version": "1.8.1", "ecosystem": "npm" }, { "name": "http-errors", "direct": false, "version": "2.0.0", "ecosystem": "npm" }, { "name": "http-proxy-agent", "direct": false, "version": "7.0.2", "ecosystem": "npm" }, { "name": "http2-wrapper", "direct": false, "version": "1.0.3", "ecosystem": "npm" }, { "name": "https-proxy-agent", "direct": false, "version": "7.0.6", "ecosystem": "npm" }, { "name": "human-signals", "direct": false, "version": "2.1.0", "ecosystem": "npm" }, { "name": "iconv-lite", "direct": false, "version": "0.4.24", "ecosystem": "npm" }, { "name": "iconv-lite", "direct": false, "version": "0.5.2", "ecosystem": "npm" }, { "name": "iconv-lite", "direct": false, "version": "0.6.3", "ecosystem": "npm" }, { "name": "ieee754", "direct": false, "version": "1.2.1", "ecosystem": "npm" }, { "name": "ignore", "direct": false, "version": "5.3.2", "ecosystem": "npm" }, { "name": "immediate", "direct": false, "version": "3.0.6", "ecosystem": "npm" }, { "name": "import-fresh", "direct": false, "version": "3.3.0", "ecosystem": "npm" }, { "name": "import-meta-resolve", "direct": false, "version": "4.2.0", "ecosystem": "npm" }, { "name": "imurmurhash", "direct": false, "version": "0.1.4", "ecosystem": "npm" }, { "name": "inflation", "direct": false, "version": "2.1.0", "ecosystem": "npm" }, { "name": "inflight", "direct": false, "version": "1.0.6", "ecosystem": "npm" }, { "name": "inherits", "direct": false, "version": "2.0.3", "ecosystem": "npm" }, { "name": "inherits", "direct": false, "version": "2.0.4", "ecosystem": "npm" }, { "name": "internal-ip", "direct": false, "version": "6.2.0", "ecosystem": "npm" }, { "name": "internal-slot", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "ip-address", "direct": false, "version": "10.2.0", "ecosystem": "npm" }, { "name": "ip-regex", "direct": false, "version": "4.3.0", "ecosystem": "npm" }, { "name": "ipaddr.js", "direct": false, "version": "1.9.1", "ecosystem": "npm" }, { "name": "is-array-buffer", "direct": false, "version": "3.0.5", "ecosystem": "npm" }, { "name": "is-async-function", "direct": false, "version": "2.1.1", "ecosystem": "npm" }, { "name": "is-bigint", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "is-boolean-object", "direct": false, "version": "1.2.2", "ecosystem": "npm" }, { "name": "is-callable", "direct": false, "version": "1.2.7", "ecosystem": "npm" }, { "name": "is-core-module", "direct": false, "version": "2.16.1", "ecosystem": "npm" }, { "name": "is-data-view", "direct": false, "version": "1.0.2", "ecosystem": "npm" }, { "name": "is-date-object", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "is-docker", "direct": false, "version": "2.2.1", "ecosystem": "npm" }, { "name": "is-extglob", "direct": false, "version": "2.1.1", "ecosystem": "npm" }, { "name": "is-finalizationregistry", "direct": false, "version": "1.1.1", "ecosystem": "npm" }, { "name": "is-fullwidth-code-point", "direct": false, "version": "3.0.0", "ecosystem": "npm" }, { "name": "is-generator-function", "direct": false, "version": "1.1.2", "ecosystem": "npm" }, { "name": "is-glob", "direct": false, "version": "4.0.3", "ecosystem": "npm" }, { "name": "is-ip", "direct": false, "version": "3.1.0", "ecosystem": "npm" }, { "name": "is-map", "direct": false, "version": "2.0.3", "ecosystem": "npm" }, { "name": "is-module", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "is-negative-zero", "direct": false, "version": "2.0.3", "ecosystem": "npm" }, { "name": "is-number", "direct": false, "version": "7.0.0", "ecosystem": "npm" }, { "name": "is-number-object", "direct": false, "version": "1.1.1", "ecosystem": "npm" }, { "name": "is-plain-obj", "direct": false, "version": "4.1.0", "ecosystem": "npm" }, { "name": "is-reference", "direct": false, "version": "1.2.1", "ecosystem": "npm" }, { "name": "is-regex", "direct": false, "version": "1.2.1", "ecosystem": "npm" }, { "name": "is-set", "direct": false, "version": "2.0.3", "ecosystem": "npm" }, { "name": "is-shared-array-buffer", "direct": false, "version": "1.0.4", "ecosystem": "npm" }, { "name": "is-stream", "direct": false, "version": "2.0.1", "ecosystem": "npm" }, { "name": "is-string", "direct": false, "version": "1.1.1", "ecosystem": "npm" }, { "name": "is-symbol", "direct": false, "version": "1.1.1", "ecosystem": "npm" }, { "name": "is-typed-array", "direct": false, "version": "1.1.15", "ecosystem": "npm" }, { "name": "is-weakmap", "direct": false, "version": "2.0.2", "ecosystem": "npm" }, { "name": "is-weakref", "direct": false, "version": "1.1.1", "ecosystem": "npm" }, { "name": "is-weakset", "direct": false, "version": "2.0.4", "ecosystem": "npm" }, { "name": "is-wsl", "direct": false, "version": "2.2.0", "ecosystem": "npm" }, { "name": "isarray", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "isarray", "direct": false, "version": "2.0.5", "ecosystem": "npm" }, { "name": "isbinaryfile", "direct": false, "version": "5.0.7", "ecosystem": "npm" }, { "name": "isexe", "direct": false, "version": "2.0.0", "ecosystem": "npm" }, { "name": "isexe", "direct": false, "version": "4.0.0", "ecosystem": "npm" }, { "name": "istanbul-lib-coverage", "direct": false, "version": "3.2.2", "ecosystem": "npm" }, { "name": "istanbul-lib-report", "direct": false, "version": "3.0.1", "ecosystem": "npm" }, { "name": "istanbul-reports", "direct": false, "version": "3.2.0", "ecosystem": "npm" }, { "name": "jackspeak", "direct": false, "version": "3.4.3", "ecosystem": "npm" }, { "name": "jest-worker", "direct": false, "version": "26.6.2", "ecosystem": "npm" }, { "name": "jiti", "direct": false, "version": "2.7.0", "ecosystem": "npm" }, { "name": "js-tokens", "direct": false, "version": "4.0.0", "ecosystem": "npm" }, { "name": "js-yaml", "direct": false, "version": "4.1.0", "ecosystem": "npm" }, { "name": "json-buffer", "direct": false, "version": "3.0.1", "ecosystem": "npm" }, { "name": "json-schema-traverse", "direct": false, "version": "0.4.1", "ecosystem": "npm" }, { "name": "json-stable-stringify-without-jsonify", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "json5", "direct": false, "version": "1.0.2", "ecosystem": "npm" }, { "name": "jszip", "direct": false, "version": "3.10.1", "ecosystem": "npm" }, { "name": "keygrip", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "keyv", "direct": false, "version": "4.5.4", "ecosystem": "npm" }, { "name": "koa", "direct": false, "version": "2.16.4", "ecosystem": "npm" }, { "name": "koa-compose", "direct": false, "version": "4.1.0", "ecosystem": "npm" }, { "name": "koa-convert", "direct": false, "version": "2.0.0", "ecosystem": "npm" }, { "name": "koa-etag", "direct": false, "version": "4.0.0", "ecosystem": "npm" }, { "name": "koa-send", "direct": false, "version": "5.0.1", "ecosystem": "npm" }, { "name": "koa-static", "direct": false, "version": "5.0.0", "ecosystem": "npm" }, { "name": "lazystream", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "levn", "direct": false, "version": "0.4.1", "ecosystem": "npm" }, { "name": "lie", "direct": false, "version": "3.3.0", "ecosystem": "npm" }, { "name": "lighthouse-logger", "direct": false, "version": "1.4.2", "ecosystem": "npm" }, { "name": "locate-app", "direct": false, "version": "2.5.0", "ecosystem": "npm" }, { "name": "locate-path", "direct": false, "version": "6.0.0", "ecosystem": "npm" }, { "name": "lodash", "direct": false, "version": "4.17.21", "ecosystem": "npm" }, { "name": "lodash.camelcase", "direct": false, "version": "4.3.0", "ecosystem": "npm" }, { "name": "lodash.clonedeep", "direct": false, "version": "4.5.0", "ecosystem": "npm" }, { "name": "lodash.merge", "direct": false, "version": "4.6.2", "ecosystem": "npm" }, { "name": "lodash.zip", "direct": false, "version": "4.2.0", "ecosystem": "npm" }, { "name": "log-update", "direct": false, "version": "4.0.0", "ecosystem": "npm" }, { "name": "loglevel", "direct": false, "version": "1.9.2", "ecosystem": "npm" }, { "name": "loglevel-plugin-prefix", "direct": false, "version": "0.8.4", "ecosystem": "npm" }, { "name": "lower-case", "direct": false, "version": "2.0.2", "ecosystem": "npm" }, { "name": "lowercase-keys", "direct": false, "version": "2.0.0", "ecosystem": "npm" }, { "name": "lru-cache", "direct": false, "version": "10.4.3", "ecosystem": "npm" }, { "name": "lru-cache", "direct": false, "version": "7.18.3", "ecosystem": "npm" }, { "name": "lru-cache", "direct": false, "version": "8.0.5", "ecosystem": "npm" }, { "name": "magic-string", "direct": false, "version": "0.25.9", "ecosystem": "npm" }, { "name": "make-dir", "direct": false, "version": "4.0.0", "ecosystem": "npm" }, { "name": "marky", "direct": false, "version": "1.3.0", "ecosystem": "npm" }, { "name": "math-intrinsics", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "media-typer", "direct": false, "version": "0.3.0", "ecosystem": "npm" }, { "name": "merge-stream", "direct": false, "version": "2.0.0", "ecosystem": "npm" }, { "name": "merge2", "direct": false, "version": "1.4.1", "ecosystem": "npm" }, { "name": "micromatch", "direct": false, "version": "4.0.8", "ecosystem": "npm" }, { "name": "mime-db", "direct": false, "version": "1.52.0", "ecosystem": "npm" }, { "name": "mime-types", "direct": false, "version": "2.1.35", "ecosystem": "npm" }, { "name": "mimic-fn", "direct": false, "version": "2.1.0", "ecosystem": "npm" }, { "name": "mimic-response", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "mimic-response", "direct": false, "version": "3.1.0", "ecosystem": "npm" }, { "name": "minimalistic-assert", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "minimatch", "direct": false, "version": "3.1.2", "ecosystem": "npm" }, { "name": "minimatch", "direct": false, "version": "5.1.9", "ecosystem": "npm" }, { "name": "minimatch", "direct": false, "version": "9.0.9", "ecosystem": "npm" }, { "name": "minimist", "direct": false, "version": "1.2.8", "ecosystem": "npm" }, { "name": "minipass", "direct": false, "version": "7.1.3", "ecosystem": "npm" }, { "name": "mitt", "direct": false, "version": "3.0.1", "ecosystem": "npm" }, { "name": "mkdirp", "direct": false, "version": "0.5.6", "ecosystem": "npm" }, { "name": "mkdirp", "direct": false, "version": "1.0.4", "ecosystem": "npm" }, { "name": "mock-socket", "direct": false, "version": "2.0.0", "ecosystem": "npm" }, { "name": "mock-socket", "direct": false, "version": "^2.0.0", "ecosystem": "npm" }, { "name": "modern-tar", "direct": false, "version": "0.7.6", "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": "nanocolors", "direct": false, "version": "0.2.13", "ecosystem": "npm" }, { "name": "nanoid", "direct": false, "version": "3.3.12", "ecosystem": "npm" }, { "name": "natural-compare", "direct": false, "version": "1.4.0", "ecosystem": "npm" }, { "name": "negotiator", "direct": false, "version": "0.6.3", "ecosystem": "npm" }, { "name": "netmask", "direct": false, "version": "2.1.1", "ecosystem": "npm" }, { "name": "no-case", "direct": false, "version": "3.0.4", "ecosystem": "npm" }, { "name": "node-watch", "direct": false, "version": "0.7.3", "ecosystem": "npm" }, { "name": "normalize-path", "direct": false, "version": "3.0.0", "ecosystem": "npm" }, { "name": "normalize-url", "direct": false, "version": "6.1.0", "ecosystem": "npm" }, { "name": "npm-run-path", "direct": false, "version": "4.0.1", "ecosystem": "npm" }, { "name": "nth-check", "direct": false, "version": "2.1.1", "ecosystem": "npm" }, { "name": "object-inspect", "direct": false, "version": "1.13.4", "ecosystem": "npm" }, { "name": "object-keys", "direct": false, "version": "1.1.1", "ecosystem": "npm" }, { "name": "object.assign", "direct": false, "version": "4.1.7", "ecosystem": "npm" }, { "name": "object.fromentries", "direct": false, "version": "2.0.8", "ecosystem": "npm" }, { "name": "object.groupby", "direct": false, "version": "1.0.3", "ecosystem": "npm" }, { "name": "object.values", "direct": false, "version": "1.2.1", "ecosystem": "npm" }, { "name": "on-finished", "direct": false, "version": "2.4.1", "ecosystem": "npm" }, { "name": "once", "direct": false, "version": "1.4.0", "ecosystem": "npm" }, { "name": "onetime", "direct": false, "version": "5.1.2", "ecosystem": "npm" }, { "name": "only", "direct": false, "version": "0.0.2", "ecosystem": "npm" }, { "name": "open", "direct": false, "version": "8.4.2", "ecosystem": "npm" }, { "name": "optionator", "direct": false, "version": "0.9.4", "ecosystem": "npm" }, { "name": "own-keys", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "p-cancelable", "direct": false, "version": "2.1.1", "ecosystem": "npm" }, { "name": "p-event", "direct": false, "version": "4.2.0", "ecosystem": "npm" }, { "name": "p-finally", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "p-limit", "direct": false, "version": "3.1.0", "ecosystem": "npm" }, { "name": "p-locate", "direct": false, "version": "5.0.0", "ecosystem": "npm" }, { "name": "p-timeout", "direct": false, "version": "3.2.0", "ecosystem": "npm" }, { "name": "pac-proxy-agent", "direct": false, "version": "7.2.0", "ecosystem": "npm" }, { "name": "pac-resolver", "direct": false, "version": "7.0.1", "ecosystem": "npm" }, { "name": "package-json-from-dist", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "pako", "direct": false, "version": "1.0.11", "ecosystem": "npm" }, { "name": "param-case", "direct": false, "version": "3.0.4", "ecosystem": "npm" }, { "name": "parent-module", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "parse5", "direct": false, "version": "6.0.1", "ecosystem": "npm" }, { "name": "parse5", "direct": false, "version": "7.3.0", "ecosystem": "npm" }, { "name": "parse5-htmlparser2-tree-adapter", "direct": false, "version": "7.1.0", "ecosystem": "npm" }, { "name": "parse5-parser-stream", "direct": false, "version": "7.1.2", "ecosystem": "npm" }, { "name": "parseurl", "direct": false, "version": "1.3.3", "ecosystem": "npm" }, { "name": "pascal-case", "direct": false, "version": "3.1.2", "ecosystem": "npm" }, { "name": "path-case", "direct": false, "version": "3.0.4", "ecosystem": "npm" }, { "name": "path-exists", "direct": false, "version": "4.0.0", "ecosystem": "npm" }, { "name": "path-expression-matcher", "direct": false, "version": "1.5.0", "ecosystem": "npm" }, { "name": "path-is-absolute", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "path-key", "direct": false, "version": "3.1.1", "ecosystem": "npm" }, { "name": "path-parse", "direct": false, "version": "1.0.7", "ecosystem": "npm" }, { "name": "path-scurry", "direct": false, "version": "1.11.1", "ecosystem": "npm" }, { "name": "path-type", "direct": false, "version": "4.0.0", "ecosystem": "npm" }, { "name": "pend", "direct": false, "version": "1.2.0", "ecosystem": "npm" }, { "name": "picomatch", "direct": false, "version": "2.3.1", "ecosystem": "npm" }, { "name": "picomatch", "direct": false, "version": "4.0.4", "ecosystem": "npm" }, { "name": "portfinder", "direct": false, "version": "1.0.38", "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": "process", "direct": false, "version": "0.11.10", "ecosystem": "npm" }, { "name": "process-nextick-args", "direct": false, "version": "2.0.1", "ecosystem": "npm" }, { "name": "progress", "direct": false, "version": "2.0.3", "ecosystem": "npm" }, { "name": "proxy-agent", "direct": false, "version": "6.5.0", "ecosystem": "npm" }, { "name": "proxy-from-env", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "pump", "direct": false, "version": "3.0.4", "ecosystem": "npm" }, { "name": "punycode", "direct": false, "version": "2.3.0", "ecosystem": "npm" }, { "name": "punycode", "direct": false, "version": "2.3.1", "ecosystem": "npm" }, { "name": "puppeteer-core", "direct": false, "version": "24.43.1", "ecosystem": "npm" }, { "name": "qs", "direct": false, "version": "6.11.0", "ecosystem": "npm" }, { "name": "query-selector-shadow-dom", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "query-string", "direct": false, "version": "7.1.3", "ecosystem": "npm" }, { "name": "queue-microtask", "direct": false, "version": "1.2.3", "ecosystem": "npm" }, { "name": "quick-lru", "direct": false, "version": "5.1.1", "ecosystem": "npm" }, { "name": "qunit", "direct": false, "version": "2.26.0", "ecosystem": "npm" }, { "name": "qunit", "direct": false, "version": "^2.20.0", "ecosystem": "npm" }, { "name": "randombytes", "direct": false, "version": "2.1.0", "ecosystem": "npm" }, { "name": "raw-body", "direct": false, "version": "2.5.2", "ecosystem": "npm" }, { "name": "readable-stream", "direct": false, "version": "2.3.8", "ecosystem": "npm" }, { "name": "readable-stream", "direct": false, "version": "4.7.0", "ecosystem": "npm" }, { "name": "readdir-glob", "direct": false, "version": "1.1.3", "ecosystem": "npm" }, { "name": "readdirp", "direct": false, "version": "4.1.2", "ecosystem": "npm" }, { "name": "reflect.getprototypeof", "direct": false, "version": "1.0.10", "ecosystem": "npm" }, { "name": "regexp.prototype.flags", "direct": false, "version": "1.5.4", "ecosystem": "npm" }, { "name": "require-directory", "direct": false, "version": "2.1.1", "ecosystem": "npm" }, { "name": "resolve", "direct": false, "version": "1.22.2", "ecosystem": "npm" }, { "name": "resolve", "direct": false, "version": "1.22.8", "ecosystem": "npm" }, { "name": "resolve-alpn", "direct": false, "version": "1.2.1", "ecosystem": "npm" }, { "name": "resolve-from", "direct": false, "version": "4.0.0", "ecosystem": "npm" }, { "name": "resolve-path", "direct": false, "version": "1.4.0", "ecosystem": "npm" }, { "name": "responselike", "direct": false, "version": "2.0.1", "ecosystem": "npm" }, { "name": "resq", "direct": false, "version": "1.11.0", "ecosystem": "npm" }, { "name": "restore-cursor", "direct": false, "version": "3.1.0", "ecosystem": "npm" }, { "name": "ret", "direct": false, "version": "0.5.0", "ecosystem": "npm" }, { "name": "reusify", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "rgb2hex", "direct": false, "version": "0.2.5", "ecosystem": "npm" }, { "name": "rollup", "direct": false, "version": "2.79.1", "ecosystem": "npm" }, { "name": "rollup", "direct": false, "version": "4.61.1", "ecosystem": "npm" }, { "name": "rollup", "direct": false, "version": "^2.35.1", "ecosystem": "npm" }, { "name": "rollup-plugin-terser", "direct": false, "version": "7.0.2", "ecosystem": "npm" }, { "name": "rollup-plugin-terser", "direct": false, "version": "^7.0.2", "ecosystem": "npm" }, { "name": "run-parallel", "direct": false, "version": "1.2.0", "ecosystem": "npm" }, { "name": "safaridriver", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "safe-array-concat", "direct": false, "version": "1.1.3", "ecosystem": "npm" }, { "name": "safe-buffer", "direct": false, "version": "5.1.2", "ecosystem": "npm" }, { "name": "safe-buffer", "direct": false, "version": "5.2.1", "ecosystem": "npm" }, { "name": "safe-push-apply", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "safe-regex-test", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "safe-regex2", "direct": false, "version": "5.1.1", "ecosystem": "npm" }, { "name": "safer-buffer", "direct": false, "version": "2.1.2", "ecosystem": "npm" }, { "name": "saucelabs", "direct": false, "version": "9.0.2", "ecosystem": "npm" }, { "name": "semver", "direct": false, "version": "6.3.1", "ecosystem": "npm" }, { "name": "semver", "direct": false, "version": "7.8.4", "ecosystem": "npm" }, { "name": "sentence-case", "direct": false, "version": "3.0.4", "ecosystem": "npm" }, { "name": "serialize-error", "direct": false, "version": "12.0.0", "ecosystem": "npm" }, { "name": "serialize-javascript", "direct": false, "version": "4.0.0", "ecosystem": "npm" }, { "name": "set-function-length", "direct": false, "version": "1.2.2", "ecosystem": "npm" }, { "name": "set-function-name", "direct": false, "version": "2.0.2", "ecosystem": "npm" }, { "name": "set-proto", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "setimmediate", "direct": false, "version": "1.0.5", "ecosystem": "npm" }, { "name": "setprototypeof", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "setprototypeof", "direct": false, "version": "1.2.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": "side-channel", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "side-channel-list", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "side-channel-map", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "side-channel-weakmap", "direct": false, "version": "1.0.2", "ecosystem": "npm" }, { "name": "signal-exit", "direct": false, "version": "3.0.7", "ecosystem": "npm" }, { "name": "signal-exit", "direct": false, "version": "4.1.0", "ecosystem": "npm" }, { "name": "slash", "direct": false, "version": "3.0.0", "ecosystem": "npm" }, { "name": "slice-ansi", "direct": false, "version": "4.0.0", "ecosystem": "npm" }, { "name": "smart-buffer", "direct": false, "version": "4.2.0", "ecosystem": "npm" }, { "name": "snake-case", "direct": false, "version": "3.0.4", "ecosystem": "npm" }, { "name": "socks", "direct": false, "version": "2.8.9", "ecosystem": "npm" }, { "name": "socks-proxy-agent", "direct": false, "version": "8.0.5", "ecosystem": "npm" }, { "name": "source-map", "direct": false, "version": "0.6.1", "ecosystem": "npm" }, { "name": "source-map", "direct": false, "version": "0.7.6", "ecosystem": "npm" }, { "name": "source-map-support", "direct": false, "version": "0.5.21", "ecosystem": "npm" }, { "name": "sourcemap-codec", "direct": false, "version": "1.4.8", "ecosystem": "npm" }, { "name": "spacetrim", "direct": false, "version": "0.11.59", "ecosystem": "npm" }, { "name": "split-on-first", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "split2", "direct": false, "version": "4.2.0", "ecosystem": "npm" }, { "name": "statuses", "direct": false, "version": "1.5.0", "ecosystem": "npm" }, { "name": "statuses", "direct": false, "version": "2.0.1", "ecosystem": "npm" }, { "name": "stop-iteration-iterator", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "streamifier", "direct": false, "version": "0.1.1", "ecosystem": "npm" }, { "name": "streamx", "direct": false, "version": "2.27.0", "ecosystem": "npm" }, { "name": "strict-uri-encode", "direct": false, "version": "2.0.0", "ecosystem": "npm" }, { "name": "string-width", "direct": false, "version": "4.2.3", "ecosystem": "npm" }, { "name": "string-width", "direct": false, "version": "5.1.2", "ecosystem": "npm" }, { "name": "string-width-cjs", "direct": false, "version": "4.2.3", "ecosystem": "npm" }, { "name": "string.prototype.trim", "direct": false, "version": "1.2.10", "ecosystem": "npm" }, { "name": "string.prototype.trimend", "direct": false, "version": "1.0.9", "ecosystem": "npm" }, { "name": "string.prototype.trimstart", "direct": false, "version": "1.0.8", "ecosystem": "npm" }, { "name": "string_decoder", "direct": false, "version": "1.1.1", "ecosystem": "npm" }, { "name": "string_decoder", "direct": false, "version": "1.3.0", "ecosystem": "npm" }, { "name": "strip-ansi", "direct": false, "version": "6.0.1", "ecosystem": "npm" }, { "name": "strip-ansi", "direct": false, "version": "7.2.0", "ecosystem": "npm" }, { "name": "strip-ansi-cjs", "direct": false, "version": "6.0.1", "ecosystem": "npm" }, { "name": "strip-bom", "direct": false, "version": "3.0.0", "ecosystem": "npm" }, { "name": "strip-final-newline", "direct": false, "version": "2.0.0", "ecosystem": "npm" }, { "name": "strip-json-comments", "direct": false, "version": "3.1.1", "ecosystem": "npm" }, { "name": "strnum", "direct": false, "version": "2.4.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": "supports-preserve-symlinks-flag", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "table-layout", "direct": false, "version": "4.1.1", "ecosystem": "npm" }, { "name": "tar-fs", "direct": false, "version": "3.1.2", "ecosystem": "npm" }, { "name": "tar-stream", "direct": false, "version": "1.6.2", "ecosystem": "npm" }, { "name": "tar-stream", "direct": false, "version": "3.2.0", "ecosystem": "npm" }, { "name": "teex", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "terser", "direct": false, "version": "5.18.2", "ecosystem": "npm" }, { "name": "text-decoder", "direct": false, "version": "1.2.7", "ecosystem": "npm" }, { "name": "tiny-glob", "direct": false, "version": "0.2.9", "ecosystem": "npm" }, { "name": "to-buffer", "direct": false, "version": "1.2.2", "ecosystem": "npm" }, { "name": "to-regex-range", "direct": false, "version": "5.0.1", "ecosystem": "npm" }, { "name": "toidentifier", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "tr46", "direct": false, "version": "5.1.1", "ecosystem": "npm" }, { "name": "trix", "direct": false, "version": "2.0.5", "ecosystem": "npm" }, { "name": "trix", "direct": false, "version": "^2.0.0", "ecosystem": "npm" }, { "name": "tsconfig-paths", "direct": false, "version": "3.15.0", "ecosystem": "npm" }, { "name": "tslib", "direct": false, "version": "2.8.1", "ecosystem": "npm" }, { "name": "tsscmp", "direct": false, "version": "1.0.6", "ecosystem": "npm" }, { "name": "tunnel", "direct": false, "version": "0.0.6", "ecosystem": "npm" }, { "name": "type-check", "direct": false, "version": "0.4.0", "ecosystem": "npm" }, { "name": "type-fest", "direct": false, "version": "0.21.3", "ecosystem": "npm" }, { "name": "type-fest", "direct": false, "version": "4.26.0", "ecosystem": "npm" }, { "name": "type-fest", "direct": false, "version": "4.41.0", "ecosystem": "npm" }, { "name": "type-is", "direct": false, "version": "1.6.18", "ecosystem": "npm" }, { "name": "typed-array-buffer", "direct": false, "version": "1.0.3", "ecosystem": "npm" }, { "name": "typed-array-byte-length", "direct": false, "version": "1.0.3", "ecosystem": "npm" }, { "name": "typed-array-byte-offset", "direct": false, "version": "1.0.4", "ecosystem": "npm" }, { "name": "typed-array-length", "direct": false, "version": "1.0.7", "ecosystem": "npm" }, { "name": "typed-query-selector", "direct": false, "version": "2.12.2", "ecosystem": "npm" }, { "name": "typical", "direct": false, "version": "4.0.0", "ecosystem": "npm" }, { "name": "typical", "direct": false, "version": "7.3.0", "ecosystem": "npm" }, { "name": "unbox-primitive", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "undici", "direct": false, "version": "6.26.0", "ecosystem": "npm" }, { "name": "undici", "direct": false, "version": "7.27.2", "ecosystem": "npm" }, { "name": "undici-types", "direct": false, "version": "6.21.0", "ecosystem": "npm" }, { "name": "unpipe", "direct": false, "version": "1.0.0", "ecosystem": "npm" }, { "name": "upper-case", "direct": false, "version": "2.0.2", "ecosystem": "npm" }, { "name": "upper-case-first", "direct": false, "version": "2.0.2", "ecosystem": "npm" }, { "name": "uri-js", "direct": false, "version": "4.4.1", "ecosystem": "npm" }, { "name": "urijs", "direct": false, "version": "1.17.1", "ecosystem": "npm" }, { "name": "urlpattern-polyfill", "direct": false, "version": "10.1.0", "ecosystem": "npm" }, { "name": "userhome", "direct": false, "version": "1.0.1", "ecosystem": "npm" }, { "name": "util-deprecate", "direct": false, "version": "1.0.2", "ecosystem": "npm" }, { "name": "v8-to-istanbul", "direct": false, "version": "9.3.0", "ecosystem": "npm" }, { "name": "vary", "direct": false, "version": "1.1.2", "ecosystem": "npm" }, { "name": "wait-port", "direct": false, "version": "1.1.0", "ecosystem": "npm" }, { "name": "web-test-runner-qunit", "direct": false, "version": "2.0.0", "ecosystem": "npm" }, { "name": "web-test-runner-qunit", "direct": false, "version": "^2.0.0", "ecosystem": "npm" }, { "name": "webdriver", "direct": false, "version": "9.28.0", "ecosystem": "npm" }, { "name": "webdriver-bidi-protocol", "direct": false, "version": "0.4.1", "ecosystem": "npm" }, { "name": "webdriverio", "direct": false, "version": "9.28.0", "ecosystem": "npm" }, { "name": "webidl-conversions", "direct": false, "version": "7.0.0", "ecosystem": "npm" }, { "name": "whatwg-encoding", "direct": false, "version": "3.1.1", "ecosystem": "npm" }, { "name": "whatwg-mimetype", "direct": false, "version": "4.0.0", "ecosystem": "npm" }, { "name": "whatwg-url", "direct": false, "version": "14.2.0", "ecosystem": "npm" }, { "name": "which", "direct": false, "version": "2.0.2", "ecosystem": "npm" }, { "name": "which", "direct": false, "version": "6.0.1", "ecosystem": "npm" }, { "name": "which-boxed-primitive", "direct": false, "version": "1.1.1", "ecosystem": "npm" }, { "name": "which-builtin-type", "direct": false, "version": "1.2.1", "ecosystem": "npm" }, { "name": "which-collection", "direct": false, "version": "1.0.2", "ecosystem": "npm" }, { "name": "which-typed-array", "direct": false, "version": "1.1.19", "ecosystem": "npm" }, { "name": "word-wrap", "direct": false, "version": "1.2.5", "ecosystem": "npm" }, { "name": "wordwrapjs", "direct": false, "version": "5.1.1", "ecosystem": "npm" }, { "name": "wrap-ansi", "direct": false, "version": "6.2.0", "ecosystem": "npm" }, { "name": "wrap-ansi", "direct": false, "version": "7.0.0", "ecosystem": "npm" }, { "name": "wrap-ansi", "direct": false, "version": "8.1.0", "ecosystem": "npm" }, { "name": "wrap-ansi-cjs", "direct": false, "version": "7.0.0", "ecosystem": "npm" }, { "name": "wrappy", "direct": false, "version": "1.0.2", "ecosystem": "npm" }, { "name": "ws", "direct": false, "version": "7.5.11", "ecosystem": "npm" }, { "name": "ws", "direct": false, "version": "8.21.0", "ecosystem": "npm" }, { "name": "xml-naming", "direct": false, "version": "0.1.0", "ecosystem": "npm" }, { "name": "xtend", "direct": false, "version": "4.0.2", "ecosystem": "npm" }, { "name": "y18n", "direct": false, "version": "5.0.8", "ecosystem": "npm" }, { "name": "yargs", "direct": false, "version": "17.7.2", "ecosystem": "npm" }, { "name": "yargs-parser", "direct": false, "version": "21.1.1", "ecosystem": "npm" }, { "name": "yauzl", "direct": false, "version": "2.10.0", "ecosystem": "npm" }, { "name": "yazl", "direct": false, "version": "2.5.1", "ecosystem": "npm" }, { "name": "ylru", "direct": false, "version": "1.4.0", "ecosystem": "npm" }, { "name": "yocto-queue", "direct": false, "version": "0.1.0", "ecosystem": "npm" }, { "name": "zip-stream", "direct": false, "version": "6.0.1", "ecosystem": "npm" }, { "name": "zod", "direct": false, "version": "3.25.76", "ecosystem": "npm" }, { "name": "action_text-trix", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "action_text-trix", "direct": false, "version": "2.1.16", "ecosystem": "rubygems" }, { "name": "addressable", "direct": false, "version": "2.8.7", "ecosystem": "rubygems" }, { "name": "amq-protocol", "direct": false, "version": "2.3.2", "ecosystem": "rubygems" }, { "name": "ast", "direct": false, "version": "2.4.2", "ecosystem": "rubygems" }, { "name": "aws-eventstream", "direct": false, "version": "1.4.0", "ecosystem": "rubygems" }, { "name": "aws-partitions", "direct": false, "version": "1.1150.0", "ecosystem": "rubygems" }, { "name": "aws-sdk-core", "direct": false, "version": "3.230.0", "ecosystem": "rubygems" }, { "name": "aws-sdk-kms", "direct": false, "version": "1.110.0", "ecosystem": "rubygems" }, { "name": "aws-sigv4", "direct": false, "version": "1.12.1", "ecosystem": "rubygems" }, { "name": "base64", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "base64", "direct": false, "version": "0.3.0", "ecosystem": "rubygems" }, { "name": "bcrypt_pbkdf", "direct": false, "version": "1.1.1", "ecosystem": "rubygems" }, { "name": "beaneater", "direct": false, "version": "1.1.3", "ecosystem": "rubygems" }, { "name": "bigdecimal", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "bigdecimal", "direct": false, "version": "4.1.2", "ecosystem": "rubygems" }, { "name": "bindex", "direct": false, "version": "0.8.1", "ecosystem": "rubygems" }, { "name": "builder", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "builder", "direct": false, "version": "3.3.0", "ecosystem": "rubygems" }, { "name": "bundler", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "bunny", "direct": false, "version": "2.23.0", "ecosystem": "rubygems" }, { "name": "byebug", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "chef-utils", "direct": false, "version": "18.6.2", "ecosystem": "rubygems" }, { "name": "childprocess", "direct": false, "version": "5.1.0", "ecosystem": "rubygems" }, { "name": "chromedriver-helper", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "concurrent-ruby", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "concurrent-ruby", "direct": false, "version": "1.3.6", "ecosystem": "rubygems" }, { "name": "crack", "direct": false, "version": "1.0.0", "ecosystem": "rubygems" }, { "name": "crass", "direct": false, "version": "1.0.6", "ecosystem": "rubygems" }, { "name": "dante", "direct": false, "version": "0.2.0", "ecosystem": "rubygems" }, { "name": "date", "direct": false, "version": "3.4.1", "ecosystem": "rubygems" }, { "name": "debug", "direct": false, "version": "1.10.0", "ecosystem": "rubygems" }, { "name": "declarative", "direct": false, "version": "0.0.20", "ecosystem": "rubygems" }, { "name": "digest-crc", "direct": false, "version": "0.6.5", "ecosystem": "rubygems" }, { "name": "dotenv", "direct": false, "version": "3.1.7", "ecosystem": "rubygems" }, { "name": "drb", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "drb", "direct": false, "version": "2.2.3", "ecosystem": "rubygems" }, { "name": "ed25519", "direct": false, "version": "1.3.0", "ecosystem": "rubygems" }, { "name": "erb", "direct": false, "version": "5.1.1", "ecosystem": "rubygems" }, { "name": "erubi", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "erubi", "direct": false, "version": "1.13.1", "ecosystem": "rubygems" }, { "name": "et-orbi", "direct": false, "version": "1.2.11", "ecosystem": "rubygems" }, { "name": "event_emitter", "direct": false, "version": "0.2.6", "ecosystem": "rubygems" }, { "name": "execjs", "direct": false, "version": "2.10.0", "ecosystem": "rubygems" }, { "name": "faraday", "direct": false, "version": "2.14.0", "ecosystem": "rubygems" }, { "name": "faraday-net_http", "direct": false, "version": "3.4.2", "ecosystem": "rubygems" }, { "name": "ffi", "direct": false, "version": "1.17.1", "ecosystem": "rubygems" }, { "name": "ffi-compiler", "direct": false, "version": "1.3.2", "ecosystem": "rubygems" }, { "name": "fugit", "direct": false, "version": "1.11.1", "ecosystem": "rubygems" }, { "name": "globalid", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "globalid", "direct": false, "version": "1.4.0", "ecosystem": "rubygems" }, { "name": "google-apis-core", "direct": false, "version": "0.15.1", "ecosystem": "rubygems" }, { "name": "google-apis-iamcredentials_v1", "direct": false, "version": "0.22.0", "ecosystem": "rubygems" }, { "name": "google-apis-storage_v1", "direct": false, "version": "0.49.0", "ecosystem": "rubygems" }, { "name": "google-cloud-core", "direct": false, "version": "1.7.1", "ecosystem": "rubygems" }, { "name": "google-cloud-env", "direct": false, "version": "2.2.1", "ecosystem": "rubygems" }, { "name": "google-cloud-errors", "direct": false, "version": "1.4.0", "ecosystem": "rubygems" }, { "name": "google-logging-utils", "direct": false, "version": "0.1.0", "ecosystem": "rubygems" }, { "name": "google-protobuf", "direct": false, "version": "4.29.3", "ecosystem": "rubygems" }, { "name": "googleauth", "direct": false, "version": "1.12.2", "ecosystem": "rubygems" }, { "name": "hashdiff", "direct": false, "version": "1.1.2", "ecosystem": "rubygems" }, { "name": "httpclient", "direct": false, "version": "2.9.0", "ecosystem": "rubygems" }, { "name": "i18n", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "i18n", "direct": false, "version": "1.14.8", "ecosystem": "rubygems" }, { "name": "io-console", "direct": false, "version": "0.8.1", "ecosystem": "rubygems" }, { "name": "irb", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "irb", "direct": false, "version": "1.15.2", "ecosystem": "rubygems" }, { "name": "jmespath", "direct": false, "version": "1.6.2", "ecosystem": "rubygems" }, { "name": "jwt", "direct": false, "version": "2.10.1", "ecosystem": "rubygems" }, { "name": "kramdown", "direct": false, "version": "2.5.1", "ecosystem": "rubygems" }, { "name": "kramdown-parser-gfm", "direct": false, "version": "1.1.0", "ecosystem": "rubygems" }, { "name": "language_server-protocol", "direct": false, "version": "3.17.0.3", "ecosystem": "rubygems" }, { "name": "lint_roller", "direct": false, "version": "1.1.0", "ecosystem": "rubygems" }, { "name": "logger", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "logger", "direct": false, "version": "1.7.0", "ecosystem": "rubygems" }, { "name": "loofah", "direct": false, "version": "2.25.0", "ecosystem": "rubygems" }, { "name": "mail", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "mail", "direct": false, "version": "2.8.1", "ecosystem": "rubygems" }, { "name": "marcel", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "marcel", "direct": false, "version": "1.2.1", "ecosystem": "rubygems" }, { "name": "matrix", "direct": false, "version": "0.4.2", "ecosystem": "rubygems" }, { "name": "mini_mime", "direct": false, "version": "1.1.5", "ecosystem": "rubygems" }, { "name": "mini_portile2", "direct": false, "version": "2.8.9", "ecosystem": "rubygems" }, { "name": "minitest-retry", "direct": false, "version": "0.2.3", "ecosystem": "rubygems" }, { "name": "mixlib-cli", "direct": false, "version": "2.1.8", "ecosystem": "rubygems" }, { "name": "mixlib-config", "direct": false, "version": "3.0.27", "ecosystem": "rubygems" }, { "name": "mixlib-shellout", "direct": false, "version": "3.3.4", "ecosystem": "rubygems" }, { "name": "mono_logger", "direct": false, "version": "1.1.2", "ecosystem": "rubygems" }, { "name": "multi_json", "direct": false, "version": "1.15.0", "ecosystem": "rubygems" }, { "name": "mustermann", "direct": false, "version": "3.0.4", "ecosystem": "rubygems" }, { "name": "mutex_m", "direct": false, "version": "0.3.0", "ecosystem": "rubygems" }, { "name": "net-http", "direct": false, "version": "0.6.0", "ecosystem": "rubygems" }, { "name": "net-http", "direct": false, "version": "0.9.1", "ecosystem": "rubygems" }, { "name": "net-imap", "direct": false, "version": "0.5.5", "ecosystem": "rubygems" }, { "name": "net-pop", "direct": false, "version": "0.1.2", "ecosystem": "rubygems" }, { "name": "net-protocol", "direct": false, "version": "0.2.2", "ecosystem": "rubygems" }, { "name": "net-scp", "direct": false, "version": "4.0.0", "ecosystem": "rubygems" }, { "name": "net-sftp", "direct": false, "version": "4.0.0", "ecosystem": "rubygems" }, { "name": "net-smtp", "direct": false, "version": "0.5.1", "ecosystem": "rubygems" }, { "name": "net-ssh", "direct": false, "version": "7.3.0", "ecosystem": "rubygems" }, { "name": "nio4r", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "nio4r", "direct": false, "version": "2.7.4", "ecosystem": "rubygems" }, { "name": "os", "direct": false, "version": "1.1.4", "ecosystem": "rubygems" }, { "name": "ostruct", "direct": false, "version": "0.6.1", "ecosystem": "rubygems" }, { "name": "parallel", "direct": false, "version": "1.26.3", "ecosystem": "rubygems" }, { "name": "parser", "direct": false, "version": "3.3.9.0", "ecosystem": "rubygems" }, { "name": "pp", "direct": false, "version": "0.6.2", "ecosystem": "rubygems" }, { "name": "prettyprint", "direct": false, "version": "0.2.0", "ecosystem": "rubygems" }, { "name": "protobug", "direct": false, "version": "0.1.0", "ecosystem": "rubygems" }, { "name": "protobug_googleapis_field_behavior_protos", "direct": false, "version": "0.1.0", "ecosystem": "rubygems" }, { "name": "protobug_sigstore_protos", "direct": false, "version": "0.1.0", "ecosystem": "rubygems" }, { "name": "protobug_well_known_protos", "direct": false, "version": "0.1.0", "ecosystem": "rubygems" }, { "name": "psych", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "psych", "direct": false, "version": "5.2.6", "ecosystem": "rubygems" }, { "name": "public_suffix", "direct": false, "version": "6.0.1", "ecosystem": "rubygems" }, { "name": "raabro", "direct": false, "version": "1.4.0", "ecosystem": "rubygems" }, { "name": "racc", "direct": false, "version": "1.8.1", "ecosystem": "rubygems" }, { "name": "rack-protection", "direct": false, "version": "4.1.1", "ecosystem": "rubygems" }, { "name": "rack-session", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "rack-session", "direct": false, "version": "2.1.1", "ecosystem": "rubygems" }, { "name": "rack-test", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "rack-test", "direct": false, "version": "2.2.0", "ecosystem": "rubygems" }, { "name": "rackup", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "rackup", "direct": false, "version": "2.2.1", "ecosystem": "rubygems" }, { "name": "ractor-dispatch", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "ractor-dispatch", "direct": false, "version": "0.2.0", "ecosystem": "rubygems" }, { "name": "rails-dom-testing", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "rails-dom-testing", "direct": false, "version": "2.3.0", "ecosystem": "rubygems" }, { "name": "rails-html-sanitizer", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "rails-html-sanitizer", "direct": false, "version": "1.7.0", "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.2.1", "ecosystem": "rubygems" }, { "name": "rake", "direct": false, "version": "13.3.0", "ecosystem": "rubygems" }, { "name": "rb-fsevent", "direct": false, "version": "0.11.2", "ecosystem": "rubygems" }, { "name": "rb-inotify", "direct": false, "version": "0.11.1", "ecosystem": "rubygems" }, { "name": "rbtree", "direct": false, "version": "0.4.7", "ecosystem": "rubygems" }, { "name": "rdoc", "direct": false, "version": "6.15.0", "ecosystem": "rubygems" }, { "name": "regexp_parser", "direct": false, "version": "2.10.0", "ecosystem": "rubygems" }, { "name": "reline", "direct": false, "version": "0.6.1", "ecosystem": "rubygems" }, { "name": "representable", "direct": false, "version": "3.2.0", "ecosystem": "rubygems" }, { "name": "retriable", "direct": false, "version": "3.1.2", "ecosystem": "rubygems" }, { "name": "rubocop-ast", "direct": false, "version": "1.46.0", "ecosystem": "rubygems" }, { "name": "ruby-progressbar", "direct": false, "version": "1.13.0", "ecosystem": "rubygems" }, { "name": "ruby2_keywords", "direct": false, "version": "0.0.5", "ecosystem": "rubygems" }, { "name": "rufus-scheduler", "direct": false, "version": "3.9.2", "ecosystem": "rubygems" }, { "name": "sass-embedded", "direct": false, "version": "1.83.4", "ecosystem": "rubygems" }, { "name": "securerandom", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "securerandom", "direct": false, "version": "0.4.1", "ecosystem": "rubygems" }, { "name": "serverengine", "direct": false, "version": "2.0.7", "ecosystem": "rubygems" }, { "name": "set", "direct": false, "version": "1.1.2", "ecosystem": "rubygems" }, { "name": "sigdump", "direct": false, "version": "0.2.5", "ecosystem": "rubygems" }, { "name": "signet", "direct": false, "version": "0.19.0", "ecosystem": "rubygems" }, { "name": "sigstore", "direct": false, "version": "0.2.2", "ecosystem": "rubygems" }, { "name": "sigstore-cli", "direct": false, "version": "0.2.2", "ecosystem": "rubygems" }, { "name": "sinatra", "direct": false, "version": "4.1.1", "ecosystem": "rubygems" }, { "name": "sorted_set", "direct": false, "version": "1.0.3", "ecosystem": "rubygems" }, { "name": "spring", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "spring-watcher-listen", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "sprockets", "direct": false, "version": "4.2.1", "ecosystem": "rubygems" }, { "name": "sshkit", "direct": false, "version": "1.23.2", "ecosystem": "rubygems" }, { "name": "stackprof", "direct": false, "version": "0.2.28", "ecosystem": "rubygems" }, { "name": "stringio", "direct": false, "version": "3.1.7", "ecosystem": "rubygems" }, { "name": "tailwindcss-ruby", "direct": false, "version": "3.4.17", "ecosystem": "rubygems" }, { "name": "thor", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "thor", "direct": false, "version": "1.3.2", "ecosystem": "rubygems" }, { "name": "thor", "direct": false, "version": "1.4.0", "ecosystem": "rubygems" }, { "name": "tilt", "direct": false, "version": "2.6.1", "ecosystem": "rubygems" }, { "name": "timeout", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "timeout", "direct": false, "version": "0.4.3", "ecosystem": "rubygems" }, { "name": "tomlrb", "direct": false, "version": "2.0.3", "ecosystem": "rubygems" }, { "name": "trailblazer-option", "direct": false, "version": "0.1.2", "ecosystem": "rubygems" }, { "name": "tsort", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "tsort", "direct": false, "version": "0.2.0", "ecosystem": "rubygems" }, { "name": "tzinfo", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "tzinfo", "direct": false, "version": "2.0.6", "ecosystem": "rubygems" }, { "name": "uber", "direct": false, "version": "0.1.0", "ecosystem": "rubygems" }, { "name": "unicode-display_width", "direct": false, "version": "3.1.4", "ecosystem": "rubygems" }, { "name": "unicode-emoji", "direct": false, "version": "4.2.0", "ecosystem": "rubygems" }, { "name": "websocket", "direct": false, "version": "1.2.11", "ecosystem": "rubygems" }, { "name": "websocket-driver", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "websocket-driver", "direct": false, "version": "0.7.7", "ecosystem": "rubygems" }, { "name": "websocket-extensions", "direct": false, "version": "0.1.5", "ecosystem": "rubygems" }, { "name": "xpath", "direct": false, "version": "3.2.0", "ecosystem": "rubygems" }, { "name": "zeitwerk", "direct": false, "version": null, "ecosystem": "rubygems" }, { "name": "zeitwerk", "direct": false, "version": "2.7.3", "ecosystem": "rubygems" } ], "collected": true, "truncated": false, "total_count": 1056, "direct_count": 97, "indirect_count": 959 } }, "maintainership": { "issues": { "open_prs": 1078, "merged_prs": 26641, "open_issues": 477, "closed_ratio": 0.974, "closed_issues": 18148, "closed_unmerged_prs": 11319 }, "bus_factor": 10, "bot_contributors": 0, "top_contributors": [ { "type": "User", "login": "rafaelfranca", "commits": 9074, "avatar_url": "https://avatars.githubusercontent.com/u/47848?v=4" }, { "type": "User", "login": "tenderlove", "commits": 5321, "avatar_url": "https://avatars.githubusercontent.com/u/3124?v=4" }, { "type": "User", "login": "kamipo", "commits": 4216, "avatar_url": "https://avatars.githubusercontent.com/u/12642?v=4" }, { "type": "User", "login": "jeremy", "commits": 3757, "avatar_url": "https://avatars.githubusercontent.com/u/199?v=4" }, { "type": "User", "login": "byroot", "commits": 2866, "avatar_url": "https://avatars.githubusercontent.com/u/44640?v=4" }, { "type": "User", "login": "fxn", "commits": 2748, "avatar_url": "https://avatars.githubusercontent.com/u/3387?v=4" }, { "type": "User", "login": "josevalim", "commits": 2358, "avatar_url": "https://avatars.githubusercontent.com/u/9582?v=4" }, { "type": "User", "login": "eileencodes", "commits": 1985, "avatar_url": "https://avatars.githubusercontent.com/u/1080678?v=4" }, { "type": "User", "login": "senny", "commits": 1626, "avatar_url": "https://avatars.githubusercontent.com/u/5402?v=4" }, { "type": "User", "login": "carlosantoniodasilva", "commits": 1622, "avatar_url": "https://avatars.githubusercontent.com/u/26328?v=4" } ], "contributors_sampled": 100, "top_contributor_share": 0.129 }, "quality_signals": { "has_ci": true, "has_tests": true, "ci_workflows": [ "devcontainer-shellcheck.yml", "devcontainer-smoke-test.yml", "labeler.yml", "more-info-needed.yml", "rail_inspector.yml", "rails-new-docker.yml", "rails_releaser_tests.yml", "release.yml", "stale.yml" ], "has_docs_dir": false, "linter_configs": [ ".rubocop.yml", "eslint.config.mjs" ], "has_editorconfig": false, "has_linter_config": true, "has_precommit_config": false }, "security_signals": { "lockfiles": [ "Gemfile.lock", "yarn.lock" ], "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": "15 out of 15 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": 2, "reason": "badge detected: InProgress", "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices" }, { "name": "Code-Review", "score": 10, "reason": "all changesets reviewed", "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review" }, { "name": "Contributors", "score": 10, "reason": "project has 83 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": 0, "reason": "no update tool detected", "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool" }, { "name": "Fuzzing", "score": 0, "reason": "project is not fuzzed", "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing" }, { "name": "License", "score": 10, "reason": "license file detected", "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license" }, { "name": "Maintained", "score": 10, "reason": "30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10", "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained" }, { "name": "Packaging", "score": null, "reason": "packaging workflow not detected", "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging" }, { "name": "Pinned-Dependencies", "score": 2, "reason": "dependency not pinned by hash detected -- score normalized to 2", "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies" }, { "name": "SAST", "score": 0, "reason": "SAST tool is not run on all commits -- score normalized to 0", "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast" }, { "name": "Security-Policy", "score": 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": 7, "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": "113 existing vulnerabilities detected", "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities" } ], "commit": "964294f99bfcfc0131e73255db8b6620fd726f01", "ran_at": "2026-07-21T23:15:23Z", "aggregate_score": 5.8, "scorecard_version": "v5.5.0" }, "has_codeql_workflow": false, "has_security_policy": true, "has_dependabot_config": false }, "contribution_flow": { "collected": true, "ci_last_run_at": "2026-07-21T23:14:12Z", "oldest_open_prs": [ { "number": 37724, "created_at": "2019-11-15T00:53:54Z", "last_comment_at": "2024-04-28T06:23:01Z", "last_comment_author": "marckohlbrugge" }, { "number": 37807, "created_at": "2019-11-26T22:07:48Z", "last_comment_at": "2026-05-29T10:32:40Z", "last_comment_author": "GermanDZ" }, { "number": 38146, "created_at": "2020-01-03T09:27:56Z", "last_comment_at": "2026-05-15T21:23:20Z", "last_comment_author": "rafaelfranca" }, { "number": 38721, "created_at": "2020-03-13T19:15:01Z", "last_comment_at": "2021-07-20T03:52:34Z", "last_comment_author": "chaffeqa" }, { "number": 39113, "created_at": "2020-05-02T09:25:14Z", "last_comment_at": "2025-11-13T20:04:10Z", "last_comment_author": "jagthedrummer" }, { "number": 39150, "created_at": "2020-05-05T05:33:01Z", "last_comment_at": "2022-03-06T04:18:32Z", "last_comment_author": "rails-bot" }, { "number": 39207, "created_at": "2020-05-09T14:19:33Z", "last_comment_at": "2021-07-12T10:48:12Z", "last_comment_author": "p8" }, { "number": 39299, "created_at": "2020-05-15T15:35:45Z", "last_comment_at": "2025-11-16T02:00:31Z", "last_comment_author": "nerijunior" }, { "number": 39445, "created_at": "2020-05-27T01:41:09Z", "last_comment_at": "2024-08-16T06:08:59Z", "last_comment_author": "lucianghinda" }, { "number": 39473, "created_at": "2020-05-29T15:03:43Z", "last_comment_at": "2022-01-24T03:35:47Z", "last_comment_author": "rails-bot" }, { "number": 39476, "created_at": "2020-05-29T19:01:22Z", "last_comment_at": "2021-06-01T01:20:36Z", "last_comment_author": "lfalcao" }, { "number": 39487, "created_at": "2020-05-30T23:15:22Z", "last_comment_at": "2022-04-20T21:18:48Z", "last_comment_author": "rails-bot" }, { "number": 39585, "created_at": "2020-06-10T05:08:19Z", "last_comment_at": "2024-07-01T05:07:30Z", "last_comment_author": "chrisandreae" }, { "number": 39623, "created_at": "2020-06-14T05:32:16Z", "last_comment_at": "2024-05-07T20:59:48Z", "last_comment_author": "collimarco" }, { "number": 39863, "created_at": "2020-07-17T14:24:10Z", "last_comment_at": "2025-03-17T17:23:29Z", "last_comment_author": "abdelbk" }, { "number": 40337, "created_at": "2020-10-05T18:27:44Z", "last_comment_at": "2023-12-23T23:07:31Z", "last_comment_author": "northeastprince" }, { "number": 40401, "created_at": "2020-10-16T16:51:21Z", "last_comment_at": "2023-04-22T01:37:05Z", "last_comment_author": "agrobbin" }, { "number": 40525, "created_at": "2020-11-03T18:06:08Z", "last_comment_at": "2025-12-22T22:21:23Z", "last_comment_author": "benjaaguila" }, { "number": 41004, "created_at": "2021-01-03T17:17:35Z", "last_comment_at": "2025-05-22T18:41:33Z", "last_comment_author": "james-caresnap" }, { "number": 41136, "created_at": "2021-01-16T01:58:42Z", "last_comment_at": "2022-01-24T07:36:29Z", "last_comment_author": "rails-bot" } ], "last_merged_pr_at": "2026-07-21T23:14:06Z", "ci_last_conclusion": null, "oldest_open_issues": [ { "number": 3508, "created_at": "2011-11-04T04:11:25Z", "last_comment_at": "2026-05-15T20:27:46Z", "last_comment_author": "github-actions" }, { "number": 7047, "created_at": "2012-07-13T18:30:14Z", "last_comment_at": "2020-11-03T03:46:56Z", "last_comment_author": "bobmazanec" }, { "number": 7218, "created_at": "2012-07-31T21:30:49Z", "last_comment_at": "2019-01-19T04:39:32Z", "last_comment_author": "sheldond" }, { "number": 12940, "created_at": "2013-11-18T17:04:55Z", "last_comment_at": "2023-11-16T05:43:24Z", "last_comment_author": "giovannism20" }, { "number": 13873, "created_at": "2014-01-29T16:29:44Z", "last_comment_at": "2021-05-18T03:01:33Z", "last_comment_author": "tbcooney" }, { "number": 14358, "created_at": "2014-03-12T12:03:50Z", "last_comment_at": "2024-06-16T19:02:24Z", "last_comment_author": "willianveiga" }, { "number": 14698, "created_at": "2014-04-11T02:30:50Z", "last_comment_at": "2023-10-09T19:54:57Z", "last_comment_author": "lcreid" }, { "number": 15097, "created_at": "2014-05-13T21:51:48Z", "last_comment_at": "2021-07-13T10:33:39Z", "last_comment_author": "p8" }, { "number": 15470, "created_at": "2014-06-02T16:24:57Z", "last_comment_at": "2021-07-11T20:18:00Z", "last_comment_author": "p8" }, { "number": 15589, "created_at": "2014-06-09T14:39:03Z", "last_comment_at": "2017-07-10T17:29:12Z", "last_comment_author": "Edouard-chin" }, { "number": 15854, "created_at": "2014-06-22T04:04:53Z", "last_comment_at": "2026-01-31T16:21:06Z", "last_comment_author": "eric1234" }, { "number": 16452, "created_at": "2014-08-10T18:35:37Z", "last_comment_at": "2026-02-05T02:30:53Z", "last_comment_author": "eric1234" }, { "number": 16823, "created_at": "2014-09-05T22:17:25Z", "last_comment_at": "2015-04-20T18:18:56Z", "last_comment_author": "al2o3cr" }, { "number": 17225, "created_at": "2014-10-10T04:54:28Z", "last_comment_at": "2019-07-01T22:19:04Z", "last_comment_author": "blairanderson" }, { "number": 17325, "created_at": "2014-10-19T17:58:52Z", "last_comment_at": "2022-11-16T05:56:16Z", "last_comment_author": "lazaronixon" }, { "number": 17466, "created_at": "2014-10-31T21:14:29Z", "last_comment_at": "2025-01-04T07:44:00Z", "last_comment_author": "joshuay03" }, { "number": 17599, "created_at": "2014-11-12T20:42:49Z", "last_comment_at": "2019-12-21T10:34:42Z", "last_comment_author": "arknamal" }, { "number": 17706, "created_at": "2014-11-21T20:05:24Z", "last_comment_at": "2023-03-17T14:47:49Z", "last_comment_author": "hrdwdmrbl" }, { "number": 17887, "created_at": "2014-12-02T20:27:25Z", "last_comment_at": "2016-04-07T16:56:34Z", "last_comment_author": "haruska" }, { "number": 18818, "created_at": "2015-02-05T04:15:45Z", "last_comment_at": "2022-09-07T18:31:06Z", "last_comment_author": "klondikemarlen" } ] } }, "config": { "disabled_metrics": [], "disabled_categories": [], "disabled_components": {} }, "source": { "url": "https://github.com/rails/rails", "host": "github.com", "name": "rails", "owner": "rails" }, "metrics": { "overall": { "key": "overall", "band": "excellent", "name": "Overall health", "note": null, "notes": [], "value": 86, "inputs": { "security": 66, "vitality": 96, "community": 97, "governance": 91, "engineering": 76 }, "components": [] }, "categories": [ { "key": "vitality", "band": "excellent", "name": "Vitality", "value": 96, "weight": 0.22, "metrics": [ { "key": "development_activity", "band": "excellent", "name": "Development activity", "note": null, "notes": [], "value": 100, "inputs": { "commits_last_year": 3266, "human_commit_share": 1, "days_since_last_push": 0, "active_weeks_last_year": 52 }, "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": "52/52 weeks with commits", "points": 36, "status": "met", "details": [ { "code": "commit_cadence_weeks", "params": { "weeks": 52 } } ], "max_points": 36 }, { "key": "commit_volume", "name": "Commit volume", "detail": "3266 commits in the last year", "points": 18, "status": "met", "details": [ { "code": "commits_last_year", "params": { "count": 3266 } } ], "max_points": 18 }, { "key": "openssf_scorecard_maintained", "name": "OpenSSF Scorecard: Maintained", "detail": "30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10", "points": 10, "status": "met", "details": [], "max_points": 10 } ] }, { "key": "release_discipline", "band": "excellent", "name": "Release discipline", "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.", "notes": [ { "code": "excluded_no_data", "params": { "components": [ "openssf_scorecard_signed_releases" ] } }, { "code": "weights_renormalized", "params": {} } ], "value": 90, "inputs": { "releases_count": 100, "latest_release_tag": "v8.1.3", "releases_from_tags": false, "days_since_latest_release": 119, "mean_days_between_releases": 16.3 }, "components": [ { "key": "ships_releases", "name": "Ships releases", "detail": "100 releases published", "points": 27, "status": "met", "details": [ { "code": "releases_published", "params": { "count": 100 } } ], "max_points": 27 }, { "key": "release_recency", "name": "Release recency", "detail": "latest release 119 days ago", "points": 27, "status": "partial", "details": [ { "code": "release_recency", "params": { "days": 119 } } ], "max_points": 36 }, { "key": "release_cadence", "name": "Release cadence", "detail": "a release every ~16.3 days", "points": 27, "status": "met", "details": [ { "code": "release_cadence", "params": { "gap": 16.3 } } ], "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": 97, "weight": 0.18, "metrics": [ { "key": "popularity", "band": "excellent", "name": "Popularity & adoption", "note": null, "notes": [], "value": 100, "inputs": { "forks": 22363, "stars": 58641, "watchers": 2334, "growth_state": "organic", "growth_factor_pct": 100 }, "components": [ { "key": "stars", "name": "Stars", "detail": "58,641 stars", "points": 60, "status": "met", "details": [ { "code": "stars", "params": { "count": 58641 } } ], "max_points": 60 }, { "key": "forks", "name": "Forks", "detail": "22,363 forks", "points": 25, "status": "met", "details": [ { "code": "forks", "params": { "count": 22363 } } ], "max_points": 25 }, { "key": "watchers", "name": "Watchers", "detail": "2,334 watchers", "points": 15, "status": "met", "details": [ { "code": "watchers", "params": { "count": 2334 } } ], "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 (MIT)", "points": 22.5, "status": "met", "details": [ { "code": "license_standard", "params": {} }, { "code": "license_spdx", "params": { "spdx": "MIT" } } ], "max_points": 22.5 }, { "key": "contributing_guide", "name": "CONTRIBUTING guide", "detail": null, "points": 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": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.", "notes": [ { "code": "excluded_no_data", "params": { "components": [ "registry_dependents" ] } }, { "code": "weights_renormalized", "params": {} } ], "value": 100, "inputs": { "packages": [ "rails", "@rails/actiontext", "@rails/actioncable", "railties", "@rails/activestorage", "activejob", "actionpack", "actiontext" ], "dependents": null, "ecosystems": "npm, rubygems", "total_downloads": 3438251676, "monthly_downloads": 12634223 }, "components": [ { "key": "monthly_downloads", "name": "Monthly downloads", "detail": "12,634,223 downloads/month across npm, rubygems", "points": 80, "status": "met", "details": [ { "code": "downloads_monthly", "params": { "count": 12634223, "ecosystems": "npm, rubygems" } } ], "max_points": 80 }, { "key": "registry_dependents", "name": "Registry dependents", "detail": "not reported by this ecosystem", "points": 0, "status": "excluded", "details": [ { "code": "not_reported_by_this_ecosystem", "params": {} } ], "max_points": 20 } ] } ], "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?" }, { "key": "governance", "band": "excellent", "name": "Sustainability & Governance", "value": 91, "weight": 0.24, "metrics": [ { "key": "maintainer_resilience", "band": "excellent", "name": "Maintainer resilience (bus factor)", "note": null, "notes": [], "value": 97, "inputs": { "bus_factor": 10, "contributors_sampled": 100, "top_contributor_share": 0.129 }, "components": [ { "key": "bus_factor", "name": "Bus factor", "detail": "10 contributor(s) cover half of all commits", "points": 54, "status": "met", "details": [ { "code": "bus_factor", "params": { "count": 10 } } ], "max_points": 54 }, { "key": "commit_distribution", "name": "Commit distribution", "detail": "top contributor authored 13% of commits", "points": 19.6, "status": "partial", "details": [ { "code": "top_contributor_share", "params": { "share": 13 } } ], "max_points": 22.5 }, { "key": "contributor_breadth", "name": "Contributor breadth", "detail": "100 contributors", "points": 13.5, "status": "met", "details": [ { "code": "contributors_sampled", "params": { "count": 100 } } ], "max_points": 13.5 }, { "key": "openssf_scorecard_contributors", "name": "OpenSSF Scorecard: Contributors", "detail": "project has 83 contributing companies or organizations", "points": 10, "status": "met", "details": [], "max_points": 10 } ] }, { "key": "responsiveness", "band": "excellent", "name": "Issue & PR responsiveness", "note": null, "notes": [], "value": 87, "inputs": { "merged_prs": 26641, "open_issues": 477, "closed_issues": 18148, "issue_closed_ratio": 0.974, "closed_unmerged_prs": 11319 }, "components": [ { "key": "issue_resolution", "name": "Issue resolution", "detail": "97% of issues closed", "points": 45.5, "status": "partial", "details": [ { "code": "issues_closed_share", "params": { "share": 97 } } ], "max_points": 46.75 }, { "key": "pr_acceptance", "name": "PR acceptance", "detail": "26641/37960 decided PRs merged", "points": 26.8, "status": "partial", "details": [ { "code": "decided_prs_merged", "params": { "merged": 26641, "decided": 37960 } } ], "max_points": 38.25 }, { "key": "openssf_scorecard_code_review", "name": "OpenSSF Scorecard: Code-Review", "detail": "all changesets reviewed", "points": 15, "status": "met", "details": [], "max_points": 15 } ] }, { "key": "stewardship", "band": "good", "name": "Ownership & stewardship", "note": null, "notes": [], "value": 80, "inputs": { "followers": 2680, "owner_type": "Organization", "is_verified": null, "owner_login": "rails", "public_repos": 127, "account_age_days": 6684 }, "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": "2,680 followers of rails", "points": 24.6, "status": "partial", "details": [ { "code": "owner_followers", "params": { "count": 2680, "login": "rails" } } ], "max_points": 25 }, { "key": "track_record", "name": "Track record", "detail": "127 public repos, account ~18 yr old", "points": 25, "status": "met", "details": [ { "code": "public_repos", "params": { "count": 127 } }, { "code": "account_age_years", "params": { "years": 18 } } ], "max_points": 25 } ] }, { "key": "package_maintenance", "band": "excellent", "name": "Package maintenance", "note": null, "notes": [], "value": 100, "inputs": { "packages": [ "rails", "@rails/actiontext", "@rails/actioncable", "railties", "@rails/activestorage", "activejob", "actionpack", "actiontext" ], "ecosystems": "npm, rubygems", "any_deprecated": false, "min_days_since_publish": 119 }, "components": [ { "key": "published_resolvable", "name": "Published & resolvable", "detail": "8 package(s) on npm, rubygems", "points": 25, "status": "met", "details": [ { "code": "packages_published", "params": { "count": 8, "ecosystems": "npm, rubygems" } } ], "max_points": 25 }, { "key": "publish_recency", "name": "Publish recency", "detail": "latest publish 119 days ago", "points": 35, "status": "met", "details": [ { "code": "publish_recency", "params": { "days": 119 } } ], "max_points": 35 }, { "key": "version_history", "name": "Version history", "detail": "516 published versions", "points": 20, "status": "met", "details": [ { "code": "published_versions", "params": { "count": 516 } } ], "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": 76, "weight": 0.2, "metrics": [ { "key": "engineering_practices", "band": "good", "name": "Engineering practices", "note": null, "notes": [], "value": 84, "inputs": { "has_ci": true, "has_tests": true, "has_editorconfig": false, "has_linter_config": true, "has_precommit_config": false }, "components": [ { "key": "ci_workflows", "name": "CI workflows", "detail": "9 workflow(s)", "points": 24, "status": "met", "details": [ { "code": "ci_workflows", "params": { "count": 9 } } ], "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": ".rubocop.yml, eslint.config.mjs", "points": 16, "status": "met", "details": [ { "code": "file_list", "params": { "files": ".rubocop.yml, eslint.config.mjs" } } ], "max_points": 16 }, { "key": "pre_commit_hooks", "name": "Pre-commit hooks", "detail": null, "points": 0, "status": "missed", "details": [], "max_points": 9.6 }, { "key": "editorconfig", "name": ".editorconfig", "detail": null, "points": 0, "status": "missed", "details": [], "max_points": 6.4 }, { "key": "openssf_scorecard_ci_tests", "name": "OpenSSF Scorecard: CI-Tests", "detail": "15 out of 15 merged PRs checked by a CI test -- score normalized to 10", "points": 20, "status": "met", "details": [], "max_points": 20 } ] }, { "key": "documentation", "band": "moderate", "name": "Documentation", "note": null, "notes": [], "value": 65, "inputs": { "topics": [ "rails", "mvc", "html", "activerecord", "activejob", "ruby", "framework" ], "has_wiki": false, "homepage": "https://rubyonrails.org", "has_readme": true, "has_docs_dir": false, "has_description": true }, "components": [ { "key": "readme", "name": "README", "detail": null, "points": 30, "status": "met", "details": [], "max_points": 30 }, { "key": "documentation_directory", "name": "Documentation directory", "detail": null, "points": 0, "status": "missed", "details": [], "max_points": 25 }, { "key": "documentation_homepage_site", "name": "Documentation / homepage site", "detail": "https://rubyonrails.org", "points": 15, "status": "met", "details": [], "max_points": 15 }, { "key": "repository_description", "name": "Repository description", "detail": null, "points": 10, "status": "met", "details": [], "max_points": 10 }, { "key": "topics", "name": "Topics", "detail": "7 topics", "points": 10, "status": "met", "details": [ { "code": "topics_count", "params": { "count": 7 } } ], "max_points": 10 }, { "key": "wiki", "name": "Wiki", "detail": null, "points": 0, "status": "missed", "details": [], "max_points": 10 } ] } ], "description": "Are baseline engineering and documentation practices in place?" }, { "key": "security", "band": "moderate", "name": "Security", "value": 66, "weight": 0.16, "metrics": [ { "key": "security_posture", "band": "moderate", "name": "Security posture", "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.", "notes": [ { "code": "excluded_no_data", "params": { "components": [ "packaging", "signed_releases" ] } }, { "code": "weights_renormalized", "params": {} } ], "value": 58, "inputs": { "source": "openssf_scorecard", "checks_evaluated": 16, "scorecard_version": "v5.5.0", "checks_inconclusive": 2, "scorecard_aggregate": 5.8 }, "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": "15 out of 15 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": "badge detected: InProgress", "points": 0.5, "status": "partial", "details": [], "max_points": 2.5 }, { "key": "code_review", "name": "Code-Review", "detail": "all changesets reviewed", "points": 7.5, "status": "met", "details": [], "max_points": 7.5 }, { "key": "contributors", "name": "Contributors", "detail": "project has 83 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": "no update tool detected", "points": 0, "status": "missed", "details": [], "max_points": 7.5 }, { "key": "fuzzing", "name": "Fuzzing", "detail": "project is not fuzzed", "points": 0, "status": "missed", "details": [], "max_points": 5 }, { "key": "license", "name": "License", "detail": "license file detected", "points": 2.5, "status": "met", "details": [], "max_points": 2.5 }, { "key": "maintained", "name": "Maintained", "detail": "30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10", "points": 7.5, "status": "met", "details": [], "max_points": 7.5 }, { "key": "packaging", "name": "Packaging", "detail": "packaging workflow not detected", "points": 0, "status": "excluded", "details": [ { "code": "no_data", "params": {} } ], "max_points": 5 }, { "key": "pinned_dependencies", "name": "Pinned-Dependencies", "detail": "dependency not pinned by hash detected -- score normalized to 2", "points": 1, "status": "partial", "details": [], "max_points": 5 }, { "key": "sast", "name": "SAST", "detail": "SAST tool is not run on all commits -- score normalized to 0", "points": 0, "status": "missed", "details": [], "max_points": 5 }, { "key": "security_policy", "name": "Security-Policy", "detail": "security policy file 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": 5.2, "status": "partial", "details": [], "max_points": 7.5 }, { "key": "vulnerabilities", "name": "Vulnerabilities", "detail": "113 existing vulnerabilities detected", "points": 0, "status": "missed", "details": [], "max_points": 7.5 } ] }, { "key": "dependency_advisories", "band": "excellent", "name": "Dependency advisories", "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:@rails/actiontext@8.1.300 runtime dependency closure — what installing the published package pulls in — 2 packages. Reachability is not analyzed.", "notes": [ { "code": "excluded_no_data", "params": { "components": [ "no_advisories_left_outstanding" ] } }, { "code": "weights_renormalized", "params": {} }, { "code": "advisories_scope_published", "params": { "package": "npm:@rails/actiontext@8.1.300", "assessed": 2 } }, { "code": "advisories_reachability", "params": {} } ], "value": 100, "inputs": { "source": "osv", "advisories": 0, "affected_packages": 0, "assessed_packages": 2, "unassessed_packages": 0, "affected_by_severity": "none", "direct_affected_packages": 0 }, "components": [ { "key": "direct_dependencies_free_of_known_advisories", "name": "Direct dependencies free of known advisories", "detail": "no direct dependency carries a known advisory", "points": 35, "status": "met", "details": [ { "code": "no_direct_advisories", "params": {} } ], "max_points": 35 }, { "key": "indirect_dependencies_free_of_known_advisories", "name": "Indirect dependencies free of known advisories", "detail": "no indirect dependency carries a known advisory", "points": 25, "status": "met", "details": [ { "code": "no_indirect_advisories", "params": {} } ], "max_points": 25 }, { "key": "no_advisories_left_outstanding", "name": "No advisories left outstanding", "detail": "no advisory carries a publication date", "points": 0, "status": "excluded", "details": [ { "code": "advisories_no_publication_date", "params": {} } ], "max_points": 40 } ] }, { "key": "malicious_dependencies", "band": "excellent", "name": "Malicious dependencies", "note": null, "notes": [], "value": 100, "inputs": { "source": "osv", "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored", "packages": [], "red_flag": false, "assessed_packages": 2, "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": 22 }, "components": [ { "key": "policy_exposure_multiplier", "name": "Policy exposure multiplier", "detail": "no confirmed policy-scope location match", "points": 100, "status": "met", "details": [ { "code": "jurisdiction_no_match", "params": {} } ], "max_points": 100 } ] } ], "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?" }, { "key": "ai_readiness", "band": "moderate", "name": "AI Readiness", "value": 61, "weight": 0, "metrics": [ { "key": "ai_agent_context", "band": "excellent", "name": "Agent context & guidance", "note": null, "notes": [], "value": 85, "inputs": { "has_llms_txt": false, "legible_history_share": 0.87, "agent_instruction_files": [ "AGENTS.md" ], "agent_instruction_max_bytes": 6905 }, "components": [ { "key": "agent_instructions", "name": "Agent instructions", "detail": "AGENTS.md", "points": 45, "status": "met", "details": [ { "code": "file_list", "params": { "files": "AGENTS.md" } } ], "max_points": 45 }, { "key": "machine_readable_docs_llms_txt", "name": "Machine-readable docs (llms.txt)", "detail": null, "points": 0, "status": "missed", "details": [], "max_points": 15 }, { "key": "legible_commit_history", "name": "Legible commit history", "detail": "87 of 100 human commits state their intent (structured subject or explanatory body)", "points": 40, "status": "met", "details": [ { "code": "legible_history", "params": { "legible": 87, "sampled": 100 } } ], "max_points": 40 } ] }, { "key": "ai_verify_loop", "band": "moderate", "name": "Verify loop (build / test / typecheck)", "note": null, "notes": [], "value": 53, "inputs": { "has_nix": false, "has_tests": true, "lockfiles": [ "Gemfile.lock", "yarn.lock" ], "has_dockerfile": true, "typed_language": false, "bootstrap_files": [], "has_devcontainer": true, "has_linter_config": true, "typecheck_configs": [], "agent_commit_share": 0.04, "toolchain_manifests": [], "dependency_bot_commit_share": 0 }, "components": [ { "key": "one_command_bootstrap", "name": "One-command bootstrap", "detail": null, "points": 0, "status": "missed", "details": [], "max_points": 18 }, { "key": "automated_tests", "name": "Automated tests", "detail": null, "points": 22, "status": "met", "details": [], "max_points": 22 }, { "key": "lint_format_config", "name": "Lint / format config", "detail": ".rubocop.yml, eslint.config.mjs", "points": 11, "status": "met", "details": [ { "code": "file_list", "params": { "files": ".rubocop.yml, eslint.config.mjs" } } ], "max_points": 11 }, { "key": "static_type_checking", "name": "Static type checking", "detail": null, "points": 0, "status": "missed", "details": [], "max_points": 11 }, { "key": "reproducible_environment", "name": "Reproducible environment", "detail": "devcontainer, Dockerfile, lockfile", "points": 10, "status": "met", "details": [ { "code": "file_list", "params": { "files": "devcontainer, Dockerfile, lockfile" } } ], "max_points": 10 }, { "key": "demonstrated_agent_practice", "name": "Demonstrated agent practice", "detail": "4 of the last 100 commits agent-authored or agent-credited", "points": 8, "status": "partial", "details": [ { "code": "agent_authored_commits", "params": { "count": 4, "sampled": 100 } } ], "max_points": 10 }, { "key": "automated_maintenance", "name": "Automated maintenance", "detail": "no automated dependency updates observed", "points": 0, "status": "missed", "details": [ { "code": "no_dependency_automation", "params": {} } ], "max_points": 8 }, { "key": "openssf_scorecard_pinned_dependencies", "name": "OpenSSF Scorecard: Pinned-Dependencies", "detail": "dependency not pinned by hash detected -- score normalized to 2", "points": 2, "status": "partial", "details": [], "max_points": 10 } ] }, { "key": "ai_code_legibility", "band": "moderate", "name": "Code legibility for models", "note": null, "notes": [], "value": 54, "inputs": { "primary_language": "Ruby", "largest_source_bytes": 449565, "source_files_sampled": 3497, "oversized_source_files": 39 }, "components": [ { "key": "type_checkable_code", "name": "Type-checkable code", "detail": "Ruby without a type-check config", "points": 0, "status": "missed", "details": [ { "code": "no_typecheck_config_language", "params": { "language": "Ruby" } } ], "max_points": 45 }, { "key": "manageable_file_sizes", "name": "Manageable file sizes", "detail": "39/3497 source files over 60KB", "points": 54.4, "status": "partial", "details": [ { "code": "oversized_source_files", "params": { "kb": 60, "sampled": 3497, "oversized": 39 } } ], "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": [], "report_type": "repository", "generated_at": "2026-07-21T23:15:52.789308Z", "schema_version": "0.26.0", "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/r/rails/rails.svg", "full_name": "rails/rails", "license_state": "standard", "license_spdx": "MIT" }, "repoMeta": null, "notFound": false, "related": [ { "id": 27759, "full_name": "chatwoot/chatwoot", "url": "https://github.com/chatwoot/chatwoot", "description": "Open-source live-chat, email support, omni-channel desk. An alternative to Intercom, Zendesk, Salesforce Service Cloud etc. 🔥💬", "ecosystem": "npm", "ecosystems": [ "npm", "rubygems" ], "primary_language": "Ruby", "languages": [ "Ruby", "Vue", "JavaScript" ], "topics": [ "vuejs", "intercom", "zendesk", "rails", "design", "sass", "actioncable", "opensource", "livechat", "javascript", "docker", "docker-image", "heroku", "conversation", "customer-support", "whatsapp", "chat-widget", "dashboard", "ruby" ], "license_spdx": null, "license_state": "custom", "stars": 34574, "forks": 8243, "watchers": 279, "monthly_downloads": null, "latest_score": 86, "latest_band": "excellent", "latest_scanned_at": "2026-07-20T11:57:10.051267Z", "has_high_risk_jurisdiction_exposure": false, "has_malicious_dependency": false, "growth_authenticity": "unverified", "abandonment_state": "unverified", "red_flags": [], "badge_url": "" }, { "id": 4643, "full_name": "slackapi/bolt-js", "url": "https://github.com/slackapi/bolt-js", "description": "A framework to build Slack apps using JavaScript", "ecosystem": "npm", "ecosystems": [ "npm" ], "primary_language": "TypeScript", "languages": [ "TypeScript" ], "topics": [ "slack", "framework", "typescript", "slack-apps", "javascript", "socket-mode", "websocket", "websockets", "websocket-client", "bot", "events-api", "slash-commands", "interactive-components", "api", "chatops", "integration", "slack-app" ], "license_spdx": "MIT", "license_state": "standard", "stars": 2923, "forks": 439, "watchers": 38, "monthly_downloads": 13209082, "latest_score": 87, "latest_band": "excellent", "latest_scanned_at": "2026-07-21T00:53:44.522472Z", "has_high_risk_jurisdiction_exposure": false, "has_malicious_dependency": false, "growth_authenticity": "unverified", "abandonment_state": "unverified", "red_flags": [], "badge_url": "" }, { "id": 27767, "full_name": "opf/openproject", "url": "https://github.com/opf/openproject", "description": "OpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alternative with agile planning, issue tracking, roadmaps, Gantt charts, time tracking, collaboration features, and more. Available on premises or in the cloud. ⭐Star us on GitHub", "ecosystem": "npm", "ecosystems": [ "npm", "rubygems" ], "primary_language": "Ruby", "languages": [ "Ruby", "TypeScript" ], "topics": [ "project-management", "openproject", "ruby", "issue-tracker", "scrum", "angular", "project-planning", "timeline", "bug-tracker", "roadmap", "kanban", "boards", "workflows", "gantt-chart", "bcf", "ifc", "gantt", "agile-development", "jira-alternative", "product-management" ], "license_spdx": "GPL-3.0", "license_state": "standard", "stars": 15608, "forks": 3368, "watchers": 250, "monthly_downloads": null, "latest_score": 89, "latest_band": "excellent", "latest_scanned_at": "2026-07-20T12:00:19.501768Z", "has_high_risk_jurisdiction_exposure": false, "has_malicious_dependency": false, "growth_authenticity": "unverified", "abandonment_state": "unverified", "red_flags": [], "badge_url": "" }, { "id": 15457, "full_name": "sorbet/sorbet", "url": "https://github.com/sorbet/sorbet", "description": "A fast, powerful type checker designed for Ruby", "ecosystem": "rubygems", "ecosystems": [ "rubygems", "npm" ], "primary_language": "C++", "languages": [ "C++", "Ruby" ], "topics": [ "ruby", "types", "sorbet" ], "license_spdx": "Apache-2.0", "license_state": "standard", "stars": 3792, "forks": 614, "watchers": 30, "monthly_downloads": null, "latest_score": 85, "latest_band": "excellent", "latest_scanned_at": "2026-07-17T12:12:03.857449Z", "has_high_risk_jurisdiction_exposure": false, "has_malicious_dependency": false, "growth_authenticity": "unverified", "abandonment_state": "unverified", "red_flags": [], "badge_url": "" }, { "id": 12466, "full_name": "fastify/fastify", "url": "https://github.com/fastify/fastify", "description": "Fast and low overhead web framework, for Node.js", "ecosystem": "npm", "ecosystems": [ "npm" ], "primary_language": "JavaScript", "languages": [ "JavaScript" ], "topics": [ "webframework", "performance", "speed", "nodejs", "hacktoberfest", "web", "framework", "json", "schema", "open", "api" ], "license_spdx": "MIT", "license_state": "standard", "stars": 36740, "forks": 2839, "watchers": 361, "monthly_downloads": 38579259, "latest_score": 92, "latest_band": "excellent", "latest_scanned_at": "2026-07-17T04:49:50.860832Z", "has_high_risk_jurisdiction_exposure": false, "has_malicious_dependency": false, "growth_authenticity": "unverified", "abandonment_state": "unverified", "red_flags": [], "badge_url": "" }, { "id": 27774, "full_name": "fluent/fluentd", "url": "https://github.com/fluent/fluentd", "description": "Fluentd: Unified Logging Layer (project under CNCF)", "ecosystem": "rubygems", "ecosystems": [ "rubygems" ], "primary_language": "Ruby", "languages": [ "Ruby" ], "topics": [ "fluentd", "logging", "data-collector", "ruby", "cncf" ], "license_spdx": "Apache-2.0", "license_state": "standard", "stars": 13562, "forks": 1401, "watchers": 327, "monthly_downloads": null, "latest_score": 91, "latest_band": "excellent", "latest_scanned_at": "2026-07-20T12:01:38.293155Z", "has_high_risk_jurisdiction_exposure": false, "has_malicious_dependency": false, "growth_authenticity": "unverified", "abandonment_state": "unverified", "red_flags": [], "badge_url": "" } ] } }
Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 0.26.0 · метрики 1.13.0 · 2026-07-21 23:15 UTC

rails / rails

Ruby on Rails

RubyMIT★ 58 641 зірка⑂ 22 363 форкиз квіт. 2008 р.Переглянути на GitHub ↗

rails/rails має індекс здоров’я 86 зі 100, що відповідає смузі «Відмінний». Найвищий показник — Community & Adoption (97/100), найнижчий — AI Readiness (61/100). Останнє оновлення — сьогодні. Більшість нещодавньої роботи виконують 10 учасників.

86
загалом / 100
Відмінний

Індекс здоров'я програмного забезпечення

Метрики згруповано у зважені категорії на шкалі 1–100. Загальна оцінка починається як їхнє середнє; коли публічні дані активують Політику юрисдикцій високого ризику, рейтинг коригується й отримує верхню межу 49 («Під ризиком»). Готовність до ШІ не входить до індексу.

86
Відмінний85-100Зразковий; відповідає практично всім перевіреним критеріям
Добрий70-84Здоровий; незначні прогалини
Помірний50-69Прийнятний, але з помітними прогалинами; рекомендовано перевірку
У зоні ризику30-49Суттєві слабкі місця; впровадження потребує обережності
Критичний1-29Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

Профіль оцінок

Кожна вісь — окрема категорія. Форма важить більше, ніж середнє: здоровий об'єкт заповнює всю фігуру, тоді як профіль із піками та провалами означає, що сила в одному вимірі маскує ризик в іншому.

Власність

Ruby on RailsОрганізація
2 680 підписників127 публічних репозиторіївз квіт. 2008 р.

За цим репозиторієм стоїть організація — спільна, підзвітна опіка, здатна пережити будь-якого окремого мейнтейнера.

Пакетні екосистеми

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікаціяТеги
RubyGemsrails8.1.3-516119 днів тому
npm@rails/actiontext8.1.3001 611 030151119 днів тому
npm@rails/actioncable8.1.3007 107 601151119 днів томуwebsocketsactioncablerails
RubyGemsrailties8.1.3-452119 днів тому
npm@rails/activestorage8.1.3003 915 592151119 днів тому
RubyGemsactivejob8.1.3-266119 днів тому
RubyGemsactionpack8.1.3-515119 днів тому
RubyGemsactiontext8.1.3-150119 днів тому

Метрики за категоріями

Життєздатність

Чи живий проєкт — чи пишеться код і чи виходять релізи?

96Відмінний · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 0 дн. тому
36/36Ритм комітів — 52/52 тижнів із комітами
18/18Обсяг комітів — 3 266 комітів за останній рік
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10
Використані вхідні дані
commits_last_year3 266
human_commit_share1
days_since_last_push0
active_weeks_last_year52
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 100 релізів
27/36Свіжість релізів — останній реліз 119 дн. тому
27/27Ритм релізів — реліз кожні ~16,3 дн.
0/10OpenSSF Scorecard: Signed-Releases — немає даних
Використані вхідні дані
releases_count100
latest_release_tagv8.1.3
releases_from_tagsні
days_since_latest_release119
mean_days_between_releases16,3
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Signed-Releases. Залишкові ваги перенормовано.

Спільнота та впровадження

Чи має проєкт користувачів, завантаження, увагу та влаштовані умови для контриб’юторів?

97Відмінний · 18% загального індексу
Як обчислюється оцінка
60/60Зірки — 58 641 зірок
25/25Форки — 22 363 форків
15/15Спостерігачі — 2 334 спостерігачів
Використані вхідні дані
forks22 363
stars58 641
watchers2 334
growth_stateorganic
growth_factor_pct100
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (MIT)
18/18Настанови CONTRIBUTING
13.5/13.5Кодекс поведінки
0/7.2Шаблон issue
6.3/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
has_contributingтак
has_issue_templateні
has_code_of_conductтак
has_pull_request_templateтак
Як обчислюється оцінка
80/80Щомісячні завантаження — 12 634 223 завантажень/місяць у npm, rubygems
0/20Залежні пакети в реєстрі — ця екосистема цього не повідомляє
Використані вхідні дані
packagesrails, @rails/actiontext, @rails/actioncable, railties, @rails/activestorage, activejob, actionpack, actiontext
dependents
ecosystemsnpm, rubygems
total_downloads3 438 251 676
monthly_downloads12 634 223
Виключено з оцінювання (немає даних або не застосовно): Залежні пакети в реєстрі. Залишкові ваги перенормовано.

Сталість та врядування

Чи переживе проєкт своїх людей — бас-фактор, реактивність, хто за ним стоїть і як супроводжуються пакети?

91Відмінний · 24% загального індексу
Як обчислюється оцінка
54/54Бас-фактор — на 10 контриб’ютор(ів) припадає половина всіх комітів
19.6/22.5Розподіл комітів — головний контриб’ютор — автор 13% комітів
13.5/13.5Широта контриб’юторів — 100 контриб’юторів
10/10OpenSSF Scorecard: Contributors — project has 83 contributing companies or organizations
Використані вхідні дані
bus_factor10
contributors_sampled100
top_contributor_share0,129
Як обчислюється оцінка
45.5/46.8Вирішення issue — закрито 97% issue
26.8/38.3Прийняття PR — злито 26 641/37 960 вирішених PR
15/15OpenSSF Scorecard: Code-Review — all changesets reviewed
Використані вхідні дані
merged_prs26 641
open_issues477
closed_issues18 148
issue_closed_ratio0,974
closed_unmerged_prs11 319
Як обчислюється оцінка
30/30Підтримка власника — у власності організації
0/20Верифікований домен
24.6/25Охоплення власника — 2 680 підписників у rails
25/25Послужний список — 127 публічних репозиторіїв, вік облікового запису ~18 р.
Використані вхідні дані
followers2 680
owner_typeOrganization
is_verified
owner_loginrails
public_repos127
account_age_days6 684

Супровід пакетів

100Відмінний
Як обчислюється оцінка
25/25Опубліковано й доступно — 8 пакет(ів) у npm, rubygems
35/35Свіжість публікацій — остання публікація 119 дн. тому
20/20Історія версій — 516 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packagesrails, @rails/actiontext, @rails/actioncable, railties, @rails/activestorage, activejob, actionpack, actiontext
ecosystemsnpm, rubygems
any_deprecatedні
min_days_since_publish119

Інженерна якість

Чи наявні базові інженерні практики та документація?

76Добрий · 20% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 9 процес(ів) CI
24/24Наявні тести
16/16Конфігурація лінтера — .rubocop.yml, eslint.config.mjs
0/9.6Pre-commit-хуки
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 15 out of 15 merged PRs checked by a CI test -- score normalized to 10
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigні
has_linter_configтак
has_precommit_configні

Документація

65Помірний
Як обчислюється оцінка
30/30README
0/25Каталог документації
15/15Сайт документації / домашня сторінка — https://rubyonrails.org
10/10Опис репозиторію
10/10Теми — 7 тем
0/10Wiki
Використані вхідні дані
topicsrails, mvc, html, activerecord, activejob, ruby, framework
has_wikiні
homepagehttps://rubyonrails.org
has_readmeтак
has_docs_dirні
has_descriptionтак

Безпека

Чи міцні видимі практики безпеки й ланцюга постачання, без непослабленої пов’язаності з юрисдикціями високого ризику?

66Помірний · 16% загального індексу

Стан безпеки

58Помірний
Як обчислюється оцінка
7.5/7.5Binary-Artifacts — no binaries found in the repo
2.2/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 15 out of 15 merged PRs checked by a CI test -- score normalized to 10
0.5/2.5CII-Best-Practices — badge detected: InProgress
7.5/7.5Code-Review — all changesets reviewed
2.5/2.5Contributors — project has 83 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Ліцензія — license file detected
7.5/7.5Maintained — 30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — немає даних
1/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — немає даних
5.2/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 113 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate5,8
Виключено з оцінювання (немає даних або не застосовно): packaging, signed_releases. Залишкові ваги перенормовано.
Як обчислюється оцінка
35/35Прямі залежності без відомих сповіщень — жодна пряма залежність не має відомих сповіщень
25/25Непрямі залежності без відомих сповіщень — жодна непряма залежність не має відомих сповіщень
0/40Немає задавнених сповіщень — жодне сповіщення не має дати публікації
Використані вхідні дані
sourceosv
advisories0
affected_packages0
assessed_packages2
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Виключено з оцінювання (немає даних або не застосовно): Немає задавнених сповіщень. Залишкові ваги перенормовано. Звірено з runtime-замиканням залежностей npm:@rails/actiontext@8.1.300 — тим, що тягне за собою встановлення опублікованого пакета, — 2 пакетів. Досяжність не аналізується.

Готовність до ШІ

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Незалежний, експериментальний бейдж — вага 0.0, тож він подається окремо і не впливає на загальний індекс здоров'я.

61Помірний · 0% загального індексу
Як обчислюється оцінка
45/45Інструкції для агентів — AGENTS.md
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 87 з 100 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,87
agent_instruction_filesAGENTS.md
agent_instruction_max_bytes6 905
Як обчислюється оцінка
0/18Розгортання однією командою
22/22Автоматизовані тести
11/11Конфігурація лінтера / форматера — .rubocop.yml, eslint.config.mjs
0/11Статична перевірка типів
10/10Відтворюване середовище — devcontainer, Dockerfile, lockfile
8/10Підтверджена практика роботи з агентами — 4 з останніх 100 комітів створено агентом або з його зазначенням
0/8Автоматизоване супроводження — автоматичних оновлень залежностей не виявлено
2/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
Використані вхідні дані
has_nixні
has_testsтак
lockfilesGemfile.lock, yarn.lock
has_dockerfileтак
typed_languageні
bootstrap_files
has_devcontainerтак
has_linter_configтак
typecheck_configs
agent_commit_share0,04
toolchain_manifests
dependency_bot_commit_share0
Як обчислюється оцінка
0/45Типізований код — Ruby без конфігурації перевірки типів
54.4/55Керовані розміри файлів — 39/3 497 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languageRuby
largest_source_bytes449 565
source_files_sampled3 497
oversized_source_files39
Як обчислюється оцінка
0/40Схема API (OpenAPI/GraphQL/proto)
0/20Сервер MCP
40/40Придатні до запуску приклади — examples
Використані вхідні дані
example_dirsexamples
has_mcp_signalні
api_schema_files

Ключові факти

58 641зірок GitHub
100контриб'юторів
3 266комітів за останні 12 місяців
0днів від останнього пушу
100релізів
10бас-фактор
477відкритих issue
npm, RubyGemsпакетних екосистем

Докладніше

Історія зірок і форків 58 641 ★ / 22 363 ⇿
58 641Зірки
22 363Форки
19Релізи

Коли додано кожну зірку й форк — зібрано з GitHub і згруповано за днями. Кумулятивне зростання розміщено просто над денними додаваннями, з яких воно складається, тож їх видно одне проти одного: рівномірне органічне накопичення виглядає зовсім інакше, ніж різкий короткочасний сплеск. Там, де цю різницю можна виміряти, її подано як автентичність росту.

Показано лише найновішу історію — цей репозиторій перевищує вікно збору, тож найраніша історія не захоплена.

20 00030 00040 00050 00060 00058 64122 363442025-062026-012026-07
Мажорні 0Мінорні 1Патчі 10

Кожна точка охоплює 2 днів.

OpenSSF Scorecard 5.8 / 10
5.8сукупно

Незалежна, не прив'язана до інструментів оцінка безпеки від відкритого проєкту OpenSSF Scorecard. Кожна перевірка винагороджує практику безпеки, а не інструмент конкретного постачальника. Перевірки, які Scorecard не зміг визначити, позначено н/д і виключено з оцінки безпеки (вони ніколи не зараховуються як нуль).Scorecard v5.5.0 · 2026-07-21 23:15 UTC

10Binary-Artifactsno binaries found in the repo
3Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests15 out of 15 merged PRs checked by a CI test -- score normalized to 10
2CII-Best-Practicesbadge detected: InProgress
10Code-Reviewall changesets reviewed
10Contributorsproject has 83 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10
н/дPackagingpackaging workflow not detected
2Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 2
0SASTSAST tool is not run on all commits -- score normalized to 0
10Security-Policysecurity policy file detected
н/дSigned-Releasesno releases found
7Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities113 existing vulnerabilities detected
Прямі залежності 82
РеєстрПакетОбмеження версіїМаніфест
RubyGemsminitest~> 6.0Gemfile
RubyGemsminitest-mockGemfile
RubyGemsreleaserGemfile
RubyGemssprockets-rails>= 2.0.0Gemfile
RubyGemspropshaft>= 0.1.7Gemfile
RubyGemscapybara>= 3.39Gemfile
RubyGemsselenium-webdriver>= 4.20.0Gemfile
RubyGemsrack-cache~> 1.2Gemfile
RubyGemsstimulus-railsGemfile
RubyGemsturbo-railsGemfile
RubyGemsjsbundling-railsGemfile
RubyGemscssbundling-railsGemfile
RubyGemsimportmap-rails>= 1.2.3Gemfile
RubyGemstailwindcss-railsGemfile
RubyGemsdartsass-railsGemfile
RubyGemssolid_cacheGemfile
RubyGemssolid_queueGemfile
RubyGemssolid_cableGemfile
RubyGemskamal>= 2.1.0Gemfile
RubyGemsthrusterGemfile
RubyGemsbcrypt~> 3.1.11Gemfile
RubyGemsargon2~> 2.3.2Gemfile
RubyGemsterser>= 1.1.4Gemfile
RubyGemsjson>= 2.0.0Gemfile
RubyGemsuri>= 0.13.1Gemfile
RubyGemsprismGemfile
RubyGemsrubocop1.79.2Gemfile
RubyGemsrubocop-minitestGemfile
RubyGemsrubocop-packagingGemfile
RubyGemsrubocop-performanceGemfile
RubyGemsrubocop-railsGemfile
RubyGemsrubocop-mdGemfile
RubyGemsrubocop-rails-omakaseGemfile
RubyGemsmdl!= 0.13.0Gemfile
RubyGemssdoc~> 2.6.4Gemfile
RubyGemsredcarpet~> 3.6.1Gemfile
RubyGemsw3c_validators~> 1.3.6Gemfile
RubyGemsrougeGemfile
RubyGemsrubyzip~> 2.0Gemfile
RubyGemsdalliGemfile
RubyGemsredis-client>= 0.28.0Gemfile
RubyGemslisten~> 3.3Gemfile
RubyGemslibxml-rubyGemfile
RubyGemsconnection_poolGemfile
RubyGemsrexmlGemfile
RubyGemsmsgpack>= 1.7.0Gemfile
RubyGemsbootsnap>= 1.4.4Gemfile
RubyGemswebrickGemfile
RubyGemsjbuilderGemfile
RubyGemsweb-consoleGemfile
RubyGemsrackGemfile
RubyGemsrackGemfile
RubyGemsuseragentGemfile
RubyGemsresqueGemfile
RubyGemsresque-schedulerGemfile
RubyGemsqueue_classic>= 4.0.0Gemfile
RubyGemssneakersGemfile
RubyGemsbackburnerGemfile
RubyGemspuma>= 5.0.3Gemfile
RubyGemsredis>= 4.0.1Gemfile
RubyGemsredis-namespaceGemfile
RubyGemswebsocket-client-simpleGemfile
RubyGemsaws-sdk-s3Gemfile
RubyGemsgoogle-cloud-storage~> 1.11Gemfile
RubyGemsimage_processing~> 2.0Gemfile
RubyGemsruby-vips~> 2.3Gemfile
RubyGemsmini_magick~> 5.0Gemfile
RubyGemsaws-sdk-snsGemfile
RubyGemswebmockGemfile
RubyGemsbrakemanGemfile
RubyGemsbundler-auditGemfile
RubyGemsnokogiri>= 1.8.1Gemfile
RubyGemssqlite3>= 2.1Gemfile
RubyGemspg~> 1.3Gemfile
RubyGemsmysql2~> 0.5Gemfile
RubyGemstrilogy>= 2.7.0Gemfile
RubyGemstzinfo-dataGemfile
RubyGemswdm>= 0.1.0Gemfile
RubyGemslaunchyGemfile
npm@rails/activestorage>= 8.1.0-alphaactiontext/package.json
npmspark-md5^3.0.1activestorage/package.json
npmjs-sha256^0.9.0activestorage/package.json
Усі залежності 1 056

Повний розв'язаний набір залежностей із графа залежностей GitHub: 97 прямих і 959 непрямих (транзитивних) пакетів. Транзитивне замикання є повним, коли в репозиторії закомічено lockfile.

РеєстрПакетВерсіяЗв'язок
npm@rails/activestorage8.1.0-beta1пряма
npm@rails/activestorage>= 8.1.0-alphaпряма
npmjs-sha2560.9.0пряма
npmjs-sha256^0.9.0пряма
npmspark-md53.0.2пряма
npmspark-md5^3.0.1пряма
RubyGemsargon22.3.2пряма
RubyGemsaws-sdk-s31.197.0пряма
RubyGemsaws-sdk-sns1.92.0пряма
RubyGemsbackburner1.7.0пряма
RubyGemsbcrypt3.1.20пряма
RubyGemsbootsnapпряма
RubyGemsbootsnap1.18.4пряма
RubyGemsbrakeman7.0.0пряма
RubyGemsbundler-audit0.9.3пряма
RubyGemscapybaraпряма
RubyGemscapybara3.40.0пряма
RubyGemsconnection_poolпряма
RubyGemsconnection_pool3.0.2пряма
RubyGemscssbundling-rails1.4.1пряма
RubyGemsdalli5.0.0пряма
RubyGemsdartsass-rails0.5.1пряма
RubyGemsgoogle-cloud-storage1.54.0пряма
RubyGemsimage_processing2.0.1пряма
RubyGemsimportmap-rails2.1.0пряма
RubyGemsjbuilder2.13.0пряма
RubyGemsjsbundling-rails1.3.1пряма
RubyGemsjsonпряма
RubyGemsjson2.20.0пряма
RubyGemskamal2.4.0пряма
RubyGemslaunchy3.0.1пряма
RubyGemslibxml-ruby6.0.0пряма
RubyGemslistenпряма
RubyGemslisten3.9.0пряма
RubyGemsmdl0.12.0пряма
RubyGemsmini_magick5.3.1пряма
RubyGemsminitestпряма
RubyGemsminitest5.25.1пряма
RubyGemsminitest6.0.6пряма
RubyGemsminitest-mock5.27.0пряма
RubyGemsmsgpack1.7.5пряма
RubyGemsmysql20.5.6пряма
RubyGemsnokogiriпряма
RubyGemsnokogiri1.19.1пряма
RubyGemspg1.6.3пряма
RubyGemsprismпряма
RubyGemsprism1.7.0пряма
RubyGemspropshaft1.3.1пряма
RubyGemspuma6.5.0пряма
RubyGemsqueue_classic4.0.0пряма
RubyGemsrackпряма
RubyGemsrack3.2.1пряма
RubyGemsrack-cache1.17.0пряма
RubyGemsredcarpet3.6.1пряма
RubyGemsredis5.4.1пряма
RubyGemsredis-client0.28.0пряма
RubyGemsredis-namespace1.11.0пряма
RubyGemsresque2.7.0пряма
RubyGemsresque-scheduler4.11.0пряма
RubyGemsrexml3.4.0пряма
RubyGemsrouge4.6.1пряма
RubyGemsrubocop1.79.2пряма
RubyGemsrubocop-md2.0.1пряма
RubyGemsrubocop-minitest0.37.1пряма
RubyGemsrubocop-packaging0.6.0пряма
RubyGemsrubocop-performance1.24.0пряма
RubyGemsrubocop-rails2.30.3пряма
RubyGemsrubocop-rails-omakase1.0.0пряма
RubyGemsruby-vips2.3.0пряма
RubyGemsrubyzip2.4.1пряма
RubyGemssdoc2.6.5пряма
RubyGemsselenium-webdriverпряма
RubyGemsselenium-webdriver4.32.0пряма
RubyGemssneakers2.11.0пряма
RubyGemssolid_cable3.0.5пряма
RubyGemssolid_cache1.0.6пряма
RubyGemssolid_queue1.1.2пряма
RubyGemssprockets-rails3.5.2пряма
RubyGemssqlite32.5.0пряма
RubyGemsstimulus-rails1.3.4пряма
RubyGemstailwindcss-rails3.2.0пряма
RubyGemsterser1.2.4пряма
RubyGemsthruster0.1.16пряма
RubyGemstrilogy2.11.0пряма
RubyGemsturbo-rails2.0.11пряма
RubyGemstzinfo-dataпряма
RubyGemsuriпряма
RubyGemsuri1.0.3пряма
RubyGemsuri1.0.4пряма
RubyGemsuseragentпряма
RubyGemsuseragent0.16.11пряма
RubyGemsw3c_validators1.3.7пряма
RubyGemsweb-consoleпряма
RubyGemsweb-console4.2.1пряма
RubyGemswebmock3.25.0пряма
RubyGemswebrick1.9.1пряма
RubyGemswebsocket-client-simple0.9.0пряма
npm@babel/code-frame7.22.5непряма
npm@babel/helper-validator-identifier7.22.5непряма
npm@babel/highlight7.22.5непряма
npm@eggjs/yauzl2.11.0непряма
npm@eslint-community/eslint-utils4.9.0непряма
npm@eslint-community/regexpp4.12.1непряма
npm@eslint/config-array0.21.0непряма
npm@eslint/config-helpers0.4.0непряма
npm@eslint/core0.16.0непряма
npm@eslint/eslintrc3.3.1непряма
npm@eslint/js9.37.0непряма
npm@eslint/js^9.24.0непряма
npm@eslint/object-schema2.1.6непряма
npm@eslint/plugin-kit0.4.0непряма
npm@hapi/bourne3.0.0непряма
npm@humanfs/core0.19.1непряма
npm@humanfs/node0.16.7непряма
npm@humanwhocodes/module-importer1.0.1непряма
npm@humanwhocodes/retry0.4.3непряма
npm@isaacs/cliui8.0.2непряма
npm@jridgewell/resolve-uri3.1.2непряма
npm@jridgewell/source-map0.3.4непряма
npm@jridgewell/sourcemap-codec1.5.5непряма
npm@jridgewell/trace-mapping0.3.31непряма
npm@nodable/entities2.2.0непряма
npm@nodelib/fs.scandir2.1.5непряма
npm@nodelib/fs.stat2.0.5непряма
npm@nodelib/fs.walk1.2.8непряма
npm@pkgjs/parseargs0.11.0непряма
npm@promptbook/utils0.69.5непряма
npm@puppeteer/browsers2.13.2непряма
npm@rollup/plugin-commonjs19.0.2непряма
npm@rollup/plugin-commonjs^19.0.1непряма
npm@rollup/plugin-node-resolve11.2.1непряма
npm@rollup/plugin-node-resolve15.3.1непряма
npm@rollup/plugin-node-resolve^11.0.1непряма
npm@rollup/pluginutils3.1.0непряма
npm@rollup/pluginutils5.4.0непряма
npm@rollup/rollup-android-arm-eabi4.61.1непряма
npm@rollup/rollup-android-arm644.61.1непряма
npm@rollup/rollup-darwin-arm644.61.1непряма
npm@rollup/rollup-darwin-x644.61.1непряма
npm@rollup/rollup-freebsd-arm644.61.1непряма
npm@rollup/rollup-freebsd-x644.61.1непряма
npm@rollup/rollup-linux-arm-gnueabihf4.61.1непряма
npm@rollup/rollup-linux-arm-musleabihf4.61.1непряма
npm@rollup/rollup-linux-arm64-gnu4.61.1непряма
npm@rollup/rollup-linux-arm64-musl4.61.1непряма
npm@rollup/rollup-linux-loong64-gnu4.61.1непряма
npm@rollup/rollup-linux-loong64-musl4.61.1непряма
npm@rollup/rollup-linux-ppc64-gnu4.61.1непряма
npm@rollup/rollup-linux-ppc64-musl4.61.1непряма
npm@rollup/rollup-linux-riscv64-gnu4.61.1непряма
npm@rollup/rollup-linux-riscv64-musl4.61.1непряма
npm@rollup/rollup-linux-s390x-gnu4.61.1непряма
npm@rollup/rollup-linux-x64-gnu4.61.1непряма
npm@rollup/rollup-linux-x64-musl4.61.1непряма
npm@rollup/rollup-openbsd-x644.61.1непряма
npm@rollup/rollup-openharmony-arm644.61.1непряма
npm@rollup/rollup-win32-arm64-msvc4.61.1непряма
npm@rollup/rollup-win32-ia32-msvc4.61.1непряма
npm@rollup/rollup-win32-x64-gnu4.61.1непряма
npm@rollup/rollup-win32-x64-msvc4.61.1непряма
npm@rtsao/scc1.1.0непряма
npm@sindresorhus/is4.6.0непряма
npm@szmarczak/http-timer4.0.6непряма
npm@tootallnate/quickjs-emscripten0.23.0непряма
npm@types/accepts1.3.7непряма
npm@types/babel__code-frame7.27.0непряма
npm@types/body-parser1.19.6непряма
npm@types/cacheable-request6.0.3непряма
npm@types/co-body6.1.3непряма
npm@types/command-line-args5.2.3непряма
npm@types/connect3.4.38непряма
npm@types/content-disposition0.5.9непряма
npm@types/convert-source-map2.0.3непряма
npm@types/cookies0.9.2непряма
npm@types/debounce1.2.4непряма
npm@types/estree0.0.39непряма
npm@types/estree1.0.8непряма
npm@types/estree1.0.9непряма
npm@types/express5.0.6непряма
npm@types/express-serve-static-core5.1.1непряма
npm@types/http-assert1.5.6непряма
npm@types/http-cache-semantics4.2.0непряма
npm@types/http-errors2.0.5непряма
npm@types/istanbul-lib-coverage2.0.6непряма
npm@types/istanbul-lib-report3.0.3непряма
npm@types/istanbul-reports3.0.4непряма
npm@types/json-schema7.0.15непряма
npm@types/json50.0.29непряма
npm@types/keygrip1.0.6непряма
npm@types/keyv3.1.4непряма
npm@types/koa2.15.2непряма
npm@types/koa3.0.3непряма
npm@types/koa-compose3.2.9непряма
npm@types/node20.19.43непряма
npm@types/node20.3.2непряма
npm@types/parse56.0.3непряма
npm@types/qs6.15.1непряма
npm@types/range-parser1.2.7непряма
npm@types/resolve1.17.1непряма
npm@types/resolve1.20.2непряма
npm@types/responselike1.0.3непряма
npm@types/send1.2.1непряма
npm@types/serve-static2.2.0непряма
npm@types/sinonjs__fake-timers8.1.5непряма
npm@types/which2.0.2непряма
npm@types/ws7.4.7непряма
npm@types/ws8.18.1непряма
npm@types/yauzl2.10.3непряма
npm@wdio/config9.28.0непряма
npm@wdio/logger9.18.0непряма
npm@wdio/protocols9.28.0непряма
npm@wdio/repl9.16.2непряма
npm@wdio/types9.28.0непряма
npm@wdio/utils9.28.0непряма
npm@web/browser-logs0.4.1непряма
npm@web/config-loader0.3.3непряма
npm@web/dev-server0.4.6непряма
npm@web/dev-server-core0.7.5непряма
npm@web/dev-server-rollup0.6.4непряма
npm@web/parse5-utils2.1.1непряма
npm@web/test-runner0.20.2непряма
npm@web/test-runner^0.20.2непряма
npm@web/test-runner-chrome0.18.1непряма
npm@web/test-runner-commands0.9.0непряма
npm@web/test-runner-core0.13.4непряма
npm@web/test-runner-coverage-v80.8.0непряма
npm@web/test-runner-mocha0.9.0непряма
npm@web/test-runner-saucelabs0.13.0непряма
npm@web/test-runner-saucelabs^0.13.0непряма
npm@web/test-runner-webdriver0.9.0непряма
npm@zip.js/zip.js2.8.26непряма
npmabort-controller3.0.0непряма
npmaccepts1.3.8непряма
npmacorn8.15.0непряма
npmacorn-jsx5.3.2непряма
npmagent-base7.1.4непряма
npmajv6.12.6непряма
npmansi-escapes4.3.2непряма
npmansi-regex5.0.1непряма
npmansi-regex6.2.2непряма
npmansi-styles3.2.1непряма
npmansi-styles4.3.0непряма
npmansi-styles6.2.3непряма
npmanynum1.0.0непряма
npmarchiver7.0.1непряма
npmarchiver-utils5.0.2непряма
npmargparse2.0.1непряма
npmaria-query5.3.2непряма
npmarray-back3.1.0непряма
npmarray-back6.2.3непряма
npmarray-buffer-byte-length1.0.2непряма
npmarray-includes3.1.9непряма
npmarray-union2.1.0непряма
npmarray.prototype.findlastindex1.2.6непряма
npmarray.prototype.flat1.3.3непряма
npmarray.prototype.flatmap1.3.3непряма
npmarraybuffer.prototype.slice1.0.4непряма
npmast-types0.13.4непряма
npmastral-regex2.0.0непряма
npmasync3.2.6непряма
npmasync-function1.0.0непряма
npmasynckit0.4.0непряма
npmavailable-typed-arrays1.0.7непряма
npmb4a1.8.1непряма
npmbalanced-match1.0.2непряма
npmbare-events2.9.1непряма
npmbare-fs4.7.2непряма
npmbare-os3.9.1непряма
npmbare-path3.0.1непряма
npmbare-stream2.13.2непряма
npmbare-url2.4.5непряма
npmbase64-js1.5.1непряма
npmbasic-ftp5.3.1непряма
npmbl1.2.3непряма
npmboolbase1.0.0непряма
npmbrace-expansion1.1.11непряма
npmbrace-expansion2.1.1непряма
npmbraces3.0.3непряма
npmbuffer6.0.3непряма
npmbuffer-alloc1.2.0непряма
npmbuffer-alloc-unsafe1.1.0непряма
npmbuffer-crc320.2.13непряма
npmbuffer-crc321.0.0непряма
npmbuffer-fill1.0.0непряма
npmbuffer-from1.1.2непряма
npmbuiltin-modules3.3.0непряма
npmbytes3.1.2непряма
npmcache-content-type1.0.1непряма
npmcacheable-lookup5.0.4непряма
npmcacheable-request7.0.4непряма
npmcall-bind1.0.8непряма
npmcall-bind-apply-helpers1.0.2непряма
npmcall-bound1.0.4непряма
npmcallsites3.1.0непряма
npmcamel-case4.1.2непряма
npmcamelcase6.3.0непряма
npmcapital-case1.0.4непряма
npmchalk2.4.2непряма
npmchalk4.1.2непряма
npmchalk5.6.2непряма
npmchalk-template0.4.0непряма
npmchange-case4.1.2непряма
npmcheerio1.2.0непряма
npmcheerio-select2.1.0непряма
npmchokidar4.0.3непряма
npmchrome-launcher0.15.2непряма
npmchromium-bidi14.0.0непряма
npmcli-cursor3.1.0непряма
npmcliui8.0.1непряма
npmclone2.1.2непряма
npmclone-response1.0.3непряма
npmco4.6.0непряма
npmco-body6.2.0непряма
npmcolor-convert1.9.3непряма
npmcolor-convert2.0.1непряма
npmcolor-name1.1.3непряма
npmcolor-name1.1.4непряма
npmcombined-stream1.0.8непряма
npmcommand-line-args5.2.1непряма
npmcommand-line-usage7.0.4непряма
npmcommander2.20.3непряма
npmcommander7.2.0непряма
npmcommander9.5.0непряма
npmcommondir1.0.1непряма
npmcompress-commons6.0.2непряма
npmcompressing1.10.5непряма
npmconcat-map0.0.1непряма
npmconstant-case3.0.4непряма
npmcontent-disposition0.5.4непряма
npmcontent-type1.0.5непряма
npmconvert-source-map2.0.0непряма
npmcookies0.9.1непряма
npmcore-util-is1.0.3непряма
npmcrc-321.2.2непряма
npmcrc32-stream6.0.0непряма
npmcross-spawn7.0.6непряма
npmcss-select5.2.2непряма
npmcss-shorthand-properties1.1.2непряма
npmcss-value0.0.1непряма
npmcss-what6.2.2непряма
npmdata-uri-to-buffer6.0.2непряма
npmdata-view-buffer1.0.2непряма
npmdata-view-byte-length1.0.2непряма
npmdata-view-byte-offset1.0.1непряма
npmdebounce1.2.1непряма
npmdebug2.6.9непряма
npmdebug3.2.7непряма
npmdebug4.3.4непряма
npmdebug4.4.3непряма
npmdecamelize6.0.1непряма
npmdecode-uri-component0.2.2непряма
npmdecompress-response6.0.0непряма
npmdeep-equal1.0.1непряма
npmdeep-is0.1.4непряма
npmdeepmerge4.3.1непряма
npmdeepmerge-ts7.1.5непряма
npmdefault-gateway6.0.3непряма
npmdefer-to-connect2.0.1непряма
npmdefine-data-property1.1.4непряма
npmdefine-lazy-prop2.0.0непряма
npmdefine-properties1.2.1непряма
npmdegenerator5.0.1непряма
npmdelayed-stream1.0.0непряма
npmdelegates1.0.0непряма
npmdepd1.1.2непряма
npmdepd2.0.0непряма
npmdependency-graph0.11.0непряма
npmdestroy1.2.0непряма
npmdevtools-protocol0.0.1608973непряма
npmdiff5.2.2непряма
npmdir-glob3.0.1непряма
npmdoctrine2.1.0непряма
npmdom-serializer2.0.0непряма
npmdomelementtype2.3.0непряма
npmdomhandler5.0.3непряма
npmdomutils3.2.2непряма
npmdot-case3.0.4непряма
npmdunder-proto1.0.1непряма
npmeastasianwidth0.2.0непряма
npmedge-paths3.0.5непряма
npmedgedriver6.3.0непряма
npmee-first1.1.1непряма
npmemoji-regex8.0.0непряма
npmemoji-regex9.2.2непряма
npmencodeurl1.0.2непряма
npmencoding-sniffer0.2.1непряма
npmend-of-stream1.4.4непряма
npmentities4.5.0непряма
npmentities6.0.1непряма
npmentities7.0.1непряма
npmerrorstacks2.4.2непряма
npmes-abstract1.24.0непряма
npmes-define-property1.0.1непряма
npmes-errors1.3.0непряма
npmes-module-lexer1.7.0непряма
npmes-object-atoms1.1.1непряма
npmes-set-tostringtag2.1.0непряма
npmes-shim-unscopables1.1.0непряма
npmes-to-primitive1.3.0непряма
npmescalade3.2.0непряма
npmescape-html1.0.3непряма
npmescape-string-regexp1.0.5непряма
npmescape-string-regexp4.0.0непряма
npmescodegen2.1.0непряма
npmeslint9.37.0непряма
npmeslint^9.24.0непряма
npmeslint-import-resolver-node0.3.9непряма
npmeslint-module-utils2.12.1непряма
npmeslint-plugin-import2.32.0непряма
npmeslint-plugin-import^2.31.0непряма
npmeslint-scope8.4.0непряма
npmeslint-visitor-keys3.4.3непряма
npmeslint-visitor-keys4.2.1непряма
npmespree10.4.0непряма
npmesprima4.0.1непряма
npmesquery1.5.0непряма
npmesrecurse4.3.0непряма
npmestraverse5.3.0непряма
npmestree-walker1.0.1непряма
npmestree-walker2.0.2непряма
npmesutils2.0.3непряма
npmetag1.8.1непряма
npmevent-target-shim5.0.1непряма
npmevents3.3.0непряма
npmevents-universal1.0.1непряма
npmexeca5.1.1непряма
npmextract-zip2.0.1непряма
npmfast-deep-equal2.0.1непряма
npmfast-deep-equal3.1.3непряма
npmfast-fifo1.3.2непряма
npmfast-glob3.3.3непряма
npmfast-json-stable-stringify2.1.0непряма
npmfast-levenshtein2.0.6непряма
npmfast-xml-builder1.2.0непряма
npmfast-xml-parser5.8.0непряма
npmfastq1.20.1непряма
npmfd-slicer1.1.0непряма
npmfd-slicer21.2.0непряма
npmfile-entry-cache8.0.0непряма
npmfill-range7.1.1непряма
npmfilter-obj1.1.0непряма
npmfind-replace3.0.0непряма
npmfind-up5.0.0непряма
npmflat-cache4.0.1непряма
npmflatted3.3.1непряма
npmflushwritable1.0.0непряма
npmfor-each0.3.5непряма
npmforeground-child3.3.1непряма
npmform-data4.0.5непряма
npmfresh0.5.2непряма
npmfs-constants1.0.0непряма
npmfs.realpath1.0.0непряма
npmfsevents2.3.3непряма
npmfunction-bind1.1.2непряма
npmfunction.prototype.name1.1.8непряма
npmfunctions-have-names1.2.3непряма
npmgeckodriver6.1.0непряма
npmgenerator-function2.0.1непряма
npmget-caller-file2.0.5непряма
npmget-intrinsic1.3.0непряма
npmget-port7.2.0непряма
npmget-proto1.0.1непряма
npmget-ready1.0.0непряма
npmget-stream5.2.0непряма
npmget-stream6.0.1непряма
npmget-symbol-description1.1.0непряма
npmget-uri6.0.5непряма
npmglob10.5.0непряма
npmglob7.2.3непряма
npmglob-parent5.1.2непряма
npmglob-parent6.0.2непряма
npmglobals14.0.0непряма
npmglobals^14.0.0непряма
npmglobalthis1.0.4непряма
npmglobalyzer0.1.0непряма
npmglobby11.1.0непряма
npmglobrex0.1.2непряма
npmgopd1.2.0непряма
npmgot11.8.6непряма
npmgraceful-fs4.2.11непряма
npmgrapheme-splitter1.0.4непряма
npmhas-bigints1.1.0непряма
npmhas-flag3.0.0непряма
npmhas-flag4.0.0непряма
npmhas-property-descriptors1.0.2непряма
npmhas-proto1.2.0непряма
npmhas-symbols1.1.0непряма
npmhas-tostringtag1.0.2непряма
npmhash.js1.1.7непряма
npmhasown2.0.2непряма
npmheader-case2.0.4непряма
npmhtml-escaper2.0.2непряма
npmhtmlfy0.8.1непряма
npmhtmlparser210.1.0непряма
npmhttp-assert1.5.0непряма
npmhttp-cache-semantics4.2.0непряма
npmhttp-errors1.6.3непряма
npmhttp-errors1.8.1непряма
npmhttp-errors2.0.0непряма
npmhttp-proxy-agent7.0.2непряма
npmhttp2-wrapper1.0.3непряма
npmhttps-proxy-agent7.0.6непряма
npmhuman-signals2.1.0непряма
npmiconv-lite0.4.24непряма
npmiconv-lite0.5.2непряма
npmiconv-lite0.6.3непряма
npmieee7541.2.1непряма
npmignore5.3.2непряма
npmimmediate3.0.6непряма
npmimport-fresh3.3.0непряма
npmimport-meta-resolve4.2.0непряма
npmimurmurhash0.1.4непряма
npminflation2.1.0непряма
npminflight1.0.6непряма
npminherits2.0.3непряма
npminherits2.0.4непряма
npminternal-ip6.2.0непряма
npminternal-slot1.1.0непряма
npmip-address10.2.0непряма
npmip-regex4.3.0непряма
npmipaddr.js1.9.1непряма
npmis-array-buffer3.0.5непряма
npmis-async-function2.1.1непряма
npmis-bigint1.1.0непряма
npmis-boolean-object1.2.2непряма
npmis-callable1.2.7непряма
npmis-core-module2.16.1непряма
npmis-data-view1.0.2непряма
npmis-date-object1.1.0непряма
npmis-docker2.2.1непряма
npmis-extglob2.1.1непряма
npmis-finalizationregistry1.1.1непряма
npmis-fullwidth-code-point3.0.0непряма
npmis-generator-function1.1.2непряма
npmis-glob4.0.3непряма
npmis-ip3.1.0непряма
npmis-map2.0.3непряма
npmis-module1.0.0непряма
npmis-negative-zero2.0.3непряма
npmis-number7.0.0непряма
npmis-number-object1.1.1непряма
npmis-plain-obj4.1.0непряма
npmis-reference1.2.1непряма
npmis-regex1.2.1непряма
npmis-set2.0.3непряма
npmis-shared-array-buffer1.0.4непряма
npmis-stream2.0.1непряма
npmis-string1.1.1непряма
npmis-symbol1.1.1непряма
npmis-typed-array1.1.15непряма
npmis-weakmap2.0.2непряма
npmis-weakref1.1.1непряма
npmis-weakset2.0.4непряма
npmis-wsl2.2.0непряма
npmisarray1.0.0непряма
npmisarray2.0.5непряма
npmisbinaryfile5.0.7непряма
npmisexe2.0.0непряма
npmisexe4.0.0непряма
npmistanbul-lib-coverage3.2.2непряма
npmistanbul-lib-report3.0.1непряма
npmistanbul-reports3.2.0непряма
npmjackspeak3.4.3непряма
npmjest-worker26.6.2непряма
npmjiti2.7.0непряма
npmjs-tokens4.0.0непряма
npmjs-yaml4.1.0непряма
npmjson-buffer3.0.1непряма
npmjson-schema-traverse0.4.1непряма
npmjson-stable-stringify-without-jsonify1.0.1непряма
npmjson51.0.2непряма
npmjszip3.10.1непряма
npmkeygrip1.1.0непряма
npmkeyv4.5.4непряма
npmkoa2.16.4непряма
npmkoa-compose4.1.0непряма
npmkoa-convert2.0.0непряма
npmkoa-etag4.0.0непряма
npmkoa-send5.0.1непряма
npmkoa-static5.0.0непряма
npmlazystream1.0.1непряма
npmlevn0.4.1непряма
npmlie3.3.0непряма
npmlighthouse-logger1.4.2непряма
npmlocate-app2.5.0непряма
npmlocate-path6.0.0непряма
npmlodash4.17.21непряма
npmlodash.camelcase4.3.0непряма
npmlodash.clonedeep4.5.0непряма
npmlodash.merge4.6.2непряма
npmlodash.zip4.2.0непряма
npmlog-update4.0.0непряма
npmloglevel1.9.2непряма
npmloglevel-plugin-prefix0.8.4непряма
npmlower-case2.0.2непряма
npmlowercase-keys2.0.0непряма
npmlru-cache10.4.3непряма
npmlru-cache7.18.3непряма
npmlru-cache8.0.5непряма
npmmagic-string0.25.9непряма
npmmake-dir4.0.0непряма
npmmarky1.3.0непряма
npmmath-intrinsics1.1.0непряма
npmmedia-typer0.3.0непряма
npmmerge-stream2.0.0непряма
npmmerge21.4.1непряма
npmmicromatch4.0.8непряма
npmmime-db1.52.0непряма
npmmime-types2.1.35непряма
npmmimic-fn2.1.0непряма
npmmimic-response1.0.1непряма
npmmimic-response3.1.0непряма
npmminimalistic-assert1.0.1непряма
npmminimatch3.1.2непряма
npmminimatch5.1.9непряма
npmminimatch9.0.9непряма
npmminimist1.2.8непряма
npmminipass7.1.3непряма
npmmitt3.0.1непряма
npmmkdirp0.5.6непряма
npmmkdirp1.0.4непряма
npmmock-socket2.0.0непряма
npmmock-socket^2.0.0непряма
npmmodern-tar0.7.6непряма
npmms2.0.0непряма
npmms2.1.2непряма
npmms2.1.3непряма
npmnanocolors0.2.13непряма
npmnanoid3.3.12непряма
npmnatural-compare1.4.0непряма
npmnegotiator0.6.3непряма
npmnetmask2.1.1непряма
npmno-case3.0.4непряма
npmnode-watch0.7.3непряма
npmnormalize-path3.0.0непряма
npmnormalize-url6.1.0непряма
npmnpm-run-path4.0.1непряма
npmnth-check2.1.1непряма
npmobject-inspect1.13.4непряма
npmobject-keys1.1.1непряма
npmobject.assign4.1.7непряма
npmobject.fromentries2.0.8непряма
npmobject.groupby1.0.3непряма
npmobject.values1.2.1непряма
npmon-finished2.4.1непряма
npmonce1.4.0непряма
npmonetime5.1.2непряма
npmonly0.0.2непряма
npmopen8.4.2непряма
npmoptionator0.9.4непряма
npmown-keys1.0.1непряма
npmp-cancelable2.1.1непряма
npmp-event4.2.0непряма
npmp-finally1.0.0непряма
npmp-limit3.1.0непряма
npmp-locate5.0.0непряма
npmp-timeout3.2.0непряма
npmpac-proxy-agent7.2.0непряма
npmpac-resolver7.0.1непряма
npmpackage-json-from-dist1.0.1непряма
npmpako1.0.11непряма
npmparam-case3.0.4непряма
npmparent-module1.0.1непряма
npmparse56.0.1непряма
npmparse57.3.0непряма
npmparse5-htmlparser2-tree-adapter7.1.0непряма
npmparse5-parser-stream7.1.2непряма
npmparseurl1.3.3непряма
npmpascal-case3.1.2непряма
npmpath-case3.0.4непряма
npmpath-exists4.0.0непряма
npmpath-expression-matcher1.5.0непряма
npmpath-is-absolute1.0.1непряма
npmpath-key3.1.1непряма
npmpath-parse1.0.7непряма
npmpath-scurry1.11.1непряма
npmpath-type4.0.0непряма
npmpend1.2.0непряма
npmpicomatch2.3.1непряма
npmpicomatch4.0.4непряма
npmportfinder1.0.38непряма
npmpossible-typed-array-names1.1.0непряма
npmprelude-ls1.2.1непряма
npmprocess0.11.10непряма
npmprocess-nextick-args2.0.1непряма
npmprogress2.0.3непряма
npmproxy-agent6.5.0непряма
npmproxy-from-env1.1.0непряма
npmpump3.0.4непряма
npmpunycode2.3.0непряма
npmpunycode2.3.1непряма
npmpuppeteer-core24.43.1непряма
npmqs6.11.0непряма
npmquery-selector-shadow-dom1.0.1непряма
npmquery-string7.1.3непряма
npmqueue-microtask1.2.3непряма
npmquick-lru5.1.1непряма
npmqunit2.26.0непряма
npmqunit^2.20.0непряма
npmrandombytes2.1.0непряма
npmraw-body2.5.2непряма
npmreadable-stream2.3.8непряма
npmreadable-stream4.7.0непряма
npmreaddir-glob1.1.3непряма
npmreaddirp4.1.2непряма
npmreflect.getprototypeof1.0.10непряма
npmregexp.prototype.flags1.5.4непряма
npmrequire-directory2.1.1непряма
npmresolve1.22.2непряма
npmresolve1.22.8непряма
npmresolve-alpn1.2.1непряма
npmresolve-from4.0.0непряма
npmresolve-path1.4.0непряма
npmresponselike2.0.1непряма
npmresq1.11.0непряма
npmrestore-cursor3.1.0непряма
npmret0.5.0непряма
npmreusify1.1.0непряма
npmrgb2hex0.2.5непряма
npmrollup2.79.1непряма
npmrollup4.61.1непряма
npmrollup^2.35.1непряма
npmrollup-plugin-terser7.0.2непряма
npmrollup-plugin-terser^7.0.2непряма
npmrun-parallel1.2.0непряма
npmsafaridriver1.0.1непряма
npmsafe-array-concat1.1.3непряма
npmsafe-buffer5.1.2непряма
npmsafe-buffer5.2.1непряма
npmsafe-push-apply1.0.0непряма
npmsafe-regex-test1.1.0непряма
npmsafe-regex25.1.1непряма
npmsafer-buffer2.1.2непряма
npmsaucelabs9.0.2непряма
npmsemver6.3.1непряма
npmsemver7.8.4непряма
npmsentence-case3.0.4непряма
npmserialize-error12.0.0непряма
npmserialize-javascript4.0.0непряма
npmset-function-length1.2.2непряма
npmset-function-name2.0.2непряма
npmset-proto1.0.0непряма
npmsetimmediate1.0.5непряма
npmsetprototypeof1.1.0непряма
npmsetprototypeof1.2.0непряма
npmshebang-command2.0.0непряма
npmshebang-regex3.0.0непряма
npmside-channel1.1.0непряма
npmside-channel-list1.0.0непряма
npmside-channel-map1.0.1непряма
npmside-channel-weakmap1.0.2непряма
npmsignal-exit3.0.7непряма
npmsignal-exit4.1.0непряма
npmslash3.0.0непряма
npmslice-ansi4.0.0непряма
npmsmart-buffer4.2.0непряма
npmsnake-case3.0.4непряма
npmsocks2.8.9непряма
npmsocks-proxy-agent8.0.5непряма
npmsource-map0.6.1непряма
npmsource-map0.7.6непряма
npmsource-map-support0.5.21непряма
npmsourcemap-codec1.4.8непряма
npmspacetrim0.11.59непряма
npmsplit-on-first1.1.0непряма
npmsplit24.2.0непряма
npmstatuses1.5.0непряма
npmstatuses2.0.1непряма
npmstop-iteration-iterator1.1.0непряма
npmstreamifier0.1.1непряма
npmstreamx2.27.0непряма
npmstrict-uri-encode2.0.0непряма
npmstring-width4.2.3непряма
npmstring-width5.1.2непряма
npmstring-width-cjs4.2.3непряма
npmstring.prototype.trim1.2.10непряма
npmstring.prototype.trimend1.0.9непряма
npmstring.prototype.trimstart1.0.8непряма
npmstring_decoder1.1.1непряма
npmstring_decoder1.3.0непряма
npmstrip-ansi6.0.1непряма
npmstrip-ansi7.2.0непряма
npmstrip-ansi-cjs6.0.1непряма
npmstrip-bom3.0.0непряма
npmstrip-final-newline2.0.0непряма
npmstrip-json-comments3.1.1непряма
npmstrnum2.4.0непряма
npmsupports-color5.5.0непряма
npmsupports-color7.2.0непряма
npmsupports-preserve-symlinks-flag1.0.0непряма
npmtable-layout4.1.1непряма
npmtar-fs3.1.2непряма
npmtar-stream1.6.2непряма
npmtar-stream3.2.0непряма
npmteex1.0.1непряма
npmterser5.18.2непряма
npmtext-decoder1.2.7непряма
npmtiny-glob0.2.9непряма
npmto-buffer1.2.2непряма
npmto-regex-range5.0.1непряма
npmtoidentifier1.0.1непряма
npmtr465.1.1непряма
npmtrix2.0.5непряма
npmtrix^2.0.0непряма
npmtsconfig-paths3.15.0непряма
npmtslib2.8.1непряма
npmtsscmp1.0.6непряма
npmtunnel0.0.6непряма
npmtype-check0.4.0непряма
npmtype-fest0.21.3непряма
npmtype-fest4.26.0непряма
npmtype-fest4.41.0непряма
npmtype-is1.6.18непряма
npmtyped-array-buffer1.0.3непряма
npmtyped-array-byte-length1.0.3непряма
npmtyped-array-byte-offset1.0.4непряма
npmtyped-array-length1.0.7непряма
npmtyped-query-selector2.12.2непряма
npmtypical4.0.0непряма
npmtypical7.3.0непряма
npmunbox-primitive1.1.0непряма
npmundici6.26.0непряма
npmundici7.27.2непряма
npmundici-types6.21.0непряма
npmunpipe1.0.0непряма
npmupper-case2.0.2непряма
npmupper-case-first2.0.2непряма
npmuri-js4.4.1непряма
npmurijs1.17.1непряма
npmurlpattern-polyfill10.1.0непряма
npmuserhome1.0.1непряма
npmutil-deprecate1.0.2непряма
npmv8-to-istanbul9.3.0непряма
npmvary1.1.2непряма
npmwait-port1.1.0непряма
npmweb-test-runner-qunit2.0.0непряма
npmweb-test-runner-qunit^2.0.0непряма
npmwebdriver9.28.0непряма
npmwebdriver-bidi-protocol0.4.1непряма
npmwebdriverio9.28.0непряма
npmwebidl-conversions7.0.0непряма
npmwhatwg-encoding3.1.1непряма
npmwhatwg-mimetype4.0.0непряма
npmwhatwg-url14.2.0непряма
npmwhich2.0.2непряма
npmwhich6.0.1непряма
npmwhich-boxed-primitive1.1.1непряма
npmwhich-builtin-type1.2.1непряма
npmwhich-collection1.0.2непряма
npmwhich-typed-array1.1.19непряма
npmword-wrap1.2.5непряма
npmwordwrapjs5.1.1непряма
npmwrap-ansi6.2.0непряма
npmwrap-ansi7.0.0непряма
npmwrap-ansi8.1.0непряма
npmwrap-ansi-cjs7.0.0непряма
npmwrappy1.0.2непряма
npmws7.5.11непряма
npmws8.21.0непряма
npmxml-naming0.1.0непряма
npmxtend4.0.2непряма
npmy18n5.0.8непряма
npmyargs17.7.2непряма
npmyargs-parser21.1.1непряма
npmyauzl2.10.0непряма
npmyazl2.5.1непряма
npmylru1.4.0непряма
npmyocto-queue0.1.0непряма
npmzip-stream6.0.1непряма
npmzod3.25.76непряма
RubyGemsaction_text-trixнепряма
RubyGemsaction_text-trix2.1.16непряма
RubyGemsaddressable2.8.7непряма
RubyGemsamq-protocol2.3.2непряма
RubyGemsast2.4.2непряма
RubyGemsaws-eventstream1.4.0непряма
RubyGemsaws-partitions1.1150.0непряма
RubyGemsaws-sdk-core3.230.0непряма
RubyGemsaws-sdk-kms1.110.0непряма
RubyGemsaws-sigv41.12.1непряма
RubyGemsbase64непряма
RubyGemsbase640.3.0непряма
RubyGemsbcrypt_pbkdf1.1.1непряма
RubyGemsbeaneater1.1.3непряма
RubyGemsbigdecimalнепряма
RubyGemsbigdecimal4.1.2непряма
RubyGemsbindex0.8.1непряма
RubyGemsbuilderнепряма
RubyGemsbuilder3.3.0непряма
RubyGemsbundlerнепряма
RubyGemsbunny2.23.0непряма
RubyGemsbyebugнепряма
RubyGemschef-utils18.6.2непряма
RubyGemschildprocess5.1.0непряма
RubyGemschromedriver-helperнепряма
RubyGemsconcurrent-rubyнепряма
RubyGemsconcurrent-ruby1.3.6непряма
RubyGemscrack1.0.0непряма
RubyGemscrass1.0.6непряма
RubyGemsdante0.2.0непряма
RubyGemsdate3.4.1непряма
RubyGemsdebug1.10.0непряма
RubyGemsdeclarative0.0.20непряма
RubyGemsdigest-crc0.6.5непряма
RubyGemsdotenv3.1.7непряма
RubyGemsdrbнепряма
RubyGemsdrb2.2.3непряма
RubyGemsed255191.3.0непряма
RubyGemserb5.1.1непряма
RubyGemserubiнепряма
RubyGemserubi1.13.1непряма
RubyGemset-orbi1.2.11непряма
RubyGemsevent_emitter0.2.6непряма
RubyGemsexecjs2.10.0непряма
RubyGemsfaraday2.14.0непряма
RubyGemsfaraday-net_http3.4.2непряма
RubyGemsffi1.17.1непряма
RubyGemsffi-compiler1.3.2непряма
RubyGemsfugit1.11.1непряма
RubyGemsglobalidнепряма
RubyGemsglobalid1.4.0непряма
RubyGemsgoogle-apis-core0.15.1непряма
RubyGemsgoogle-apis-iamcredentials_v10.22.0непряма
RubyGemsgoogle-apis-storage_v10.49.0непряма
RubyGemsgoogle-cloud-core1.7.1непряма
RubyGemsgoogle-cloud-env2.2.1непряма
RubyGemsgoogle-cloud-errors1.4.0непряма
RubyGemsgoogle-logging-utils0.1.0непряма
RubyGemsgoogle-protobuf4.29.3непряма
RubyGemsgoogleauth1.12.2непряма
RubyGemshashdiff1.1.2непряма
RubyGemshttpclient2.9.0непряма
RubyGemsi18nнепряма
RubyGemsi18n1.14.8непряма
RubyGemsio-console0.8.1непряма
RubyGemsirbнепряма
RubyGemsirb1.15.2непряма
RubyGemsjmespath1.6.2непряма
RubyGemsjwt2.10.1непряма
RubyGemskramdown2.5.1непряма
RubyGemskramdown-parser-gfm1.1.0непряма
RubyGemslanguage_server-protocol3.17.0.3непряма
RubyGemslint_roller1.1.0непряма
RubyGemsloggerнепряма
RubyGemslogger1.7.0непряма
RubyGemsloofah2.25.0непряма
RubyGemsmailнепряма
RubyGemsmail2.8.1непряма
RubyGemsmarcelнепряма
RubyGemsmarcel1.2.1непряма
RubyGemsmatrix0.4.2непряма
RubyGemsmini_mime1.1.5непряма
RubyGemsmini_portile22.8.9непряма
RubyGemsminitest-retry0.2.3непряма
RubyGemsmixlib-cli2.1.8непряма
RubyGemsmixlib-config3.0.27непряма
RubyGemsmixlib-shellout3.3.4непряма
RubyGemsmono_logger1.1.2непряма
RubyGemsmulti_json1.15.0непряма
RubyGemsmustermann3.0.4непряма
RubyGemsmutex_m0.3.0непряма
RubyGemsnet-http0.6.0непряма
RubyGemsnet-http0.9.1непряма
RubyGemsnet-imap0.5.5непряма
RubyGemsnet-pop0.1.2непряма
RubyGemsnet-protocol0.2.2непряма
RubyGemsnet-scp4.0.0непряма
RubyGemsnet-sftp4.0.0непряма
RubyGemsnet-smtp0.5.1непряма
RubyGemsnet-ssh7.3.0непряма
RubyGemsnio4rнепряма
RubyGemsnio4r2.7.4непряма
RubyGemsos1.1.4непряма
RubyGemsostruct0.6.1непряма
RubyGemsparallel1.26.3непряма
RubyGemsparser3.3.9.0непряма
RubyGemspp0.6.2непряма
RubyGemsprettyprint0.2.0непряма
RubyGemsprotobug0.1.0непряма
RubyGemsprotobug_googleapis_field_behavior_protos0.1.0непряма
RubyGemsprotobug_sigstore_protos0.1.0непряма
RubyGemsprotobug_well_known_protos0.1.0непряма
RubyGemspsychнепряма
RubyGemspsych5.2.6непряма
RubyGemspublic_suffix6.0.1непряма
RubyGemsraabro1.4.0непряма
RubyGemsracc1.8.1непряма
RubyGemsrack-protection4.1.1непряма
RubyGemsrack-sessionнепряма
RubyGemsrack-session2.1.1непряма
RubyGemsrack-testнепряма
RubyGemsrack-test2.2.0непряма
RubyGemsrackupнепряма
RubyGemsrackup2.2.1непряма
RubyGemsractor-dispatchнепряма
RubyGemsractor-dispatch0.2.0непряма
RubyGemsrails-dom-testingнепряма
RubyGemsrails-dom-testing2.3.0непряма
RubyGemsrails-html-sanitizerнепряма
RubyGemsrails-html-sanitizer1.7.0непряма
RubyGemsrainbow3.1.1непряма
RubyGemsrakeнепряма
RubyGemsrake13.2.1непряма
RubyGemsrake13.3.0непряма
RubyGemsrb-fsevent0.11.2непряма
RubyGemsrb-inotify0.11.1непряма
RubyGemsrbtree0.4.7непряма
RubyGemsrdoc6.15.0непряма
RubyGemsregexp_parser2.10.0непряма
RubyGemsreline0.6.1непряма
RubyGemsrepresentable3.2.0непряма
RubyGemsretriable3.1.2непряма
RubyGemsrubocop-ast1.46.0непряма
RubyGemsruby-progressbar1.13.0непряма
RubyGemsruby2_keywords0.0.5непряма
RubyGemsrufus-scheduler3.9.2непряма
RubyGemssass-embedded1.83.4непряма
RubyGemssecurerandomнепряма
RubyGemssecurerandom0.4.1непряма
RubyGemsserverengine2.0.7непряма
RubyGemsset1.1.2непряма
RubyGemssigdump0.2.5непряма
RubyGemssignet0.19.0непряма
RubyGemssigstore0.2.2непряма
RubyGemssigstore-cli0.2.2непряма
RubyGemssinatra4.1.1непряма
RubyGemssorted_set1.0.3непряма
RubyGemsspringнепряма
RubyGemsspring-watcher-listenнепряма
RubyGemssprockets4.2.1непряма
RubyGemssshkit1.23.2непряма
RubyGemsstackprof0.2.28непряма
RubyGemsstringio3.1.7непряма
RubyGemstailwindcss-ruby3.4.17непряма
RubyGemsthorнепряма
RubyGemsthor1.3.2непряма
RubyGemsthor1.4.0непряма
RubyGemstilt2.6.1непряма
RubyGemstimeoutнепряма
RubyGemstimeout0.4.3непряма
RubyGemstomlrb2.0.3непряма
RubyGemstrailblazer-option0.1.2непряма
RubyGemstsortнепряма
RubyGemstsort0.2.0непряма
RubyGemstzinfoнепряма
RubyGemstzinfo2.0.6непряма
RubyGemsuber0.1.0непряма
RubyGemsunicode-display_width3.1.4непряма
RubyGemsunicode-emoji4.2.0непряма
RubyGemswebsocket1.2.11непряма
RubyGemswebsocket-driverнепряма
RubyGemswebsocket-driver0.7.7непряма
RubyGemswebsocket-extensions0.1.5непряма
RubyGemsxpath3.2.0непряма
RubyGemszeitwerkнепряма
RubyGemszeitwerk2.7.3непряма
Сповіщення про залежності 0

Встановлення npm:@rails/actiontext@8.1.300 тягне 2 пакетів, прямих і транзитивних: 0 мають відомі сповіщення, з них 0 — прямі залежності.

Жодне відоме сповіщення не стосується оцінених залежностей.

Сповіщення означає, що версія, записана в графі залежностей, потрапляє в уражений діапазон. Досяжність не аналізується, а граф містить піниї розробки й тестування — знахідка може стосуватися інструментів, а не поставленого коду.

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [
        "rails",
        "mvc",
        "html",
        "activerecord",
        "activejob",
        "ruby",
        "framework"
      ],
      "is_fork": false,
      "size_kb": 285875,
      "has_wiki": false,
      "homepage": "https://rubyonrails.org",
      "languages": {
        "CSS": 27100,
        "HTML": 205540,
        "Ruby": 18796344,
        "SCSS": 50851,
        "Shell": 626,
        "Dockerfile": 2104,
        "JavaScript": 243792
      },
      "pushed_at": "2026-07-21T23:14:06Z",
      "created_at": "2008-04-11T02:19:47Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-21T23:14:14Z",
      "description": "Ruby on Rails",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "Ruby",
      "significant_languages": [
        "Ruby"
      ]
    },
    "owner": {
      "blog": "https://rubyonrails.org/",
      "name": "Ruby on Rails",
      "type": "Organization",
      "login": "rails",
      "company": null,
      "location": null,
      "followers": 2680,
      "avatar_url": "https://avatars.githubusercontent.com/u/4223?v=4",
      "created_at": "2008-04-02T01:59:25Z",
      "is_verified": null,
      "public_repos": 127,
      "account_age_days": 6684
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v8.1.3",
          "kind": "patch",
          "published_at": "2026-03-24T20:26:02Z"
        },
        {
          "tag": "v8.0.5",
          "kind": "patch",
          "published_at": "2026-03-24T20:19:33Z"
        },
        {
          "tag": "v8.1.2.1",
          "kind": "other",
          "published_at": "2026-03-23T19:42:42Z"
        },
        {
          "tag": "v8.0.4.1",
          "kind": "other",
          "published_at": "2026-03-23T19:38:25Z"
        },
        {
          "tag": "v7.2.3.1",
          "kind": "other",
          "published_at": "2026-03-23T19:32:34Z"
        },
        {
          "tag": "v8.1.2",
          "kind": "patch",
          "published_at": "2026-01-08T20:17:17Z"
        },
        {
          "tag": "v8.1.1",
          "kind": "patch",
          "published_at": "2025-10-28T23:46:29Z"
        },
        {
          "tag": "v8.0.4",
          "kind": "patch",
          "published_at": "2025-10-28T23:43:23Z"
        },
        {
          "tag": "v7.2.3",
          "kind": "patch",
          "published_at": "2025-10-28T23:24:18Z"
        },
        {
          "tag": "v7.1.6",
          "kind": "patch",
          "published_at": "2025-10-28T23:19:19Z"
        },
        {
          "tag": "v7.0.10",
          "kind": "patch",
          "published_at": "2025-10-28T23:12:55Z"
        },
        {
          "tag": "v7.0.9",
          "kind": "patch",
          "published_at": "2025-10-28T23:02:29Z"
        },
        {
          "tag": "v8.1.0",
          "kind": "minor",
          "published_at": "2025-10-22T00:35:05Z"
        },
        {
          "tag": "v8.1.0.rc1",
          "kind": "other",
          "published_at": "2025-10-15T00:50:43Z"
        },
        {
          "tag": "v8.0.3",
          "kind": "patch",
          "published_at": "2025-09-22T22:19:48Z"
        },
        {
          "tag": "v8.1.0.beta1",
          "kind": "other",
          "published_at": "2025-09-04T12:30:05Z"
        },
        {
          "tag": "v8.0.2.1",
          "kind": "other",
          "published_at": "2025-08-13T20:38:30Z"
        },
        {
          "tag": "v7.2.2.2",
          "kind": "other",
          "published_at": "2025-08-13T20:34:07Z"
        },
        {
          "tag": "v7.1.5.2",
          "kind": "other",
          "published_at": "2025-08-13T20:28:35Z"
        },
        {
          "tag": "v8.0.2",
          "kind": "patch",
          "published_at": "2025-03-12T03:06:51Z"
        },
        {
          "tag": "v8.0.1",
          "kind": "patch",
          "published_at": "2024-12-13T20:01:53Z"
        },
        {
          "tag": "v8.0.0.1",
          "kind": "other",
          "published_at": "2024-12-10T21:45:36Z"
        },
        {
          "tag": "v7.2.2.1",
          "kind": "other",
          "published_at": "2024-12-10T21:41:16Z"
        },
        {
          "tag": "v7.1.5.1",
          "kind": "other",
          "published_at": "2024-12-10T21:26:33Z"
        },
        {
          "tag": "v7.0.8.7",
          "kind": "other",
          "published_at": "2024-12-10T21:21:23Z"
        },
        {
          "tag": "v8.0.0",
          "kind": "major",
          "published_at": "2024-11-07T22:29:02Z"
        },
        {
          "tag": "v7.2.2",
          "kind": "patch",
          "published_at": "2024-10-31T01:44:10Z"
        },
        {
          "tag": "v7.1.5",
          "kind": "patch",
          "published_at": "2024-10-31T01:29:29Z"
        },
        {
          "tag": "v8.0.0.rc2",
          "kind": "other",
          "published_at": "2024-10-30T00:31:09Z"
        },
        {
          "tag": "v7.2.1.2",
          "kind": "other",
          "published_at": "2024-10-23T22:33:56Z"
        },
        {
          "tag": "v7.1.4.2",
          "kind": "other",
          "published_at": "2024-10-23T22:28:10Z"
        },
        {
          "tag": "v7.0.8.6",
          "kind": "other",
          "published_at": "2024-10-23T22:21:39Z"
        },
        {
          "tag": "v6.1.7.10",
          "kind": "other",
          "published_at": "2024-10-23T21:57:06Z"
        },
        {
          "tag": "v8.0.0.rc1",
          "kind": "other",
          "published_at": "2024-10-19T01:38:20Z"
        },
        {
          "tag": "v6.1.7.9",
          "kind": "other",
          "published_at": "2024-10-15T21:24:11Z"
        },
        {
          "tag": "v7.2.1.1",
          "kind": "other",
          "published_at": "2024-10-15T20:45:37Z"
        },
        {
          "tag": "v7.1.4.1",
          "kind": "other",
          "published_at": "2024-10-15T20:39:03Z"
        },
        {
          "tag": "v7.0.8.5",
          "kind": "other",
          "published_at": "2024-10-15T20:23:05Z"
        },
        {
          "tag": "v8.0.0.beta1",
          "kind": "other",
          "published_at": "2024-09-26T15:04:39Z"
        },
        {
          "tag": "v7.1.4",
          "kind": "patch",
          "published_at": "2024-08-22T21:29:51Z"
        },
        {
          "tag": "v7.2.1",
          "kind": "patch",
          "published_at": "2024-08-22T19:49:00Z"
        },
        {
          "tag": "v7.2.0",
          "kind": "minor",
          "published_at": "2024-08-10T00:04:51Z"
        },
        {
          "tag": "v7.2.0.rc1",
          "kind": "other",
          "published_at": "2024-08-06T19:33:29Z"
        },
        {
          "tag": "v7.2.0.beta3",
          "kind": "other",
          "published_at": "2024-07-11T16:05:58Z"
        },
        {
          "tag": "v7.2.0.beta2",
          "kind": "other",
          "published_at": "2024-06-04T18:18:39Z"
        },
        {
          "tag": "v7.1.3.4",
          "kind": "other",
          "published_at": "2024-06-04T18:07:09Z"
        },
        {
          "tag": "v7.0.8.4",
          "kind": "other",
          "published_at": "2024-06-04T18:06:59Z"
        },
        {
          "tag": "v6.1.7.8",
          "kind": "other",
          "published_at": "2024-06-04T18:06:31Z"
        },
        {
          "tag": "v7.2.0.beta1",
          "kind": "other",
          "published_at": "2024-05-31T18:45:55Z"
        },
        {
          "tag": "v7.1.3.3",
          "kind": "other",
          "published_at": "2024-05-16T19:31:49Z"
        },
        {
          "tag": "v7.0.8.2",
          "kind": "other",
          "published_at": "2024-05-16T19:31:05Z"
        },
        {
          "tag": "v7.1.3.2",
          "kind": "other",
          "published_at": "2024-02-21T21:52:08Z"
        },
        {
          "tag": "v7.1.3.1",
          "kind": "other",
          "published_at": "2024-02-21T18:55:01Z"
        },
        {
          "tag": "v7.0.8.1",
          "kind": "other",
          "published_at": "2024-02-21T18:53:35Z"
        },
        {
          "tag": "v6.1.7.7",
          "kind": "other",
          "published_at": "2024-02-21T18:51:33Z"
        },
        {
          "tag": "v7.1.3",
          "kind": "patch",
          "published_at": "2024-01-16T23:02:49Z"
        },
        {
          "tag": "v7.1.2",
          "kind": "patch",
          "published_at": "2023-11-10T21:53:46Z"
        },
        {
          "tag": "v7.1.1",
          "kind": "patch",
          "published_at": "2023-10-11T22:21:29Z"
        },
        {
          "tag": "v7.1.0",
          "kind": "minor",
          "published_at": "2023-10-05T08:29:20Z"
        },
        {
          "tag": "v7.1.0.rc2",
          "kind": "other",
          "published_at": "2023-10-01T22:03:04Z"
        },
        {
          "tag": "v7.1.0.rc1",
          "kind": "other",
          "published_at": "2023-09-27T04:05:07Z"
        },
        {
          "tag": "v7.1.0.beta1",
          "kind": "other",
          "published_at": "2023-09-13T00:43:13Z"
        },
        {
          "tag": "v7.0.8",
          "kind": "patch",
          "published_at": "2023-09-09T19:38:03Z"
        },
        {
          "tag": "v7.0.7.2",
          "kind": "other",
          "published_at": "2023-08-22T20:23:46Z"
        },
        {
          "tag": "v6.1.7.6",
          "kind": "other",
          "published_at": "2023-08-22T20:23:23Z"
        },
        {
          "tag": "v7.0.7.1",
          "kind": "other",
          "published_at": "2023-08-22T17:34:13Z"
        },
        {
          "tag": "v6.1.7.5",
          "kind": "other",
          "published_at": "2023-08-22T17:33:09Z"
        },
        {
          "tag": "v7.0.7",
          "kind": "patch",
          "published_at": "2023-08-10T00:02:23Z"
        },
        {
          "tag": "v7.0.6",
          "kind": "patch",
          "published_at": "2023-06-29T21:03:45Z"
        },
        {
          "tag": "v7.0.5.1",
          "kind": "other",
          "published_at": "2023-06-26T21:48:04Z"
        },
        {
          "tag": "v6.1.7.4",
          "kind": "other",
          "published_at": "2023-06-26T21:33:01Z"
        },
        {
          "tag": "v7.0.5",
          "kind": "patch",
          "published_at": "2023-05-24T19:25:11Z"
        },
        {
          "tag": "v7.0.4.3",
          "kind": "other",
          "published_at": "2023-03-13T18:58:20Z"
        },
        {
          "tag": "v6.1.7.3",
          "kind": "other",
          "published_at": "2023-03-13T18:59:12Z"
        },
        {
          "tag": "v6.1.7.2",
          "kind": "other",
          "published_at": "2023-01-25T03:25:32Z"
        },
        {
          "tag": "v7.0.4.2",
          "kind": "other",
          "published_at": "2023-01-25T03:26:02Z"
        },
        {
          "tag": "v7.0.4.1",
          "kind": "other",
          "published_at": "2023-01-17T21:31:09Z"
        },
        {
          "tag": "v6.1.7.1",
          "kind": "other",
          "published_at": "2023-01-17T21:30:34Z"
        },
        {
          "tag": "v6.0.6.1",
          "kind": "other",
          "published_at": "2023-01-17T21:29:48Z"
        },
        {
          "tag": "v7.0.4",
          "kind": "patch",
          "published_at": "2022-09-09T19:17:17Z"
        },
        {
          "tag": "v6.1.7",
          "kind": "patch",
          "published_at": "2022-09-09T19:15:59Z"
        },
        {
          "tag": "v6.0.6",
          "kind": "patch",
          "published_at": "2022-09-09T19:14:39Z"
        },
        {
          "tag": "v7.0.3.1",
          "kind": "other",
          "published_at": "2022-11-23T19:11:54Z"
        },
        {
          "tag": "v6.1.6.1",
          "kind": "other",
          "published_at": "2022-11-23T19:11:16Z"
        },
        {
          "tag": "v6.0.5.1",
          "kind": "other",
          "published_at": "2022-11-23T19:10:08Z"
        },
        {
          "tag": "v5.2.8.1",
          "kind": "other",
          "published_at": "2022-11-23T19:06:24Z"
        },
        {
          "tag": "v5.2.8",
          "kind": "patch",
          "published_at": "2022-05-12T19:57:51Z"
        },
        {
          "tag": "v6.0.5",
          "kind": "patch",
          "published_at": "2022-05-12T20:06:38Z"
        },
        {
          "tag": "v6.1.6",
          "kind": "patch",
          "published_at": "2022-05-12T20:12:37Z"
        },
        {
          "tag": "v7.0.3",
          "kind": "patch",
          "published_at": "2022-05-12T20:30:17Z"
        },
        {
          "tag": "v7.0.2.4",
          "kind": "other",
          "published_at": "2022-05-12T19:32:57Z"
        },
        {
          "tag": "v6.1.5.1",
          "kind": "other",
          "published_at": "2022-05-12T19:31:38Z"
        },
        {
          "tag": "v6.0.4.8",
          "kind": "other",
          "published_at": "2022-05-12T19:29:24Z"
        },
        {
          "tag": "v5.2.7.1",
          "kind": "other",
          "published_at": "2022-05-12T19:22:42Z"
        },
        {
          "tag": "v5.2.7",
          "kind": "patch",
          "published_at": "2022-03-11T00:02:36Z"
        },
        {
          "tag": "v6.1.5",
          "kind": "patch",
          "published_at": "2022-03-10T21:23:09Z"
        },
        {
          "tag": "v7.0.2.3",
          "kind": "other",
          "published_at": "2022-03-08T21:57:10Z"
        },
        {
          "tag": "v6.1.4.7",
          "kind": "other",
          "published_at": "2022-03-08T21:55:58Z"
        },
        {
          "tag": "v6.0.4.7",
          "kind": "other",
          "published_at": "2022-03-08T21:54:42Z"
        },
        {
          "tag": "v5.2.6.3",
          "kind": "other",
          "published_at": "2022-03-08T21:53:43Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "76998f5e68b248b0dfce019336d0039431c05881",
          "body": "Deprecate RedisCacheStore::DEFAULT_REDIS_OPTIONS",
          "is_bot": false,
          "headline": "Merge pull request #58191 from Shopify/deprecate-redis-default-options",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-21T23:14:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8d3a214d0b6b0963db90c8437bce713f6c5989b6",
          "body": "Remove unused test methods",
          "is_bot": false,
          "headline": "Merge pull request #58193 from Shopify/remove-unused-test-methods",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-21T23:13:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "defcece906602bfa0fdf06b7cc180bee1eb74736",
          "body": "…hods\n\nRemove unused Routing::HTTP_METHODS constant",
          "is_bot": false,
          "headline": "Merge pull request #58192 from Shopify/remove-unused-routing-http-met…",
          "author_name": "Gannon McGibbon",
          "author_login": "gmcgibbon",
          "committed_at": "2026-07-21T22:56:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3a7e0bdf49342e8d98b00f2632fb88a8902ec759",
          "body": "Restore unregistered tests",
          "is_bot": false,
          "headline": "Merge pull request #58194 from Shopify/restore-unregistered-tests",
          "author_name": "Gannon McGibbon",
          "author_login": "gmcgibbon",
          "committed_at": "2026-07-21T22:55:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5623386a0dd695d6ef96b8f7329c2732f9aa375b",
          "body": "Add the missing test_ prefixes to six test methods that Minitest never registered. The restored tests cover controller sessions, finder ordering with query constraints, composite primary key detection, and authentication generator behavior with non-Minitest frameworks.",
          "is_bot": false,
          "headline": "Restore unregistered tests",
          "author_name": "Nikita Vasilevsky",
          "author_login": "nvasilevski",
          "committed_at": "2026-07-21T22:30:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c40b4e21eb9f57bd8ab27e07c9cb160a3c25e0d",
          "body": "Remove 24 test-only methods and accessors whose callers were deleted or which were introduced without callers. Rubydex, repo-wide reference checks, and history review exclude dynamic callback, interpolation, protocol, and nested-attribute entry points.",
          "is_bot": false,
          "headline": "Remove unused test methods",
          "author_name": "Nikita Vasilevsky",
          "author_login": "nvasilevski",
          "committed_at": "2026-07-21T22:19:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd558d7271f6743a3d1588f73b34fd076c7925d1",
          "body": "HTTP_METHODS was added in dcaa074abf on 2007-05-26 to enumerate verbs when reporting method-not-allowed routing errors. It became unused in 588225f885 on 2009-12-11, when that fallback was removed as too much of a hack.\n\nRouting implementation details were excluded from RDoc in c10bf8205c on 2010-03-31, and the constant remains explicitly :nodoc: with no Rails callers. Remove the stale internal list.",
          "is_bot": false,
          "headline": "Remove unused Routing::HTTP_METHODS constant",
          "author_name": "Nikita Vasilevsky",
          "author_login": "nvasilevski",
          "committed_at": "2026-07-21T20:39:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6ad320f5cdeb7c3ecc4afbf8561ef02e9ab12aca",
          "body": "DEFAULT_REDIS_OPTIONS was added in 9f8ec35352 on 2017-11-13 as part of the built-in Redis cache store. It became unused in 5843a7b7f2 on 2026-06-01, when the redis-client migration removed its last in-file callers.\n\nThe constant is published in the API documentation and may have external consumers, so preserve its value through a deprecation cycle rather than removing it directly. Applications can pass timeout options to RedisCacheStore or a configured RedisClient instead.",
          "is_bot": false,
          "headline": "Deprecate RedisCacheStore::DEFAULT_REDIS_OPTIONS",
          "author_name": "Nikita Vasilevsky",
          "author_login": "nvasilevski",
          "committed_at": "2026-07-21T19:44:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d01305b3fcbbf71e615c8ec77fd9f1d98e442bc9",
          "body": "…ew-depth-limit\n\nRemove unused ParamBuilder#new_depth_limit method",
          "is_bot": false,
          "headline": "Merge pull request #58185 from Shopify/rubydex/remove-param-builder-n…",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-21T19:33:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "844fac584b10406591612958ffeb5231aa2bc156",
          "body": "…mon-try-enter\n\nRemove unused ThreadMonitor#mon_try_enter method",
          "is_bot": false,
          "headline": "Merge pull request #58182 from Shopify/rubydex/remove-thread-monitor-…",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-21T19:30:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1d60b4200d65c7ca695aeefece394d3b810e590",
          "body": "…ialize-entries\n\nRemove unused Redis cache serialize_entries methods",
          "is_bot": false,
          "headline": "Merge pull request #58186 from Shopify/rubydex/remove-redis-cache-ser…",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-21T19:06:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "adae4993e1d83d0e47a0a6f7fc5cb22a4744a2d2",
          "body": "…quest\n\nRemove unused cross_origin_request? method",
          "is_bot": false,
          "headline": "Merge pull request #58184 from Shopify/rubydex/remove-cross-origin-re…",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-21T18:58:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "19a4bc26e14ac4abafd74fc4b300bf77fad8b1bb",
          "body": "…ch-data\n\nRemove unused Journey::GTG::MatchData",
          "is_bot": false,
          "headline": "Merge pull request #58178 from Shopify/rubydex-remove-journey-gtg-mat…",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-21T18:44:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f18ec0154c6987e2d72c4171debc65e46d10083",
          "body": "Remove unused UriEncoder constants",
          "is_bot": false,
          "headline": "Merge pull request #58176 from Shopify/rubydex-remove-uri-encoder-utf8",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-21T18:32:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1d59ed2c56171bd8bf5f226ce598ff5fda199924",
          "body": "…ler-pool-managers\n\nRemove unused ConnectionHandler#pool_managers method",
          "is_bot": false,
          "headline": "Merge pull request #58183 from Shopify/rubydex/remove-connection-hand…",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-21T18:28:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d6a0d1a5ba8774f900dfc0b9148bdb56a52e288e",
          "body": "Remove unused SAFE_FETCH_SITES constant",
          "is_bot": false,
          "headline": "Merge pull request #58180 from Shopify/rubydex-remove-safe-fetch-sites",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-21T18:24:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "83e40143fd45baef81b102c8335fafb1d2eead59",
          "body": "The method was copied from Rack::QueryParser when ParamBuilder was introduced in ce5f1817bc, but Rails never added Rack's caller or an equivalent depth-limit setter. It has therefore been unused since its introduction.",
          "is_bot": false,
          "headline": "Remove unused ParamBuilder#new_depth_limit method",
          "author_name": "Nikita Vasilevsky",
          "author_login": "nvasilevski",
          "committed_at": "2026-07-21T17:52:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e15f36f95b45d25272601e3e4e395bcdc5411911",
          "body": "Commit 51d4feaabc replaced ThreadLoadInterlockAwareMonitor with ThreadMonitor and carried this helper over from the old implementation. The removed LoadInterlockAwareMonitorMixin had called mon_try_enter, while ThreadMonitor#synchronize calls mon_enter directly, so the helper became unused in that commit.",
          "is_bot": false,
          "headline": "Remove unused ThreadMonitor#mon_try_enter method",
          "author_name": "Nikita Vasilevsky",
          "author_login": "nvasilevski",
          "committed_at": "2026-07-21T17:52:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b8229525f65600deb74be6d1aa85e18e5e98c9b4",
          "body": "RedisCacheStore#serialize_entries was introduced in f9a8646d81 for the mapped_mset write path. Commit f9fce850da replaced that path with per-entry pipelined writes, leaving the helper without a caller.\n\nThe unused helper was later copied into DeprecatedRedisCacheStore by the rename in 79b357bd89. Remove it from both implementations.",
          "is_bot": false,
          "headline": "Remove unused Redis cache serialize_entries methods",
          "author_name": "Nikita Vasilevsky",
          "author_login": "nvasilevski",
          "committed_at": "2026-07-21T17:52:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c8cbbde490041b7f3c92601a2cb300862e2c3a72",
          "body": "The method was added in f5a1915f1d as part of the fetch metadata CSRF implementation, but it was never called. The verification and warning paths perform the same checks directly.",
          "is_bot": false,
          "headline": "Remove unused cross_origin_request? method",
          "author_name": "Nikita Vasilevsky",
          "author_login": "nvasilevski",
          "committed_at": "2026-07-21T17:52:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "939b6cc1dd261e6b960c0dad23aade2cca495eff",
          "body": "The helper was added in 74cb960e66 for deprecation_for_pool_handling. Commit 64cbcd7a8c removed that deprecation path, leaving pool_managers without a caller.",
          "is_bot": false,
          "headline": "Remove unused ConnectionHandler#pool_managers method",
          "author_name": "Nikita Vasilevsky",
          "author_login": "nvasilevski",
          "committed_at": "2026-07-21T17:52:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ef46b8cc930fdc1674c5d8ec1f6535feb61c100",
          "body": "…ring",
          "is_bot": false,
          "headline": "Merge pull request #58175 from Shopify/rubydex-remove-empty-binary-st…",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-21T17:33:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b9a743a37459989aaf62c70c67cb9c0db336c86e",
          "body": "UriEncoder is an internal, nodoc class, and its UTF_8 and ESCAPED constants have no remaining references.\n\nBoth constants were added by a61792574d on April 20, 2014 for UriEncoder#unescape_uri: UTF_8 selected the output encoding and ESCAPED matched encoded bytes. They became dead in dfc5e80e0f on February 13, 2025, when unescape_uri was removed in favor of CGI.unescape.",
          "is_bot": false,
          "headline": "Remove unused UriEncoder constants",
          "author_name": "Nikita Vasilevsky",
          "author_login": "nvasilevski",
          "committed_at": "2026-07-21T15:31:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b56ea67435f80649913e82212bd27ed0c0583b61",
          "body": "Journey::GTG::MatchData is an internal, nodoc class with no remaining constructor or constant references.\n\nThe class entered Action Pack in 56fee39c39 on December 19, 2012 when Journey moved under Action Dispatch. It became dead in 845aabbcd3 on May 22, 2017, when the unused Simulator#simulate method and its MatchData.new call were removed.",
          "is_bot": false,
          "headline": "Remove unused Journey::GTG::MatchData",
          "author_name": "Nikita Vasilevsky",
          "author_login": "nvasilevski",
          "committed_at": "2026-07-21T15:09:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4c5468f54f845dec922b1b20db94c78fed4975d2",
          "body": "SAFE_FETCH_SITES is private and has no remaining references.\n\nIt was added by f5a1915f1d on December 12, 2025 for Sec-Fetch-Site based CSRF protection. It became dead in 4a3bf76371 on January 12, 2026, when SAFE_FETCH_SITES.include? was replaced with explicit case branches for same-origin and same-site.",
          "is_bot": false,
          "headline": "Remove unused SAFE_FETCH_SITES constant",
          "author_name": "Nikita Vasilevsky",
          "author_login": "nvasilevski",
          "committed_at": "2026-07-21T15:09:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22fec4557fdb2e66d0e5f469c451851fd5478d06",
          "body": "Rubydex reports no references to this constant, and repository-wide code search confirms that it is never read.\n\nEMPTY_BINARY_STRING was added by d51ad367e2 on February 4, 2026 as part of better cache deserialization error handling. That change did not use the constant, and no later change introduced a use, so it has been dead since it was added.",
          "is_bot": false,
          "headline": "Remove unused EMPTY_BINARY_STRING constant",
          "author_name": "Nikita Vasilevsky",
          "author_login": "nvasilevski",
          "committed_at": "2026-07-21T15:09:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04aeb87acdf7559d2e82b692ec7e4e775ffc845e",
          "body": "Fix `bundle install` on `ruby-dev`",
          "is_bot": false,
          "headline": "Merge pull request #58171 from Earlopain/bump-versions-4.1",
          "author_name": "Yasuo Honda",
          "author_login": "yahonda",
          "committed_at": "2026-07-21T15:06:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1d189039ca37cef12e38219a94fa622415e45063",
          "body": "Some deprecated APIs were removed, which these gems made use of",
          "is_bot": false,
          "headline": "Bump gems to install on ruby-dev",
          "author_name": "Earlopain",
          "author_login": "Earlopain",
          "committed_at": "2026-07-21T13:25:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ee7a9866854a00bc259f9e4d7e2dbc7a4d045039",
          "body": "[ci-skip][doc] Fix inconsistent links in Active Job guide",
          "is_bot": false,
          "headline": "Merge pull request #58163 from hachi8833/fix_active_job_guide",
          "author_name": "Ryuta Kamizono",
          "author_login": "kamipo",
          "committed_at": "2026-07-21T06:36:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ac4702080445968f7308f9877a474a446a462ab",
          "body": "Let dump_schema_migrations_sort_by be :reverse by default",
          "is_bot": false,
          "headline": "Merge pull request #58166 from rails/fxn/change-default",
          "author_name": "Xavier Noria",
          "author_login": "fxn",
          "committed_at": "2026-07-20T16:10:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3527e4c4786285b6a77fbcfab0d691fb589bd905",
          "body": null,
          "is_bot": false,
          "headline": "Let dump_schema_migrations_sort_by be :reverse by default",
          "author_name": "Xavier Noria",
          "author_login": "fxn",
          "committed_at": "2026-07-20T13:27:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "efcce3cca4c388b4baffdcb73c0827cbcd98cad6",
          "body": null,
          "is_bot": false,
          "headline": "[ci-skip][doc] Fix broken links",
          "author_name": "hachi8833",
          "author_login": "hachi8833",
          "committed_at": "2026-07-20T07:41:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "160577bb9acc2f6d17e66b2d4aeb1392fcd690cf",
          "body": "…doc-markup\n\nFix RDoc markup in ActiveSupport::ContinuousIntegration [ci skip]",
          "is_bot": false,
          "headline": "Merge pull request #58158 from Yuhi-Sato/fix-continuous-integration-r…",
          "author_name": "Ryuta Kamizono",
          "author_login": "kamipo",
          "committed_at": "2026-07-19T11:03:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a3233905d67354f31f2df386f07551242e916e18",
          "body": null,
          "is_bot": false,
          "headline": "Fix RDoc markup in ContinuousIntegration docs [ci skip]",
          "author_name": "Yuhi-Sato",
          "author_login": "Yuhi-Sato",
          "committed_at": "2026-07-19T06:33:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cba6112015af863cbed97f3ace86caf4e6c325e0",
          "body": "Fix typos and inconsistencies in documentation [skip ci]",
          "is_bot": false,
          "headline": "Merge pull request #58036 from 55728/fix-product-reviews-guide-typos",
          "author_name": "fatkodima",
          "author_login": "fatkodima",
          "committed_at": "2026-07-18T22:14:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7b36c967dc9a01e616027453d43104af80b06a54",
          "body": "Test that config.action_dispatch.default_headers set in an initializer is applied",
          "is_bot": false,
          "headline": "Merge pull request #58146 from nurey/default-headers-initializer-test",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-18T20:49:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "05c7d2a8c5a044f06e708372e5f8cc5f6354034b",
          "body": "…-digest\n\nFix test_precompile_shouldn't_use_the_digests_present_in_manifest.json failure",
          "is_bot": false,
          "headline": "Merge pull request #58148 from yahonda/fix-flaky-sprockets-precompile…",
          "author_name": "Yasuo Honda",
          "author_login": "yahonda",
          "committed_at": "2026-07-17T23:53:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a1375572d17f107e9f7f788cceffb59707cb6202",
          "body": "…n failure\n\nWhen this test rewrites app/assets/images/rails.png in the same second\nas the initial write, the second precompile reuses the stale cached\ndigest and the application.css digest does not change:\n\n    Expected \"application-c56ef81d122dffa8b257b0546ba1b09bd2d8b97e4aef881de8db9f760b903af6.cs\n[…]\na-e4be-4732-b980-bacd627dfc21\n* 2026-07-17 railties (3.3)\n  https://buildkite.com/rails/rails/builds/131149#019f7040-9396-4972-99b7-06deec0012db\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix test_precompile_shouldn't_use_the_digests_present_in_manifest.jso…",
          "author_name": "Yasuo Honda",
          "author_login": "yahonda",
          "committed_at": "2026-07-17T23:29:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0f60b3fbbfd7f31a0f80e665cfcc7327afefdb31",
          "body": "`config.action_dispatch.default_headers` set from a config/initializers\nfile must reach responses. This guards the timing bug where\nActionDispatch::Response is loaded during application initialization,\nbefore config/initializers run, so the load hook captures the default\nheaders before an initializer replaces them.\n\nRelated to #58145 and #32592.",
          "is_bot": false,
          "headline": "Test default_headers set in an initializer are applied",
          "author_name": "Ilia Lobsanov",
          "author_login": "nurey",
          "committed_at": "2026-07-17T22:48:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "86e34d6c7bdd50a375334b6a7b25934bf5a0bbe0",
          "body": "The test suite of load_schema_migrations has accumulated a number of tests for\nedge cases and error conditions, and it starts to be too noise and with\nduplicated setups.\n\nThis refactor moves it to its own class, has a specialized setup, defines a\ncouple of helpers that eliminate a lot of duplication, adds more tests, and\nswitches to use the `test` macro.",
          "is_bot": false,
          "headline": "Refactor the test suite of load_schema_migrations",
          "author_name": "Xavier Noria",
          "author_login": "fxn",
          "committed_at": "2026-07-17T21:45:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0ff61eb2ff9a94c8048345a5dbf25edc02bc1718",
          "body": "I used [0-9] here because in Perl \\d matches any Unicode digit.\n\nHowever, I just saw this is different in Ruby:\n\n> /\\d/: Matches a digit character: equivalent to [0-9]\n\nfrom https://docs.ruby-lang.org/en/4.0/Regexp.html.",
          "is_bot": false,
          "headline": "Simplify regexp character class",
          "author_name": "Xavier Noria",
          "author_login": "fxn",
          "committed_at": "2026-07-17T16:05:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3b3e9614dc0bfc33b711dcaf5d7c1c5504c6125b",
          "body": null,
          "is_bot": false,
          "headline": "Let schema migration loading filter and validate in one pass",
          "author_name": "Xavier Noria",
          "author_login": "fxn",
          "committed_at": "2026-07-17T15:51:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ad846ec1f48d7d3ab8f342f65fafb2ee8b43f33",
          "body": "Harden load schema migrations",
          "is_bot": false,
          "headline": "Merge pull request #58139 from 55728/harden-load-schema-migrations",
          "author_name": "Xavier Noria",
          "author_login": "fxn",
          "committed_at": "2026-07-17T15:35:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b64e3f9d4e2a79e20e2c1cc05fe85d42dc7481c2",
          "body": "A version listed twice — say, from a hand-resolved merge conflict in\nthe list — made db:schema:load fail midway with an adapter-level\nActiveRecord::RecordNotUnique on a fresh database. When the version\nwas already present in schema_migrations, the duplicate was silently\ntolerated instead, because ve\n[…]\n entry means the hand-maintained list went wrong, so the\nload now fails fast with an error naming the duplicated version,\nbefore any versions are inserted. Fresh and incremental loads behave\nthe same.",
          "is_bot": false,
          "headline": "Raise on duplicate versions listed after __END__ in db/schema.rb",
          "author_name": "Kenta Ishizaki",
          "author_login": "55728",
          "committed_at": "2026-07-17T15:26:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5e1ba35886198dd4635753245eeed3a5f73d9925",
          "body": "The __END__ marker was located with an exact \"__END__\\n\" byte match.\nRuby itself recognizes the marker in files with CRLF line endings, and\nin files where __END__ is the last line with no trailing newline, so\nsuch a schema file executed fine and then failed with \"No __END__\nfound\" on the very marker\n[…]\nis committed with CRLF endings and then\nloaded on another platform.\n\nThe marker is now matched with Ruby's line semantics. The version\nlines themselves were already resilient, since they are stripped.",
          "is_bot": false,
          "headline": "Load schema_migrations from schema files with CRLF line endings",
          "author_name": "Kenta Ishizaki",
          "author_login": "55728",
          "committed_at": "2026-07-17T14:14:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8b46f679e7cd8709af66fb84979c65a6678ed765",
          "body": "Make AbstractController::Base#action_methods ractor safe",
          "is_bot": false,
          "headline": "Merge pull request #58113 from Shopify/ec-action-methods-ractor",
          "author_name": "Jean Boussier",
          "author_login": "byroot",
          "committed_at": "2026-07-17T13:24:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4b4fb832dcb07315392cc7614864d67054d8f79",
          "body": null,
          "is_bot": false,
          "headline": "Polish a bit the docs of schema_migrations dumps",
          "author_name": "Xavier Noria",
          "author_login": "fxn",
          "committed_at": "2026-07-17T09:22:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a2d64214943b938169dc4caea8937ab5b7bca713",
          "body": "Support dumping schema_migrations in db/schema.rb",
          "is_bot": false,
          "headline": "Merge pull request #58134 from rails/fxn/dump-schema-migrations",
          "author_name": "Xavier Noria",
          "author_login": "fxn",
          "committed_at": "2026-07-17T04:58:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "07b31fbbef15c8cd764b9c40feab796438c1cb0e",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into fxn/dump-schema-migrations",
          "author_name": "Xavier Noria",
          "author_login": "fxn",
          "committed_at": "2026-07-17T04:48:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "802227924b70b4c8c903b7d0333238b9129a181f",
          "body": "…on-proxysql\n\nDon't force multi statement for MySQL tx isolation",
          "is_bot": false,
          "headline": "Merge pull request #58133 from edaroit/fix-trilogy-isolated-transacti…",
          "author_name": "Jean Boussier",
          "author_login": "byroot",
          "committed_at": "2026-07-16T20:16:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3421b05ac6f932df638be4ece3c97b7c52aef8ea",
          "body": "db/schema.rb has two issues:\n\n1. When loaded, it has to make an assumption about the migrations that have been\n   applied. There are edge cases in which the assumption is wrong.\n\n2. The version kwarg is a source of merge conflicts when two branches have new\n   migrations. Sometimes, that conflict even appears later in the merge queue!\n\nThis patch addresses these pain points.\n\nSee details in the CHANGELOG entry and docs included in this patch.",
          "is_bot": false,
          "headline": "Support dumping schema_migrations in db/schema.rb",
          "author_name": "Xavier Noria",
          "author_login": "fxn",
          "committed_at": "2026-07-16T20:10:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eab898bbe56699adb5b6065639a1108853602828",
          "body": "Previously, the abstract MySQL adapter's `begin_isolated_db_transaction`\nwas [refactored][1] to use multi statements to ensure that `SET\nTRANSACTION ISOLATION LEVEL` and `BEGIN` would be retried as a unit.\nThis prevented a potential bug where a `BEGIN` could be retried and lose\na previously configur\n[…]\n`execute_batch`\nwhen multi statement enabled.\n\n[1]: 4908dc305fa48142449224581377f8450313ef40\n\nCo-authored-by: Hartley McGuire <skipkayhil@gmail.com>\nCo-authored-by: Matthew Draper <matthew@trebex.net>",
          "is_bot": false,
          "headline": "Don't force multi statement for MySQL tx isolation",
          "author_name": "Eliseu Daroit",
          "author_login": "edaroit",
          "committed_at": "2026-07-16T19:35:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "19e0d37fc77cc2c66b3f859ee277937cbfb65a32",
          "body": "Wishlists guide:\n- An unmatched parenthesis after the Getting Started Guide link.\n\nProduct Reviews guide:\n- The db:migrate sample output omitted the default: 0 option that the\n  migration above it declares (the sibling reviews_count line shows it).\n- \"We need to a way to view\" -> \"We need a way to v\n[…]\ncklash\" ->\n\"backslash\", \"Oauth\" -> \"OAuth\", \"Illiad\" -> \"Iliad\", \"derivated\" ->\n\"derived\", \"striped\" -> \"stripped\"). These were surfaced with codespell\nand proofreading; CHANGELOGs are left untouched.",
          "is_bot": false,
          "headline": "Fix typos and inconsistencies in documentation [ci skip]",
          "author_name": "Kenta Ishizaki",
          "author_login": "55728",
          "committed_at": "2026-07-16T13:06:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9e60f5e73d78fb4932e8d6da087e68f598661faa",
          "body": "- ### Problem\n\n  `action_methods` returns a Set containing all methods that should be\n  considered as action. This set isn't frozen, so any time it is\n  referenced in a ractor, a Ractor Isolation error is raised.\n\n  ### Solution\n\n  Simply freeze the Set. We discussed about the possibility that this\n  change could break existing application that overrides\n  `action_methods` (like Action Mailer do) but decided it's unlikely.",
          "is_bot": false,
          "headline": "Make AbstractController::Base#action_methods ractor safe:",
          "author_name": "Edouard CHIN",
          "author_login": "Edouard-chin",
          "committed_at": "2026-07-16T12:58:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f011d1218bdd77857f30ce3964eef186f0f14de5",
          "body": "…rt-circuits\n\nAdd async test coverage for contradiction/none short-circuits in calculations",
          "is_bot": false,
          "headline": "Merge pull request #58115 from 55728/add-async-tests-calculations-sho…",
          "author_name": "Jean Boussier",
          "author_login": "byroot",
          "committed_at": "2026-07-16T07:24:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "93c356947296e4d4ece9629cdbb7b133e89e7999",
          "body": "…recision\n\nPreserve sub-second precision when coercing a `DateTime` in `Time.at`",
          "is_bot": false,
          "headline": "Merge pull request #58085 from 55728/fix-time-at-datetime-subsecond-p…",
          "author_name": "Jean Boussier",
          "author_login": "byroot",
          "committed_at": "2026-07-16T07:23:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd3f974d6567ab0bedcbd446be5b9f2811de2713",
          "body": "Allow to access `Controller#controller_path` in a Ractor",
          "is_bot": false,
          "headline": "Merge pull request #58119 from Shopify/ec-controller-path-freeze",
          "author_name": "Jean Boussier",
          "author_login": "byroot",
          "committed_at": "2026-07-16T07:16:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7bd4bd8ea5323cd82b7ca8da7cf9f140d5af9daa",
          "body": "Don't autovivify the PostgreSQL listener on shutdown",
          "is_bot": false,
          "headline": "Merge pull request #57702 from 55728/fix-pg-shutdown-autovivify-listener",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-15T22:57:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f8e2d6564032322163b45f723718081bdf6b3cda",
          "body": "Add missing ActiveSupport core extension and feature requires",
          "is_bot": false,
          "headline": "Merge pull request #58042 from 55728/fix-parameters-fetch-values-require",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-15T22:54:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "596ba03153a5120e12f9fa6b658471bb8d9d5c66",
          "body": "PostgreSQL#shutdown called the memoizing private `listener` accessor,\nwhich lazily builds a Listener — spawning a background thread and opening\na database connection — purely to tear it down. Shutting down an adapter\nthat was never subscribed to (a broadcast-only or idle worker) therefore\ncreated a thread and a throwaway connection for nothing.\n\nGuard on the raw ivar like the Redis adapter's `shutdown` already does,\nso an unused adapter shuts down as a no-op.",
          "is_bot": false,
          "headline": "Don't autovivify the PostgreSQL listener on shutdown",
          "author_name": "Kenta Ishizaki",
          "author_login": "55728",
          "committed_at": "2026-07-15T22:50:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "75fef8331d19358af6d8889152389d095d3a2ae3",
          "body": "Fix `rubocop.yml` indentation",
          "is_bot": false,
          "headline": "Merge pull request #58132 from jeromedalbert/fix-yml-indent",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-15T22:46:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9eaae758d931c2c8b9031d7dcd33a7929faecd2",
          "body": "Fix Rubocop violation in `config/puma.rb` - Approach 1",
          "is_bot": false,
          "headline": "Merge pull request #58129 from jeromedalbert/fix-config-puma-1",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-15T22:12:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd5c84cd08eb63762601d2b3b2a6bf9a330cc023",
          "body": null,
          "is_bot": false,
          "headline": "Fix `rubocop.yml` indentation",
          "author_name": "Jerome Dalbert",
          "author_login": "jeromedalbert",
          "committed_at": "2026-07-15T19:25:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cfb10cb6ec1434c8e8cb8635bb20baa472e43af5",
          "body": "…on-limit\n\nRespect a limit set on the relation in `rails query`",
          "is_bot": false,
          "headline": "Merge pull request #58043 from 55728/fix-query-command-respect-relati…",
          "author_name": "fatkodima",
          "author_login": "fatkodima",
          "committed_at": "2026-07-15T17:21:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9120ec05aaef0b0c5d1e999e4835ccbde8952f53",
          "body": "…ument-default\n\nTest that `reverse_merge` takes the default from the other hash",
          "is_bot": false,
          "headline": "Merge pull request #58063 from 55728/test-reverse-merge-preserves-arg…",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-15T17:11:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d718384dc0d65436c5eecf141ce653bb93e27b7a",
          "body": null,
          "is_bot": false,
          "headline": "Fix Rubocop violation in config/puma.rb",
          "author_name": "Jerome Dalbert",
          "author_login": "jeromedalbert",
          "committed_at": "2026-07-15T14:53:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a321e18c1786da8ea95e134761fc884b0e269ed1",
          "body": "This PR is part of the Rails Foundation documentation project and updates the Rails Generators guide.\n\nNote: Section \"Applications Templates\" and \"Rails Generator API\" do not require a review. They have already gone through the full review process already as they came from merging another guide into this guide.\n\nCo-authored-by: Ayush Newatia <ayush@hey.com>\nCo-authored-by: Petrik de Heus <petrik@deheus.net>",
          "is_bot": false,
          "headline": "[RF-Docs] [ci-skip] Update the Rails Generators guide (#57371)",
          "author_name": "bhumi1102",
          "author_login": "bhumi1102",
          "committed_at": "2026-07-15T13:10:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bee8deefc726adb80d8ff69d602b2e35c230e1b2",
          "body": "Fix `Relation#one?` doc example calling `any?`",
          "is_bot": false,
          "headline": "Merge pull request #58124 from 55728/fix-relation-one-doc-example",
          "author_name": "Ryuta Kamizono",
          "author_login": "kamipo",
          "committed_at": "2026-07-15T12:05:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1d34c473f51dbe9bf67ab65303616307525b660f",
          "body": "The second example under `Relation#one?` called `posts.any?(Comment)`.\nUse `one?` so the example demonstrates the documented method, align the\nresult comments like the `any?` examples, and fix \"one records\" in both\nmethods' prose.",
          "is_bot": false,
          "headline": "Fix `Relation#one?` doc example calling `any?` [ci skip]",
          "author_name": "Kenta Ishizaki",
          "author_login": "55728",
          "committed_at": "2026-07-15T11:53:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2cfea92cd88640d0022b8b9f67820be7e2bfe469",
          "body": "Guard tests for PostgreSQL 11, 12, and 15 changes",
          "is_bot": false,
          "headline": "Merge pull request #58116 from yahonda/postgresql-version-test-guards",
          "author_name": "Yasuo Honda",
          "author_login": "yahonda",
          "committed_at": "2026-07-15T09:32:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c2dbb2104247e1ea5e9832d256c26c798156df20",
          "body": null,
          "is_bot": false,
          "headline": "Merge pull request #55410 from seanpdoyle/action-view-navigation-helper",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-15T01:50:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "07f4b45e294e016675ec500a800f359cde839aa4",
          "body": "Related to [#50312][]\n\nCreate the `ActionView::Helper::NavigationHelper` to serve as a module\nfor `button_to` and `link_to` (as well as related\n`link_to_unless_current`, `link_to_unless`, and `link_to_if`).\n\nAs a side-effect of moving those methods, this commit also moves several\n`private`-scoped me\n[…]\n\nignored. Depsite that fact, this commit moves the methods so that they\nare defined in the same module that they are called.\n\n[#50312]: https://github.com/rails/rails/pull/50312#discussion_r2220564548",
          "is_bot": false,
          "headline": "Introduce `ActionView::Helpers::NavigationHelper`",
          "author_name": "Sean Doyle",
          "author_login": "seanpdoyle",
          "committed_at": "2026-07-14T22:57:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0facc5c8fbb4357de1a32d3e4244165c8c0cdf59",
          "body": "- ### Problem\n\n  The string returned by `SomeController#controller_path` isn't frozen\n  so we can't access it from a ractor.\n\n  ### Solution\n\n  Freeze the returned string.\n\n  ### Side note\n\n  The memoization works correctly in a Ractor because the writer is\n  set thanks to an existing `inherited` hook.",
          "is_bot": false,
          "headline": "Allow to access `Controller#controller_path` in a Ractor:",
          "author_name": "Edouard CHIN",
          "author_login": "Edouard-chin",
          "committed_at": "2026-07-14T17:43:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b62a092e3f8a0f24ac9aa5fbb183cdee763c22f4",
          "body": null,
          "is_bot": false,
          "headline": "Update my last name in changelogs",
          "author_name": "eileencodes",
          "author_login": "eileencodes",
          "committed_at": "2026-07-14T14:59:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "97748791052e12d241e912864881f850839c12ac",
          "body": "…ted_to_all_shards\n\nRaise for empty shards on `connected_to_all_shards`",
          "is_bot": false,
          "headline": "Merge pull request #58117 from rails/raise-for-empty-shards-on-connec…",
          "author_name": "Eileen",
          "author_login": "eileencodes",
          "committed_at": "2026-07-14T14:58:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "697fc4c0b94da6d4e6e82fd70a8ccc31bc7ff027",
          "body": "If an app isn't sharded then `connected_to_all_shards` should raise an\nerror because `shard_keys` will be empty. While the issue argued that it\nshould work by using default, the app isn't actually sharded. For an app\nto be sharded there at minimum needs to be 2 connection configs with\ndifferent schemas because 1 is the router and 1 is a shard which\nrepresents a 1x partition of a database.\n\nCloses: https://github.com/rails/rails/issues/58114",
          "is_bot": false,
          "headline": "Raise for empty shards on `connected_to_all_shards`",
          "author_name": "eileencodes",
          "author_login": "eileencodes",
          "committed_at": "2026-07-14T14:35:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db0a479f12dc3c579c67f397edc4f69d12d644cb",
          "body": "…ulations\n\nFollow-up to https://github.com/rails/rails/pull/58058#pullrequestreview-4687080638\n\nThe contradiction and null-relation short-circuits in the calculation\nmethods return early without hitting the database, but most of them\nwere only tested through the synchronous entry points. Cover the\nasync variants as well, asserting that they return a promise with the\nsame result and still issue no queries.",
          "is_bot": false,
          "headline": "Add async test coverage for contradiction/none short-circuits in calc…",
          "author_name": "Kenta Ishizaki",
          "author_login": "55728",
          "committed_at": "2026-07-14T13:12:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "16d141ab543f0d3aaf57ee95157a4e156288911d",
          "body": "PostgreSQL 10 does not accept EXECUTE FUNCTION in CREATE TRIGGER, so\nthe test schema fails to load. Switch to EXECUTE PROCEDURE, which\nworks on every supported version and is already used in this file.\n\nPostgreSQL 11 also added arrays of domain types and primary/foreign\nkey constraints on partitione\n[…]\nes/postgres/commit/eb7ed3f3063401496e4aa4bd68fa33f0be31a72f\nhttps://github.com/postgres/postgres/commit/3de241dba86f3dd000434f70aebba725fb928032\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Guard tests for PostgreSQL 11 changes",
          "author_name": "Yasuo Honda",
          "author_login": "yahonda",
          "committed_at": "2026-07-14T13:06:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "439ca10f3fd497eb1f74fc8a5ae640eb3aac19fd",
          "body": "PostgreSQL 12 added generated columns. The test schema creates the\nvirtual_stored_number column only when supports_virtual_columns? is\ntrue, so guard the two tests reading it with the same predicate.\n\nPostgreSQL 12 also allowed ALTER TYPE ... ADD VALUE inside a\ntransaction block. No supports_*? pred\n[…]\nted value is not referenced\n> until after it is committed.\n\nhttps://github.com/postgres/postgres/commit/212fab9926b2f0f04b0187568e7124b70e8deee5\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Guard tests for PostgreSQL 12 changes",
          "author_name": "Yasuo Honda",
          "author_login": "yahonda",
          "committed_at": "2026-07-14T13:02:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "349e1ccb43eb2366395da137ed08b5fddbd20f47",
          "body": "PostgreSQL 15 added UNIQUE NULLS NOT DISTINCT. Older servers create\nthe constraint without the option and the schema dump omits the flag,\nso branch the assertion on supports_nulls_not_distinct?, following\ntest_schema_dumps_nulls_not_distinct in the same file.\n\nhttps://www.postgresql.org/docs/release\n[…]\nconstraints and indexes using\n> UNIQUE NULLS NOT DISTINCT.\n\nhttps://github.com/postgres/postgres/commit/94aa7cc5f707712f592885995a28e018c7c80488\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Guard tests for PostgreSQL 15 changes",
          "author_name": "Yasuo Honda",
          "author_login": "yahonda",
          "committed_at": "2026-07-14T13:02:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f956777962d286cc5c9aa8a3ae25ee7eaadaf43a",
          "body": "…nforced-toggle-v2\n\nUse NOT ENFORCED toggle in check_all_foreign_keys_valid! on PostgreSQL 18.4+",
          "is_bot": false,
          "headline": "Merge pull request #58055 from yahonda/check-all-foreign-keys-valid-e…",
          "author_name": "Yasuo Honda",
          "author_login": "yahonda",
          "committed_at": "2026-07-14T10:42:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49c044bf2213c100f39399d47de4e6476005b64c",
          "body": null,
          "is_bot": false,
          "headline": "Fix the broken #with reference",
          "author_name": "Niklas Haeusele",
          "author_login": "codergeek121",
          "committed_at": "2026-07-13T20:47:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ddf2e01505e13f4243ce6d72ae2b829279c953b1",
          "body": null,
          "is_bot": false,
          "headline": "Remove unneeded parenthesis [ci-skip]",
          "author_name": "claudiob",
          "author_login": "claudiob",
          "committed_at": "2026-07-13T20:42:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4aafd831a6e4c2979e43a4069f1415860d6ffc1e",
          "body": "The guides currently mention the ActionView guides before the\nActionController guides. This makes sense if the order is MVC.\n\nHowever, some of the ActionView guides require knowledge of controllers\nand routes, whereas most of the ActionController guides can be read\nwithout knowledge of ActionView. S\n[…]\n order: route -> controller\n-> view -> response.\n\nThis moves \"Controllers\" before \"Views\", renames \"Controllers\" to\n\"Routing and Controllers\", and moves the routing guide above the\ncontrollers guides.",
          "is_bot": false,
          "headline": "Change the order of Views and Controllers in the guides",
          "author_name": "Petrik",
          "author_login": "p8",
          "committed_at": "2026-07-13T13:02:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f08380b65f3fa0d7cd6299ff46960dca7a4cb754",
          "body": "Copying an example should not output the plain ellipsis.\nThis is problematic in Ruby where `...` is valid Ruby, while in other\nlanguages it will generate syntax errors.\n\nFor output of Rails commands we can still use regular ellipsis as\ncopying that output won't work anyway.\n\nThis also updates the guides guidelines with an example.",
          "is_bot": false,
          "headline": "Comment ellipsis in guides examples",
          "author_name": "Petrik",
          "author_login": "p8",
          "committed_at": "2026-07-13T13:01:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca0627edfbbb11b2836be411ae88a913e051c784",
          "body": "The guide checks for the absence of \"Store Settings\" using\r\n`assert_not_dom \"a\", \"Store Settings\"`.\r\n\r\nHowever, \"Store Settings\" is rendered as an `h4` heading rather\r\nthan a link, so the selector should be `h4` to match the markup\r\nshown in the guide.",
          "is_bot": false,
          "headline": "Fix settings navigation test in authentication guide",
          "author_name": "Lemayian JN",
          "author_login": "Lemmah",
          "committed_at": "2026-07-13T08:53:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b9e0c77e6609c895de2c97924ed09c7d6fad6798",
          "body": "…che-control-case\n\nDowncase Cache-Control key in asset pipeline guide example",
          "is_bot": false,
          "headline": "Merge pull request #58101 from meganemura/fix-asset-pipeline-guide-ca…",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-13T04:19:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bebc20b72971b8913d60f6b7e6e7cf3b64eb71c0",
          "body": "#52653 downcased the cache-control header key in the generated\ndevelopment.rb.tt and test.rb.tt templates so newly generated apps\nfollow the Rack 3 SPEC, which requires response headers to be\nlowercase. The asset pipeline guide's CDN section still showed the\nconfig.public_file_server.headers example with the old\n\"Cache-Control\" casing, so update it to match the generated code.",
          "is_bot": false,
          "headline": "Downcase Cache-Control key in asset pipeline guide example",
          "author_name": "meganemura",
          "author_login": "meganemura",
          "committed_at": "2026-07-13T03:44:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d7150bfc0109b33165cec73f24b1cdf17b252566",
          "body": "…-form\n\nCarry the `form` attribute onto a multiple `select`'s hidden field",
          "is_bot": false,
          "headline": "Merge pull request #58064 from 55728/fix-select-multiple-hidden-field…",
          "author_name": "Hartley McGuire",
          "author_login": "skipkayhil",
          "committed_at": "2026-07-12T21:33:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "520e5c6e7461d2d8b81552601f794d7c79597bea",
          "body": "Read foreign key names from the schema on SQLite3",
          "is_bot": false,
          "headline": "Merge pull request #58096 from 55728/fix-sqlite3-foreign-key-name",
          "author_name": "fatkodima",
          "author_login": "fatkodima",
          "committed_at": "2026-07-12T19:44:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3f1564b152862bb288a88c809c2cf309e8682a46",
          "body": "On SQLite3, `foreign_keys` did not read the constraint name from the\ntable definition, so every `ForeignKeyDefinition` came back with\n`name == nil`. Several user-visible bugs followed:\n\n- `remove_foreign_key(table, name: \"fk\")` ignored the name and removed\n  an arbitrary (the first) foreign key inst\n[…]\nith the\nabstract adapter and MySQL/PostgreSQL. Custom names now survive table\nrebuilds and round-trip through the schema dump; auto-generated\n`fk_rails_*` names remain ignored by the dumper as before.",
          "is_bot": false,
          "headline": "Read foreign key names from the schema on SQLite3",
          "author_name": "Kenta Ishizaki",
          "author_login": "55728",
          "committed_at": "2026-07-12T19:33:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2bd3cd4b2fb57f9af43daa789902d86554527bb9",
          "body": "Refactor assume_migrated_upto_version",
          "is_bot": false,
          "headline": "Merge pull request #58099 from rails/fxn/refactor",
          "author_name": "Xavier Noria",
          "author_login": "fxn",
          "committed_at": "2026-07-12T18:45:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6039e0e827bfaf6f5c20bbddaa1ce5204d4dc78d",
          "body": null,
          "is_bot": false,
          "headline": "Refactor assume_migrated_upto_version",
          "author_name": "Xavier Noria",
          "author_login": "fxn",
          "committed_at": "2026-07-12T18:19:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3947087c3678656c8885633c5f0dea0a4fab782b",
          "body": "…trip\n\nStrip only the commented line when detecting a LIMIT in `rails query`",
          "is_bot": false,
          "headline": "Merge pull request #58077 from 55728/fix-query-command-line-comment-s…",
          "author_name": "fatkodima",
          "author_login": "fatkodima",
          "committed_at": "2026-07-12T13:22:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "09e9417652bd76942003f2f0b10dd48fcc2d93fa",
          "body": "`rails query --sql` decides whether to append its own `LIMIT` by first\nremoving comments from the SQL. The line-comment pattern was `--.*$` with\nthe `/m` flag (added for block comments), so `.` matched newlines and a\nsingle `--` comment consumed the rest of the statement, hiding a real\n`LIMIT` that followed it. The command then appended a second `LIMIT`,\nproducing invalid SQL. The line-comment pattern now stops at the newline.",
          "is_bot": false,
          "headline": "Strip only the commented line when detecting a LIMIT in rails query",
          "author_name": "Kenta Ishizaki",
          "author_login": "55728",
          "committed_at": "2026-07-12T13:14:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "109b3c4c58fb1514718e1190810e3971153596e7",
          "body": "…ime-inputs\n\nAccept `Date` and numeric inputs in `relative_time_in_words`",
          "is_bot": false,
          "headline": "Merge pull request #58092 from 55728/fix-relative-time-in-words-non-t…",
          "author_name": "fatkodima",
          "author_login": "fatkodima",
          "committed_at": "2026-07-12T12:10:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b0955ca345dc18315668a0647f254ccc8f95e976",
          "body": "Passing a Date or a Numeric raised ArgumentError instead of returning a\ndistance string, unlike distance_of_time_in_words which accepts them.",
          "is_bot": false,
          "headline": "Accept Date and numeric inputs in relative_time_in_words",
          "author_name": "Kenta Ishizaki",
          "author_login": "55728",
          "committed_at": "2026-07-12T12:02:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d30eb2413cc0f785a7be21775e495b7ab1f58c90",
          "body": "…-if-not-exists\n\nHonor `if_not_exists:` in SQLite3 `add_check_constraint` and `add_foreign_key`",
          "is_bot": false,
          "headline": "Merge pull request #58091 from 55728/fix-sqlite3-add-check-constraint…",
          "author_name": "fatkodima",
          "author_login": "fatkodima",
          "committed_at": "2026-07-12T11:53:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b1a33e9d2a78f077e4af1069d3ab555a7a03e066",
          "body": "add_check_constraint and add_foreign_key accept if_not_exists: true to make\nadding a constraint or foreign key that already exists a no-op instead of an\nerror. The abstract adapter (used by MySQL and Trilogy) and the SQLite3\nremove_check_constraint and remove_foreign_key overrides all honor their\nex\n[…]\n:, so the option fell into **options\nunused and a duplicate was added.\n\nThey now return early when the constraint or foreign key already exists,\nmatching the abstract adapter and the remove overrides.",
          "is_bot": false,
          "headline": "Honor if_not_exists in SQLite3 add_check_constraint and add_foreign_key",
          "author_name": "Kenta Ishizaki",
          "author_login": "55728",
          "committed_at": "2026-07-12T10:17:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "450c547ef823bbe948afbccd58fd887c349b48e3",
          "body": "Decouple schema loading from the versions formatter",
          "is_bot": false,
          "headline": "Merge pull request #58093 from rails/fxn/ruby-schema-load",
          "author_name": "Xavier Noria",
          "author_login": "fxn",
          "committed_at": "2026-07-12T09:42:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 3266,
      "latest_release_at": "2026-03-24T20:26:02Z",
      "latest_release_tag": "v8.1.3",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 52,
      "days_since_latest_release": 119,
      "mean_days_between_releases": 16.3
    },
    "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": "rails",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "rubygems",
          "matches_repo": true,
          "registry_url": "https://rubygems.org/gems/rails",
          "is_deprecated": false,
          "latest_version": "8.1.3",
          "repository_url": "https://github.com/rails/rails/tree/v8.1.3",
          "versions_count": 516,
          "total_downloads": 766141815,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2009-07-25T18:01:56Z",
          "latest_published_at": "2026-03-24T20:27:42.098000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 119
        },
        {
          "name": "@rails/actiontext",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@rails/actiontext",
          "is_deprecated": false,
          "latest_version": "8.1.300",
          "repository_url": "https://github.com/rails/rails",
          "versions_count": 151,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 8,
          "monthly_downloads": 1611030,
          "first_published_at": "2019-01-10T15:27:54.243000Z",
          "latest_published_at": "2026-03-24T20:27:36.704000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 119
        },
        {
          "name": "@rails/actioncable",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "websockets",
            "actioncable",
            "rails"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@rails/actioncable",
          "is_deprecated": false,
          "latest_version": "8.1.300",
          "repository_url": "https://github.com/rails/rails",
          "versions_count": 151,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 8,
          "monthly_downloads": 7107601,
          "first_published_at": "2019-01-10T15:31:50.177000Z",
          "latest_published_at": "2026-03-24T20:27:20.911000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 119
        },
        {
          "name": "railties",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "rubygems",
          "matches_repo": true,
          "registry_url": "https://rubygems.org/gems/railties",
          "is_deprecated": false,
          "latest_version": "8.1.3",
          "repository_url": "https://github.com/rails/rails/tree/v8.1.3/railties",
          "versions_count": 452,
          "total_downloads": 763536375,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2010-02-05T03:02:06.511000Z",
          "latest_published_at": "2026-03-24T20:27:39.394000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 119
        },
        {
          "name": "@rails/activestorage",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@rails/activestorage",
          "is_deprecated": false,
          "latest_version": "8.1.300",
          "repository_url": "https://github.com/rails/rails",
          "versions_count": 151,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 8,
          "monthly_downloads": 3915592,
          "first_published_at": "2019-01-10T15:34:04.565000Z",
          "latest_published_at": "2026-03-24T20:27:26.803000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 119
        },
        {
          "name": "activejob",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "rubygems",
          "matches_repo": true,
          "registry_url": "https://rubygems.org/gems/activejob",
          "is_deprecated": false,
          "latest_version": "8.1.3",
          "repository_url": "https://github.com/rails/rails/tree/v8.1.3/activejob",
          "versions_count": 266,
          "total_downloads": 682910108,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2014-05-20T18:10:32.961000Z",
          "latest_published_at": "2026-03-24T20:27:09.681000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 119
        },
        {
          "name": "actionpack",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "rubygems",
          "matches_repo": true,
          "registry_url": "https://rubygems.org/gems/actionpack",
          "is_deprecated": false,
          "latest_version": "8.1.3",
          "repository_url": "https://github.com/rails/rails/tree/v8.1.3/actionpack",
          "versions_count": 515,
          "total_downloads": 801507633,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2009-07-25T18:36:20Z",
          "latest_published_at": "2026-03-24T20:27:06.634000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 119
        },
        {
          "name": "actiontext",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "rubygems",
          "matches_repo": true,
          "registry_url": "https://rubygems.org/gems/actiontext",
          "is_deprecated": false,
          "latest_version": "8.1.3",
          "repository_url": "https://github.com/rails/rails/tree/v8.1.3/actiontext",
          "versions_count": 150,
          "total_downloads": 424155745,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2019-01-18T21:23:18.544000Z",
          "latest_published_at": "2026-03-24T20:27:32.815000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 119
        }
      ]
    },
    "popularity": {
      "forks": 22363,
      "stars": 58641,
      "watchers": 2334,
      "fork_history": {
        "days": [
          {
            "date": "2025-06-14",
            "count": 2
          },
          {
            "date": "2025-06-15",
            "count": 1
          },
          {
            "date": "2025-06-16",
            "count": 1
          },
          {
            "date": "2025-06-17",
            "count": 3
          },
          {
            "date": "2025-06-20",
            "count": 1
          },
          {
            "date": "2025-06-22",
            "count": 1
          },
          {
            "date": "2025-06-23",
            "count": 2
          },
          {
            "date": "2025-06-24",
            "count": 1
          },
          {
            "date": "2025-06-26",
            "count": 1
          },
          {
            "date": "2025-06-27",
            "count": 1
          },
          {
            "date": "2025-06-29",
            "count": 1
          },
          {
            "date": "2025-07-01",
            "count": 3
          },
          {
            "date": "2025-07-02",
            "count": 2
          },
          {
            "date": "2025-07-03",
            "count": 3
          },
          {
            "date": "2025-07-05",
            "count": 1
          },
          {
            "date": "2025-07-06",
            "count": 2
          },
          {
            "date": "2025-07-07",
            "count": 2
          },
          {
            "date": "2025-07-08",
            "count": 2
          },
          {
            "date": "2025-07-09",
            "count": 3
          },
          {
            "date": "2025-07-10",
            "count": 4
          },
          {
            "date": "2025-07-11",
            "count": 2
          },
          {
            "date": "2025-07-12",
            "count": 1
          },
          {
            "date": "2025-07-14",
            "count": 3
          },
          {
            "date": "2025-07-15",
            "count": 3
          },
          {
            "date": "2025-07-16",
            "count": 2
          },
          {
            "date": "2025-07-17",
            "count": 5
          },
          {
            "date": "2025-07-18",
            "count": 6
          },
          {
            "date": "2025-07-19",
            "count": 2
          },
          {
            "date": "2025-07-20",
            "count": 2
          },
          {
            "date": "2025-07-21",
            "count": 5
          },
          {
            "date": "2025-07-22",
            "count": 3
          },
          {
            "date": "2025-07-23",
            "count": 2
          },
          {
            "date": "2025-07-24",
            "count": 2
          },
          {
            "date": "2025-07-25",
            "count": 1
          },
          {
            "date": "2025-07-26",
            "count": 5
          },
          {
            "date": "2025-07-27",
            "count": 1
          },
          {
            "date": "2025-07-28",
            "count": 1
          },
          {
            "date": "2025-07-29",
            "count": 2
          },
          {
            "date": "2025-07-30",
            "count": 1
          },
          {
            "date": "2025-07-31",
            "count": 2
          },
          {
            "date": "2025-08-01",
            "count": 1
          },
          {
            "date": "2025-08-02",
            "count": 1
          },
          {
            "date": "2025-08-03",
            "count": 4
          },
          {
            "date": "2025-08-04",
            "count": 1
          },
          {
            "date": "2025-08-05",
            "count": 3
          },
          {
            "date": "2025-08-06",
            "count": 1
          },
          {
            "date": "2025-08-07",
            "count": 1
          },
          {
            "date": "2025-08-08",
            "count": 4
          },
          {
            "date": "2025-08-09",
            "count": 2
          },
          {
            "date": "2025-08-12",
            "count": 2
          },
          {
            "date": "2025-08-13",
            "count": 2
          },
          {
            "date": "2025-08-14",
            "count": 4
          },
          {
            "date": "2025-08-17",
            "count": 3
          },
          {
            "date": "2025-08-18",
            "count": 3
          },
          {
            "date": "2025-08-19",
            "count": 3
          },
          {
            "date": "2025-08-20",
            "count": 3
          },
          {
            "date": "2025-08-21",
            "count": 2
          },
          {
            "date": "2025-08-22",
            "count": 1
          },
          {
            "date": "2025-08-23",
            "count": 4
          },
          {
            "date": "2025-08-25",
            "count": 4
          },
          {
            "date": "2025-08-26",
            "count": 3
          },
          {
            "date": "2025-08-27",
            "count": 2
          },
          {
            "date": "2025-08-28",
            "count": 3
          },
          {
            "date": "2025-08-30",
            "count": 2
          },
          {
            "date": "2025-09-01",
            "count": 2
          },
          {
            "date": "2025-09-02",
            "count": 1
          },
          {
            "date": "2025-09-03",
            "count": 1
          },
          {
            "date": "2025-09-04",
            "count": 5
          },
          {
            "date": "2025-09-05",
            "count": 5
          },
          {
            "date": "2025-09-06",
            "count": 4
          },
          {
            "date": "2025-09-07",
            "count": 2
          },
          {
            "date": "2025-09-08",
            "count": 1
          },
          {
            "date": "2025-09-09",
            "count": 4
          },
          {
            "date": "2025-09-10",
            "count": 1
          },
          {
            "date": "2025-09-12",
            "count": 2
          },
          {
            "date": "2025-09-14",
            "count": 1
          },
          {
            "date": "2025-09-15",
            "count": 4
          },
          {
            "date": "2025-09-16",
            "count": 1
          },
          {
            "date": "2025-09-17",
            "count": 2
          },
          {
            "date": "2025-09-18",
            "count": 1
          },
          {
            "date": "2025-09-19",
            "count": 1
          },
          {
            "date": "2025-09-20",
            "count": 2
          },
          {
            "date": "2025-09-21",
            "count": 3
          },
          {
            "date": "2025-09-22",
            "count": 3
          },
          {
            "date": "2025-09-23",
            "count": 1
          },
          {
            "date": "2025-09-24",
            "count": 4
          },
          {
            "date": "2025-09-25",
            "count": 9
          },
          {
            "date": "2025-09-26",
            "count": 2
          },
          {
            "date": "2025-09-27",
            "count": 3
          },
          {
            "date": "2025-09-29",
            "count": 4
          },
          {
            "date": "2025-10-01",
            "count": 1
          },
          {
            "date": "2025-10-02",
            "count": 2
          },
          {
            "date": "2025-10-03",
            "count": 1
          },
          {
            "date": "2025-10-04",
            "count": 2
          },
          {
            "date": "2025-10-05",
            "count": 2
          },
          {
            "date": "2025-10-06",
            "count": 1
          },
          {
            "date": "2025-10-07",
            "count": 2
          },
          {
            "date": "2025-10-08",
            "count": 3
          },
          {
            "date": "2025-10-10",
            "count": 2
          },
          {
            "date": "2025-10-15",
            "count": 3
          },
          {
            "date": "2025-10-16",
            "count": 2
          },
          {
            "date": "2025-10-17",
            "count": 4
          },
          {
            "date": "2025-10-18",
            "count": 5
          },
          {
            "date": "2025-10-19",
            "count": 1
          },
          {
            "date": "2025-10-20",
            "count": 2
          },
          {
            "date": "2025-10-21",
            "count": 2
          },
          {
            "date": "2025-10-22",
            "count": 3
          },
          {
            "date": "2025-10-23",
            "count": 5
          },
          {
            "date": "2025-10-24",
            "count": 4
          },
          {
            "date": "2025-10-26",
            "count": 1
          },
          {
            "date": "2025-10-28",
            "count": 1
          },
          {
            "date": "2025-10-29",
            "count": 2
          },
          {
            "date": "2025-10-30",
            "count": 1
          },
          {
            "date": "2025-10-31",
            "count": 2
          },
          {
            "date": "2025-11-01",
            "count": 4
          },
          {
            "date": "2025-11-02",
            "count": 3
          },
          {
            "date": "2025-11-03",
            "count": 4
          },
          {
            "date": "2025-11-05",
            "count": 3
          },
          {
            "date": "2025-11-06",
            "count": 1
          },
          {
            "date": "2025-11-07",
            "count": 2
          },
          {
            "date": "2025-11-08",
            "count": 2
          },
          {
            "date": "2025-11-09",
            "count": 2
          },
          {
            "date": "2025-11-10",
            "count": 1
          },
          {
            "date": "2025-11-11",
            "count": 4
          },
          {
            "date": "2025-11-12",
            "count": 1
          },
          {
            "date": "2025-11-13",
            "count": 3
          },
          {
            "date": "2025-11-14",
            "count": 2
          },
          {
            "date": "2025-11-15",
            "count": 4
          },
          {
            "date": "2025-11-16",
            "count": 3
          },
          {
            "date": "2025-11-17",
            "count": 3
          },
          {
            "date": "2025-11-18",
            "count": 4
          },
          {
            "date": "2025-11-20",
            "count": 2
          },
          {
            "date": "2025-11-21",
            "count": 3
          },
          {
            "date": "2025-11-22",
            "count": 1
          },
          {
            "date": "2025-11-23",
            "count": 2
          },
          {
            "date": "2025-11-24",
            "count": 2
          },
          {
            "date": "2025-11-25",
            "count": 1
          },
          {
            "date": "2025-11-26",
            "count": 1
          },
          {
            "date": "2025-11-27",
            "count": 2
          },
          {
            "date": "2025-11-28",
            "count": 1
          },
          {
            "date": "2025-11-29",
            "count": 4
          },
          {
            "date": "2025-11-30",
            "count": 3
          },
          {
            "date": "2025-12-02",
            "count": 2
          },
          {
            "date": "2025-12-03",
            "count": 2
          },
          {
            "date": "2025-12-04",
            "count": 2
          },
          {
            "date": "2025-12-05",
            "count": 2
          },
          {
            "date": "2025-12-06",
            "count": 1
          },
          {
            "date": "2025-12-07",
            "count": 2
          },
          {
            "date": "2025-12-08",
            "count": 1
          },
          {
            "date": "2025-12-11",
            "count": 3
          },
          {
            "date": "2025-12-13",
            "count": 2
          },
          {
            "date": "2025-12-15",
            "count": 3
          },
          {
            "date": "2025-12-16",
            "count": 3
          },
          {
            "date": "2025-12-17",
            "count": 1
          },
          {
            "date": "2025-12-18",
            "count": 3
          },
          {
            "date": "2025-12-19",
            "count": 3
          },
          {
            "date": "2025-12-20",
            "count": 3
          },
          {
            "date": "2025-12-21",
            "count": 2
          },
          {
            "date": "2025-12-22",
            "count": 2
          },
          {
            "date": "2025-12-23",
            "count": 3
          },
          {
            "date": "2025-12-24",
            "count": 2
          },
          {
            "date": "2025-12-25",
            "count": 2
          },
          {
            "date": "2025-12-26",
            "count": 2
          },
          {
            "date": "2025-12-27",
            "count": 1
          },
          {
            "date": "2025-12-28",
            "count": 1
          },
          {
            "date": "2025-12-29",
            "count": 3
          },
          {
            "date": "2025-12-31",
            "count": 3
          },
          {
            "date": "2026-01-01",
            "count": 2
          },
          {
            "date": "2026-01-02",
            "count": 2
          },
          {
            "date": "2026-01-05",
            "count": 2
          },
          {
            "date": "2026-01-06",
            "count": 2
          },
          {
            "date": "2026-01-07",
            "count": 2
          },
          {
            "date": "2026-01-08",
            "count": 4
          },
          {
            "date": "2026-01-09",
            "count": 2
          },
          {
            "date": "2026-01-10",
            "count": 2
          },
          {
            "date": "2026-01-11",
            "count": 2
          },
          {
            "date": "2026-01-12",
            "count": 7
          },
          {
            "date": "2026-01-13",
            "count": 6
          },
          {
            "date": "2026-01-14",
            "count": 4
          },
          {
            "date": "2026-01-15",
            "count": 1
          },
          {
            "date": "2026-01-16",
            "count": 3
          },
          {
            "date": "2026-01-18",
            "count": 1
          },
          {
            "date": "2026-01-20",
            "count": 4
          },
          {
            "date": "2026-01-21",
            "count": 1
          },
          {
            "date": "2026-01-22",
            "count": 2
          },
          {
            "date": "2026-01-23",
            "count": 3
          },
          {
            "date": "2026-01-25",
            "count": 2
          },
          {
            "date": "2026-01-26",
            "count": 1
          },
          {
            "date": "2026-01-27",
            "count": 2
          },
          {
            "date": "2026-01-30",
            "count": 3
          },
          {
            "date": "2026-01-31",
            "count": 3
          },
          {
            "date": "2026-02-01",
            "count": 1
          },
          {
            "date": "2026-02-02",
            "count": 6
          },
          {
            "date": "2026-02-03",
            "count": 2
          },
          {
            "date": "2026-02-04",
            "count": 2
          },
          {
            "date": "2026-02-05",
            "count": 4
          },
          {
            "date": "2026-02-06",
            "count": 3
          },
          {
            "date": "2026-02-07",
            "count": 3
          },
          {
            "date": "2026-02-08",
            "count": 2
          },
          {
            "date": "2026-02-09",
            "count": 1
          },
          {
            "date": "2026-02-10",
            "count": 2
          },
          {
            "date": "2026-02-11",
            "count": 1
          },
          {
            "date": "2026-02-12",
            "count": 2
          },
          {
            "date": "2026-02-13",
            "count": 1
          },
          {
            "date": "2026-02-14",
            "count": 1
          },
          {
            "date": "2026-02-15",
            "count": 3
          },
          {
            "date": "2026-02-16",
            "count": 1
          },
          {
            "date": "2026-02-17",
            "count": 2
          },
          {
            "date": "2026-02-18",
            "count": 3
          },
          {
            "date": "2026-02-19",
            "count": 3
          },
          {
            "date": "2026-02-20",
            "count": 2
          },
          {
            "date": "2026-02-22",
            "count": 1
          },
          {
            "date": "2026-02-23",
            "count": 1
          },
          {
            "date": "2026-02-24",
            "count": 3
          },
          {
            "date": "2026-02-25",
            "count": 2
          },
          {
            "date": "2026-02-26",
            "count": 5
          },
          {
            "date": "2026-02-28",
            "count": 1
          },
          {
            "date": "2026-03-02",
            "count": 1
          },
          {
            "date": "2026-03-03",
            "count": 1
          },
          {
            "date": "2026-03-04",
            "count": 1
          },
          {
            "date": "2026-03-05",
            "count": 1
          },
          {
            "date": "2026-03-06",
            "count": 2
          },
          {
            "date": "2026-03-07",
            "count": 2
          },
          {
            "date": "2026-03-08",
            "count": 1
          },
          {
            "date": "2026-03-09",
            "count": 1
          },
          {
            "date": "2026-03-10",
            "count": 2
          },
          {
            "date": "2026-03-11",
            "count": 6
          },
          {
            "date": "2026-03-12",
            "count": 4
          },
          {
            "date": "2026-03-13",
            "count": 1
          },
          {
            "date": "2026-03-14",
            "count": 1
          },
          {
            "date": "2026-03-15",
            "count": 2
          },
          {
            "date": "2026-03-16",
            "count": 2
          },
          {
            "date": "2026-03-17",
            "count": 4
          },
          {
            "date": "2026-03-18",
            "count": 1
          },
          {
            "date": "2026-03-19",
            "count": 3
          },
          {
            "date": "2026-03-21",
            "count": 3
          },
          {
            "date": "2026-03-22",
            "count": 2
          },
          {
            "date": "2026-03-23",
            "count": 2
          },
          {
            "date": "2026-03-24",
            "count": 1
          },
          {
            "date": "2026-03-25",
            "count": 5
          },
          {
            "date": "2026-03-26",
            "count": 3
          },
          {
            "date": "2026-03-27",
            "count": 2
          },
          {
            "date": "2026-03-29",
            "count": 1
          },
          {
            "date": "2026-03-30",
            "count": 1
          },
          {
            "date": "2026-03-31",
            "count": 3
          },
          {
            "date": "2026-04-01",
            "count": 2
          },
          {
            "date": "2026-04-02",
            "count": 2
          },
          {
            "date": "2026-04-03",
            "count": 3
          },
          {
            "date": "2026-04-04",
            "count": 4
          },
          {
            "date": "2026-04-06",
            "count": 1
          },
          {
            "date": "2026-04-07",
            "count": 4
          },
          {
            "date": "2026-04-08",
            "count": 1
          },
          {
            "date": "2026-04-09",
            "count": 1
          },
          {
            "date": "2026-04-11",
            "count": 3
          },
          {
            "date": "2026-04-13",
            "count": 4
          },
          {
            "date": "2026-04-14",
            "count": 1
          },
          {
            "date": "2026-04-15",
            "count": 1
          },
          {
            "date": "2026-04-16",
            "count": 2
          },
          {
            "date": "2026-04-17",
            "count": 2
          },
          {
            "date": "2026-04-18",
            "count": 1
          },
          {
            "date": "2026-04-19",
            "count": 3
          },
          {
            "date": "2026-04-22",
            "count": 3
          },
          {
            "date": "2026-04-23",
            "count": 4
          },
          {
            "date": "2026-04-24",
            "count": 3
          },
          {
            "date": "2026-04-25",
            "count": 4
          },
          {
            "date": "2026-04-27",
            "count": 5
          },
          {
            "date": "2026-04-28",
            "count": 1
          },
          {
            "date": "2026-04-29",
            "count": 4
          },
          {
            "date": "2026-04-30",
            "count": 1
          },
          {
            "date": "2026-05-01",
            "count": 1
          },
          {
            "date": "2026-05-03",
            "count": 2
          },
          {
            "date": "2026-05-04",
            "count": 3
          },
          {
            "date": "2026-05-05",
            "count": 1
          },
          {
            "date": "2026-05-06",
            "count": 4
          },
          {
            "date": "2026-05-07",
            "count": 2
          },
          {
            "date": "2026-05-08",
            "count": 3
          },
          {
            "date": "2026-05-09",
            "count": 2
          },
          {
            "date": "2026-05-10",
            "count": 3
          },
          {
            "date": "2026-05-11",
            "count": 5
          },
          {
            "date": "2026-05-13",
            "count": 3
          },
          {
            "date": "2026-05-14",
            "count": 2
          },
          {
            "date": "2026-05-18",
            "count": 3
          },
          {
            "date": "2026-05-20",
            "count": 3
          },
          {
            "date": "2026-05-21",
            "count": 3
          },
          {
            "date": "2026-05-22",
            "count": 1
          },
          {
            "date": "2026-05-23",
            "count": 3
          },
          {
            "date": "2026-05-26",
            "count": 1
          },
          {
            "date": "2026-05-27",
            "count": 3
          },
          {
            "date": "2026-05-28",
            "count": 4
          },
          {
            "date": "2026-05-29",
            "count": 2
          },
          {
            "date": "2026-05-30",
            "count": 3
          },
          {
            "date": "2026-05-31",
            "count": 1
          },
          {
            "date": "2026-06-01",
            "count": 1
          },
          {
            "date": "2026-06-03",
            "count": 1
          },
          {
            "date": "2026-06-05",
            "count": 3
          },
          {
            "date": "2026-06-06",
            "count": 2
          },
          {
            "date": "2026-06-07",
            "count": 2
          },
          {
            "date": "2026-06-08",
            "count": 1
          },
          {
            "date": "2026-06-09",
            "count": 1
          },
          {
            "date": "2026-06-10",
            "count": 2
          },
          {
            "date": "2026-06-11",
            "count": 3
          },
          {
            "date": "2026-06-12",
            "count": 1
          },
          {
            "date": "2026-06-13",
            "count": 2
          },
          {
            "date": "2026-06-14",
            "count": 2
          },
          {
            "date": "2026-06-15",
            "count": 4
          },
          {
            "date": "2026-06-16",
            "count": 1
          },
          {
            "date": "2026-06-17",
            "count": 1
          },
          {
            "date": "2026-06-19",
            "count": 3
          },
          {
            "date": "2026-06-21",
            "count": 1
          },
          {
            "date": "2026-06-22",
            "count": 1
          },
          {
            "date": "2026-06-23",
            "count": 2
          },
          {
            "date": "2026-06-24",
            "count": 3
          },
          {
            "date": "2026-06-26",
            "count": 1
          },
          {
            "date": "2026-06-27",
            "count": 2
          },
          {
            "date": "2026-06-28",
            "count": 3
          },
          {
            "date": "2026-06-29",
            "count": 2
          },
          {
            "date": "2026-06-30",
            "count": 24
          },
          {
            "date": "2026-07-01",
            "count": 10
          },
          {
            "date": "2026-07-02",
            "count": 11
          },
          {
            "date": "2026-07-03",
            "count": 12
          },
          {
            "date": "2026-07-04",
            "count": 22
          },
          {
            "date": "2026-07-05",
            "count": 15
          },
          {
            "date": "2026-07-06",
            "count": 6
          },
          {
            "date": "2026-07-07",
            "count": 12
          },
          {
            "date": "2026-07-08",
            "count": 4
          },
          {
            "date": "2026-07-09",
            "count": 11
          },
          {
            "date": "2026-07-10",
            "count": 33
          },
          {
            "date": "2026-07-11",
            "count": 20
          },
          {
            "date": "2026-07-12",
            "count": 5
          },
          {
            "date": "2026-07-13",
            "count": 9
          },
          {
            "date": "2026-07-14",
            "count": 8
          },
          {
            "date": "2026-07-15",
            "count": 5
          },
          {
            "date": "2026-07-16",
            "count": 2
          },
          {
            "date": "2026-07-17",
            "count": 3
          },
          {
            "date": "2026-07-18",
            "count": 17
          },
          {
            "date": "2026-07-19",
            "count": 7
          },
          {
            "date": "2026-07-20",
            "count": 8
          },
          {
            "date": "2026-07-21",
            "count": 21
          }
        ],
        "complete": false,
        "collected": 1000,
        "total_forks": 22363
      },
      "star_history": {
        "days": [
          {
            "date": "2025-12-23",
            "count": 5
          },
          {
            "date": "2025-12-24",
            "count": 2
          },
          {
            "date": "2025-12-25",
            "count": 3
          },
          {
            "date": "2025-12-26",
            "count": 5
          },
          {
            "date": "2025-12-27",
            "count": 4
          },
          {
            "date": "2025-12-28",
            "count": 5
          },
          {
            "date": "2025-12-29",
            "count": 7
          },
          {
            "date": "2025-12-30",
            "count": 6
          },
          {
            "date": "2025-12-31",
            "count": 5
          },
          {
            "date": "2026-01-01",
            "count": 4
          },
          {
            "date": "2026-01-02",
            "count": 5
          },
          {
            "date": "2026-01-03",
            "count": 3
          },
          {
            "date": "2026-01-04",
            "count": 4
          },
          {
            "date": "2026-01-05",
            "count": 8
          },
          {
            "date": "2026-01-06",
            "count": 14
          },
          {
            "date": "2026-01-07",
            "count": 5
          },
          {
            "date": "2026-01-08",
            "count": 10
          },
          {
            "date": "2026-01-09",
            "count": 5
          },
          {
            "date": "2026-01-10",
            "count": 1
          },
          {
            "date": "2026-01-11",
            "count": 5
          },
          {
            "date": "2026-01-12",
            "count": 3
          },
          {
            "date": "2026-01-13",
            "count": 5
          },
          {
            "date": "2026-01-14",
            "count": 5
          },
          {
            "date": "2026-01-15",
            "count": 3
          },
          {
            "date": "2026-01-16",
            "count": 5
          },
          {
            "date": "2026-01-17",
            "count": 3
          },
          {
            "date": "2026-01-18",
            "count": 6
          },
          {
            "date": "2026-01-19",
            "count": 7
          },
          {
            "date": "2026-01-20",
            "count": 4
          },
          {
            "date": "2026-01-21",
            "count": 2
          },
          {
            "date": "2026-01-22",
            "count": 5
          },
          {
            "date": "2026-01-23",
            "count": 3
          },
          {
            "date": "2026-01-24",
            "count": 4
          },
          {
            "date": "2026-01-25",
            "count": 3
          },
          {
            "date": "2026-01-26",
            "count": 5
          },
          {
            "date": "2026-01-27",
            "count": 6
          },
          {
            "date": "2026-01-28",
            "count": 5
          },
          {
            "date": "2026-01-29",
            "count": 6
          },
          {
            "date": "2026-01-30",
            "count": 4
          },
          {
            "date": "2026-01-31",
            "count": 5
          },
          {
            "date": "2026-02-01",
            "count": 4
          },
          {
            "date": "2026-02-02",
            "count": 4
          },
          {
            "date": "2026-02-03",
            "count": 6
          },
          {
            "date": "2026-02-04",
            "count": 5
          },
          {
            "date": "2026-02-05",
            "count": 3
          },
          {
            "date": "2026-02-06",
            "count": 1
          },
          {
            "date": "2026-02-07",
            "count": 7
          },
          {
            "date": "2026-02-08",
            "count": 7
          },
          {
            "date": "2026-02-09",
            "count": 2
          },
          {
            "date": "2026-02-10",
            "count": 5
          },
          {
            "date": "2026-02-11",
            "count": 6
          },
          {
            "date": "2026-02-12",
            "count": 6
          },
          {
            "date": "2026-02-13",
            "count": 7
          },
          {
            "date": "2026-02-14",
            "count": 1
          },
          {
            "date": "2026-02-15",
            "count": 2
          },
          {
            "date": "2026-02-16",
            "count": 1
          },
          {
            "date": "2026-02-17",
            "count": 5
          },
          {
            "date": "2026-02-18",
            "count": 3
          },
          {
            "date": "2026-02-19",
            "count": 9
          },
          {
            "date": "2026-02-20",
            "count": 7
          },
          {
            "date": "2026-02-21",
            "count": 3
          },
          {
            "date": "2026-02-22",
            "count": 3
          },
          {
            "date": "2026-02-23",
            "count": 2
          },
          {
            "date": "2026-02-24",
            "count": 2
          },
          {
            "date": "2026-02-25",
            "count": 7
          },
          {
            "date": "2026-02-26",
            "count": 4
          },
          {
            "date": "2026-02-27",
            "count": 4
          },
          {
            "date": "2026-02-28",
            "count": 7
          },
          {
            "date": "2026-03-01",
            "count": 2
          },
          {
            "date": "2026-03-02",
            "count": 5
          },
          {
            "date": "2026-03-03",
            "count": 1
          },
          {
            "date": "2026-03-04",
            "count": 5
          },
          {
            "date": "2026-03-05",
            "count": 8
          },
          {
            "date": "2026-03-06",
            "count": 3
          },
          {
            "date": "2026-03-07",
            "count": 3
          },
          {
            "date": "2026-03-08",
            "count": 2
          },
          {
            "date": "2026-03-09",
            "count": 2
          },
          {
            "date": "2026-03-10",
            "count": 6
          },
          {
            "date": "2026-03-11",
            "count": 3
          },
          {
            "date": "2026-03-12",
            "count": 2
          },
          {
            "date": "2026-03-13",
            "count": 4
          },
          {
            "date": "2026-03-14",
            "count": 2
          },
          {
            "date": "2026-03-15",
            "count": 2
          },
          {
            "date": "2026-03-16",
            "count": 8
          },
          {
            "date": "2026-03-17",
            "count": 4
          },
          {
            "date": "2026-03-18",
            "count": 4
          },
          {
            "date": "2026-03-19",
            "count": 5
          },
          {
            "date": "2026-03-20",
            "count": 2
          },
          {
            "date": "2026-03-21",
            "count": 4
          },
          {
            "date": "2026-03-22",
            "count": 7
          },
          {
            "date": "2026-03-23",
            "count": 3
          },
          {
            "date": "2026-03-24",
            "count": 11
          },
          {
            "date": "2026-03-25",
            "count": 10
          },
          {
            "date": "2026-03-26",
            "count": 5
          },
          {
            "date": "2026-03-27",
            "count": 5
          },
          {
            "date": "2026-03-28",
            "count": 2
          },
          {
            "date": "2026-03-29",
            "count": 2
          },
          {
            "date": "2026-03-30",
            "count": 1
          },
          {
            "date": "2026-03-31",
            "count": 5
          },
          {
            "date": "2026-04-01",
            "count": 5
          },
          {
            "date": "2026-04-02",
            "count": 2
          },
          {
            "date": "2026-04-03",
            "count": 4
          },
          {
            "date": "2026-04-04",
            "count": 3
          },
          {
            "date": "2026-04-05",
            "count": 2
          },
          {
            "date": "2026-04-06",
            "count": 3
          },
          {
            "date": "2026-04-07",
            "count": 3
          },
          {
            "date": "2026-04-08",
            "count": 1
          },
          {
            "date": "2026-04-09",
            "count": 7
          },
          {
            "date": "2026-04-10",
            "count": 6
          },
          {
            "date": "2026-04-11",
            "count": 4
          },
          {
            "date": "2026-04-12",
            "count": 4
          },
          {
            "date": "2026-04-13",
            "count": 7
          },
          {
            "date": "2026-04-14",
            "count": 3
          },
          {
            "date": "2026-04-15",
            "count": 8
          },
          {
            "date": "2026-04-16",
            "count": 5
          },
          {
            "date": "2026-04-17",
            "count": 4
          },
          {
            "date": "2026-04-18",
            "count": 1
          },
          {
            "date": "2026-04-19",
            "count": 4
          },
          {
            "date": "2026-04-20",
            "count": 6
          },
          {
            "date": "2026-04-21",
            "count": 1
          },
          {
            "date": "2026-04-22",
            "count": 3
          },
          {
            "date": "2026-04-23",
            "count": 7
          },
          {
            "date": "2026-04-24",
            "count": 7
          },
          {
            "date": "2026-04-25",
            "count": 7
          },
          {
            "date": "2026-04-26",
            "count": 6
          },
          {
            "date": "2026-04-27",
            "count": 2
          },
          {
            "date": "2026-04-28",
            "count": 9
          },
          {
            "date": "2026-04-29",
            "count": 10
          },
          {
            "date": "2026-04-30",
            "count": 4
          },
          {
            "date": "2026-05-01",
            "count": 5
          },
          {
            "date": "2026-05-02",
            "count": 7
          },
          {
            "date": "2026-05-03",
            "count": 4
          },
          {
            "date": "2026-05-04",
            "count": 3
          },
          {
            "date": "2026-05-05",
            "count": 6
          },
          {
            "date": "2026-05-06",
            "count": 3
          },
          {
            "date": "2026-05-07",
            "count": 10
          },
          {
            "date": "2026-05-08",
            "count": 5
          },
          {
            "date": "2026-05-09",
            "count": 2
          },
          {
            "date": "2026-05-10",
            "count": 3
          },
          {
            "date": "2026-05-11",
            "count": 2
          },
          {
            "date": "2026-05-12",
            "count": 1
          },
          {
            "date": "2026-05-13",
            "count": 1
          },
          {
            "date": "2026-05-14",
            "count": 3
          },
          {
            "date": "2026-05-15",
            "count": 4
          },
          {
            "date": "2026-05-16",
            "count": 5
          },
          {
            "date": "2026-05-17",
            "count": 5
          },
          {
            "date": "2026-05-18",
            "count": 5
          },
          {
            "date": "2026-05-19",
            "count": 6
          },
          {
            "date": "2026-05-20",
            "count": 10
          },
          {
            "date": "2026-05-21",
            "count": 5
          },
          {
            "date": "2026-05-22",
            "count": 4
          },
          {
            "date": "2026-05-23",
            "count": 2
          },
          {
            "date": "2026-05-24",
            "count": 8
          },
          {
            "date": "2026-05-25",
            "count": 11
          },
          {
            "date": "2026-05-26",
            "count": 7
          },
          {
            "date": "2026-05-27",
            "count": 2
          },
          {
            "date": "2026-05-28",
            "count": 6
          },
          {
            "date": "2026-05-29",
            "count": 5
          },
          {
            "date": "2026-05-30",
            "count": 10
          },
          {
            "date": "2026-05-31",
            "count": 5
          },
          {
            "date": "2026-06-01",
            "count": 4
          },
          {
            "date": "2026-06-02",
            "count": 3
          },
          {
            "date": "2026-06-03",
            "count": 3
          },
          {
            "date": "2026-06-04",
            "count": 5
          },
          {
            "date": "2026-06-05",
            "count": 26
          },
          {
            "date": "2026-06-06",
            "count": 5
          },
          {
            "date": "2026-06-07",
            "count": 6
          },
          {
            "date": "2026-06-08",
            "count": 2
          },
          {
            "date": "2026-06-10",
            "count": 24
          },
          {
            "date": "2026-06-11",
            "count": 4
          },
          {
            "date": "2026-06-12",
            "count": 3
          },
          {
            "date": "2026-06-13",
            "count": 6
          },
          {
            "date": "2026-06-14",
            "count": 6
          },
          {
            "date": "2026-06-15",
            "count": 2
          },
          {
            "date": "2026-06-16",
            "count": 6
          },
          {
            "date": "2026-06-17",
            "count": 6
          },
          {
            "date": "2026-06-18",
            "count": 2
          },
          {
            "date": "2026-06-19",
            "count": 2
          },
          {
            "date": "2026-06-20",
            "count": 2
          },
          {
            "date": "2026-06-21",
            "count": 2
          },
          {
            "date": "2026-06-22",
            "count": 4
          },
          {
            "date": "2026-06-23",
            "count": 1
          },
          {
            "date": "2026-06-24",
            "count": 12
          },
          {
            "date": "2026-06-25",
            "count": 3
          },
          {
            "date": "2026-06-26",
            "count": 4
          },
          {
            "date": "2026-06-27",
            "count": 8
          },
          {
            "date": "2026-06-28",
            "count": 1
          },
          {
            "date": "2026-06-29",
            "count": 1
          },
          {
            "date": "2026-06-30",
            "count": 6
          },
          {
            "date": "2026-07-01",
            "count": 3
          },
          {
            "date": "2026-07-02",
            "count": 7
          },
          {
            "date": "2026-07-03",
            "count": 3
          },
          {
            "date": "2026-07-04",
            "count": 5
          },
          {
            "date": "2026-07-05",
            "count": 4
          },
          {
            "date": "2026-07-06",
            "count": 6
          },
          {
            "date": "2026-07-07",
            "count": 5
          },
          {
            "date": "2026-07-08",
            "count": 4
          },
          {
            "date": "2026-07-09",
            "count": 7
          },
          {
            "date": "2026-07-10",
            "count": 4
          },
          {
            "date": "2026-07-11",
            "count": 3
          },
          {
            "date": "2026-07-13",
            "count": 4
          },
          {
            "date": "2026-07-14",
            "count": 5
          },
          {
            "date": "2026-07-15",
            "count": 5
          },
          {
            "date": "2026-07-16",
            "count": 5
          },
          {
            "date": "2026-07-17",
            "count": 2
          },
          {
            "date": "2026-07-18",
            "count": 5
          },
          {
            "date": "2026-07-19",
            "count": 7
          },
          {
            "date": "2026-07-20",
            "count": 9
          },
          {
            "date": "2026-07-21",
            "count": 9
          }
        ],
        "complete": false,
        "collected": 1000,
        "total_stars": 58641
      },
      "open_issues_and_prs": 1555
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": true,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 449565,
      "source_files_sampled": 3497,
      "oversized_source_files": 39,
      "agent_instruction_files": [
        "AGENTS.md"
      ],
      "agent_instruction_max_bytes": 6905
    },
    "dependencies": {
      "manifests": [
        "Gemfile",
        "actioncable/package.json",
        "actiontext/package.json",
        "activestorage/package.json",
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 2,
        "malicious_count": 0,
        "assessed_package": "npm:@rails/actiontext@8.1.300",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm",
        "rubygems"
      ],
      "dependencies": [
        {
          "name": "minitest",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 6.0"
        },
        {
          "name": "minitest-mock",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "releaser",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "sprockets-rails",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 2.0.0"
        },
        {
          "name": "propshaft",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 0.1.7"
        },
        {
          "name": "capybara",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 3.39"
        },
        {
          "name": "selenium-webdriver",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 4.20.0"
        },
        {
          "name": "rack-cache",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 1.2"
        },
        {
          "name": "stimulus-rails",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "turbo-rails",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "jsbundling-rails",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "cssbundling-rails",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "importmap-rails",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 1.2.3"
        },
        {
          "name": "tailwindcss-rails",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "dartsass-rails",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "solid_cache",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "solid_queue",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "solid_cable",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "kamal",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 2.1.0"
        },
        {
          "name": "thruster",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "bcrypt",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 3.1.11"
        },
        {
          "name": "argon2",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 2.3.2"
        },
        {
          "name": "terser",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 1.1.4"
        },
        {
          "name": "json",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 2.0.0"
        },
        {
          "name": "uri",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 0.13.1"
        },
        {
          "name": "prism",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "rubocop",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "1.79.2"
        },
        {
          "name": "rubocop-minitest",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "rubocop-packaging",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "rubocop-performance",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "rubocop-rails",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "rubocop-md",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "rubocop-rails-omakase",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "mdl",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "!= 0.13.0"
        },
        {
          "name": "sdoc",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 2.6.4"
        },
        {
          "name": "redcarpet",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 3.6.1"
        },
        {
          "name": "w3c_validators",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 1.3.6"
        },
        {
          "name": "rouge",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "rubyzip",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 2.0"
        },
        {
          "name": "dalli",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "redis-client",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 0.28.0"
        },
        {
          "name": "listen",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 3.3"
        },
        {
          "name": "libxml-ruby",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "connection_pool",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "rexml",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "msgpack",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 1.7.0"
        },
        {
          "name": "bootsnap",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 1.4.4"
        },
        {
          "name": "webrick",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "jbuilder",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "web-console",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "rack",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "rack",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "useragent",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "resque",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "resque-scheduler",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "queue_classic",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 4.0.0"
        },
        {
          "name": "sneakers",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "backburner",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "puma",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 5.0.3"
        },
        {
          "name": "redis",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 4.0.1"
        },
        {
          "name": "redis-namespace",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "websocket-client-simple",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "aws-sdk-s3",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "google-cloud-storage",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 1.11"
        },
        {
          "name": "image_processing",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 2.0"
        },
        {
          "name": "ruby-vips",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 2.3"
        },
        {
          "name": "mini_magick",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 5.0"
        },
        {
          "name": "aws-sdk-sns",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "webmock",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "brakeman",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "bundler-audit",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "nokogiri",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 1.8.1"
        },
        {
          "name": "sqlite3",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 2.1"
        },
        {
          "name": "pg",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 1.3"
        },
        {
          "name": "mysql2",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 0.5"
        },
        {
          "name": "trilogy",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 2.7.0"
        },
        {
          "name": "tzinfo-data",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "wdm",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": ">= 0.1.0"
        },
        {
          "name": "launchy",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "@rails/activestorage",
          "manifest": "actiontext/package.json",
          "ecosystem": "npm",
          "version_constraint": ">= 8.1.0-alpha"
        },
        {
          "name": "spark-md5",
          "manifest": "activestorage/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.0.1"
        },
        {
          "name": "js-sha256",
          "manifest": "activestorage/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.9.0"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@rails/activestorage",
            "direct": true,
            "version": "8.1.0-beta1",
            "ecosystem": "npm"
          },
          {
            "name": "@rails/activestorage",
            "direct": true,
            "version": ">= 8.1.0-alpha",
            "ecosystem": "npm"
          },
          {
            "name": "js-sha256",
            "direct": true,
            "version": "0.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-sha256",
            "direct": true,
            "version": "^0.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "spark-md5",
            "direct": true,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "spark-md5",
            "direct": true,
            "version": "^3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "argon2",
            "direct": true,
            "version": "2.3.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "aws-sdk-s3",
            "direct": true,
            "version": "1.197.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "aws-sdk-sns",
            "direct": true,
            "version": "1.92.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "backburner",
            "direct": true,
            "version": "1.7.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "bcrypt",
            "direct": true,
            "version": "3.1.20",
            "ecosystem": "rubygems"
          },
          {
            "name": "bootsnap",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "bootsnap",
            "direct": true,
            "version": "1.18.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "brakeman",
            "direct": true,
            "version": "7.0.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "bundler-audit",
            "direct": true,
            "version": "0.9.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "capybara",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "capybara",
            "direct": true,
            "version": "3.40.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "connection_pool",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "connection_pool",
            "direct": true,
            "version": "3.0.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "cssbundling-rails",
            "direct": true,
            "version": "1.4.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "dalli",
            "direct": true,
            "version": "5.0.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "dartsass-rails",
            "direct": true,
            "version": "0.5.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "google-cloud-storage",
            "direct": true,
            "version": "1.54.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "image_processing",
            "direct": true,
            "version": "2.0.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "importmap-rails",
            "direct": true,
            "version": "2.1.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "jbuilder",
            "direct": true,
            "version": "2.13.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "jsbundling-rails",
            "direct": true,
            "version": "1.3.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "json",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "json",
            "direct": true,
            "version": "2.20.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "kamal",
            "direct": true,
            "version": "2.4.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "launchy",
            "direct": true,
            "version": "3.0.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "libxml-ruby",
            "direct": true,
            "version": "6.0.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "listen",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "listen",
            "direct": true,
            "version": "3.9.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "mdl",
            "direct": true,
            "version": "0.12.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "mini_magick",
            "direct": true,
            "version": "5.3.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "minitest",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "minitest",
            "direct": true,
            "version": "5.25.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "minitest",
            "direct": true,
            "version": "6.0.6",
            "ecosystem": "rubygems"
          },
          {
            "name": "minitest-mock",
            "direct": true,
            "version": "5.27.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "msgpack",
            "direct": true,
            "version": "1.7.5",
            "ecosystem": "rubygems"
          },
          {
            "name": "mysql2",
            "direct": true,
            "version": "0.5.6",
            "ecosystem": "rubygems"
          },
          {
            "name": "nokogiri",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "nokogiri",
            "direct": true,
            "version": "1.19.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "pg",
            "direct": true,
            "version": "1.6.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "prism",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "prism",
            "direct": true,
            "version": "1.7.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "propshaft",
            "direct": true,
            "version": "1.3.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "puma",
            "direct": true,
            "version": "6.5.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "queue_classic",
            "direct": true,
            "version": "4.0.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "rack",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "rack",
            "direct": true,
            "version": "3.2.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "rack-cache",
            "direct": true,
            "version": "1.17.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "redcarpet",
            "direct": true,
            "version": "3.6.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "redis",
            "direct": true,
            "version": "5.4.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "redis-client",
            "direct": true,
            "version": "0.28.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "redis-namespace",
            "direct": true,
            "version": "1.11.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "resque",
            "direct": true,
            "version": "2.7.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "resque-scheduler",
            "direct": true,
            "version": "4.11.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "rexml",
            "direct": true,
            "version": "3.4.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "rouge",
            "direct": true,
            "version": "4.6.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "rubocop",
            "direct": true,
            "version": "1.79.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "rubocop-md",
            "direct": true,
            "version": "2.0.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "rubocop-minitest",
            "direct": true,
            "version": "0.37.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "rubocop-packaging",
            "direct": true,
            "version": "0.6.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "rubocop-performance",
            "direct": true,
            "version": "1.24.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "rubocop-rails",
            "direct": true,
            "version": "2.30.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "rubocop-rails-omakase",
            "direct": true,
            "version": "1.0.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "ruby-vips",
            "direct": true,
            "version": "2.3.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "rubyzip",
            "direct": true,
            "version": "2.4.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "sdoc",
            "direct": true,
            "version": "2.6.5",
            "ecosystem": "rubygems"
          },
          {
            "name": "selenium-webdriver",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "selenium-webdriver",
            "direct": true,
            "version": "4.32.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "sneakers",
            "direct": true,
            "version": "2.11.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "solid_cable",
            "direct": true,
            "version": "3.0.5",
            "ecosystem": "rubygems"
          },
          {
            "name": "solid_cache",
            "direct": true,
            "version": "1.0.6",
            "ecosystem": "rubygems"
          },
          {
            "name": "solid_queue",
            "direct": true,
            "version": "1.1.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "sprockets-rails",
            "direct": true,
            "version": "3.5.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "sqlite3",
            "direct": true,
            "version": "2.5.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "stimulus-rails",
            "direct": true,
            "version": "1.3.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "tailwindcss-rails",
            "direct": true,
            "version": "3.2.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "terser",
            "direct": true,
            "version": "1.2.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "thruster",
            "direct": true,
            "version": "0.1.16",
            "ecosystem": "rubygems"
          },
          {
            "name": "trilogy",
            "direct": true,
            "version": "2.11.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "turbo-rails",
            "direct": true,
            "version": "2.0.11",
            "ecosystem": "rubygems"
          },
          {
            "name": "tzinfo-data",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "uri",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "uri",
            "direct": true,
            "version": "1.0.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "uri",
            "direct": true,
            "version": "1.0.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "useragent",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "useragent",
            "direct": true,
            "version": "0.16.11",
            "ecosystem": "rubygems"
          },
          {
            "name": "w3c_validators",
            "direct": true,
            "version": "1.3.7",
            "ecosystem": "rubygems"
          },
          {
            "name": "web-console",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "web-console",
            "direct": true,
            "version": "4.2.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "webmock",
            "direct": true,
            "version": "3.25.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "webrick",
            "direct": true,
            "version": "1.9.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "websocket-client-simple",
            "direct": true,
            "version": "0.9.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "@babel/code-frame",
            "direct": false,
            "version": "7.22.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.22.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/highlight",
            "direct": false,
            "version": "7.22.5",
            "ecosystem": "npm"
          },
          {
            "name": "@eggjs/yauzl",
            "direct": false,
            "version": "2.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint-community/eslint-utils",
            "direct": false,
            "version": "4.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint-community/regexpp",
            "direct": false,
            "version": "4.12.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/config-array",
            "direct": false,
            "version": "0.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/config-helpers",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/core",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/eslintrc",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/js",
            "direct": false,
            "version": "9.37.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/js",
            "direct": false,
            "version": "^9.24.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/object-schema",
            "direct": false,
            "version": "2.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/plugin-kit",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "@hapi/bourne",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/core",
            "direct": false,
            "version": "0.19.1",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/node",
            "direct": false,
            "version": "0.16.7",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/module-importer",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/retry",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@isaacs/cliui",
            "direct": false,
            "version": "8.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/resolve-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/source-map",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/trace-mapping",
            "direct": false,
            "version": "0.3.31",
            "ecosystem": "npm"
          },
          {
            "name": "@nodable/entities",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.scandir",
            "direct": false,
            "version": "2.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.stat",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.walk",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "@pkgjs/parseargs",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "@promptbook/utils",
            "direct": false,
            "version": "0.69.5",
            "ecosystem": "npm"
          },
          {
            "name": "@puppeteer/browsers",
            "direct": false,
            "version": "2.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/plugin-commonjs",
            "direct": false,
            "version": "19.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/plugin-commonjs",
            "direct": false,
            "version": "^19.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/plugin-node-resolve",
            "direct": false,
            "version": "11.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/plugin-node-resolve",
            "direct": false,
            "version": "15.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/plugin-node-resolve",
            "direct": false,
            "version": "^11.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/pluginutils",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/pluginutils",
            "direct": false,
            "version": "5.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm-eabi",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm64",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-arm64",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-x64",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-arm64",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-x64",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-musleabihf",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-gnu",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-musl",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-gnu",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-musl",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-gnu",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-musl",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-gnu",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-musl",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-s390x-gnu",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-gnu",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-musl",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openbsd-x64",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openharmony-arm64",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-arm64-msvc",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-ia32-msvc",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-gnu",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-msvc",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rtsao/scc",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@sindresorhus/is",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@szmarczak/http-timer",
            "direct": false,
            "version": "4.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@tootallnate/quickjs-emscripten",
            "direct": false,
            "version": "0.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/accepts",
            "direct": false,
            "version": "1.3.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/babel__code-frame",
            "direct": false,
            "version": "7.27.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/body-parser",
            "direct": false,
            "version": "1.19.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/cacheable-request",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/co-body",
            "direct": false,
            "version": "6.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/command-line-args",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/connect",
            "direct": false,
            "version": "3.4.38",
            "ecosystem": "npm"
          },
          {
            "name": "@types/content-disposition",
            "direct": false,
            "version": "0.5.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/convert-source-map",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/cookies",
            "direct": false,
            "version": "0.9.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/debounce",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "0.0.39",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/express",
            "direct": false,
            "version": "5.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/express-serve-static-core",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/http-assert",
            "direct": false,
            "version": "1.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/http-cache-semantics",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/http-errors",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/istanbul-lib-coverage",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/istanbul-lib-report",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/istanbul-reports",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/json-schema",
            "direct": false,
            "version": "7.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@types/json5",
            "direct": false,
            "version": "0.0.29",
            "ecosystem": "npm"
          },
          {
            "name": "@types/keygrip",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/keyv",
            "direct": false,
            "version": "3.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/koa",
            "direct": false,
            "version": "2.15.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/koa",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/koa-compose",
            "direct": false,
            "version": "3.2.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "20.19.43",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "20.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/parse5",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/qs",
            "direct": false,
            "version": "6.15.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/range-parser",
            "direct": false,
            "version": "1.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/resolve",
            "direct": false,
            "version": "1.17.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/resolve",
            "direct": false,
            "version": "1.20.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/responselike",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/send",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/serve-static",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/sinonjs__fake-timers",
            "direct": false,
            "version": "8.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/ws",
            "direct": false,
            "version": "7.4.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/ws",
            "direct": false,
            "version": "8.18.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/yauzl",
            "direct": false,
            "version": "2.10.3",
            "ecosystem": "npm"
          },
          {
            "name": "@wdio/config",
            "direct": false,
            "version": "9.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "@wdio/logger",
            "direct": false,
            "version": "9.18.0",
            "ecosystem": "npm"
          },
          {
            "name": "@wdio/protocols",
            "direct": false,
            "version": "9.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "@wdio/repl",
            "direct": false,
            "version": "9.16.2",
            "ecosystem": "npm"
          },
          {
            "name": "@wdio/types",
            "direct": false,
            "version": "9.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "@wdio/utils",
            "direct": false,
            "version": "9.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "@web/browser-logs",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "@web/config-loader",
            "direct": false,
            "version": "0.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@web/dev-server",
            "direct": false,
            "version": "0.4.6",
            "ecosystem": "npm"
          },
          {
            "name": "@web/dev-server-core",
            "direct": false,
            "version": "0.7.5",
            "ecosystem": "npm"
          },
          {
            "name": "@web/dev-server-rollup",
            "direct": false,
            "version": "0.6.4",
            "ecosystem": "npm"
          },
          {
            "name": "@web/parse5-utils",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@web/test-runner",
            "direct": false,
            "version": "0.20.2",
            "ecosystem": "npm"
          },
          {
            "name": "@web/test-runner",
            "direct": false,
            "version": "^0.20.2",
            "ecosystem": "npm"
          },
          {
            "name": "@web/test-runner-chrome",
            "direct": false,
            "version": "0.18.1",
            "ecosystem": "npm"
          },
          {
            "name": "@web/test-runner-commands",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "@web/test-runner-core",
            "direct": false,
            "version": "0.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "@web/test-runner-coverage-v8",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "@web/test-runner-mocha",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "@web/test-runner-saucelabs",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "@web/test-runner-saucelabs",
            "direct": false,
            "version": "^0.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "@web/test-runner-webdriver",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "@zip.js/zip.js",
            "direct": false,
            "version": "2.8.26",
            "ecosystem": "npm"
          },
          {
            "name": "abort-controller",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "accepts",
            "direct": false,
            "version": "1.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-jsx",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "agent-base",
            "direct": false,
            "version": "7.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "6.12.6",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-escapes",
            "direct": false,
            "version": "4.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "6.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "anynum",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "archiver",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "archiver-utils",
            "direct": false,
            "version": "5.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "aria-query",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "array-back",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "array-back",
            "direct": false,
            "version": "6.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "array-buffer-byte-length",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "array-includes",
            "direct": false,
            "version": "3.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "array-union",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "array.prototype.findlastindex",
            "direct": false,
            "version": "1.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "array.prototype.flat",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "array.prototype.flatmap",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "arraybuffer.prototype.slice",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ast-types",
            "direct": false,
            "version": "0.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "astral-regex",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "async",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "async-function",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "asynckit",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "available-typed-arrays",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "b4a",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "bare-events",
            "direct": false,
            "version": "2.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "bare-fs",
            "direct": false,
            "version": "4.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "bare-os",
            "direct": false,
            "version": "3.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "bare-path",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "bare-stream",
            "direct": false,
            "version": "2.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "bare-url",
            "direct": false,
            "version": "2.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "base64-js",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "basic-ftp",
            "direct": false,
            "version": "5.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "bl",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "boolbase",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.11",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "braces",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "buffer",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-alloc",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-alloc-unsafe",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-crc32",
            "direct": false,
            "version": "0.2.13",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-crc32",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-fill",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-from",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "builtin-modules",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "bytes",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "cache-content-type",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "cacheable-lookup",
            "direct": false,
            "version": "5.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "cacheable-request",
            "direct": false,
            "version": "7.0.4",
            "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": "camel-case",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "camelcase",
            "direct": false,
            "version": "6.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "capital-case",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "5.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk-template",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "change-case",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "cheerio",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "cheerio-select",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "chrome-launcher",
            "direct": false,
            "version": "0.15.2",
            "ecosystem": "npm"
          },
          {
            "name": "chromium-bidi",
            "direct": false,
            "version": "14.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-cursor",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "clone",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "clone-response",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "co",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "co-body",
            "direct": false,
            "version": "6.2.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": "combined-stream",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "command-line-args",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "command-line-usage",
            "direct": false,
            "version": "7.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "2.20.3",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "9.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "commondir",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "compress-commons",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "compressing",
            "direct": false,
            "version": "1.10.5",
            "ecosystem": "npm"
          },
          {
            "name": "concat-map",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "constant-case",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "content-disposition",
            "direct": false,
            "version": "0.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "content-type",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cookies",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "core-util-is",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "crc-32",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "crc32-stream",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "css-select",
            "direct": false,
            "version": "5.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "css-shorthand-properties",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "css-value",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "css-what",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "data-uri-to-buffer",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "data-view-buffer",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "data-view-byte-length",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "data-view-byte-offset",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "debounce",
            "direct": false,
            "version": "1.2.1",
            "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.4",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "decamelize",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "decode-uri-component",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "decompress-response",
            "direct": false,
            "version": "6.0.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": "deepmerge",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "deepmerge-ts",
            "direct": false,
            "version": "7.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "default-gateway",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "defer-to-connect",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "define-data-property",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "define-lazy-prop",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "define-properties",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "degenerator",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "delayed-stream",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "delegates",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "depd",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "depd",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "dependency-graph",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "destroy",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "devtools-protocol",
            "direct": false,
            "version": "0.0.1608973",
            "ecosystem": "npm"
          },
          {
            "name": "diff",
            "direct": false,
            "version": "5.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "dir-glob",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "doctrine",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "dom-serializer",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "domelementtype",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "domhandler",
            "direct": false,
            "version": "5.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "domutils",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "dot-case",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "dunder-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "eastasianwidth",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "edge-paths",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "edgedriver",
            "direct": false,
            "version": "6.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ee-first",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "9.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "encodeurl",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "encoding-sniffer",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "end-of-stream",
            "direct": false,
            "version": "1.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "4.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "errorstacks",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "es-abstract",
            "direct": false,
            "version": "1.24.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-module-lexer",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-object-atoms",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-set-tostringtag",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-shim-unscopables",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-to-primitive",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "escape-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": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "escodegen",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint",
            "direct": false,
            "version": "9.37.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint",
            "direct": false,
            "version": "^9.24.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-import-resolver-node",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-module-utils",
            "direct": false,
            "version": "2.12.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-import",
            "direct": false,
            "version": "2.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-import",
            "direct": false,
            "version": "^2.31.0",
            "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.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "esrecurse",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estraverse",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "esutils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "etag",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "event-target-shim",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "events",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "events-universal",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "execa",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "extract-zip",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-fifo",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "fast-glob",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-json-stable-stringify",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-levenshtein",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "fast-xml-builder",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-xml-parser",
            "direct": false,
            "version": "5.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "fastq",
            "direct": false,
            "version": "1.20.1",
            "ecosystem": "npm"
          },
          {
            "name": "fd-slicer",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fd-slicer2",
            "direct": false,
            "version": "1.2.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": "filter-obj",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "find-replace",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "flat-cache",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "flatted",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "flushwritable",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "for-each",
            "direct": false,
            "version": "0.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "foreground-child",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "form-data",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "fresh",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "fs-constants",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fs.realpath",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "function-bind",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "function.prototype.name",
            "direct": false,
            "version": "1.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "functions-have-names",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "geckodriver",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "generator-function",
            "direct": false,
            "version": "2.0.1",
            "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-port",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-ready",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-stream",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-stream",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-symbol-description",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-uri",
            "direct": false,
            "version": "6.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "10.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "7.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "globals",
            "direct": false,
            "version": "14.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "globals",
            "direct": false,
            "version": "^14.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "globalthis",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "globalyzer",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "globby",
            "direct": false,
            "version": "11.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "globrex",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "got",
            "direct": false,
            "version": "11.8.6",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "grapheme-splitter",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "has-bigints",
            "direct": false,
            "version": "1.1.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-proto",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-symbols",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-tostringtag",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hash.js",
            "direct": false,
            "version": "1.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "hasown",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "header-case",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "html-escaper",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "htmlfy",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "htmlparser2",
            "direct": false,
            "version": "10.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "http-assert",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "http-cache-semantics",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "http-errors",
            "direct": false,
            "version": "1.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "http-errors",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "http-errors",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "http-proxy-agent",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "http2-wrapper",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "https-proxy-agent",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "human-signals",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.4.24",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "ieee754",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "immediate",
            "direct": false,
            "version": "3.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "import-fresh",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "import-meta-resolve",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "imurmurhash",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "inflation",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "inflight",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "internal-ip",
            "direct": false,
            "version": "6.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "internal-slot",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "ip-address",
            "direct": false,
            "version": "10.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "ip-regex",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ipaddr.js",
            "direct": false,
            "version": "1.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-array-buffer",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "is-async-function",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-bigint",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-boolean-object",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-callable",
            "direct": false,
            "version": "1.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "is-core-module",
            "direct": false,
            "version": "2.16.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-data-view",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-date-object",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-docker",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-extglob",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-finalizationregistry",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-generator-function",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-glob",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-ip",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-map",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-module",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-negative-zero",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-number",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-number-object",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-plain-obj",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-reference",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-regex",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-set",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-shared-array-buffer",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "is-stream",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-string",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-symbol",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-typed-array",
            "direct": false,
            "version": "1.1.15",
            "ecosystem": "npm"
          },
          {
            "name": "is-weakmap",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-weakref",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-weakset",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "is-wsl",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "isarray",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "isarray",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "isbinaryfile",
            "direct": false,
            "version": "5.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-coverage",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-report",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-reports",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "jackspeak",
            "direct": false,
            "version": "3.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "jest-worker",
            "direct": false,
            "version": "26.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "jiti",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-buffer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-stable-stringify-without-jsonify",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json5",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "jszip",
            "direct": false,
            "version": "3.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "keygrip",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "keyv",
            "direct": false,
            "version": "4.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "koa",
            "direct": false,
            "version": "2.16.4",
            "ecosystem": "npm"
          },
          {
            "name": "koa-compose",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "koa-convert",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "koa-etag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "koa-send",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "koa-static",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lazystream",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "levn",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "lie",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "lighthouse-logger",
            "direct": false,
            "version": "1.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "locate-app",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash",
            "direct": false,
            "version": "4.17.21",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.camelcase",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.clonedeep",
            "direct": false,
            "version": "4.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.merge",
            "direct": false,
            "version": "4.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.zip",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "log-update",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "loglevel",
            "direct": false,
            "version": "1.9.2",
            "ecosystem": "npm"
          },
          {
            "name": "loglevel-plugin-prefix",
            "direct": false,
            "version": "0.8.4",
            "ecosystem": "npm"
          },
          {
            "name": "lower-case",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "lowercase-keys",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "10.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "7.18.3",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "8.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.25.9",
            "ecosystem": "npm"
          },
          {
            "name": "make-dir",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "marky",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "media-typer",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge-stream",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge2",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromatch",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "mime-db",
            "direct": false,
            "version": "1.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "2.1.35",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-fn",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-response",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-response",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "minimalistic-assert",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "5.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "9.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "minimist",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "minipass",
            "direct": false,
            "version": "7.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "mitt",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "mkdirp",
            "direct": false,
            "version": "0.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "mkdirp",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "mock-socket",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mock-socket",
            "direct": false,
            "version": "^2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "modern-tar",
            "direct": false,
            "version": "0.7.6",
            "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": "nanocolors",
            "direct": false,
            "version": "0.2.13",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.12",
            "ecosystem": "npm"
          },
          {
            "name": "natural-compare",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "negotiator",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "netmask",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "no-case",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "node-watch",
            "direct": false,
            "version": "0.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-path",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-url",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "npm-run-path",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "nth-check",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "object-inspect",
            "direct": false,
            "version": "1.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "object-keys",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "object.assign",
            "direct": false,
            "version": "4.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "object.fromentries",
            "direct": false,
            "version": "2.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "object.groupby",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "object.values",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "on-finished",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "once",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "onetime",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "only",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "open",
            "direct": false,
            "version": "8.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "optionator",
            "direct": false,
            "version": "0.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "own-keys",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "p-cancelable",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "p-event",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-finally",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-timeout",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "pac-proxy-agent",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "pac-resolver",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "package-json-from-dist",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "pako",
            "direct": false,
            "version": "1.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "param-case",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "parent-module",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse5-htmlparser2-tree-adapter",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse5-parser-stream",
            "direct": false,
            "version": "7.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "parseurl",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "pascal-case",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "path-case",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "path-exists",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-expression-matcher",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-is-absolute",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-parse",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "path-scurry",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-type",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "pend",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "portfinder",
            "direct": false,
            "version": "1.0.38",
            "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": "process",
            "direct": false,
            "version": "0.11.10",
            "ecosystem": "npm"
          },
          {
            "name": "process-nextick-args",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "progress",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "proxy-agent",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "proxy-from-env",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "pump",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "punycode",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "punycode",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "puppeteer-core",
            "direct": false,
            "version": "24.43.1",
            "ecosystem": "npm"
          },
          {
            "name": "qs",
            "direct": false,
            "version": "6.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "query-selector-shadow-dom",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "query-string",
            "direct": false,
            "version": "7.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "queue-microtask",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "quick-lru",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "qunit",
            "direct": false,
            "version": "2.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "qunit",
            "direct": false,
            "version": "^2.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "randombytes",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "raw-body",
            "direct": false,
            "version": "2.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "readable-stream",
            "direct": false,
            "version": "2.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "readable-stream",
            "direct": false,
            "version": "4.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "readdir-glob",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "reflect.getprototypeof",
            "direct": false,
            "version": "1.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "regexp.prototype.flags",
            "direct": false,
            "version": "1.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "require-directory",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "1.22.2",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "1.22.8",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-alpn",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-from",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-path",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "responselike",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "resq",
            "direct": false,
            "version": "1.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "restore-cursor",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "ret",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "reusify",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "rgb2hex",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "2.79.1",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "4.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "^2.35.1",
            "ecosystem": "npm"
          },
          {
            "name": "rollup-plugin-terser",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "rollup-plugin-terser",
            "direct": false,
            "version": "^7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "run-parallel",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "safaridriver",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "safe-array-concat",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "safe-push-apply",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "safe-regex-test",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "safe-regex2",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "safer-buffer",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "saucelabs",
            "direct": false,
            "version": "9.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "6.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.8.4",
            "ecosystem": "npm"
          },
          {
            "name": "sentence-case",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "serialize-error",
            "direct": false,
            "version": "12.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "serialize-javascript",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "set-function-length",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "set-function-name",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "set-proto",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "setimmediate",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "setprototypeof",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "setprototypeof",
            "direct": false,
            "version": "1.2.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": "side-channel",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-list",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-map",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-weakmap",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "slash",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "slice-ansi",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "smart-buffer",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "snake-case",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "socks",
            "direct": false,
            "version": "2.8.9",
            "ecosystem": "npm"
          },
          {
            "name": "socks-proxy-agent",
            "direct": false,
            "version": "8.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.7.6",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-support",
            "direct": false,
            "version": "0.5.21",
            "ecosystem": "npm"
          },
          {
            "name": "sourcemap-codec",
            "direct": false,
            "version": "1.4.8",
            "ecosystem": "npm"
          },
          {
            "name": "spacetrim",
            "direct": false,
            "version": "0.11.59",
            "ecosystem": "npm"
          },
          {
            "name": "split-on-first",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "split2",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "statuses",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "statuses",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "stop-iteration-iterator",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "streamifier",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "streamx",
            "direct": false,
            "version": "2.27.0",
            "ecosystem": "npm"
          },
          {
            "name": "strict-uri-encode",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "string-width-cjs",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.trim",
            "direct": false,
            "version": "1.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.trimend",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.trimstart",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "string_decoder",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "string_decoder",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi-cjs",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-bom",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-final-newline",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-json-comments",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "strnum",
            "direct": false,
            "version": "2.4.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": "supports-preserve-symlinks-flag",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "table-layout",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "tar-fs",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "tar-stream",
            "direct": false,
            "version": "1.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "tar-stream",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "teex",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "terser",
            "direct": false,
            "version": "5.18.2",
            "ecosystem": "npm"
          },
          {
            "name": "text-decoder",
            "direct": false,
            "version": "1.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "tiny-glob",
            "direct": false,
            "version": "0.2.9",
            "ecosystem": "npm"
          },
          {
            "name": "to-buffer",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "to-regex-range",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "toidentifier",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tr46",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "trix",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "trix",
            "direct": false,
            "version": "^2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "tsconfig-paths",
            "direct": false,
            "version": "3.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "tsscmp",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "tunnel",
            "direct": false,
            "version": "0.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "type-check",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "4.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "4.41.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-is",
            "direct": false,
            "version": "1.6.18",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-buffer",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-byte-length",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-byte-offset",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-length",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "typed-query-selector",
            "direct": false,
            "version": "2.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "typical",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "typical",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "unbox-primitive",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici",
            "direct": false,
            "version": "6.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici",
            "direct": false,
            "version": "7.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "6.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "unpipe",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "upper-case",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "upper-case-first",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "uri-js",
            "direct": false,
            "version": "4.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "urijs",
            "direct": false,
            "version": "1.17.1",
            "ecosystem": "npm"
          },
          {
            "name": "urlpattern-polyfill",
            "direct": false,
            "version": "10.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "userhome",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "util-deprecate",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "v8-to-istanbul",
            "direct": false,
            "version": "9.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "vary",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "wait-port",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "web-test-runner-qunit",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "web-test-runner-qunit",
            "direct": false,
            "version": "^2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "webdriver",
            "direct": false,
            "version": "9.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "webdriver-bidi-protocol",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "webdriverio",
            "direct": false,
            "version": "9.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "webidl-conversions",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-encoding",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-mimetype",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-url",
            "direct": false,
            "version": "14.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "which-boxed-primitive",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "which-builtin-type",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "which-collection",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "which-typed-array",
            "direct": false,
            "version": "1.1.19",
            "ecosystem": "npm"
          },
          {
            "name": "word-wrap",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "wordwrapjs",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "6.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "8.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi-cjs",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrappy",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": false,
            "version": "7.5.11",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": false,
            "version": "8.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "xml-naming",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "xtend",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "y18n",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "17.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "21.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "yauzl",
            "direct": false,
            "version": "2.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "yazl",
            "direct": false,
            "version": "2.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "ylru",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "yocto-queue",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "zip-stream",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": false,
            "version": "3.25.76",
            "ecosystem": "npm"
          },
          {
            "name": "action_text-trix",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "action_text-trix",
            "direct": false,
            "version": "2.1.16",
            "ecosystem": "rubygems"
          },
          {
            "name": "addressable",
            "direct": false,
            "version": "2.8.7",
            "ecosystem": "rubygems"
          },
          {
            "name": "amq-protocol",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "ast",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "aws-eventstream",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "aws-partitions",
            "direct": false,
            "version": "1.1150.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "aws-sdk-core",
            "direct": false,
            "version": "3.230.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "aws-sdk-kms",
            "direct": false,
            "version": "1.110.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "aws-sigv4",
            "direct": false,
            "version": "1.12.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "base64",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "base64",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "bcrypt_pbkdf",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "beaneater",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "bigdecimal",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "bigdecimal",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "bindex",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "builder",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "builder",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "bundler",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "bunny",
            "direct": false,
            "version": "2.23.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "byebug",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "chef-utils",
            "direct": false,
            "version": "18.6.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "childprocess",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "chromedriver-helper",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "concurrent-ruby",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "concurrent-ruby",
            "direct": false,
            "version": "1.3.6",
            "ecosystem": "rubygems"
          },
          {
            "name": "crack",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "crass",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "rubygems"
          },
          {
            "name": "dante",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "date",
            "direct": false,
            "version": "3.4.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "declarative",
            "direct": false,
            "version": "0.0.20",
            "ecosystem": "rubygems"
          },
          {
            "name": "digest-crc",
            "direct": false,
            "version": "0.6.5",
            "ecosystem": "rubygems"
          },
          {
            "name": "dotenv",
            "direct": false,
            "version": "3.1.7",
            "ecosystem": "rubygems"
          },
          {
            "name": "drb",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "drb",
            "direct": false,
            "version": "2.2.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "ed25519",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "erb",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "erubi",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "erubi",
            "direct": false,
            "version": "1.13.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "et-orbi",
            "direct": false,
            "version": "1.2.11",
            "ecosystem": "rubygems"
          },
          {
            "name": "event_emitter",
            "direct": false,
            "version": "0.2.6",
            "ecosystem": "rubygems"
          },
          {
            "name": "execjs",
            "direct": false,
            "version": "2.10.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "faraday",
            "direct": false,
            "version": "2.14.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "faraday-net_http",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "ffi",
            "direct": false,
            "version": "1.17.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "ffi-compiler",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "fugit",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "globalid",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "globalid",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "google-apis-core",
            "direct": false,
            "version": "0.15.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "google-apis-iamcredentials_v1",
            "direct": false,
            "version": "0.22.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "google-apis-storage_v1",
            "direct": false,
            "version": "0.49.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "google-cloud-core",
            "direct": false,
            "version": "1.7.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "google-cloud-env",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "google-cloud-errors",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "google-logging-utils",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "google-protobuf",
            "direct": false,
            "version": "4.29.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "googleauth",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "hashdiff",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "httpclient",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "i18n",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "i18n",
            "direct": false,
            "version": "1.14.8",
            "ecosystem": "rubygems"
          },
          {
            "name": "io-console",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "irb",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "irb",
            "direct": false,
            "version": "1.15.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "jmespath",
            "direct": false,
            "version": "1.6.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "jwt",
            "direct": false,
            "version": "2.10.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "kramdown",
            "direct": false,
            "version": "2.5.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "kramdown-parser-gfm",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "language_server-protocol",
            "direct": false,
            "version": "3.17.0.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "lint_roller",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "logger",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "logger",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "loofah",
            "direct": false,
            "version": "2.25.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "mail",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "mail",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "marcel",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "marcel",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "matrix",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "mini_mime",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "rubygems"
          },
          {
            "name": "mini_portile2",
            "direct": false,
            "version": "2.8.9",
            "ecosystem": "rubygems"
          },
          {
            "name": "minitest-retry",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "mixlib-cli",
            "direct": false,
            "version": "2.1.8",
            "ecosystem": "rubygems"
          },
          {
            "name": "mixlib-config",
            "direct": false,
            "version": "3.0.27",
            "ecosystem": "rubygems"
          },
          {
            "name": "mixlib-shellout",
            "direct": false,
            "version": "3.3.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "mono_logger",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "multi_json",
            "direct": false,
            "version": "1.15.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "mustermann",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "mutex_m",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "net-http",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "net-http",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "net-imap",
            "direct": false,
            "version": "0.5.5",
            "ecosystem": "rubygems"
          },
          {
            "name": "net-pop",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "net-protocol",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "net-scp",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "net-sftp",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "net-smtp",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "net-ssh",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "nio4r",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "nio4r",
            "direct": false,
            "version": "2.7.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "os",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "ostruct",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "parallel",
            "direct": false,
            "version": "1.26.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "parser",
            "direct": false,
            "version": "3.3.9.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "pp",
            "direct": false,
            "version": "0.6.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "prettyprint",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "protobug",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "protobug_googleapis_field_behavior_protos",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "protobug_sigstore_protos",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "protobug_well_known_protos",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "psych",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "psych",
            "direct": false,
            "version": "5.2.6",
            "ecosystem": "rubygems"
          },
          {
            "name": "public_suffix",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "raabro",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "racc",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "rack-protection",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "rack-session",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "rack-session",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "rack-test",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "rack-test",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "rackup",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "rackup",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "ractor-dispatch",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "ractor-dispatch",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "rails-dom-testing",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "rails-dom-testing",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "rails-html-sanitizer",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "rails-html-sanitizer",
            "direct": false,
            "version": "1.7.0",
            "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.2.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "rake",
            "direct": false,
            "version": "13.3.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "rb-fsevent",
            "direct": false,
            "version": "0.11.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "rb-inotify",
            "direct": false,
            "version": "0.11.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "rbtree",
            "direct": false,
            "version": "0.4.7",
            "ecosystem": "rubygems"
          },
          {
            "name": "rdoc",
            "direct": false,
            "version": "6.15.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "regexp_parser",
            "direct": false,
            "version": "2.10.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "reline",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "representable",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "retriable",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "rubocop-ast",
            "direct": false,
            "version": "1.46.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "ruby-progressbar",
            "direct": false,
            "version": "1.13.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "ruby2_keywords",
            "direct": false,
            "version": "0.0.5",
            "ecosystem": "rubygems"
          },
          {
            "name": "rufus-scheduler",
            "direct": false,
            "version": "3.9.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "sass-embedded",
            "direct": false,
            "version": "1.83.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "securerandom",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "securerandom",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "serverengine",
            "direct": false,
            "version": "2.0.7",
            "ecosystem": "rubygems"
          },
          {
            "name": "set",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "sigdump",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "rubygems"
          },
          {
            "name": "signet",
            "direct": false,
            "version": "0.19.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "sigstore",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "sigstore-cli",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "sinatra",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "sorted_set",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "spring",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "spring-watcher-listen",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "sprockets",
            "direct": false,
            "version": "4.2.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "sshkit",
            "direct": false,
            "version": "1.23.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "stackprof",
            "direct": false,
            "version": "0.2.28",
            "ecosystem": "rubygems"
          },
          {
            "name": "stringio",
            "direct": false,
            "version": "3.1.7",
            "ecosystem": "rubygems"
          },
          {
            "name": "tailwindcss-ruby",
            "direct": false,
            "version": "3.4.17",
            "ecosystem": "rubygems"
          },
          {
            "name": "thor",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "thor",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "thor",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "tilt",
            "direct": false,
            "version": "2.6.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "timeout",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "timeout",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "tomlrb",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "trailblazer-option",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "tsort",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "tsort",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "tzinfo",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "tzinfo",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "rubygems"
          },
          {
            "name": "uber",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "unicode-display_width",
            "direct": false,
            "version": "3.1.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "unicode-emoji",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "websocket",
            "direct": false,
            "version": "1.2.11",
            "ecosystem": "rubygems"
          },
          {
            "name": "websocket-driver",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "websocket-driver",
            "direct": false,
            "version": "0.7.7",
            "ecosystem": "rubygems"
          },
          {
            "name": "websocket-extensions",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "rubygems"
          },
          {
            "name": "xpath",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "zeitwerk",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "zeitwerk",
            "direct": false,
            "version": "2.7.3",
            "ecosystem": "rubygems"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 1056,
        "direct_count": 97,
        "indirect_count": 959
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 1078,
        "merged_prs": 26641,
        "open_issues": 477,
        "closed_ratio": 0.974,
        "closed_issues": 18148,
        "closed_unmerged_prs": 11319
      },
      "bus_factor": 10,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "rafaelfranca",
          "commits": 9074,
          "avatar_url": "https://avatars.githubusercontent.com/u/47848?v=4"
        },
        {
          "type": "User",
          "login": "tenderlove",
          "commits": 5321,
          "avatar_url": "https://avatars.githubusercontent.com/u/3124?v=4"
        },
        {
          "type": "User",
          "login": "kamipo",
          "commits": 4216,
          "avatar_url": "https://avatars.githubusercontent.com/u/12642?v=4"
        },
        {
          "type": "User",
          "login": "jeremy",
          "commits": 3757,
          "avatar_url": "https://avatars.githubusercontent.com/u/199?v=4"
        },
        {
          "type": "User",
          "login": "byroot",
          "commits": 2866,
          "avatar_url": "https://avatars.githubusercontent.com/u/44640?v=4"
        },
        {
          "type": "User",
          "login": "fxn",
          "commits": 2748,
          "avatar_url": "https://avatars.githubusercontent.com/u/3387?v=4"
        },
        {
          "type": "User",
          "login": "josevalim",
          "commits": 2358,
          "avatar_url": "https://avatars.githubusercontent.com/u/9582?v=4"
        },
        {
          "type": "User",
          "login": "eileencodes",
          "commits": 1985,
          "avatar_url": "https://avatars.githubusercontent.com/u/1080678?v=4"
        },
        {
          "type": "User",
          "login": "senny",
          "commits": 1626,
          "avatar_url": "https://avatars.githubusercontent.com/u/5402?v=4"
        },
        {
          "type": "User",
          "login": "carlosantoniodasilva",
          "commits": 1622,
          "avatar_url": "https://avatars.githubusercontent.com/u/26328?v=4"
        }
      ],
      "contributors_sampled": 100,
      "top_contributor_share": 0.129
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "devcontainer-shellcheck.yml",
        "devcontainer-smoke-test.yml",
        "labeler.yml",
        "more-info-needed.yml",
        "rail_inspector.yml",
        "rails-new-docker.yml",
        "rails_releaser_tests.yml",
        "release.yml",
        "stale.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [
        ".rubocop.yml",
        "eslint.config.mjs"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "Gemfile.lock",
        "yarn.lock"
      ],
      "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": "15 out of 15 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": 2,
            "reason": "badge detected: InProgress",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 10,
            "reason": "all changesets reviewed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 83 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": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 2,
            "reason": "dependency not pinned by hash detected -- score normalized to 2",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 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": 7,
            "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": "113 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "964294f99bfcfc0131e73255db8b6620fd726f01",
        "ran_at": "2026-07-21T23:15:23Z",
        "aggregate_score": 5.8,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-21T23:14:12Z",
      "oldest_open_prs": [
        {
          "number": 37724,
          "created_at": "2019-11-15T00:53:54Z",
          "last_comment_at": "2024-04-28T06:23:01Z",
          "last_comment_author": "marckohlbrugge"
        },
        {
          "number": 37807,
          "created_at": "2019-11-26T22:07:48Z",
          "last_comment_at": "2026-05-29T10:32:40Z",
          "last_comment_author": "GermanDZ"
        },
        {
          "number": 38146,
          "created_at": "2020-01-03T09:27:56Z",
          "last_comment_at": "2026-05-15T21:23:20Z",
          "last_comment_author": "rafaelfranca"
        },
        {
          "number": 38721,
          "created_at": "2020-03-13T19:15:01Z",
          "last_comment_at": "2021-07-20T03:52:34Z",
          "last_comment_author": "chaffeqa"
        },
        {
          "number": 39113,
          "created_at": "2020-05-02T09:25:14Z",
          "last_comment_at": "2025-11-13T20:04:10Z",
          "last_comment_author": "jagthedrummer"
        },
        {
          "number": 39150,
          "created_at": "2020-05-05T05:33:01Z",
          "last_comment_at": "2022-03-06T04:18:32Z",
          "last_comment_author": "rails-bot"
        },
        {
          "number": 39207,
          "created_at": "2020-05-09T14:19:33Z",
          "last_comment_at": "2021-07-12T10:48:12Z",
          "last_comment_author": "p8"
        },
        {
          "number": 39299,
          "created_at": "2020-05-15T15:35:45Z",
          "last_comment_at": "2025-11-16T02:00:31Z",
          "last_comment_author": "nerijunior"
        },
        {
          "number": 39445,
          "created_at": "2020-05-27T01:41:09Z",
          "last_comment_at": "2024-08-16T06:08:59Z",
          "last_comment_author": "lucianghinda"
        },
        {
          "number": 39473,
          "created_at": "2020-05-29T15:03:43Z",
          "last_comment_at": "2022-01-24T03:35:47Z",
          "last_comment_author": "rails-bot"
        },
        {
          "number": 39476,
          "created_at": "2020-05-29T19:01:22Z",
          "last_comment_at": "2021-06-01T01:20:36Z",
          "last_comment_author": "lfalcao"
        },
        {
          "number": 39487,
          "created_at": "2020-05-30T23:15:22Z",
          "last_comment_at": "2022-04-20T21:18:48Z",
          "last_comment_author": "rails-bot"
        },
        {
          "number": 39585,
          "created_at": "2020-06-10T05:08:19Z",
          "last_comment_at": "2024-07-01T05:07:30Z",
          "last_comment_author": "chrisandreae"
        },
        {
          "number": 39623,
          "created_at": "2020-06-14T05:32:16Z",
          "last_comment_at": "2024-05-07T20:59:48Z",
          "last_comment_author": "collimarco"
        },
        {
          "number": 39863,
          "created_at": "2020-07-17T14:24:10Z",
          "last_comment_at": "2025-03-17T17:23:29Z",
          "last_comment_author": "abdelbk"
        },
        {
          "number": 40337,
          "created_at": "2020-10-05T18:27:44Z",
          "last_comment_at": "2023-12-23T23:07:31Z",
          "last_comment_author": "northeastprince"
        },
        {
          "number": 40401,
          "created_at": "2020-10-16T16:51:21Z",
          "last_comment_at": "2023-04-22T01:37:05Z",
          "last_comment_author": "agrobbin"
        },
        {
          "number": 40525,
          "created_at": "2020-11-03T18:06:08Z",
          "last_comment_at": "2025-12-22T22:21:23Z",
          "last_comment_author": "benjaaguila"
        },
        {
          "number": 41004,
          "created_at": "2021-01-03T17:17:35Z",
          "last_comment_at": "2025-05-22T18:41:33Z",
          "last_comment_author": "james-caresnap"
        },
        {
          "number": 41136,
          "created_at": "2021-01-16T01:58:42Z",
          "last_comment_at": "2022-01-24T07:36:29Z",
          "last_comment_author": "rails-bot"
        }
      ],
      "last_merged_pr_at": "2026-07-21T23:14:06Z",
      "ci_last_conclusion": null,
      "oldest_open_issues": [
        {
          "number": 3508,
          "created_at": "2011-11-04T04:11:25Z",
          "last_comment_at": "2026-05-15T20:27:46Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 7047,
          "created_at": "2012-07-13T18:30:14Z",
          "last_comment_at": "2020-11-03T03:46:56Z",
          "last_comment_author": "bobmazanec"
        },
        {
          "number": 7218,
          "created_at": "2012-07-31T21:30:49Z",
          "last_comment_at": "2019-01-19T04:39:32Z",
          "last_comment_author": "sheldond"
        },
        {
          "number": 12940,
          "created_at": "2013-11-18T17:04:55Z",
          "last_comment_at": "2023-11-16T05:43:24Z",
          "last_comment_author": "giovannism20"
        },
        {
          "number": 13873,
          "created_at": "2014-01-29T16:29:44Z",
          "last_comment_at": "2021-05-18T03:01:33Z",
          "last_comment_author": "tbcooney"
        },
        {
          "number": 14358,
          "created_at": "2014-03-12T12:03:50Z",
          "last_comment_at": "2024-06-16T19:02:24Z",
          "last_comment_author": "willianveiga"
        },
        {
          "number": 14698,
          "created_at": "2014-04-11T02:30:50Z",
          "last_comment_at": "2023-10-09T19:54:57Z",
          "last_comment_author": "lcreid"
        },
        {
          "number": 15097,
          "created_at": "2014-05-13T21:51:48Z",
          "last_comment_at": "2021-07-13T10:33:39Z",
          "last_comment_author": "p8"
        },
        {
          "number": 15470,
          "created_at": "2014-06-02T16:24:57Z",
          "last_comment_at": "2021-07-11T20:18:00Z",
          "last_comment_author": "p8"
        },
        {
          "number": 15589,
          "created_at": "2014-06-09T14:39:03Z",
          "last_comment_at": "2017-07-10T17:29:12Z",
          "last_comment_author": "Edouard-chin"
        },
        {
          "number": 15854,
          "created_at": "2014-06-22T04:04:53Z",
          "last_comment_at": "2026-01-31T16:21:06Z",
          "last_comment_author": "eric1234"
        },
        {
          "number": 16452,
          "created_at": "2014-08-10T18:35:37Z",
          "last_comment_at": "2026-02-05T02:30:53Z",
          "last_comment_author": "eric1234"
        },
        {
          "number": 16823,
          "created_at": "2014-09-05T22:17:25Z",
          "last_comment_at": "2015-04-20T18:18:56Z",
          "last_comment_author": "al2o3cr"
        },
        {
          "number": 17225,
          "created_at": "2014-10-10T04:54:28Z",
          "last_comment_at": "2019-07-01T22:19:04Z",
          "last_comment_author": "blairanderson"
        },
        {
          "number": 17325,
          "created_at": "2014-10-19T17:58:52Z",
          "last_comment_at": "2022-11-16T05:56:16Z",
          "last_comment_author": "lazaronixon"
        },
        {
          "number": 17466,
          "created_at": "2014-10-31T21:14:29Z",
          "last_comment_at": "2025-01-04T07:44:00Z",
          "last_comment_author": "joshuay03"
        },
        {
          "number": 17599,
          "created_at": "2014-11-12T20:42:49Z",
          "last_comment_at": "2019-12-21T10:34:42Z",
          "last_comment_author": "arknamal"
        },
        {
          "number": 17706,
          "created_at": "2014-11-21T20:05:24Z",
          "last_comment_at": "2023-03-17T14:47:49Z",
          "last_comment_author": "hrdwdmrbl"
        },
        {
          "number": 17887,
          "created_at": "2014-12-02T20:27:25Z",
          "last_comment_at": "2016-04-07T16:56:34Z",
          "last_comment_author": "haruska"
        },
        {
          "number": 18818,
          "created_at": "2015-02-05T04:15:45Z",
          "last_comment_at": "2022-09-07T18:31:06Z",
          "last_comment_author": "klondikemarlen"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/rails/rails",
    "host": "github.com",
    "name": "rails",
    "owner": "rails"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "excellent",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 86,
      "inputs": {
        "security": 66,
        "vitality": 96,
        "community": 97,
        "governance": 91,
        "engineering": 76
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 96,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "commits_last_year": 3266,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 52
            },
            "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": "52/52 weeks with commits",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 52
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "3266 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 3266
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 90,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "v8.1.3",
              "releases_from_tags": false,
              "days_since_latest_release": 119,
              "mean_days_between_releases": 16.3
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 119 days ago",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 119
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~16.3 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 16.3
                    }
                  }
                ],
                "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": 97,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "excellent",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "forks": 22363,
              "stars": 58641,
              "watchers": 2334,
              "growth_state": "organic",
              "growth_factor_pct": 100
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "58,641 stars",
                "points": 60,
                "status": "met",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 58641
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "22,363 forks",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 22363
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "2,334 watchers",
                "points": 15,
                "status": "met",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 2334
                    }
                  }
                ],
                "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 (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 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": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "packages": [
                "rails",
                "@rails/actiontext",
                "@rails/actioncable",
                "railties",
                "@rails/activestorage",
                "activejob",
                "actionpack",
                "actiontext"
              ],
              "dependents": null,
              "ecosystems": "npm, rubygems",
              "total_downloads": 3438251676,
              "monthly_downloads": 12634223
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "12,634,223 downloads/month across npm, rubygems",
                "points": 80,
                "status": "met",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 12634223,
                      "ecosystems": "npm, rubygems"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "excellent",
        "name": "Sustainability & Governance",
        "value": 91,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "excellent",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 97,
            "inputs": {
              "bus_factor": 10,
              "contributors_sampled": 100,
              "top_contributor_share": 0.129
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "10 contributor(s) cover half of all commits",
                "points": 54,
                "status": "met",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 13% of commits",
                "points": 19.6,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 13
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "100 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 83 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "excellent",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 87,
            "inputs": {
              "merged_prs": 26641,
              "open_issues": 477,
              "closed_issues": 18148,
              "issue_closed_ratio": 0.974,
              "closed_unmerged_prs": 11319
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "97% of issues closed",
                "points": 45.5,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 97
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "26641/37960 decided PRs merged",
                "points": 26.8,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 26641,
                      "decided": 37960
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "all changesets reviewed",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "followers": 2680,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "rails",
              "public_repos": 127,
              "account_age_days": 6684
            },
            "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": "2,680 followers of rails",
                "points": 24.6,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 2680,
                      "login": "rails"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "127 public repos, account ~18 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 127
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 18
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "rails",
                "@rails/actiontext",
                "@rails/actioncable",
                "railties",
                "@rails/activestorage",
                "activejob",
                "actionpack",
                "actiontext"
              ],
              "ecosystems": "npm, rubygems",
              "any_deprecated": false,
              "min_days_since_publish": 119
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "8 package(s) on npm, rubygems",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 8,
                      "ecosystems": "npm, rubygems"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 119 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 119
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "516 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 516
                    }
                  }
                ],
                "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": 76,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "9 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "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": ".rubocop.yml, eslint.config.mjs",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".rubocop.yml, eslint.config.mjs"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "15 out of 15 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "topics": [
                "rails",
                "mvc",
                "html",
                "activerecord",
                "activejob",
                "ruby",
                "framework"
              ],
              "has_wiki": false,
              "homepage": "https://rubyonrails.org",
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://rubyonrails.org",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "7 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 66,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 58,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 5.8
            },
            "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": "15 out of 15 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": "badge detected: InProgress",
                "points": 0.5,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "all changesets reviewed",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 83 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": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 2",
                "points": 1,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file 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": 5.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "113 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:@rails/actiontext@8.1.300 runtime dependency closure — what installing the published package pulls in — 2 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "npm:@rails/actiontext@8.1.300",
                  "assessed": 2
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 2,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 2,
              "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": 22
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 61,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.87,
              "agent_instruction_files": [
                "AGENTS.md"
              ],
              "agent_instruction_max_bytes": 6905
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "87 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 87,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 53,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "Gemfile.lock",
                "yarn.lock"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": true,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0.04,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": ".rubocop.yml, eslint.config.mjs",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".rubocop.yml, eslint.config.mjs"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "devcontainer, Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "devcontainer, Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "4 of the last 100 commits agent-authored or agent-credited",
                "points": 8,
                "status": "partial",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 4,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 2",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 54,
            "inputs": {
              "primary_language": "Ruby",
              "largest_source_bytes": 449565,
              "source_files_sampled": 3497,
              "oversized_source_files": 39
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Ruby without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "Ruby"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "39/3497 source files over 60KB",
                "points": 54.4,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 3497,
                      "oversized": 39
                    }
                  }
                ],
                "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": [],
  "report_type": "repository",
  "generated_at": "2026-07-21T23:15:52.789308Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/r/rails/rails.svg",
  "full_name": "rails/rails",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Оцінки — це сигнали, а не гарантії. Вони відображають публічно видимі практики на GitHub — це не аудит коду й не гарантія безпеки.

Відсутні дані виключаються, а ваги перенормовуються — нуль за відсутність ніколи не ставиться. Методологія версіонована й відкрита: метрики v1.13.0, схема v0.26.0 — повна методологія · вікі метрик.

Як окремий результат виглядає на тлі всього реєстру: сукупна статистикаRubyGems, npm.