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

showdownjs / showdown

A bidirectional Markdown to HTML to Markdown converter written in Javascript

JavaScript · HTMLMIT★ 14 873 зірки⑂ 1 568 форківз лист. 2008 р.Переглянути на GitHub ↗

showdownjs/showdown має індекс здоров’я 71 зі 100, що відповідає смузі «Добрий». Найвищий показник — Community & Adoption (89/100), найнижчий — AI Readiness (53/100). Останнє оновлення було 3 дні тому. Більшість нещодавньої роботи виконує один учасник.

71
загалом / 100
Добрий

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

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

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

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

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

Власність

ShowdownJSОрганізація
34 підписники14 публічних репозиторіївз лист. 2012 р.

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

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

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікаціяТеги
npmshowdown2.1.05 622 437621554 дні томуmarkdownconverter

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

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

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

57Помірний · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 3 дн. тому
3.5/36Ритм комітів — 5/52 тижнів із комітами
18/18Обсяг комітів — 188 комітів за останній рік
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10
Використані вхідні дані
commits_last_year188
human_commit_share1
days_since_last_push3
active_weeks_last_year5

Дисципліна релізів

40У зоні ризику
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 54 релізів
0/36Свіжість релізів — останній реліз 1 554 дн. тому
12.6/27Ритм релізів — реліз кожні ~176,8 дн.
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Використані вхідні дані
releases_count54
latest_release_tag2.1.0
releases_from_tagsні
days_since_latest_release1 554
mean_days_between_releases176,8

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

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

89Відмінний · 18% загального індексу
Як обчислюється оцінка
60/60Зірки — 14 873 зірок
25/25Форки — 1 568 форків
12.6/15Спостерігачі — 184 спостерігачів
Використані вхідні дані
forks1 568
stars14 873
watchers184
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
0/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
has_contributingтак
has_issue_templateні
has_code_of_conductні
has_pull_request_templateні
Як обчислюється оцінка
80/80Щомісячні завантаження — 5 622 437 завантажень/місяць у npm
0/20Залежні пакети в реєстрі — ця екосистема цього не повідомляє
Використані вхідні дані
packagesshowdown
dependents
ecosystemsnpm
total_downloads
monthly_downloads5 622 437
Виключено з оцінювання (немає даних або не застосовно): Залежні пакети в реєстрі. Залишкові ваги перенормовано.

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

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

53Помірний · 24% загального індексу
Як обчислюється оцінка
9/54Бас-фактор — на 1 контриб’ютор(ів) припадає половина всіх комітів
4.2/22.5Розподіл комітів — головний контриб’ютор — автор 81% комітів
13.5/13.5Широта контриб’юторів — 74 контриб’юторів
10/10OpenSSF Scorecard: Contributors — project has 4 contributing companies or organizations
Використані вхідні дані
bus_factor1
contributors_sampled74
top_contributor_share0,813
Як обчислюється оцінка
33.1/46.8Вирішення issue — закрито 71% issue
18.4/38.3Прийняття PR — злито 143/298 вирішених PR
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Використані вхідні дані
merged_prs143
open_issues218
closed_issues528
issue_closed_ratio0,708
closed_unmerged_prs155
Як обчислюється оцінка
30/30Підтримка власника — у власності організації
0/20Верифікований домен
11.1/25Охоплення власника — 34 підписників у showdownjs
20.6/25Послужний список — 14 публічних репозиторіїв, вік облікового запису ~13 р.
Використані вхідні дані
followers34
owner_typeOrganization
is_verified
owner_loginshowdownjs
public_repos14
account_age_days5 004
Як обчислюється оцінка
25/25Опубліковано й доступно — 1 пакет(ів) у npm
4/35Свіжість публікацій — остання публікація 1 554 дн. тому
20/20Історія версій — 62 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packagesshowdown
ecosystemsnpm
any_deprecatedні
min_days_since_publish1 554

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

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

87Відмінний · 20% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 6 процес(ів) CI
24/24Наявні тести
16/16Конфігурація лінтера — eslint.config.mjs
0/9.6Pre-commit-хуки
6.4/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — немає даних
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigтак
has_linter_configтак
has_precommit_configні
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: CI-Tests. Залишкові ваги перенормовано.

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

85Відмінний
Як обчислюється оцінка
30/30README
25/25Каталог документації
0/15Сайт документації / домашня сторінка
10/10Опис репозиторію
10/10Теми — 9 тем
10/10Wiki
Використані вхідні дані
topicsshowdown, javascript, markdown, markdown-parser, markdown-flavors, gfm, html, converter, html-converter
has_wikiтак
homepage
has_readmeтак
has_docs_dirтак
has_descriptionтак

Безпека

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

77Добрий · 16% загального індексу
Як обчислюється оцінка
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — немає даних
0/2.5CI-Tests — немає даних
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 4 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Ліцензія — license file detected
7.5/7.5Maintained — 30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — немає даних
5/5Pinned-Dependencies — all dependencies are pinned
5/5SAST — SAST tool detected: CodeQL
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
6.8/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
4.5/7.5Vulnerabilities — 4 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate7,1
Виключено з оцінювання (немає даних або не застосовно): branch_protection, ci_tests, packaging. Залишкові ваги перенормовано.
Як обчислюється оцінка
35/35Прямі залежності без відомих сповіщень — жодна пряма залежність не має відомих сповіщень
25/25Непрямі залежності без відомих сповіщень — жодна непряма залежність не має відомих сповіщень
0/40Немає задавнених сповіщень — жодне сповіщення не має дати публікації
Використані вхідні дані
sourceosv
advisories0
affected_packages0
assessed_packages1
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Виключено з оцінювання (немає даних або не застосовно): Немає задавнених сповіщень. Залишкові ваги перенормовано. Звірено з runtime-замиканням залежностей npm:showdown@2.1.0 — тим, що тягне за собою встановлення опублікованого пакета, — 1 пакетів. Досяжність не аналізується.

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

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

53Помірний · 0% загального індексу
Як обчислюється оцінка
0/45Інструкції для агентів — немає CLAUDE.md / AGENTS.md / правил редактора
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 87 з 100 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,87
agent_instruction_files
agent_instruction_max_bytes
Як обчислюється оцінка
0/18Розгортання однією командою
22/22Автоматизовані тести
11/11Конфігурація лінтера / форматера — eslint.config.mjs
0/11Статична перевірка типів
10/10Відтворюване середовище — lockfile
4/10Підтверджена практика роботи з агентами — 2 з останніх 100 комітів створено агентом або з його зазначенням
5/8Автоматизоване супроводження — автоматизацію залежностей налаштовано, але у вибірці комітів її не видно
10/10OpenSSF Scorecard: Pinned-Dependencies — all dependencies are pinned
Використані вхідні дані
has_nixні
has_testsтак
lockfilespackage-lock.json
has_dockerfileні
typed_languageні
bootstrap_files
has_devcontainerні
has_linter_configтак
typecheck_configs
agent_commit_share0,02
toolchain_manifests
dependency_bot_commit_share0
Як обчислюється оцінка
0/45Типізований код — JavaScript без конфігурації перевірки типів
54.5/55Керовані розміри файлів — 1/122 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languageJavaScript
largest_source_bytes111 256
source_files_sampled122
oversized_source_files1

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

14 873зірок GitHub
74контриб'юторів
188комітів за останні 12 місяців
3днів від останнього пушу
54релізів
1бас-фактор
218відкритих issue
npm, PyPIпакетних екосистем

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

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

Докладніше

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

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

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

4006008001 0001 2001 4001 6001 568102016-082021-082026-07
Мажорні 1Мінорні 6Патчі 26

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

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

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

10Binary-Artifactsno binaries found in the repo
н/дBranch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
н/дCI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
10Contributorsproject has 4 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10
н/дPackagingpackaging workflow not detected
10Pinned-Dependenciesall dependencies are pinned
10SASTSAST tool detected: CodeQL
10Security-Policysecurity policy file detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
9Token-Permissionsdetected GitHub workflow tokens with excessive permissions
6Vulnerabilities4 existing vulnerabilities detected
Прямі залежності 2
РеєстрПакетОбмеження версіїМаніфест
npmcommander^14.0.0package.json
npmhappy-dom^20.10.6package.json
Усі залежності 733

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

РеєстрПакетВерсіяЗв'язок
npmcommander14.0.3пряма
npmhappy-dom20.10.6пряма
npm@acemir/cssom0.9.31непряма
npm@asamuzakjp/css-color4.1.2непряма
npm@asamuzakjp/dom-selector6.8.1непряма
npm@asamuzakjp/nwsapi2.3.9непряма
npm@aws-sdk/checksums3.1000.11непряма
npm@aws-sdk/client-s33.1078.0непряма
npm@aws-sdk/core3.974.26непряма
npm@aws-sdk/credential-provider-env3.972.52непряма
npm@aws-sdk/credential-provider-http3.972.54непряма
npm@aws-sdk/credential-provider-ini3.972.59непряма
npm@aws-sdk/credential-provider-login3.972.58непряма
npm@aws-sdk/credential-provider-node3.972.61непряма
npm@aws-sdk/credential-provider-process3.972.52непряма
npm@aws-sdk/credential-provider-sso3.972.58непряма
npm@aws-sdk/credential-provider-web-identity3.972.58непряма
npm@aws-sdk/middleware-sdk-s33.972.57непряма
npm@aws-sdk/nested-clients3.997.26непряма
npm@aws-sdk/signature-v4-multi-region3.996.38непряма
npm@aws-sdk/token-providers3.1078.0непряма
npm@aws-sdk/types3.973.15непряма
npm@aws-sdk/xml-builder3.972.33непряма
npm@aws/lambda-invoke-store0.2.4непряма
npm@babel/code-frame7.29.7непряма
npm@babel/helper-validator-identifier7.29.7непряма
npm@blazediff/core1.9.1непряма
npm@colors/colors1.6.0непряма
npm@conventional-changelog/git-client2.7.0непряма
npm@csstools/color-helpers6.1.0непряма
npm@csstools/css-calc3.2.1непряма
npm@csstools/css-color-parser4.1.9непряма
npm@csstools/css-parser-algorithms4.0.0непряма
npm@csstools/css-syntax-patches-for-csstree1.1.6непряма
npm@csstools/css-tokenizer4.0.0непряма
npm@dabh/diagnostics2.0.8непряма
npm@emnapi/core1.11.1непряма
npm@emnapi/runtime1.11.1непряма
npm@emnapi/wasi-threads1.2.2непряма
npm@esbuild/aix-ppc640.28.1непряма
npm@esbuild/android-arm0.28.1непряма
npm@esbuild/android-arm640.28.1непряма
npm@esbuild/android-x640.28.1непряма
npm@esbuild/darwin-arm640.28.1непряма
npm@esbuild/darwin-x640.28.1непряма
npm@esbuild/freebsd-arm640.28.1непряма
npm@esbuild/freebsd-x640.28.1непряма
npm@esbuild/linux-arm0.28.1непряма
npm@esbuild/linux-arm640.28.1непряма
npm@esbuild/linux-ia320.28.1непряма
npm@esbuild/linux-loong640.28.1непряма
npm@esbuild/linux-mips64el0.28.1непряма
npm@esbuild/linux-ppc640.28.1непряма
npm@esbuild/linux-riscv640.28.1непряма
npm@esbuild/linux-s390x0.28.1непряма
npm@esbuild/linux-x640.28.1непряма
npm@esbuild/netbsd-arm640.28.1непряма
npm@esbuild/netbsd-x640.28.1непряма
npm@esbuild/openbsd-arm640.28.1непряма
npm@esbuild/openbsd-x640.28.1непряма
npm@esbuild/openharmony-arm640.28.1непряма
npm@esbuild/sunos-x640.28.1непряма
npm@esbuild/win32-arm640.28.1непряма
npm@esbuild/win32-ia320.28.1непряма
npm@esbuild/win32-x640.28.1непряма
npm@eslint-community/eslint-utils4.9.1непряма
npm@eslint-community/regexpp4.12.2непряма
npm@eslint/config-array0.23.5непряма
npm@eslint/config-helpers0.6.0непряма
npm@eslint/core1.2.1непряма
npm@eslint/js10.0.1непряма
npm@eslint/object-schema3.0.5непряма
npm@eslint/plugin-kit0.7.2непряма
npm@exodus/bytes1.15.1непряма
npm@google-cloud/compute5.3.0непряма
npm@google-cloud/container6.10.0непряма
npm@google-cloud/resource-manager6.3.0непряма
npm@grpc/grpc-js1.14.4непряма
npm@grpc/proto-loader0.7.15непряма
npm@grpc/proto-loader0.8.1непряма
npm@grpc/reflection1.0.4непряма
npm@humanfs/core0.19.2непряма
npm@humanfs/node0.16.8непряма
npm@humanfs/types0.15.0непряма
npm@humanwhocodes/module-importer1.0.1непряма
npm@humanwhocodes/retry0.4.3непряма
npm@hutson/parse-repository-url5.0.0непряма
npm@isaacs/cliui8.0.2непряма
npm@jridgewell/sourcemap-codec1.5.5непряма
npm@js-sdsl/ordered-map4.4.2непряма
npm@jsep-plugin/assignment1.3.0непряма
npm@jsep-plugin/regex1.0.4непряма
npm@kubernetes/client-node1.4.0непряма
npm@kwsites/file-exists1.1.1непряма
npm@kwsites/promise-deferred1.1.1непряма
npm@napi-rs/wasm-runtime1.1.6непряма
npm@open-draft/until1.0.3непряма
npm@oxc-project/types0.138.0непряма
npm@percy/appium-app2.1.0непряма
npm@percy/sdk-utils1.32.2непряма
npm@percy/selenium-webdriver2.2.6непряма
npm@pkgjs/parseargs0.11.0непряма
npm@playwright/test1.61.1непряма
npm@pnpm/config.env-replace1.1.0непряма
npm@pnpm/network.ca-file1.0.2непряма
npm@pnpm/npm-conf3.0.3непряма
npm@polka/url1.0.0-next.29непряма
npm@protobufjs/aspromise1.1.2непряма
npm@protobufjs/base641.1.2непряма
npm@protobufjs/codegen2.0.5непряма
npm@protobufjs/eventemitter1.1.1непряма
npm@protobufjs/fetch1.1.1непряма
npm@protobufjs/float1.0.2непряма
npm@protobufjs/path1.1.2непряма
npm@protobufjs/pool1.1.0непряма
npm@protobufjs/utf81.1.1непряма
npm@rolldown/binding-android-arm641.1.4непряма
npm@rolldown/binding-darwin-arm641.1.4непряма
npm@rolldown/binding-darwin-x641.1.4непряма
npm@rolldown/binding-freebsd-x641.1.4непряма
npm@rolldown/binding-linux-arm-gnueabihf1.1.4непряма
npm@rolldown/binding-linux-arm64-gnu1.1.4непряма
npm@rolldown/binding-linux-arm64-musl1.1.4непряма
npm@rolldown/binding-linux-ppc64-gnu1.1.4непряма
npm@rolldown/binding-linux-s390x-gnu1.1.4непряма
npm@rolldown/binding-linux-x64-gnu1.1.4непряма
npm@rolldown/binding-linux-x64-musl1.1.4непряма
npm@rolldown/binding-openharmony-arm641.1.4непряма
npm@rolldown/binding-wasm32-wasi1.1.4непряма
npm@rolldown/binding-win32-arm64-msvc1.1.4непряма
npm@rolldown/binding-win32-x64-msvc1.1.4непряма
npm@rolldown/pluginutils1.0.1непряма
npm@simple-git/args-pathspec1.0.3непряма
npm@simple-git/argv-parser1.1.1непряма
npm@simple-libs/child-process-utils1.0.2непряма
npm@simple-libs/stream-utils1.2.0непряма
npm@sindresorhus/is4.6.0непряма
npm@sindresorhus/is5.6.0непряма
npm@smithy/core3.29.0непряма
npm@smithy/credential-provider-imds4.4.5непряма
npm@smithy/fetch-http-handler5.6.2непряма
npm@smithy/node-http-handler4.9.2непряма
npm@smithy/signature-v45.6.1непряма
npm@smithy/types4.15.1непряма
npm@so-ric/colorspace1.1.6непряма
npm@standard-schema/spec1.1.0непряма
npm@stylistic/eslint-plugin5.10.0непряма
npm@szmarczak/http-timer4.0.6непряма
npm@szmarczak/http-timer5.0.1непряма
npm@tootallnate/quickjs-emscripten0.23.0непряма
npm@tybys/wasm-util0.10.3непряма
npm@types/cacheable-request6.0.3непряма
npm@types/chai5.2.3непряма
npm@types/deep-eql4.0.2непряма
npm@types/esrecurse4.3.1непряма
npm@types/estree1.0.9непряма
npm@types/http-cache-semantics4.2.0непряма
npm@types/js-yaml4.0.9непряма
npm@types/json-schema7.0.15непряма
npm@types/keyv3.1.4непряма
npm@types/node24.13.2непряма
npm@types/node-fetch2.6.13непряма
npm@types/normalize-package-data2.4.4непряма
npm@types/responselike1.0.3непряма
npm@types/stream-buffers3.0.8непряма
npm@types/triple-beam1.3.5непряма
npm@types/whatwg-mimetype3.0.2непряма
npm@types/ws8.18.1непряма
npm@typescript-eslint/types8.62.1непряма
npm@vitest/browser4.1.9непряма
npm@vitest/browser-playwright4.1.9непряма
npm@vitest/expect4.1.9непряма
npm@vitest/mocker4.1.9непряма
npm@vitest/pretty-format4.1.9непряма
npm@vitest/runner4.1.9непряма
npm@vitest/snapshot4.1.9непряма
npm@vitest/spy4.1.9непряма
npm@vitest/utils4.1.9непряма
npmabort-controller3.0.0непряма
npmacorn8.17.0непряма
npmacorn-jsx5.3.2непряма
npmadd-stream1.0.0непряма
npmagent-base6.0.2непряма
npmagent-base7.1.4непряма
npmajv6.15.0непряма
npmajv8.20.0непряма
npmansi-align3.0.1непряма
npmansi-regex5.0.1непряма
npmansi-regex6.2.2непряма
npmansi-styles4.3.0непряма
npmansi-styles6.2.3непряма
npmarchiver7.0.1непряма
npmarchiver-utils5.0.2непряма
npmargparse1.0.10непряма
npmargparse2.0.1непряма
npmarray-ify1.0.0непряма
npmassertion-error2.0.1непряма
npmast-types0.13.4непряма
npmastral-regex2.0.0непряма
npmasync3.2.6непряма
npmasynckit0.4.0непряма
npmb4a1.8.1непряма
npmbalanced-match1.0.2непряма
npmbalanced-match4.0.4непряма
npmbare-events2.9.1непряма
npmbare-fs4.7.2непряма
npmbare-os3.9.3непряма
npmbare-path3.0.1непряма
npmbare-stream2.13.3непряма
npmbare-url2.4.5непряма
npmbase64-js1.5.1непряма
npmbasic-ftp5.3.1непряма
npmbidi-js1.0.3непряма
npmbignumber.js9.3.1непряма
npmbluebird3.7.2непряма
npmboolbase1.0.0непряма
npmboolean3.2.0непряма
npmbowser2.14.1непряма
npmboxen7.1.1непряма
npmbrace-expansion2.1.1непряма
npmbrace-expansion5.0.7непряма
npmbrowserstack-local1.5.13непряма
npmbrowserstack-node-sdk1.60.1непряма
npmbuffer6.0.3непряма
npmbuffer-crc321.0.0непряма
npmbuffer-equal-constant-time1.0.1непряма
npmbuffer-image-size0.6.4непряма
npmcacheable-lookup5.0.4непряма
npmcacheable-lookup7.0.0непряма
npmcacheable-request10.2.14непряма
npmcacheable-request7.0.4непряма
npmcall-bind-apply-helpers1.0.2непряма
npmcall-bound1.0.4непряма
npmcamelcase7.0.1непряма
npmchai6.2.2непряма
npmchalk4.1.2непряма
npmchalk5.6.2непряма
npmcheerio1.0.0-rc.11непряма
npmcheerio-select2.1.0непряма
npmci-info3.9.0непряма
npmcli-boxes3.0.0непряма
npmcliui8.0.1непряма
npmclone-response1.0.3непряма
npmcolor5.0.3непряма
npmcolor-convert2.0.1непряма
npmcolor-convert3.1.3непряма
npmcolor-name1.1.4непряма
npmcolor-name2.1.0непряма
npmcolor-string2.1.4непряма
npmcombined-stream1.0.8непряма
npmcommonmark-spec0.31.2непряма
npmcompare-func2.0.0непряма
npmcompress-commons6.0.2непряма
npmconfig-chain1.1.13непряма
npmconfigstore6.0.0непряма
npmconventional-changelog6.0.0непряма
npmconventional-changelog-angular8.3.1непряма
npmconventional-changelog-atom5.1.0непряма
npmconventional-changelog-cli5.0.0непряма
npmconventional-changelog-codemirror5.1.0непряма
npmconventional-changelog-conventionalcommits8.0.0непряма
npmconventional-changelog-core8.0.0непряма
npmconventional-changelog-ember5.1.0непряма
npmconventional-changelog-eslint6.1.0непряма
npmconventional-changelog-express5.1.0непряма
npmconventional-changelog-jquery6.1.0непряма
npmconventional-changelog-jshint5.2.0непряма
npmconventional-changelog-preset-loader5.0.0непряма
npmconventional-changelog-writer8.4.0непряма
npmconventional-commits-filter5.0.0непряма
npmconventional-commits-parser6.4.0непряма
npmconvert-source-map2.0.0непряма
npmcore-util-is1.0.3непряма
npmcrc-321.2.2непряма
npmcrc32-stream6.0.0непряма
npmcross-spawn7.0.6непряма
npmcrypto-random-string4.0.0непряма
npmcss-select5.2.2непряма
npmcss-tree3.2.1непряма
npmcss-what6.2.2непряма
npmcssstyle5.3.7непряма
npmdata-uri-to-buffer4.0.1непряма
npmdata-uri-to-buffer6.0.2непряма
npmdata-urls6.0.1непряма
npmdebug4.4.3непряма
npmdecimal.js10.6.0непряма
npmdecompress-response6.0.0непряма
npmdeep-extend0.6.0непряма
npmdeep-is0.1.4непряма
npmdefer-to-connect2.0.1непряма
npmdefine-data-property1.1.4непряма
npmdefine-properties1.2.1непряма
npmdegenerator5.0.1непряма
npmdelayed-stream1.0.0непряма
npmdetect-libc2.1.2непряма
npmdetect-node2.1.0непряма
npmdiffable-html5.0.0непряма
npmdom-serializer0.2.2непряма
npmdom-serializer2.0.0непряма
npmdomelementtype1.3.1непряма
npmdomelementtype2.3.0непряма
npmdomhandler2.4.2непряма
npmdomhandler5.0.3непряма
npmdomutils1.7.0непряма
npmdomutils3.2.2непряма
npmdot-prop5.3.0непряма
npmdot-prop6.0.1непряма
npmdotenv16.6.1непряма
npmdunder-proto1.0.1непряма
npmduplexify4.1.3непряма
npmeastasianwidth0.2.0непряма
npmecdsa-sig-formatter1.0.11непряма
npmemittery0.11.0непряма
npmemoji-regex8.0.0непряма
npmemoji-regex9.2.2непряма
npmenabled2.0.0непряма
npmend-of-stream1.4.5непряма
npmentities1.1.2непряма
npmentities2.2.0непряма
npmentities4.5.0непряма
npmentities6.0.1непряма
npmentities7.0.1непряма
npmentities8.0.0непряма
npmes-define-property1.0.1непряма
npmes-errors1.3.0непряма
npmes-module-lexer2.2.0непряма
npmes-object-atoms1.1.2непряма
npmes-set-tostringtag2.1.0непряма
npmes6-error4.1.1непряма
npmesbuild0.28.1непряма
npmescalade3.2.0непряма
npmescape-goat4.0.0непряма
npmescape-string-regexp4.0.0непряма
npmescodegen2.1.0непряма
npmeslint10.6.0непряма
npmeslint-scope9.1.2непряма
npmeslint-visitor-keys3.4.3непряма
npmeslint-visitor-keys4.2.1непряма
npmeslint-visitor-keys5.0.1непряма
npmespree10.4.0непряма
npmespree11.2.0непряма
npmesprima4.0.1непряма
npmesquery1.7.0непряма
npmesrecurse4.3.0непряма
npmestraverse5.3.0непряма
npmestree-walker3.0.3непряма
npmesutils2.0.3непряма
npmevent-target-shim5.0.1непряма
npmevents3.3.0непряма
npmevents-universal1.0.1непряма
npmexeca5.1.1непряма
npmexpect-type1.4.0непряма
npmextend3.0.2непряма
npmfast-deep-equal3.1.3непряма
npmfast-fifo1.3.2непряма
npmfast-json-stable-stringify2.1.0непряма
npmfast-levenshtein2.0.6непряма
npmfast-uri3.1.3непряма
npmfdir6.5.0непряма
npmfecha4.2.3непряма
npmfetch-blob3.2.0непряма
npmfile-entry-cache8.0.0непряма
npmfind-up5.0.0непряма
npmfind-up-simple1.0.1непряма
npmflat-cache4.0.1непряма
npmflatted3.4.2непряма
npmfn.name1.1.0непряма
npmfollow-redirects1.16.0непряма
npmforeground-child3.3.1непряма
npmform-data4.0.6непряма
npmform-data-encoder2.1.4непряма
npmformdata-polyfill4.0.10непряма
npmfsevents2.3.2непряма
npmfsevents2.3.3непряма
npmfunction-bind1.1.2непряма
npmgaxios6.7.1непряма
npmgaxios7.1.3непряма
npmgaxios7.1.5непряма
npmgcp-metadata6.1.1непряма
npmgcp-metadata8.1.3непряма
npmget-caller-file2.0.5непряма
npmget-intrinsic1.3.0непряма
npmget-proto1.0.1непряма
npmget-stream5.2.0непряма
npmget-stream6.0.1непряма
npmget-uri6.0.5непряма
npmgetos3.2.1непряма
npmgit-last-commit1.0.1непряма
npmgit-raw-commits5.0.1непряма
npmgit-repo-info2.1.1непряма
npmgit-semver-tags8.0.1непряма
npmgitconfiglocal2.1.0непряма
npmglob10.5.0непряма
npmglob-parent6.0.2непряма
npmglobal-agent3.0.0непряма
npmglobal-dirs3.0.1непряма
npmglobals17.7.0непряма
npmglobalthis1.0.4непряма
npmgoogle-auth-library10.5.0непряма
npmgoogle-auth-library9.15.1непряма
npmgoogle-gax5.0.7непряма
npmgoogle-logging-utils0.0.2непряма
npmgoogle-logging-utils1.1.3непряма
npmgoogle-protobuf3.21.4непряма
npmgoogleapis126.0.1непряма
npmgoogleapis-common7.2.0непряма
npmgopd1.2.0непряма
npmgot11.8.6непряма
npmgot12.6.1непряма
npmgraceful-fs4.2.10непряма
npmgraceful-fs4.2.11непряма
npmgtoken7.1.0непряма
npmgtoken8.0.0непряма
npmhandlebars4.7.9непряма
npmhas-flag4.0.0непряма
npmhas-property-descriptors1.0.2непряма
npmhas-symbols1.1.0непряма
npmhas-tostringtag1.0.2непряма
npmhas-yarn3.0.0непряма
npmhasown2.0.4непряма
npmheaders-utils1.2.5непряма
npmhosted-git-info7.0.2непряма
npmhpagent1.2.0непряма
npmhtml-encoding-sniffer6.0.0непряма
npmhtmlparser23.10.1непряма
npmhtmlparser28.0.2непряма
npmhttp-cache-semantics4.2.0непряма
npmhttp-proxy-agent7.0.2непряма
npmhttp2-wrapper1.0.3непряма
npmhttp2-wrapper2.2.1непряма
npmhttps-proxy-agent5.0.1непряма
npmhttps-proxy-agent7.0.6непряма
npmhuman-signals2.1.0непряма
npmieee7541.2.1непряма
npmignore5.3.2непряма
npmimport-lazy4.0.0непряма
npmimurmurhash0.1.4непряма
npmindex-to-position1.2.0непряма
npminherits2.0.4непряма
npmini1.3.8непряма
npmini2.0.0непряма
npmip-address10.2.0непряма
npmis-ci3.0.1непряма
npmis-extglob2.1.1непряма
npmis-fullwidth-code-point3.0.0непряма
npmis-glob4.0.3непряма
npmis-installed-globally0.4.0непряма
npmis-npm6.1.0непряма
npmis-obj2.0.0непряма
npmis-path-inside3.0.3непряма
npmis-potential-custom-element-name1.0.1непряма
npmis-running2.1.0непряма
npmis-stream2.0.1непряма
npmis-typedarray1.0.0непряма
npmis-yarn-global0.4.1непряма
npmisarray1.0.0непряма
npmisexe2.0.0непряма
npmisomorphic-ws5.0.0непряма
npmjackspeak3.4.3непряма
npmjest-worker28.1.3непряма
npmjose6.2.3непряма
npmjs-tokens4.0.0непряма
npmjs-yaml3.15.0непряма
npmjs-yaml4.3.0непряма
npmjs-yaml-cloudformation-schema1.0.0непряма
npmjs-yaml-js-types1.0.1непряма
npmjsdom27.4.0непряма
npmjsep1.4.0непряма
npmjson-bigint1.0.0непряма
npmjson-buffer3.0.1непряма
npmjson-schema-traverse0.4.1непряма
npmjson-schema-traverse1.0.0непряма
npmjson-stable-stringify-without-jsonify1.0.1непряма
npmjson-stringify-safe5.0.1непряма
npmjsonpath-plus10.4.0непряма
npmjwa2.0.1непряма
npmjws4.0.1непряма
npmkeyv4.5.4непряма
npmkuler2.0.0непряма
npmlatest-version7.0.0непряма
npmlazystream1.0.1непряма
npmlevn0.4.1непряма
npmlightningcss1.32.0непряма
npmlightningcss-android-arm641.32.0непряма
npmlightningcss-darwin-arm641.32.0непряма
npmlightningcss-darwin-x641.32.0непряма
npmlightningcss-freebsd-x641.32.0непряма
npmlightningcss-linux-arm-gnueabihf1.32.0непряма
npmlightningcss-linux-arm64-gnu1.32.0непряма
npmlightningcss-linux-arm64-musl1.32.0непряма
npmlightningcss-linux-x64-gnu1.32.0непряма
npmlightningcss-linux-x64-musl1.32.0непряма
npmlightningcss-win32-arm64-msvc1.32.0непряма
npmlightningcss-win32-x64-msvc1.32.0непряма
npmlocate-path6.0.0непряма
npmlodash4.18.1непряма
npmlodash.camelcase4.3.0непряма
npmlodash.truncate4.4.2непряма
npmlogform2.7.0непряма
npmlong5.3.2непряма
npmlowercase-keys2.0.0непряма
npmlowercase-keys3.0.0непряма
npmlru-cache10.4.3непряма
npmlru-cache11.5.1непряма
npmmagic-string0.30.21непряма
npmmatcher3.0.0непряма
npmmath-intrinsics1.1.0непряма
npmmdn-data2.27.1непряма
npmmeow13.2.0непряма
npmmerge-stream2.0.0непряма
npmmime-db1.52.0непряма
npmmime-types2.1.35непряма
npmmimic-fn2.1.0непряма
npmmimic-response1.0.1непряма
npmmimic-response3.1.0непряма
npmmimic-response4.0.0непряма
npmminimatch10.2.5непряма
npmminimatch5.1.9непряма
npmminimatch9.0.9непряма
npmminimist1.2.8непряма
npmminipass7.1.3непряма
npmmonkeypatch1.0.0непряма
npmmrmime2.0.1непряма
npmms2.1.3непряма
npmnanoid3.3.15непряма
npmnatural-compare1.4.0непряма
npmneo-async2.6.2непряма
npmnetmask2.1.1непряма
npmnode-domexception1.0.0непряма
npmnode-fetch2.7.0непряма
npmnode-fetch3.3.2непряма
npmnode-request-interceptor0.6.3непряма
npmnormalize-package-data6.0.2непряма
npmnormalize-path3.0.0непряма
npmnormalize-url6.1.0непряма
npmnormalize-url8.1.1непряма
npmnpm-run-path4.0.1непряма
npmnth-check2.1.1непряма
npmoauth4webapi3.8.6непряма
npmobject-hash3.0.0непряма
npmobject-inspect1.13.4непряма
npmobject-keys1.1.1непряма
npmobug2.1.3непряма
npmonce1.4.0непряма
npmone-time1.0.0непряма
npmonetime5.1.2непряма
npmopenid-client6.8.4непряма
npmoptionator0.9.4непряма
npmp-cancelable2.1.1непряма
npmp-cancelable3.0.0непряма
npmp-limit3.1.0непряма
npmp-locate5.0.0непряма
npmpac-proxy-agent7.2.0непряма
npmpac-resolver7.0.1непряма
npmpackage-json8.1.1непряма
npmpackage-json-from-dist1.0.1непряма
npmparse-json8.3.0непряма
npmparse57.3.0непряма
npmparse58.0.1непряма
npmparse5-htmlparser2-tree-adapter7.1.0непряма
npmpath-exists4.0.0непряма
npmpath-key3.1.1непряма
npmpath-scurry1.11.1непряма
npmpathe2.0.3непряма
npmpend1.2.0непряма
npmperformance-now2.1.0непряма
npmpicocolors1.1.1непряма
npmpicomatch4.0.4непряма
npmplaywright1.61.1непряма
npmplaywright-core1.61.1непряма
npmpngjs7.0.0непряма
npmpostcss8.5.16непряма
npmprelude-ls1.2.1непряма
npmprocess0.11.10непряма
npmprocess-nextick-args2.0.1непряма
npmproper-lockfile4.1.2непряма
npmproto-list1.2.4непряма
npmproto3-json-serializer3.0.4непряма
npmprotobufjs7.6.4непряма
npmprotoc-gen-ts0.8.7непряма
npmpump3.0.4непряма
npmpunycode2.3.1непряма
npmpupa3.3.0непряма
npmqs6.15.3непряма
npmquick-lru5.1.1непряма
npmrc1.2.8непряма
npmread-package-up11.0.0непряма
npmread-pkg9.0.1непряма
npmreadable-stream2.3.8непряма
npmreadable-stream3.6.2непряма
npmreadable-stream4.7.0непряма
npmreaddir-glob1.1.3непряма
npmreconnecting-websocket4.4.0непряма
npmregistry-auth-token5.1.1непряма
npmregistry-url6.0.1непряма
npmrequire-directory2.1.1непряма
npmrequire-from-string2.0.2непряма
npmresolve-alpn1.2.1непряма
npmresponselike2.0.1непряма
npmresponselike3.0.0непряма
npmretry0.12.0непряма
npmretry-request8.0.3непряма
npmrfc46481.5.4непряма
npmrimraf5.0.10непряма
npmroarr2.15.4непряма
npmrolldown1.1.4непряма
npmsafe-buffer5.1.2непряма
npmsafe-buffer5.2.1непряма
npmsafe-stable-stringify2.5.0непряма
npmsaxes6.0.0непряма
npmsemver5.7.2непряма
npmsemver7.8.5непряма
npmsemver-compare1.0.0непряма
npmsemver-diff4.0.0непряма
npmsemver-regex3.1.4непряма
npmsemver-sort1.0.0непряма
npmserialize-error7.0.1непряма
npmshebang-command2.0.0непряма
npmshebang-regex3.0.0непряма
npmside-channel1.1.1непряма
npmside-channel-list1.0.1непряма
npmside-channel-map1.0.1непряма
npmside-channel-weakmap1.0.2непряма
npmsiginfo2.0.0непряма
npmsignal-exit3.0.7непряма
npmsignal-exit4.1.0непряма
npmsimple-git3.36.0непряма
npmsirv3.0.2непряма
npmslice-ansi4.0.0непряма
npmsmart-buffer4.2.0непряма
npmsocks2.8.9непряма
npmsocks-proxy-agent8.0.5непряма
npmsource-map0.6.1непряма
npmsource-map-js1.2.1непряма
npmspdx-correct3.2.0непряма
npmspdx-exceptions2.5.0непряма
npmspdx-expression-parse3.0.1непряма
npmspdx-license-ids3.0.23непряма
npmsprintf-js1.0.3непряма
npmsprintf-js1.1.3непряма
npmstack-trace0.0.10непряма
npmstackback0.0.2непряма
npmstd-env4.1.0непряма
npmstream-buffers3.0.3непряма
npmstream-events1.0.5непряма
npmstream-shift1.0.3непряма
npmstreamx2.28.0непряма
npmstrict-event-emitter0.1.0непряма
npmstring-width4.2.3непряма
npmstring-width5.1.2непряма
npmstring_decoder1.1.1непряма
npmstring_decoder1.3.0непряма
npmstrip-ansi6.0.1непряма
npmstrip-ansi7.2.0непряма
npmstrip-final-newline2.0.0непряма
npmstrip-json-comments2.0.1непряма
npmstubs3.0.0непряма
npmsupports-color7.2.0непряма
npmsupports-color8.1.1непряма
npmsymbol-tree3.2.4непряма
npmtable6.9.0непряма
npmtar-fs3.1.3непряма
npmtar-stream3.2.0непряма
npmteeny-request10.1.3непряма
npmteex1.0.1непряма
npmtemp-dir3.0.0непряма
npmtempfile5.0.0непряма
npmtext-decoder1.2.7непряма
npmtext-hex1.0.0непряма
npmtinybench2.9.0непряма
npmtinyexec1.2.4непряма
npmtinyglobby0.2.17непряма
npmtinyrainbow3.1.0непряма
npmtldts7.4.5непряма
npmtldts-core7.4.5непряма
npmtmp0.2.7непряма
npmtotalist3.0.1непряма
npmtough-cookie6.0.1непряма
npmtr460.0.3непряма
npmtr466.0.0непряма
npmtree-kill1.2.2непряма
npmtriple-beam1.4.1непряма
npmtslib2.8.1непряма
npmtype-check0.4.0непряма
npmtype-fest0.13.1непряма
npmtype-fest1.4.0непряма
npmtype-fest2.19.0непряма
npmtype-fest4.41.0непряма
npmtypedarray-to-buffer3.1.5непряма
npmuglify-js3.19.3непряма
npmundici-types7.18.2непряма
npmunicorn-magic0.1.0непряма
npmunique-string3.0.0непряма
npmupdate-notifier6.0.2непряма
npmuri-js4.4.1непряма
npmurl-template2.0.8непряма
npmutil-deprecate1.0.2непряма
npmuuid11.1.1непряма
npmvalidate-npm-package-license3.0.4непряма
npmvite8.1.2непряма
npmvitest4.1.9непряма
npmw3c-xmlserializer5.0.0непряма
npmweb-streams-polyfill3.3.3непряма
npmwebidl-conversions3.0.1непряма
npmwebidl-conversions8.0.1непряма
npmwhatwg-mimetype3.0.0непряма
npmwhatwg-mimetype4.0.0непряма
npmwhatwg-mimetype5.0.0непряма
npmwhatwg-url15.1.0непряма
npmwhatwg-url5.0.0непряма
npmwhich2.0.2непряма
npmwhy-is-node-running2.3.0непряма
npmwidest-line4.0.1непряма
npmwindows-release5.1.1непряма
npmwinston3.19.0непряма
npmwinston-transport4.9.0непряма
npmword-wrap1.2.5непряма
npmwordwrap1.0.0непряма
npmwrap-ansi7.0.0непряма
npmwrap-ansi8.1.0непряма
npmwrappy1.0.2непряма
npmwrite-file-atomic3.0.3непряма
npmws8.21.0непряма
npmxdg-basedir5.1.0непряма
npmxml-name-validator5.0.0непряма
npmxmlchars2.2.0непряма
npmy18n5.0.8непряма
npmyargs17.7.3непряма
npmyargs-parser21.1.1непряма
npmyauzl3.4.0непряма
npmyocto-queue0.1.0непряма
npmzip-stream6.0.1непряма
PyPImkdocs-materialнепряма
Сповіщення про залежності 0

Встановлення npm:showdown@2.1.0 тягне 1 пакетів, прямих і транзитивних: 0 мають відомі сповіщення, з них 0 — прямі залежності.

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

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

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [
        "showdown",
        "javascript",
        "markdown",
        "markdown-parser",
        "markdown-flavors",
        "gfm",
        "html",
        "converter",
        "html-converter"
      ],
      "is_fork": false,
      "size_kb": 9769,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "HTML": 182172,
        "JavaScript": 727348
      },
      "pushed_at": "2026-07-20T04:30:41Z",
      "created_at": "2008-11-13T21:39:21Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-20T02:01:18Z",
      "description": "A bidirectional Markdown to HTML to Markdown converter written in Javascript",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "master",
      "license_spdx_raw": "MIT",
      "primary_language": "JavaScript",
      "significant_languages": [
        "JavaScript",
        "HTML"
      ]
    },
    "owner": {
      "blog": null,
      "name": "ShowdownJS",
      "type": "Organization",
      "login": "showdownjs",
      "company": null,
      "location": null,
      "followers": 34,
      "avatar_url": "https://avatars.githubusercontent.com/u/2754978?v=4",
      "created_at": "2012-11-09T00:45:02Z",
      "is_verified": null,
      "public_repos": 14,
      "account_age_days": 5004
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "2.1.0",
          "kind": "minor",
          "published_at": "2022-04-21T00:32:33Z"
        },
        {
          "tag": "2.0.4",
          "kind": "patch",
          "published_at": "2022-04-21T00:22:07Z"
        },
        {
          "tag": "2.0.3",
          "kind": "patch",
          "published_at": "2022-03-08T09:44:59Z"
        },
        {
          "tag": "2.0.0",
          "kind": "major",
          "published_at": "2022-02-16T04:03:03Z"
        },
        {
          "tag": "2.0.0-alpha",
          "kind": "prerelease",
          "published_at": "2022-02-02T04:42:24Z"
        },
        {
          "tag": "1.9.1",
          "kind": "patch",
          "published_at": "2019-11-02T23:32:02Z"
        },
        {
          "tag": "1.9.0",
          "kind": "minor",
          "published_at": "2018-11-10T23:33:24Z"
        },
        {
          "tag": "1.8.7",
          "kind": "patch",
          "published_at": "2018-10-16T22:35:10Z"
        },
        {
          "tag": "1.8.6",
          "kind": "patch",
          "published_at": "2017-12-22T10:44:46Z"
        },
        {
          "tag": "1.8.5",
          "kind": "patch",
          "published_at": "2017-12-11T13:56:30Z"
        },
        {
          "tag": "1.8.4",
          "kind": "patch",
          "published_at": "2017-12-05T01:19:05Z"
        },
        {
          "tag": "1.8.3",
          "kind": "patch",
          "published_at": "2017-11-28T03:11:48Z"
        },
        {
          "tag": "1.8.2",
          "kind": "patch",
          "published_at": "2017-11-11T13:36:02Z"
        },
        {
          "tag": "1.8.1",
          "kind": "patch",
          "published_at": "2017-11-01T20:34:38Z"
        },
        {
          "tag": "1.8.0",
          "kind": "minor",
          "published_at": "2017-10-24T16:17:41Z"
        },
        {
          "tag": "1.7.6",
          "kind": "patch",
          "published_at": "2017-10-06T11:57:21Z"
        },
        {
          "tag": "1.7.5",
          "kind": "patch",
          "published_at": "2017-10-02T04:25:53Z"
        },
        {
          "tag": "1.7.4",
          "kind": "patch",
          "published_at": "2017-09-08T19:53:51Z"
        },
        {
          "tag": "1.7.3",
          "kind": "patch",
          "published_at": "2017-08-23T21:58:23Z"
        },
        {
          "tag": "1.7.2",
          "kind": "patch",
          "published_at": "2017-08-05T00:52:56Z"
        },
        {
          "tag": "1.7.1",
          "kind": "patch",
          "published_at": "2017-06-02T02:33:48Z"
        },
        {
          "tag": "1.7.0",
          "kind": "minor",
          "published_at": "2017-06-01T01:49:07Z"
        },
        {
          "tag": "1.6.4",
          "kind": "patch",
          "published_at": "2017-05-01T17:39:14Z"
        },
        {
          "tag": "1.6.3",
          "kind": "patch",
          "published_at": "2017-01-30T22:42:52Z"
        },
        {
          "tag": "1.6.2",
          "kind": "patch",
          "published_at": "2017-01-29T23:34:04Z"
        },
        {
          "tag": "1.6.1",
          "kind": "patch",
          "published_at": "2017-01-28T02:51:33Z"
        },
        {
          "tag": "1.6.0",
          "kind": "minor",
          "published_at": "2017-01-09T02:41:23Z"
        },
        {
          "tag": "1.5.5",
          "kind": "patch",
          "published_at": "2017-01-06T04:29:02Z"
        },
        {
          "tag": "1.5.4",
          "kind": "patch",
          "published_at": "2016-12-21T09:07:55Z"
        },
        {
          "tag": "1.5.2",
          "kind": "patch",
          "published_at": "2016-12-17T05:32:44Z"
        },
        {
          "tag": "1.5.1",
          "kind": "patch",
          "published_at": "2016-12-01T15:44:24Z"
        },
        {
          "tag": "1.5.0",
          "kind": "minor",
          "published_at": "2016-11-11T08:58:13Z"
        },
        {
          "tag": "1.4.4",
          "kind": "patch",
          "published_at": "2016-11-02T21:18:27Z"
        },
        {
          "tag": "1.4.3",
          "kind": "patch",
          "published_at": "2016-11-02T16:36:22Z"
        },
        {
          "tag": "1.4.2",
          "kind": "patch",
          "published_at": "2016-06-21T01:27:00Z"
        },
        {
          "tag": "1.4.1",
          "kind": "patch",
          "published_at": "2016-05-17T20:37:37Z"
        },
        {
          "tag": "1.4.0",
          "kind": "minor",
          "published_at": "2016-05-13T15:34:55Z"
        },
        {
          "tag": "1.3.0",
          "kind": "minor",
          "published_at": "2015-10-19T02:29:53Z"
        },
        {
          "tag": "1.2.3",
          "kind": "patch",
          "published_at": "2015-08-27T04:28:01Z"
        },
        {
          "tag": "1.2.2",
          "kind": "patch",
          "published_at": "2015-08-02T15:10:33Z"
        },
        {
          "tag": "1.2.1",
          "kind": "patch",
          "published_at": "2015-07-22T17:50:02Z"
        },
        {
          "tag": "1.2.0",
          "kind": "minor",
          "published_at": "2015-07-13T20:36:20Z"
        },
        {
          "tag": "1.1.0",
          "kind": "minor",
          "published_at": "2015-06-18T00:28:12Z"
        },
        {
          "tag": "1.0.2",
          "kind": "patch",
          "published_at": "2015-05-28T23:43:57Z"
        },
        {
          "tag": "1.0.1",
          "kind": "patch",
          "published_at": "2015-05-27T22:52:54Z"
        },
        {
          "tag": "1.0.0",
          "kind": "major",
          "published_at": "2015-05-27T22:53:49Z"
        },
        {
          "tag": "0.5.4",
          "kind": "patch",
          "published_at": "2015-05-27T15:07:04Z"
        },
        {
          "tag": "0.5.3",
          "kind": "patch",
          "published_at": "2015-05-27T02:01:42Z"
        },
        {
          "tag": "1.0.0-alpha.2",
          "kind": "prerelease",
          "published_at": "2015-05-15T21:36:54Z"
        },
        {
          "tag": "1.0.0-alpha1",
          "kind": "prerelease",
          "published_at": "2015-05-14T02:07:04Z"
        },
        {
          "tag": "0.5.1",
          "kind": "patch",
          "published_at": "2015-05-13T21:47:44Z"
        },
        {
          "tag": "0.5.0",
          "kind": "minor",
          "published_at": "2015-04-22T14:47:22Z"
        },
        {
          "tag": "0.3.4",
          "kind": "patch",
          "published_at": "2015-01-06T16:14:14Z"
        },
        {
          "tag": "0.3.3",
          "kind": "patch",
          "published_at": "2015-01-05T00:46:07Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "e5cab1e9a5dcea2bb3cbf888863fa7e65ab37edf",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into master",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-05T00:17:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c987270ca80ee7f7b43fb896856b9a52ec640c30",
          "body": "…c path\n\nOn the CommonMark (cmSpec) inline path, `<www.google.com>` was escaped to\n`&lt;www.google.com&gt;` and then had its interior re-linked by the GFM\nsimplifiedAutoLink post-pass, producing the broken\n`&lt;<a>www.google.com</a>&gt;` (\"double-processing\").\n\nRecognize `<www...>` as a first-class \n[…]\nt); it mirrors Showdown's legacy flavor, which\nhas always linked it. Documented under docs/commonmark.md and docs/gfm.md\n\"Known differences\". The legacy path already behaved this way and is unchanged.",
          "is_bot": false,
          "headline": "fix(makehtml): stop double-processing <www...> autolinks on the cmSpe…",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-04T23:50:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "34dbc93a5f12f5cdf522266233e341b2ef4ecf0c",
          "body": "Replace the opaque numeric SKIP set with per-case skips inside the switch,\neach carrying a trailing comment explaining why it is skipped. Renderer-only\nsections (Alerts/Math/Mermaid) are skipped at the section level since every\ncase in them is skipped and Vitest errors on an empty describe block.\n\nDrop cases 43 and 61 from the skip list: both are valid Thematic-breaks cases\nthat showdown renders correctly and were skipped under incorrect rationales.",
          "is_bot": false,
          "headline": "test(gfm): move skip reasons into the switch and drop bogus skips",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-04T18:47:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d814ceb853fd0811f8c845656ccef0adc23e4cdc",
          "body": "The table header-id parser honored both `tablesHeaderId` and a misspelled\n`tableHeaderId` alias, the latter kept for backwards compatibility with an\nold documentation typo. Remove the alias so table header ids are controlled\nsolely by the documented `tablesHeaderId` option.\n\nBREAKING CHANGE: the undocumented `tableHeaderId` option (a legacy\nmisspelling of `tablesHeaderId`) is no longer recognized. Code relying on the\nmisspelling must switch to `tablesHeaderId`.",
          "is_bot": false,
          "headline": "refactor(options)!: drop the misspelled tableHeaderId option alias",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-04T18:45:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "35a67a44977bdb82885d38a586c3e8ac5c222353",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into master",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-04T18:26:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3a7c5ed55f3d37c1bc87c3093dcce7ea33106850",
          "body": "…olarity\n\nAdd the missing `introduced in: 3.0.0` line to the headerIds options\nreference (every other option carries one), and clarify in the flavors table\nnote that the `headerIds` row has inverted polarity: headerIds is an object\n(default `{}`, ids enabled) rather than a boolean, so a checkmark there means\nthe flavor sets `headerIds: false` to disable ids.",
          "is_bot": false,
          "headline": "docs(options): add headerIds introduced-in and clarify flavor-table p…",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-04T18:26:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8a56eaf0df474e152456d68f4fa394a288b5b9ec",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into master",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-04T18:00:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c42c7512b566f0a430885e640e86867e8d3f03b9",
          "body": "Consolidate the three overlapping header-id options (noHeaderId,\nprefixHeaderId, rawHeaderId) into one `headerIds` option that accepts either\n`false` or an object `{ prefix, raw }`. This removes their ambiguous\ninteraction and fixes the incorrect type metadata on the former\nprefixHeaderId (declared \n[…]\nderIds: { raw: true }\n  rawHeaderId + prefix   ->  headerIds: { prefix: '/p/', raw: true }\n\nOn the CLI, use `-c headerIds=false` or a JSON object, e.g.\n-c 'headerIds={\"prefix\":\"section-\",\"raw\":true}'.",
          "is_bot": false,
          "headline": "feat(options)!: replace header-id options with a single headerIds option",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-04T12:45:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ea1f592e762be1f010d75fd0f11a6b1dff275029",
          "body": "The gfm/github flavor now enables disallowRawHTML by default, applying the\nGFM \"disallowed raw HTML\" tagfilter extension (spec section 6.11): raw\n<title>/<textarea>/<style>/<xmp>/<iframe>/<noembed>/<noframes>/<script>/\n<plaintext> tags are escaped in output, matching cmark-gfm/GitHub rendering.\n\nDrops the dedicated opt-in converter from the gfm testsuite (the main\nconverter now covers the tagfilter cases) and skips the inherited CommonMark\nHTML-block cases that assume raw passthrough.",
          "is_bot": false,
          "headline": "feat(options): enable GFM tagfilter (disallowRawHTML) in the gfm flavor",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-04T00:50:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b0aadfdc31361a50c0d1de6fabad35b2a872cbfd",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into master",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-02T23:29:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8bc9b5d638058c9e5d0bd6b202ab07f305f91f88",
          "body": "…ode wording\n\nDirect reporters to GitHub private vulnerability reporting instead of public\nissues, add an acknowledgement/disclosure note, fix a typo, and correct the\nsafeMode description (it escapes a blacklist of dangerous tags and neutralizes\nevent-handler and dangerous-URL attributes — including form actions — not\n\"all raw HTML tags\").",
          "is_bot": false,
          "headline": "docs(security): use private vulnerability reporting and correct safeM…",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-02T23:28:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bdf7e01701ced5b3b1c461156b16109c112e2a84",
          "body": "…ted-link ReDoS\n\n- safeMode: assert dangerous hrefs are neutralized regardless of separator\n  (`<a/href>`, `<a id=\"x\"href>`, `<a id='x'href>`, `<area/href>`) and that raw\n  `<input formaction=\"javascript:…\">` is neutralized while safe values survive.\n- ReDoS suite: add balanced nested link/image scaling cases.\n- Stress suite: add safemode-malformed snapshots for the separator and\n  form-action inputs.",
          "is_bot": false,
          "headline": "test(makehtml): cover attribute-separator/formaction bypasses and nes…",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-02T23:28:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "32527831b15e0b39209b21f20b1cf0f3bbc2ce91",
          "body": "…d-link ReDoS\n\nsafeMode raw-HTML hardening:\n- Neutralize dangerous URL schemes in raw HTML regardless of the attribute\n  separator: browsers accept `/` and quote-adjacent attributes\n  (`<a/href=…>`, `<a id=\"x\"href=…>`), which the whitespace-only matcher missed.\n- Extend the raw-URL neutralizer from \n[…]\nunded `.*?`/`.*`\ncaptures that re-scanned from every `[`. Bounding them to exclude their own\ndelimiters (matching the sibling inline/image regexes) makes it linear with no\nchange to real link parsing.",
          "is_bot": false,
          "headline": "fix(makehtml): close safeMode raw-attribute bypasses and legacy neste…",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-02T23:28:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "16629be7d4ea28952d4290d26f5b3c1b315b67be",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into master",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-02T22:55:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d82fb105f407d080b1b058ccfe6faab1d22e7ae5",
          "body": "Add overrides for tmp (^0.2.7) and uuid (^11.1.1) to clear the high\npath-traversal and moderate buffer-bounds advisories pulled in\ntransitively through browserstack-node-sdk (tmp, and uuid via\ngaxios/googleapis-common/googleapis). npm audit now reports 0\nvulnerabilities and the BrowserStack suite still passes.",
          "is_bot": false,
          "headline": "fix(deps): resolve npm audit vulnerabilities via overrides",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-02T22:55:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6101bfef94addbbbe8c5f6daf6be057114330012",
          "body": null,
          "is_bot": false,
          "headline": ".",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-02T22:00:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f7cc50f9dafc07296c82be8dc5d59f1c1e63bf27",
          "body": "Document the new `safeMode` option in the options reference and README,\nclarify that `disallowRawHTML` is only the narrow GFM tagfilter, and expand\nthe XSS/SECURITY guidance (trusted-input model, DOMPurify + CSP, input-size\nbounds, and the always-on hardening) for rendering untrusted Markdown.",
          "is_bot": false,
          "headline": "docs: document safeMode and the security hardening",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-02T18:26:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc0088b1078969b1549baa2027a8365b4e50a724",
          "body": "Pin all third-party actions to a commit SHA (with a version comment), add an\nexplicit least-privilege `permissions:` block to every workflow, add a\nproduction-only `npm audit` gate to the Linux CI job, and add a Dependabot\nconfig for npm and github-actions updates. Build the docs webhook payload with\n`jq` instead of shell string interpolation.",
          "is_bot": false,
          "headline": "ci: harden GitHub Actions workflows",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-02T18:26:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "003bf117116f826cbd115edccc132e663322e1f6",
          "body": "Add a ReDoS resistance suite (test/unit/showdown.redos.js) that feeds large\npathological inputs through makeHtml under a wall-clock budget, so a\nreintroduced quadratic parser fails instead of completing in milliseconds.\n\nAdd a stress snapshot suite (test/functional/makehtml/testsuite.stress.js and\nc\n[…]\n-case regressions.\n\nAlso add unit coverage for safeMode, isSafeUrl, the metadata/attribute\nencoding and the makeMarkdown round-trip, plus functional ReDoS fixtures, and\na `test:functional` npm script.",
          "is_bot": false,
          "headline": "test(makehtml): add ReDoS and stress regression testsuites",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-02T18:25:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "184a3e4e97f90e075c4512f2c4c06dcf655e91b7",
          "body": "… ReDoS\n\nAdd a new `safeMode` option (default off) providing defense-in-depth for\nuntrusted Markdown: an opt-in URL-scheme allowlist that neutralizes\n`javascript:`/`vbscript:`/`data:text/html` in generated and raw links/images\n(resolving entity/whitespace/`>`-in-attribute obfuscations, keeping\n`data\n[…]\notnote and raw-HTML-span parsers, and replace the\nper-span unhash loop with a single linear pass. All changes are behavior\npreserving; the link/image destination and HTML-span scanning are now linear.",
          "is_bot": false,
          "headline": "feat(makehtml): add safeMode and harden the converter against XSS and…",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-02T18:25:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "adb88a92a1a7ecf01ca69425ddf6f9ff524928b9",
          "body": "Resolve the remaining 25 no-useless-escape warnings by dropping\nsuperfluous backslashes before /, [ and < where they have no effect\n(inside character classes or before non-special characters). The\nregex semantics are unchanged.\n\neslint now reports zero errors and zero warnings.",
          "is_bot": false,
          "headline": "refactor(lint): remove unnecessary escape characters from regex literals",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-02T00:06:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e4e1144114a1536be9b02fe0bcfc6be46e0af184",
          "body": "Burn down 98 of the 123 warnings left non-blocking after the toolchain\nmodernization:\n\n- no-prototype-builtins: call Object.prototype.hasOwnProperty.call()\n  instead of accessing hasOwnProperty on arbitrary objects (51 sites)\n- no-useless-assignment: drop dead initializers and delete three dead\n  `u\n[…]\nCommonMark control-char classes, the\n  console polyfill, a deliberately unassigned test var)\n\nThe 25 remaining no-useless-escape warnings are left as-is: the regex\nliterals are deliberately untouched.",
          "is_bot": false,
          "headline": "refactor(lint): resolve eslint:recommended warnings in src and test",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T23:48:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c6f0502a647339f102b1708170ec41c0363d54cf",
          "body": "makeMarkdown's DOM is now resolved on first use via a lazy getter on\nshowdown.helper.document: an ambient window/document when one exists\n(browsers, DOM test environments), otherwise require('happy-dom') in\nNode. Node consumers that only call makeHtml no longer load a DOM\nimplementation at all, and \n[…]\nt under a bare Node\nenvironment. happy-dom output was verified byte-identical to the jsdom\npath across headings, tables, task lists, blockquotes, nested lists,\nimage dimensions, fenced code and links.",
          "is_bot": false,
          "headline": "refactor(makemarkdown): replace jsdom with lazily-loaded happy-dom",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T23:07:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e8ae112856c341e134fb34734c1df2c89286f6fc",
          "body": "…tion runs\n\nAlso refresh stale runtime dependency ranges (commander ^14, jsdom ^27)\npicked up in the same lockfile regeneration.",
          "is_bot": false,
          "headline": "test(browserstack): bump browserstack-node-sdk to 1.60 to fix integra…",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T23:05:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2ac75bd6fe8570e3605fcd3e0937ca3414623d1f",
          "body": "`npm run release -- --dry-run` runs the real validation (lint, build, all\ntests, perf) but only prints every state-changing step (checkout/merge/bump/\nchangelog/commit/tag/push/publish) instead of executing it, so a release can\nbe rehearsed without committing, tagging, pushing, or publishing. It skips the\nclean-tree guard (nothing is committed) and restores only the generated\nartifacts (dist/bin/perf) afterward.",
          "is_bot": false,
          "headline": "build: add --dry-run mode to the release task",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T22:55:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "221c213ece00cc6c57989611f33cd4ae8c76d2f1",
          "body": "This reverts commit fd23114f9467c48ae0cdcff8d2d1e33fd0fa8583.",
          "is_bot": false,
          "headline": "Revert \"chore(release): 3.0.0-rc3\"",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T21:38:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd23114f9467c48ae0cdcff8d2d1e33fd0fa8583",
          "body": null,
          "is_bot": false,
          "headline": "chore(release): 3.0.0-rc3",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T21:20:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1b87a55a16bb1841499cf067d42a72acdf5cd0dc",
          "body": "Interactive release script (scripts/release.mjs): lint, build, all tests\n(node + each browser engine), performance, prompt for version, rebuild +\nregenerate changelog, commit/tag/push, then optionally npm publish\n(prereleases -> `next` dist-tag).\n\n- Any failing step aborts the whole release (reports\n[…]\nailed).\n- The release ALWAYS lands on master: validates the current branch, then\n  merges it into master, makes the release commit/tag there, and syncs the\n  working branch back so they don't diverge.",
          "is_bot": false,
          "headline": "build: add guarded `npm run release` task",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T20:23:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "14fc2c11936b46f2ac94d0d4bab1c3c307eb22d7",
          "body": "The changelog generator prepended each new release with no separator, so\nthe newest section's last entry butted directly against the previous\nversion header. Replace the raw `conventional-changelog -s -i` call with\nscripts/changelog.mjs, which normalizes header spacing and always leaves two\nblank lines between the new section and the previous one. Also fix the\nexisting 3.0.0-rc2 / 3.0.0-rc1 seam.",
          "is_bot": false,
          "headline": "docs(changelog): fix section spacing and make it automatic",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T19:22:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4daa1a629cbc4dd6c717852d020fff0943b4034d",
          "body": "Bump to 3.0.0-rc2, regenerate CHANGELOG, and rebuild dist/bin.\n\nAlso restores changelog + perf tooling dropped during the toolchain\nmodernization: conventional-changelog-cli (npm run changelog) and\nsemver-sort (used by the performance suite).",
          "is_bot": false,
          "headline": "chore(release): 3.0.0-rc2",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T04:22:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "27c9338c8ae68bde0f9e69529f24de057c1e5964",
          "body": "Trigger the BrowserStack smoke job on pull_request (master, develop) and on\npush to master, plus manual dispatch. Guard the job so it skips fork PRs,\nwhere secrets (BrowserStack creds) are withheld by GitHub.",
          "is_bot": false,
          "headline": "ci(browserstack): run on PRs and master merges, skip fork PRs",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T03:51:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f6c4b811082def1bb44baa3b5dce21de1a2add3",
          "body": "Documentation restructure: sectioned nav, per-flavor Markdown Syntax pages,\nmerged Options page, CLI/event-system fixes, and theme overrides.",
          "is_bot": false,
          "headline": "Merge branch 'docs-refactor' into develop",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T03:50:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3097850e0f9e2664b0e327aecb5edddc584d46fe",
          "body": "Reorganize the docs site around clearer top-level sections and fix\ncorrectness/link issues throughout.\n\nNavigation & structure:\n- Merge Home subpages into a single Introduction; move Compatibility there.\n- New \"Markdown Syntax\" tab: Overview (shared common syntax) + one page per\n  flavor (Original, \n[…]\nhe >=9.4 API and\n  pin it via docs/requirements.txt.\n- overrides/partials/nav.html so the drawer title can differ from the header.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: restructure documentation",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T03:50:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c06d0a0f4e8ea59190f14b8cf573fab314fc5993",
          "body": "Untrack the SDK's log/ artifacts (events.json, performance-report/) that\nwere accidentally committed, and ignore the directory.",
          "is_bot": false,
          "headline": "chore: gitignore browserstack-node-sdk log/ output",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T03:47:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c259fd544266cde88b0f59cf704e1c550ee750d",
          "body": "…k-node-sdk\n\nAdds a small @playwright/test smoke suite (makeHtml/makeMarkdown sanity\nchecks) that injects the built UMD bundle with addScriptTag — no localhost\nserver, so no BrowserStack Local tunnel is needed. Driven by\nbrowserstack-node-sdk against a 4-platform matrix (Win11 Chrome/Edge/Firefox\n+ \n[…]\n\n- tidy eslint test globals (drop chai/expect/getDefaultOpts); ignore\n  playwright artifacts\n\nNote: the SDK pulls googleapis, adding dev-only audit findings; production\ndeps stay at 0 vulnerabilities.",
          "is_bot": false,
          "headline": "test(browserstack): add gated real-device smoke suite via browserstac…",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T03:47:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "25b518ef7c0af6f955f49aae9020c21c08bce734",
          "body": "Migrate the whole test suite off chai to Vitest's native expect (~400\nassertions across 28 files) and replace the Karma browser runner with\nVitest browser mode (Playwright: chromium/firefox/webkit).\n\n- virtual:showdown Vite plugin runs tests against live src/ (no build\n  artifact); node suite uses t\n[…]\nrowser.yml CI (per-engine matrix); node CI now runs vitest\n- BrowserStack deferred to a follow-up (Playwright-connect approach)\n\nnpm test: 2367 node specs; test:browser: 480 per engine; 0 audit vulns.",
          "is_bot": false,
          "headline": "test: replace Karma+chai with Vitest (node jsdom + Playwright browser)",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T03:28:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8bc836825f8f64dc5c0a285df2cc1aeb04c744aa",
          "body": "Move eslint and @eslint/js from 9 to 10 (the correct resolution of the\nearlier @eslint/js@10-vs-eslint@9 peer conflict — both up, not one down).\n\nEnable eslint:recommended plus eqeqeq as warnings so the correctness issues\nthey surface (~128, mostly no-prototype-builtins / no-useless-escape in the\nre\n[…]\nused-vars / no-fallthrough) are\nvisible without gating CI; to be burned down after the toolchain\nmodernization. Formatting rules stay errors; no-undef stays off for the\nshared-scope src concatenation.",
          "is_bot": false,
          "headline": "build: upgrade to ESLint 10 and surface recommended rules as warnings",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T02:29:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5a8c464a9531191bb5a21baf043cd49a905df5b4",
          "body": "Consolidate the two legacy linters (JSHint + eslintrc-based ESLint, run via\nGrunt) into a single ESLint 9 flat config:\n\n- eslint.config.mjs ports the .eslintrc.json rules verbatim; the formatting\n  rules move under @stylistic (deprecated in ESLint core v9). No\n  eslint:recommended, so the enforced r\n[…]\n's\n  lint-before-test behavior.\n- helpers.js: retarget the one inline disable to @stylistic/space-infix-ops\n  and drop the dead jshint pragmas.\n\nnpm test (lint + 2367 mocha specs) green; npm ci clean.",
          "is_bot": false,
          "headline": "build: replace JSHint and legacy ESLint with ESLint 9 flat config",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T01:39:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bd938cf5827d47e76c167eca7f17f3fa29f51560",
          "body": "Remove Grunt and its plugin tree (concat/uglify/endline/jshint/eslint/\nmocha-test + loaders) in favor of small Node build scripts driven by npm:\n\n- scripts/concat.mjs           shared, deterministic src concat (sorted globs)\n- scripts/build.mjs            release build via esbuild: UMD (dist/showdow\n[…]\n(11 -> 5 dev-only audit findings; 0 in production).\nNode CI matrix drops EOL 18; BrowserStack build step uses npm run build:test.\nThe Mocha suite and the Karma browser matrix are unchanged this phase.",
          "is_bot": false,
          "headline": "build: replace Grunt toolchain with esbuild + npm scripts",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T01:32:32Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "184a0f28384ff9bbe84eff88100a3d8d5f7e3d1f",
          "body": "A regenerated lockfile floated the unpinned chai dependency to the\nESM-only 6.x, which ships no UMD browser bundle. karma-chai loads\nnode_modules/chai/chai.js as a <script>, so with chai 6 the file is\nabsent, window.chai is undefined, and every BrowserStack browser errors\nbefore running a single test. Restore the lockfile to chai 4.3.6 (which\nships the UMD bundle) to make the BrowserStack job green again.",
          "is_bot": false,
          "headline": "fix(deps): restore chai 4.3.6 lockfile to fix karma-chai in CI",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-07-01T01:08:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d2eddba59188b2db1cec3d8ca4eb7ec6c00fab37",
          "body": "The mocha >= 8 browser bundle ships ES2018 syntax, so the suite can only\nrun on engines that support it. Drop pre-2018 browsers (Chrome 49,\nFirefox 45, Edge 15, Safari 10.1, IE) and pin the newest plus one\nprevious version per engine, with a Safari 13 floor for older-engine\nregression coverage.",
          "is_bot": false,
          "headline": "test(browserstack): modernize browser matrix to ES2018+ engines",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-30T23:54:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "73e9e53902eae4d6a324c8ef4134ce978196a1ac",
          "body": "…attributes\n\nOn Windows, grunt.template.process() normalized concat/uglify banners and\nfooters to grunt.util.linefeed (\"\\r\\n\"), so dist/ and bin/ were generated with\nmixed line endings even though every src/ input is LF. Pin grunt.util.linefeed\nto \"\\n\" so the build emits byte-identical LF output on \n[…]\n matched the actual `3.0.0-rc1` version and capture(0) came back\nundefined. Accept the real `-rc1`/`-alpha2`/`-beta1` suffix form.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(build): force LF line endings in build output and enforce via git…",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-30T15:48:52Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "71a64701115756e743f5ecf739d8abff60fef389",
          "body": null,
          "is_bot": false,
          "headline": "chore(release): 3.0.0-rc1",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-29T10:04:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1a13c13f9a42c711cf33de7f278cde141a536411",
          "body": null,
          "is_bot": false,
          "headline": "chore(build): bump version to 3.0.0-rc1 and rebuild dist",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-29T10:00:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1d508f1e99bf410190f635042da7d1f7486c24f",
          "body": "…tic blowup\n\nDeeply nested block quotes (`> > > ...` thousands deep) recurse once per level\nthrough blockGamut. In the default path this exhausted the call stack (uncaught\nRangeError); under cmSpec it blew up super-linearly (a ~2 KB input took minutes).\n\nRefuse to descend past a sane nesting depth, tracked via globals.blockquoteDepth;\nbeyond the limit the surplus `>` markers render as literal text. The deepest\nnesting in the entire test corpus is 3, so real documents are unaffected.",
          "is_bot": false,
          "headline": "fix(blockquote): cap nesting depth to avoid stack overflow and quadra…",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-29T09:48:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "668871d73c66bc7af237d41d2fb32539ab2760b6",
          "body": "The fenced-code info string is emitted verbatim into the `class` attribute of\nthe generated `<code>` element. An info string such as `js\"onmouseover=\"alert(1)`\nclosed the attribute and injected an event handler (XSS) in the default converter.\n\nHTML-escape the language token (`\"`, `<`, `>`) before bu\n[…]\n (e.g. `&ouml;`) for the class; that pass re-escapes anything\ndecoding to `\"`/`<`/`>`, so a literal quote is neutralized in both default and\nCommonMark modes while legitimate languages are unaffected.",
          "is_bot": false,
          "headline": "fix(githubCodeBlock): escape info string in generated code class",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-29T09:48:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "718aadbbffe2c53c5b37668ef8f6fdf31e7c423d",
          "body": "The phase-1 reference pass replaced `[^id]` before inline parsing, so it\nwrongly linked references that should stay literal:\n\n- inside an inline code span (`` `[^1]` ``) — now protected with a linear,\n  ReDoS-safe code-span scanner before the reference replace (a back-tracking\n  regex here is catast\n[…]\n (`\\[^1]`) — skipped by counting preceding back-slashes, while\n  `\\[^1]` still links\n\nAdd forward regression cases and a round-tripping reverse fixture for the\ncode-span case, and document both rules.",
          "is_bot": false,
          "headline": "fix(footnotes): keep references in code spans and escaped refs literal",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-29T02:17:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "34e778775708d6143cab81240cc9c72597287871",
          "body": "Rework the GFM task-list event model and bring the commonmark list parser\nto event parity with the default one.\n\n- Namespace the shared checkbox renderer's events under\n  makehtml.list.taskListItem.checkbox.* (drop the stray top-level\n  makehtml.taskListItem.* events) and capture the full task line,\n[…]\natching makehtml.list.\n- Add task-list edge-case fixtures (inline/block mixes) checked against\n  cmark-gfm; skip the known loose-item rendering divergence.\n- Document the makehtml.list.* event family.",
          "is_bot": false,
          "headline": "refactor(makehtml): full-line task-list events and cmList event parity",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-29T01:55:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "04babdb212f0367a1d0d6ab83ed5c64cf3996a6a",
          "body": "A `<li>` containing only an `<input type=\"checkbox\">` with no following task\ntext was reversed to a bare `- [ ]`, which does not round-trip — `- [ ]` on its\nown is not a task list item and `makeHtml` would not render it back as a\ncheckbox. Require the checkbox to be followed by real content (an element\nsibling, or a non-whitespace text node) before emitting a `[ ]`/`[x]` marker;\notherwise the `<input>` is kept verbatim (`- <input type=\"checkbox\">`).",
          "is_bot": false,
          "headline": "fix(makemarkdown): keep a text-less checkbox list item as raw HTML",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-29T01:11:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "78b6d49a1b2a9f2769972180dc89f5d42a999f91",
          "body": "…item\n\nA list item whose inline text was directly followed by a nested list rendered\nas `- a- b` because the sublist was glued onto the inline text instead of\nbreaking onto an indented new line. Insert a newline before a nested `<ul>` /\n`<ol>` child when the running item text does not already end with one, so the\nexisting indentation step tucks the sublist under the item (`- a` then\n`    - b`). Affects all tight nested lists, task lists included.",
          "is_bot": false,
          "headline": "fix(makemarkdown): start a nested list on its own line inside a list …",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-29T01:11:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "15de710a8ebe61eccf3e5998a08a0c6695e9c0f8",
          "body": "…list item\n\nA `[ ]`/`[x]` marker is only a task list item in Markdown when it leads a list item, so reverse conversion now requires an enclosing `<li>` (tight or loose) before turning an `<input type=\"checkbox\">` into a marker. A naked checkbox at top level or inside a `<p>`/`<div>` is left as raw H\n[…]\n-list-item` class, so unstyled or hand-written list HTML is still recognised.\n\nAdds a fixture pair covering naked checkboxes alongside in-list ones, and documents the behaviour in html-to-markdown.md.",
          "is_bot": false,
          "headline": "fix(makemarkdown): only reverse a checkbox to a task marker inside a …",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-29T00:50:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dd45463cb8c8200e00b32b446535bcff37d6aab8",
          "body": "…rsers\n\nExtract the duplicated `[ ]`/`[x]` checkbox rendering out of `makehtml.list` and `makehtml.cmList` into a single `makehtml.taskListItem` subparser, so the checkbox markup and its capture/hash events live in exactly one place.",
          "is_bot": false,
          "headline": "refactor(makehtml): share task-list checkbox renderer between list pa…",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-29T00:50:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ec49d95966937b18a4e379dfed432aa1c726734",
          "body": "makeMarkdown now reverses footnotes when the `footnotes` option is enabled,\nkeeping the two directions symmetric:\n\n- <sup class=\"footnote-ref\"> becomes its [^id] reference (the label is\n  recovered from the #fn- href and percent-decoded)\n- <section class=\"footnotes\"> becomes the [^id]: ... definitio\n[…]\nrips back to the same HTML) plus a\nfeature-disabled fallback case, and document footnotes (both directions and\nthe option) in the options, markdown-syntax, html-to-markdown and\nspec-compliance guides.",
          "is_bot": false,
          "headline": "feat(makemarkdown): reverse GFM footnotes (HTML -> Markdown)",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-28T23:43:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2917ccf71b31704cf8fe5f1b9c954013caa1a7d3",
          "body": "Add option-gated HTML->Markdown reverses so emoji and ellipsis round-trip\nthrough a converter with the matching option enabled, mirroring the existing\nsymmetric handling for strikethrough, underline, tables, tasklists and image\ndimensions.\n\n- helpers: add cached `emojiReverse()` lookup (image src->c\n[…]\nji `<img>` src back to `:code:`,\n  otherwise fall through to normal image handling\n\nIncludes makemarkdown fixtures for both features (enabled and disabled\nfallback) and documents the reverse behavior.",
          "is_bot": false,
          "headline": "feat(makemarkdown): reverse emoji and ellipsis to markdown",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-28T23:25:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3056efcaf0bf3cae5d9383facd22cb5b42f6864f",
          "body": null,
          "is_bot": false,
          "headline": "refactor(tests): refactor test to json spec",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-28T23:09:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9307a6c4cb694fa28a58cc167e8a9944b80a4609",
          "body": "Add a footnotes subparser implementing the cmark-gfm footnotes extension,\ngated behind a new `footnotes` option (off by default, enabled by the gfm\nflavor):\n\n- collect `[^id]: ...` definitions (4-space-indented multi-block bodies) and\n  replace `[^id]` references with numbered `<sup>` links in first\n[…]\nion class=\"footnotes\">` with\n  per-reference backrefs\n- labels are href-escaped and may not contain whitespace; a reference nested\n  inside a footnote body is resolved with the document-wide numbering",
          "is_bot": false,
          "headline": "feat(footnotes): add GFM footnotes support",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-28T23:08:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c2ce6aa0b8c31fc7d9d353c3fee919c3c300ab9e",
          "body": null,
          "is_bot": false,
          "headline": "chroe(test): remove old commonmark.v29.testsuite.json suite",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-28T14:35:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0336b4c26ce142e5ca67a1373cc370db5534e447",
          "body": null,
          "is_bot": false,
          "headline": "chroe(cli-test): small modernization of cli test suite and code",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-28T14:07:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f34b753724d4d1b42dcdf596445eb833f544d87b",
          "body": "simplifiedAutoLink and ghMentions ran only as a post-pass on the serialized\ninline output, where emphasis spans are already hashed, so a bare URL or\n@-mention inside emphasis was never linked. Extract the two passes into\napplyGfmInlineLinks() and also run it on emphasis inner content before it is\nwrapped and hashed. Link and image text are deliberately left untouched, so\ntheir content is never autolinked.",
          "is_bot": false,
          "headline": "fix(autolinks): link URLs and mentions inside emphasis",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-28T14:03:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a76c3fb78f58852029e98583f59d6edaabdb9f34",
          "body": "Skip the Alerts, Math and Mermaid sections in the gfm suite. These are\nGitHub.com renderer features, not part of the GFM spec, so showdown does\nnot produce them. The Emoji shortcodes renderer case already works and is\nleft running.",
          "is_bot": false,
          "headline": "test(gfm): skip GitHub renderer-only cases",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-27T22:26:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4fb992cd26631c108ec0410342630c80207ec7c6",
          "body": "An inline link or image whose angle-bracket destination contained a double\nquote could break out of the generated href/src attribute and inject\narbitrary attributes (e.g. ![a](<x\" onerror=alert(1) src=y>) yielded a live\nonerror handler). The URL was only escaped for `* _ : ~`, never `\"`.\n\nEscape `\"`\n[…]\nn before it is placed in the\nattribute, at both inline sinks. cmSpec flavors already percent-encode the\nURL, so this is a no-op there; it closes the hole for the default, vanilla\nand original flavors.",
          "is_bot": false,
          "headline": "fix(link,image): escape quotes in generated href/src",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-27T22:24:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2392f13aa0a3f68a0c41a25f9e701a3fd9cb187d",
          "body": "Implements the GFM \"disallowed raw HTML\" extension (tagfilter) behind a new\nopt-in `disallowRawHTML` option. When enabled, the leading `<` of a small\nblacklist of raw HTML tags (title, textarea, style, xmp, iframe, noembed,\nnoframes, script, plaintext) is escaped to `&lt;` in the output, neutralizin\n[…]\nut unchanged; it is documented in available-options.md and as a commented\nopt-in line in the gfm flavor. The two spec cases (1400/1500) are exercised in\nthe gfm suite via a dedicated opt-in converter.",
          "is_bot": false,
          "headline": "feat(disallowRawHTML): add GFM disallowed-raw-html tag filter",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-27T22:24:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e24ca0d9041607478bec47d5d00f870f93c79f79",
          "body": "- exclude a trailing entity-reference-like \"&name;\" from a URL autolink\n- stop a URL autolink at \"<\" (already escaped to \"&lt;\" by this pass)\n- percent-encode non-ASCII characters in the href; the display text keeps\n  the literal characters\n- recognise extended email autolinks: trim trailing punctua\n[…]\nhe host to contain\n  a dot; only \"www.\" autolinks are domain-validated\n\nAlso skip two non-applicable gfm cases: the \"<IGNORE>\" sentinel and the\n\"@a.b.c\" case that depends on a separate ghMentions fix.",
          "is_bot": false,
          "headline": "fix(autolinks): align GFM extended autolinks with the spec",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-27T22:13:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "166af1fa8798111912741f72d2773cd457518ea6",
          "body": "Add a GitHub Flavored Markdown section describing the table-alignment markup\n(`style=\"text-align\"` instead of the `align` attribute) and the always\nemitted empty `<tbody>`.",
          "is_bot": false,
          "headline": "docs(spec-compliance): document GFM flavor deviations",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-27T13:12:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae03aa7df7810c53de0b97043dc7441d0f710bcd",
          "body": "Group the GFM extension cases under one canonical section per feature\n(e.g. `Tables (extension)`, `Footnotes (extension)`, `Math (GitHub\nrenderer)`) and move the descriptive suffixes into a `notes` field, since\nthe origin is already recorded in `source`. Also align the bare-URL and\nemail autolink expectations with the simplifiedAutoLink output.",
          "is_bot": false,
          "headline": "test(gfm): consolidate extension test sections",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-27T13:12:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b340b43e2966c0d01e2158b1d6bb89f96ca1333e",
          "body": "Recognise a run of one or two tildes (`~foo~` as well as `~~foo~~`), matched\nin length, rejecting runs of three or more and runs of mismatched length,\nwith delimiter flanking. The match no longer spans a blank line.\n\nBREAKING CHANGE: text wrapped in single tildes (`~foo~`) is now rendered as\n`<del>foo</del>`. Escape the tildes to keep them literal.",
          "is_bot": false,
          "headline": "feat(strikethrough): support single-tilde strikethrough",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-27T13:12:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "94e0624ab807427309560af039815d1875be36e6",
          "body": "Task list items now render as the bare GFM form\n`<li><input disabled type=\"checkbox\"> text</li>` instead of carrying the\n`task-list-item` class and inline checkbox styles. The previous styled\noutput is preserved behind the `moreStyling` option.\n\nBREAKING CHANGE: by default task list items no longer include the\n`task-list-item` class, the `list-style-type` list style or the inline\ncheckbox margin style. Enable `moreStyling` to restore the previous output.",
          "is_bot": false,
          "headline": "feat(tasklists): emit GFM-compliant task list markup",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-27T13:11:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "92990a14ff41c6527d4661d4d5fd53c876ab6040",
          "body": "- accept single-dash delimiter columns (e.g. `:-:`, `| - |`) in both the\n  multi- and single-column matchers\n- recognise a single-column table whose delimiter row omits the leading\n  pipe (`| a |` over `--- |`)\n- require the header and delimiter rows to contain the same number of\n  cells; a mismatch\n[…]\nBREAKING CHANGE: a table whose header and delimiter rows have a different\nnumber of cells (e.g. `| a | b |` over `| --- |`) is no longer recognised\nas a table and renders as a paragraph, matching GFM.",
          "is_bot": false,
          "headline": "fix(table): align table parsing with the GFM spec",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-27T13:11:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9fc09ec49051f89b9384be699f52728a0955bd20",
          "body": null,
          "is_bot": false,
          "headline": "fix malformed json",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-27T00:28:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fea8be7776f49b3fac306189b6a974bf38ab7273",
          "body": null,
          "is_bot": false,
          "headline": "compliance(gfm): begin gfm compliance imporvement",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-27T00:26:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d2a8d07725ed0740797090012be08158fc53c84",
          "body": null,
          "is_bot": false,
          "headline": "test(commonark): bump commonmark.testsuite.json version to latest",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-27T00:04:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "17b16b7cd05f5f569fa283d02b86f3dc064e4fb4",
          "body": "…zy setext underlines\n\n- githubCodeBlock: allow backticks/tildes in a tilde fence's info string while\n  keeping the opening fence maximal, and reject backtick fences whose info string\n  contains a backtick (spec example 146).\n- blockquote: a setext underline that is a lazy continuation line no longer turns\n  the preceding paragraph into a heading inside a block quote (spec example 93).\n- test: enable commonmark examples 93 and 146 and normalize 146's language class.",
          "is_bot": false,
          "headline": "fix(makehtml): comply with CommonMark fenced-code info strings and la…",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-27T00:03:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae1d54774c5b75f9155e3d40e8a793e70198d543",
          "body": "# Conflicts:\n#\tsrc/subParsers/makehtml/link.js",
          "is_bot": false,
          "headline": "Merge branch '922-commonmark-compliance' into develop",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-23T01:49:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0f842e55c7d24f13dedffb1b823e7f6e377806ae",
          "body": null,
          "is_bot": false,
          "headline": "docs: remove COMMONMARK-PROGRESS.md dev-notes file",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-23T01:37:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c05d7421099b39b090ff239a3121988cd693bd8",
          "body": null,
          "is_bot": false,
          "headline": "chore(dist): rebuild dist and bin",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-23T01:33:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d7294dc96fe927a8f839503868438e5290fb993",
          "body": "Under cmSpec, spanGamut ran strikethrough/emoji and then encodeAmpsAndAngles\nwithout hashing the raw HTML they emit, so strikethrough's <del> and\nimage-based emoji's <img> had their </> escaped to &lt;/&gt;. Add the\nhashHTMLSpans pass before encodeAmpsAndAngles (mirroring the legacy branch)\nto prote\n[…]\n now hashes its own <img> output\nbecause the generic span hashing skips void tags under cmSpec.\n\nOutput now matches the legacy path. Adds cmSpec-strikethrough and\ncmSpec-emoji-img regression fixtures.",
          "is_bot": false,
          "headline": "fix(cmSpec): stop escaping generated HTML from strikethrough and emoji",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-23T01:28:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8a661d0d2d342c41e65f246c4abba580b39931a1",
          "body": "smoothLivePreview was defined in the options but never read by any\nsubparser, so it had no effect. Remove it.\n\nBREAKING CHANGE: the smoothLivePreview option is removed. It was a no-op\n(unimplemented), so passing it had no effect; remove it from any config.",
          "is_bot": false,
          "headline": "refactor(options): remove the dead smoothLivePreview option",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-23T01:18:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4d7050f894bf73d0319ca169e302b96710a5787",
          "body": "Spawn the CLI with a color-free base environment so an inherited\nFORCE_COLOR (e.g. from an IDE test runner) no longer makes assertions\nfail on unexpected ANSI codes; explicit per-test env still wins.\n\nMove the file-output tests off the shared .build/ scratch dir into a\nthrowaway temp directory and assert the spawn succeeded before reading\nresults back, removing the read-before-write races that surfaced as\nflaky ENOENT failures.",
          "is_bot": false,
          "headline": "test(cli): make CLI tests deterministic and isolate file output",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-23T01:14:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7cad47e7317a89f4c4904515128298f5f8b2235",
          "body": "underline now runs before cmInline in the cmSpec branch (claiming __/___\nas <u> and escaping remaining underscores, mirroring the legacy order\nrelative to emphasis); underline.js also resolves an escaped \\_ to the\nescape placeholder so it works before backslash escapes are otherwise\nprocessed. cmLis\n[…]\nt GFM extras) and which are ignored because cmSpec replaces\nthe parser they tweak (literalMidWordUnderscores,\ndisableForced4SpacesIndentedSublists, splitAdjacentBlockquotes,\nbackslashEscapesHTMLTags).",
          "is_bot": false,
          "headline": "feat(cmSpec): support underline and GFM task lists under cmSpec",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-23T00:49:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4e7ee79f3e25cc4e7789cf44c9e0777d00d26146",
          "body": "parseCmLinkDefinitions now captures =WxH into globals.gDimensions and\ncmInline's reference-image branch reads it, so ![a][r] + [r]: x =WxH\nrenders width/height under cmSpec, matching the inline and legacy paths.",
          "is_bot": false,
          "headline": "feat(cmSpec): support reference-style image dimensions under cmSpec",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-23T00:25:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5e4efe7b1ca9e026a1de286f32250e32fbdbad39",
          "body": null,
          "is_bot": false,
          "headline": ".",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-23T00:20:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1200139e5aeb4c4f6c1410cec0440d8873baa26e",
          "body": "Make ghMentions, ghMentionsLink, simplifiedAutoLink, httpsAutoLinks,\nencodeEmails and inline parseImgDimensions work when cmSpec is on, by\nextending cmInline (the parallel CommonMark inline path), which previously\nbypassed link.js/image.js and silently ignored them. ghMentions and\nsimplifiedAutoLink\n[…]\napes in cmInline to emit Showdown escape\nplaceholders for ordinary punctuation, so escaped chars (e.g. \\@mention,\n\\~, \\*) are not re-processed by the GFM/inline post-passes - matching\nthe legacy path.",
          "is_bot": false,
          "headline": "feat(cmSpec): support GFM link/image options under cmSpec",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-23T00:20:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fb28a68dcae4c8ca5080c9863b822e59321244f1",
          "body": "Inline images always rendered =WxH dimensions regardless of the\nparseImgDimensions option; only reference-style definitions respected it\n(image.js never read the option). Gate inline width/height on the option,\nconsistent with the reference path: the =WxH syntax is still consumed but\nthe attributes are dropped when the option is off.",
          "is_bot": false,
          "headline": "fix(image): honor parseImgDimensions for inline images",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-22T23:16:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6a74eec87b4917805bd81d24f69eb38819a4fa82",
          "body": "A glob in the path portion of a pattern (e.g. `**/`, `src/*/`) now reports\nthat recursive/multi-level globs are unsupported instead of silently\nmatching nothing, and passing a directory as input reports \"is a directory,\nnot a file\" with a glob hint instead of a raw EISDIR error.",
          "is_bot": false,
          "headline": "fix(cli): clearer messages for recursive globs and directory inputs",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-22T23:10:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6fdcca9056a1c2fb8b3edcf45081c76134fcfc9b",
          "body": "…tput\n\nBatch output previously only recognised an output directory that already\nexisted, so `-o out/` failed with \"is not a directory\" and a single\n`-o nodir/` silently created a file named `nodir`.\n\nNow a path ending in a separator (or an existing directory) is treated as\ndirectory output, the dire\n[…]\nissing, and a single input\ncan be written into a directory the same way. Writing stdin to a directory\nis rejected with a clear message since there is no source name to derive\nthe output filename from.",
          "is_bot": false,
          "headline": "fix(cli): create batch output directories and honor trailing-slash ou…",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-22T21:56:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fc1d451ee0338643ca1490cc2e0f11f3af2e560e",
          "body": null,
          "is_bot": false,
          "headline": ".",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-22T21:45:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5e758f4f6ed51db1d0eccae52c60e8a524f2adc6",
          "body": "Each assertion in the CLI suite spawns a `node` subprocess, which under\nfull-suite CPU load can exceed mocha's 3s default timeout and fail\nintermittently. Give the suite a 15s timeout so the spawns have room.",
          "is_bot": false,
          "headline": "test(cli): raise timeout for the spawn-based CLI suite",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-22T03:19:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0e7acea15e92ab45451f5b61ffe1e949690ba6a7",
          "body": "strikethrough now defaults to true, so ~~text~~ renders as <del> without\nopt-in. It is on for the vanilla and github flavors; the spec-oriented\noriginal (Gruber) and commonmark flavors disable it explicitly. Removed the\nnow-redundant strikethrough override from the github preset.\n\nBREAKING CHANGE: s\n[…]\n.~~ renders as <del>...</del>, and the reverse\ndirection converts <del>/<s> back to ~~. Set strikethrough: false to restore\nthe previous behavior. The original and commonmark flavors keep it disabled.",
          "is_bot": false,
          "headline": "feat(options): enable strikethrough by default",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-22T02:23:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9be4b3c397e84cc18b0c260204975b9d69de260e",
          "body": "Both makehtml and makemarkdown now accept multiple inputs and glob\npatterns, and gain a verbose level plus colorized messages. No new\ndependencies.\n\n- Input (-i) is variadic and accepts glob patterns. Shell-expanded\n  globs keep working; a built-in single-level matcher (* and ?) covers\n  Windows and\n[…]\never colored.\n- Refactor the Messenger helper to an options object and route option\n  warnings through a dedicated warning channel.\n\nDocs updated for multi-input/glob, batch output, verbose and color.",
          "is_bot": false,
          "headline": "feat(cli): add batch/glob input, verbose mode and colored output",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-22T01:35:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4c6a237a5fd2cab2388ceed8854f7e3638e4c267",
          "body": "A filter that returns nothing no longer empties the output; since lang/output\nextensions run as event listeners, the transformation is silently skipped and\nthe text passes through unchanged.",
          "is_bot": false,
          "headline": "docs(extensions): correct stale filter return-value warning",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-22T01:18:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8affebd26426b06eb55a82c42726327c53f7bdd9",
          "body": "Document a listener-extension replacement in docs/event-system.md\n(a makehtml.link.*.onCapture listener that sets target/rel).\n\nBREAKING CHANGE: the openLinksInNewWindow option is removed. Use a\nlistener extension on makehtml.link.*.onCapture to add target/rel\nattributes to anchors instead (see docs/event-system.md).",
          "is_bot": false,
          "headline": "fix(options): remove the openLinksInNewWindow option",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-22T01:16:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9d42617e748c13c5314417c1e9bfc2761d0f5e7a",
          "body": null,
          "is_bot": false,
          "headline": "docs(api-reference): document showdown.getFlavors()",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-22T00:23:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0e03db9df89af23ef78cdc4c0fb7799feb415028",
          "body": "Add `mochaTest:commonmark` to the default `test` task so the CommonMark\nspec compliance suite gates the build alongside the unit and functional\nsuites. The suite runs against the committed\n`cases/commonmark.testsuite.json` fixture; regenerating that fixture\nstays in the dedicated `test-commonmark` task.",
          "is_bot": false,
          "headline": "test: run the CommonMark spec suite as part of grunt test",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-22T00:06:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d4d8dd4fdd04938e7b3c17894eb930bc31bf57e8",
          "body": "Convert `var` to block-scoped `let`/`const` across the makemarkdown\nsubparsers, the converter, the CLI and other core modules, and swap the\ndeprecated `String.prototype.substr()` calls for `slice()` equivalents.\nAlso drop a redundant local in the ATX heading parser and add a few IDE\ninspection hints. No behavioral change.",
          "is_bot": false,
          "headline": "refactor: modernize var declarations and replace deprecated substr()",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-22T00:06:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "43f10580f2b82d205dbc8fa0be8e734ad7c5b49c",
          "body": "The github flavor enabled simpleLineBreaks, turning every single newline\ninto a <br>. GitHub only does that in comment fields; when rendering\nmarkdown files it follows the GFM/CommonMark spec, where a soft line\nbreak is a space. Removing it from the preset makes the github flavor\nmatch the spec. The\n[…]\nNGE: the github flavor no longer enables simpleLineBreaks, so\nsingle newlines inside a paragraph are no longer rendered as <br>. Set\nsimpleLineBreaks: true explicitly to restore the previous behavior.",
          "is_bot": false,
          "headline": "fix(flavors): drop simpleLineBreaks from the github flavor",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-21T23:44:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "31db6ad3d3d10133172e0dddb4a58113eab3ddb3",
          "body": "lang/output extensions run as listeners on the document-level makehtml events,\nso the options passed to a filter is a read-only clone. Reading is unchanged;\nmutating it has no effect (which was never supported anyway).",
          "is_bot": false,
          "headline": "docs(extensions): note that filter options is now a read-only copy",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-21T23:43:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cdda4f037df00d3e40010a298645771311670e00",
          "body": "Assert that every makehtml and makeMarkdown subparser emits its onStart event\nat least once across a feature-rich conversion. Guards against a subparser\nbeing added (or silently losing its event dispatch) without a corresponding\ntest; on failure the assertion lists the subparsers whose onStart never fired.",
          "is_bot": false,
          "headline": "test(events): add generic subparser event-coverage sweep",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-21T23:39:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d34629827ed2dc21ada71af05fdd58ec5906c05",
          "body": "…fire once\n\n- warn at most once per process per deprecated extension type (lang/output)\n  instead of once per extension load, via a module-scope guard in\n  _parseExtension\n- add event-firing tests for the previously-untested capture/hash events\n  makehtml.link.angleBrackets, makehtml.link.autoLink, \n[…]\nr \"events\" test block (which listened on\n  the removed .before/.after special events) with real tests that assert a\n  listener fires and can modify output, and that the removed events no longer\n  fire",
          "is_bot": false,
          "headline": "test(extensions): cover untested events and make deprecation warning …",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-21T23:27:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fd7981b9d82d3253ee0a3665fa5664c21544c663",
          "body": null,
          "is_bot": false,
          "headline": ".",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-21T12:08:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9bf1fdd00020a37be6b81bdc976061b19ed22842",
          "body": "# Conflicts:\n#\tsrc/subParsers/makehtml/link.js",
          "is_bot": false,
          "headline": "Merge branch 'develop' of github.com:showdownjs/showdown into develop",
          "author_name": "Estêvão Soares dos Santos",
          "author_login": "tivie",
          "committed_at": "2026-06-21T12:07:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 54,
      "commits_last_year": 188,
      "latest_release_at": "2022-04-21T00:32:33Z",
      "latest_release_tag": "2.1.0",
      "releases_from_tags": false,
      "days_since_last_push": 3,
      "active_weeks_last_year": 5,
      "days_since_latest_release": 1554,
      "mean_days_between_releases": 176.8
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 62,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "showdown",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "markdown",
            "converter"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/showdown",
          "is_deprecated": false,
          "latest_version": "2.1.0",
          "repository_url": "https://github.com/showdownjs/showdown",
          "versions_count": 62,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 5622437,
          "first_published_at": "2011-04-12T02:19:21.530000Z",
          "latest_published_at": "2022-04-21T00:33:05.614000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 1554
        }
      ]
    },
    "popularity": {
      "forks": 1568,
      "stars": 14873,
      "watchers": 184,
      "fork_history": {
        "days": [
          {
            "date": "2016-08-25",
            "count": 1
          },
          {
            "date": "2016-08-28",
            "count": 1
          },
          {
            "date": "2016-09-01",
            "count": 2
          },
          {
            "date": "2016-09-09",
            "count": 1
          },
          {
            "date": "2016-09-18",
            "count": 1
          },
          {
            "date": "2016-09-19",
            "count": 1
          },
          {
            "date": "2016-09-23",
            "count": 1
          },
          {
            "date": "2016-09-24",
            "count": 1
          },
          {
            "date": "2016-09-26",
            "count": 2
          },
          {
            "date": "2016-09-27",
            "count": 1
          },
          {
            "date": "2016-10-11",
            "count": 1
          },
          {
            "date": "2016-10-12",
            "count": 2
          },
          {
            "date": "2016-10-14",
            "count": 1
          },
          {
            "date": "2016-10-15",
            "count": 1
          },
          {
            "date": "2016-10-16",
            "count": 1
          },
          {
            "date": "2016-10-17",
            "count": 1
          },
          {
            "date": "2016-10-21",
            "count": 1
          },
          {
            "date": "2016-10-22",
            "count": 1
          },
          {
            "date": "2016-10-25",
            "count": 2
          },
          {
            "date": "2016-10-27",
            "count": 1
          },
          {
            "date": "2016-10-28",
            "count": 1
          },
          {
            "date": "2016-11-01",
            "count": 1
          },
          {
            "date": "2016-11-05",
            "count": 1
          },
          {
            "date": "2016-11-09",
            "count": 1
          },
          {
            "date": "2016-11-10",
            "count": 1
          },
          {
            "date": "2016-11-16",
            "count": 1
          },
          {
            "date": "2016-11-19",
            "count": 1
          },
          {
            "date": "2016-11-23",
            "count": 1
          },
          {
            "date": "2016-11-28",
            "count": 1
          },
          {
            "date": "2016-11-29",
            "count": 1
          },
          {
            "date": "2016-12-01",
            "count": 1
          },
          {
            "date": "2016-12-05",
            "count": 1
          },
          {
            "date": "2016-12-06",
            "count": 2
          },
          {
            "date": "2016-12-08",
            "count": 1
          },
          {
            "date": "2016-12-11",
            "count": 1
          },
          {
            "date": "2016-12-12",
            "count": 2
          },
          {
            "date": "2016-12-19",
            "count": 1
          },
          {
            "date": "2016-12-21",
            "count": 1
          },
          {
            "date": "2016-12-30",
            "count": 1
          },
          {
            "date": "2017-01-02",
            "count": 1
          },
          {
            "date": "2017-01-03",
            "count": 1
          },
          {
            "date": "2017-01-10",
            "count": 1
          },
          {
            "date": "2017-01-12",
            "count": 1
          },
          {
            "date": "2017-01-14",
            "count": 1
          },
          {
            "date": "2017-01-17",
            "count": 2
          },
          {
            "date": "2017-01-18",
            "count": 1
          },
          {
            "date": "2017-01-20",
            "count": 1
          },
          {
            "date": "2017-01-23",
            "count": 1
          },
          {
            "date": "2017-01-25",
            "count": 1
          },
          {
            "date": "2017-01-26",
            "count": 1
          },
          {
            "date": "2017-01-28",
            "count": 1
          },
          {
            "date": "2017-02-05",
            "count": 1
          },
          {
            "date": "2017-02-07",
            "count": 1
          },
          {
            "date": "2017-02-08",
            "count": 1
          },
          {
            "date": "2017-02-14",
            "count": 2
          },
          {
            "date": "2017-02-16",
            "count": 2
          },
          {
            "date": "2017-02-17",
            "count": 1
          },
          {
            "date": "2017-02-19",
            "count": 1
          },
          {
            "date": "2017-02-20",
            "count": 2
          },
          {
            "date": "2017-02-24",
            "count": 1
          },
          {
            "date": "2017-03-03",
            "count": 1
          },
          {
            "date": "2017-03-04",
            "count": 1
          },
          {
            "date": "2017-03-06",
            "count": 1
          },
          {
            "date": "2017-03-09",
            "count": 1
          },
          {
            "date": "2017-03-10",
            "count": 1
          },
          {
            "date": "2017-03-13",
            "count": 3
          },
          {
            "date": "2017-03-14",
            "count": 2
          },
          {
            "date": "2017-03-16",
            "count": 1
          },
          {
            "date": "2017-03-22",
            "count": 1
          },
          {
            "date": "2017-03-24",
            "count": 1
          },
          {
            "date": "2017-03-26",
            "count": 1
          },
          {
            "date": "2017-03-28",
            "count": 2
          },
          {
            "date": "2017-03-29",
            "count": 1
          },
          {
            "date": "2017-03-30",
            "count": 1
          },
          {
            "date": "2017-04-01",
            "count": 1
          },
          {
            "date": "2017-04-03",
            "count": 1
          },
          {
            "date": "2017-04-08",
            "count": 1
          },
          {
            "date": "2017-04-09",
            "count": 1
          },
          {
            "date": "2017-04-10",
            "count": 1
          },
          {
            "date": "2017-04-12",
            "count": 1
          },
          {
            "date": "2017-04-20",
            "count": 1
          },
          {
            "date": "2017-04-26",
            "count": 1
          },
          {
            "date": "2017-04-28",
            "count": 1
          },
          {
            "date": "2017-05-02",
            "count": 1
          },
          {
            "date": "2017-05-07",
            "count": 1
          },
          {
            "date": "2017-05-12",
            "count": 1
          },
          {
            "date": "2017-05-14",
            "count": 1
          },
          {
            "date": "2017-05-25",
            "count": 1
          },
          {
            "date": "2017-06-01",
            "count": 1
          },
          {
            "date": "2017-06-02",
            "count": 1
          },
          {
            "date": "2017-06-03",
            "count": 1
          },
          {
            "date": "2017-06-04",
            "count": 1
          },
          {
            "date": "2017-06-13",
            "count": 1
          },
          {
            "date": "2017-06-19",
            "count": 1
          },
          {
            "date": "2017-06-22",
            "count": 2
          },
          {
            "date": "2017-06-23",
            "count": 1
          },
          {
            "date": "2017-06-25",
            "count": 1
          },
          {
            "date": "2017-06-27",
            "count": 1
          },
          {
            "date": "2017-06-28",
            "count": 2
          },
          {
            "date": "2017-07-03",
            "count": 1
          },
          {
            "date": "2017-07-08",
            "count": 1
          },
          {
            "date": "2017-07-10",
            "count": 3
          },
          {
            "date": "2017-07-11",
            "count": 1
          },
          {
            "date": "2017-07-12",
            "count": 2
          },
          {
            "date": "2017-07-13",
            "count": 1
          },
          {
            "date": "2017-07-17",
            "count": 1
          },
          {
            "date": "2017-07-18",
            "count": 2
          },
          {
            "date": "2017-07-19",
            "count": 1
          },
          {
            "date": "2017-07-24",
            "count": 1
          },
          {
            "date": "2017-07-25",
            "count": 1
          },
          {
            "date": "2017-07-28",
            "count": 1
          },
          {
            "date": "2017-07-31",
            "count": 2
          },
          {
            "date": "2017-08-04",
            "count": 1
          },
          {
            "date": "2017-08-07",
            "count": 1
          },
          {
            "date": "2017-08-08",
            "count": 1
          },
          {
            "date": "2017-08-10",
            "count": 1
          },
          {
            "date": "2017-08-15",
            "count": 2
          },
          {
            "date": "2017-08-18",
            "count": 2
          },
          {
            "date": "2017-08-21",
            "count": 2
          },
          {
            "date": "2017-08-22",
            "count": 1
          },
          {
            "date": "2017-08-24",
            "count": 1
          },
          {
            "date": "2017-08-25",
            "count": 3
          },
          {
            "date": "2017-08-31",
            "count": 1
          },
          {
            "date": "2017-09-05",
            "count": 1
          },
          {
            "date": "2017-09-06",
            "count": 1
          },
          {
            "date": "2017-09-08",
            "count": 1
          },
          {
            "date": "2017-09-12",
            "count": 2
          },
          {
            "date": "2017-09-17",
            "count": 1
          },
          {
            "date": "2017-09-22",
            "count": 1
          },
          {
            "date": "2017-09-27",
            "count": 2
          },
          {
            "date": "2017-09-28",
            "count": 1
          },
          {
            "date": "2017-09-30",
            "count": 1
          },
          {
            "date": "2017-10-01",
            "count": 1
          },
          {
            "date": "2017-10-07",
            "count": 1
          },
          {
            "date": "2017-10-10",
            "count": 1
          },
          {
            "date": "2017-10-14",
            "count": 1
          },
          {
            "date": "2017-10-17",
            "count": 1
          },
          {
            "date": "2017-10-18",
            "count": 1
          },
          {
            "date": "2017-10-19",
            "count": 1
          },
          {
            "date": "2017-10-20",
            "count": 2
          },
          {
            "date": "2017-10-25",
            "count": 2
          },
          {
            "date": "2017-11-01",
            "count": 1
          },
          {
            "date": "2017-11-08",
            "count": 1
          },
          {
            "date": "2017-11-10",
            "count": 1
          },
          {
            "date": "2017-11-11",
            "count": 1
          },
          {
            "date": "2017-11-14",
            "count": 1
          },
          {
            "date": "2017-11-16",
            "count": 1
          },
          {
            "date": "2017-11-19",
            "count": 1
          },
          {
            "date": "2017-11-20",
            "count": 1
          },
          {
            "date": "2017-11-21",
            "count": 2
          },
          {
            "date": "2017-11-24",
            "count": 1
          },
          {
            "date": "2017-11-29",
            "count": 1
          },
          {
            "date": "2017-11-30",
            "count": 1
          },
          {
            "date": "2017-12-06",
            "count": 2
          },
          {
            "date": "2017-12-07",
            "count": 1
          },
          {
            "date": "2017-12-08",
            "count": 2
          },
          {
            "date": "2017-12-10",
            "count": 1
          },
          {
            "date": "2017-12-12",
            "count": 1
          },
          {
            "date": "2017-12-15",
            "count": 1
          },
          {
            "date": "2017-12-18",
            "count": 1
          },
          {
            "date": "2017-12-20",
            "count": 1
          },
          {
            "date": "2017-12-23",
            "count": 1
          },
          {
            "date": "2017-12-27",
            "count": 1
          },
          {
            "date": "2018-01-03",
            "count": 1
          },
          {
            "date": "2018-01-06",
            "count": 1
          },
          {
            "date": "2018-01-09",
            "count": 1
          },
          {
            "date": "2018-01-12",
            "count": 1
          },
          {
            "date": "2018-01-13",
            "count": 1
          },
          {
            "date": "2018-01-14",
            "count": 1
          },
          {
            "date": "2018-01-22",
            "count": 1
          },
          {
            "date": "2018-01-24",
            "count": 1
          },
          {
            "date": "2018-01-25",
            "count": 3
          },
          {
            "date": "2018-01-27",
            "count": 1
          },
          {
            "date": "2018-01-28",
            "count": 1
          },
          {
            "date": "2018-01-29",
            "count": 1
          },
          {
            "date": "2018-01-31",
            "count": 1
          },
          {
            "date": "2018-02-01",
            "count": 2
          },
          {
            "date": "2018-02-02",
            "count": 1
          },
          {
            "date": "2018-02-05",
            "count": 1
          },
          {
            "date": "2018-02-06",
            "count": 1
          },
          {
            "date": "2018-02-08",
            "count": 1
          },
          {
            "date": "2018-02-12",
            "count": 1
          },
          {
            "date": "2018-02-13",
            "count": 1
          },
          {
            "date": "2018-02-22",
            "count": 1
          },
          {
            "date": "2018-02-23",
            "count": 1
          },
          {
            "date": "2018-02-25",
            "count": 1
          },
          {
            "date": "2018-02-28",
            "count": 1
          },
          {
            "date": "2018-03-07",
            "count": 2
          },
          {
            "date": "2018-03-09",
            "count": 2
          },
          {
            "date": "2018-03-10",
            "count": 1
          },
          {
            "date": "2018-03-11",
            "count": 1
          },
          {
            "date": "2018-03-12",
            "count": 4
          },
          {
            "date": "2018-03-25",
            "count": 1
          },
          {
            "date": "2018-03-26",
            "count": 1
          },
          {
            "date": "2018-03-27",
            "count": 2
          },
          {
            "date": "2018-03-28",
            "count": 1
          },
          {
            "date": "2018-03-29",
            "count": 1
          },
          {
            "date": "2018-04-03",
            "count": 2
          },
          {
            "date": "2018-04-04",
            "count": 1
          },
          {
            "date": "2018-04-05",
            "count": 1
          },
          {
            "date": "2018-04-06",
            "count": 2
          },
          {
            "date": "2018-04-08",
            "count": 1
          },
          {
            "date": "2018-04-10",
            "count": 3
          },
          {
            "date": "2018-04-11",
            "count": 1
          },
          {
            "date": "2018-04-12",
            "count": 2
          },
          {
            "date": "2018-04-13",
            "count": 2
          },
          {
            "date": "2018-04-15",
            "count": 1
          },
          {
            "date": "2018-04-17",
            "count": 1
          },
          {
            "date": "2018-04-18",
            "count": 1
          },
          {
            "date": "2018-04-20",
            "count": 1
          },
          {
            "date": "2018-04-24",
            "count": 1
          },
          {
            "date": "2018-04-25",
            "count": 1
          },
          {
            "date": "2018-04-26",
            "count": 1
          },
          {
            "date": "2018-05-12",
            "count": 2
          },
          {
            "date": "2018-05-21",
            "count": 1
          },
          {
            "date": "2018-05-23",
            "count": 1
          },
          {
            "date": "2018-06-02",
            "count": 2
          },
          {
            "date": "2018-06-04",
            "count": 1
          },
          {
            "date": "2018-06-05",
            "count": 2
          },
          {
            "date": "2018-06-08",
            "count": 2
          },
          {
            "date": "2018-06-09",
            "count": 1
          },
          {
            "date": "2018-06-11",
            "count": 1
          },
          {
            "date": "2018-06-12",
            "count": 1
          },
          {
            "date": "2018-06-13",
            "count": 1
          },
          {
            "date": "2018-06-14",
            "count": 1
          },
          {
            "date": "2018-06-15",
            "count": 1
          },
          {
            "date": "2018-06-23",
            "count": 1
          },
          {
            "date": "2018-06-26",
            "count": 1
          },
          {
            "date": "2018-06-27",
            "count": 1
          },
          {
            "date": "2018-06-28",
            "count": 1
          },
          {
            "date": "2018-06-30",
            "count": 1
          },
          {
            "date": "2018-07-03",
            "count": 3
          },
          {
            "date": "2018-07-04",
            "count": 2
          },
          {
            "date": "2018-07-10",
            "count": 1
          },
          {
            "date": "2018-07-11",
            "count": 1
          },
          {
            "date": "2018-07-15",
            "count": 1
          },
          {
            "date": "2018-07-24",
            "count": 1
          },
          {
            "date": "2018-07-25",
            "count": 1
          },
          {
            "date": "2018-07-26",
            "count": 1
          },
          {
            "date": "2018-07-27",
            "count": 1
          },
          {
            "date": "2018-07-29",
            "count": 1
          },
          {
            "date": "2018-07-30",
            "count": 2
          },
          {
            "date": "2018-08-04",
            "count": 1
          },
          {
            "date": "2018-08-08",
            "count": 1
          },
          {
            "date": "2018-08-10",
            "count": 1
          },
          {
            "date": "2018-08-13",
            "count": 1
          },
          {
            "date": "2018-08-15",
            "count": 2
          },
          {
            "date": "2018-08-16",
            "count": 1
          },
          {
            "date": "2018-08-17",
            "count": 1
          },
          {
            "date": "2018-08-18",
            "count": 1
          },
          {
            "date": "2018-08-19",
            "count": 1
          },
          {
            "date": "2018-08-22",
            "count": 2
          },
          {
            "date": "2018-08-24",
            "count": 1
          },
          {
            "date": "2018-08-25",
            "count": 2
          },
          {
            "date": "2018-08-26",
            "count": 1
          },
          {
            "date": "2018-08-30",
            "count": 1
          },
          {
            "date": "2018-08-31",
            "count": 1
          },
          {
            "date": "2018-09-03",
            "count": 1
          },
          {
            "date": "2018-09-07",
            "count": 2
          },
          {
            "date": "2018-09-09",
            "count": 1
          },
          {
            "date": "2018-09-11",
            "count": 1
          },
          {
            "date": "2018-09-13",
            "count": 2
          },
          {
            "date": "2018-09-14",
            "count": 1
          },
          {
            "date": "2018-09-15",
            "count": 1
          },
          {
            "date": "2018-09-20",
            "count": 1
          },
          {
            "date": "2018-09-21",
            "count": 1
          },
          {
            "date": "2018-09-25",
            "count": 1
          },
          {
            "date": "2018-09-26",
            "count": 1
          },
          {
            "date": "2018-09-27",
            "count": 1
          },
          {
            "date": "2018-09-29",
            "count": 1
          },
          {
            "date": "2018-10-03",
            "count": 1
          },
          {
            "date": "2018-10-06",
            "count": 1
          },
          {
            "date": "2018-10-08",
            "count": 1
          },
          {
            "date": "2018-10-09",
            "count": 1
          },
          {
            "date": "2018-10-12",
            "count": 1
          },
          {
            "date": "2018-10-15",
            "count": 1
          },
          {
            "date": "2018-10-17",
            "count": 3
          },
          {
            "date": "2018-10-18",
            "count": 4
          },
          {
            "date": "2018-10-19",
            "count": 1
          },
          {
            "date": "2018-10-20",
            "count": 1
          },
          {
            "date": "2018-10-24",
            "count": 1
          },
          {
            "date": "2018-10-26",
            "count": 3
          },
          {
            "date": "2018-10-29",
            "count": 2
          },
          {
            "date": "2018-10-31",
            "count": 1
          },
          {
            "date": "2018-11-01",
            "count": 2
          },
          {
            "date": "2018-11-03",
            "count": 1
          },
          {
            "date": "2018-11-06",
            "count": 1
          },
          {
            "date": "2018-11-07",
            "count": 1
          },
          {
            "date": "2018-11-10",
            "count": 1
          },
          {
            "date": "2018-11-13",
            "count": 2
          },
          {
            "date": "2018-11-14",
            "count": 1
          },
          {
            "date": "2018-11-15",
            "count": 1
          },
          {
            "date": "2018-11-18",
            "count": 1
          },
          {
            "date": "2018-11-21",
            "count": 2
          },
          {
            "date": "2018-11-22",
            "count": 1
          },
          {
            "date": "2018-11-23",
            "count": 2
          },
          {
            "date": "2018-11-24",
            "count": 1
          },
          {
            "date": "2018-11-26",
            "count": 1
          },
          {
            "date": "2018-11-29",
            "count": 1
          },
          {
            "date": "2018-11-30",
            "count": 1
          },
          {
            "date": "2018-12-03",
            "count": 1
          },
          {
            "date": "2018-12-04",
            "count": 1
          },
          {
            "date": "2018-12-05",
            "count": 1
          },
          {
            "date": "2018-12-06",
            "count": 1
          },
          {
            "date": "2018-12-09",
            "count": 1
          },
          {
            "date": "2018-12-15",
            "count": 2
          },
          {
            "date": "2018-12-16",
            "count": 1
          },
          {
            "date": "2018-12-17",
            "count": 1
          },
          {
            "date": "2018-12-18",
            "count": 1
          },
          {
            "date": "2018-12-20",
            "count": 2
          },
          {
            "date": "2018-12-21",
            "count": 2
          },
          {
            "date": "2018-12-24",
            "count": 1
          },
          {
            "date": "2018-12-26",
            "count": 1
          },
          {
            "date": "2018-12-27",
            "count": 1
          },
          {
            "date": "2018-12-30",
            "count": 1
          },
          {
            "date": "2018-12-31",
            "count": 1
          },
          {
            "date": "2019-01-01",
            "count": 1
          },
          {
            "date": "2019-01-06",
            "count": 2
          },
          {
            "date": "2019-01-07",
            "count": 3
          },
          {
            "date": "2019-01-10",
            "count": 1
          },
          {
            "date": "2019-01-11",
            "count": 1
          },
          {
            "date": "2019-01-12",
            "count": 1
          },
          {
            "date": "2019-01-16",
            "count": 1
          },
          {
            "date": "2019-01-17",
            "count": 1
          },
          {
            "date": "2019-01-18",
            "count": 1
          },
          {
            "date": "2019-01-20",
            "count": 1
          },
          {
            "date": "2019-01-21",
            "count": 1
          },
          {
            "date": "2019-01-22",
            "count": 1
          },
          {
            "date": "2019-01-24",
            "count": 2
          },
          {
            "date": "2019-01-25",
            "count": 2
          },
          {
            "date": "2019-01-28",
            "count": 1
          },
          {
            "date": "2019-01-29",
            "count": 1
          },
          {
            "date": "2019-01-31",
            "count": 2
          },
          {
            "date": "2019-02-01",
            "count": 1
          },
          {
            "date": "2019-02-02",
            "count": 1
          },
          {
            "date": "2019-02-08",
            "count": 1
          },
          {
            "date": "2019-02-12",
            "count": 2
          },
          {
            "date": "2019-02-13",
            "count": 3
          },
          {
            "date": "2019-02-15",
            "count": 1
          },
          {
            "date": "2019-02-20",
            "count": 1
          },
          {
            "date": "2019-02-21",
            "count": 1
          },
          {
            "date": "2019-02-23",
            "count": 3
          },
          {
            "date": "2019-02-27",
            "count": 1
          },
          {
            "date": "2019-03-06",
            "count": 1
          },
          {
            "date": "2019-03-08",
            "count": 1
          },
          {
            "date": "2019-03-09",
            "count": 1
          },
          {
            "date": "2019-03-10",
            "count": 1
          },
          {
            "date": "2019-03-11",
            "count": 2
          },
          {
            "date": "2019-03-13",
            "count": 1
          },
          {
            "date": "2019-03-15",
            "count": 1
          },
          {
            "date": "2019-03-16",
            "count": 1
          },
          {
            "date": "2019-03-17",
            "count": 1
          },
          {
            "date": "2019-03-20",
            "count": 1
          },
          {
            "date": "2019-03-21",
            "count": 1
          },
          {
            "date": "2019-03-23",
            "count": 1
          },
          {
            "date": "2019-03-27",
            "count": 1
          },
          {
            "date": "2019-04-01",
            "count": 2
          },
          {
            "date": "2019-04-03",
            "count": 4
          },
          {
            "date": "2019-04-04",
            "count": 1
          },
          {
            "date": "2019-04-07",
            "count": 2
          },
          {
            "date": "2019-04-08",
            "count": 1
          },
          {
            "date": "2019-04-11",
            "count": 1
          },
          {
            "date": "2019-04-12",
            "count": 2
          },
          {
            "date": "2019-04-14",
            "count": 1
          },
          {
            "date": "2019-04-16",
            "count": 1
          },
          {
            "date": "2019-04-17",
            "count": 1
          },
          {
            "date": "2019-04-21",
            "count": 1
          },
          {
            "date": "2019-04-24",
            "count": 1
          },
          {
            "date": "2019-04-30",
            "count": 2
          },
          {
            "date": "2019-05-05",
            "count": 1
          },
          {
            "date": "2019-05-06",
            "count": 2
          },
          {
            "date": "2019-05-08",
            "count": 1
          },
          {
            "date": "2019-05-10",
            "count": 4
          },
          {
            "date": "2019-05-11",
            "count": 1
          },
          {
            "date": "2019-05-14",
            "count": 2
          },
          {
            "date": "2019-05-16",
            "count": 1
          },
          {
            "date": "2019-05-17",
            "count": 2
          },
          {
            "date": "2019-05-19",
            "count": 1
          },
          {
            "date": "2019-05-22",
            "count": 1
          },
          {
            "date": "2019-05-23",
            "count": 2
          },
          {
            "date": "2019-05-24",
            "count": 1
          },
          {
            "date": "2019-05-28",
            "count": 1
          },
          {
            "date": "2019-06-04",
            "count": 1
          },
          {
            "date": "2019-06-07",
            "count": 2
          },
          {
            "date": "2019-06-11",
            "count": 1
          },
          {
            "date": "2019-06-12",
            "count": 1
          },
          {
            "date": "2019-06-13",
            "count": 1
          },
          {
            "date": "2019-06-14",
            "count": 1
          },
          {
            "date": "2019-06-18",
            "count": 3
          },
          {
            "date": "2019-06-22",
            "count": 1
          },
          {
            "date": "2019-06-23",
            "count": 1
          },
          {
            "date": "2019-06-24",
            "count": 1
          },
          {
            "date": "2019-06-28",
            "count": 2
          },
          {
            "date": "2019-06-30",
            "count": 1
          },
          {
            "date": "2019-07-02",
            "count": 1
          },
          {
            "date": "2019-07-03",
            "count": 2
          },
          {
            "date": "2019-07-05",
            "count": 1
          },
          {
            "date": "2019-07-07",
            "count": 1
          },
          {
            "date": "2019-07-08",
            "count": 1
          },
          {
            "date": "2019-07-10",
            "count": 2
          },
          {
            "date": "2019-07-13",
            "count": 1
          },
          {
            "date": "2019-07-14",
            "count": 1
          },
          {
            "date": "2019-07-15",
            "count": 1
          },
          {
            "date": "2019-07-16",
            "count": 1
          },
          {
            "date": "2019-07-18",
            "count": 1
          },
          {
            "date": "2019-07-22",
            "count": 1
          },
          {
            "date": "2019-07-24",
            "count": 1
          },
          {
            "date": "2019-07-25",
            "count": 1
          },
          {
            "date": "2019-07-26",
            "count": 3
          },
          {
            "date": "2019-07-29",
            "count": 1
          },
          {
            "date": "2019-07-30",
            "count": 1
          },
          {
            "date": "2019-07-31",
            "count": 1
          },
          {
            "date": "2019-08-01",
            "count": 1
          },
          {
            "date": "2019-08-03",
            "count": 1
          },
          {
            "date": "2019-08-05",
            "count": 1
          },
          {
            "date": "2019-08-08",
            "count": 2
          },
          {
            "date": "2019-08-09",
            "count": 1
          },
          {
            "date": "2019-08-12",
            "count": 1
          },
          {
            "date": "2019-08-22",
            "count": 2
          },
          {
            "date": "2019-08-23",
            "count": 1
          },
          {
            "date": "2019-08-29",
            "count": 1
          },
          {
            "date": "2019-09-05",
            "count": 1
          },
          {
            "date": "2019-09-18",
            "count": 3
          },
          {
            "date": "2019-09-19",
            "count": 1
          },
          {
            "date": "2019-09-20",
            "count": 2
          },
          {
            "date": "2019-09-24",
            "count": 1
          },
          {
            "date": "2019-09-29",
            "count": 2
          },
          {
            "date": "2019-10-08",
            "count": 2
          },
          {
            "date": "2019-10-09",
            "count": 1
          },
          {
            "date": "2019-10-11",
            "count": 2
          },
          {
            "date": "2019-10-15",
            "count": 1
          },
          {
            "date": "2019-10-16",
            "count": 1
          },
          {
            "date": "2019-10-23",
            "count": 1
          },
          {
            "date": "2019-10-24",
            "count": 1
          },
          {
            "date": "2019-10-27",
            "count": 1
          },
          {
            "date": "2019-10-29",
            "count": 2
          },
          {
            "date": "2019-10-31",
            "count": 1
          },
          {
            "date": "2019-11-03",
            "count": 1
          },
          {
            "date": "2019-11-08",
            "count": 1
          },
          {
            "date": "2019-11-09",
            "count": 1
          },
          {
            "date": "2019-11-13",
            "count": 1
          },
          {
            "date": "2019-11-19",
            "count": 1
          },
          {
            "date": "2019-11-20",
            "count": 2
          },
          {
            "date": "2019-11-21",
            "count": 1
          },
          {
            "date": "2019-11-22",
            "count": 1
          },
          {
            "date": "2019-11-23",
            "count": 1
          },
          {
            "date": "2019-12-02",
            "count": 2
          },
          {
            "date": "2019-12-03",
            "count": 1
          },
          {
            "date": "2019-12-10",
            "count": 1
          },
          {
            "date": "2019-12-11",
            "count": 1
          },
          {
            "date": "2019-12-13",
            "count": 1
          },
          {
            "date": "2019-12-14",
            "count": 1
          },
          {
            "date": "2019-12-17",
            "count": 1
          },
          {
            "date": "2019-12-19",
            "count": 1
          },
          {
            "date": "2019-12-27",
            "count": 1
          },
          {
            "date": "2019-12-29",
            "count": 1
          },
          {
            "date": "2019-12-30",
            "count": 1
          },
          {
            "date": "2019-12-31",
            "count": 1
          },
          {
            "date": "2020-01-01",
            "count": 1
          },
          {
            "date": "2020-01-08",
            "count": 1
          },
          {
            "date": "2020-01-10",
            "count": 1
          },
          {
            "date": "2020-01-11",
            "count": 1
          },
          {
            "date": "2020-01-14",
            "count": 1
          },
          {
            "date": "2020-01-17",
            "count": 2
          },
          {
            "date": "2020-01-18",
            "count": 1
          },
          {
            "date": "2020-01-24",
            "count": 1
          },
          {
            "date": "2020-01-25",
            "count": 1
          },
          {
            "date": "2020-01-30",
            "count": 1
          },
          {
            "date": "2020-02-09",
            "count": 1
          },
          {
            "date": "2020-02-11",
            "count": 1
          },
          {
            "date": "2020-02-18",
            "count": 1
          },
          {
            "date": "2020-02-21",
            "count": 1
          },
          {
            "date": "2020-02-23",
            "count": 2
          },
          {
            "date": "2020-02-25",
            "count": 2
          },
          {
            "date": "2020-02-26",
            "count": 2
          },
          {
            "date": "2020-02-27",
            "count": 1
          },
          {
            "date": "2020-02-28",
            "count": 1
          },
          {
            "date": "2020-02-29",
            "count": 2
          },
          {
            "date": "2020-03-05",
            "count": 3
          },
          {
            "date": "2020-03-10",
            "count": 2
          },
          {
            "date": "2020-03-17",
            "count": 1
          },
          {
            "date": "2020-03-19",
            "count": 1
          },
          {
            "date": "2020-03-22",
            "count": 1
          },
          {
            "date": "2020-03-25",
            "count": 1
          },
          {
            "date": "2020-03-26",
            "count": 1
          },
          {
            "date": "2020-03-27",
            "count": 1
          },
          {
            "date": "2020-03-30",
            "count": 1
          },
          {
            "date": "2020-03-31",
            "count": 1
          },
          {
            "date": "2020-04-01",
            "count": 1
          },
          {
            "date": "2020-04-07",
            "count": 1
          },
          {
            "date": "2020-04-08",
            "count": 1
          },
          {
            "date": "2020-04-13",
            "count": 2
          },
          {
            "date": "2020-04-14",
            "count": 1
          },
          {
            "date": "2020-04-15",
            "count": 2
          },
          {
            "date": "2020-04-18",
            "count": 1
          },
          {
            "date": "2020-04-19",
            "count": 1
          },
          {
            "date": "2020-04-24",
            "count": 1
          },
          {
            "date": "2020-04-28",
            "count": 1
          },
          {
            "date": "2020-04-29",
            "count": 1
          },
          {
            "date": "2020-05-07",
            "count": 1
          },
          {
            "date": "2020-05-08",
            "count": 1
          },
          {
            "date": "2020-05-13",
            "count": 1
          },
          {
            "date": "2020-05-15",
            "count": 1
          },
          {
            "date": "2020-05-18",
            "count": 1
          },
          {
            "date": "2020-05-20",
            "count": 1
          },
          {
            "date": "2020-05-25",
            "count": 2
          },
          {
            "date": "2020-05-26",
            "count": 1
          },
          {
            "date": "2020-05-28",
            "count": 2
          },
          {
            "date": "2020-05-31",
            "count": 1
          },
          {
            "date": "2020-06-01",
            "count": 1
          },
          {
            "date": "2020-06-03",
            "count": 1
          },
          {
            "date": "2020-06-04",
            "count": 1
          },
          {
            "date": "2020-06-06",
            "count": 1
          },
          {
            "date": "2020-06-09",
            "count": 1
          },
          {
            "date": "2020-06-11",
            "count": 1
          },
          {
            "date": "2020-06-12",
            "count": 1
          },
          {
            "date": "2020-06-14",
            "count": 1
          },
          {
            "date": "2020-06-16",
            "count": 1
          },
          {
            "date": "2020-06-21",
            "count": 1
          },
          {
            "date": "2020-06-22",
            "count": 1
          },
          {
            "date": "2020-06-23",
            "count": 1
          },
          {
            "date": "2020-06-26",
            "count": 1
          },
          {
            "date": "2020-07-01",
            "count": 1
          },
          {
            "date": "2020-07-03",
            "count": 1
          },
          {
            "date": "2020-07-07",
            "count": 1
          },
          {
            "date": "2020-07-08",
            "count": 1
          },
          {
            "date": "2020-07-11",
            "count": 1
          },
          {
            "date": "2020-07-16",
            "count": 1
          },
          {
            "date": "2020-07-28",
            "count": 2
          },
          {
            "date": "2020-08-02",
            "count": 1
          },
          {
            "date": "2020-08-16",
            "count": 2
          },
          {
            "date": "2020-08-18",
            "count": 1
          },
          {
            "date": "2020-08-24",
            "count": 1
          },
          {
            "date": "2020-08-27",
            "count": 1
          },
          {
            "date": "2020-09-02",
            "count": 1
          },
          {
            "date": "2020-09-03",
            "count": 1
          },
          {
            "date": "2020-09-05",
            "count": 1
          },
          {
            "date": "2020-09-07",
            "count": 1
          },
          {
            "date": "2020-09-20",
            "count": 1
          },
          {
            "date": "2020-09-22",
            "count": 2
          },
          {
            "date": "2020-09-25",
            "count": 1
          },
          {
            "date": "2020-10-01",
            "count": 1
          },
          {
            "date": "2020-10-30",
            "count": 1
          },
          {
            "date": "2020-11-02",
            "count": 1
          },
          {
            "date": "2020-11-03",
            "count": 1
          },
          {
            "date": "2020-11-04",
            "count": 1
          },
          {
            "date": "2020-11-05",
            "count": 1
          },
          {
            "date": "2020-11-06",
            "count": 1
          },
          {
            "date": "2020-11-09",
            "count": 1
          },
          {
            "date": "2020-11-12",
            "count": 1
          },
          {
            "date": "2020-11-19",
            "count": 2
          },
          {
            "date": "2020-11-27",
            "count": 1
          },
          {
            "date": "2020-12-03",
            "count": 1
          },
          {
            "date": "2020-12-04",
            "count": 1
          },
          {
            "date": "2020-12-05",
            "count": 2
          },
          {
            "date": "2020-12-10",
            "count": 1
          },
          {
            "date": "2020-12-24",
            "count": 1
          },
          {
            "date": "2020-12-30",
            "count": 1
          },
          {
            "date": "2021-01-03",
            "count": 2
          },
          {
            "date": "2021-01-04",
            "count": 1
          },
          {
            "date": "2021-01-05",
            "count": 1
          },
          {
            "date": "2021-01-09",
            "count": 1
          },
          {
            "date": "2021-01-17",
            "count": 1
          },
          {
            "date": "2021-01-22",
            "count": 1
          },
          {
            "date": "2021-01-25",
            "count": 2
          },
          {
            "date": "2021-01-31",
            "count": 1
          },
          {
            "date": "2021-02-08",
            "count": 2
          },
          {
            "date": "2021-02-09",
            "count": 1
          },
          {
            "date": "2021-02-22",
            "count": 1
          },
          {
            "date": "2021-02-23",
            "count": 2
          },
          {
            "date": "2021-02-24",
            "count": 1
          },
          {
            "date": "2021-02-27",
            "count": 1
          },
          {
            "date": "2021-03-02",
            "count": 1
          },
          {
            "date": "2021-03-03",
            "count": 1
          },
          {
            "date": "2021-03-04",
            "count": 1
          },
          {
            "date": "2021-03-05",
            "count": 2
          },
          {
            "date": "2021-03-07",
            "count": 1
          },
          {
            "date": "2021-03-11",
            "count": 1
          },
          {
            "date": "2021-03-14",
            "count": 1
          },
          {
            "date": "2021-03-20",
            "count": 1
          },
          {
            "date": "2021-04-01",
            "count": 1
          },
          {
            "date": "2021-04-06",
            "count": 1
          },
          {
            "date": "2021-04-09",
            "count": 1
          },
          {
            "date": "2021-04-14",
            "count": 2
          },
          {
            "date": "2021-04-15",
            "count": 1
          },
          {
            "date": "2021-04-18",
            "count": 1
          },
          {
            "date": "2021-05-04",
            "count": 1
          },
          {
            "date": "2021-05-09",
            "count": 1
          },
          {
            "date": "2021-05-18",
            "count": 1
          },
          {
            "date": "2021-05-19",
            "count": 1
          },
          {
            "date": "2021-05-21",
            "count": 1
          },
          {
            "date": "2021-05-24",
            "count": 2
          },
          {
            "date": "2021-06-01",
            "count": 1
          },
          {
            "date": "2021-06-04",
            "count": 1
          },
          {
            "date": "2021-06-06",
            "count": 1
          },
          {
            "date": "2021-06-17",
            "count": 1
          },
          {
            "date": "2021-06-29",
            "count": 2
          },
          {
            "date": "2021-07-04",
            "count": 1
          },
          {
            "date": "2021-07-05",
            "count": 1
          },
          {
            "date": "2021-07-06",
            "count": 1
          },
          {
            "date": "2021-07-09",
            "count": 1
          },
          {
            "date": "2021-07-12",
            "count": 1
          },
          {
            "date": "2021-07-13",
            "count": 3
          },
          {
            "date": "2021-07-21",
            "count": 2
          },
          {
            "date": "2021-07-25",
            "count": 1
          },
          {
            "date": "2021-08-02",
            "count": 3
          },
          {
            "date": "2021-08-14",
            "count": 1
          },
          {
            "date": "2021-08-19",
            "count": 1
          },
          {
            "date": "2021-08-21",
            "count": 2
          },
          {
            "date": "2021-08-27",
            "count": 1
          },
          {
            "date": "2021-09-03",
            "count": 1
          },
          {
            "date": "2021-09-17",
            "count": 1
          },
          {
            "date": "2021-09-20",
            "count": 1
          },
          {
            "date": "2021-09-25",
            "count": 1
          },
          {
            "date": "2021-10-02",
            "count": 1
          },
          {
            "date": "2021-10-03",
            "count": 1
          },
          {
            "date": "2021-10-10",
            "count": 1
          },
          {
            "date": "2021-10-18",
            "count": 1
          },
          {
            "date": "2021-10-25",
            "count": 1
          },
          {
            "date": "2021-10-27",
            "count": 1
          },
          {
            "date": "2021-11-04",
            "count": 1
          },
          {
            "date": "2021-11-08",
            "count": 2
          },
          {
            "date": "2021-11-11",
            "count": 1
          },
          {
            "date": "2021-11-14",
            "count": 1
          },
          {
            "date": "2021-11-16",
            "count": 1
          },
          {
            "date": "2021-11-17",
            "count": 1
          },
          {
            "date": "2021-11-22",
            "count": 1
          },
          {
            "date": "2021-11-24",
            "count": 2
          },
          {
            "date": "2021-12-10",
            "count": 1
          },
          {
            "date": "2021-12-12",
            "count": 1
          },
          {
            "date": "2021-12-18",
            "count": 1
          },
          {
            "date": "2021-12-21",
            "count": 1
          },
          {
            "date": "2021-12-22",
            "count": 1
          },
          {
            "date": "2021-12-31",
            "count": 1
          },
          {
            "date": "2022-01-08",
            "count": 1
          },
          {
            "date": "2022-01-10",
            "count": 4
          },
          {
            "date": "2022-01-18",
            "count": 1
          },
          {
            "date": "2022-01-20",
            "count": 1
          },
          {
            "date": "2022-02-02",
            "count": 1
          },
          {
            "date": "2022-02-07",
            "count": 1
          },
          {
            "date": "2022-02-21",
            "count": 1
          },
          {
            "date": "2022-02-24",
            "count": 2
          },
          {
            "date": "2022-03-01",
            "count": 1
          },
          {
            "date": "2022-03-02",
            "count": 2
          },
          {
            "date": "2022-03-05",
            "count": 1
          },
          {
            "date": "2022-03-13",
            "count": 2
          },
          {
            "date": "2022-03-15",
            "count": 1
          },
          {
            "date": "2022-03-16",
            "count": 1
          },
          {
            "date": "2022-03-21",
            "count": 1
          },
          {
            "date": "2022-03-22",
            "count": 1
          },
          {
            "date": "2022-03-24",
            "count": 1
          },
          {
            "date": "2022-04-03",
            "count": 1
          },
          {
            "date": "2022-04-04",
            "count": 1
          },
          {
            "date": "2022-04-07",
            "count": 1
          },
          {
            "date": "2022-04-10",
            "count": 1
          },
          {
            "date": "2022-04-11",
            "count": 2
          },
          {
            "date": "2022-04-12",
            "count": 1
          },
          {
            "date": "2022-04-14",
            "count": 1
          },
          {
            "date": "2022-04-18",
            "count": 1
          },
          {
            "date": "2022-04-20",
            "count": 2
          },
          {
            "date": "2022-04-21",
            "count": 1
          },
          {
            "date": "2022-04-26",
            "count": 1
          },
          {
            "date": "2022-04-30",
            "count": 1
          },
          {
            "date": "2022-05-02",
            "count": 1
          },
          {
            "date": "2022-05-03",
            "count": 1
          },
          {
            "date": "2022-05-07",
            "count": 1
          },
          {
            "date": "2022-05-10",
            "count": 1
          },
          {
            "date": "2022-05-13",
            "count": 1
          },
          {
            "date": "2022-05-14",
            "count": 1
          },
          {
            "date": "2022-05-16",
            "count": 1
          },
          {
            "date": "2022-05-20",
            "count": 1
          },
          {
            "date": "2022-05-21",
            "count": 1
          },
          {
            "date": "2022-06-08",
            "count": 1
          },
          {
            "date": "2022-06-28",
            "count": 1
          },
          {
            "date": "2022-07-20",
            "count": 1
          },
          {
            "date": "2022-07-21",
            "count": 1
          },
          {
            "date": "2022-07-25",
            "count": 1
          },
          {
            "date": "2022-08-04",
            "count": 1
          },
          {
            "date": "2022-08-06",
            "count": 1
          },
          {
            "date": "2022-08-07",
            "count": 1
          },
          {
            "date": "2022-08-10",
            "count": 1
          },
          {
            "date": "2022-08-11",
            "count": 1
          },
          {
            "date": "2022-08-12",
            "count": 1
          },
          {
            "date": "2022-08-13",
            "count": 1
          },
          {
            "date": "2022-08-15",
            "count": 1
          },
          {
            "date": "2022-08-28",
            "count": 1
          },
          {
            "date": "2022-08-30",
            "count": 1
          },
          {
            "date": "2022-08-31",
            "count": 1
          },
          {
            "date": "2022-09-01",
            "count": 1
          },
          {
            "date": "2022-09-06",
            "count": 1
          },
          {
            "date": "2022-09-13",
            "count": 1
          },
          {
            "date": "2022-09-16",
            "count": 1
          },
          {
            "date": "2022-09-17",
            "count": 1
          },
          {
            "date": "2022-10-07",
            "count": 1
          },
          {
            "date": "2022-10-12",
            "count": 1
          },
          {
            "date": "2022-10-17",
            "count": 1
          },
          {
            "date": "2022-10-21",
            "count": 1
          },
          {
            "date": "2022-10-26",
            "count": 1
          },
          {
            "date": "2022-11-05",
            "count": 1
          },
          {
            "date": "2022-11-11",
            "count": 2
          },
          {
            "date": "2022-11-28",
            "count": 1
          },
          {
            "date": "2022-12-03",
            "count": 1
          },
          {
            "date": "2022-12-05",
            "count": 1
          },
          {
            "date": "2022-12-07",
            "count": 1
          },
          {
            "date": "2022-12-27",
            "count": 1
          },
          {
            "date": "2023-01-05",
            "count": 1
          },
          {
            "date": "2023-01-14",
            "count": 1
          },
          {
            "date": "2023-01-19",
            "count": 1
          },
          {
            "date": "2023-01-27",
            "count": 1
          },
          {
            "date": "2023-01-31",
            "count": 1
          },
          {
            "date": "2023-02-02",
            "count": 1
          },
          {
            "date": "2023-02-06",
            "count": 1
          },
          {
            "date": "2023-02-11",
            "count": 1
          },
          {
            "date": "2023-02-21",
            "count": 1
          },
          {
            "date": "2023-02-27",
            "count": 1
          },
          {
            "date": "2023-03-09",
            "count": 1
          },
          {
            "date": "2023-03-11",
            "count": 1
          },
          {
            "date": "2023-03-20",
            "count": 2
          },
          {
            "date": "2023-03-22",
            "count": 1
          },
          {
            "date": "2023-04-01",
            "count": 1
          },
          {
            "date": "2023-04-03",
            "count": 2
          },
          {
            "date": "2023-04-05",
            "count": 1
          },
          {
            "date": "2023-04-06",
            "count": 1
          },
          {
            "date": "2023-04-11",
            "count": 1
          },
          {
            "date": "2023-04-16",
            "count": 1
          },
          {
            "date": "2023-04-26",
            "count": 1
          },
          {
            "date": "2023-05-01",
            "count": 1
          },
          {
            "date": "2023-05-02",
            "count": 1
          },
          {
            "date": "2023-05-09",
            "count": 1
          },
          {
            "date": "2023-05-11",
            "count": 1
          },
          {
            "date": "2023-06-01",
            "count": 1
          },
          {
            "date": "2023-06-04",
            "count": 1
          },
          {
            "date": "2023-06-05",
            "count": 1
          },
          {
            "date": "2023-06-07",
            "count": 1
          },
          {
            "date": "2023-07-04",
            "count": 1
          },
          {
            "date": "2023-07-05",
            "count": 1
          },
          {
            "date": "2023-07-11",
            "count": 1
          },
          {
            "date": "2023-07-18",
            "count": 1
          },
          {
            "date": "2023-07-23",
            "count": 1
          },
          {
            "date": "2023-07-26",
            "count": 1
          },
          {
            "date": "2023-08-19",
            "count": 1
          },
          {
            "date": "2023-09-14",
            "count": 1
          },
          {
            "date": "2023-10-09",
            "count": 1
          },
          {
            "date": "2023-11-11",
            "count": 1
          },
          {
            "date": "2023-11-25",
            "count": 1
          },
          {
            "date": "2023-12-18",
            "count": 1
          },
          {
            "date": "2023-12-20",
            "count": 1
          },
          {
            "date": "2023-12-21",
            "count": 1
          },
          {
            "date": "2023-12-26",
            "count": 1
          },
          {
            "date": "2023-12-31",
            "count": 1
          },
          {
            "date": "2024-01-04",
            "count": 1
          },
          {
            "date": "2024-02-04",
            "count": 1
          },
          {
            "date": "2024-02-22",
            "count": 1
          },
          {
            "date": "2024-03-08",
            "count": 1
          },
          {
            "date": "2024-03-25",
            "count": 2
          },
          {
            "date": "2024-03-27",
            "count": 1
          },
          {
            "date": "2024-04-02",
            "count": 1
          },
          {
            "date": "2024-04-27",
            "count": 1
          },
          {
            "date": "2024-05-01",
            "count": 1
          },
          {
            "date": "2024-05-09",
            "count": 1
          },
          {
            "date": "2024-05-10",
            "count": 1
          },
          {
            "date": "2024-05-12",
            "count": 1
          },
          {
            "date": "2024-05-16",
            "count": 1
          },
          {
            "date": "2024-05-25",
            "count": 1
          },
          {
            "date": "2024-05-29",
            "count": 1
          },
          {
            "date": "2024-06-05",
            "count": 1
          },
          {
            "date": "2024-06-08",
            "count": 1
          },
          {
            "date": "2024-06-17",
            "count": 2
          },
          {
            "date": "2024-06-22",
            "count": 1
          },
          {
            "date": "2024-06-28",
            "count": 1
          },
          {
            "date": "2024-07-02",
            "count": 2
          },
          {
            "date": "2024-08-09",
            "count": 1
          },
          {
            "date": "2024-08-20",
            "count": 1
          },
          {
            "date": "2024-08-24",
            "count": 1
          },
          {
            "date": "2024-09-03",
            "count": 1
          },
          {
            "date": "2024-09-14",
            "count": 1
          },
          {
            "date": "2024-10-04",
            "count": 1
          },
          {
            "date": "2024-10-19",
            "count": 1
          },
          {
            "date": "2024-10-31",
            "count": 1
          },
          {
            "date": "2024-11-01",
            "count": 1
          },
          {
            "date": "2024-11-02",
            "count": 1
          },
          {
            "date": "2024-11-05",
            "count": 1
          },
          {
            "date": "2024-12-18",
            "count": 1
          },
          {
            "date": "2024-12-31",
            "count": 1
          },
          {
            "date": "2025-01-01",
            "count": 1
          },
          {
            "date": "2025-01-15",
            "count": 1
          },
          {
            "date": "2025-01-17",
            "count": 1
          },
          {
            "date": "2025-01-20",
            "count": 1
          },
          {
            "date": "2025-02-13",
            "count": 1
          },
          {
            "date": "2025-02-25",
            "count": 1
          },
          {
            "date": "2025-03-04",
            "count": 1
          },
          {
            "date": "2025-04-05",
            "count": 1
          },
          {
            "date": "2025-04-09",
            "count": 1
          },
          {
            "date": "2025-04-17",
            "count": 1
          },
          {
            "date": "2025-04-22",
            "count": 1
          },
          {
            "date": "2025-04-23",
            "count": 1
          },
          {
            "date": "2025-05-16",
            "count": 1
          },
          {
            "date": "2025-05-18",
            "count": 1
          },
          {
            "date": "2025-05-21",
            "count": 1
          },
          {
            "date": "2025-05-28",
            "count": 1
          },
          {
            "date": "2025-06-06",
            "count": 1
          },
          {
            "date": "2025-07-08",
            "count": 1
          },
          {
            "date": "2025-07-10",
            "count": 1
          },
          {
            "date": "2025-07-31",
            "count": 1
          },
          {
            "date": "2025-08-14",
            "count": 1
          },
          {
            "date": "2025-09-01",
            "count": 1
          },
          {
            "date": "2025-09-30",
            "count": 1
          },
          {
            "date": "2025-10-18",
            "count": 1
          },
          {
            "date": "2025-10-25",
            "count": 1
          },
          {
            "date": "2025-11-14",
            "count": 1
          },
          {
            "date": "2025-12-01",
            "count": 1
          },
          {
            "date": "2025-12-03",
            "count": 1
          },
          {
            "date": "2025-12-05",
            "count": 1
          },
          {
            "date": "2025-12-08",
            "count": 1
          },
          {
            "date": "2025-12-17",
            "count": 1
          },
          {
            "date": "2025-12-21",
            "count": 1
          },
          {
            "date": "2026-01-05",
            "count": 1
          },
          {
            "date": "2026-01-08",
            "count": 1
          },
          {
            "date": "2026-01-12",
            "count": 1
          },
          {
            "date": "2026-01-16",
            "count": 1
          },
          {
            "date": "2026-01-18",
            "count": 1
          },
          {
            "date": "2026-01-22",
            "count": 1
          },
          {
            "date": "2026-02-01",
            "count": 1
          },
          {
            "date": "2026-02-08",
            "count": 1
          },
          {
            "date": "2026-02-10",
            "count": 2
          },
          {
            "date": "2026-02-26",
            "count": 1
          },
          {
            "date": "2026-04-15",
            "count": 1
          },
          {
            "date": "2026-05-25",
            "count": 1
          },
          {
            "date": "2026-05-29",
            "count": 1
          },
          {
            "date": "2026-07-07",
            "count": 1
          },
          {
            "date": "2026-07-22",
            "count": 1
          }
        ],
        "complete": false,
        "collected": 1000,
        "total_forks": 1568
      },
      "star_history": null,
      "open_issues_and_prs": 229
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 111256,
      "source_files_sampled": 122,
      "oversized_source_files": 1,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "docs/requirements.txt",
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 1,
        "malicious_count": 0,
        "assessed_package": "npm:showdown@2.1.0",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm",
        "pypi"
      ],
      "dependencies": [
        {
          "name": "commander",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^14.0.0"
        },
        {
          "name": "happy-dom",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^20.10.6"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "commander",
            "direct": true,
            "version": "14.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "happy-dom",
            "direct": true,
            "version": "20.10.6",
            "ecosystem": "npm"
          },
          {
            "name": "@acemir/cssom",
            "direct": false,
            "version": "0.9.31",
            "ecosystem": "npm"
          },
          {
            "name": "@asamuzakjp/css-color",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@asamuzakjp/dom-selector",
            "direct": false,
            "version": "6.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "@asamuzakjp/nwsapi",
            "direct": false,
            "version": "2.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/checksums",
            "direct": false,
            "version": "3.1000.11",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/client-s3",
            "direct": false,
            "version": "3.1078.0",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/core",
            "direct": false,
            "version": "3.974.26",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-env",
            "direct": false,
            "version": "3.972.52",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-http",
            "direct": false,
            "version": "3.972.54",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-ini",
            "direct": false,
            "version": "3.972.59",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-login",
            "direct": false,
            "version": "3.972.58",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-node",
            "direct": false,
            "version": "3.972.61",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-process",
            "direct": false,
            "version": "3.972.52",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-sso",
            "direct": false,
            "version": "3.972.58",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-web-identity",
            "direct": false,
            "version": "3.972.58",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/middleware-sdk-s3",
            "direct": false,
            "version": "3.972.57",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/nested-clients",
            "direct": false,
            "version": "3.997.26",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/signature-v4-multi-region",
            "direct": false,
            "version": "3.996.38",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/token-providers",
            "direct": false,
            "version": "3.1078.0",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/types",
            "direct": false,
            "version": "3.973.15",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/xml-builder",
            "direct": false,
            "version": "3.972.33",
            "ecosystem": "npm"
          },
          {
            "name": "@aws/lambda-invoke-store",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/code-frame",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@blazediff/core",
            "direct": false,
            "version": "1.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "@colors/colors",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@conventional-changelog/git-client",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/color-helpers",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-calc",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-color-parser",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-parser-algorithms",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-syntax-patches-for-csstree",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-tokenizer",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@dabh/diagnostics",
            "direct": false,
            "version": "2.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openharmony-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint-community/eslint-utils",
            "direct": false,
            "version": "4.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint-community/regexpp",
            "direct": false,
            "version": "4.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/config-array",
            "direct": false,
            "version": "0.23.5",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/config-helpers",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/core",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/js",
            "direct": false,
            "version": "10.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/object-schema",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/plugin-kit",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "@exodus/bytes",
            "direct": false,
            "version": "1.15.1",
            "ecosystem": "npm"
          },
          {
            "name": "@google-cloud/compute",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@google-cloud/container",
            "direct": false,
            "version": "6.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@google-cloud/resource-manager",
            "direct": false,
            "version": "6.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@grpc/grpc-js",
            "direct": false,
            "version": "1.14.4",
            "ecosystem": "npm"
          },
          {
            "name": "@grpc/proto-loader",
            "direct": false,
            "version": "0.7.15",
            "ecosystem": "npm"
          },
          {
            "name": "@grpc/proto-loader",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "@grpc/reflection",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/core",
            "direct": false,
            "version": "0.19.2",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/node",
            "direct": false,
            "version": "0.16.8",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/types",
            "direct": false,
            "version": "0.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/module-importer",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/retry",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@hutson/parse-repository-url",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@isaacs/cliui",
            "direct": false,
            "version": "8.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@js-sdsl/ordered-map",
            "direct": false,
            "version": "4.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jsep-plugin/assignment",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jsep-plugin/regex",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@kubernetes/client-node",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "@kwsites/file-exists",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@kwsites/promise-deferred",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@open-draft/until",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.138.0",
            "ecosystem": "npm"
          },
          {
            "name": "@percy/appium-app",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@percy/sdk-utils",
            "direct": false,
            "version": "1.32.2",
            "ecosystem": "npm"
          },
          {
            "name": "@percy/selenium-webdriver",
            "direct": false,
            "version": "2.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@pkgjs/parseargs",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "@playwright/test",
            "direct": false,
            "version": "1.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@pnpm/config.env-replace",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@pnpm/network.ca-file",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@pnpm/npm-conf",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@polka/url",
            "direct": false,
            "version": "1.0.0-next.29",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/aspromise",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/base64",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/codegen",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/eventemitter",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/fetch",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/float",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/path",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/pool",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/utf8",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-android-arm64",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-arm64",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-x64",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-freebsd-x64",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-musl",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-openharmony-arm64",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-wasm32-wasi",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/pluginutils",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@simple-git/args-pathspec",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@simple-git/argv-parser",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@simple-libs/child-process-utils",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@simple-libs/stream-utils",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@sindresorhus/is",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@sindresorhus/is",
            "direct": false,
            "version": "5.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/core",
            "direct": false,
            "version": "3.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/credential-provider-imds",
            "direct": false,
            "version": "4.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/fetch-http-handler",
            "direct": false,
            "version": "5.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/node-http-handler",
            "direct": false,
            "version": "4.9.2",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/signature-v4",
            "direct": false,
            "version": "5.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/types",
            "direct": false,
            "version": "4.15.1",
            "ecosystem": "npm"
          },
          {
            "name": "@so-ric/colorspace",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@standard-schema/spec",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@stylistic/eslint-plugin",
            "direct": false,
            "version": "5.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@szmarczak/http-timer",
            "direct": false,
            "version": "4.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@szmarczak/http-timer",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@tootallnate/quickjs-emscripten",
            "direct": false,
            "version": "0.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/cacheable-request",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/chai",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/deep-eql",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/esrecurse",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/http-cache-semantics",
            "direct": false,
            "version": "4.2.0",
            "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/keyv",
            "direct": false,
            "version": "3.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "24.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node-fetch",
            "direct": false,
            "version": "2.6.13",
            "ecosystem": "npm"
          },
          {
            "name": "@types/normalize-package-data",
            "direct": false,
            "version": "2.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/responselike",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/stream-buffers",
            "direct": false,
            "version": "3.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/triple-beam",
            "direct": false,
            "version": "1.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/whatwg-mimetype",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/ws",
            "direct": false,
            "version": "8.18.1",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/types",
            "direct": false,
            "version": "8.62.1",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/browser",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/browser-playwright",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/expect",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/mocker",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/pretty-format",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/runner",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/snapshot",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/spy",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/utils",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "abort-controller",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.17.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-jsx",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "add-stream",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "agent-base",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "agent-base",
            "direct": false,
            "version": "7.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "6.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "8.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-align",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "6.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "archiver",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "archiver-utils",
            "direct": false,
            "version": "5.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "1.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "array-ify",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "assertion-error",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ast-types",
            "direct": false,
            "version": "0.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "astral-regex",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "async",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "asynckit",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "b4a",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "bare-events",
            "direct": false,
            "version": "2.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "bare-fs",
            "direct": false,
            "version": "4.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "bare-os",
            "direct": false,
            "version": "3.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "bare-path",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "bare-stream",
            "direct": false,
            "version": "2.13.3",
            "ecosystem": "npm"
          },
          {
            "name": "bare-url",
            "direct": false,
            "version": "2.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "base64-js",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "basic-ftp",
            "direct": false,
            "version": "5.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "bidi-js",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "bignumber.js",
            "direct": false,
            "version": "9.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "bluebird",
            "direct": false,
            "version": "3.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "boolbase",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "boolean",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "bowser",
            "direct": false,
            "version": "2.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "boxen",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "5.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "browserstack-local",
            "direct": false,
            "version": "1.5.13",
            "ecosystem": "npm"
          },
          {
            "name": "browserstack-node-sdk",
            "direct": false,
            "version": "1.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "buffer",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-crc32",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-equal-constant-time",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-image-size",
            "direct": false,
            "version": "0.6.4",
            "ecosystem": "npm"
          },
          {
            "name": "cacheable-lookup",
            "direct": false,
            "version": "5.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "cacheable-lookup",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cacheable-request",
            "direct": false,
            "version": "10.2.14",
            "ecosystem": "npm"
          },
          {
            "name": "cacheable-request",
            "direct": false,
            "version": "7.0.4",
            "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": "camelcase",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "chai",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "5.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "cheerio",
            "direct": false,
            "version": "1.0.0-rc.11",
            "ecosystem": "npm"
          },
          {
            "name": "cheerio-select",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "ci-info",
            "direct": false,
            "version": "3.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-boxes",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "clone-response",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "color",
            "direct": false,
            "version": "5.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "color-string",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "combined-stream",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "commonmark-spec",
            "direct": false,
            "version": "0.31.2",
            "ecosystem": "npm"
          },
          {
            "name": "compare-func",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "compress-commons",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "config-chain",
            "direct": false,
            "version": "1.1.13",
            "ecosystem": "npm"
          },
          {
            "name": "configstore",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-angular",
            "direct": false,
            "version": "8.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-atom",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-cli",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-codemirror",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-conventionalcommits",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-core",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-ember",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-eslint",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-express",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-jquery",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-jshint",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-preset-loader",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-writer",
            "direct": false,
            "version": "8.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-commits-filter",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-commits-parser",
            "direct": false,
            "version": "6.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "core-util-is",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "crc-32",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "crc32-stream",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "crypto-random-string",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "css-select",
            "direct": false,
            "version": "5.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "css-tree",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "css-what",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "cssstyle",
            "direct": false,
            "version": "5.3.7",
            "ecosystem": "npm"
          },
          {
            "name": "data-uri-to-buffer",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "data-uri-to-buffer",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "data-urls",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "decimal.js",
            "direct": false,
            "version": "10.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "decompress-response",
            "direct": false,
            "version": "6.0.0",
            "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": "defer-to-connect",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "define-data-property",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "define-properties",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "degenerator",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "delayed-stream",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "detect-node",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "diffable-html",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "dom-serializer",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "dom-serializer",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "domelementtype",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "domelementtype",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "domhandler",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "domhandler",
            "direct": false,
            "version": "5.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "domutils",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "domutils",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "dot-prop",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "dot-prop",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "dotenv",
            "direct": false,
            "version": "16.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "dunder-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "duplexify",
            "direct": false,
            "version": "4.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "eastasianwidth",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "ecdsa-sig-formatter",
            "direct": false,
            "version": "1.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "emittery",
            "direct": false,
            "version": "0.11.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": "end-of-stream",
            "direct": false,
            "version": "1.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "4.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-define-property",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-errors",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-module-lexer",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-object-atoms",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "es-set-tostringtag",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "es6-error",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "escape-goat",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "escodegen",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint",
            "direct": false,
            "version": "10.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-scope",
            "direct": false,
            "version": "9.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "3.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "4.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "espree",
            "direct": false,
            "version": "10.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "espree",
            "direct": false,
            "version": "11.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "esprima",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "esquery",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "esrecurse",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estraverse",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "esutils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "event-target-shim",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "events",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "events-universal",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "execa",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "expect-type",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "extend",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-fifo",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "fast-json-stable-stringify",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-levenshtein",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "fast-uri",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "fecha",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "fetch-blob",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "file-entry-cache",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "find-up-simple",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "flat-cache",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "flatted",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "fn.name",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "follow-redirects",
            "direct": false,
            "version": "1.16.0",
            "ecosystem": "npm"
          },
          {
            "name": "foreground-child",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "form-data",
            "direct": false,
            "version": "4.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "form-data-encoder",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "formdata-polyfill",
            "direct": false,
            "version": "4.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "function-bind",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "gaxios",
            "direct": false,
            "version": "6.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "gaxios",
            "direct": false,
            "version": "7.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "gaxios",
            "direct": false,
            "version": "7.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "gcp-metadata",
            "direct": false,
            "version": "6.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "gcp-metadata",
            "direct": false,
            "version": "8.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "get-caller-file",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "get-intrinsic",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-stream",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-stream",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-uri",
            "direct": false,
            "version": "6.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "getos",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "git-last-commit",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "git-raw-commits",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "git-repo-info",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "git-semver-tags",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "gitconfiglocal",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "10.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "global-agent",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "global-dirs",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "globals",
            "direct": false,
            "version": "17.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "globalthis",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "google-auth-library",
            "direct": false,
            "version": "10.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "google-auth-library",
            "direct": false,
            "version": "9.15.1",
            "ecosystem": "npm"
          },
          {
            "name": "google-gax",
            "direct": false,
            "version": "5.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "google-logging-utils",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "google-logging-utils",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "google-protobuf",
            "direct": false,
            "version": "3.21.4",
            "ecosystem": "npm"
          },
          {
            "name": "googleapis",
            "direct": false,
            "version": "126.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "googleapis-common",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "got",
            "direct": false,
            "version": "11.8.6",
            "ecosystem": "npm"
          },
          {
            "name": "got",
            "direct": false,
            "version": "12.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "gtoken",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "gtoken",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "handlebars",
            "direct": false,
            "version": "4.7.9",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-property-descriptors",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "has-symbols",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-tostringtag",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "has-yarn",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "hasown",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "headers-utils",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "hosted-git-info",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hpagent",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "html-encoding-sniffer",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "htmlparser2",
            "direct": false,
            "version": "3.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "htmlparser2",
            "direct": false,
            "version": "8.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "http-cache-semantics",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "http-proxy-agent",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "http2-wrapper",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "http2-wrapper",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "https-proxy-agent",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "https-proxy-agent",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "human-signals",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "ieee754",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "import-lazy",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "imurmurhash",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "index-to-position",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ini",
            "direct": false,
            "version": "1.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "ini",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ip-address",
            "direct": false,
            "version": "10.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-ci",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-extglob",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-glob",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-installed-globally",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-npm",
            "direct": false,
            "version": "6.1.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-potential-custom-element-name",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-running",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-stream",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-typedarray",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-yarn-global",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "isarray",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "isomorphic-ws",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jackspeak",
            "direct": false,
            "version": "3.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "jest-worker",
            "direct": false,
            "version": "28.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "jose",
            "direct": false,
            "version": "6.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "3.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml-cloudformation-schema",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml-js-types",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "jsdom",
            "direct": false,
            "version": "27.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsep",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-bigint",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-buffer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-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": "json-stringify-safe",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "jsonpath-plus",
            "direct": false,
            "version": "10.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "jwa",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "jws",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "keyv",
            "direct": false,
            "version": "4.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "kuler",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "latest-version",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lazystream",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "levn",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-android-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-freebsd-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-arm64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-x64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash",
            "direct": false,
            "version": "4.18.1",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.camelcase",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.truncate",
            "direct": false,
            "version": "4.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "logform",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "long",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "lowercase-keys",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lowercase-keys",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "10.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "11.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "matcher",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdn-data",
            "direct": false,
            "version": "2.27.1",
            "ecosystem": "npm"
          },
          {
            "name": "meow",
            "direct": false,
            "version": "13.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge-stream",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-db",
            "direct": false,
            "version": "1.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "2.1.35",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-fn",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-response",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-response",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-response",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "10.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "5.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "9.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "minimist",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "minipass",
            "direct": false,
            "version": "7.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "monkeypatch",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mrmime",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.15",
            "ecosystem": "npm"
          },
          {
            "name": "natural-compare",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "neo-async",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "netmask",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "node-domexception",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-fetch",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-fetch",
            "direct": false,
            "version": "3.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "node-request-interceptor",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-package-data",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-path",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-url",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-url",
            "direct": false,
            "version": "8.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "npm-run-path",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "nth-check",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "oauth4webapi",
            "direct": false,
            "version": "3.8.6",
            "ecosystem": "npm"
          },
          {
            "name": "object-hash",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "object-inspect",
            "direct": false,
            "version": "1.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "object-keys",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "obug",
            "direct": false,
            "version": "2.1.3",
            "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": "openid-client",
            "direct": false,
            "version": "6.8.4",
            "ecosystem": "npm"
          },
          {
            "name": "optionator",
            "direct": false,
            "version": "0.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "p-cancelable",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "p-cancelable",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "pac-proxy-agent",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "pac-resolver",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "package-json",
            "direct": false,
            "version": "8.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "package-json-from-dist",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse-json",
            "direct": false,
            "version": "8.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse5-htmlparser2-tree-adapter",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-exists",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-scurry",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "pend",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "performance-now",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "playwright",
            "direct": false,
            "version": "1.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "playwright-core",
            "direct": false,
            "version": "1.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "pngjs",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.16",
            "ecosystem": "npm"
          },
          {
            "name": "prelude-ls",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "process",
            "direct": false,
            "version": "0.11.10",
            "ecosystem": "npm"
          },
          {
            "name": "process-nextick-args",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "proper-lockfile",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "proto-list",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "proto3-json-serializer",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "protobufjs",
            "direct": false,
            "version": "7.6.4",
            "ecosystem": "npm"
          },
          {
            "name": "protoc-gen-ts",
            "direct": false,
            "version": "0.8.7",
            "ecosystem": "npm"
          },
          {
            "name": "pump",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "punycode",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "pupa",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "qs",
            "direct": false,
            "version": "6.15.3",
            "ecosystem": "npm"
          },
          {
            "name": "quick-lru",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "rc",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "read-package-up",
            "direct": false,
            "version": "11.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "read-pkg",
            "direct": false,
            "version": "9.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "readable-stream",
            "direct": false,
            "version": "2.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "readable-stream",
            "direct": false,
            "version": "3.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "readable-stream",
            "direct": false,
            "version": "4.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "readdir-glob",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "reconnecting-websocket",
            "direct": false,
            "version": "4.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "registry-auth-token",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "registry-url",
            "direct": false,
            "version": "6.0.1",
            "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-alpn",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "responselike",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "responselike",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "retry",
            "direct": false,
            "version": "0.12.0",
            "ecosystem": "npm"
          },
          {
            "name": "retry-request",
            "direct": false,
            "version": "8.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "rfc4648",
            "direct": false,
            "version": "1.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "rimraf",
            "direct": false,
            "version": "5.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "roarr",
            "direct": false,
            "version": "2.15.4",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "safe-stable-stringify",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "saxes",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "5.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.8.5",
            "ecosystem": "npm"
          },
          {
            "name": "semver-compare",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "semver-diff",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "semver-regex",
            "direct": false,
            "version": "3.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "semver-sort",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "serialize-error",
            "direct": false,
            "version": "7.0.1",
            "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.1",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-list",
            "direct": false,
            "version": "1.0.1",
            "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": "siginfo",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "simple-git",
            "direct": false,
            "version": "3.36.0",
            "ecosystem": "npm"
          },
          {
            "name": "sirv",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "slice-ansi",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "smart-buffer",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "socks",
            "direct": false,
            "version": "2.8.9",
            "ecosystem": "npm"
          },
          {
            "name": "socks-proxy-agent",
            "direct": false,
            "version": "8.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-correct",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-exceptions",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-expression-parse",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-license-ids",
            "direct": false,
            "version": "3.0.23",
            "ecosystem": "npm"
          },
          {
            "name": "sprintf-js",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "sprintf-js",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "stack-trace",
            "direct": false,
            "version": "0.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "stackback",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "std-env",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "stream-buffers",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "stream-events",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "stream-shift",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "streamx",
            "direct": false,
            "version": "2.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "strict-event-emitter",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "string_decoder",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "string_decoder",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-final-newline",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-json-comments",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "stubs",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "8.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "symbol-tree",
            "direct": false,
            "version": "3.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "table",
            "direct": false,
            "version": "6.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "tar-fs",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "tar-stream",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "teeny-request",
            "direct": false,
            "version": "10.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "teex",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "temp-dir",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "tempfile",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "text-decoder",
            "direct": false,
            "version": "1.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "text-hex",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinybench",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "tinyrainbow",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "tldts",
            "direct": false,
            "version": "7.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "tldts-core",
            "direct": false,
            "version": "7.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "tmp",
            "direct": false,
            "version": "0.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "totalist",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tough-cookie",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tr46",
            "direct": false,
            "version": "0.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "tr46",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "tree-kill",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "triple-beam",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-check",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "2.19.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "4.41.0",
            "ecosystem": "npm"
          },
          {
            "name": "typedarray-to-buffer",
            "direct": false,
            "version": "3.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "uglify-js",
            "direct": false,
            "version": "3.19.3",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "7.18.2",
            "ecosystem": "npm"
          },
          {
            "name": "unicorn-magic",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "unique-string",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "update-notifier",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "uri-js",
            "direct": false,
            "version": "4.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "url-template",
            "direct": false,
            "version": "2.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "util-deprecate",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "uuid",
            "direct": false,
            "version": "11.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "validate-npm-package-license",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "8.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "w3c-xmlserializer",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "web-streams-polyfill",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "webidl-conversions",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "webidl-conversions",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-mimetype",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-mimetype",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-mimetype",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-url",
            "direct": false,
            "version": "15.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-url",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "why-is-node-running",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "widest-line",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "windows-release",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "winston",
            "direct": false,
            "version": "3.19.0",
            "ecosystem": "npm"
          },
          {
            "name": "winston-transport",
            "direct": false,
            "version": "4.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "word-wrap",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "wordwrap",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "8.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrappy",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "write-file-atomic",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": false,
            "version": "8.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "xdg-basedir",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "xml-name-validator",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "xmlchars",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "y18n",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "17.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "21.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "yauzl",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "yocto-queue",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "zip-stream",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "mkdocs-material",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 733,
        "direct_count": 2,
        "indirect_count": 731
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 11,
        "merged_prs": 143,
        "open_issues": 218,
        "closed_ratio": 0.708,
        "closed_issues": 528,
        "closed_unmerged_prs": 155
      },
      "bus_factor": 1,
      "bot_contributors": 2,
      "top_contributors": [
        {
          "type": "User",
          "login": "tivie",
          "commits": 826,
          "avatar_url": "https://avatars.githubusercontent.com/u/1608730?v=4"
        },
        {
          "type": "User",
          "login": "tstone",
          "commits": 45,
          "avatar_url": "https://avatars.githubusercontent.com/u/90279?v=4"
        },
        {
          "type": "User",
          "login": "SyntaxRules",
          "commits": 22,
          "avatar_url": "https://avatars.githubusercontent.com/u/4117657?v=4"
        },
        {
          "type": "User",
          "login": "pdeschen",
          "commits": 16,
          "avatar_url": "https://avatars.githubusercontent.com/u/153048?v=4"
        },
        {
          "type": "User",
          "login": "VladimirV99",
          "commits": 8,
          "avatar_url": "https://avatars.githubusercontent.com/u/6758619?v=4"
        },
        {
          "type": "User",
          "login": "dchester",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/199934?v=4"
        },
        {
          "type": "User",
          "login": "langpavel",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/142462?v=4"
        },
        {
          "type": "User",
          "login": "bandantonio",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/16765690?v=4"
        },
        {
          "type": "User",
          "login": "DanielRuf",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/827205?v=4"
        },
        {
          "type": "User",
          "login": "ErisDS",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/101513?v=4"
        }
      ],
      "contributors_sampled": 74,
      "top_contributor_share": 0.813
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "browser.yml",
        "browserstack.yml",
        "codeql-analysis.yml",
        "docs.yml",
        "node.linux.yml",
        "node.win.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        "eslint.config.mjs"
      ],
      "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": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": null,
            "reason": "no pull request found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 4 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 10,
            "reason": "all dependencies are pinned",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool detected: CodeQL",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 9,
            "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": 6,
            "reason": "4 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "e5cab1e9a5dcea2bb3cbf888863fa7e65ab37edf",
        "ran_at": "2026-07-23T12:24:35Z",
        "aggregate_score": 7.1,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": true,
      "has_security_policy": true,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-20T04:30:43Z",
      "oldest_open_prs": [
        {
          "number": 618,
          "created_at": "2018-11-13T06:32:22Z",
          "last_comment_at": "2022-08-27T08:36:30Z",
          "last_comment_author": "MarketingPip"
        },
        {
          "number": 985,
          "created_at": "2023-07-11T14:49:02Z",
          "last_comment_at": "2023-07-18T16:22:11Z",
          "last_comment_author": "paviad"
        },
        {
          "number": 994,
          "created_at": "2024-01-18T15:01:58Z",
          "last_comment_at": "2024-01-18T15:02:23Z",
          "last_comment_author": "qlty-cloud-legacy"
        },
        {
          "number": 1054,
          "created_at": "2026-07-04T18:06:29Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1055,
          "created_at": "2026-07-04T18:06:35Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1056,
          "created_at": "2026-07-04T18:06:41Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1057,
          "created_at": "2026-07-04T18:06:46Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1058,
          "created_at": "2026-07-04T18:06:51Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1063,
          "created_at": "2026-07-13T04:30:02Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1065,
          "created_at": "2026-07-20T04:30:41Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1066,
          "created_at": "2026-07-22T17:43:47Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-01T01:32:32Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 233,
          "created_at": "2016-01-25T06:17:45Z",
          "last_comment_at": "2024-01-24T19:00:27Z",
          "last_comment_author": "andrewlu0"
        },
        {
          "number": 322,
          "created_at": "2017-01-03T17:08:19Z",
          "last_comment_at": "2017-01-20T15:51:56Z",
          "last_comment_author": "tivie"
        },
        {
          "number": 367,
          "created_at": "2017-03-30T11:49:31Z",
          "last_comment_at": "2019-01-30T01:36:03Z",
          "last_comment_author": "fabiospampinato"
        },
        {
          "number": 375,
          "created_at": "2017-04-11T12:33:58Z",
          "last_comment_at": "2017-06-02T02:50:24Z",
          "last_comment_author": "tivie"
        },
        {
          "number": 381,
          "created_at": "2017-04-26T14:49:42Z",
          "last_comment_at": "2019-08-24T12:53:55Z",
          "last_comment_author": "hamed-farag"
        },
        {
          "number": 388,
          "created_at": "2017-05-07T19:12:01Z",
          "last_comment_at": "2018-09-14T20:40:34Z",
          "last_comment_author": "tivie"
        },
        {
          "number": 394,
          "created_at": "2017-06-02T02:49:47Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 459,
          "created_at": "2017-11-09T04:22:31Z",
          "last_comment_at": "2017-12-25T23:44:10Z",
          "last_comment_author": "tivie"
        },
        {
          "number": 486,
          "created_at": "2018-01-13T23:49:06Z",
          "last_comment_at": "2018-01-15T07:36:41Z",
          "last_comment_author": "tivie"
        },
        {
          "number": 505,
          "created_at": "2018-03-10T01:52:55Z",
          "last_comment_at": "2020-09-14T20:34:11Z",
          "last_comment_author": "Schachte"
        },
        {
          "number": 511,
          "created_at": "2018-03-30T10:56:18Z",
          "last_comment_at": "2024-04-01T03:46:34Z",
          "last_comment_author": "zzzzBov"
        },
        {
          "number": 518,
          "created_at": "2018-04-19T12:33:21Z",
          "last_comment_at": "2018-05-07T18:10:52Z",
          "last_comment_author": "tivie"
        },
        {
          "number": 537,
          "created_at": "2018-05-20T13:25:54Z",
          "last_comment_at": "2018-09-23T18:01:47Z",
          "last_comment_author": "tivie"
        },
        {
          "number": 549,
          "created_at": "2018-06-06T00:20:00Z",
          "last_comment_at": "2018-06-27T20:19:48Z",
          "last_comment_author": "tivie"
        },
        {
          "number": 554,
          "created_at": "2018-06-13T04:06:29Z",
          "last_comment_at": "2018-06-14T14:42:15Z",
          "last_comment_author": "tivie"
        },
        {
          "number": 558,
          "created_at": "2018-07-01T18:00:43Z",
          "last_comment_at": "2018-07-05T16:19:43Z",
          "last_comment_author": "rugk"
        },
        {
          "number": 567,
          "created_at": "2018-07-31T13:30:55Z",
          "last_comment_at": "2018-08-08T13:31:03Z",
          "last_comment_author": "peci1"
        },
        {
          "number": 576,
          "created_at": "2018-08-29T02:54:17Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 584,
          "created_at": "2018-09-11T23:07:57Z",
          "last_comment_at": "2018-09-14T18:23:42Z",
          "last_comment_author": "tivie"
        },
        {
          "number": 586,
          "created_at": "2018-09-17T08:15:12Z",
          "last_comment_at": "2018-09-17T17:20:16Z",
          "last_comment_author": "tivie"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/showdownjs/showdown",
    "host": "github.com",
    "name": "showdown",
    "owner": "showdownjs"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 71,
      "inputs": {
        "security": 77,
        "vitality": 57,
        "community": 89,
        "governance": 53,
        "engineering": 87
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 57,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "commits_last_year": 188,
              "human_commit_share": 1,
              "days_since_last_push": 3,
              "active_weeks_last_year": 5
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 3 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 3
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "5/52 weeks with commits",
                "points": 3.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "188 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 188
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "at_risk",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "releases_count": 54,
              "latest_release_tag": "2.1.0",
              "releases_from_tags": false,
              "days_since_latest_release": 1554,
              "mean_days_between_releases": 176.8
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "54 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 54
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 1554 days ago",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 1554
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~176.8 days",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 176.8
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 18,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 18 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 18
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "excellent",
        "name": "Community & Adoption",
        "value": 89,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "excellent",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 98,
            "inputs": {
              "forks": 1568,
              "stars": 14873,
              "watchers": 184,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "14,873 stars",
                "points": 60,
                "status": "met",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 14873
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "1,568 forks",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 1568
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "184 watchers",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 184
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 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": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "excellent",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "packages": [
                "showdown"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 5622437
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "5,622,437 downloads/month across npm",
                "points": 80,
                "status": "met",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 5622437,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 53,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 37,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 74,
              "top_contributor_share": 0.813
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 81% of commits",
                "points": 4.2,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 81
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "74 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 74
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 4 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "moderate",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 52,
            "inputs": {
              "merged_prs": 143,
              "open_issues": 218,
              "closed_issues": 528,
              "issue_closed_ratio": 0.708,
              "closed_unmerged_prs": 155
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "71% of issues closed",
                "points": 33.1,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 71
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "143/298 decided PRs merged",
                "points": 18.4,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 143,
                      "decided": 298
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "followers": 34,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "showdownjs",
              "public_repos": 14,
              "account_age_days": 5004
            },
            "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": "34 followers of showdownjs",
                "points": 11.1,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 34,
                      "login": "showdownjs"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "14 public repos, account ~13 yr old",
                "points": 20.6,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 14
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 13
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "moderate",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 69,
            "inputs": {
              "packages": [
                "showdown"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 1554
            },
            "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 1554 days ago",
                "points": 4,
                "status": "partial",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 1554
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "62 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 62
                    }
                  }
                ],
                "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": "excellent",
        "name": "Engineering Quality",
        "value": 87,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 88,
            "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": "6 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": "eslint.config.mjs",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "eslint.config.mjs"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "topics": [
                "showdown",
                "javascript",
                "markdown",
                "markdown-parser",
                "markdown-flavors",
                "gfm",
                "html",
                "converter",
                "html-converter"
              ],
              "has_wiki": true,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "9 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "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": "good",
        "name": "Security",
        "value": 77,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "good",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, CI-Tests, Packaging. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "ci_tests",
                    "packaging"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 71,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 15,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 3,
              "scorecard_aggregate": 7.1
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 4 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "all dependencies are pinned",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool detected: CodeQL",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 6.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "4 existing vulnerabilities detected",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:showdown@2.1.0 runtime dependency closure — what installing the published package pulls in — 1 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "npm:showdown@2.1.0",
                  "assessed": 1
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 1,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 1,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 10
            },
            "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": 53,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.87,
              "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": "87 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 87,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0.02,
              "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": "eslint.config.mjs",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "eslint.config.mjs"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "2 of the last 100 commits agent-authored or agent-credited",
                "points": 4,
                "status": "partial",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 2,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "dependency automation configured, none observed in the sampled commits",
                "points": 5,
                "status": "partial",
                "details": [
                  {
                    "code": "dependency_bot_config_only",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "all dependencies are pinned",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 54,
            "inputs": {
              "primary_language": "JavaScript",
              "largest_source_bytes": 111256,
              "source_files_sampled": 122,
              "oversized_source_files": 1
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "JavaScript without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "JavaScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "1/122 source files over 60KB",
                "points": 54.5,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 122,
                      "oversized": 1
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-23T12:24:52.405298Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/showdownjs/showdown.svg",
  "full_name": "showdownjs/showdown",
  "license_state": "standard",
  "license_spdx": "MIT"
}

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

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

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