Звіт у форматі JSON машиночитний
{
"data": {
"repo": {
"topics": [
"showdown",
"javascript",
"markdown",
"markdown-parser",
"markdown-flavors",
"gfm",
"html",
"converter",
"html-converter"
],
"is_fork": false,
"size_kb": 9769,
"has_wiki": true,
"homepage": null,
"languages": {
"HTML": 182172,
"JavaScript": 727348
},
"pushed_at": "2026-07-20T04:30:41Z",
"created_at": "2008-11-13T21:39:21Z",
"owner_type": "Organization",
"updated_at": "2026-07-20T02:01:18Z",
"description": "A bidirectional Markdown to HTML to Markdown converter written in Javascript",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "master",
"license_spdx_raw": "MIT",
"primary_language": "JavaScript",
"significant_languages": [
"JavaScript",
"HTML"
]
},
"owner": {
"blog": null,
"name": "ShowdownJS",
"type": "Organization",
"login": "showdownjs",
"company": null,
"location": null,
"followers": 34,
"avatar_url": "https://avatars.githubusercontent.com/u/2754978?v=4",
"created_at": "2012-11-09T00:45:02Z",
"is_verified": null,
"public_repos": 14,
"account_age_days": 5004
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "2.1.0",
"kind": "minor",
"published_at": "2022-04-21T00:32:33Z"
},
{
"tag": "2.0.4",
"kind": "patch",
"published_at": "2022-04-21T00:22:07Z"
},
{
"tag": "2.0.3",
"kind": "patch",
"published_at": "2022-03-08T09:44:59Z"
},
{
"tag": "2.0.0",
"kind": "major",
"published_at": "2022-02-16T04:03:03Z"
},
{
"tag": "2.0.0-alpha",
"kind": "prerelease",
"published_at": "2022-02-02T04:42:24Z"
},
{
"tag": "1.9.1",
"kind": "patch",
"published_at": "2019-11-02T23:32:02Z"
},
{
"tag": "1.9.0",
"kind": "minor",
"published_at": "2018-11-10T23:33:24Z"
},
{
"tag": "1.8.7",
"kind": "patch",
"published_at": "2018-10-16T22:35:10Z"
},
{
"tag": "1.8.6",
"kind": "patch",
"published_at": "2017-12-22T10:44:46Z"
},
{
"tag": "1.8.5",
"kind": "patch",
"published_at": "2017-12-11T13:56:30Z"
},
{
"tag": "1.8.4",
"kind": "patch",
"published_at": "2017-12-05T01:19:05Z"
},
{
"tag": "1.8.3",
"kind": "patch",
"published_at": "2017-11-28T03:11:48Z"
},
{
"tag": "1.8.2",
"kind": "patch",
"published_at": "2017-11-11T13:36:02Z"
},
{
"tag": "1.8.1",
"kind": "patch",
"published_at": "2017-11-01T20:34:38Z"
},
{
"tag": "1.8.0",
"kind": "minor",
"published_at": "2017-10-24T16:17:41Z"
},
{
"tag": "1.7.6",
"kind": "patch",
"published_at": "2017-10-06T11:57:21Z"
},
{
"tag": "1.7.5",
"kind": "patch",
"published_at": "2017-10-02T04:25:53Z"
},
{
"tag": "1.7.4",
"kind": "patch",
"published_at": "2017-09-08T19:53:51Z"
},
{
"tag": "1.7.3",
"kind": "patch",
"published_at": "2017-08-23T21:58:23Z"
},
{
"tag": "1.7.2",
"kind": "patch",
"published_at": "2017-08-05T00:52:56Z"
},
{
"tag": "1.7.1",
"kind": "patch",
"published_at": "2017-06-02T02:33:48Z"
},
{
"tag": "1.7.0",
"kind": "minor",
"published_at": "2017-06-01T01:49:07Z"
},
{
"tag": "1.6.4",
"kind": "patch",
"published_at": "2017-05-01T17:39:14Z"
},
{
"tag": "1.6.3",
"kind": "patch",
"published_at": "2017-01-30T22:42:52Z"
},
{
"tag": "1.6.2",
"kind": "patch",
"published_at": "2017-01-29T23:34:04Z"
},
{
"tag": "1.6.1",
"kind": "patch",
"published_at": "2017-01-28T02:51:33Z"
},
{
"tag": "1.6.0",
"kind": "minor",
"published_at": "2017-01-09T02:41:23Z"
},
{
"tag": "1.5.5",
"kind": "patch",
"published_at": "2017-01-06T04:29:02Z"
},
{
"tag": "1.5.4",
"kind": "patch",
"published_at": "2016-12-21T09:07:55Z"
},
{
"tag": "1.5.2",
"kind": "patch",
"published_at": "2016-12-17T05:32:44Z"
},
{
"tag": "1.5.1",
"kind": "patch",
"published_at": "2016-12-01T15:44:24Z"
},
{
"tag": "1.5.0",
"kind": "minor",
"published_at": "2016-11-11T08:58:13Z"
},
{
"tag": "1.4.4",
"kind": "patch",
"published_at": "2016-11-02T21:18:27Z"
},
{
"tag": "1.4.3",
"kind": "patch",
"published_at": "2016-11-02T16:36:22Z"
},
{
"tag": "1.4.2",
"kind": "patch",
"published_at": "2016-06-21T01:27:00Z"
},
{
"tag": "1.4.1",
"kind": "patch",
"published_at": "2016-05-17T20:37:37Z"
},
{
"tag": "1.4.0",
"kind": "minor",
"published_at": "2016-05-13T15:34:55Z"
},
{
"tag": "1.3.0",
"kind": "minor",
"published_at": "2015-10-19T02:29:53Z"
},
{
"tag": "1.2.3",
"kind": "patch",
"published_at": "2015-08-27T04:28:01Z"
},
{
"tag": "1.2.2",
"kind": "patch",
"published_at": "2015-08-02T15:10:33Z"
},
{
"tag": "1.2.1",
"kind": "patch",
"published_at": "2015-07-22T17:50:02Z"
},
{
"tag": "1.2.0",
"kind": "minor",
"published_at": "2015-07-13T20:36:20Z"
},
{
"tag": "1.1.0",
"kind": "minor",
"published_at": "2015-06-18T00:28:12Z"
},
{
"tag": "1.0.2",
"kind": "patch",
"published_at": "2015-05-28T23:43:57Z"
},
{
"tag": "1.0.1",
"kind": "patch",
"published_at": "2015-05-27T22:52:54Z"
},
{
"tag": "1.0.0",
"kind": "major",
"published_at": "2015-05-27T22:53:49Z"
},
{
"tag": "0.5.4",
"kind": "patch",
"published_at": "2015-05-27T15:07:04Z"
},
{
"tag": "0.5.3",
"kind": "patch",
"published_at": "2015-05-27T02:01:42Z"
},
{
"tag": "1.0.0-alpha.2",
"kind": "prerelease",
"published_at": "2015-05-15T21:36:54Z"
},
{
"tag": "1.0.0-alpha1",
"kind": "prerelease",
"published_at": "2015-05-14T02:07:04Z"
},
{
"tag": "0.5.1",
"kind": "patch",
"published_at": "2015-05-13T21:47:44Z"
},
{
"tag": "0.5.0",
"kind": "minor",
"published_at": "2015-04-22T14:47:22Z"
},
{
"tag": "0.3.4",
"kind": "patch",
"published_at": "2015-01-06T16:14:14Z"
},
{
"tag": "0.3.3",
"kind": "patch",
"published_at": "2015-01-05T00:46:07Z"
}
],
"recent_commits": [
{
"oid": "e5cab1e9a5dcea2bb3cbf888863fa7e65ab37edf",
"body": null,
"is_bot": false,
"headline": "Merge branch 'develop' into master",
"author_name": "Estêvão Soares dos Santos",
"author_login": "tivie",
"committed_at": "2026-07-05T00:17:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c987270ca80ee7f7b43fb896856b9a52ec640c30",
"body": "…c path\n\nOn the CommonMark (cmSpec) inline path, `<www.google.com>` was escaped to\n`<www.google.com>` and then had its interior re-linked by the GFM\nsimplifiedAutoLink post-pass, producing the broken\n`<<a>www.google.com</a>>` (\"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. `ö`) 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.  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 `<` 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 \"<\" 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 </>. 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"
}