Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 1.13.0 · 2026-07-23 12:24 UTC

showdownjs / showdown

A bidirectional Markdown to HTML to Markdown converter written in Javascript

JavaScript · HTMLMIT★ 14.873 estrellas⑂ 1568 forksdesde nov 2008Ver en GitHub ↗

showdownjs/showdown tiene un índice de salud de 71 sobre 100, lo que lo sitúa en la banda Bueno. Su puntuación más alta es Community & Adoption (89/100) y la más baja, AI Readiness (53/100). Se actualizó por última vez hace 3 días. Una sola persona concentra la mayor parte del trabajo reciente.

71
global / 100
Bueno

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala de 1 a 100. El resultado global parte de su media; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe el límite 49 (En riesgo). Preparación para IA queda fuera.

71
Excelente85-100Ejemplar; cumple prácticamente todos los criterios evaluados
Bueno70-84Saludable; carencias menores
Moderado50-69Aceptable con carencias notables; se recomienda revisión
En riesgo30-49Debilidades significativas; su adopción exige cautela
Crítico1-29Problemas graves (proyecto abandonado, un solo mantenedor, sin higiene)
VitalidadComunidad yAdopciónSostenibilidady GobernanzaCalidad deIngenieríaSeguridadPreparaciónpara IA

Perfil de puntuación

Cada eje es una categoría. La forma importa más que la media: un proyecto sano llena toda la figura, mientras que un perfil de picos y cráteres indica que la fortaleza en una dimensión enmascara el riesgo en otra.

Titularidad

ShowdownJSOrganización
34 seguidores14 repositorios públicosdesde nov 2012

Este repositorio está respaldado por una organización: una custodia compartida y responsable que puede sobrevivir a cualquier mantenedor individual.

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicaciónEtiquetas
npmshowdown2.1.05.622.43762hace 1554 díasmarkdownconverter

Métricas por categoría

Vitalidad

¿Está vivo el proyecto: se escribe código y se publican versiones?

57Moderado · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 3 días
3.5/36Cadencia de commits — 5/52 semanas con commits
18/18Volumen de commits — 188 commits en el último año
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10
Datos de entrada utilizados
commits_last_year188
human_commit_share1
days_since_last_push3
active_weeks_last_year5
Cómo se puntúa
27/27Publica versiones — 54 versiones publicadas
0/36Recencia de las versiones — última versión hace 1554 días
12.6/27Cadencia de publicación — una versión cada ~176,8 días
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Datos de entrada utilizados
releases_count54
latest_release_tag2.1.0
releases_from_tagsno
days_since_latest_release1554
mean_days_between_releases176,8

Comunidad y Adopción

¿Tiene el proyecto usuarios, descargas, atención y unas condiciones acogedoras para quienes contribuyen?

89Excelente · 18% del índice global
Cómo se puntúa
60/60Estrellas — 14.873 estrellas
25/25Forks — 1568 forks
12.6/15Observadores — 184 observadores
Datos de entrada utilizados
forks1568
stars14.873
watchers184
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (MIT)
18/18Guía CONTRIBUTING
0/13.5Código de conducta
0/7.2Plantilla de issues
0/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
has_contributing
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno
Cómo se puntúa
80/80Descargas mensuales — 5.622.437 descargas/mes en npm
0/20Dependientes en el registro — no lo informa este ecosistema
Datos de entrada utilizados
packagesshowdown
dependents
ecosystemsnpm
total_downloads
monthly_downloads5.622.437
Excluidos de la puntuación (sin datos o no aplicable): Dependientes en el registro. Los pesos restantes se han renormalizado.

Sostenibilidad y Gobernanza

¿Sobrevivirá el proyecto a sus personas: factor bus, capacidad de respuesta, quién lo respalda y mantenimiento del paquete?

53Moderado · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
4.2/22.5Distribución de commits — el principal contribuyente firma el 81% de los commits
13.5/13.5Amplitud de contribuyentes — 74 contribuyentes
10/10OpenSSF Scorecard: Contributors — project has 4 contributing companies or organizations
Datos de entrada utilizados
bus_factor1
contributors_sampled74
top_contributor_share0,813
Cómo se puntúa
33.1/46.8Resolución de issues — 71% de issues cerradas
18.4/38.3Aceptación de PR — 143/298 PR decididos fusionados
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Datos de entrada utilizados
merged_prs143
open_issues218
closed_issues528
issue_closed_ratio0,708
closed_unmerged_prs155
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
11.1/25Alcance del propietario — 34 seguidores de showdownjs
20.6/25Trayectoria — 14 repos públicos, cuenta de ~13 años
Datos de entrada utilizados
followers34
owner_typeOrganization
is_verified
owner_loginshowdownjs
public_repos14
account_age_days5004
Cómo se puntúa
25/25Publicado y resoluble — 1 paquete(s) en npm
4/35Recencia de publicación — última publicación hace 1554 días
20/20Historial de versiones — 62 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagesshowdown
ecosystemsnpm
any_deprecatedno
min_days_since_publish1554

Calidad de Ingeniería

¿Existen unas prácticas mínimas de ingeniería y documentación?

87Excelente · 20% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 6 flujo(s) de trabajo
24/24Pruebas presentes
16/16Configuración de linter — eslint.config.mjs
0/9.6Hooks de pre-commit
6.4/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — sin datos
Datos de entrada utilizados
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_configno
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: CI-Tests. Los pesos restantes se han renormalizado.

Documentación

85Excelente
Cómo se puntúa
30/30README
25/25Directorio de documentación
0/15Sitio de documentación / página del proyecto
10/10Descripción del repositorio
10/10Topics — 9 topics
10/10Wiki
Datos de entrada utilizados
topicsshowdown, javascript, markdown, markdown-parser, markdown-flavors, gfm, html, converter, html-converter
has_wiki
homepage
has_readme
has_docs_dir
has_description

Seguridad

¿Son sólidas las prácticas visibles de seguridad y de cadena de suministro, sin exposición jurisdiccional de alto riesgo sin resolver?

77Bueno · 16% del índice global
Cómo se puntúa
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — sin datos
0/2.5CI-Tests — sin datos
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 4 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Licencia — license file detected
7.5/7.5Maintained — 30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — sin datos
5/5Pinned-Dependencies — all dependencies are pinned
5/5SAST — SAST tool detected: CodeQL
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
6.8/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
4.5/7.5Vulnerabilities — 4 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate7,1
Excluidos de la puntuación (sin datos o no aplicable): branch_protection, ci_tests, packaging. Los pesos restantes se han renormalizado.
Cómo se puntúa
35/35Dependencias directas libres de avisos conocidos — ninguna dependencia directa tiene un aviso conocido
25/25Dependencias indirectas libres de avisos conocidos — ninguna dependencia indirecta tiene un aviso conocido
0/40Sin avisos pendientes — ningún aviso tiene fecha de publicación
Datos de entrada utilizados
sourceosv
advisories0
affected_packages0
assessed_packages1
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Excluidos de la puntuación (sin datos o no aplicable): Sin avisos pendientes. Los pesos restantes se han renormalizado. Se cotejó el cierre de dependencias en tiempo de ejecución de npm:showdown@2.1.0 —lo que arrastra la instalación del paquete publicado—: 1 paquetes. No se analiza la alcanzabilidad.

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? Es una insignia independiente y experimental — peso 0,0, de modo que se presenta por separado y no afecta a la puntuación de salud global.

53Moderado · 0% del índice global
Cómo se puntúa
0/45Instrucciones para agentes — sin CLAUDE.md / AGENTS.md / reglas de editor
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 87 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,87
agent_instruction_files
agent_instruction_max_bytes
Cómo se puntúa
0/18Arranque con un solo comando
22/22Pruebas automatizadas
11/11Configuración de lint / formato — eslint.config.mjs
0/11Verificación estática de tipos
10/10Entorno reproducible — lockfile
4/10Práctica demostrada con agentes — 2 de los últimos 100 commits con autoría o crédito de agente
5/8Mantenimiento automatizado — automatización de dependencias configurada, no observada en los commits muestreados
10/10OpenSSF Scorecard: Pinned-Dependencies — all dependencies are pinned
Datos de entrada utilizados
has_nixno
has_tests
lockfilespackage-lock.json
has_dockerfileno
typed_languageno
bootstrap_files
has_devcontainerno
has_linter_config
typecheck_configs
agent_commit_share0,02
toolchain_manifests
dependency_bot_commit_share0
Cómo se puntúa
0/45Código verificable por tipos — JavaScript sin configuración de verificación de tipos
54.5/55Tamaños de archivo manejables — 1/122 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageJavaScript
largest_source_bytes111.256
source_files_sampled122
oversized_source_files1

Datos clave

14.873estrellas de GitHub
74contribuidores
188commits en los últimos 12 meses
3días desde el último push
54versiones publicadas
1factor bus
218issues abiertas
npm, PyPIecosistemas de paquetes

Advertencias de recopilación de datos

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

Más detalle

Historial de estrellas y forks 0 ★ / 1568 ⇿
0Estrellas
1568Forks
34Versiones

Cuándo se añadió cada estrella y fork, recopilado de GitHub y agrupado por día. El crecimiento acumulado se sitúa justo encima de las adiciones diarias que lo componen, de modo que ambos se leen en conjunto: la acumulación orgánica sostenida no se parece en nada a un pico abrupto y efímero. Cuando esa diferencia es medible, se informa como autenticidad del crecimiento.

Solo se muestra el historial más reciente: este repositorio supera la ventana de recopilación, por lo que no se captura el historial más antiguo.

40060080010001200140016001568102016-082021-082026-07
Mayor 1Menor 6Parche 26

Cada punto abarca 10 días.

OpenSSF Scorecard 7.1 / 10
7.1agregado

Evaluación de seguridad independiente y agnóstica en cuanto a herramientas, procedente del proyecto de código abierto OpenSSF Scorecard. Cada comprobación premia una práctica de seguridad, no la herramienta de un proveedor concreto. Las comprobaciones que Scorecard no pudo determinar se marcan como n/d y se excluyen de la puntuación de seguridad (nunca se cuentan como cero).Scorecard v5.5.0 · 2026-07-23 12:24 UTC

10Binary-Artifactsno binaries found in the repo
n/dBranch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
n/dCI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
10Contributorsproject has 4 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10
n/dPackagingpackaging workflow not detected
10Pinned-Dependenciesall dependencies are pinned
10SASTSAST tool detected: CodeQL
10Security-Policysecurity policy file detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
9Token-Permissionsdetected GitHub workflow tokens with excessive permissions
6Vulnerabilities4 existing vulnerabilities detected
Dependencias directas 2
RegistroPaqueteRestricción de versiónManifiesto
npmcommander^14.0.0package.json
npmhappy-dom^20.10.6package.json
Todas las dependencias 733

Conjunto completo de dependencias resueltas según el grafo de dependencias de GitHub: 2 paquetes directos y 731 indirectos (transitivos). El cierre transitivo es completo cuando el repositorio incluye un lockfile.

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

Instalar npm:showdown@2.1.0 arrastra 1 paquetes, directos y transitivos: 0 tienen avisos conocidos, de los cuales 0 son dependencias directas.

Ningún aviso conocido afecta a las dependencias evaluadas.

Un aviso significa que la versión registrada en el grafo de dependencias cae dentro del rango afectado de un aviso. No se analiza la alcanzabilidad, y el grafo incluye fijaciones de desarrollo y prueba: un hallazgo puede referirse al utillaje y no al software distribuido.

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

Las puntuaciones son señales, no garantías. Reflejan prácticas públicamente visibles en GitHub; no son una auditoría de código ni una garantía de seguridad.

Los datos ausentes se excluyen y los pesos se renormalizan; nunca se puntúan como cero. La metodología es versionada y abierta: métricas v1.13.0, esquema v0.27.0 — metodología completa · wiki de métricas.

Cómo se sitúa un resultado dentro del registro general: estadísticas agregadasnpm.