Public record
Software health reportschema 0.27.0 · metrics 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 stars⑂ 1,568 forkssince Nov 2008View on GitHub ↗

showdownjs/showdown holds a health index of 71 out of 100, placing it in the Good band. It scores highest on Community & Adoption (89/100) and lowest on AI Readiness (53/100). It was last updated 3 days ago. A single contributor accounts for most of its recent work.

71
overall / 100
Good

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At risk ceiling of 49. AI Readiness sits outside the overall score.

71
Excellent85-100Exemplary; meets essentially all checked criteria
Good70-84Healthy; minor gaps
Moderate50-69Acceptable with notable gaps; review recommended
At risk30-49Significant weaknesses; adoption warrants caution
Critical1-29Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

Ownership

ShowdownJSOrganization
34 followers14 public repossince Nov 2012

This repository is backed by an organization — shared, accountable stewardship that can outlive any single maintainer.

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publishTags
npmshowdown2.1.05,622,437621554 days agomarkdownconverter

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

57Moderate · 22% of overall
How it's scored
36/36Push recency — last push 3 days ago
3.5/36Commit cadence — 5/52 weeks with commits
18/18Commit volume — 188 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year188
human_commit_share1
days_since_last_push3
active_weeks_last_year5
How it's scored
27/27Ships releases — 54 releases published
0/36Release recency — latest release 1,554 days ago
12.6/27Release cadence — a release every ~176.8 days
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Inputs used
releases_count54
latest_release_tag2.1.0
releases_from_tagsno
days_since_latest_release1,554
mean_days_between_releases176.8

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

89Excellent · 18% of overall
How it's scored
60/60Stars — 14,873 stars
25/25Forks — 1,568 forks
12.6/15Watchers — 184 watchers
Inputs used
forks1,568
stars14,873
watchers184
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (MIT)
18/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
0/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingyes
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno
How it's scored
80/80Monthly downloads — 5,622,437 downloads/month across npm
0/20Registry dependents — not reported by this ecosystem
Inputs used
packagesshowdown
dependents
ecosystemsnpm
total_downloads
monthly_downloads5,622,437
Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

53Moderate · 24% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
4.2/22.5Commit distribution — top contributor authored 81% of commits
13.5/13.5Contributor breadth — 74 contributors
10/10OpenSSF Scorecard: Contributors — project has 4 contributing companies or organizations
Inputs used
bus_factor1
contributors_sampled74
top_contributor_share0.813
How it's scored
33.1/46.8Issue resolution — 71% of issues closed
18.4/38.3PR acceptance — 143/298 decided PRs merged
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Inputs used
merged_prs143
open_issues218
closed_issues528
issue_closed_ratio0.708
closed_unmerged_prs155
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
11.1/25Owner reach — 34 followers of showdownjs
20.6/25Track record — 14 public repos, account ~13 yr old
Inputs used
followers34
owner_typeOrganization
is_verified
owner_loginshowdownjs
public_repos14
account_age_days5,004
How it's scored
25/25Published & resolvable — 1 package(s) on npm
4/35Publish recency — latest publish 1,554 days ago
20/20Version history — 62 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagesshowdown
ecosystemsnpm
any_deprecatedno
min_days_since_publish1,554

Engineering Quality

Are baseline engineering and documentation practices in place?

87Excellent · 20% of overall
How it's scored
24/24CI workflows — 6 workflow(s)
24/24Tests present
16/16Linter config — eslint.config.mjs
0/9.6Pre-commit hooks
6.4/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — no data
Inputs used
has_ciyes
has_testsyes
has_editorconfigyes
has_linter_configyes
has_precommit_configno
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.

Documentation

85Excellent
How it's scored
30/30README
25/25Documentation directory
0/15Documentation / homepage site
10/10Repository description
10/10Topics — 9 topics
10/10Wiki
Inputs used
topicsshowdown, javascript, markdown, markdown-parser, markdown-flavors, gfm, html, converter, html-converter
has_wikiyes
homepage
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

77Good · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — no data
0/2.5CI-Tests — no data
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.5License — 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 — no data
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
Inputs used
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate7.1
Excluded from scoring (no data or not applicable): branch_protection, ci_tests, packaging. Remaining weights renormalized.
How it's scored
35/35Direct dependencies free of known advisories — no direct dependency carries a known advisory
25/25Indirect dependencies free of known advisories — no indirect dependency carries a known advisory
0/40No advisories left outstanding — no advisory carries a publication date
Inputs used
sourceosv
advisories0
affected_packages0
assessed_packages1
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
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.

AI Readiness

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.

53Moderate · 0% of overall
How it's scored
0/45Agent instructions — no CLAUDE.md / AGENTS.md / editor rules
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 87 of 100 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.87
agent_instruction_files
agent_instruction_max_bytes
How it's scored
0/18One-command bootstrap
22/22Automated tests
11/11Lint / format config — eslint.config.mjs
0/11Static type checking
10/10Reproducible environment — lockfile
4/10Demonstrated agent practice — 2 of the last 100 commits agent-authored or agent-credited
5/8Automated maintenance — dependency automation configured, none observed in the sampled commits
10/10OpenSSF Scorecard: Pinned-Dependencies — all dependencies are pinned
Inputs used
has_nixno
has_testsyes
lockfilespackage-lock.json
has_dockerfileno
typed_languageno
bootstrap_files
has_devcontainerno
has_linter_configyes
typecheck_configs
agent_commit_share0.02
toolchain_manifests
dependency_bot_commit_share0
How it's scored
0/45Type-checkable code — JavaScript without a type-check config
54.5/55Manageable file sizes — 1/122 source files over 60KB
Inputs used
primary_languageJavaScript
largest_source_bytes111,256
source_files_sampled122
oversized_source_files1

Key facts

14,873GitHub stars
74contributors
188commits, last 12 months
3days since last push
54releases
1bus factor
218open issues
npm, PyPIpackage ecosystems

Data collection warnings

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

More detail

Star and fork history 0 ★ / 1,568 ⇿
0Stars
1,568Forks
34Releases

When each star and fork was added, collected from GitHub and bucketed by day. Cumulative growth sits directly above the daily additions it is made of, so the two read against each other: steady organic accretion looks nothing like an abrupt, short-lived burst. Where that difference is measurable, it is reported as growth authenticity.

Only the most recent history is shown — this repository exceeds the collection window, so the earliest history is not captured.

4006008001,0001,2001,4001,6001,568102016-082021-082026-07
Major 1Minor 6Patch 26

Each point covers 10 days.

OpenSSF Scorecard 7.1 / 10
7.1aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).Scorecard v5.5.0 · 2026-07-23 12:24 UTC

10Binary-Artifactsno binaries found in the repo
n/aBranch-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
n/aCI-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
n/aPackagingpackaging 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
Direct dependencies 2
RegistryPackageVersion constraintManifest
npmcommander^14.0.0package.json
npmhappy-dom^20.10.6package.json
All dependencies 733

Full resolved dependency set from the GitHub dependency graph: 2 direct and 731 indirect (transitive) packages. The transitive closure is complete when the repository commits a lockfile.

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

Installing npm:showdown@2.1.0 pulls in 1 packages, direct and transitive: 0 carry known advisories, of which 0 are direct dependencies.

No known advisories affect the assessed dependencies.

An advisory means the version recorded in the dependency graph falls inside an advisory’s affected range. Reachability is not analysed, and the graph includes development and test pins — a finding may concern tooling rather than shipped software.

Raw JSON report machine-readable
{
  "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"
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v1.13.0, schema v0.27.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statisticsnpm.