Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 0.27.0 · метрики 2.3.1 · 2026-07-31 10:09 UTC

Green-Software-Foundation / if

Impact Framework

TypeScriptMIT★ 183 зірки⑂ 51 форкз лют. 2023 р.Переглянути на GitHub ↗
ТипМережевий сервісБібліотекаФреймворкяк це визначено

Green-Software-Foundation/if має індекс здоров’я 80 зі 100, що відповідає смузі «Відмінний». Найвищий показник — Sustainability & Governance (80/100), найнижчий — Vitality (57/100). Останнє оновлення було 33 дні тому. Більшість нещодавньої роботи виконують 2 учасники.

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

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

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

80
Винятковий93-100Верхній щабель реєстру (≈ топ-5%); відповідає практично всім перевіреним критеріям
Відмінний80-92Сильний за всіма напрямами; незначні прогалини
Добрий65-79Здоровий; прогалини обмежені та керовані
Помірний50-64Прийнятний, але з помітними прогалинами; рекомендовано перевірку
Слабкий35-49Суттєві недоліки в кількох сферах
У зоні ризику20-34Суттєві слабкі місця; впровадження потребує обережності
Критичний1-19Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

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

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

Зважений загальний бал 68 калібровано до 80 за шкалою опублікованого індексу (калібрування реєстру 2026-08-02).

Власність

Green Software FoundationОрганізація
1 149 підписників91 публічний репозиторійз трав. 2021 р.

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

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

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікаціяТеги
npm@grnsft/if1.1.19204133 дні томуcarbonizationengineframeworkgreen-software-foundationgreensoftwareifimpactplugins

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

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

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

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

Активність розробки

34У зоні ризику
Як обчислюється оцінка
18/36Свіжість push — останній push 33 дн. тому
0.7/36Ритм комітів — 1/52 тижнів із комітами
8.6/18Обсяг комітів — 8 комітів за останній рік
7/10OpenSSF Scorecard: Maintained — 9 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 7
Використані вхідні дані
commits_last_year8
human_commit_share1
days_since_last_push33
active_weeks_last_year1
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 35 релізів
36/36Свіжість релізів — останній реліз 33 дн. тому
19.8/27Ритм релізів — реліз кожні ~70,1 дн.
0/10OpenSSF Scorecard: Signed-Releases — немає даних
Використані вхідні дані
releases_count35
latest_release_tagv1.1.1
releases_from_tagsні
days_since_latest_release33
mean_days_between_releases70,1
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Signed-Releases. Залишкові ваги перенормовано.

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

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

62Помірний · 17% загального індексу
Як обчислюється оцінка
36.7/60Зірки — 183 зірок
14.2/25Форки — 51 форків
5.3/15Спостерігачі — 10 спостерігачів
Використані вхідні дані
forks51
stars183
watchers10
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (MIT)
18/18Настанови CONTRIBUTING
0/13.5Кодекс поведінки
0/7.2Шаблон issue
6.3/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
readme_badges
has_contributingтак
has_issue_templateні
has_code_of_conductні
readme_badge_services
has_pull_request_templateтак
Як обчислюється оцінка
39.5/80Щомісячні завантаження — 920 завантажень/місяць у npm
0/20Залежні пакети в реєстрі — ця екосистема цього не повідомляє
Використані вхідні дані
packages@grnsft/if
dependents
ecosystemsnpm
total_downloads
monthly_downloads920
Виключено з оцінювання (немає даних або не застосовно): Залежні пакети в реєстрі. Залишкові ваги перенормовано.

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

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

80Відмінний · 23% загального індексу
Як обчислюється оцінка
25.2/54Бас-фактор — на 2 контриб’ютор(ів) припадає половина всіх комітів
12.6/22.5Розподіл комітів — головний контриб’ютор — автор 44% комітів
13.5/13.5Широта контриб’юторів — 25 контриб’юторів
10/10OpenSSF Scorecard: Contributors — project has 10 contributing companies or organizations
Використані вхідні дані
bus_factor2
contributors_sampled25
top_contributor_share0,44
Як обчислюється оцінка
39.6/42Вирішення issue — закрито 94% issue
27.9/30Прийняття PR — злито 435/468 вирішених PR
0/13Newcomer PR acceptance — за 30 дн. не вирішено жодного PR від новачка
10.5/15OpenSSF Scorecard: Code-Review — Found 11/15 approved changesets -- score normalized to 7
Використані вхідні дані
merged_prs435
open_issues38
closed_issues625
prs_merged_7d
prs_decided_7d
prs_merged_30d
prs_decided_30d
issue_closed_ratio0,943
closed_unmerged_prs33
first_time_authors_30d
first_time_prs_merged_30d
first_time_prs_decided_30d
Виключено з оцінювання (немає даних або не застосовно): newcomer_pr_acceptance. Залишкові ваги перенормовано.
Як обчислюється оцінка
30/30Підтримка власника — у власності організації
0/20Верифікований домен
22/25Охоплення власника — 1 149 підписників у Green-Software-Foundation
23.4/25Послужний список — 91 публічних репозиторіїв, вік облікового запису ~5 р.
Використані вхідні дані
followers1 149
owner_typeOrganization
is_verified
owner_loginGreen-Software-Foundation
public_repos91
account_age_days1 897

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

100Винятковий
Як обчислюється оцінка
25/25Опубліковано й доступно — 1 пакет(ів) у npm
35/35Свіжість публікацій — остання публікація 33 дн. тому
20/20Історія версій — 41 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packages@grnsft/if
ecosystemsnpm
any_deprecatedні
min_days_since_publish33

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

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

78Добрий · 19% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 4 процес(ів) CI
24/24Наявні тести
16/16Конфігурація лінтера — .eslintrc.json
0/9.6Pre-commit-хуки
6.4/6.4.editorconfig
10/20OpenSSF Scorecard: CI-Tests — 8 out of 14 merged PRs checked by a CI test -- score normalized to 5
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigтак
has_linter_configтак
has_precommit_configні
Як обчислюється оцінка
30/30README
0/25Каталог документації
15/15Сайт документації / домашня сторінка — https://if.greensoftware.foundation/
10/10Опис репозиторію
10/10Теми — 2 тем
10/10Wiki
Використані вхідні дані
topicsframework, impact
has_wikiтак
homepagehttps://if.greensoftware.foundation/
has_readmeтак
has_docs_dirні
has_descriptionтак

Безпека

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

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

Стан безпеки

50Помірний
Як обчислюється оцінка
7.5/7.5Binary-Artifacts — no binaries found in the repo
3.8/7.5Branch-Protection — branch protection is not maximal on development and all release branches
1.2/2.5CI-Tests — 8 out of 14 merged PRs checked by a CI test -- score normalized to 5
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
5.2/7.5Code-Review — Found 11/15 approved changesets -- score normalized to 7
2.5/2.5Contributors — project has 10 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
5.2/7.5Maintained — 9 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 7
0/5Packaging — немає даних
0.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 1
3/5SAST — SAST tool is not run on all commits -- score normalized to 6
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — немає даних
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 60 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate5
Виключено з оцінювання (немає даних або не застосовно): packaging, signed_releases. Залишкові ваги перенормовано.
Як обчислюється оцінка
35/35Прямі залежності без відомих сповіщень — жодна пряма залежність не має відомих сповіщень
25/25Непрямі залежності без відомих сповіщень — жодна непряма залежність не має відомих сповіщень
0/40Немає задавнених сповіщень — жодне сповіщення не має дати публікації
Використані вхідні дані
sourceosv
advisories0
affected_packages0
assessed_packages143
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Виключено з оцінювання (немає даних або не застосовно): Немає задавнених сповіщень. Залишкові ваги перенормовано. Звірено з runtime-замиканням залежностей npm:@grnsft/if@1.1.1 — тим, що тягне за собою встановлення опублікованого пакета, — 143 пакетів. Досяжність не аналізується.

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

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Має свідомо малу вагу (4%): агентний інструментарій — реальний сигнал супроводу, але репозиторій без нього все одно може отримати 100/100.

61Помірний · 4% загального індексу
Як обчислюється оцінка
0/45Інструкції для агентів — немає CLAUDE.md / AGENTS.md / правил редактора
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 93 з 100 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,93
agent_instruction_files
agent_instruction_max_bytes
Як обчислюється оцінка
0/18Розгортання однією командою
22/22Автоматизовані тести
11/11Конфігурація лінтера / форматера — .eslintrc.json
11/11Статична перевірка типів — tsconfig.json
10/10Відтворюване середовище — devcontainer, Dockerfile, lockfile
0/10Підтверджена практика роботи з агентами — серед останніх 100 комітів немає створених агентом
0/8Автоматизоване супроводження — автоматичних оновлень залежностей не виявлено
1/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 1
Використані вхідні дані
has_nixні
has_testsтак
lockfilespackage-lock.json
has_dockerfileтак
typed_languageтак
bootstrap_files
has_devcontainerтак
has_linter_configтак
typecheck_configstsconfig.json
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
Як обчислюється оцінка
45/45Типізований код — TypeScript (статично типізована)
55/55Керовані розміри файлів — 0/185 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languageTypeScript
largest_source_bytes31 733
source_files_sampled185
oversized_source_files0
Як обчислюється оцінка
40/40Схема API (OpenAPI/GraphQL/proto) — openapi.yaml
0/20Сервер MCP
40/40Придатні до запуску приклади — examples
Використані вхідні дані
example_dirsexamples
has_mcp_signalні
api_schema_filesopenapi.yaml

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

183зірок GitHub
25контриб'юторів
8комітів за останні 12 місяців
33днів від останнього пушу
35релізів
2бас-фактор
38відкритих issue
npmпакетних екосистем

Попередження щодо збору даних

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

Докладніше

Історія зірок і форків 0 ★ / 51 ⇿
0Зірки
51Форки
35Релізи

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

01020304050605132023-082025-012026-07
Мажорні 1Мінорні 8Патчі 18

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

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

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

10Binary-Artifactsno binaries found in the repo
5Branch-Protectionbranch protection is not maximal on development and all release branches
5CI-Tests8 out of 14 merged PRs checked by a CI test -- score normalized to 5
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
7Code-ReviewFound 11/15 approved changesets -- score normalized to 7
10Contributorsproject has 10 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
7Maintained9 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 7
н/дPackagingpackaging workflow not detected
1Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 1
6SASTSAST tool is not run on all commits -- score normalized to 6
10Security-Policysecurity policy file detected
н/дSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities60 existing vulnerabilities detected
Прямі залежності 11
РеєстрПакетОбмеження версіїМаніфест
npm@grnsft/if-core^0.0.31package.json
npmaxios^1.7.2package.json
npmcsv-parse^5.5.6package.json
npmcsv-stringify^6.4.6package.json
npmexpress^5.1.0package.json
npmjs-yaml^4.1.0package.json
npmluxon^3.4.4package.json
npmts-command-line-args^2.5.1package.json
npmtypescript-cubic-spline^1.0.1package.json
npmwinston^3.11.0package.json
npmzod^3.22.4package.json
Усі залежності 715

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

РеєстрПакетВерсіяЗв'язок
npm@grnsft/if-core0.0.31пряма
npmaxios1.8.3пряма
npmcsv-parse5.5.6пряма
npmcsv-stringify6.4.6пряма
npmexpress5.1.0пряма
npmjs-yaml3.14.1пряма
npmjs-yaml4.1.0пряма
npmluxon3.4.4пряма
npmts-command-line-args2.5.1пряма
npmtypescript-cubic-spline1.0.1пряма
npmwinston3.11.0пряма
npmzod3.23.8пряма
npm@aashutoshrathi/word-wrap1.2.6непряма
npm@ampproject/remapping2.2.1непряма
npm@babel/code-frame7.27.1непряма
npm@babel/compat-data7.23.3непряма
npm@babel/core7.22.10непряма
npm@babel/core7.23.3непряма
npm@babel/generator7.23.3непряма
npm@babel/helper-annotate-as-pure7.22.5непряма
npm@babel/helper-compilation-targets7.22.15непряма
npm@babel/helper-create-class-features-plugin7.22.15непряма
npm@babel/helper-environment-visitor7.22.20непряма
npm@babel/helper-function-name7.23.0непряма
npm@babel/helper-hoist-variables7.22.5непряма
npm@babel/helper-member-expression-to-functions7.23.0непряма
npm@babel/helper-module-imports7.22.15непряма
npm@babel/helper-module-transforms7.23.3непряма
npm@babel/helper-optimise-call-expression7.22.5непряма
npm@babel/helper-plugin-utils7.22.5непряма
npm@babel/helper-replace-supers7.22.20непряма
npm@babel/helper-simple-access7.22.5непряма
npm@babel/helper-skip-transparent-expression-wrappers7.22.5непряма
npm@babel/helper-split-export-declaration7.22.6непряма
npm@babel/helper-string-parser7.27.1непряма
npm@babel/helper-validator-identifier7.27.1непряма
npm@babel/helper-validator-option7.22.15непряма
npm@babel/helpers7.27.6непряма
npm@babel/parser7.28.0непряма
npm@babel/plugin-syntax-async-generators7.8.4непряма
npm@babel/plugin-syntax-bigint7.8.3непряма
npm@babel/plugin-syntax-class-properties7.12.13непряма
npm@babel/plugin-syntax-import-meta7.10.4непряма
npm@babel/plugin-syntax-json-strings7.8.3непряма
npm@babel/plugin-syntax-jsx7.23.3непряма
npm@babel/plugin-syntax-logical-assignment-operators7.10.4непряма
npm@babel/plugin-syntax-nullish-coalescing-operator7.8.3непряма
npm@babel/plugin-syntax-numeric-separator7.10.4непряма
npm@babel/plugin-syntax-object-rest-spread7.8.3непряма
npm@babel/plugin-syntax-optional-catch-binding7.8.3непряма
npm@babel/plugin-syntax-optional-chaining7.8.3непряма
npm@babel/plugin-syntax-top-level-await7.14.5непряма
npm@babel/plugin-syntax-typescript7.23.3непряма
npm@babel/plugin-transform-modules-commonjs7.23.3непряма
npm@babel/plugin-transform-typescript7.23.3непряма
npm@babel/preset-typescript7.23.3непряма
npm@babel/template7.27.2непряма
npm@babel/traverse7.23.3непряма
npm@babel/types7.28.0непряма
npm@bcoe/v8-coverage0.2.3непряма
npm@colors/colors1.6.0непряма
npm@commitlint/cli18.6.0непряма
npm@commitlint/config-conventional18.6.0непряма
npm@commitlint/config-validator18.6.0непряма
npm@commitlint/ensure18.6.0непряма
npm@commitlint/execute-rule18.4.4непряма
npm@commitlint/format18.6.0непряма
npm@commitlint/is-ignored18.6.0непряма
npm@commitlint/lint18.6.0непряма
npm@commitlint/load18.6.0непряма
npm@commitlint/message18.4.4непряма
npm@commitlint/parse18.6.0непряма
npm@commitlint/read18.6.0непряма
npm@commitlint/resolve-extends18.6.0непряма
npm@commitlint/rules18.6.0непряма
npm@commitlint/to-lines18.4.4непряма
npm@commitlint/top-level18.4.4непряма
npm@commitlint/types18.6.0непряма
npm@dabh/diagnostics2.0.3непряма
npm@eslint-community/eslint-utils4.4.0непряма
npm@eslint-community/regexpp4.10.0непряма
npm@eslint/eslintrc2.1.4непряма
npm@eslint/js8.50.0непряма
npm@eslint/js8.57.1непряма
npm@grnsft/if-plugins0.1.5непряма
npm@grnsft/if-plugins0.3.0непряма
npm@grnsft/if-unofficial-plugins0.1.3непряма
npm@grnsft/if-unofficial-plugins0.3.0непряма
npm@humanwhocodes/config-array0.11.14непряма
npm@humanwhocodes/config-array0.13.0непряма
npm@humanwhocodes/module-importer1.0.1непряма
npm@humanwhocodes/object-schema2.0.3непряма
npm@isaacs/cliui8.0.2непряма
npm@istanbuljs/load-nyc-config1.1.0непряма
npm@istanbuljs/schema0.1.3непряма
npm@jest/console29.7.0непряма
npm@jest/core29.7.0непряма
npm@jest/environment29.7.0непряма
npm@jest/expect29.7.0непряма
npm@jest/expect-utils29.7.0непряма
npm@jest/fake-timers29.7.0непряма
npm@jest/globals29.7.0непряма
npm@jest/reporters29.7.0непряма
npm@jest/schemas29.6.3непряма
npm@jest/source-map29.6.3непряма
npm@jest/test-result29.7.0непряма
npm@jest/test-sequencer29.7.0непряма
npm@jest/transform29.7.0непряма
npm@jest/types29.6.3непряма
npm@jridgewell/gen-mapping0.3.3непряма
npm@jridgewell/resolve-uri3.1.1непряма
npm@jridgewell/set-array1.1.2непряма
npm@jridgewell/sourcemap-codec1.4.15непряма
npm@jridgewell/trace-mapping0.3.20непряма
npm@nodelib/fs.scandir2.1.5непряма
npm@nodelib/fs.stat2.0.5непряма
npm@nodelib/fs.walk1.2.8непряма
npm@pkgjs/parseargs0.11.0непряма
npm@pkgr/utils2.4.2непряма
npm@sinclair/typebox0.27.8непряма
npm@sinonjs/commons3.0.0непряма
npm@sinonjs/fake-timers10.3.0непряма
npm@types/babel__core7.20.4непряма
npm@types/babel__generator7.6.7непряма
npm@types/babel__template7.4.4непряма
npm@types/babel__traverse7.20.4непряма
npm@types/body-parser1.19.5непряма
npm@types/connect3.4.38непряма
npm@types/express5.0.1непряма
npm@types/express-serve-static-core5.0.6непряма
npm@types/graceful-fs4.1.9непряма
npm@types/http-errors2.0.4непряма
npm@types/istanbul-lib-coverage2.0.6непряма
npm@types/istanbul-lib-report3.0.3непряма
npm@types/istanbul-reports3.0.4непряма
npm@types/jest29.5.8непряма
npm@types/js-yaml4.0.9непряма
npm@types/json-schema7.0.15непряма
npm@types/luxon3.4.2непряма
npm@types/mime1.3.5непряма
npm@types/minimist1.2.5непряма
npm@types/node20.9.0непряма
npm@types/normalize-package-data2.4.4непряма
npm@types/qs6.9.18непряма
npm@types/range-parser1.2.7непряма
npm@types/semver7.5.5непряма
npm@types/send0.17.4непряма
npm@types/serve-static1.15.7непряма
npm@types/stack-utils2.0.3непряма
npm@types/triple-beam1.3.5непряма
npm@types/yargs17.0.31непряма
npm@types/yargs-parser21.0.3непряма
npm@typescript-eslint/eslint-plugin5.62.0непряма
npm@typescript-eslint/parser5.62.0непряма
npm@typescript-eslint/scope-manager5.62.0непряма
npm@typescript-eslint/type-utils5.62.0непряма
npm@typescript-eslint/types5.62.0непряма
npm@typescript-eslint/typescript-estree5.62.0непряма
npm@typescript-eslint/utils5.62.0непряма
npm@typescript-eslint/visitor-keys5.62.0непряма
npm@ungap/structured-clone1.3.1непряма
npmaccepts2.0.0непряма
npmacorn8.16.0непряма
npmacorn-jsx5.3.2непряма
npmajv6.15.0непряма
npmajv8.12.0непряма
npmalce1.2.0непряма
npmansi-escapes4.3.2непряма
npmansi-escapes7.0.0непряма
npmansi-regex5.0.1непряма
npmansi-regex6.0.1непряма
npmansi-regex6.1.0непряма
npmansi-styles3.2.1непряма
npmansi-styles4.3.0непряма
npmansi-styles5.2.0непряма
npmansi-styles6.2.1непряма
npmanymatch3.1.3непряма
npmargparse1.0.10непряма
npmargparse2.0.1непряма
npmarray-back3.1.0непряма
npmarray-back4.0.2непряма
npmarray-ify1.0.0непряма
npmarray-union2.1.0непряма
npmarrify1.0.1непряма
npmasync3.2.5непряма
npmasynckit0.4.0непряма
npmaxios-mock-adapter1.22.0непряма
npmbabel-jest29.7.0непряма
npmbabel-plugin-istanbul6.1.1непряма
npmbabel-plugin-jest-hoist29.6.3непряма
npmbabel-preset-current-node-syntax1.0.1непряма
npmbabel-preset-jest29.6.3непряма
npmbalanced-match1.0.2непряма
npmbig-integer1.6.51непряма
npmbody-parser2.2.0непряма
npmbplist-parser0.2.0непряма
npmbrace-expansion1.1.12непряма
npmbrace-expansion2.0.2непряма
npmbraces3.0.3непряма
npmbrowserslist4.22.1непряма
npmbs-logger0.2.6непряма
npmbser2.1.1непряма
npmbuffer-from1.1.2непряма
npmbundle-name3.0.0непряма
npmbytes3.1.2непряма
npmcall-bind-apply-helpers1.0.2непряма
npmcall-bound1.0.4непряма
npmcallsites3.1.0непряма
npmcamelcase5.3.1непряма
npmcamelcase6.3.0непряма
npmcamelcase-keys6.2.2непряма
npmcaniuse-lite1.0.30001561непряма
npmchalk2.4.2непряма
npmchalk3.0.0непряма
npmchalk4.1.2непряма
npmchalk5.3.0непряма
npmchar-regex1.0.2непряма
npmchardet0.7.0непряма
npmci-info3.9.0непряма
npmcjs-module-lexer1.2.3непряма
npmcli-cursor3.1.0непряма
npmcli-cursor5.0.0непряма
npmcli-truncate4.0.0непряма
npmcli-width3.0.0непряма
npmcliui8.0.1непряма
npmco4.6.0непряма
npmcollect-v8-coverage1.0.2непряма
npmcolor3.2.1непряма
npmcolor-convert1.9.3непряма
npmcolor-convert2.0.1непряма
npmcolor-name1.1.3непряма
npmcolor-name1.1.4непряма
npmcolor-string1.9.1непряма
npmcolorette2.0.20непряма
npmcolorspace1.1.4непряма
npmcombined-stream1.0.8непряма
npmcommand-line-args5.2.1непряма
npmcommand-line-usage6.1.3непряма
npmcommander12.1.0непряма
npmcompare-func2.0.0непряма
npmconcat-map0.0.1непряма
npmcontent-disposition1.0.0непряма
npmcontent-type1.0.5непряма
npmconventional-changelog-angular7.0.0непряма
npmconventional-changelog-conventionalcommits7.0.2непряма
npmconventional-commits-parser5.0.0непряма
npmconvert-source-map1.9.0непряма
npmconvert-source-map2.0.0непряма
npmcookie0.7.2непряма
npmcookie-signature1.2.2непряма
npmcosmiconfig8.3.6непряма
npmcosmiconfig-typescript-loader5.0.0непряма
npmcreate-jest29.7.0непряма
npmcross-env7.0.3непряма
npmcross-spawn7.0.6непряма
npmdargs7.0.0непряма
npmdebug4.3.7непряма
npmdebug4.4.1непряма
npmdecamelize1.2.0непряма
npmdecamelize-keys1.1.1непряма
npmdedent1.5.1непряма
npmdeep-extend0.6.0непряма
npmdeep-is0.1.4непряма
npmdeepmerge4.3.1непряма
npmdefault-browser4.0.0непряма
npmdefault-browser-id3.0.0непряма
npmdefine-lazy-prop3.0.0непряма
npmdelayed-stream1.0.0непряма
npmdepd2.0.0непряма
npmdetect-indent6.1.0непряма
npmdetect-newline3.1.0непряма
npmdiff-sequences29.6.3непряма
npmdir-glob3.0.1непряма
npmdoctrine3.0.0непряма
npmdot-prop5.3.0непряма
npmdunder-proto1.0.1непряма
npmeastasianwidth0.2.0непряма
npmee-first1.1.1непряма
npmelectron-to-chromium1.4.581непряма
npmemittery0.13.1непряма
npmemoji-regex10.4.0непряма
npmemoji-regex8.0.0непряма
npmemoji-regex9.2.2непряма
npmenabled2.0.0непряма
npmencodeurl2.0.0непряма
npmenvironment1.1.0непряма
npmerror-ex1.3.2непряма
npmes-define-property1.0.1непряма
npmes-errors1.3.0непряма
npmes-object-atoms1.1.1непряма
npmescalade3.1.1непряма
npmescape-html1.0.3непряма
npmescape-string-regexp1.0.5непряма
npmescape-string-regexp2.0.0непряма
npmescape-string-regexp4.0.0непряма
npmeslint8.50.0непряма
npmeslint8.57.1непряма
npmeslint-config-prettier9.0.0непряма
npmeslint-plugin-es3.0.1непряма
npmeslint-plugin-node11.1.0непряма
npmeslint-plugin-prettier5.0.0непряма
npmeslint-scope5.1.1непряма
npmeslint-scope7.2.2непряма
npmeslint-utils2.1.0непряма
npmeslint-visitor-keys1.3.0непряма
npmeslint-visitor-keys3.4.3непряма
npmespree9.6.1непряма
npmesprima1.2.5непряма
npmesprima4.0.1непряма
npmesquery1.5.0непряма
npmesrecurse4.3.0непряма
npmestraverse1.9.3непряма
npmestraverse4.3.0непряма
npmestraverse5.3.0непряма
npmesutils2.0.3непряма
npmetag1.8.1непряма
npmeventemitter35.0.1непряма
npmexeca5.1.1непряма
npmexeca7.2.0непряма
npmexeca8.0.1непряма
npmexit0.1.2непряма
npmexpect29.7.0непряма
npmextend-object1.0.0непряма
npmexternal-editor3.1.0непряма
npmfast-deep-equal3.1.3непряма
npmfast-diff1.3.0непряма
npmfast-glob3.3.2непряма
npmfast-json-stable-stringify2.1.0непряма
npmfast-levenshtein2.0.6непряма
npmfastq1.15.0непряма
npmfb-watchman2.0.2непряма
npmfecha4.2.3непряма
npmfigures3.2.0непряма
npmfile-entry-cache6.0.1непряма
npmfill-range7.1.1непряма
npmfinalhandler2.1.0непряма
npmfind-replace3.0.0непряма
npmfind-up4.1.0непряма
npmfind-up5.0.0непряма
npmfixpack4.0.0непряма
npmflat-cache3.1.1непряма
npmflatted3.2.9непряма
npmfn.name1.1.0непряма
npmfollow-redirects1.15.6непряма
npmforeground-child3.1.1непряма
npmform-data4.0.0непряма
npmforwarded0.2.0непряма
npmfresh2.0.0непряма
npmfs.realpath1.0.0непряма
npmfsevents2.3.3непряма
npmfunction-bind1.1.2непряма
npmgensync1.0.0-beta.2непряма
npmget-caller-file2.0.5непряма
npmget-east-asian-width1.2.0непряма
npmget-intrinsic1.3.0непряма
npmget-package-type0.1.0непряма
npmget-proto1.0.1непряма
npmget-stream6.0.1непряма
npmget-stream8.0.1непряма
npmgit-raw-commits2.0.11непряма
npmglob10.3.10непряма
npmglob7.2.3непряма
npmglob-parent5.1.2непряма
npmglob-parent6.0.2непряма
npmglobal-dirs0.1.1непряма
npmglobals11.12.0непряма
npmglobals13.24.0непряма
npmglobby11.1.0непряма
npmgopd1.2.0непряма
npmgraceful-fs4.2.11непряма
npmgraphemer1.4.0непряма
npmgts5.2.0непряма
npmhard-rejection2.1.0непряма
npmhas-flag3.0.0непряма
npmhas-flag4.0.0непряма
npmhas-symbols1.1.0непряма
npmhasown2.0.2непряма
npmhosted-git-info2.8.9непряма
npmhosted-git-info4.1.0непряма
npmhtml-escaper2.0.2непряма
npmhttp-errors2.0.0непряма
npmhuman-signals2.1.0непряма
npmhuman-signals4.3.1непряма
npmhuman-signals5.0.0непряма
npmhusky8.0.3непряма
npmiconv-lite0.4.24непряма
npmiconv-lite0.6.3непряма
npmignore5.2.4непряма
npmimport-fresh3.3.0непряма
npmimport-local3.1.0непряма
npmimurmurhash0.1.4непряма
npmindent-string4.0.0непряма
npminflight1.0.6непряма
npminherits2.0.4непряма
npmini1.3.8непряма
npminquirer7.3.3непряма
npmipaddr.js1.9.1непряма
npmis-arrayish0.2.1непряма
npmis-arrayish0.3.2непряма
npmis-buffer2.0.5непряма
npmis-core-module2.13.1непряма
npmis-docker2.2.1непряма
npmis-docker3.0.0непряма
npmis-extglob2.1.1непряма
npmis-fullwidth-code-point3.0.0непряма
npmis-fullwidth-code-point4.0.0непряма
npmis-fullwidth-code-point5.0.0непряма
npmis-generator-fn2.1.0непряма
npmis-glob4.0.3непряма
npmis-inside-container1.0.0непряма
npmis-number7.0.0непряма
npmis-obj2.0.0непряма
npmis-path-inside3.0.3непряма
npmis-plain-obj1.1.0непряма
npmis-promise4.0.0непряма
npmis-stream2.0.1непряма
npmis-stream3.0.0непряма
npmis-text-path2.0.0непряма
npmis-wsl2.2.0непряма
npmisexe2.0.0непряма
npmistanbul-lib-coverage3.2.2непряма
npmistanbul-lib-instrument5.2.1непряма
npmistanbul-lib-instrument6.0.1непряма
npmistanbul-lib-report3.0.1непряма
npmistanbul-lib-source-maps4.0.1непряма
npmistanbul-reports3.1.6непряма
npmjackspeak2.3.6непряма
npmjest29.7.0непряма
npmjest-changed-files29.7.0непряма
npmjest-circus29.7.0непряма
npmjest-cli29.7.0непряма
npmjest-config29.7.0непряма
npmjest-diff29.7.0непряма
npmjest-docblock29.7.0непряма
npmjest-each29.7.0непряма
npmjest-environment-node29.7.0непряма
npmjest-get-type29.6.3непряма
npmjest-haste-map29.7.0непряма
npmjest-leak-detector29.7.0непряма
npmjest-matcher-utils29.7.0непряма
npmjest-message-util29.7.0непряма
npmjest-mock29.7.0непряма
npmjest-pnp-resolver1.2.3непряма
npmjest-regex-util29.6.3непряма
npmjest-resolve29.7.0непряма
npmjest-resolve-dependencies29.7.0непряма
npmjest-runner29.7.0непряма
npmjest-runtime29.7.0непряма
npmjest-snapshot29.7.0непряма
npmjest-util29.7.0непряма
npmjest-validate29.7.0непряма
npmjest-watcher29.7.0непряма
npmjest-worker29.7.0непряма
npmjiti1.21.0непряма
npmjs-tokens4.0.0непряма
npmjsesc2.5.2непряма
npmjson-buffer3.0.1непряма
npmjson-parse-even-better-errors2.3.1непряма
npmjson-schema-traverse0.4.1непряма
npmjson-schema-traverse1.0.0непряма
npmjson-stable-stringify-without-jsonify1.0.1непряма
npmjson52.2.3непряма
npmjsonparse1.3.1непряма
npmJSONStream1.3.5непряма
npmkeyv4.5.4непряма
npmkind-of6.0.3непряма
npmkleur3.0.3непряма
npmkuler2.0.0непряма
npmleven3.1.0непряма
npmlevn0.4.1непряма
npmlilconfig3.1.2непряма
npmlines-and-columns1.2.4непряма
npmlint-staged15.2.10непряма
npmlistr28.2.5непряма
npmlocate-path5.0.0непряма
npmlocate-path6.0.0непряма
npmlodash4.17.21непряма
npmlodash.camelcase4.3.0непряма
npmlodash.isfunction3.0.9непряма
npmlodash.isplainobject4.0.6непряма
npmlodash.kebabcase4.1.1непряма
npmlodash.memoize4.1.2непряма
npmlodash.merge4.6.2непряма
npmlodash.mergewith4.6.2непряма
npmlodash.snakecase4.1.1непряма
npmlodash.startcase4.4.0непряма
npmlodash.uniq4.5.0непряма
npmlodash.upperfirst4.3.1непряма
npmlog-update6.1.0непряма
npmlogform2.6.0непряма
npmlru-cache10.2.0непряма
npmlru-cache5.1.1непряма
npmlru-cache6.0.0непряма
npmmake-dir4.0.0непряма
npmmake-error1.3.6непряма
npmmakeerror1.0.12непряма
npmmap-obj1.0.1непряма
npmmap-obj4.3.0непряма
npmmath-intrinsics1.1.0непряма
npmmedia-typer1.1.0непряма
npmmeow12.1.1непряма
npmmeow8.1.2непряма
npmmeow9.0.0непряма
npmmerge-descriptors2.0.0непряма
npmmerge-stream2.0.0непряма
npmmerge21.4.1непряма
npmmicromatch4.0.8непряма
npmmime-db1.52.0непряма
npmmime-db1.54.0непряма
npmmime-types2.1.35непряма
npmmime-types3.0.1непряма
npmmimic-fn2.1.0непряма
npmmimic-fn4.0.0непряма
npmmimic-function5.0.1непряма
npmmin-indent1.0.1непряма
npmminimatch3.1.2непряма
npmminimatch9.0.3непряма
npmminimist1.2.8непряма
npmminimist-options4.1.0непряма
npmminipass7.0.4непряма
npmms2.1.3непряма
npmmute-stream0.0.8непряма
npmnatural-compare1.4.0непряма
npmnatural-compare-lite1.4.0непряма
npmncp2.0.0непряма
npmnegotiator1.0.0непряма
npmnode-int640.4.0непряма
npmnode-releases2.0.13непряма
npmnormalize-package-data2.5.0непряма
npmnormalize-package-data3.0.3непряма
npmnormalize-path3.0.0непряма
npmnpm-run-path4.0.1непряма
npmnpm-run-path5.1.0непряма
npmnpm-run-path5.3.0непряма
npmobject-inspect1.13.4непряма
npmon-finished2.4.1непряма
npmonce1.4.0непряма
npmone-time1.0.0непряма
npmonetime5.1.2непряма
npmonetime6.0.0непряма
npmonetime7.0.0непряма
npmopen9.1.0непряма
npmoptionator0.9.3непряма
npmos-tmpdir1.0.2непряма
npmp-limit2.3.0непряма
npmp-limit3.1.0непряма
npmp-locate4.1.0непряма
npmp-locate5.0.0непряма
npmp-try2.2.0непряма
npmparent-module1.0.1непряма
npmparse-json5.2.0непряма
npmparseurl1.3.3непряма
npmpath-exists4.0.0непряма
npmpath-is-absolute1.0.1непряма
npmpath-key3.1.1непряма
npmpath-key4.0.0непряма
npmpath-parse1.0.7непряма
npmpath-scurry1.10.1непряма
npmpath-to-regexp8.2.0непряма
npmpath-type4.0.0непряма
npmpicocolors1.1.1непряма
npmpicomatch2.3.1непряма
npmpidtree0.6.0непряма
npmpirates4.0.6непряма
npmpkg-dir4.2.0непряма
npmprelude-ls1.2.1непряма
npmprettier3.0.3непряма
npmprettier-linter-helpers1.0.0непряма
npmpretty-format29.7.0непряма
npmprompts2.4.2непряма
npmproxy-addr2.0.7непряма
npmproxy-from-env1.1.0непряма
npmpunycode2.3.1непряма
npmpure-rand6.0.4непряма
npmqs6.14.0непряма
npmqueue-microtask1.2.3непряма
npmquick-lru4.0.1непряма
npmrange-parser1.2.1непряма
npmraw-body3.0.0непряма
npmrc1.2.8непряма
npmreact-is18.2.0непряма
npmread-pkg5.2.0непряма
npmread-pkg-up7.0.1непряма
npmreadable-stream3.6.2непряма
npmredent3.0.0непряма
npmreduce-flatten2.0.0непряма
npmregexpp3.2.0непряма
npmrequire-directory2.1.1непряма
npmrequire-from-string2.0.2непряма
npmresolve1.22.8непряма
npmresolve-cwd3.0.0непряма
npmresolve-from4.0.0непряма
npmresolve-from5.0.0непряма
npmresolve-global1.0.0непряма
npmresolve.exports2.0.2непряма
npmrestore-cursor3.1.0непряма
npmrestore-cursor5.1.0непряма
npmreusify1.0.4непряма
npmrfdc1.4.1непряма
npmrimraf3.0.2непряма
npmrimraf5.0.5непряма
npmrouter2.2.0непряма
npmrun-applescript5.0.0непряма
npmrun-async2.4.1непряма
npmrun-parallel1.2.0непряма
npmrxjs6.6.7непряма
npmsafe-buffer5.2.1непряма
npmsafe-stable-stringify2.4.3непряма
npmsafer-buffer2.1.2непряма
npmsemver5.7.2непряма
npmsemver6.3.1непряма
npmsemver7.5.4непряма
npmsend1.2.0непряма
npmserve-static2.2.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непряма
npmsimple-swizzle0.2.2непряма
npmsisteransi1.0.5непряма
npmslash3.0.0непряма
npmslice-ansi5.0.0непряма
npmslice-ansi7.1.0непряма
npmsource-map0.6.1непряма
npmsource-map-support0.5.13непряма
npmspdx-correct3.2.0непряма
npmspdx-exceptions2.3.0непряма
npmspdx-expression-parse3.0.1непряма
npmspdx-license-ids3.0.16непряма
npmsplit23.2.2непряма
npmsplit24.2.0непряма
npmsprintf-js1.0.3непряма
npmstack-trace0.0.10непряма
npmstack-utils2.0.6непряма
npmstatuses2.0.1непряма
npmstring-argv0.3.2непряма
npmstring-format2.0.0непряма
npmstring-length4.0.2непряма
npmstring-width4.2.3непряма
npmstring-width5.1.2непряма
npmstring-width7.2.0непряма
npmstring_decoder1.3.0непряма
npmstrip-ansi6.0.1непряма
npmstrip-ansi7.1.0непряма
npmstrip-bom4.0.0непряма
npmstrip-final-newline2.0.0непряма
npmstrip-final-newline3.0.0непряма
npmstrip-indent3.0.0непряма
npmstrip-json-comments2.0.1непряма
npmstrip-json-comments3.1.1непряма
npmsupports-color5.5.0непряма
npmsupports-color7.2.0непряма
npmsupports-color8.1.1непряма
npmsupports-preserve-symlinks-flag1.0.0непряма
npmsynckit0.8.5непряма
npmtable-layout1.0.2непряма
npmtest-exclude6.0.0непряма
npmtext-extensions2.4.0непряма
npmtext-hex1.0.0непряма
npmtext-table0.2.0непряма
npmthrough2.3.8непряма
npmthrough24.0.2непряма
npmtitleize3.0.0непряма
npmtmp0.0.33непряма
npmtmpl1.0.5непряма
npmto-regex-range5.0.1непряма
npmtoidentifier1.0.1непряма
npmtrim-newlines3.0.1непряма
npmtriple-beam1.4.1непряма
npmts-jest29.1.1непряма
npmtslib1.14.1непряма
npmtslib2.6.2непряма
npmtsutils3.21.0непряма
npmtype-check0.4.0непряма
npmtype-detect4.0.8непряма
npmtype-fest0.18.1непряма
npmtype-fest0.20.2непряма
npmtype-fest0.21.3непряма
npmtype-fest0.6.0непряма
npmtype-fest0.8.1непряма
npmtype-is2.0.1непряма
npmtypescript5.2.2непряма
npmtypical4.0.0непряма
npmtypical5.2.0непряма
npmundici-types5.26.5непряма
npmunpipe1.0.0непряма
npmuntildify4.0.0непряма
npmupdate-browserslist-db1.0.13непряма
npmuri-js4.4.1непряма
npmutil-deprecate1.0.2непряма
npmv8-to-istanbul9.1.3непряма
npmvalidate-npm-package-license3.0.4непряма
npmvary1.1.2непряма
npmwalker1.0.8непряма
npmwhich2.0.2непряма
npmwinston-transport4.7.0непряма
npmwordwrapjs4.0.1непряма
npmwrap-ansi7.0.0непряма
npmwrap-ansi8.1.0непряма
npmwrap-ansi9.0.0непряма
npmwrappy1.0.2непряма
npmwrite-file-atomic4.0.2непряма
npmy18n5.0.8непряма
npmyallist3.1.1непряма
npmyallist4.0.0непряма
npmyaml2.5.1непряма
npmyargs17.7.2непряма
npmyargs-parser20.2.9непряма
npmyargs-parser21.1.1непряма
npmyocto-queue0.1.0непряма
Сповіщення про залежності 0

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

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

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

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [
        "framework",
        "impact"
      ],
      "is_fork": false,
      "size_kb": 7775,
      "has_wiki": true,
      "homepage": "https://if.greensoftware.foundation/",
      "languages": {
        "Shell": 620,
        "Dockerfile": 3438,
        "JavaScript": 26928,
        "TypeScript": 556198,
        "Go Template": 1732
      },
      "pushed_at": "2026-06-27T15:19:23Z",
      "created_at": "2023-02-08T09:32:11Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-27T06:07:07Z",
      "description": "Impact Framework",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript"
      ]
    },
    "owner": {
      "blog": "https://greensoftware.foundation",
      "name": "Green Software Foundation",
      "type": "Organization",
      "login": "Green-Software-Foundation",
      "company": null,
      "location": null,
      "followers": 1149,
      "avatar_url": "https://avatars.githubusercontent.com/u/84547728?v=4",
      "created_at": "2021-05-20T23:17:29Z",
      "is_verified": null,
      "public_repos": 91,
      "account_age_days": 1897
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v1.1.1",
          "kind": "patch",
          "published_at": "2026-06-27T14:29:35Z"
        },
        {
          "tag": "v1.1.0",
          "kind": "minor",
          "published_at": "2025-07-21T14:07:51Z"
        },
        {
          "tag": "v1.1.0-beta.0",
          "kind": "prerelease",
          "published_at": "2025-07-08T10:58:25Z"
        },
        {
          "tag": "v1.0.2",
          "kind": "patch",
          "published_at": "2025-05-20T15:21:24Z"
        },
        {
          "tag": "v1.0.1",
          "kind": "patch",
          "published_at": "2025-02-27T12:15:25Z"
        },
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2025-01-10T12:51:17Z"
        },
        {
          "tag": "v1.0.0-beta.0",
          "kind": "prerelease",
          "published_at": "2024-12-10T15:03:05Z"
        },
        {
          "tag": "v0.7.2",
          "kind": "patch",
          "published_at": "2024-10-31T14:29:16Z"
        },
        {
          "tag": "v0.7.1",
          "kind": "patch",
          "published_at": "2024-10-10T14:04:12Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2024-10-04T17:15:27Z"
        },
        {
          "tag": "v0.7.0-beta.0",
          "kind": "prerelease",
          "published_at": "2024-10-04T16:14:43Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2024-08-09T20:13:36Z"
        },
        {
          "tag": "v0.6.0-beta.0",
          "kind": "prerelease",
          "published_at": "2024-08-08T17:14:40Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2024-07-04T12:08:46Z"
        },
        {
          "tag": "v0.5.0-beta.0",
          "kind": "prerelease",
          "published_at": "2024-06-28T13:07:51Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2024-06-13T15:08:25Z"
        },
        {
          "tag": "v0.4.0-beta.1",
          "kind": "prerelease",
          "published_at": "2024-06-12T16:56:39Z"
        },
        {
          "tag": "v0.4.0-beta.0",
          "kind": "prerelease",
          "published_at": "2024-06-11T18:01:08Z"
        },
        {
          "tag": "v0.3.4",
          "kind": "patch",
          "published_at": "2024-06-11T16:52:02Z"
        },
        {
          "tag": "v0.3.3-beta.0",
          "kind": "prerelease",
          "published_at": "2024-05-17T17:15:54Z"
        },
        {
          "tag": "v0.3.2",
          "kind": "patch",
          "published_at": "2024-04-09T20:27:02Z"
        },
        {
          "tag": "v0.3.1",
          "kind": "patch",
          "published_at": "2024-03-15T21:28:09Z"
        },
        {
          "tag": "v0.3.0",
          "kind": "minor",
          "published_at": "2024-03-15T20:44:00Z"
        },
        {
          "tag": "v0.2.1",
          "kind": "patch",
          "published_at": "2024-03-03T05:05:45Z"
        },
        {
          "tag": "v0.2.0",
          "kind": "minor",
          "published_at": "2024-03-02T15:57:51Z"
        },
        {
          "tag": "v0.1.9",
          "kind": "patch",
          "published_at": "2024-02-02T16:42:15Z"
        },
        {
          "tag": "v0.1.8",
          "kind": "patch",
          "published_at": "2024-01-18T13:29:18Z"
        },
        {
          "tag": "v0.1.7",
          "kind": "patch",
          "published_at": "2024-01-10T09:10:47Z"
        },
        {
          "tag": "v0.1.6",
          "kind": "patch",
          "published_at": "2024-01-05T15:55:34Z"
        },
        {
          "tag": "v0.1.5",
          "kind": "patch",
          "published_at": "2024-01-05T15:33:55Z"
        },
        {
          "tag": "v0.1.4",
          "kind": "patch",
          "published_at": "2024-01-05T13:56:32Z"
        },
        {
          "tag": "v0.1.3",
          "kind": "patch",
          "published_at": "2023-12-08T15:40:20Z"
        },
        {
          "tag": "v0.1.2",
          "kind": "patch",
          "published_at": "2023-11-24T14:59:21Z"
        },
        {
          "tag": "v0.1.1",
          "kind": "patch",
          "published_at": "2023-11-16T16:09:38Z"
        },
        {
          "tag": "v0.1.0",
          "kind": "minor",
          "published_at": "2023-11-14T15:39:14Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "ba68bda3f59a4df907e9b709414e53c1fc116ff9",
          "body": "Signed-off-by: Narek Hovhannisyan <narhovhannisian@gmail.com>",
          "is_bot": false,
          "headline": "chore(release): 1.1.1",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2026-06-27T14:38:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b16637f8489c058744222c688b3875fe10dd09c",
          "body": "…orkflow\n\nchore(.github): update release workflow documentation and add deploy …",
          "is_bot": false,
          "headline": "Merge pull request #1170 from Green-Software-Foundation/fix-release-w…",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2026-06-27T13:59:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "248d7e133be15fc5f55edf3edc44f331261bad37",
          "body": "…key validation",
          "is_bot": false,
          "headline": "chore(.github): update release workflow documentation and add deploy …",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2026-06-27T13:44:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5654a99fb784ec5b63e86bfed840ea73fe943438",
          "body": "…orkflow\n\nrefactor(.github): tune release flow, update node version",
          "is_bot": false,
          "headline": "Merge pull request #1169 from Green-Software-Foundation/fix-release-w…",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2026-06-27T13:05:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "11c635018138cf5fe94c5e0279e85806e3b115e0",
          "body": null,
          "is_bot": false,
          "headline": "refactor(.github): tune release flow, update node version",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2026-06-27T12:58:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9bed82a50b67a556baadbb871e2e1a14aa3302c5",
          "body": "Fix lint",
          "is_bot": false,
          "headline": "Merge pull request #1168 from Green-Software-Foundation/fix-lint-errors",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2026-06-27T12:31:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "24c213c2e212503c9958a8bb051628303c017276",
          "body": "Signed-off-by: Narek Hovhannisyan <narhovhannisian@gmail.com>",
          "is_bot": false,
          "headline": "fix(src): fix post-merge lint errors and simplify release workflow",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2026-06-27T12:30:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "655c71a6b6e57013e3ef5b934a13834b3905836c",
          "body": "time-sync: add min/max/median aggregation methods ; treat as constants during normalization (Fixes #918)",
          "is_bot": false,
          "headline": "Merge pull request #1167 from kalialovish/feat/time-sync-agg-methods-918",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2026-06-26T16:59:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ddf67df5d48f4bf89c03e28475994c776bbc0db4",
          "body": "…ng normalization; tests + README (#918)\n\nSigned-off-by: lovish.kalia <lovish.kalia@accenture.com>\nSigned-off-by: lovish.kalia <https.ping@gmail.com>",
          "is_bot": false,
          "headline": "feat(time-sync): add min/max/median methods + treat as constants duri…",
          "author_name": "lovish.kalia",
          "author_login": "kalialovish",
          "committed_at": "2026-06-26T09:27:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0829a399e1f309375ee499c5377d4639dbb812d1",
          "body": "Sync release with main",
          "is_bot": false,
          "headline": "Merge pull request #1164 from Green-Software-Foundation/release",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-07-25T09:27:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2f44e5256be806d962bf8ec2bad691a05e2389b8",
          "body": "Signed-off-by: Narek Hovhannisyan <narekgilmour@gmail.com>",
          "is_bot": false,
          "headline": "Merge branch 'main' into release",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-07-25T09:27:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d5b4ae85122a4823e3955c20710898c89d7e7fc",
          "body": "Merge pull request #1163 from Green-Software-Foundation/release-v1.1.0",
          "is_bot": false,
          "headline": "chore(release): v1.1.0 ✨",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-07-25T09:24:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "34284f1a51107fc437a4a38fdc856be1e6df3188",
          "body": "upgrade Node.js version to 20 in release workflows",
          "is_bot": false,
          "headline": "Merge pull request #1162 from Green-Software-Foundation/revert-workflows",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-07-21T14:06:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "81be6dc9965c457d2343f12d093b793833b90ba2",
          "body": null,
          "is_bot": false,
          "headline": "fix(.github): upgrade Node.js version to 20 in release workflows",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-07-21T13:59:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "213bc51a5cb8da478e87f3c96b44160747ca26cc",
          "body": "Enable release workflows",
          "is_bot": false,
          "headline": "Merge pull request #1161 from Green-Software-Foundation/revert-workflows",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-07-21T12:05:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea6e931b64be69e9b35b6462a11fc2e9a4c0eb58",
          "body": null,
          "is_bot": false,
          "headline": "fix(.github): enable release workflows",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-07-21T11:37:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "59fe64b68a014db4f466fbaf4ed92439bbd2ec78",
          "body": "…0-beta.0\n\nRelease v1.1.0 beta.0",
          "is_bot": false,
          "headline": "Merge pull request #1160 from Green-Software-Foundation/release-v1.1.…",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-07-08T10:57:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "47f2f259dbd0a16a89b99f6a3e4b455b0eaf1d06",
          "body": "…elease-v1.1.0-beta.0",
          "is_bot": false,
          "headline": "Merge branch 'main' of github.com:Green-Software-Foundation/if into r…",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-07-08T10:53:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "47ec2d8a647863b5d1c7441cc04d83162fdef8da",
          "body": "…lities-plus-release\n\nFix vulnerabilities plus release",
          "is_bot": false,
          "headline": "Merge pull request #1159 from Green-Software-Foundation/fix-vulnerabi…",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-07-08T10:52:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "68895cbcb2b7bc757559ab99f11c0b4c11a1a17e",
          "body": null,
          "is_bot": false,
          "headline": "chore(release): v1.1.0-beta.0 ✨",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-07-08T10:49:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8b781cf786aa50ee83320126dc8d8c71f13a521e",
          "body": null,
          "is_bot": false,
          "headline": "fix(package): update dependencies to resolve vulnerabilities",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-07-08T10:28:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3e181d81355065e8447b6234b219e317217c2ea",
          "body": "…triggers for manual execution",
          "is_bot": false,
          "headline": "revert(.github): temporarily disable release workflows and add dummy …",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-07-08T10:24:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd6fd270bed7c7ae59188fc325fcc5a8fa8eff38",
          "body": "Upgraded eco-ci to @v5",
          "is_bot": false,
          "headline": "Merge pull request #1158 from green-coding-solutions/eco-ci-v5",
          "author_name": "Joseph Cook",
          "author_login": "jmcook1186",
          "committed_at": "2025-07-08T09:02:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d9c56316c89aeacad21d6d53e4a67aa2cfaedde",
          "body": "Signed-off-by: Arne Tarara <arne@datafuse.de>",
          "is_bot": false,
          "headline": "Upgraded eco-ci to @v5",
          "author_name": "Arne Tarara",
          "author_login": "ArneTR",
          "committed_at": "2025-07-07T06:28:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6742a738c28caaaebc7d37853bdd7a803b1dbc50",
          "body": "Add GHA workflow to publish Helm Chart",
          "is_bot": false,
          "headline": "Merge pull request #1154 from YaSuenag/pr/gha-helm",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-06-29T09:47:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a58eb9dd8623ca3dac2f0b1039309cdc0344d8a3",
          "body": "Signed-off-by: Yasumasa Suenaga <yasuenag@gmail.com>",
          "is_bot": false,
          "headline": "Add GHA workflow to publish Helm Chart",
          "author_name": "Yasumasa Suenaga",
          "author_login": "YaSuenag",
          "committed_at": "2025-06-23T02:22:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "687429dac3b8ca5216d7beb853e086c7fb8a69a0",
          "body": "Parameter metadata audit feature",
          "is_bot": false,
          "headline": "Merge pull request #1153 from mouhamadalmounayar/if-metadata-coverage",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-06-22T06:00:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0deeaa98029f078b8c97e4c9fcde5e5f63bf6df0",
          "body": "feat(config): add helm-chart",
          "is_bot": false,
          "headline": "Merge pull request #1152 from kariya-mitsuru/add-helm-chart",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-06-22T05:58:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea2683ca94e7b8e9ce04d47790935aaf28247db6",
          "body": "Add GHA workflow to publish Web API container image",
          "is_bot": false,
          "headline": "Merge pull request #1151 from YaSuenag/pr/gha-container",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-06-22T05:56:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8649234afe7c2868179e649d8c4081779d476019",
          "body": "Signed-off-by: mouhamadalmounayar <muhammad.mnayar@gmail.com>",
          "is_bot": false,
          "headline": "docs(lib): add method doc for metadata-checker",
          "author_name": "mouhamadalmounayar",
          "author_login": "mouhamadalmounayar",
          "committed_at": "2025-06-21T16:37:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8d49e28a31cbf6dc9639843f23d85041c59c7af0",
          "body": "Signed-off-by: mouhamadalmounayar <muhammad.mnayar@gmail.com>",
          "is_bot": false,
          "headline": "chore(lib): add if-metadata-check command",
          "author_name": "mouhamadalmounayar",
          "author_login": "mouhamadalmounayar",
          "committed_at": "2025-06-21T16:37:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "79ca673a9db2afe2b5088edf8ae70d814676cdaa",
          "body": "Signed-off-by: mouhamadalmounayar <muhammad.mnayar@gmail.com>",
          "is_bot": false,
          "headline": "test(lib): metadata checker",
          "author_name": "mouhamadalmounayar",
          "author_login": "mouhamadalmounayar",
          "committed_at": "2025-06-21T16:37:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a846c48604d5ae118407c5381397a1d6dd849901",
          "body": "Signed-off-by: mouhamadalmounayar <muhammad.mnayar@gmail.com>",
          "is_bot": false,
          "headline": "feat(lib): metadata coverage check",
          "author_name": "mouhamadalmounayar",
          "author_login": "mouhamadalmounayar",
          "committed_at": "2025-06-21T16:36:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1177c08f90fae2c8fb5bded6b9901da68a2f6871",
          "body": "Signed-off-by: Yasumasa Suenaga <yasuenag@gmail.com>",
          "is_bot": false,
          "headline": "Add GHA workflow to publish Web API container image",
          "author_name": "Yasumasa Suenaga",
          "author_login": "YaSuenag",
          "committed_at": "2025-06-21T15:12:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1fec339a04049f2e989c910ef22a1220e9be5f67",
          "body": "Create a helm chart for deploying the container to Kubernetes.\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "feat(config): add helm-chart",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-06-12T01:27:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c3d3bdd5aa4c7c773257db1eed667ef60ebeb1e6",
          "body": "chore(manifests): restore sample manifests",
          "is_bot": false,
          "headline": "Merge pull request #1150 from kariya-mitsuru/restore-sample-manifests",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-06-10T14:13:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f8205592b8008360c82bf89bd899c96a9730e59e",
          "body": "feat(util): add Dockerfile",
          "is_bot": false,
          "headline": "Merge pull request #1149 from kariya-mitsuru/add-dockerfile",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-06-10T14:07:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "37d30817eff18591c276459098f6e6c44b029577",
          "body": "Create a `Dockerfile` to run `if-api` as a container.\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "feat(util): add Dockerfile",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-06-03T14:14:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1b928418d93c8491057fa4a10e7df2f639559933",
          "body": "Restore the following files from past history where output files exist\nin `manifests/outputs` but corresponding input files don't exist in\n`manifests/examples`.\n(In parentheses are the commit hash where they were deleted and the\nfilename at that time)\n\n- manifests/examples/bugs/aggregation-error-wro\n[…]\namples/builtins/divide/success-denominator-equal-zero.yml\n  (1f609484 manifests/examples/builtins/divide/failure-denominator-equal-zero.yml)\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "chore(manifests): restore sample manifests",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-06-03T13:06:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "76fc70d4e1398c229312906894853ac99347ae96",
          "body": "fix(src): fix regroup",
          "is_bot": false,
          "headline": "Merge pull request #1148 from kariya-mitsuru/fix-regroup",
          "author_name": "Joseph Cook",
          "author_login": "jmcook1186",
          "committed_at": "2025-06-03T08:59:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f4dda336cd61d567028389b342fa239f7cb52a23",
          "body": "Although not directly related to this fix, the following sample output\nrelated to regroup were also removed in PR #1037, so add it.\n\n- manifests/outputs/features/regroup/success.yaml\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "chore(manifests): add sample output",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-06-03T00:53:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fed55d03674c97b67cf0414a9847ff44991e9b06",
          "body": "PR #1108 fixed the issue to prevent duplicate regrouping when the tree\nhas already been regrouped.\nHowever, this fix caused only the first subtree to be executed when\nregrouping needed to be performed on multiple subtrees.\nSpecifically, the execution results of the following manifests became\ndiffere\n[…]\n be\nexecuted on multiple subtrees.\n\nAdditionally, it also adds the output results for the above two\nmanifests that were removed in PR #1037.\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "fix(src): fix regroup",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-06-02T14:51:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "eb73a7fe2c7be4be2accc4b349b51ab20eee9167",
          "body": "fix(manifests): fix sample manifests",
          "is_bot": false,
          "headline": "Merge pull request #1146 from kariya-mitsuru/fix-sample-manifests",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-05-31T14:31:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b50b1998a573dd7f285cc7713510458dd49c7992",
          "body": "feat(src): add if-api",
          "is_bot": false,
          "headline": "Merge pull request #1143 from kariya-mitsuru/add-webapi",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-05-31T14:29:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f3df99d9c29cdc43613d4780ab3b80c019b97fb",
          "body": "1. remove duplicate outputs\n\nThe following manifests were equivalent to each other, so the latter one is\nremoved.\n\n- manifests/outputs/builtins/interpolation/success.yaml\n  manifests/outputs/builtins/interpolation/interpolation.yaml\n- manifests/outputs/features/regroup/failure-invalid-regroup.yaml\n \n[…]\ny is removed.\n\n- manifests/examples/builtins/time-sync/failure-missing-config.yml\n- manifests/examples/builtins/time-sync/success.yml\n- manifests/outputs/builtins/time-sync/failure-missing-config.yaml",
          "is_bot": false,
          "headline": "fix(manifests): fix sample manifests",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-05-26T16:35:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "83ef916a9632a07ff692b0056c5e7262aebf7e37",
          "body": "Create `if-api` to run `if-run` as an API server.\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "feat(src): add if-api",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-05-21T01:55:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba632a065110acec8ac3c30917a1b6fa274c04d9",
          "body": "Sync Release with Main",
          "is_bot": false,
          "headline": "Merge pull request #1145 from Green-Software-Foundation/release",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-05-20T16:14:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7dfbcf9b564077b064836c0c57f42aa4c584d137",
          "body": "Signed-off-by: Narek Hovhannisyan <narekgilmour@gmail.com>",
          "is_bot": false,
          "headline": "Merge branch 'main' into release",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-05-20T16:13:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "98305e0b750818d2ba8d3b25a6393e6bc11ef499",
          "body": "Signed-off-by: Narek Hovhannisyan <narhovhannisian@gmail.com>",
          "is_bot": false,
          "headline": "chore(release): v1.0.2 ✨",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-05-20T16:09:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "15e2370295e2ac830edf05de5a9b539da977dc37",
          "body": "chore(package): update @grnsft/if-core to version 0.0.30",
          "is_bot": false,
          "headline": "Merge pull request #1142 from Green-Software-Foundation/update-if-core",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-05-20T15:18:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5ceacfc55ac09d317dfb07fade4d84a2931f4635",
          "body": null,
          "is_bot": false,
          "headline": "chore(package): update @grnsft/if-core to version 0.0.30",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-05-20T15:11:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9513c9cd196b6cf51128629ae799f295ad6bef82",
          "body": "fix(src): fix URL",
          "is_bot": false,
          "headline": "Merge pull request #1141 from kariya-mitsuru/fix-url",
          "author_name": "Joseph Cook",
          "author_login": "jmcook1186",
          "committed_at": "2025-05-19T08:16:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "81b406edeb83629aff9d029b2797b8b570daf4dd",
          "body": "Following the change in documentation URL.\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "fix(src): fix URL",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-05-17T19:03:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1b57232cc1d5bcabc55114c885e55e404d8c90a0",
          "body": "test(src): fix test for parseManifestFromStdin",
          "is_bot": false,
          "headline": "Merge pull request #1139 from kariya-mitsuru/fix-helpers-test",
          "author_name": "Joseph Cook",
          "author_login": "jmcook1186",
          "committed_at": "2025-05-13T08:50:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0f51c9f4d070fa760934412f559a586dbc61f9d1",
          "body": "fix(config): refine test configuration",
          "is_bot": false,
          "headline": "Merge pull request #1140 from kariya-mitsuru/fix-test-config",
          "author_name": "Joseph Cook",
          "author_login": "jmcook1186",
          "committed_at": "2025-05-13T08:49:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7be8309134ede8cb85b45ace0a2730325b2703bb",
          "body": "The `modulePathIgnorePatterns` in `jest.config.js` was set to `./build`,\nwhich caused all modules to be ignored and tests not to be executed when\nthe git working directory was under `build` (as it was in my environment).\nTherefore, I changed it to `<rootDir>/build/`.\n(Since `modulePathIgnorePatterns\n[…]\n` at the\nbeginning.)\nThis enables running tests with a narrowed scope during test execution,\nsuch as `npm test -- --testPathPattern=if-run`.\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "fix(config): refine test configuration",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-05-12T10:53:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e14c368368db0a1c1b754f8cf46014af7ae861eb",
          "body": "`parseManifestFromStdin` behaves differently depending on the value of\n`process.stdin.isTTY`, but in tests where the value isn't explicitly set,\ntests could fail depending on the environment.\n\nSpecifically, tests were failing in environments where jest's `maxWorkers`\nwas set to `1`.\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "test(src): fix test for parseManifestFromStdin",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-05-12T10:34:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1901c5ac2e1719405a0e4b813fa9a54aff6e8d20",
          "body": "…-dev\n\nchore(package): move unnecessary deps to devDeps",
          "is_bot": false,
          "headline": "Merge pull request #1138 from kariya-mitsuru/move-unnecessary-deps-to…",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-05-11T16:59:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9dbb57920242df1bf9eb45524d19a7c7782bb036",
          "body": "fix(src): fix error in if-run when devDeps are not installed",
          "is_bot": false,
          "headline": "Merge pull request #1137 from kariya-mitsuru/fix-if-run-without-devdeps",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-05-11T16:59:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "895576144d72d773c3ef55abf40e88f5711bdf25",
          "body": "If `devDependencies` are not installed, the `npm list --json` command will\nresult in an error, causing `if-run` to fail.\nTo avoid this, add `--omit=dev` to the command.\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "fix(src): fix error in if-run when devDeps are not installed",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-05-11T04:06:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b4ea368233747f14076a8fde25470c756746f5bc",
          "body": "`TypeScript` and `commitlint` are only used during development,\nso move them from `dependencies` to `devDependencies`.\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "chore(package): move unnecessary deps to devDeps",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-05-11T01:56:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d4c11fc5d9394a330e281c4f1d3218e6aa1e471e",
          "body": "fix(src): fix if-check",
          "is_bot": false,
          "headline": "Merge pull request #1133 from kariya-mitsuru/fix-if-check",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-05-08T15:11:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "18834bd8efc42286e5b54be60ac29a0d2cce7f75",
          "body": "…ing-message\n\nfix(src): fix DivisionByZero message",
          "is_bot": false,
          "headline": "Merge pull request #1135 from kariya-mitsuru/fix-division-by-zero-war…",
          "author_name": "Joseph Cook",
          "author_login": "jmcook1186",
          "committed_at": "2025-05-06T08:03:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33d37c7987afb320fb12e949eb395949cd5613f7",
          "body": "…estamp\n\nfix(src): fix getProcessStartingTimestamp function",
          "is_bot": false,
          "headline": "Merge pull request #1134 from kariya-mitsuru/fix-process-starting-tim…",
          "author_name": "Joseph Cook",
          "author_login": "jmcook1186",
          "committed_at": "2025-05-06T08:02:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ce8d9eda2871711b65b2886133fb46f34364f428",
          "body": "When outputting DivisionByZero messages, module names were also being output,\nusing `Divide.name` and `Sci.name` as the module names.\nHowever, since `Divide` and `Sci` are anonymous functions, they don't have\nthe `name` property, and therefore module names weren't being output.\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "fix(src): fix DivisionByZero message",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-05-05T17:08:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca1a404110bec5df27673d8a2d26a7900d90d0fe",
          "body": "The getProcessStartingTimestamp function was using hrtime but wasn't\ncorrectly calculating the process start time.\nTherefore, modify it to use uptime for the calculation instead.\n\nAdditionally, change it to use the standard Date object instead of\nluxon, as the rich features provided by luxon weren't necessary.\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "fix(src): fix getProcessStartingTimestamp function",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-05-05T16:52:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5cbe6f41ab93493375294c8a5bea1b46d41d7963",
          "body": "Fix the following issues with if-check:\n\n- Does not work properly when executed from outside the project root directory.\n- Does not work properly when executed from a globally installed instance.\n- package.json remains when an error occurs during execution with -d option.\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "fix(src): fix if-check",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-04-24T12:34:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2d60a1783aa8e8f83b0049c564fa0548c7518709",
          "body": "fix(src): fix cwd problem for if-diff/if-env/if-run",
          "is_bot": false,
          "headline": "Merge pull request #1130 from kariya-mitsuru/fix-if-diff-env-run",
          "author_name": "Manushak Keramyan",
          "author_login": "manushak",
          "committed_at": "2025-04-02T15:42:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "940e45c852c515b2c8cbe69d0055c1dd7c0fa6f5",
          "body": "Fixed an issue where if-diff/if-env/if-run would throw an error when\nexecuted outside the project root directory.\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "fix(src): fix cwd problem for if-diff/if-env/if-run",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-03-23T16:45:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df8be5d3a67411ae21d1d0afb93438700ab07eac",
          "body": "fix(src): fix help output when installed globally",
          "is_bot": false,
          "headline": "Merge pull request #1128 from kariya-mitsuru/fix-help",
          "author_name": "Joseph Cook",
          "author_login": "jmcook1186",
          "committed_at": "2025-03-19T13:47:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "44b3514fae24ac41a5f6cdeeeeeb1b5bc1e7ca48",
          "body": "Fix an issue where the help message was not displayed correctly when an\nincorrect command argument was provided (e.g., `if-run -x`) in a globally\ninstalled environment.\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "fix(src): fix help output when installed globally",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-03-17T16:48:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04abbe887bb3c5ec8cd6f4e54afe6bd17c23981c",
          "body": "Bump axios version to address high severity vuln in npm audit report",
          "is_bot": false,
          "headline": "Merge pull request #1127 from kariya-mitsuru/bump-axios",
          "author_name": "Joseph Cook",
          "author_login": "jmcook1186",
          "committed_at": "2025-03-14T13:30:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ec3631e860e5a94f96f38d1eb7973fb68d4f798e",
          "body": "… audit report\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "fix(package): bump axios version to address high severity vuln in npm…",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-03-12T10:14:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "beb295abd020b3fb7270bc990eb0bfee1638168c",
          "body": "fix(src): fix osInfo",
          "is_bot": false,
          "headline": "Merge pull request #1126 from kariya-mitsuru/fix-osinfo",
          "author_name": "Joseph Cook",
          "author_login": "jmcook1186",
          "committed_at": "2025-03-10T13:04:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6bd2c27eda5dc27362c425456f8701259010431b",
          "body": "In `getLinuxInfo`, `lsb_release -a` was used, but since the separator in\nthis command's output is a tab character rather than a space, the output was\nnot retrieved correctly.\nAdditionally, since `getLinuxInfo` only needed Distributor ID and Description,\nthe option was changed from -a to -id.\n\ncf.\nht\n[…]\n all used\n`execPromise`, but since a shell is not necessary to execute these commands,\na new `execFilePromise` was created and used instead.\n\nSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>",
          "is_bot": false,
          "headline": "fix(src): fix osInfo",
          "author_name": "Mitsuru Kariya",
          "author_login": "kariya-mitsuru",
          "committed_at": "2025-03-09T16:35:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8962b461290c63ccab492189c6690bfe78ae3eb3",
          "body": "chore(release): v1.0.1 ✨",
          "is_bot": false,
          "headline": "Merge pull request #1124 from Green-Software-Foundation/release-v1.0.1",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-02-27T12:46:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7368349b2883fa22d80f343550464e7bed1a36bc",
          "body": null,
          "is_bot": false,
          "headline": "chore(release): v1.0.1 ✨",
          "author_name": "Release commit workflow",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-02-27T12:45:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "09ebf6204b13180469b6514e1cf99a09caeaa3ba",
          "body": "Fix if check logger helper",
          "is_bot": false,
          "headline": "Merge pull request #1122 from Green-Software-Foundation/fix-logger",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-02-27T12:14:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "64e1db982cdbea5cfe719fe9f7075c9414cfc891",
          "body": null,
          "is_bot": false,
          "headline": "fix(util): fix log stdout failed message",
          "author_name": "manushak",
          "author_login": "manushak",
          "committed_at": "2025-02-27T12:00:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "720a590fc20ab19e36b2375929e98cefec62bdff",
          "body": null,
          "is_bot": false,
          "headline": "test(builtins): fix failed test of the divide",
          "author_name": "manushak",
          "author_login": "manushak",
          "committed_at": "2025-02-27T11:56:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "73601059e8928d9eced7c72d9c2e8bc2d755a0f7",
          "body": null,
          "is_bot": false,
          "headline": "chore(package): update if-core version",
          "author_name": "manushak",
          "author_login": "manushak",
          "committed_at": "2025-02-27T11:55:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ac615bc412053faaea4d1239b343df779f562bb3",
          "body": "…ling",
          "is_bot": false,
          "headline": "test(util): enhance logStdoutFailMessage tests for error message hand…",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-02-24T20:01:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6acf381fe9affbce15b4e9aedd7f9e129301094e",
          "body": null,
          "is_bot": false,
          "headline": "fix(util): handle empty stdout in logStdoutFailMessage function",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-02-24T20:01:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c04a5427ab2a08b9ac7c919a85ee0e263ea08cb",
          "body": "Fix if check unnecessary package.json creation",
          "is_bot": false,
          "headline": "Merge pull request #1120 from Green-Software-Foundation/fix-if-check",
          "author_name": "Joseph Cook",
          "author_login": "jmcook1186",
          "committed_at": "2025-02-11T09:58:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8150f4f53336df03a62690bc89305d3b9266e2eb",
          "body": "…n npm tests",
          "is_bot": false,
          "headline": "test(util): remove unnecessary parameter from executeCommands calls i…",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-02-11T09:50:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "75b5b23706dd0cfc198b4a01a1f9647df44ada41",
          "body": null,
          "is_bot": false,
          "headline": "refactor(src): remove unnecessary parameter from executeCommands calls",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-02-11T09:49:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d48f08f3ac49385143174f0a6d7f296ad7720eff",
          "body": null,
          "is_bot": false,
          "headline": "refactor(util): add docs to npm -> execute commands",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-02-11T09:48:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "285c70c58099673d6061257e42d434f33f9f2d0c",
          "body": "…ameter",
          "is_bot": false,
          "headline": "refactor(util): simplify executeCommands function by removing cwd par…",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-02-11T09:14:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "522082accfa7134adffe4e26883ae268e542f8a8",
          "body": "…merging\n\nFix defaults merging strategy",
          "is_bot": false,
          "headline": "Merge pull request #1119 from Green-Software-Foundation/fix-defaults-…",
          "author_name": "Joseph Cook",
          "author_login": "jmcook1186",
          "committed_at": "2025-02-10T13:12:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a11ff8582bdd29fdfe40dac92fa865f94932527",
          "body": "…fully",
          "is_bot": false,
          "headline": "test(lib): enhance mockExecutePlugin to handle undefined inputs grace…",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-02-10T11:59:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "259d46b88e24a0b0d62f69de292d404e17226d81",
          "body": null,
          "is_bot": false,
          "headline": "fix(lib): streamline merging of defaults with inputs in compute",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-02-10T11:54:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a202ce71dc4d970b98e090d7714677734112be5c",
          "body": "Sync Release with Main",
          "is_bot": false,
          "headline": "Merge pull request #1113 from Green-Software-Foundation/release",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-01-13T10:55:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "888ce18bc5cf83a65f786d679688077c063a6c33",
          "body": "Signed-off-by: Narek Hovhannisyan <narekgilmour@gmail.com>",
          "is_bot": false,
          "headline": "Merge branch 'main' into release",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-01-13T10:31:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "73a21499cd70eba4ddf495b1549d046b33328f15",
          "body": null,
          "is_bot": false,
          "headline": "chore(release): v1.0.0 ✨",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2025-01-13T10:28:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d63b807636d27541d8bab057137dd2684d48845e",
          "body": "Skip regrouping on already regrouped manifests",
          "is_bot": false,
          "headline": "Merge pull request #1108 from Green-Software-Foundation/regroup",
          "author_name": "Joseph Cook",
          "author_login": "jmcook1186",
          "committed_at": "2024-12-18T14:15:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "43db5f3229826f265dd60a848dde2bb209712a5d",
          "body": null,
          "is_bot": false,
          "headline": "feat(lib): add skipping regroup message to compute",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2024-12-18T14:08:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "57c29556f8f61c435ed75e08e940b39db4fe9801",
          "body": null,
          "is_bot": false,
          "headline": "feat(config): add skipping regroup message",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2024-12-18T14:05:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d8506be3e1d1f68b7396efe37782af03864f6bac",
          "body": null,
          "is_bot": false,
          "headline": "chore(src): fetch latest changes from main",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2024-12-18T05:25:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f7a3164f07923e6fddf9b56a8f155d24c2a27c1",
          "body": null,
          "is_bot": false,
          "headline": "test(lib): add additional case to cover already regrouped tree",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2024-12-17T21:45:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "90df77a37c3a70b5fd84be851ca8fd0022e29713",
          "body": null,
          "is_bot": false,
          "headline": "fix(lib): drop unnecessary logs",
          "author_name": "Narek Hovhannisyan",
          "author_login": "narekhovhannisyan",
          "committed_at": "2024-12-17T21:36:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 35,
      "commits_last_year": 8,
      "latest_release_at": "2026-06-27T14:29:35Z",
      "latest_release_tag": "v1.1.1",
      "releases_from_tags": false,
      "days_since_last_push": 33,
      "active_weeks_last_year": 1,
      "days_since_latest_release": 33,
      "mean_days_between_releases": 70.1
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 75,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@grnsft/if",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "carbonization",
            "engine",
            "framework",
            "green software foundation",
            "greensoftware",
            "if",
            "impact",
            "plugins"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@grnsft/if",
          "is_deprecated": false,
          "latest_version": "1.1.1",
          "repository_url": "https://github.com/Green-Software-Foundation/if",
          "versions_count": 41,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 3,
          "monthly_downloads": 920,
          "first_published_at": "2023-11-12T20:02:06.365000Z",
          "latest_published_at": "2026-06-27T15:17:38.238000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 33
        }
      ]
    },
    "popularity": {
      "forks": 51,
      "stars": 183,
      "watchers": 10,
      "fork_history": {
        "days": [
          {
            "date": "2023-08-07",
            "count": 1
          },
          {
            "date": "2023-08-14",
            "count": 2
          },
          {
            "date": "2023-09-15",
            "count": 1
          },
          {
            "date": "2023-09-18",
            "count": 1
          },
          {
            "date": "2023-10-25",
            "count": 1
          },
          {
            "date": "2023-10-27",
            "count": 1
          },
          {
            "date": "2023-11-03",
            "count": 1
          },
          {
            "date": "2023-11-09",
            "count": 1
          },
          {
            "date": "2023-11-30",
            "count": 1
          },
          {
            "date": "2023-12-15",
            "count": 1
          },
          {
            "date": "2024-01-03",
            "count": 1
          },
          {
            "date": "2024-01-11",
            "count": 1
          },
          {
            "date": "2024-01-15",
            "count": 1
          },
          {
            "date": "2024-01-19",
            "count": 1
          },
          {
            "date": "2024-01-20",
            "count": 1
          },
          {
            "date": "2024-01-21",
            "count": 1
          },
          {
            "date": "2024-01-29",
            "count": 2
          },
          {
            "date": "2024-02-23",
            "count": 1
          },
          {
            "date": "2024-03-01",
            "count": 1
          },
          {
            "date": "2024-03-03",
            "count": 1
          },
          {
            "date": "2024-03-05",
            "count": 1
          },
          {
            "date": "2024-03-07",
            "count": 1
          },
          {
            "date": "2024-03-10",
            "count": 1
          },
          {
            "date": "2024-03-13",
            "count": 1
          },
          {
            "date": "2024-03-18",
            "count": 2
          },
          {
            "date": "2024-03-27",
            "count": 1
          },
          {
            "date": "2024-04-03",
            "count": 1
          },
          {
            "date": "2024-04-05",
            "count": 1
          },
          {
            "date": "2024-04-14",
            "count": 1
          },
          {
            "date": "2024-04-17",
            "count": 1
          },
          {
            "date": "2024-05-21",
            "count": 1
          },
          {
            "date": "2024-06-11",
            "count": 1
          },
          {
            "date": "2024-07-05",
            "count": 1
          },
          {
            "date": "2024-07-09",
            "count": 1
          },
          {
            "date": "2024-07-31",
            "count": 1
          },
          {
            "date": "2024-09-04",
            "count": 1
          },
          {
            "date": "2024-09-28",
            "count": 1
          },
          {
            "date": "2025-01-06",
            "count": 1
          },
          {
            "date": "2025-03-09",
            "count": 1
          },
          {
            "date": "2025-05-17",
            "count": 1
          },
          {
            "date": "2025-06-04",
            "count": 2
          },
          {
            "date": "2025-07-22",
            "count": 1
          },
          {
            "date": "2025-08-06",
            "count": 1
          },
          {
            "date": "2025-10-10",
            "count": 1
          },
          {
            "date": "2026-02-22",
            "count": 1
          },
          {
            "date": "2026-03-08",
            "count": 1
          },
          {
            "date": "2026-07-04",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 51,
        "total_forks": 51
      },
      "star_history": null,
      "open_issues_and_prs": 38
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [
        "openapi.yaml"
      ],
      "has_devcontainer": true,
      "typecheck_configs": [
        "tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 31733,
      "source_files_sampled": 185,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 143,
        "malicious_count": 0,
        "assessed_package": "npm:@grnsft/if@1.1.1",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "@grnsft/if-core",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.0.31"
        },
        {
          "name": "axios",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.7.2"
        },
        {
          "name": "csv-parse",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.5.6"
        },
        {
          "name": "csv-stringify",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.4.6"
        },
        {
          "name": "express",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.1.0"
        },
        {
          "name": "js-yaml",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.1.0"
        },
        {
          "name": "luxon",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.4.4"
        },
        {
          "name": "ts-command-line-args",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.5.1"
        },
        {
          "name": "typescript-cubic-spline",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.1"
        },
        {
          "name": "winston",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.11.0"
        },
        {
          "name": "zod",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.22.4"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@grnsft/if-core",
            "direct": true,
            "version": "0.0.31",
            "ecosystem": "npm"
          },
          {
            "name": "axios",
            "direct": true,
            "version": "1.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "csv-parse",
            "direct": true,
            "version": "5.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "csv-stringify",
            "direct": true,
            "version": "6.4.6",
            "ecosystem": "npm"
          },
          {
            "name": "express",
            "direct": true,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": true,
            "version": "3.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": true,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "luxon",
            "direct": true,
            "version": "3.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "ts-command-line-args",
            "direct": true,
            "version": "2.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "typescript-cubic-spline",
            "direct": true,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "winston",
            "direct": true,
            "version": "3.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": true,
            "version": "3.23.8",
            "ecosystem": "npm"
          },
          {
            "name": "@aashutoshrathi/word-wrap",
            "direct": false,
            "version": "1.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@ampproject/remapping",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/code-frame",
            "direct": false,
            "version": "7.27.1",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/compat-data",
            "direct": false,
            "version": "7.23.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/core",
            "direct": false,
            "version": "7.22.10",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/core",
            "direct": false,
            "version": "7.23.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/generator",
            "direct": false,
            "version": "7.23.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-annotate-as-pure",
            "direct": false,
            "version": "7.22.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-compilation-targets",
            "direct": false,
            "version": "7.22.15",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-create-class-features-plugin",
            "direct": false,
            "version": "7.22.15",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-environment-visitor",
            "direct": false,
            "version": "7.22.20",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-function-name",
            "direct": false,
            "version": "7.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-hoist-variables",
            "direct": false,
            "version": "7.22.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-member-expression-to-functions",
            "direct": false,
            "version": "7.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-module-imports",
            "direct": false,
            "version": "7.22.15",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-module-transforms",
            "direct": false,
            "version": "7.23.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-optimise-call-expression",
            "direct": false,
            "version": "7.22.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-plugin-utils",
            "direct": false,
            "version": "7.22.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-replace-supers",
            "direct": false,
            "version": "7.22.20",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-simple-access",
            "direct": false,
            "version": "7.22.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-skip-transparent-expression-wrappers",
            "direct": false,
            "version": "7.22.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-split-export-declaration",
            "direct": false,
            "version": "7.22.6",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-string-parser",
            "direct": false,
            "version": "7.27.1",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.27.1",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-option",
            "direct": false,
            "version": "7.22.15",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helpers",
            "direct": false,
            "version": "7.27.6",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-async-generators",
            "direct": false,
            "version": "7.8.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-bigint",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-class-properties",
            "direct": false,
            "version": "7.12.13",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-import-meta",
            "direct": false,
            "version": "7.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-json-strings",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-jsx",
            "direct": false,
            "version": "7.23.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-logical-assignment-operators",
            "direct": false,
            "version": "7.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-nullish-coalescing-operator",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-numeric-separator",
            "direct": false,
            "version": "7.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-object-rest-spread",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-optional-catch-binding",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-optional-chaining",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-top-level-await",
            "direct": false,
            "version": "7.14.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-typescript",
            "direct": false,
            "version": "7.23.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-modules-commonjs",
            "direct": false,
            "version": "7.23.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-typescript",
            "direct": false,
            "version": "7.23.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/preset-typescript",
            "direct": false,
            "version": "7.23.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/template",
            "direct": false,
            "version": "7.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/traverse",
            "direct": false,
            "version": "7.23.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "7.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "@bcoe/v8-coverage",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@colors/colors",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/cli",
            "direct": false,
            "version": "18.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/config-conventional",
            "direct": false,
            "version": "18.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/config-validator",
            "direct": false,
            "version": "18.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/ensure",
            "direct": false,
            "version": "18.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/execute-rule",
            "direct": false,
            "version": "18.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/format",
            "direct": false,
            "version": "18.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/is-ignored",
            "direct": false,
            "version": "18.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/lint",
            "direct": false,
            "version": "18.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/load",
            "direct": false,
            "version": "18.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/message",
            "direct": false,
            "version": "18.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/parse",
            "direct": false,
            "version": "18.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/read",
            "direct": false,
            "version": "18.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/resolve-extends",
            "direct": false,
            "version": "18.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/rules",
            "direct": false,
            "version": "18.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/to-lines",
            "direct": false,
            "version": "18.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/top-level",
            "direct": false,
            "version": "18.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/types",
            "direct": false,
            "version": "18.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@dabh/diagnostics",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint-community/eslint-utils",
            "direct": false,
            "version": "4.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint-community/regexpp",
            "direct": false,
            "version": "4.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/eslintrc",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/js",
            "direct": false,
            "version": "8.50.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/js",
            "direct": false,
            "version": "8.57.1",
            "ecosystem": "npm"
          },
          {
            "name": "@grnsft/if-plugins",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@grnsft/if-plugins",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@grnsft/if-unofficial-plugins",
            "direct": false,
            "version": "0.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@grnsft/if-unofficial-plugins",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/config-array",
            "direct": false,
            "version": "0.11.14",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/config-array",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/module-importer",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/object-schema",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@isaacs/cliui",
            "direct": false,
            "version": "8.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@istanbuljs/load-nyc-config",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@istanbuljs/schema",
            "direct": false,
            "version": "0.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/console",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/core",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/environment",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/expect",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/expect-utils",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/fake-timers",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/globals",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/reporters",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/schemas",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/source-map",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/test-result",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/test-sequencer",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/transform",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/types",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/gen-mapping",
            "direct": false,
            "version": "0.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/resolve-uri",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/set-array",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.4.15",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/trace-mapping",
            "direct": false,
            "version": "0.3.20",
            "ecosystem": "npm"
          },
          {
            "name": "@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": "@pkgr/utils",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "@sinclair/typebox",
            "direct": false,
            "version": "0.27.8",
            "ecosystem": "npm"
          },
          {
            "name": "@sinonjs/commons",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@sinonjs/fake-timers",
            "direct": false,
            "version": "10.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/babel__core",
            "direct": false,
            "version": "7.20.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/babel__generator",
            "direct": false,
            "version": "7.6.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/babel__template",
            "direct": false,
            "version": "7.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/babel__traverse",
            "direct": false,
            "version": "7.20.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/body-parser",
            "direct": false,
            "version": "1.19.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/connect",
            "direct": false,
            "version": "3.4.38",
            "ecosystem": "npm"
          },
          {
            "name": "@types/express",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/express-serve-static-core",
            "direct": false,
            "version": "5.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/graceful-fs",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/http-errors",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/istanbul-lib-coverage",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/istanbul-lib-report",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/istanbul-reports",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/jest",
            "direct": false,
            "version": "29.5.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/js-yaml",
            "direct": false,
            "version": "4.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/json-schema",
            "direct": false,
            "version": "7.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@types/luxon",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/mime",
            "direct": false,
            "version": "1.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/minimist",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "20.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/normalize-package-data",
            "direct": false,
            "version": "2.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/qs",
            "direct": false,
            "version": "6.9.18",
            "ecosystem": "npm"
          },
          {
            "name": "@types/range-parser",
            "direct": false,
            "version": "1.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/semver",
            "direct": false,
            "version": "7.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/send",
            "direct": false,
            "version": "0.17.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/serve-static",
            "direct": false,
            "version": "1.15.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/stack-utils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/triple-beam",
            "direct": false,
            "version": "1.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/yargs",
            "direct": false,
            "version": "17.0.31",
            "ecosystem": "npm"
          },
          {
            "name": "@types/yargs-parser",
            "direct": false,
            "version": "21.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/eslint-plugin",
            "direct": false,
            "version": "5.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/parser",
            "direct": false,
            "version": "5.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/scope-manager",
            "direct": false,
            "version": "5.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/type-utils",
            "direct": false,
            "version": "5.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/types",
            "direct": false,
            "version": "5.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/typescript-estree",
            "direct": false,
            "version": "5.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/utils",
            "direct": false,
            "version": "5.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/visitor-keys",
            "direct": false,
            "version": "5.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@ungap/structured-clone",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "accepts",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.16.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-jsx",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "6.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "8.12.0",
            "ecosystem": "npm"
          },
          {
            "name": "alce",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-escapes",
            "direct": false,
            "version": "4.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-escapes",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "6.1.0",
            "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": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "6.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "anymatch",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "1.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "array-back",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "array-back",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "array-ify",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "array-union",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "arrify",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "async",
            "direct": false,
            "version": "3.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "asynckit",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "axios-mock-adapter",
            "direct": false,
            "version": "1.22.0",
            "ecosystem": "npm"
          },
          {
            "name": "babel-jest",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-istanbul",
            "direct": false,
            "version": "6.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-jest-hoist",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "babel-preset-current-node-syntax",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "babel-preset-jest",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "big-integer",
            "direct": false,
            "version": "1.6.51",
            "ecosystem": "npm"
          },
          {
            "name": "body-parser",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "bplist-parser",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.12",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "braces",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "browserslist",
            "direct": false,
            "version": "4.22.1",
            "ecosystem": "npm"
          },
          {
            "name": "bs-logger",
            "direct": false,
            "version": "0.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "bser",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-from",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "bundle-name",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "bytes",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind-apply-helpers",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "call-bound",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "callsites",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "camelcase",
            "direct": false,
            "version": "5.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "camelcase",
            "direct": false,
            "version": "6.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "camelcase-keys",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "caniuse-lite",
            "direct": false,
            "version": "1.0.30001561",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "char-regex",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "chardet",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "ci-info",
            "direct": false,
            "version": "3.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "cjs-module-lexer",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "cli-cursor",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-cursor",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-truncate",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-width",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "co",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "collect-v8-coverage",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "color",
            "direct": false,
            "version": "3.2.1",
            "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": "color-string",
            "direct": false,
            "version": "1.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "colorette",
            "direct": false,
            "version": "2.0.20",
            "ecosystem": "npm"
          },
          {
            "name": "colorspace",
            "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": "6.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "12.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "compare-func",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "concat-map",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "content-disposition",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "content-type",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-angular",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-conventionalcommits",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-commits-parser",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "1.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cookie",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "cookie-signature",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "cosmiconfig",
            "direct": false,
            "version": "8.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "cosmiconfig-typescript-loader",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "create-jest",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "cross-env",
            "direct": false,
            "version": "7.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "dargs",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.3.7",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "decamelize",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "decamelize-keys",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "dedent",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "deep-extend",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "deep-is",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "deepmerge",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "default-browser",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "default-browser-id",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "define-lazy-prop",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "delayed-stream",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "depd",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-indent",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-newline",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "diff-sequences",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "dir-glob",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "doctrine",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "dot-prop",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "dunder-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "eastasianwidth",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "ee-first",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "electron-to-chromium",
            "direct": false,
            "version": "1.4.581",
            "ecosystem": "npm"
          },
          {
            "name": "emittery",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "10.4.0",
            "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": "enabled",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "encodeurl",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "environment",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "error-ex",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "es-define-property",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-errors",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-object-atoms",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "escape-html",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint",
            "direct": false,
            "version": "8.50.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint",
            "direct": false,
            "version": "8.57.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-config-prettier",
            "direct": false,
            "version": "9.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-es",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-node",
            "direct": false,
            "version": "11.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-prettier",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-scope",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-scope",
            "direct": false,
            "version": "7.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-utils",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "3.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "espree",
            "direct": false,
            "version": "9.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "esprima",
            "direct": false,
            "version": "1.2.5",
            "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": "1.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "estraverse",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estraverse",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "esutils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "etag",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "eventemitter3",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "execa",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "execa",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "execa",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "exit",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "expect",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "extend-object",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "external-editor",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-diff",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-glob",
            "direct": false,
            "version": "3.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "fast-json-stable-stringify",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-levenshtein",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "fastq",
            "direct": false,
            "version": "1.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "fb-watchman",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "fecha",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "figures",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "file-entry-cache",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "fill-range",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "finalhandler",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "find-replace",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fixpack",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "flat-cache",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "flatted",
            "direct": false,
            "version": "3.2.9",
            "ecosystem": "npm"
          },
          {
            "name": "fn.name",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "follow-redirects",
            "direct": false,
            "version": "1.15.6",
            "ecosystem": "npm"
          },
          {
            "name": "foreground-child",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "form-data",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "forwarded",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "fresh",
            "direct": false,
            "version": "2.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": "gensync",
            "direct": false,
            "version": "1.0.0-beta.2",
            "ecosystem": "npm"
          },
          {
            "name": "get-caller-file",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "get-east-asian-width",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-intrinsic",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-package-type",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-stream",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-stream",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "git-raw-commits",
            "direct": false,
            "version": "2.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "10.3.10",
            "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": "global-dirs",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "globals",
            "direct": false,
            "version": "11.12.0",
            "ecosystem": "npm"
          },
          {
            "name": "globals",
            "direct": false,
            "version": "13.24.0",
            "ecosystem": "npm"
          },
          {
            "name": "globby",
            "direct": false,
            "version": "11.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "graphemer",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "gts",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "hard-rejection",
            "direct": false,
            "version": "2.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-symbols",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "hasown",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hosted-git-info",
            "direct": false,
            "version": "2.8.9",
            "ecosystem": "npm"
          },
          {
            "name": "hosted-git-info",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "html-escaper",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "http-errors",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "human-signals",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "human-signals",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "human-signals",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "husky",
            "direct": false,
            "version": "8.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.4.24",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "5.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "import-fresh",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "import-local",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "imurmurhash",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "indent-string",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "inflight",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ini",
            "direct": false,
            "version": "1.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "inquirer",
            "direct": false,
            "version": "7.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "ipaddr.js",
            "direct": false,
            "version": "1.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-arrayish",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-arrayish",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-buffer",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "is-core-module",
            "direct": false,
            "version": "2.13.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-docker",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-docker",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-extglob",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-generator-fn",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-glob",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-inside-container",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-number",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-obj",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-path-inside",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-plain-obj",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-promise",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-stream",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-stream",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-text-path",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-wsl",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-coverage",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-instrument",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-instrument",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-report",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-source-maps",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-reports",
            "direct": false,
            "version": "3.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "jackspeak",
            "direct": false,
            "version": "2.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "jest",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-changed-files",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-circus",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-cli",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-config",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-diff",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-docblock",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-each",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-environment-node",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-get-type",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "jest-haste-map",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-leak-detector",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-matcher-utils",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-message-util",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-mock",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-pnp-resolver",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "jest-regex-util",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "jest-resolve",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-resolve-dependencies",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-runner",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-runtime",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-snapshot",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-util",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-validate",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-watcher",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-worker",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jiti",
            "direct": false,
            "version": "1.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsesc",
            "direct": false,
            "version": "2.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "json-buffer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-parse-even-better-errors",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-stable-stringify-without-jsonify",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json5",
            "direct": false,
            "version": "2.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "jsonparse",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "JSONStream",
            "direct": false,
            "version": "1.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "keyv",
            "direct": false,
            "version": "4.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "kind-of",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "kleur",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "kuler",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "leven",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "levn",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "lilconfig",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "lines-and-columns",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "lint-staged",
            "direct": false,
            "version": "15.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "listr2",
            "direct": false,
            "version": "8.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash",
            "direct": false,
            "version": "4.17.21",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.camelcase",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.isfunction",
            "direct": false,
            "version": "3.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.isplainobject",
            "direct": false,
            "version": "4.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.kebabcase",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.memoize",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.merge",
            "direct": false,
            "version": "4.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.mergewith",
            "direct": false,
            "version": "4.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.snakecase",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.startcase",
            "direct": false,
            "version": "4.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.uniq",
            "direct": false,
            "version": "4.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.upperfirst",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "log-update",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "logform",
            "direct": false,
            "version": "2.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "10.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "make-dir",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "make-error",
            "direct": false,
            "version": "1.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "makeerror",
            "direct": false,
            "version": "1.0.12",
            "ecosystem": "npm"
          },
          {
            "name": "map-obj",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "map-obj",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "media-typer",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "meow",
            "direct": false,
            "version": "12.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "meow",
            "direct": false,
            "version": "8.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "meow",
            "direct": false,
            "version": "9.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge-descriptors",
            "direct": false,
            "version": "2.0.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-db",
            "direct": false,
            "version": "1.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "2.1.35",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-fn",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-fn",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-function",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "min-indent",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "9.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "minimist",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "minimist-options",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "minipass",
            "direct": false,
            "version": "7.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "mute-stream",
            "direct": false,
            "version": "0.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "natural-compare",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "natural-compare-lite",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "ncp",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "negotiator",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-int64",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-releases",
            "direct": false,
            "version": "2.0.13",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-package-data",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-package-data",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-path",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "npm-run-path",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "npm-run-path",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "npm-run-path",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "object-inspect",
            "direct": false,
            "version": "1.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "on-finished",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "once",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "one-time",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "onetime",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "onetime",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "onetime",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "open",
            "direct": false,
            "version": "9.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "optionator",
            "direct": false,
            "version": "0.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "os-tmpdir",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-try",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "parent-module",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse-json",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "parseurl",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "path-exists",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-is-absolute",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-parse",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "path-scurry",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-to-regexp",
            "direct": false,
            "version": "8.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-type",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "pidtree",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "pirates",
            "direct": false,
            "version": "4.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "pkg-dir",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "prelude-ls",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "prettier",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "prettier-linter-helpers",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "pretty-format",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "prompts",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "proxy-addr",
            "direct": false,
            "version": "2.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "proxy-from-env",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "punycode",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "pure-rand",
            "direct": false,
            "version": "6.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "qs",
            "direct": false,
            "version": "6.14.0",
            "ecosystem": "npm"
          },
          {
            "name": "queue-microtask",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "quick-lru",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "range-parser",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "raw-body",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "rc",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "react-is",
            "direct": false,
            "version": "18.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "read-pkg",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "read-pkg-up",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "readable-stream",
            "direct": false,
            "version": "3.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "redent",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "reduce-flatten",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "regexpp",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "require-directory",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "require-from-string",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "1.22.8",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-cwd",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-from",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-from",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-global",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve.exports",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "restore-cursor",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "restore-cursor",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "reusify",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "rfdc",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "rimraf",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "rimraf",
            "direct": false,
            "version": "5.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "router",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "run-applescript",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "run-async",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "run-parallel",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "rxjs",
            "direct": false,
            "version": "6.6.7",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "safe-stable-stringify",
            "direct": false,
            "version": "2.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "safer-buffer",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "5.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "6.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "send",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "serve-static",
            "direct": false,
            "version": "2.2.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": "simple-swizzle",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "sisteransi",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "slash",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "slice-ansi",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "slice-ansi",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-support",
            "direct": false,
            "version": "0.5.13",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-correct",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-exceptions",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-expression-parse",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-license-ids",
            "direct": false,
            "version": "3.0.16",
            "ecosystem": "npm"
          },
          {
            "name": "split2",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "split2",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "sprintf-js",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "stack-trace",
            "direct": false,
            "version": "0.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "stack-utils",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "statuses",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "string-argv",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "string-format",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "string-length",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "string_decoder",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-bom",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-final-newline",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-final-newline",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-indent",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-json-comments",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-json-comments",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "5.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "8.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "supports-preserve-symlinks-flag",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "synckit",
            "direct": false,
            "version": "0.8.5",
            "ecosystem": "npm"
          },
          {
            "name": "table-layout",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "test-exclude",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "text-extensions",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "text-hex",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "text-table",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "through",
            "direct": false,
            "version": "2.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "through2",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "titleize",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "tmp",
            "direct": false,
            "version": "0.0.33",
            "ecosystem": "npm"
          },
          {
            "name": "tmpl",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "to-regex-range",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "toidentifier",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "trim-newlines",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "triple-beam",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "ts-jest",
            "direct": false,
            "version": "29.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "tsutils",
            "direct": false,
            "version": "3.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-check",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-detect",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.18.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.20.2",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-is",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "typical",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "typical",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "5.26.5",
            "ecosystem": "npm"
          },
          {
            "name": "unpipe",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "untildify",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "update-browserslist-db",
            "direct": false,
            "version": "1.0.13",
            "ecosystem": "npm"
          },
          {
            "name": "uri-js",
            "direct": false,
            "version": "4.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "util-deprecate",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "v8-to-istanbul",
            "direct": false,
            "version": "9.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "validate-npm-package-license",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "vary",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "walker",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "winston-transport",
            "direct": false,
            "version": "4.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "wordwrapjs",
            "direct": false,
            "version": "4.0.1",
            "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",
            "direct": false,
            "version": "9.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrappy",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "write-file-atomic",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "y18n",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "yallist",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "yallist",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "2.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "17.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "20.2.9",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "21.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "yocto-queue",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 715,
        "direct_count": 12,
        "indirect_count": 703
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 435,
        "open_issues": 38,
        "closed_ratio": 0.943,
        "closed_issues": 625,
        "closed_unmerged_prs": 33
      },
      "bus_factor": 2,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "narekhovhannisyan",
          "commits": 1569,
          "avatar_url": "https://avatars.githubusercontent.com/u/24733687?v=4"
        },
        {
          "type": "User",
          "login": "jmcook1186",
          "commits": 884,
          "avatar_url": "https://avatars.githubusercontent.com/u/33655003?v=4"
        },
        {
          "type": "User",
          "login": "manushak",
          "commits": 588,
          "avatar_url": "https://avatars.githubusercontent.com/u/14834338?v=4"
        },
        {
          "type": "User",
          "login": "gnanakeethan",
          "commits": 265,
          "avatar_url": "https://avatars.githubusercontent.com/u/2353181?v=4"
        },
        {
          "type": "User",
          "login": "MariamKhalatova",
          "commits": 137,
          "avatar_url": "https://avatars.githubusercontent.com/u/109615222?v=4"
        },
        {
          "type": "User",
          "login": "jawache",
          "commits": 22,
          "avatar_url": "https://avatars.githubusercontent.com/u/897523?v=4"
        },
        {
          "type": "User",
          "login": "jamescrowley",
          "commits": 22,
          "avatar_url": "https://avatars.githubusercontent.com/u/509533?v=4"
        },
        {
          "type": "User",
          "login": "pazbardanl",
          "commits": 20,
          "avatar_url": "https://avatars.githubusercontent.com/u/105206269?v=4"
        },
        {
          "type": "User",
          "login": "kariya-mitsuru",
          "commits": 19,
          "avatar_url": "https://avatars.githubusercontent.com/u/2217224?v=4"
        },
        {
          "type": "User",
          "login": "srini1978",
          "commits": 9,
          "avatar_url": "https://avatars.githubusercontent.com/u/10396742?v=4"
        }
      ],
      "contributors_sampled": 25,
      "top_contributor_share": 0.44
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "dispatch-integration-test.yml",
        "nodejs-ci.yml",
        "publish-helm-chart.yml",
        "release.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [
        ".eslintrc.json"
      ],
      "has_editorconfig": true,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 5,
            "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": 5,
            "reason": "8 out of 14 merged PRs checked by a CI test -- score normalized to 5",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 7,
            "reason": "Found 11/15 approved changesets -- score normalized to 7",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 10 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": 7,
            "reason": "9 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 7",
            "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": 1,
            "reason": "dependency not pinned by hash detected -- score normalized to 1",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 6,
            "reason": "SAST tool is not run on all commits -- score normalized to 6",
            "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": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "60 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "ba68bda3f59a4df907e9b709414e53c1fc116ff9",
        "ran_at": "2026-07-31T10:08:48Z",
        "aggregate_score": 5,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-28T08:05:46Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-06-27T13:59:25Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 604,
          "created_at": "2024-04-10T09:30:27Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 687,
          "created_at": "2024-04-29T11:47:09Z",
          "last_comment_at": "2024-05-01T09:35:48Z",
          "last_comment_author": "jmcook1186"
        },
        {
          "number": 689,
          "created_at": "2024-05-01T09:48:29Z",
          "last_comment_at": "2024-05-02T08:19:37Z",
          "last_comment_author": "jmcook1186"
        },
        {
          "number": 714,
          "created_at": "2024-05-16T13:03:06Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 716,
          "created_at": "2024-05-16T21:01:09Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 745,
          "created_at": "2024-05-30T14:20:53Z",
          "last_comment_at": "2024-07-05T14:08:40Z",
          "last_comment_author": "jmcook1186"
        },
        {
          "number": 763,
          "created_at": "2024-06-03T12:55:13Z",
          "last_comment_at": "2024-06-27T11:27:14Z",
          "last_comment_author": "zanete"
        },
        {
          "number": 779,
          "created_at": "2024-06-05T13:52:23Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 780,
          "created_at": "2024-06-05T14:06:30Z",
          "last_comment_at": "2024-10-17T06:42:22Z",
          "last_comment_author": "bvickers7"
        },
        {
          "number": 822,
          "created_at": "2024-06-11T20:09:39Z",
          "last_comment_at": "2024-08-12T07:54:34Z",
          "last_comment_author": "zanete"
        },
        {
          "number": 825,
          "created_at": "2024-06-11T20:09:47Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 828,
          "created_at": "2024-06-12T12:59:01Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 852,
          "created_at": "2024-06-20T08:59:09Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 879,
          "created_at": "2024-07-04T11:40:35Z",
          "last_comment_at": "2024-09-09T12:11:36Z",
          "last_comment_author": "zanete"
        },
        {
          "number": 899,
          "created_at": "2024-07-10T08:32:22Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 920,
          "created_at": "2024-07-24T12:14:04Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 924,
          "created_at": "2024-07-29T14:14:53Z",
          "last_comment_at": "2024-11-08T09:17:37Z",
          "last_comment_author": "zanete"
        },
        {
          "number": 979,
          "created_at": "2024-08-22T09:21:12Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 982,
          "created_at": "2024-08-22T11:11:10Z",
          "last_comment_at": "2024-08-30T08:07:30Z",
          "last_comment_author": "zanete"
        },
        {
          "number": 983,
          "created_at": "2024-08-22T11:22:32Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/Green-Software-Foundation/if",
    "host": "github.com",
    "name": "if",
    "owner": "Green-Software-Foundation"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "excellent",
      "name": "Overall health",
      "note": "The weighted overall 68 is calibrated to 80 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 68,
            "calibrated": 80,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 80,
      "inputs": {
        "security": 60,
        "vitality": 57,
        "community": 62,
        "governance": 80,
        "calibration": "2026-08-02",
        "engineering": 78,
        "ai_readiness": 61,
        "weighted_overall_raw": 68
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 57,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "at_risk",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 34,
            "inputs": {
              "commits_last_year": 8,
              "human_commit_share": 1,
              "days_since_last_push": 33,
              "active_weeks_last_year": 1
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 33 days ago",
                "points": 18,
                "status": "partial",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 33
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "1/52 weeks with commits",
                "points": 0.7,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 1
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "8 commits in the last year",
                "points": 8.6,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 8
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "9 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 7",
                "points": 7,
                "status": "partial",
                "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": 92,
            "inputs": {
              "releases_count": 35,
              "latest_release_tag": "v1.1.1",
              "releases_from_tags": false,
              "days_since_latest_release": 33,
              "mean_days_between_releases": 70.1
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "35 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 35
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 33 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 33
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~70.1 days",
                "points": 19.8,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 70.1
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "exceptional",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 36,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 36 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 36
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 62,
        "weight": 0.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 56,
            "inputs": {
              "forks": 51,
              "stars": 183,
              "watchers": 10,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "183 stars",
                "points": 36.7,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 183
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "51 forks",
                "points": 14.2,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 51
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "10 watchers",
                "points": 5.3,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 77,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "readme_badges": null,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "readme_badge_services": [],
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "weak",
            "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": 49,
            "inputs": {
              "packages": [
                "@grnsft/if"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 920
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "920 downloads/month across npm",
                "points": 39.5,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 920,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "excellent",
        "name": "Sustainability & Governance",
        "value": 80,
        "weight": 0.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 61,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 25,
              "top_contributor_share": 0.44
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "2 contributor(s) cover half of all commits",
                "points": 25.2,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 44% of commits",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 44
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "25 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 25
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 10 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "excellent",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Newcomer PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "newcomer_pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 90,
            "inputs": {
              "merged_prs": 435,
              "open_issues": 38,
              "closed_issues": 625,
              "prs_merged_7d": null,
              "prs_decided_7d": null,
              "prs_merged_30d": null,
              "prs_decided_30d": null,
              "issue_closed_ratio": 0.943,
              "closed_unmerged_prs": 33,
              "first_time_authors_30d": null,
              "first_time_prs_merged_30d": null,
              "first_time_prs_decided_30d": null
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "94% of issues closed",
                "points": 39.6,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 94
                    }
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "435/468 decided PRs merged",
                "points": 27.9,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 435,
                      "decided": 468
                    }
                  }
                ],
                "max_points": 30
              },
              {
                "key": "newcomer_pr_acceptance",
                "name": "Newcomer PR acceptance",
                "detail": "no first-time contributor's PR decided in 30d",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_newcomer_prs",
                    "params": {
                      "days": 30
                    }
                  }
                ],
                "max_points": 13
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 11/15 approved changesets -- score normalized to 7",
                "points": 10.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "followers": 1149,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "Green-Software-Foundation",
              "public_repos": 91,
              "account_age_days": 1897
            },
            "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": "1,149 followers of Green-Software-Foundation",
                "points": 22,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 1149,
                      "login": "Green-Software-Foundation"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "91 public repos, account ~5 yr old",
                "points": 23.4,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 91
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 5
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "exceptional",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@grnsft/if"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 33
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 33 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 33
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "41 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 41
                    }
                  }
                ],
                "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": 78,
        "weight": 0.19,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "4 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": ".eslintrc.json",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc.json"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "8 out of 14 merged PRs checked by a CI test -- score normalized to 5",
                "points": 10,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "topics": [
                "framework",
                "impact"
              ],
              "has_wiki": true,
              "homepage": "https://if.greensoftware.foundation/",
              "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://if.greensoftware.foundation/",
                "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": "2 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 60,
        "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": 50,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 5
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 3.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "8 out of 14 merged PRs checked by a CI test -- score normalized to 5",
                "points": 1.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 11/15 approved changesets -- score normalized to 7",
                "points": 5.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 10 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": "9 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 7",
                "points": 5.2,
                "status": "partial",
                "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 1",
                "points": 0.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 6",
                "points": 3,
                "status": "partial",
                "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "60 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "exceptional",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:@grnsft/if@1.1.1 runtime dependency closure — what installing the published package pulls in — 143 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:@grnsft/if@1.1.1",
                  "assessed": 143
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 143,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "exceptional",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 143,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "exceptional",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "commit_weight_rule": {
                "min_commits": 50,
                "min_commit_share": 0.1
              },
              "review_only_matches": 0,
              "below_threshold_exposures": [],
              "assessed_self_published_locations": 8
            },
            "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.04,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "weak",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.93,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "93 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 93,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": true,
              "has_linter_config": true,
              "typecheck_configs": [
                "tsconfig.json"
              ],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": ".eslintrc.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "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": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "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 1",
                "points": 1,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "exceptional",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 31733,
              "source_files_sampled": 185,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "TypeScript (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/185 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 185,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "excellent",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": [
                "openapi.yaml"
              ]
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": "openapi.yaml",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "openapi.yaml"
                    }
                  }
                ],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
      }
    ],
    "classification": {
      "labels": [
        "network-service",
        "library",
        "framework"
      ],
      "scores": {
        "library": 6,
        "framework": 4,
        "network-service": 7
      },
      "primary": "network-service",
      "evidence": [
        {
          "tier": "distribution",
          "label": "library",
          "source": "registry:npm",
          "weight": 6
        },
        {
          "tier": "dependencies",
          "label": "network-service",
          "source": "dep:express",
          "weight": 4
        },
        {
          "tier": "structure",
          "label": "network-service",
          "source": "api_schema",
          "weight": 3
        },
        {
          "tier": "description",
          "label": "framework",
          "source": "description:framework",
          "weight": 2
        },
        {
          "tier": "tags",
          "label": "framework",
          "source": "tag:framework",
          "weight": 2
        }
      ],
      "artifacts": [],
      "confidence": "medium",
      "host_extension": false,
      "runs_as_process": true,
      "consumed_by_code": true
    },
    "metrics_version": "2.3.1"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-31T10:09:17.903337Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/g/Green-Software-Foundation/if.svg",
  "full_name": "Green-Software-Foundation/if",
  "license_state": "standard",
  "license_spdx": "MIT"
}

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

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

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