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

StoneCypher / jssm

Fast, easy Javascript finite state machines with visualizations; enjoy a one liner FSM instead of pages. MIT; Typescripted; 100% test coverage. Implements the FSL language.

TypeScript · JavaScriptMIT★ 366 estrellas⑂ 24 forksdesde may 2017Ver en GitHub ↗

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

72
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.

72
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

John HaugelandCuenta personal
214 seguidores548 repositorios públicosdesde abr 2009Crunchy Development

Este repositorio pertenece a una cuenta personal. Un proyecto con un único propietario conlleva más riesgo de continuidad que uno respaldado por una organización.

Ecosistemas de paquetes

Métricas por categoría

Vitalidad

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

86Excelente · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 3 días
13.2/36Cadencia de commits — 19/52 semanas con commits
18/18Volumen de commits — 1254 commits en el último año
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
Datos de entrada utilizados
commits_last_year1254
human_commit_share1
days_since_last_push3
active_weeks_last_year19
Cómo se puntúa
27/27Publica versiones — 100 versiones publicadas
36/36Recencia de las versiones — última versión hace 5 días
27/27Cadencia de publicación — una versión cada ~0,3 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count100
latest_release_tag5.163.4
releases_from_tagsno
days_since_latest_release5
mean_days_between_releases0,3
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Signed-Releases. Los pesos restantes se han renormalizado.

Comunidad y Adopción

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

59Moderado · 18% del índice global
Cómo se puntúa
41.6/60Estrellas — 366 estrellas
11.3/25Forks — 24 forks
4.3/15Observadores — 7 observadores
Datos de entrada utilizados
forks24
stars366
watchers7
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)
0/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_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno
Cómo se puntúa
59.9/80Descargas mensuales — 30.835 descargas/mes en npm
0/20Dependientes en el registro — no lo informa este ecosistema
Datos de entrada utilizados
packagesjssm
dependents
ecosystemsnpm
total_downloads
monthly_downloads30.835
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?

67Moderado · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
0.3/22.5Distribución de commits — el principal contribuyente firma el 98% de los commits
13.5/13.5Amplitud de contribuyentes — 11 contribuyentes
10/10OpenSSF Scorecard: Contributors — project has 3 contributing companies or organizations -- score normalized to 10
Datos de entrada utilizados
bus_factor1
contributors_sampled11
top_contributor_share0,985
Cómo se puntúa
46.1/46.8Resolución de issues — 99% de issues cerradas
36.1/38.3Aceptación de PR — 403/427 PR decididos fusionados
0/15OpenSSF Scorecard: Code-Review — Found 0/13 approved changesets -- score normalized to 0
Datos de entrada utilizados
merged_prs403
open_issues7
closed_issues537
issue_closed_ratio0,987
closed_unmerged_prs24
Cómo se puntúa
10/30Respaldo de la propiedad — cuenta personal (usuario)
0/20Dominio verificado — no aplicable a cuentas de usuario
16.8/25Alcance del propietario — 214 seguidores de StoneCypher
25/25Trayectoria — 548 repos públicos, cuenta de ~17 años
Datos de entrada utilizados
followers214
owner_typeUser
is_verified
owner_loginStoneCypher
public_repos548
account_age_days6299
Excluidos de la puntuación (sin datos o no aplicable): Dominio verificado. Los pesos restantes se han renormalizado.
Cómo se puntúa
25/25Publicado y resoluble — 1 paquete(s) en npm
35/35Recencia de publicación — última publicación hace 5 días
20/20Historial de versiones — 515 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagesjssm
ecosystemsnpm
any_deprecatedno
min_days_since_publish5

Calidad de Ingeniería

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

80Bueno · 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
20/20OpenSSF Scorecard: CI-Tests — 13 out of 13 merged PRs checked by a CI test -- score normalized to 10
Datos de entrada utilizados
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_configno

Documentación

65Moderado
Cómo se puntúa
30/30README
0/25Directorio de documentación
15/15Sitio de documentación / página del proyecto — http://fsl.tools/
10/10Descripción del repositorio
10/10Topics — 20 topics
0/10Wiki
Datos de entrada utilizados
topicsstate, state-machine, machine, finite-state-machine, fsm, fsm-library, js, javascript, javascript-library, mit-license, tested, typed, typed-js, flowtype, mealy-machine, moore-machine, mealy, moore, graphviz, dsl
has_wikino
homepagehttp://fsl.tools/
has_readme
has_docs_dirno
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?

63Moderado · 16% del índice global
Cómo se puntúa
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
2.5/2.5CI-Tests — 13 out of 13 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/13 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 3 contributing companies or organizations -- score normalized to 10
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
5/5Fuzzing — project is fuzzed
2.5/2.5Licencia — license file detected
7.5/7.5Maintained — 30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — sin datos
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — sin datos
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
5.2/7.5Vulnerabilities — 3 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate5,4
Excluidos de la puntuación (sin datos o no aplicable): packaging, signed_releases. 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_packages4
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:jssm@5.163.4 —lo que arrastra la instalación del paquete publicado—: 4 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.

68Moderado · 0% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — CLAUDE.md, src/fsl.tools/AGENTS.md
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 99 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,99
agent_instruction_filesCLAUDE.md, src/fsl.tools/AGENTS.md
agent_instruction_max_bytes9406
Cómo se puntúa
0/18Arranque con un solo comando
22/22Pruebas automatizadas
11/11Configuración de lint / formato — eslint.config.mjs
11/11Verificación estática de tipos — tsconfig.json
10/10Entorno reproducible — lockfile
0/10Práctica demostrada con agentes — ningún commit con autoría de agente entre los últimos 100
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Datos de entrada utilizados
has_nixno
has_tests
lockfilespackage-lock.json
has_dockerfileno
typed_language
bootstrap_files
has_devcontainerno
has_linter_config
typecheck_configstsconfig.json
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
Cómo se puntúa
45/45Código verificable por tipos — TypeScript (tipado estático)
53.8/55Tamaños de archivo manejables — 11/520 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageTypeScript
largest_source_bytes1.986.367
source_files_sampled520
oversized_source_files11
Cómo se puntúa
0/40Esquema de API (OpenAPI/GraphQL/proto)
0/20Servidor MCP
40/40Ejemplos ejecutables — examples, recipes
Datos de entrada utilizados
example_dirsexamples, recipes
has_mcp_signalno
api_schema_files

Datos clave

366estrellas de GitHub
11contribuidores
1254commits en los últimos 12 meses
3días desde el último push
100versiones publicadas
1factor bus
7issues abiertas
npmecosistemas 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 ★ / 24 ⇿
0Estrellas
24Forks

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.

048121620242442017-082022-012026-06

Cada punto abarca 9 días.

OpenSSF Scorecard 5.4 / 10
5.4agregado

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-24 04:27 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
10CI-Tests13 out of 13 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/13 approved changesets -- score normalized to 0
10Contributorsproject has 3 contributing companies or organizations -- score normalized to 10
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
10Fuzzingproject is fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
n/dPackagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
n/dSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
7Vulnerabilities3 existing vulnerabilities detected
Dependencias directas 2
RegistroPaqueteRestricción de versiónManifiesto
npmcircular_buffer_js^1.10.0package.json
npmreduce-to-639-1^1.1.0package.json
Todas las dependencias 795

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

RegistroPaqueteVersiónRelación
npmcircular_buffer_js1.10.0directa
npmreduce-to-639-11.1.0directa
npm@andrewbranch/untar.js1.0.3indirecta
npm@arethetypeswrong/cli0.18.5indirecta
npm@arethetypeswrong/core0.18.5indirecta
npm@arrows/array1.4.1indirecta
npm@arrows/composition1.2.2indirecta
npm@arrows/dispatch1.0.3indirecta
npm@arrows/error1.0.2indirecta
npm@arrows/multimethod1.4.1indirecta
npm@asamuzakjp/css-color3.2.0indirecta
npm@babel/code-frame7.29.7indirecta
npm@babel/helper-string-parser7.29.7indirecta
npm@babel/helper-validator-identifier7.29.7indirecta
npm@babel/parser7.29.7indirecta
npm@babel/types7.29.7indirecta
npm@bcoe/v8-coverage1.0.2indirecta
npm@braidai/lang1.1.2indirecta
npm@codemirror/autocomplete6.20.3indirecta
npm@codemirror/commands6.10.4indirecta
npm@codemirror/language6.12.4indirecta
npm@codemirror/lint6.9.7indirecta
npm@codemirror/state6.7.1indirecta
npm@codemirror/view6.43.2indirecta
npm@colors/colors1.5.0indirecta
npm@commitlint/cli21.2.1indirecta
npm@commitlint/config-conventional21.2.0indirecta
npm@commitlint/config-validator21.2.0indirecta
npm@commitlint/ensure21.2.0indirecta
npm@commitlint/execute-rule21.0.1indirecta
npm@commitlint/format21.2.0indirecta
npm@commitlint/is-ignored21.2.0indirecta
npm@commitlint/lint21.2.0indirecta
npm@commitlint/load21.2.0indirecta
npm@commitlint/message21.2.0indirecta
npm@commitlint/parse21.2.0indirecta
npm@commitlint/read21.2.1indirecta
npm@commitlint/resolve-extends21.2.0indirecta
npm@commitlint/rules21.2.0indirecta
npm@commitlint/to-lines21.0.1indirecta
npm@commitlint/top-level21.2.0indirecta
npm@commitlint/types21.2.0indirecta
npm@conventional-changelog/git-client3.1.0indirecta
npm@conventional-changelog/template1.2.1indirecta
npm@csstools/color-helpers5.1.0indirecta
npm@csstools/css-calc2.1.4indirecta
npm@csstools/css-color-parser3.1.0indirecta
npm@csstools/css-parser-algorithms3.0.5indirecta
npm@csstools/css-tokenizer3.0.4indirecta
npm@custom-elements-manifest/analyzer0.10.10indirecta
npm@custom-elements-manifest/find-dependencies0.0.6indirecta
npm@emnapi/core1.10.0indirecta
npm@emnapi/core1.11.1indirecta
npm@emnapi/core1.11.2indirecta
npm@emnapi/runtime1.10.0indirecta
npm@emnapi/runtime1.11.1indirecta
npm@emnapi/runtime1.11.2indirecta
npm@emnapi/wasi-threads1.2.1indirecta
npm@emnapi/wasi-threads1.2.2indirecta
npm@es-joy/jsdoccomment0.88.0indirecta
npm@es-joy/resolve.exports1.2.0indirecta
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@gerrit0/mini-shiki3.23.0indirecta
npm@github/catalyst1.8.1indirecta
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@jridgewell/gen-mapping0.3.13indirecta
npm@jridgewell/remapping2.3.5indirecta
npm@jridgewell/resolve-uri3.1.2indirecta
npm@jridgewell/source-map0.3.11indirecta
npm@jridgewell/sourcemap-codec1.5.5indirecta
npm@jridgewell/trace-mapping0.3.31indirecta
npm@lezer/common1.5.2indirecta
npm@lezer/highlight1.2.3indirecta
npm@lezer/lr1.4.10indirecta
npm@lit-labs/ssr-dom-shim1.6.0indirecta
npm@lit/reactive-element2.1.2indirecta
npm@loaderkit/resolve1.0.6indirecta
npm@marijn/find-cluster-break1.0.3indirecta
npm@napi-rs/wasm-runtime1.1.6indirecta
npm@nodelib/fs.scandir2.1.5indirecta
npm@nodelib/fs.stat2.0.5indirecta
npm@nodelib/fs.walk1.2.8indirecta
npm@oxc-project/types0.138.0indirecta
npm@playwright/test1.61.1indirecta
npm@resvg/resvg-wasm2.6.2indirecta
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@rollup/plugin-commonjs28.0.9indirecta
npm@rollup/plugin-node-resolve15.3.1indirecta
npm@rollup/plugin-replace6.0.3indirecta
npm@rollup/plugin-typescript12.3.0indirecta
npm@rollup/pluginutils5.4.0indirecta
npm@rollup/rollup-android-arm-eabi4.62.2indirecta
npm@rollup/rollup-android-arm644.62.2indirecta
npm@rollup/rollup-darwin-arm644.62.2indirecta
npm@rollup/rollup-darwin-x644.62.2indirecta
npm@rollup/rollup-freebsd-arm644.62.2indirecta
npm@rollup/rollup-freebsd-x644.62.2indirecta
npm@rollup/rollup-linux-arm-gnueabihf4.62.2indirecta
npm@rollup/rollup-linux-arm-musleabihf4.62.2indirecta
npm@rollup/rollup-linux-arm64-gnu4.62.2indirecta
npm@rollup/rollup-linux-arm64-musl4.62.2indirecta
npm@rollup/rollup-linux-loong64-gnu4.62.2indirecta
npm@rollup/rollup-linux-loong64-musl4.62.2indirecta
npm@rollup/rollup-linux-ppc64-gnu4.62.2indirecta
npm@rollup/rollup-linux-ppc64-musl4.62.2indirecta
npm@rollup/rollup-linux-riscv64-gnu4.62.2indirecta
npm@rollup/rollup-linux-riscv64-musl4.62.2indirecta
npm@rollup/rollup-linux-s390x-gnu4.62.2indirecta
npm@rollup/rollup-linux-x64-gnu4.62.2indirecta
npm@rollup/rollup-linux-x64-musl4.62.2indirecta
npm@rollup/rollup-openbsd-x644.62.2indirecta
npm@rollup/rollup-openharmony-arm644.62.2indirecta
npm@rollup/rollup-win32-arm64-msvc4.62.2indirecta
npm@rollup/rollup-win32-ia32-msvc4.62.2indirecta
npm@rollup/rollup-win32-x64-gnu4.62.2indirecta
npm@rollup/rollup-win32-x64-msvc4.62.2indirecta
npm@shikijs/engine-oniguruma3.23.0indirecta
npm@shikijs/langs3.23.0indirecta
npm@shikijs/themes3.23.0indirecta
npm@shikijs/types3.23.0indirecta
npm@shikijs/vscode-textmate10.0.2indirecta
npm@simple-libs/child-process-utils2.0.0indirecta
npm@simple-libs/stream-utils2.0.0indirecta
npm@sindresorhus/base621.0.0indirecta
npm@sindresorhus/is4.6.0indirecta
npm@standard-schema/spec1.1.0indirecta
npm@swc/core1.15.43indirecta
npm@swc/core-darwin-arm641.15.43indirecta
npm@swc/core-darwin-x641.15.43indirecta
npm@swc/core-linux-arm-gnueabihf1.15.43indirecta
npm@swc/core-linux-arm64-gnu1.15.43indirecta
npm@swc/core-linux-arm64-musl1.15.43indirecta
npm@swc/core-linux-ppc64-gnu1.15.43indirecta
npm@swc/core-linux-s390x-gnu1.15.43indirecta
npm@swc/core-linux-x64-gnu1.15.43indirecta
npm@swc/core-linux-x64-musl1.15.43indirecta
npm@swc/core-win32-arm64-msvc1.15.43indirecta
npm@swc/core-win32-ia32-msvc1.15.43indirecta
npm@swc/core-win32-x64-msvc1.15.43indirecta
npm@swc/counter0.1.3indirecta
npm@swc/types0.1.27indirecta
npm@tybys/wasm-util0.10.3indirecta
npm@types/chai5.2.3indirecta
npm@types/chalk2.2.4indirecta
npm@types/deep-eql4.0.2indirecta
npm@types/esrecurse4.3.1indirecta
npm@types/estree1.0.9indirecta
npm@types/hast3.0.4indirecta
npm@types/jsdom21.1.7indirecta
npm@types/json-schema7.0.15indirecta
npm@types/node26.1.0indirecta
npm@types/resolve1.20.2indirecta
npm@types/tough-cookie4.0.5indirecta
npm@types/trusted-types2.0.7indirecta
npm@types/unist3.0.3indirecta
npm@typescript-eslint/eslint-plugin8.63.0indirecta
npm@typescript-eslint/parser8.63.0indirecta
npm@typescript-eslint/project-service8.63.0indirecta
npm@typescript-eslint/scope-manager8.63.0indirecta
npm@typescript-eslint/tsconfig-utils8.63.0indirecta
npm@typescript-eslint/type-utils8.63.0indirecta
npm@typescript-eslint/types8.63.0indirecta
npm@typescript-eslint/typescript-estree8.63.0indirecta
npm@typescript-eslint/utils8.63.0indirecta
npm@typescript-eslint/visitor-keys8.63.0indirecta
npm@unrs/resolver-binding-android-arm-eabi1.12.2indirecta
npm@unrs/resolver-binding-android-arm641.12.2indirecta
npm@unrs/resolver-binding-darwin-arm641.12.2indirecta
npm@unrs/resolver-binding-darwin-x641.12.2indirecta
npm@unrs/resolver-binding-freebsd-x641.12.2indirecta
npm@unrs/resolver-binding-linux-arm-gnueabihf1.12.2indirecta
npm@unrs/resolver-binding-linux-arm-musleabihf1.12.2indirecta
npm@unrs/resolver-binding-linux-arm64-gnu1.12.2indirecta
npm@unrs/resolver-binding-linux-arm64-musl1.12.2indirecta
npm@unrs/resolver-binding-linux-loong64-gnu1.12.2indirecta
npm@unrs/resolver-binding-linux-loong64-musl1.12.2indirecta
npm@unrs/resolver-binding-linux-ppc64-gnu1.12.2indirecta
npm@unrs/resolver-binding-linux-riscv64-gnu1.12.2indirecta
npm@unrs/resolver-binding-linux-riscv64-musl1.12.2indirecta
npm@unrs/resolver-binding-linux-s390x-gnu1.12.2indirecta
npm@unrs/resolver-binding-linux-x64-gnu1.12.2indirecta
npm@unrs/resolver-binding-linux-x64-musl1.12.2indirecta
npm@unrs/resolver-binding-openharmony-arm641.12.2indirecta
npm@unrs/resolver-binding-wasm32-wasi1.12.2indirecta
npm@unrs/resolver-binding-win32-arm64-msvc1.12.2indirecta
npm@unrs/resolver-binding-win32-ia32-msvc1.12.2indirecta
npm@unrs/resolver-binding-win32-x64-msvc1.12.2indirecta
npm@vitest/coverage-v84.1.9indirecta
npm@vitest/eslint-plugin1.6.23indirecta
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
npm@viz-js/viz3.28.0indirecta
npm@web/config-loader0.1.3indirecta
npm@xn-sakina/rml-darwin-arm642.8.0indirecta
npm@xn-sakina/rml-darwin-x642.8.0indirecta
npm@xn-sakina/rml-linux-arm-gnueabihf2.8.0indirecta
npm@xn-sakina/rml-linux-arm64-gnu2.8.0indirecta
npm@xn-sakina/rml-linux-arm64-musl2.8.0indirecta
npm@xn-sakina/rml-linux-x64-gnu2.8.0indirecta
npm@xn-sakina/rml-linux-x64-musl2.8.0indirecta
npm@xn-sakina/rml-win32-arm64-msvc2.8.0indirecta
npm@xn-sakina/rml-win32-x64-msvc2.8.0indirecta
npmaccepts1.3.8indirecta
npmacorn8.17.0indirecta
npmacorn-jsx5.3.2indirecta
npmagent-base7.1.4indirecta
npmajv6.15.0indirecta
npmajv8.20.0indirecta
npmajv-formats3.0.1indirecta
npmansi-escapes4.3.2indirecta
npmansi-escapes7.3.0indirecta
npmansi-regex2.1.1indirecta
npmansi-regex5.0.1indirecta
npmansi-regex6.2.2indirecta
npmansi-styles3.2.1indirecta
npmansi-styles4.3.0indirecta
npmansi-styles6.2.3indirecta
npmany-promise1.3.0indirecta
npmanymatch3.1.3indirecta
npmare-docs-informative0.0.2indirecta
npmarg-parser1.2.0indirecta
npmargparse2.0.1indirecta
npmargue-cli3.1.0indirecta
npmarray-back1.0.4indirecta
npmarray-back2.0.0indirecta
npmarray-back3.1.0indirecta
npmarray-back6.2.3indirecta
npmarray-flatten1.1.1indirecta
npmarray-union2.1.0indirecta
npmassertion-error2.0.1indirecta
npmast-v8-to-istanbul1.0.4indirecta
npmastral-regex2.0.0indirecta
npmasynckit0.4.0indirecta
npmbalanced-match1.0.2indirecta
npmbalanced-match4.0.4indirecta
npmbase64-js1.5.1indirecta
npmbaseline-browser-mapping2.10.43indirecta
npmbenchmark2.1.4indirecta
npmbenny3.7.1indirecta
npmbetter_git_changelog1.6.20indirecta
npmbinary-extensions2.3.0indirecta
npmbody-parser1.20.5indirecta
npmbrace-expansion1.1.15indirecta
npmbrace-expansion5.0.7indirecta
npmbraces3.0.3indirecta
npmbrowserslist4.28.5indirecta
npmbuffer5.7.1indirecta
npmbuffer-from1.1.2indirecta
npmbuiltin-modules5.3.0indirecta
npmbytes3.1.2indirecta
npmcall-bind-apply-helpers1.0.2indirecta
npmcall-bound1.0.4indirecta
npmcallsites3.1.0indirecta
npmcaniuse-lite1.0.30001803indirecta
npmchai6.2.2indirecta
npmchalk2.4.2indirecta
npmchalk4.1.2indirecta
npmchalk5.6.2indirecta
npmchange-case5.4.4indirecta
npmchar-regex1.0.2indirecta
npmchokidar3.5.2indirecta
npmci-info4.4.0indirecta
npmcjs-module-lexer1.4.3indirecta
npmcli-color1.4.0indirecta
npmcli-cursor3.1.0indirecta
npmcli-highlight2.1.11indirecta
npmcli-table30.6.5indirecta
npmcliui7.0.4indirecta
npmcliui9.0.1indirecta
npmcloc2.11.0indirecta
npmcolor-convert1.9.3indirecta
npmcolor-convert2.0.1indirecta
npmcolor-name1.1.3indirecta
npmcolor-name1.1.4indirecta
npmcombined-stream1.0.8indirecta
npmcommand-line-args4.0.7indirecta
npmcommand-line-args5.1.2indirecta
npmcommand-line-usage5.0.5indirecta
npmcommander10.0.1indirecta
npmcommander2.20.3indirecta
npmcommander6.2.1indirecta
npmcommander9.5.0indirecta
npmcomment-parser1.2.4indirecta
npmcomment-parser1.4.7indirecta
npmcommon-tags1.8.2indirecta
npmcommondir1.0.1indirecta
npmconcat-map0.0.1indirecta
npmcontent-disposition0.5.4indirecta
npmcontent-type1.0.5indirecta
npmconventional-changelog-angular9.2.1indirecta
npmconventional-changelog-conventionalcommits10.2.1indirecta
npmconventional-commits-parser7.1.0indirecta
npmconvert-hrtime5.0.0indirecta
npmconvert-source-map2.0.0indirecta
npmcookie0.7.2indirecta
npmcookie-signature1.0.7indirecta
npmcore-js-compat3.49.0indirecta
npmcosmiconfig9.0.2indirecta
npmcosmiconfig-typescript-loader6.3.0indirecta
npmcrelt1.0.7indirecta
npmcross-spawn7.0.6indirecta
npmcssstyle4.6.0indirecta
npmcustom-elements-manifest1.0.0indirecta
npmd1.0.2indirecta
npmdata-urls5.0.0indirecta
npmdebounce1.2.1indirecta
npmdebug2.6.9indirecta
npmdebug4.4.3indirecta
npmdecimal.js10.6.0indirecta
npmdeep-extend0.6.0indirecta
npmdeep-is0.1.4indirecta
npmdeepmerge4.3.1indirecta
npmdeepmerge-ts7.1.5indirecta
npmdelayed-stream1.0.0indirecta
npmdepd2.0.0indirecta
npmdestroy1.2.0indirecta
npmdetect-indent7.0.2indirecta
npmdetect-libc2.1.2indirecta
npmdir-glob3.0.1indirecta
npmdunder-proto1.0.1indirecta
npmee-first1.1.1indirecta
npmelectron-to-chromium1.5.389indirecta
npmemoji-regex10.6.0indirecta
npmemoji-regex8.0.0indirecta
npmemojilib2.4.0indirecta
npmencodeurl2.0.0indirecta
npmenhanced-resolve5.24.2indirecta
npmentities4.5.0indirecta
npmentities6.0.1indirecta
npmenv-paths2.2.1indirecta
npmenvironment1.1.0indirecta
npmerror-ex1.3.4indirecta
npmes-define-property1.0.1indirecta
npmes-errors1.3.0indirecta
npmes-module-lexer1.7.0indirecta
npmes-module-lexer2.3.0indirecta
npmes-object-atoms1.1.2indirecta
npmes-set-tostringtag2.1.0indirecta
npmes-toolkit1.49.0indirecta
npmes5-ext0.10.64indirecta
npmes6-iterator2.0.3indirecta
npmes6-symbol3.1.4indirecta
npmes6-weak-map2.0.3indirecta
npmesbuild0.28.1indirecta
npmescalade3.2.0indirecta
npmescape-html1.0.3indirecta
npmescape-string-regexp1.0.5indirecta
npmescape-string-regexp4.0.0indirecta
npmescape-string-regexp5.0.0indirecta
npmeslint10.7.0indirecta
npmeslint-compat-utils0.5.1indirecta
npmeslint-import-context0.1.9indirecta
npmeslint-import-resolver-typescript4.4.5indirecta
npmeslint-plugin-es-x7.8.0indirecta
npmeslint-plugin-functional10.0.0indirecta
npmeslint-plugin-import-x4.17.1indirecta
npmeslint-plugin-jsdoc63.0.13indirecta
npmeslint-plugin-n18.2.2indirecta
npmeslint-plugin-promise7.3.0indirecta
npmeslint-plugin-regexp3.1.1indirecta
npmeslint-plugin-unicorn71.1.0indirecta
npmeslint-scope9.1.2indirecta
npmeslint-visitor-keys3.4.3indirecta
npmeslint-visitor-keys5.0.1indirecta
npmesniff2.0.1indirecta
npmespree11.2.0indirecta
npmesquery1.7.0indirecta
npmesrecurse4.3.0indirecta
npmestraverse5.3.0indirecta
npmestree-walker2.0.2indirecta
npmestree-walker3.0.3indirecta
npmesutils2.0.3indirecta
npmetag1.8.1indirecta
npmevent-emitter0.3.5indirecta
npmexpect-type1.4.0indirecta
npmexpress4.22.2indirecta
npmext1.7.0indirecta
npmfast-check2.25.0indirecta
npmfast-deep-equal3.1.3indirecta
npmfast-glob3.3.3indirecta
npmfast-json-stable-stringify2.1.0indirecta
npmfast-levenshtein2.0.6indirecta
npmfast-uri3.1.3indirecta
npmfastq1.20.1indirecta
npmfdir6.5.0indirecta
npmfflate0.8.3indirecta
npmfile-entry-cache8.0.0indirecta
npmfill-range7.1.1indirecta
npmfinalhandler1.3.2indirecta
npmfind-replace1.0.3indirecta
npmfind-replace3.0.0indirecta
npmfind-up5.0.0indirecta
npmfind-up-simple1.0.1indirecta
npmflat-cache4.0.1indirecta
npmflatted3.4.2indirecta
npmform-data4.0.6indirecta
npmforwarded0.2.0indirecta
npmfresh0.5.2indirecta
npmfs-extra10.1.0indirecta
npmfs.realpath1.0.0indirecta
npmfsevents2.3.2indirecta
npmfsevents2.3.3indirecta
npmfunction-bind1.1.2indirecta
npmfunction-timeout1.0.2indirecta
npmget-caller-file2.0.5indirecta
npmget-east-asian-width1.6.0indirecta
npmget-intrinsic1.3.0indirecta
npmget-proto1.0.1indirecta
npmget-tsconfig4.14.0indirecta
npmglob7.2.3indirecta
npmglob-parent5.1.2indirecta
npmglob-parent6.0.2indirecta
npmglobal-directory5.0.0indirecta
npmglobals15.15.0indirecta
npmglobals17.7.0indirecta
npmglobby11.0.4indirecta
npmglobrex0.1.2indirecta
npmgopd1.2.0indirecta
npmgraceful-fs4.2.11indirecta
npmhas-flag3.0.0indirecta
npmhas-flag4.0.0indirecta
npmhas-symbols1.1.0indirecta
npmhas-tostringtag1.0.2indirecta
npmhasown2.0.4indirecta
npmhighlight.js10.7.3indirecta
npmhtml-encoding-sniffer4.0.0indirecta
npmhtml-entities2.6.0indirecta
npmhtml-escaper2.0.2indirecta
npmhttp-errors2.0.1indirecta
npmhttp-proxy-agent7.0.2indirecta
npmhttps-proxy-agent7.0.6indirecta
npmiconv-lite0.4.24indirecta
npmiconv-lite0.6.3indirecta
npmidentifier-regex1.1.0indirecta
npmieee7541.2.1indirecta
npmignore5.3.2indirecta
npmignore7.0.6indirecta
npmimport-fresh3.3.1indirecta
npmimurmurhash0.1.4indirecta
npmindent-string5.0.0indirecta
npminflight1.0.6indirecta
npminherits2.0.4indirecta
npmini6.0.0indirecta
npmipaddr.js1.9.1indirecta
npmis-arrayish0.2.1indirecta
npmis-binary-path2.1.0indirecta
npmis-builtin-module5.0.0indirecta
npmis-bun-module2.0.0indirecta
npmis-core-module2.16.2indirecta
npmis-extglob2.1.1indirecta
npmis-fullwidth-code-point3.0.0indirecta
npmis-glob4.0.3indirecta
npmis-identifier1.1.0indirecta
npmis-immutable-type5.0.4indirecta
npmis-module1.0.0indirecta
npmis-number7.0.0indirecta
npmis-plain-obj4.1.0indirecta
npmis-potential-custom-element-name1.0.1indirecta
npmis-promise2.2.2indirecta
npmis-reference1.2.1indirecta
npmisexe2.0.0indirecta
npmistanbul-lib-coverage3.2.2indirecta
npmistanbul-lib-report3.0.1indirecta
npmistanbul-reports3.2.0indirecta
npmjiti2.6.1indirecta
npmjs-tokens10.0.0indirecta
npmjs-tokens4.0.0indirecta
npmjs-yaml4.3.0indirecta
npmjsdoc-type-pratt-parser7.2.0indirecta
npmjsdom24.1.3indirecta
npmjsesc3.1.0indirecta
npmjson-buffer3.0.1indirecta
npmjson-parse-even-better-errors2.3.1indirecta
npmjson-schema-traverse0.4.1indirecta
npmjson-schema-traverse1.0.0indirecta
npmjson-stable-stringify-without-jsonify1.0.1indirecta
npmjson2csv5.0.7indirecta
npmjsonfile6.2.1indirecta
npmjsonparse1.3.1indirecta
npmkeyv4.5.4indirecta
npmkleur4.1.5indirecta
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
npmlines-and-columns1.2.4indirecta
npmlinkify-it5.0.2indirecta
npmlit3.3.3indirecta
npmlit-element4.2.2indirecta
npmlit-html3.3.3indirecta
npmlocate-path6.0.0indirecta
npmlodash4.18.1indirecta
npmlodash.camelcase4.3.0indirecta
npmlodash.get4.4.2indirecta
npmlodash.padend4.6.1indirecta
npmlog-update4.0.0indirecta
npmlru-cache10.4.3indirecta
npmlru-cache11.5.2indirecta
npmlru-queue0.1.0indirecta
npmlunr2.3.9indirecta
npmmagic-string0.30.21indirecta
npmmagicast0.5.3indirecta
npmmake-asynchronous1.1.0indirecta
npmmake-dir4.0.0indirecta
npmmarkdown-it14.3.0indirecta
npmmarked9.1.6indirecta
npmmarked-terminal7.3.0indirecta
npmmath-intrinsics1.1.0indirecta
npmmdurl2.0.0indirecta
npmmedia-typer0.3.0indirecta
npmmemoizee0.4.17indirecta
npmmerge-descriptors1.0.3indirecta
npmmerge21.4.1indirecta
npmmethods1.1.2indirecta
npmmicromatch4.0.8indirecta
npmmime1.6.0indirecta
npmmime-db1.52.0indirecta
npmmime-types2.1.35indirecta
npmmimic-fn2.1.0indirecta
npmminimatch10.2.5indirecta
npmminimatch3.1.5indirecta
npmms2.0.0indirecta
npmms2.1.3indirecta
npmmz2.7.0indirecta
npmnanoid3.3.15indirecta
npmnapi-postinstall0.3.4indirecta
npmnatural-compare1.4.0indirecta
npmnegotiator0.6.3indirecta
npmnext-tick1.1.0indirecta
npmnode-emoji2.2.0indirecta
npmnode-releases2.0.51indirecta
npmnormalize-path3.0.0indirecta
npmnwsapi2.2.24indirecta
npmoauth0.9.15indirecta
npmobject-assign4.1.1indirecta
npmobject-deep-merge2.0.1indirecta
npmobject-inspect1.13.4indirecta
npmobject-sizeof1.6.3indirecta
npmobug2.1.3indirecta
npmon-finished2.4.1indirecta
npmonce1.4.0indirecta
npmonetime5.1.2indirecta
npmoptionator0.9.4indirecta
npmp-event6.0.1indirecta
npmp-limit3.1.0indirecta
npmp-locate5.0.0indirecta
npmp-timeout6.1.4indirecta
npmparent-module1.0.1indirecta
npmparse-imports-exports0.2.4indirecta
npmparse-json5.2.0indirecta
npmparse-statements1.0.11indirecta
npmparse55.1.1indirecta
npmparse56.0.1indirecta
npmparse57.3.0indirecta
npmparse5-htmlparser2-tree-adapter6.0.1indirecta
npmparseurl1.3.3indirecta
npmpath-exists4.0.0indirecta
npmpath-is-absolute1.0.1indirecta
npmpath-key3.1.1indirecta
npmpath-parse1.0.7indirecta
npmpath-to-regexp0.1.13indirecta
npmpath-type4.0.0indirecta
npmpathe2.0.3indirecta
npmpegjs0.10.0indirecta
npmpicocolors1.1.1indirecta
npmpicomatch2.3.2indirecta
npmpicomatch4.0.5indirecta
npmplatform1.3.6indirecta
npmplaywright1.61.1indirecta
npmplaywright-core1.61.1indirecta
npmpluralize8.0.0indirecta
npmpostcss8.5.16indirecta
npmprelude-ls1.2.1indirecta
npmproxy-addr2.0.7indirecta
npmpsl1.15.0indirecta
npmpunycode2.3.1indirecta
npmpunycode.js2.3.1indirecta
npmpure-rand5.0.5indirecta
npmqs6.15.3indirecta
npmquerystringify2.2.0indirecta
npmqueue-microtask1.2.3indirecta
npmquote-js-string0.1.0indirecta
npmrange-parser1.2.1indirecta
npmraw-body2.5.3indirecta
npmreaddirp3.6.0indirecta
npmreduce-flatten1.0.1indirecta
npmrefa0.12.1indirecta
npmregexp-ast-analysis0.7.1indirecta
npmregjsparser0.13.2indirecta
npmrequire-directory2.1.1indirecta
npmrequire-from-string2.0.2indirecta
npmrequires-port1.0.0indirecta
npmreserved-identifiers1.2.0indirecta
npmresolve1.22.12indirecta
npmresolve-from4.0.0indirecta
npmresolve-from5.0.0indirecta
npmresolve-pkg-maps1.0.0indirecta
npmrestore-cursor3.1.0indirecta
npmreusify1.1.0indirecta
npmrolldown1.1.4indirecta
npmrollup4.62.2indirecta
npmrollup-plugin-dts6.4.1indirecta
npmrollup-plugin-esbuild6.2.1indirecta
npmrrweb-cssom0.7.1indirecta
npmrrweb-cssom0.8.0indirecta
npmrs-module-lexer2.8.0indirecta
npmrun-parallel1.2.0indirecta
npmsafe-buffer5.2.1indirecta
npmsafer-buffer2.1.2indirecta
npmsax1.6.0indirecta
npmsaxes6.0.0indirecta
npmscslre0.3.0indirecta
npmsemver7.8.5indirecta
npmsend0.19.2indirecta
npmserve-static1.16.3indirecta
npmservehere1.10.1indirecta
npmsetprototypeof1.2.0indirecta
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
npmskin-tone2.0.0indirecta
npmslash3.0.0indirecta
npmslice-ansi4.0.0indirecta
npmsource-map0.6.1indirecta
npmsource-map-js1.2.1indirecta
npmsource-map-support0.5.21indirecta
npmspdx-exceptions2.5.0indirecta
npmspdx-expression-parse4.0.0indirecta
npmspdx-license-ids3.0.23indirecta
npmstable-hash-x0.2.0indirecta
npmstackback0.0.2indirecta
npmstatuses2.0.2indirecta
npmstd-env4.1.0indirecta
npmstring-width4.2.3indirecta
npmstring-width7.2.0indirecta
npmstrip-ansi6.0.1indirecta
npmstrip-ansi7.2.0indirecta
npmstrip-indent4.1.1indirecta
npmstyle-mod4.1.3indirecta
npmsuper-regex1.1.0indirecta
npmsupports-color5.5.0indirecta
npmsupports-color7.2.0indirecta
npmsupports-hyperlinks3.2.0indirecta
npmsupports-preserve-symlinks-flag1.0.0indirecta
npmsymbol-tree3.2.4indirecta
npmtable-layout0.4.5indirecta
npmtapable2.3.3indirecta
npmterser5.48.0indirecta
npmtest-value2.1.0indirecta
npmtext_audit0.9.3indirecta
npmthenify3.3.1indirecta
npmthenify-all1.6.0indirecta
npmtime-span5.1.0indirecta
npmtimers-ext0.1.8indirecta
npmtinybench2.9.0indirecta
npmtinyexec1.2.4indirecta
npmtinyglobby0.2.17indirecta
npmtinyrainbow3.1.0indirecta
npmto-regex-range5.0.1indirecta
npmto-valid-identifier1.0.0indirecta
npmtoidentifier1.0.1indirecta
npmtough-cookie4.1.4indirecta
npmtr465.1.1indirecta
npmts-api-utils2.5.0indirecta
npmts-declaration-location1.0.7indirecta
npmtslib2.8.1indirecta
npmtwitter-api-client1.6.1indirecta
npmtxt_tocfill0.5.1indirecta
npmtype2.7.3indirecta
npmtype-check0.4.0indirecta
npmtype-fest0.21.3indirecta
npmtype-fest4.41.0indirecta
npmtype-is1.6.18indirecta
npmtypedoc0.28.20indirecta
npmtypedoc-plugin-missing-exports4.1.3indirecta
npmtypescript5.4.5indirecta
npmtypescript5.6.1-rcindirecta
npmtypescript6.0.3indirecta
npmtypescript-eslint8.63.0indirecta
npmtypical2.6.1indirecta
npmtypical4.0.0indirecta
npmuc.micro2.1.0indirecta
npmundici-types8.3.0indirecta
npmunicode-emoji-modifier-base1.0.0indirecta
npmuniversalify0.2.0indirecta
npmuniversalify2.0.1indirecta
npmunpipe1.0.0indirecta
npmunplugin-utils0.2.5indirecta
npmunrs-resolver1.12.2indirecta
npmupdate-browserslist-db1.2.3indirecta
npmuri-js4.4.1indirecta
npmurl-parse1.5.10indirecta
npmutils-merge1.0.1indirecta
npmvalidate-npm-package-name5.0.1indirecta
npmvary1.1.2indirecta
npmvite8.1.3indirecta
npmvitest4.1.9indirecta
npmw3c-keyname2.2.8indirecta
npmw3c-xmlserializer5.0.0indirecta
npmweb-worker1.5.0indirecta
npmwebidl-conversions7.0.0indirecta
npmwhatwg-encoding3.1.1indirecta
npmwhatwg-mimetype4.0.0indirecta
npmwhatwg-url14.2.0indirecta
npmwhich2.0.2indirecta
npmwhy-is-node-running2.3.0indirecta
npmword-wrap1.2.5indirecta
npmwordwrapjs3.0.0indirecta
npmwrap-ansi6.2.0indirecta
npmwrap-ansi7.0.0indirecta
npmwrap-ansi9.0.2indirecta
npmwrappy1.0.2indirecta
npmws8.21.0indirecta
npmxml-name-validator5.0.0indirecta
npmxml2js0.6.2indirecta
npmxmlbuilder11.0.1indirecta
npmxmlchars2.2.0indirecta
npmy18n5.0.8indirecta
npmyaml2.9.0indirecta
npmyargs16.2.2indirecta
npmyargs18.0.0indirecta
npmyargs-parser20.2.9indirecta
npmyargs-parser22.0.0indirecta
npmyocto-queue0.1.0indirecta
Avisos de dependencias 0

Instalar npm:jssm@5.163.4 arrastra 4 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": [
        "state",
        "state-machine",
        "machine",
        "finite-state-machine",
        "fsm",
        "fsm-library",
        "js",
        "javascript",
        "javascript-library",
        "mit-license",
        "tested",
        "typed",
        "typed-js",
        "flowtype",
        "mealy-machine",
        "moore-machine",
        "mealy",
        "moore",
        "graphviz",
        "dsl"
      ],
      "is_fork": false,
      "size_kb": 136609,
      "has_wiki": false,
      "homepage": "http://fsl.tools/",
      "languages": {
        "CSS": 25717,
        "HTML": 240561,
        "Shell": 61,
        "Batchfile": 184,
        "JavaScript": 715096,
        "PowerShell": 8387,
        "TypeScript": 3323222
      },
      "pushed_at": "2026-07-20T22:10:39Z",
      "created_at": "2017-05-03T04:58:01Z",
      "owner_type": "User",
      "updated_at": "2026-07-18T18:41:58Z",
      "description": "Fast, easy Javascript finite state machines with visualizations; enjoy a one liner FSM instead of pages.  MIT; Typescripted; 100% test coverage.  Implements the FSL language.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript",
        "JavaScript"
      ]
    },
    "owner": {
      "blog": "http://fullof.bs/",
      "name": "John Haugeland",
      "type": "User",
      "login": "StoneCypher",
      "company": "Crunchy Development",
      "location": "San Diego, CA",
      "followers": 214,
      "avatar_url": "https://avatars.githubusercontent.com/u/77482?v=4",
      "created_at": "2009-04-24T18:27:52Z",
      "is_verified": null,
      "public_repos": 548,
      "account_age_days": 6299
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "5.163.4",
          "kind": "patch",
          "published_at": "2026-07-18T18:34:45Z"
        },
        {
          "tag": "5.163.3",
          "kind": "patch",
          "published_at": "2026-07-18T16:09:23Z"
        },
        {
          "tag": "5.163.2",
          "kind": "patch",
          "published_at": "2026-07-18T05:14:39Z"
        },
        {
          "tag": "5.163.1",
          "kind": "patch",
          "published_at": "2026-07-18T04:40:50Z"
        },
        {
          "tag": "5.163.0",
          "kind": "minor",
          "published_at": "2026-07-17T03:59:55Z"
        },
        {
          "tag": "5.162.35",
          "kind": "patch",
          "published_at": "2026-07-16T14:38:43Z"
        },
        {
          "tag": "5.162.34",
          "kind": "patch",
          "published_at": "2026-07-16T04:52:42Z"
        },
        {
          "tag": "5.162.33",
          "kind": "patch",
          "published_at": "2026-07-15T17:36:36Z"
        },
        {
          "tag": "5.162.32",
          "kind": "patch",
          "published_at": "2026-07-15T15:41:48Z"
        },
        {
          "tag": "5.162.31",
          "kind": "patch",
          "published_at": "2026-07-15T15:27:53Z"
        },
        {
          "tag": "5.162.30",
          "kind": "patch",
          "published_at": "2026-07-15T15:12:54Z"
        },
        {
          "tag": "5.162.29",
          "kind": "patch",
          "published_at": "2026-07-15T14:55:08Z"
        },
        {
          "tag": "5.162.28",
          "kind": "patch",
          "published_at": "2026-07-15T14:33:05Z"
        },
        {
          "tag": "5.162.27",
          "kind": "patch",
          "published_at": "2026-07-15T13:53:56Z"
        },
        {
          "tag": "5.162.26",
          "kind": "patch",
          "published_at": "2026-07-15T13:03:51Z"
        },
        {
          "tag": "5.162.25",
          "kind": "patch",
          "published_at": "2026-07-15T05:06:43Z"
        },
        {
          "tag": "5.162.24",
          "kind": "patch",
          "published_at": "2026-07-15T02:39:14Z"
        },
        {
          "tag": "5.162.23",
          "kind": "patch",
          "published_at": "2026-07-14T23:01:57Z"
        },
        {
          "tag": "5.162.22",
          "kind": "patch",
          "published_at": "2026-07-14T21:43:43Z"
        },
        {
          "tag": "5.162.21",
          "kind": "patch",
          "published_at": "2026-07-14T20:32:54Z"
        },
        {
          "tag": "5.162.20",
          "kind": "patch",
          "published_at": "2026-07-14T13:54:15Z"
        },
        {
          "tag": "5.162.19",
          "kind": "patch",
          "published_at": "2026-07-14T13:25:39Z"
        },
        {
          "tag": "5.162.18",
          "kind": "patch",
          "published_at": "2026-07-14T13:01:51Z"
        },
        {
          "tag": "5.162.17",
          "kind": "patch",
          "published_at": "2026-07-14T06:34:01Z"
        },
        {
          "tag": "5.162.16",
          "kind": "patch",
          "published_at": "2026-07-14T06:05:47Z"
        },
        {
          "tag": "5.162.15",
          "kind": "patch",
          "published_at": "2026-07-14T04:24:07Z"
        },
        {
          "tag": "5.162.13",
          "kind": "patch",
          "published_at": "2026-07-12T19:51:12Z"
        },
        {
          "tag": "5.162.12",
          "kind": "patch",
          "published_at": "2026-07-12T18:30:16Z"
        },
        {
          "tag": "5.162.11",
          "kind": "patch",
          "published_at": "2026-07-12T16:23:57Z"
        },
        {
          "tag": "5.162.10",
          "kind": "patch",
          "published_at": "2026-07-12T13:34:20Z"
        },
        {
          "tag": "5.162.9",
          "kind": "patch",
          "published_at": "2026-07-12T11:18:46Z"
        },
        {
          "tag": "5.162.8",
          "kind": "patch",
          "published_at": "2026-07-11T22:04:17Z"
        },
        {
          "tag": "5.162.7",
          "kind": "patch",
          "published_at": "2026-07-10T23:16:24Z"
        },
        {
          "tag": "5.162.6",
          "kind": "patch",
          "published_at": "2026-07-10T17:16:37Z"
        },
        {
          "tag": "5.162.5",
          "kind": "patch",
          "published_at": "2026-07-10T15:00:25Z"
        },
        {
          "tag": "5.162.4",
          "kind": "patch",
          "published_at": "2026-07-10T14:31:42Z"
        },
        {
          "tag": "5.162.3",
          "kind": "patch",
          "published_at": "2026-07-10T14:02:26Z"
        },
        {
          "tag": "5.162.2",
          "kind": "patch",
          "published_at": "2026-07-10T11:54:48Z"
        },
        {
          "tag": "5.162.1",
          "kind": "patch",
          "published_at": "2026-07-07T03:42:43Z"
        },
        {
          "tag": "5.162.0",
          "kind": "minor",
          "published_at": "2026-07-07T03:16:22Z"
        },
        {
          "tag": "5.161.0",
          "kind": "minor",
          "published_at": "2026-07-06T22:28:17Z"
        },
        {
          "tag": "5.160.0",
          "kind": "minor",
          "published_at": "2026-07-06T04:37:40Z"
        },
        {
          "tag": "5.159.2",
          "kind": "patch",
          "published_at": "2026-07-05T05:06:27Z"
        },
        {
          "tag": "5.159.1",
          "kind": "patch",
          "published_at": "2026-07-05T04:05:47Z"
        },
        {
          "tag": "5.159.0",
          "kind": "minor",
          "published_at": "2026-07-05T02:44:09Z"
        },
        {
          "tag": "5.158.2",
          "kind": "patch",
          "published_at": "2026-07-04T20:05:29Z"
        },
        {
          "tag": "5.158.1",
          "kind": "patch",
          "published_at": "2026-07-04T19:52:36Z"
        },
        {
          "tag": "5.158.0",
          "kind": "minor",
          "published_at": "2026-07-03T18:57:59Z"
        },
        {
          "tag": "5.157.18",
          "kind": "patch",
          "published_at": "2026-07-03T18:00:11Z"
        },
        {
          "tag": "5.157.17",
          "kind": "patch",
          "published_at": "2026-07-03T06:07:05Z"
        },
        {
          "tag": "5.157.16",
          "kind": "patch",
          "published_at": "2026-07-03T05:25:13Z"
        },
        {
          "tag": "5.157.15",
          "kind": "patch",
          "published_at": "2026-07-03T05:14:14Z"
        },
        {
          "tag": "5.157.14",
          "kind": "patch",
          "published_at": "2026-07-03T01:06:08Z"
        },
        {
          "tag": "5.157.13",
          "kind": "patch",
          "published_at": "2026-07-03T00:55:04Z"
        },
        {
          "tag": "5.157.12",
          "kind": "patch",
          "published_at": "2026-07-03T00:37:31Z"
        },
        {
          "tag": "5.157.11",
          "kind": "patch",
          "published_at": "2026-07-02T17:50:25Z"
        },
        {
          "tag": "5.157.10",
          "kind": "patch",
          "published_at": "2026-07-02T17:07:12Z"
        },
        {
          "tag": "5.157.9",
          "kind": "patch",
          "published_at": "2026-07-02T16:55:05Z"
        },
        {
          "tag": "5.157.8",
          "kind": "patch",
          "published_at": "2026-07-02T16:42:31Z"
        },
        {
          "tag": "5.157.7",
          "kind": "patch",
          "published_at": "2026-07-02T15:43:04Z"
        },
        {
          "tag": "5.157.6",
          "kind": "patch",
          "published_at": "2026-07-02T15:31:28Z"
        },
        {
          "tag": "5.157.5",
          "kind": "patch",
          "published_at": "2026-07-02T15:15:04Z"
        },
        {
          "tag": "5.157.4",
          "kind": "patch",
          "published_at": "2026-07-02T14:56:20Z"
        },
        {
          "tag": "5.157.3",
          "kind": "patch",
          "published_at": "2026-07-02T14:40:20Z"
        },
        {
          "tag": "5.157.2",
          "kind": "patch",
          "published_at": "2026-07-02T14:19:08Z"
        },
        {
          "tag": "5.157.1",
          "kind": "patch",
          "published_at": "2026-07-02T08:54:11Z"
        },
        {
          "tag": "5.157.0",
          "kind": "minor",
          "published_at": "2026-07-02T08:24:55Z"
        },
        {
          "tag": "5.156.1",
          "kind": "patch",
          "published_at": "2026-07-02T07:17:35Z"
        },
        {
          "tag": "5.156.0",
          "kind": "minor",
          "published_at": "2026-06-29T04:36:35Z"
        },
        {
          "tag": "5.155.1",
          "kind": "patch",
          "published_at": "2026-06-29T03:01:02Z"
        },
        {
          "tag": "5.155.0",
          "kind": "minor",
          "published_at": "2026-06-29T02:47:25Z"
        },
        {
          "tag": "5.154.0",
          "kind": "minor",
          "published_at": "2026-06-29T02:35:30Z"
        },
        {
          "tag": "5.153.0",
          "kind": "minor",
          "published_at": "2026-06-29T01:35:38Z"
        },
        {
          "tag": "5.152.0",
          "kind": "minor",
          "published_at": "2026-06-29T00:30:58Z"
        },
        {
          "tag": "5.151.2",
          "kind": "patch",
          "published_at": "2026-06-28T22:41:16Z"
        },
        {
          "tag": "5.151.1",
          "kind": "patch",
          "published_at": "2026-06-28T20:39:20Z"
        },
        {
          "tag": "5.151.0",
          "kind": "minor",
          "published_at": "2026-06-28T20:35:14Z"
        },
        {
          "tag": "5.150.1",
          "kind": "patch",
          "published_at": "2026-06-28T17:32:35Z"
        },
        {
          "tag": "5.150.0",
          "kind": "minor",
          "published_at": "2026-06-28T16:51:30Z"
        },
        {
          "tag": "5.149.2",
          "kind": "patch",
          "published_at": "2026-06-28T16:32:22Z"
        },
        {
          "tag": "5.149.1",
          "kind": "patch",
          "published_at": "2026-06-28T16:08:56Z"
        },
        {
          "tag": "5.148.2",
          "kind": "patch",
          "published_at": "2026-06-28T08:32:02Z"
        },
        {
          "tag": "5.148.1",
          "kind": "patch",
          "published_at": "2026-06-28T07:33:05Z"
        },
        {
          "tag": "5.148.0",
          "kind": "minor",
          "published_at": "2026-06-28T06:21:17Z"
        },
        {
          "tag": "5.147.10",
          "kind": "patch",
          "published_at": "2026-06-28T04:57:35Z"
        },
        {
          "tag": "5.147.9",
          "kind": "patch",
          "published_at": "2026-06-28T04:29:18Z"
        },
        {
          "tag": "5.147.8",
          "kind": "patch",
          "published_at": "2026-06-27T01:01:13Z"
        },
        {
          "tag": "5.147.7",
          "kind": "patch",
          "published_at": "2026-06-25T04:39:15Z"
        },
        {
          "tag": "5.147.6",
          "kind": "patch",
          "published_at": "2026-06-23T20:58:17Z"
        },
        {
          "tag": "5.147.5",
          "kind": "patch",
          "published_at": "2026-06-23T19:54:35Z"
        },
        {
          "tag": "5.147.4",
          "kind": "patch",
          "published_at": "2026-06-23T19:04:55Z"
        },
        {
          "tag": "5.147.3",
          "kind": "patch",
          "published_at": "2026-06-23T16:55:09Z"
        },
        {
          "tag": "5.147.2",
          "kind": "patch",
          "published_at": "2026-06-23T16:44:25Z"
        },
        {
          "tag": "5.147.1",
          "kind": "patch",
          "published_at": "2026-06-23T16:27:45Z"
        },
        {
          "tag": "5.147.0",
          "kind": "minor",
          "published_at": "2026-06-23T13:59:44Z"
        },
        {
          "tag": "5.146.0",
          "kind": "minor",
          "published_at": "2026-06-23T13:41:08Z"
        },
        {
          "tag": "5.145.6",
          "kind": "patch",
          "published_at": "2026-06-23T13:27:34Z"
        },
        {
          "tag": "5.145.4",
          "kind": "patch",
          "published_at": "2026-06-23T10:45:14Z"
        },
        {
          "tag": "5.145.3",
          "kind": "patch",
          "published_at": "2026-06-23T03:41:55Z"
        },
        {
          "tag": "5.145.2",
          "kind": "patch",
          "published_at": "2026-06-23T03:24:44Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "f4f9496177f19972dd3894733c9da9091b96f7d1",
          "body": "feat(scripts): graviton trail-audit tool (5.163.4)",
          "is_bot": false,
          "headline": "Merge pull request #971 from StoneCypher/feat_26-07-18_trail-audit",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-18T18:31:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "caeb343caf087c98824aa986a0bb9076221de845",
          "body": "Full build over the graviton_trail_audit tool: regenerated dist, docs,\nchangelog, chart, and readme at 5.163.4.",
          "is_bot": false,
          "headline": "feat(scripts): trail-audit release build (5.163.4)",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-18T17:29:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba046f2d07022005fd3cfef180c873b0ff92bacd",
          "body": "…udit",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/main' into feat_26-07-18_trail-a…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-18T17:24:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b4dea8315e527c357e6350f8da2bb7a199a01d8b",
          "body": "chore(chart): perf-chart readability pass (5.163.3)",
          "is_bot": false,
          "headline": "Merge pull request #970 from StoneCypher/chore_26-07-18_perf-chart-order",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-18T16:05:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "85029bad081e5f4763cf77826262a37720a7b631",
          "body": "dist/fence/fence.js shipped unminified through 5.163.2 — 6.5 MB, 42% of\nthe 15.4 MB installed package.  New stage-5 min_fence feature (in-place\nterser --module, the min_cdn pattern, requires make_fence) brings it to\n2.26 MB: a ~27% cut to the whole install.  Minified bundle smoke-verified\nend-to-end (render_fence_html produces correct SVG-bearing HTML).\n\nFounding exhibit of fsl#1965 (v17 install-size cluster).",
          "is_bot": false,
          "headline": "build(fence): minify the shipped fence bundle (min_fence)",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-18T16:05:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eb85df75eb739de4dcad1baa39df4ef0448f0c52",
          "body": "zero_base now anchors only the full-history log twin; every windowed\nlinear twin auto-fits, so the package panel reads absolute long-term and\nzoomed recent, per review of the rendered chart.  Chart regenerated with\ntrail data through 20260718-052334.",
          "is_bot": false,
          "headline": "chore(chart): package-size last-50 twin auto-fits as a zoom",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-18T15:37:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5ff2fefd507d45cf99ead1d7b1db0dd20c4af6b2",
          "body": "…surement)\n\nRe-measures historical trail releases with strict interleaved sampling,\nround-robin partitioned across parallel graviton instances so instance\nidentity never confounds with code era.  Compares audited medians against\nthe trail's recorded general.json values, quantifying the trail's noise\n[…]\nmand plan.\n\n58 spec assertions, no network, no dist requires.\n\nCheckpoint commit: version bump and full build follow before PR, serial\nwith #970.  StoneCypher/fsl#1959 is the motivating investigation.",
          "is_bot": false,
          "headline": "feat(scripts): graviton trail-audit tool (parallel noise-floor re-mea…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-18T14:56:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ab115e6709f23a9a6eafdcae334d8bde1638a94f",
          "body": "Panel order is now transition, action, construct, has_state, edges_between,\nlist_exit_actions, probable_action_exits, package size.  All panels 1.8x\nwider.  Titles carry a 50%-lighter '(higher/lower is better)' suffix driven\nby a per-panel direction declaration.  Operation log twins anchor at the\nda\n[…]\ndecade instead of 10^0; the package-size panel keeps absolute\nanchoring (10^0 log, zero-floored linear) via the zero_base channel.\n\n46 prior + 4 new spec assertions; 50/50 passing.  Chart regenerated.",
          "is_bot": false,
          "headline": "chore(chart): perf-chart readability pass (5.163.3)",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-18T14:45:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c9975786a5317d7bb58a883f201598072c4a5526",
          "body": "chore(examples): add 186 example FSL machines (5.163.2)",
          "is_bot": false,
          "headline": "Merge pull request #969 from StoneCypher/chore_26-07-17_example-machines",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-18T05:10:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3f2dd9b2b63087b09ff119048a6c0bfce0974f29",
          "body": "Adds a corpus of 186 whimsical example machines under src/machines/ —\nfables, sketches, songs, and programmer-culture jokes rendered as finite\nstate machines (the cheese shop's forty self-loops, the Monty Hall switch,\nthe anti-life equation as an incident report, \"works on my machine\", and so\non). E\n[…]\nhinShin/Vat Raghavan\nmachines from 2021 are untouched and keep their rightful credit.\n\nRegenerates every tracked artifact (README, CHANGELOG, docs, dist bundles,\ngrammar) at 5.163.2 via npm run build.",
          "is_bot": false,
          "headline": "chore(examples): add 186 example FSL machines (5.163.2)",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-18T05:06:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "08b32650393cc1df0207d356b3ab9610226710ad",
          "body": "…-scoping\n\nfix(grammar): scope FSL hook keywords to hook shape (5.163.1)",
          "is_bot": false,
          "headline": "Merge pull request #968 from StoneCypher/fix_26-07-17_grammar-keyword…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-18T04:36:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0aa99558b0d2a134050e7a2a4c3f0180ff6abf7b",
          "body": "The TextMate grammar's control keywords were a flat word list, so `on`,\n`enter`, `exit`, `do`, and `after` were coloured as keywords even when used as\nordinary state names — the canonical toggle `on 'flip' -> off;` mis-coloured\n`on`. Scope them contextually instead: the hook keywords `on`/`enter`/`e\n[…]\nReal-engine (vscode-textmate) verified — `on -> off` is\nno longer a keyword while `on enter X do 'y'` still is; the freshness + coverage\nspec stays green. No behaviour change to the parser or library.",
          "is_bot": false,
          "headline": "fix(grammar): scope FSL hook keywords to hook shape (5.163.1)",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-17T20:41:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8f58a659632a646f8a23cee7ee1890f05c24ec48",
          "body": "…rammar\n\nfeat(grammar): ship canonical FSL TextMate grammar in dist/grammars (5.163.0)",
          "is_bot": false,
          "headline": "Merge pull request #967 from StoneCypher/feat_26-07-16_fsl-textmate-g…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-17T03:56:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c047fbf879067c4749d0a0cd43f1d9546bbb2c5",
          "body": "Add dist/grammars/fsl.tmLanguage.json (scope `source.fsl`), the canonical\nTextMate grammar for FSL, shipped in the npm package alongside dist/cm6. It\nis the single source consumed across the editor ecosystem — shiki, GitHub\nLinguist, Monaco, Sublime, bat, and the vscode-fsl extension.\n\nThe grammar i\n[…]\nrator emits — so the grammar\ncan never silently fall behind the language.\n\nAlso adds the `jssm/grammar` package export, the dist/grammars files entry,\nand a README section.\n\nRefs: StoneCypher/fsl#1960",
          "is_bot": false,
          "headline": "feat(grammar): ship canonical FSL TextMate grammar in dist/grammars",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-16T15:42:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5bb28394eef9ed54efff82af213a3f0c7d42ba22",
          "body": "…h-hash-methods\n\nperf(core): revert dispatch-cluster #-private methods to underscore",
          "is_bot": false,
          "headline": "Merge pull request #966 from StoneCypher/perf_26-07-16_revert-dispatc…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-16T14:34:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5a8b37130f49aea443ced44a5f747f08a11b3a5c",
          "body": "…5.162.35)\n\nCompletes the 5.162.8 dispatch-regression fix. 5.162.33 reverted the eight\n#-private data FIELDS (recovering has_state 33x); this reverts the #-private\ndispatch METHODS the same revival privatized: _fire, _fire_one,\n_fire_boundary_actions, _fire_hook_rejection, and _has_subscribers.\n\nA #\n[…]\ns why they are underscore, not #.\n\nNo behavior change; full build green, 7865 spec + 903 stoch at 100% coverage.\nThe trail confirms the recovery on the next nightly graviton sync.\nStoneCypher/fsl#1959",
          "is_bot": false,
          "headline": "perf(core): revert dispatch-cluster #-private methods to underscore (…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-16T14:26:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0758e7411fa79cd4f721e5a9c6b46492392cb299",
          "body": "…r-switch\n\nrefactor(lint): drop unicorn/prefer-switch and restore the edge-type-hook if-chain",
          "is_bot": false,
          "headline": "Merge pull request #965 from StoneCypher/refactor_26-07-15_drop-prefe…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-16T04:49:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "979e72c108fd81de378f4e3ce430c49ce6ca165a",
          "body": "…hook if-chain (5.162.34)\n\nunicorn/prefer-switch mandates a switch over three-plus branches on one\ndiscriminant. In the 5.162.8 lint revival that rule forced a switch onto the\nhand-tuned edge-type-hook dispatch in transition_impl (and it rejects both\nseparate ifs and if/else-if, via prefer-else-if),\n[…]\nip change, not a perf fix — the real\ndispatch regression and its residual are tracked in StoneCypher/fsl#1959.\n\nNo behavior change; full build green, 7865 spec + 903 stoch tests pass at 100%\ncoverage.",
          "is_bot": false,
          "headline": "refactor(lint): drop unicorn/prefer-switch and restore the edge-type-…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-16T04:45:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "708d518ccea81d6bfcb7663ba479cfea3876b6ce",
          "body": "perf(core): revert dispatch-core fields from #-private back to underscore",
          "is_bot": false,
          "headline": "Merge pull request #964 from StoneCypher/perf_26-07-15_hashfield-revert",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T17:32:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "78c4911893f9d60fb37a4075546d5d43ad868a38",
          "body": "…core (5.162.33)\n\n5.162.8 (the ESLint 10 lint revival) manually privatized the eight\ndispatch-core instance stores -- _states, _edges, _edge_map,\n_outbound_edge_ids, _named_transitions, _actions, _reverse_actions,\n_reverse_action_targets -- from the underscore convention to true `#`-private\nfields. \n[…]\nspec, stoch,\nand doctest suites pass unchanged at 100% coverage. The dispatch-path timing\nrecovery will show on the graviton perf trail after publish.\n\nRefs the 5.162.8 regression noted after PR #941.",
          "is_bot": false,
          "headline": "perf(core): revert dispatch-core fields from #-private back to unders…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T17:26:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "728b2a5d7edf402b82c763dd9fffe8bda6bb4ac3",
          "body": "…-bounds\n\nfix(cli): bound fsl-render --width/--height/--scale to finite positive values",
          "is_bot": false,
          "headline": "Merge pull request #963 from StoneCypher/fix_26-07-15_rasterizer-size…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T15:38:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e48604efd4d990d0a77e730839773f9ce33addb8",
          "body": "…e values (5.162.32)\n\nThe size flags were coerced with a bare Number() and rejected only on NaN, so\nInfinity, 0, negatives, and absurd magnitudes passed validation and flowed\ninto the canvas / resvg backend as the fit target. `--width 1e9` attempted a\n~1e9-px allocation (OOM before it throws), `--wi\n[…]\nfinity, 0, a negative --scale, and an absurdly\nlarge --width each exit 1 with a \"must be a positive finite number\" message,\nwhile a valid in-range size flag still renders.\n\nCloses StoneCypher/fsl#1957",
          "is_bot": false,
          "headline": "fix(cli): bound fsl-render --width/--height/--scale to finite positiv…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T15:34:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5001e28f3749419a2592f78b006ee0efaaf765dd",
          "body": "…g-value\n\nfix(cli): parseFslArgs no longer swallows a following flag as a missing value",
          "is_bot": false,
          "headline": "Merge pull request #962 from StoneCypher/fix_26-07-15_argparse-missin…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T15:24:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "883a90ed80991cc3c0e7c19064898c5f8705bd49",
          "body": "…ng value (5.162.31)\n\nA value-taking flag with no attached value consumed the next argv token\nunconditionally, even when that token was itself a flag. `fsl-render\nmachine.fsl --output --stdout` set output to the literal '--stdout' and never\nset the stdout boolean, so the render was written to a file\n[…]\nd --flag=value is unaffected.\n\nAdds cli-utils.spec.ts cases: --output --stdout and -o --stdout both throw\n\"requires a value\", and --width -3 still parses to the number -3.\n\nCloses StoneCypher/fsl#1956",
          "is_bot": false,
          "headline": "fix(cli): parseFslArgs no longer swallows a following flag as a missi…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T15:18:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1d2dbca83606cf92f76dd579ea4c1096d0fb4312",
          "body": "…ollision\n\nfix(cli): stop fsl-render --out-dir silently overwriting basename collisions",
          "is_bot": false,
          "headline": "Merge pull request #961 from StoneCypher/fix_26-07-15_render-outdir-c…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T15:08:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cbef8fba41ffd68ce710fea6407a043cd509fcf2",
          "body": "…lisions (5.162.30)\n\nThe multi-input render path derived each output name from the input's\nbasename only, so two inputs sharing a basename (different directories, or\ndifferent source extensions) both mapped to the same output file. The second\nrender silently clobbered the first, with no warning and \n[…]\nutput names\nare unaffected.\n\nAdds a plugin.spec.ts case: two inputs sharing a basename exit 1 with a\n\"refusing to overwrite\" message, and the first render survives intact.\n\nCloses StoneCypher/fsl#1955",
          "is_bot": false,
          "headline": "fix(cli): stop fsl-render --out-dir silently overwriting basename col…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T15:03:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "25e2f0d6da77a95e4db88c345661efffd2ae93b6",
          "body": "fix(hooks): recompute the _has_* fast-path flags on remove_hook",
          "is_bot": false,
          "headline": "Merge pull request #960 from StoneCypher/fix_26-07-15_remove-hook-flags",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T14:50:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e30401a4aa1620b2f1abd26e9a84f0460c755a77",
          "body": "…2.29)\n\nset_hook turns the _has_* fast-path flags on as hooks are added, but\nremove_hook deleted handlers and map entries without ever recomputing them.\nBecause the flags summarize whole families rather than counting them, a\nremoval left every flag stuck on. Mostly that was a standing per-transition\n[…]\nook_flags.spec.ts: the observable trans_type-leak repro plus\nwhite-box assertions that each flag resets when its last hook goes and stays\nset while another family remains.\n\nCloses StoneCypher/fsl#1954",
          "is_bot": false,
          "headline": "fix(hooks): recompute the _has_* fast-path flags on remove_hook (5.16…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T14:46:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "59dd182b2fe0ab23c705044fb012a335888befa1",
          "body": "…ition\n\nfix(transition): reject reentrant transition from inside a pre-commit hook",
          "is_bot": false,
          "headline": "Merge pull request #959 from StoneCypher/fix_26-07-15_reentrant-trans…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T14:29:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "56fb8061f37a13c73f69065eac07635cef5901e9",
          "body": "… hook (5.162.28)\n\nA hook fires inside transition_impl's pre-commit pipeline, before the outer\ntransition has committed. If that hook itself called transition/go/do/action,\nthe inner transition completed and moved the machine, then the outer frame\ncommitted its pre-captured target on top -- silently\n[…]\nguard clear and the machine usable.\n\nAdds reentrant_transition.spec.ts covering the throw, state coherence, and\nguard reset on the reentry / veto / thrown-hook exit paths.\n\nCloses StoneCypher/fsl#1953",
          "is_bot": false,
          "headline": "fix(transition): reject reentrant transition from inside a pre-commit…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T14:24:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c2176451ea85250d2e18c149fde8e46fcb08678d",
          "body": "fix(after): unref the default after-timer so an abandoned machine can exit",
          "is_bot": false,
          "headline": "Merge pull request #958 from StoneCypher/fix_26-07-13_timer-unref",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T13:50:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a1366499dab7f794c6b2b5a7358e7eb5f7abaa00",
          "body": "… exit (5.162.27)\n\nThe default timeout_source scheduled the `after` timer with a bare\nsetTimeout, whose Node Timeout holds the event loop open. An abandoned\nmachine with a pending `after` therefore kept the process alive until the\ntimer fired go() on it, instead of being collectable and letting the\n\n[…]\ntimeout_source.\n\nThe no-unref path is the browser numeric handle, unreachable in the\nnode-only coverage env, so its false branch carries a v8-ignore matching\nthe repo convention.\n\nStoneCypher/fsl#1952",
          "is_bot": false,
          "headline": "fix(after): unref the default after-timer so an abandoned machine can…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T13:45:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5854da1ac4e94eebfd66ef4dc8f48cc9d63a874f",
          "body": "…kslash\n\nfix(viz): escape backslash in doublequote so a backslash in a label doesn't crash the render (5.162.26)",
          "is_bot": false,
          "headline": "Merge pull request #957 from StoneCypher/fix_26-07-13_doublequote-bac…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T12:59:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a7ba2ffa1552ddb06269b81e908727e99a68b683",
          "body": "…oesn't crash the render (5.162.26)\n\n`doublequote` escaped `\"`→`\\\"` but left `\\` untouched.  A state name/label ending\nin a backslash therefore emitted `label=\"a\\\"`, whose `\\\"` escapes the closing\nquote and corrupts the DOT, so the whole diagram fails to render (graphviz\nthrows a syntax error).  Eve\n[…]\ners without\nthrowing and emits `label=\"a\\\\\"`; an embedded backslash renders; a\nbackslash-then-quote renders; the machine still renders to SVG); full\n`npm run build` green.\n\nCloses StoneCypher/fsl#1951",
          "is_bot": false,
          "headline": "fix(viz): escape backslash in doublequote so a backslash in a label d…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T05:40:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ba1a65fd76600233ffb180fbf44b2420cb1f0e74",
          "body": "…ration\n\nfix(compiler): reject post-arrow decorations on one-way arrows instead of dropping them (5.162.25)",
          "is_bot": false,
          "headline": "Merge pull request #956 from StoneCypher/fix_26-07-13_post-arrow-deco…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T05:03:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2fdbf23a39f48b3773c1501519b712d96dd7ecd7",
          "body": "…d of dropping them (5.162.25)\n\nFor a one-way arrow, a probability/action/after written AFTER the arrow\n(\"a -> 40% b\", \"a -> 'go' b\") is parsed into the reverse-edge slots\n(l_probability / l_action / l_after).  A one-way arrow emits no reverse edge, so\nthose slots -- and the user's weight/action -- \n[…]\nth the probability; a plain arrow compiles; a\ntwo-way arrow keeps its reverse-edge decoration); full `npm run build` green\n(no existing machine relied on the silent drop).\n\nCloses StoneCypher/fsl#1950",
          "is_bot": false,
          "headline": "fix(compiler): reject post-arrow decorations on one-way arrows instea…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T03:45:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7b8ee380167f5e45963c388a7625b7b43726431f",
          "body": "…mmar\n\nfix(grammar): accept the 12 mixed ascii/unicode arrow spellings (5.162.24)",
          "is_bot": false,
          "headline": "Merge pull request #955 from StoneCypher/fix_26-07-13_mixed-arrow-gra…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-15T02:26:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4c5258ca6961b79cf2e47b8f3e37e5a7ad543f6f",
          "body": "…2.24)\n\n`JssmArrow` and the classifiers (arrow_direction / arrow_left_kind /\narrow_right_kind) accept all 42 arrow spellings, but the grammar's six\nmixed-arrow rules each listed only the pure-ascii and pure-unicode spelling --\nso the 12 mixed ascii/unicode two-way arrows (`←=>`, `<-⇒`, `⇐->`, `<=→`,\n[…]\nspec.ts +13 (each of the 12 mixed spellings parses and produces\nthe same edges as its ascii form; and all 42 spellings parse without throwing);\nfull `npm run build` green.\n\nCloses StoneCypher/fsl#1949",
          "is_bot": false,
          "headline": "fix(grammar): accept the 12 mixed ascii/unicode arrow spellings (5.16…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T23:29:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "02f12fd761ef16304575dcc768d3f23d78f34e93",
          "body": "feat(core): implement HookComplexResult.next_data as a distinct commit channel (5.162.23)",
          "is_bot": false,
          "headline": "Merge pull request #954 from StoneCypher/fix_26-07-13_hook-next-data",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T22:58:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f3d198354f8e8abf86263fc575437eaba1e8b7a",
          "body": "…t channel (5.162.23)\n\nThe documented `next_data` -- \"overrides the data committed after the\ntransition\" -- was never honored: the commit used hook_args.data, and\n_update_hook_fields clobbered hook_args.next_data to undefined whenever a result\ncarried `data`. A result carrying `next_data` alone was \n[…]\nesent; data is observed in-chain by a later hook;\nnext_data is NOT observed in-chain; a falsy next_data commits); full hooks +\nstochastic suites and `npm run build` green.\n\nCloses StoneCypher/fsl#1948",
          "is_bot": false,
          "headline": "feat(core): implement HookComplexResult.next_data as a distinct commi…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T22:07:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "de643187251b87f82005669bafb16fa4fe48fc09",
          "body": "…ride\n\nfeat(core): implement HookComplexResult.state destination override (5.162.22)",
          "is_bot": false,
          "headline": "Merge pull request #953 from StoneCypher/fix_26-07-13_hook-state-over…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T21:39:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eede6eac3230876f9fe4532c6864b397205e065e",
          "body": "….162.22)\n\nThe documented `state` field of a hook's complex result -- \"overrides the\ndestination state\" -- was never honored; `_update_hook_fields` copied only\n`data`, so `{ pass: true, state: 'c' }` silently went to the originally-targeted\nstate. Per the decision on fsl#1947, implement it rather th\n[…]\ns; same-state no-op;\noverride+data; post-hook sees the override as its `to`; a state-carrying veto\nstill blocks); full hooks + stochastic suites and `npm run build` green.\n\nCloses StoneCypher/fsl#1947",
          "is_bot": false,
          "headline": "feat(core): implement HookComplexResult.state destination override (5…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T21:34:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d6d27327b10e87609cfb19f3d5b19cd864778449",
          "body": "ci(build): pin tsc stack size to end the flaky control-flow overflow (5.162.21)",
          "is_bot": false,
          "headline": "Merge pull request #952 from StoneCypher/fix_26-07-13_tsc-stack-pin",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T20:28:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ab8fac7ef6bc5cd16592a6e765a922ad9bca7507",
          "body": "…(5.162.21)\n\n`npm run typescript` (tsc --build) intermittently died with `RangeError:\nMaximum call stack size exceeded` in tsc's control-flow analyzer, failing the\nubuntu-22 matrix leg during the 5.162.20 release and blocking the npm publish\nuntil the job was re-run. It is not random -- it is margin\n[…]\nhe whole function, not confined to the hook\nblocks. A readability-motivated split can still be done later as its own\nperf-gated change, but it is not what fixes the flake.\n\nCloses StoneCypher/fsl#1958",
          "is_bot": false,
          "headline": "ci(build): pin tsc stack size to end the flaky control-flow overflow …",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T19:44:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dcefca230a290ee04c5dbe9a338819f630ad34d4",
          "body": "fix(core): restore the after-timer to the restored state in deserialize (5.162.20)",
          "is_bot": false,
          "headline": "Merge pull request #951 from StoneCypher/fix_26-07-13_deserialize-timer",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T13:45:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3522d8994df25f90c532dbc5141f9f2af74f65fd",
          "body": "…ze (5.162.20)\n\ndeserialize() built the machine with from(), which arms the *initial* state's\n`after` timer, then overwrote _state directly -- bypassing the timer lifecycle.\nTwo wrong results:\n\n  - a ghost timer stayed armed for the initial state's target even when the\n    restored state has no `aft\n[…]\n: serialize.spec.ts +3 (no ghost timer for a no-after state; the\nrestored state's after is armed; restoring the initial after-state arms once),\nfull `npm run build` green.\n\nCloses StoneCypher/fsl#1946",
          "is_bot": false,
          "headline": "fix(core): restore the after-timer to the restored state in deseriali…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T13:40:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d6d66248bd438b42ae155e42f31ae63e815e5147",
          "body": "…timer\n\nfix(core): preserve the after-timer across a vetoed transition (5.162.19)",
          "is_bot": false,
          "headline": "Merge pull request #950 from StoneCypher/fix_26-07-13_veto-preserves-…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T13:22:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f34724c0c92428b44700625da205e35dcfd0d7a8",
          "body": "….19)\n\ntransition_impl cleared the current state's `after` timer as soon as the\ntransition was known to be structurally valid -- before running the hook chain.\nA hook that then vetoed the transition returned without re-arming, so the\nmachine stayed in the state but its auto-advance timer was gone fo\n[…]\newers. Verified: after_mapping.spec.ts +2 (veto\npreserves the timer; a successful transition still clears it), full hooks +\nafter suites green, full `npm run build` green.\n\nCloses StoneCypher/fsl#1945",
          "is_bot": false,
          "headline": "fix(core): preserve the after-timer across a vetoed transition (5.162…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T13:17:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e3386feaebff33e9fc9b2d0e24868fc2c80bdb65",
          "body": "…scape\n\nfix(viz): DOT-escape every state attribute value, not just label (5.162.18)",
          "is_bot": false,
          "headline": "Merge pull request #949 from StoneCypher/fix_26-07-13_dot-attribute-e…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T12:58:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7fef9220bdf0220e41371cd09da968f2df3f3cfe",
          "body": "…62.18)\n\nIn the Graphviz emitter, only a state's `label` was run through `doublequote`;\nthe other quoted attributes -- `url`, `image`, `shape`, `color`, `style`,\n`fontcolor`, `fillcolor` -- were wrapped in `\"…\"` raw. Because FSL string\nliterals decode `\\\"` to a literal `\"`, a `url`/`image` value con\n[…]\n\\`.\n\nVerified: state_url.spec.ts extended (a `\"` in url and in image is escaped, not\nattribute-injected); the 5.162.16 scheme tests still pass; full `npm run build`\ngreen.\n\nCloses StoneCypher/fsl#1944",
          "is_bot": false,
          "headline": "fix(viz): DOT-escape every state attribute value, not just label (5.1…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T12:54:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "067839dd2439f6c54e07b2aa0d13a7acb5865ce3",
          "body": "…-traversal\n\nfix(cli): reject path-traversal subcommand names in the dispatcher (5.162.17)",
          "is_bot": false,
          "headline": "Merge pull request #948 from StoneCypher/fix_26-07-13_dispatcher-path…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T06:30:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a903939ef91c569ac44d6bc4a2b5dde6305639c",
          "body": "….162.17)\n\nThe dispatcher resolves a subcommand by interpolating it into `fsl-${name}` and\n`path.join()`-ing that against each PATH directory, with no rejection of path\nseparators or `..`. A subcommand with enough `../` segments cancels the `fsl-`\nprefix and walks out of the PATH directory, so the d\n[…]\ntests: the name allowlist, traversal\nrejection, findPluginOnPath refusing a traversal even when the target exists,\nand dispatch's clear error); full `npm run build` green.\n\nCloses StoneCypher/fsl#1943",
          "is_bot": false,
          "headline": "fix(cli): reject path-traversal subcommand names in the dispatcher (5…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T06:25:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c80d01ad0cc82d6d92be218d33cffa1205bd9256",
          "body": "…sanitize\n\nfix(viz): sanitize state url schemes to close a DOM-XSS in <fsl-viz> (5.162.16)",
          "is_bot": false,
          "headline": "Merge pull request #947 from StoneCypher/fix_26-07-13_render-url-xss-…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T06:02:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "62f01e68a82d3a094b1dae9983fe37f4a794a540",
          "body": "…(5.162.16)\n\nA state's `url:` value flowed unsanitized through the DOT `URL=` attribute into\nthe rendered SVG's `<a xlink:href>`, which `<fsl-viz>` injects into a live DOM\nvia Lit's `unsafeHTML`. A `javascript:` / `data:` / `vbscript:` url therefore\nbecame a clickable link that executes attacker Jav\n[…]\n, so they do not overlap.\n\nVerified: state_url.spec.ts extended with 20 tests (unsafe schemes dropped,\nobfuscation caught, safe/relative kept); full `npm run build` green.\n\nCloses StoneCypher/fsl#1942",
          "is_bot": false,
          "headline": "fix(viz): sanitize state url schemes to close a DOM-XSS in <fsl-viz> …",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T05:56:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d375d5b95164be28af733c20b74b375f25f006ad",
          "body": "test(core): type-check the test suite; June audit re-verification (5.162.14)",
          "is_bot": false,
          "headline": "Merge pull request #946 from StoneCypher/fix_26-07-12_1812-june-reaudit",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-14T04:20:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8663205a7dfdc1cc5eecea44593fe44f5dd6a877",
          "body": "…urces (5.162.15)\n\nThe three public-type bugs the new test-typecheck gate exposed, plus the dead\nfile it was excluding. All three types described something other than what the\nruntime actually does, and each one made correct user code fail to compile.\n\n* `JssmArrow` declared 15 of the 42 arrows the \n[…]\nntext`.\n\nVerified: typecheck_tests clean, eslint clean, two consecutive `npm run make`\nruns green (the tsc stack overflow is gone), 7788 spec + 903 stoch + 22 docs\npassing, full `npm run build` green.",
          "is_bot": false,
          "headline": "fix(core): honest public types for arrows, hook context, and timer so…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-13T16:45:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "35c39feac19e76e78fefe70f078b9e2f350c7bab",
          "body": "…162.14)\n\nThe June implementation audit (fsl#1812) named seven findings against a v6\nworktree. Re-verified all seven against current main and against origin/v6.\n\nFive are not main's problem: F1 pack-shape was fixed in 5.143.35 and is now\npinned by pack_shape.spec.ts; F2/F3/F4/F5/F6 concern CLI codeg\n[…]\nine inside JSDoc starts a new tag; they\nremain verified by execution in vitest-docs).\n\nVerified: typecheck_tests clean, eslint clean, 7779 spec + 903 stoch + 22 docs\npassing, full npm run build green.",
          "is_bot": false,
          "headline": "test(core): type-check the test suite; June audit re-verification (5.…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-12T21:16:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3589dcc5a03b7493841b86721a5d04dd01a3ea70",
          "body": "feat(wc): downstream integration batch (5.162.13)",
          "is_bot": false,
          "headline": "Merge pull request #945 from StoneCypher/feat_26-07-12_train-e-viewer",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-12T19:43:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "363d56bb35ddc6cbf7cfb6510225b0d0b46cc333",
          "body": "viz sizing + trace fixes, engine injection, fence max tokens, info-panel,\ndecl parity gate, theme docs; includes build artifacts.\n\n- fsl#1934: <fsl-viz> auto-height escape fixed via --jssm-viz-max-height seam + max-height:inherit chain to svg; e2e sizing spec + fixture, jsdom stylesheet-contract pin\n[…]\n retyped honestly (jssm_types.ts, jssm_compiler.ts, jssm.ts, parse_options.spec.ts)\n- fsl#1938: content-conditional-controls ruling documented as doctrine in WebComponents.md design-principles section",
          "is_bot": false,
          "headline": "feat(wc): downstream integration batch (5.162.13)",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-12T19:35:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e3c403ca9465b7e43e3987d7608af5932a15e8e2",
          "body": "…astic-races\n\nfix: order permalink sync and terminal stochastic runs",
          "is_bot": false,
          "headline": "Merge pull request #939 from StoneCypher/fix_26-07-10_permalink-stoch…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-12T18:26:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "660bf6d414ce9f2959786668d98dd59265f1a4fc",
          "body": "The lint-revival alignment pass converted the spec's deferred() helper\nto Promise.withResolvers (unicorn/prefer-promise-with-resolvers\nautofix). That API is ES2024 / Node >= 22, and the CI matrix still\ncarries a Node 20 leg, where all 8 race tests then failed with\n\"Promise.withResolvers is not a fun\n[…]\nin\neslint.config.mjs's existing floor-raiser block, matching the\ndecision-record pattern used for prefer-string-replace-all and\nfriends: raising the runtime floor is a semver decision, not a\nlint fix.",
          "is_bot": false,
          "headline": "test: restore Node 20 compatibility in permalink race tests",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-12T17:53:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7c657325c4c6707e56066782531cc80be28cb298",
          "body": "…based onto 5.162.11 (5.162.12)\n\nMerges origin/main (5.162.11) into the #939 branch and rebuilds. Two\nfiles needed semantic conflict resolution:\n\nsrc/ts/jssm.ts (_stochastic_one_walk): kept the PR's terminality\nmodel — exits derived for the start state before the loop and for each\narrival state afte\n[…]\nk_sync.spec.ts (Promise.withResolvers,\nappend over appendChild, bare dispatchEvent).\n\nFull npm run build (5.162.12) committed: all stages through readme,\nspec 199 files / stoch 55 / docs 2, all green.",
          "is_bot": false,
          "headline": "fix: permalink sync ordering + terminal stochastic classification, re…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-12T17:18:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "05b573e73186de991de8e569e0eaefe764320e4d",
          "body": "…tochastic walk and fsl_permalink_sync.ts\n\nConflict resolution detail is in the follow-up build commit message.",
          "is_bot": false,
          "headline": "chore: merge origin/main (5.162.11); semantic resolution in jssm.ts s…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-12T17:18:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e7f5aec8ab5c6b0973b7ca783c7f3b876582e34f",
          "body": "test(stoch): literal 100% on jssm.ts + jssm_util.ts; three defects fixed en route (5.162.11)",
          "is_bot": false,
          "headline": "Merge pull request #944 from StoneCypher/test_26-07-12_train-d-stoch-100",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-12T16:14:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f5e08051986ca1558ecc7eaa1e2893aedd9eca9b",
          "body": "…xed en route (5.162.11)\n\n- 14 new fast-check property files take the stoch suite from 41 files/762\n  tests to 55/902; jssm.ts and jssm_util.ts measure 100.00% statements,\n  functions, and branch arms with zero ignore markers and zero\n  unreachable-code exemptions - every previously-dead line proven\n[…]\n0 criteria adjudicated in stoch_criteria.stoch.ts: two\n  implemented, two falsified with counterexamples and corrected, one\n  designed as a post-build CI leg, one blocked on an API that does not exist",
          "is_bot": false,
          "headline": "test(stoch): literal 100% on jssm.ts + jssm_util.ts; three defects fi…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-12T15:55:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2bdc47d108a957757ea3b9032e6175f415663212",
          "body": "feat(examples): corpus repair + enforcement, 12 new machines, browser docs page (5.162.10)",
          "is_bot": false,
          "headline": "Merge pull request #943 from StoneCypher/feat_26-07-12_train-a-examples",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-12T13:30:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc8684191909d167bf2223c6d233489f28e0f9c5",
          "body": null,
          "is_bot": false,
          "headline": "chore: drop stray scouting scratch file from repo root",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-12T12:27:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ac7edfb6dd2a403d7c95baea11cff6e46e2bfddc",
          "body": "… docs page (5.162.10)\n\n- all 11 linguist samples parse again; the diagnosed two causes were actually\n  four (jssm_version spelling, version ranges, missing attribute semicolons in\n  7 files, an illegal list comma), plus two machine_name copy-paste rots\n- headers (name/author/license/fsl_version) en\n[…]\nas morning\n- new src/doc_md/Environments_Browser.md: CDN, ES modules, bundlers, web\n  components, five verified gotchas; cross-linked from GettingStarted,\n  Environments_Deno, and the README docs list",
          "is_bot": false,
          "headline": "feat(examples): corpus repair + enforcement, 12 new machines, browser…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-12T12:26:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8c6d1e144a56da7e024722199f72aaf9196cde9c",
          "body": "chore(pkg): attw and commitlint gates, CLOC step summary, publish-manifest trace tests (5.162.9)",
          "is_bot": false,
          "headline": "Merge pull request #942 from StoneCypher/chore_26-07-11_pkg-quality-ci",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-12T11:14:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2409ad28c27a7f6f2eb4c29396cff635d687ec7b",
          "body": "The CI stoch suite found (counterexample MITa) that machine_license died on\nany label extending a known bare license token: PEG ordered choice commits on\nits first match, so 'MIT' ate the prefix and the Label alternative was never\nretried. Each bare token in LicenseOrLabelOrList now carries !AtomLetter, and\nthree deterministic boundary pins (MITalike / Unknowable / GPLish) join the\nlicense spec.",
          "is_bot": false,
          "headline": "fix(grammar): word-boundary guards on bare license tokens",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-12T10:22:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8c2013b22fe908babacb225e1e87c394ca7d117c",
          "body": "…ifest trace tests (5.162.9)\n\n- attw: npm run attw plus .attw.json carrying the three by-design bundle-shape exemptions; runs on the main full-build CI leg\n- commitlint: config-conventional with house relaxations (140-char headers, no body caps, subject-case off); PR-only CI job lints the PR commit \n[…]\n- the trace caught dist/deno/README.md surviving only as a git-committed fossil (produced solely by the last build stage); make_deno now seeds it at bundle time and the readme stage still refreshes it",
          "is_bot": false,
          "headline": "chore(pkg): attw and commitlint gates, CLOC step summary, publish-man…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-11T23:33:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d67f4d3417972cfbdefa4b4834dcd10f7b417432",
          "body": "chore(lint): ESLint 10 flat-config revival — full surface, plugin verdicts, 10.5k findings to zero",
          "is_bot": false,
          "headline": "Merge pull request #941 from StoneCypher/chore_26-07-11_lint-revival",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-11T22:00:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "125baf5ce3c3253801c4b092f355d3ee8751e8a9",
          "body": "…4 jobs\n\nThe eslint-10 lint stack (unicorn 71, jsdoc 63) requires Node >=22 and\ncrashes on the 20.x engine-floor leg. Linting is engine-independent, so\nthe cross-platform/multi-Node matrix now verifies the library runtime\nonly, and vet runs once on the Node 24 test-pr / test-main-full jobs.",
          "is_bot": false,
          "headline": "ci: matrix legs run runtime-only ci_test_runtime; vet stays on Node 2…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-11T21:31:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6fbd8b602fbae55f7a87a20a76fae6d787abac8d",
          "body": "… verdicts, 10.5k findings to zero (5.162.8)\n\nReplaces the eslint-7-era 3-path stub with a full-surface ESLint 10 flat\nconfig: typescript-eslint 8 recommendedTypeChecked, promise + unicorn\nre-engaged, fp replaced by functional (lite, mutability rules off with\ncause), new-with-error and react dropped\n[…]\ncs parsers was fixed for real; several test assertions that had\nprovably never executed were repaired rather than suppressed.\n\nSatisfies the fsl lint cluster: #545 #727 #728 #729 #730 #731 #732 #1317.",
          "is_bot": false,
          "headline": "chore(lint): ESLint 10 flat-config revival — full src surface, plugin…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-11T21:10:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "eafe53fa586ec23eda9d5422d4220dc5d3f969d7",
          "body": "test(core): empty-name rejection, hook-descriptor tightening, specificity pins (5.162.7)",
          "is_bot": false,
          "headline": "Merge pull request #940 from StoneCypher/test_26-07-10_5x-test-chores",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-10T23:12:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8cc87f77dcc8a2aa87422b13f0ba0d3dcad19287",
          "body": "…city pins (5.162.7)\n\nfsl#653: the explicit quotation syntaxes let '' through the grammar as a\nstate or action name, silently building machines with unaddressable states\nand undispatakable actions. makeTransition now rejects empty from/to/action\nat edge assembly, and _validate_hook_description requi\n[…]\n: the day/night example relocation (cherry-pick a64f3dd6) and the\nfsl#1513 CI gating (18 unicode suites + benchmark main-only).\n\nClaude-Session: https://claude.ai/code/session_01LhNbvqLGTzsMvwahPurcQa",
          "is_bot": false,
          "headline": "test(core): empty-name rejection, hook-descriptor tightening, specifi…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-10T20:56:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b4dd534665714d03f9bfab5c54d6f2135c888427",
          "body": "Feature-branch pushes were paying the full heavy-job bill alongside the PR\nchecks — double CI per cycle. The suites still run on every push to main,\nahead of release, so the publish path keeps its guard; verify-version-bump\ndeliberately keeps running on all branch pushes as the early version gate.\nDecision recorded on StoneCypher/fsl#1513.\n\nClaude-Session: https://claude.ai/code/session_01LhNbvqLGTzsMvwahPurcQa",
          "is_bot": false,
          "headline": "ci: gate the 18 unicode suites and benchmark to main-only pushes",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-10T20:42:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "02a19d93c2f78fd16c4819c9af6abaec33fa219a",
          "body": "Relocate the day/night traffic-light example from the fsl-editor showcase dir\ninto the canonical machine collection (matching its lowercase-with-spaces naming),\nwhere the other traffic-light examples live. Nothing loaded the showcase copy.",
          "is_bot": false,
          "headline": "chore(examples): move day/night light into src/machines/traffic lights/",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-10T20:39:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "954eb8d204ac67d612174b4b0456e74ff3f32e6d",
          "body": null,
          "is_bot": false,
          "headline": "fix: order permalink sync and terminal stochastic runs",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-10T17:18:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ceb93512030b929aee4c3cb0fab368bc486d322",
          "body": "fix(core): explicit-undefined data provision, set_data(), and hook_after_any (5.162.6)",
          "is_bot": false,
          "headline": "Merge pull request #938 from StoneCypher/fix_26-07-10_5x-bug-residue",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-10T17:12:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d82dfad634531fdc7789330a542e52ef59809d6",
          "body": "…ter_any (5.162.6)\n\nfsl#1264: data arguments are arity-detected across do / action / transition /\ngo / force_transition / override, so an explicit undefined commits while an\nomitted argument preserves; override no longer clobbers data when called\nwithout one.  New Machine.set_data() replaces data di\n[…]\n undefined / null /\n0 / '') pinned by spec and stochastic tests; the hook layer was already\ncorrect via its own-property probe.\n\nClaude-Session: https://claude.ai/code/session_01LhNbvqLGTzsMvwahPurcQa",
          "is_bot": false,
          "headline": "fix(core): explicit-undefined data provision, set_data(), and hook_af…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-10T16:43:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "52bfeea62a56c217ea81c28cd9da104d267bea0d",
          "body": "test(dragon): WP-6 dragon phase A — suite live + CI lane + §3/§4/§6 expansions (5.159.3)",
          "is_bot": false,
          "headline": "Merge pull request #927 from StoneCypher/test_26-07-05_dragon-revival",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-10T14:56:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4fa99095d92995c25359cc7e1b4025784153956a",
          "body": "Claude-Session: https://claude.ai/code/session_01LhNbvqLGTzsMvwahPurcQa",
          "is_bot": false,
          "headline": "chore(release): merge main, build artifacts + version bump to 5.162.5",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-10T14:50:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc6256e7db4223a5122bc0e6d6edc0d7e44c2511",
          "body": "…revival\n\n# Conflicts:\n#\tCHANGELOG.long.md\n#\tCHANGELOG.md\n#\tREADME.md\n#\tdist/cdn/instance.js\n#\tdist/cdn/viz.js\n#\tdist/cli/fsl-export-system-prompt.cjs\n#\tdist/cli/fsl-render.cjs\n#\tdist/cli/fsl.cjs\n#\tdist/cli/lib.cjs\n#\tdist/cli/lib.mjs\n#\tdist/deno/README.md\n#\tdist/deno/jssm.js\n#\tdist/es6/version.js\n#\t\n[…]\nist/jssm_viz.mjs\n#\tpackage-lock.json\n#\tpackage.json\n#\tsrc/doc_md/CHANGELOG.long.md\n#\tsrc/doc_md/CHANGELOG.md\n#\tsrc/generated_docs/perf_chart.svg\n#\tsrc/generated_docs/perf_data.json\n#\tsrc/ts/version.ts",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/main' into test_26-07-05_dragon-…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-10T14:34:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a43dfac7f7e287945bb1e884dc8f5ae322937007",
          "body": "…atch\n\nbuild: gitignore agent-browser scratch (.playwright-mcp + stray screenshots)",
          "is_bot": false,
          "headline": "Merge pull request #934 from StoneCypher/build_26-07-10_gitignore-scr…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-10T14:27:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "81d2ec472176d4dfac9bf50fb9b1502e7a09194b",
          "body": "Release commit for the cherry-picked .gitignore hygiene change (ignore\n.playwright-mcp/ agent-browser scratch and two stray debug screenshots).\nNo source or runtime change; version bump + regenerated artifacts only.\n\nClaude-Session: https://claude.ai/code/session_01UkgdvpZXXXWG2jnfpap4yu",
          "is_bot": false,
          "headline": "chore(release): 5.162.4 — build artifacts + version bump",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-10T14:23:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ec0b843576fbebe5ad0862f062b93a11db7787f",
          "body": "…enshots",
          "is_bot": false,
          "headline": "build: gitignore .playwright-mcp scratch and stray browser-debug scre…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-10T14:07:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b7f27fe4a537eb82d724d5a08a4a3c885326860",
          "body": "docs: warning-free typedoc build + retire stale nonmin artifact",
          "is_bot": false,
          "headline": "Merge pull request #933 from StoneCypher/docs_26-07-10_doc-build-hygiene",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-10T13:58:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d6c04a8bd67a7d1cb5ed4c6346c08101454c2086",
          "body": "…2.3)\n\nTake the doc build from 42 warnings (left by the TS6 typedoc 0.28 move) to\nzero, and remove a stale committed build artifact. No runtime or public-API\nchange.\n\ntypedoc-options.cjs:\n- excludeInternal: true — the `@internal` `_test` helper bag and private\n  `Machine._*` members are not public A\n[…]\nrnings / 0 errors; full build green — spec 7274 @\n100% coverage, stoch 758, doctests 19, manifest parity, eslint + audit clean.\n\nClaude-Session: https://claude.ai/code/session_01UkgdvpZXXXWG2jnfpap4yu",
          "is_bot": false,
          "headline": "docs: warning-free typedoc build + retire stale nonmin artifact (5.16…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-10T13:51:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ecee9f38df8e7c8f04dd58347a566c7279a33559",
          "body": null,
          "is_bot": false,
          "headline": "Merge pull request #932 from StoneCypher/docs_26-07-09_typeparam-tsdoc",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-10T11:50:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a61c9b2cb024139dbb07e8c9f8fc5c9c8ecd80e",
          "body": "…5.162.2)\n\ntypedoc 0.28 (adopted in the TS6 upgrade) flags the lowercase `@typeparam`\nas an unknown block tag; the standard TSDoc spelling is `@typeParam`. Rename\nall 56 occurrences across the hand-written source (jssm.ts, jssm_compiler.ts,\njssm_types.ts). Comment-only change — no runtime, type, or \n[…]\nurrent build writes the gitignored .js variant instead) and typedoc never\nreads it, so it is intentionally left untouched here.\n\nClaude-Session: https://claude.ai/code/session_01UkgdvpZXXXWG2jnfpap4yu",
          "is_bot": false,
          "headline": "docs: use the TSDoc @typeParam tag so the doc build is warning-free (…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-10T03:19:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8d2a60aaa71fcc14f843c32d807106a6af5ae534",
          "body": "…-gap\n\nfix(perf-chart): tighten log/linear twin gap (panel_gap/4)",
          "is_bot": false,
          "headline": "Merge pull request #931 from StoneCypher/fix_26-07-06_perf-chart-twin…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-07T03:38:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8934cc15b027a3c2ff661957e9f4f711f9fb83e2",
          "body": "Full npm run build for the tightened intra-pair gap (panel_gap/4).\n\nClaude-Session: https://claude.ai/code/session_01Gyj8SYdxHyyRQo8xyxYCZr",
          "is_bot": false,
          "headline": "chore(release): build artifacts + version bump to 5.162.1",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-07T03:33:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f1786212aecbeae1719a8b3ad588752dd07a454a",
          "body": "…as one unit\n\nThe log/linear twins sat 32px apart while pair sets are 128px apart; reduce the\nintra-pair gap to panel_gap/4 (8px) so each pair reads as a single coupled unit.\nLayout-only; window and inter-pair gap unchanged.\n\nClaude-Session: https://claude.ai/code/session_01Gyj8SYdxHyyRQo8xyxYCZr",
          "is_bot": false,
          "headline": "fix(perf-chart): tighten intra-pair gap to panel_gap/4 so twins read …",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-07T03:28:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "15ab3237e17d5dd68abc58f3901d5379a9277197",
          "body": "…dow-gap\n\nfeat(perf-chart): widen linear window to 50, quadruple inter-pair gap",
          "is_bot": false,
          "headline": "Merge pull request #930 from StoneCypher/feat_26-07-06_perf-chart-win…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-07T03:12:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "90468e289edb6e9c892718ee352023cde840536a",
          "body": "Full npm run build for the last-50 window + 4x inter-pair-gap perf-chart change.\n\nClaude-Session: https://claude.ai/code/session_01Gyj8SYdxHyyRQo8xyxYCZr",
          "is_bot": false,
          "headline": "chore(release): build artifacts + version bump to 5.162.0",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-06T22:48:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b794347c608fb158a0a0b2b167550992a5807088",
          "body": "…inter-pair gap\n\nLINEAR_WINDOW constant (50) replaces the hardcoded 30, used by the linear panel\ntitle, the render_chart window slice, and the issue-comment labels so they never\ndrift. Inter-pair-row gap goes from 2x to 4x the base panel_gap so pair sets read\nas clearly distinct.\n\nClaude-Session: https://claude.ai/code/session_01Gyj8SYdxHyyRQo8xyxYCZr",
          "is_bot": false,
          "headline": "feat(perf-chart): widen linear twin window to 50 versions, quadruple …",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-06T22:37:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c97b29e43976d486a9e0b7512a9fc843d920401",
          "body": "…graphing\n\nfeat(perf-chart): package-size panel + linear-scale twins",
          "is_bot": false,
          "headline": "Merge pull request #928 from StoneCypher/feat_26-07-05_graviton-perf-…",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-06T22:24:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9029e74a994a02c1c668a04386088b2df74ac613",
          "body": "Resolve the release-race: main shipped 5.160.0 (TypeScript 6.0.3 upgrade, #929)\nwhile this branch also held 5.160.0. Re-bump to 5.161.0, reinstall to main's TS6\ntoolchain, and full-rebuild all artifacts from merged source (my perf-chart\nrenderer + main's TS6 changes). Spec suite 7274 tests / 100% coverage green.\n\nClaude-Session: https://claude.ai/code/session_01Gyj8SYdxHyyRQo8xyxYCZr",
          "is_bot": false,
          "headline": "Merge main into feat_26-07-05_graviton-perf-graphing",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-06T22:19:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "65ca23c8b652c4b6154230bcc5d3ef72b6627f8a",
          "body": "build: upgrade to TypeScript 6.0.3",
          "is_bot": false,
          "headline": "Merge pull request #929 from StoneCypher/build_26-07-05_typescript-6",
          "author_name": "John Haugeland",
          "author_login": "StoneCypher",
          "committed_at": "2026-07-06T04:34:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 1254,
      "latest_release_at": "2026-07-18T18:34:45Z",
      "latest_release_tag": "5.163.4",
      "releases_from_tags": false,
      "days_since_last_push": 3,
      "active_weeks_last_year": 19,
      "days_since_latest_release": 5,
      "mean_days_between_releases": 0.3
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 42,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "jssm",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "finite",
            "state",
            "state machine",
            "state-machine",
            "machine",
            "finite-state-machine",
            "finite state machine",
            "fsm",
            "fsm-library",
            "js",
            "javascript",
            "javascript-library",
            "mit-license",
            "tested",
            "typed",
            "typed-js",
            "mealy",
            "moore",
            "mealy machine",
            "moore machine",
            "mealy-machine",
            "moore-machine",
            "graphviz",
            "viz.js",
            "fsl",
            "finite-state-language",
            "flowchart",
            "visualization",
            "TypeScript",
            "StoneCypher"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/jssm",
          "is_deprecated": false,
          "latest_version": "5.163.4",
          "repository_url": "https://github.com/StoneCypher/jssm",
          "versions_count": 515,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 30835,
          "first_published_at": "2017-05-10T05:15:58.812000Z",
          "latest_published_at": "2026-07-18T18:34:51.332000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        }
      ]
    },
    "popularity": {
      "forks": 24,
      "stars": 366,
      "watchers": 7,
      "fork_history": {
        "days": [
          {
            "date": "2017-08-21",
            "count": 1
          },
          {
            "date": "2017-08-26",
            "count": 1
          },
          {
            "date": "2017-09-10",
            "count": 4
          },
          {
            "date": "2017-10-05",
            "count": 1
          },
          {
            "date": "2017-10-23",
            "count": 1
          },
          {
            "date": "2017-11-07",
            "count": 1
          },
          {
            "date": "2019-05-18",
            "count": 1
          },
          {
            "date": "2019-06-08",
            "count": 1
          },
          {
            "date": "2019-10-31",
            "count": 1
          },
          {
            "date": "2019-11-18",
            "count": 1
          },
          {
            "date": "2020-01-28",
            "count": 1
          },
          {
            "date": "2020-04-14",
            "count": 1
          },
          {
            "date": "2020-08-19",
            "count": 1
          },
          {
            "date": "2023-01-20",
            "count": 1
          },
          {
            "date": "2023-09-22",
            "count": 1
          },
          {
            "date": "2024-01-23",
            "count": 1
          },
          {
            "date": "2024-04-11",
            "count": 1
          },
          {
            "date": "2024-10-04",
            "count": 1
          },
          {
            "date": "2024-10-07",
            "count": 1
          },
          {
            "date": "2025-04-03",
            "count": 1
          },
          {
            "date": "2026-06-22",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 24,
        "total_forks": 24
      },
      "star_history": null,
      "open_issues_and_prs": 7
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples",
        "recipes"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 1986367,
      "source_files_sampled": 520,
      "oversized_source_files": 11,
      "agent_instruction_files": [
        "CLAUDE.md",
        "src/fsl.tools/AGENTS.md"
      ],
      "agent_instruction_max_bytes": 9406
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 4,
        "malicious_count": 0,
        "assessed_package": "npm:jssm@5.163.4",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "circular_buffer_js",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.10.0"
        },
        {
          "name": "reduce-to-639-1",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.0"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "circular_buffer_js",
            "direct": true,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "reduce-to-639-1",
            "direct": true,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@andrewbranch/untar.js",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@arethetypeswrong/cli",
            "direct": false,
            "version": "0.18.5",
            "ecosystem": "npm"
          },
          {
            "name": "@arethetypeswrong/core",
            "direct": false,
            "version": "0.18.5",
            "ecosystem": "npm"
          },
          {
            "name": "@arrows/array",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "@arrows/composition",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@arrows/dispatch",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@arrows/error",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@arrows/multimethod",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "@asamuzakjp/css-color",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/code-frame",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-string-parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@bcoe/v8-coverage",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@braidai/lang",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@codemirror/autocomplete",
            "direct": false,
            "version": "6.20.3",
            "ecosystem": "npm"
          },
          {
            "name": "@codemirror/commands",
            "direct": false,
            "version": "6.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@codemirror/language",
            "direct": false,
            "version": "6.12.4",
            "ecosystem": "npm"
          },
          {
            "name": "@codemirror/lint",
            "direct": false,
            "version": "6.9.7",
            "ecosystem": "npm"
          },
          {
            "name": "@codemirror/state",
            "direct": false,
            "version": "6.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "@codemirror/view",
            "direct": false,
            "version": "6.43.2",
            "ecosystem": "npm"
          },
          {
            "name": "@colors/colors",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/cli",
            "direct": false,
            "version": "21.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/config-conventional",
            "direct": false,
            "version": "21.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/config-validator",
            "direct": false,
            "version": "21.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/ensure",
            "direct": false,
            "version": "21.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/execute-rule",
            "direct": false,
            "version": "21.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/format",
            "direct": false,
            "version": "21.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/is-ignored",
            "direct": false,
            "version": "21.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/lint",
            "direct": false,
            "version": "21.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/load",
            "direct": false,
            "version": "21.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/message",
            "direct": false,
            "version": "21.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/parse",
            "direct": false,
            "version": "21.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/read",
            "direct": false,
            "version": "21.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/resolve-extends",
            "direct": false,
            "version": "21.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/rules",
            "direct": false,
            "version": "21.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/to-lines",
            "direct": false,
            "version": "21.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/top-level",
            "direct": false,
            "version": "21.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@commitlint/types",
            "direct": false,
            "version": "21.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@conventional-changelog/git-client",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@conventional-changelog/template",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/color-helpers",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-calc",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-color-parser",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-parser-algorithms",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-tokenizer",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@custom-elements-manifest/analyzer",
            "direct": false,
            "version": "0.10.10",
            "ecosystem": "npm"
          },
          {
            "name": "@custom-elements-manifest/find-dependencies",
            "direct": false,
            "version": "0.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.11.2",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.11.2",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@es-joy/jsdoccomment",
            "direct": false,
            "version": "0.88.0",
            "ecosystem": "npm"
          },
          {
            "name": "@es-joy/resolve.exports",
            "direct": false,
            "version": "1.2.0",
            "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": "@gerrit0/mini-shiki",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@github/catalyst",
            "direct": false,
            "version": "1.8.1",
            "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": "@jridgewell/gen-mapping",
            "direct": false,
            "version": "0.3.13",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/remapping",
            "direct": false,
            "version": "2.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/resolve-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/source-map",
            "direct": false,
            "version": "0.3.11",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/trace-mapping",
            "direct": false,
            "version": "0.3.31",
            "ecosystem": "npm"
          },
          {
            "name": "@lezer/common",
            "direct": false,
            "version": "1.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "@lezer/highlight",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@lezer/lr",
            "direct": false,
            "version": "1.4.10",
            "ecosystem": "npm"
          },
          {
            "name": "@lit-labs/ssr-dom-shim",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@lit/reactive-element",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@loaderkit/resolve",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@marijn/find-cluster-break",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.scandir",
            "direct": false,
            "version": "2.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.stat",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.walk",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.138.0",
            "ecosystem": "npm"
          },
          {
            "name": "@playwright/test",
            "direct": false,
            "version": "1.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "@resvg/resvg-wasm",
            "direct": false,
            "version": "2.6.2",
            "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": "@rollup/plugin-commonjs",
            "direct": false,
            "version": "28.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/plugin-node-resolve",
            "direct": false,
            "version": "15.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/plugin-replace",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/plugin-typescript",
            "direct": false,
            "version": "12.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/pluginutils",
            "direct": false,
            "version": "5.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm-eabi",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-x64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-x64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-musleabihf",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-s390x-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openbsd-x64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openharmony-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-arm64-msvc",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-ia32-msvc",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-msvc",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/engine-oniguruma",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/langs",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/themes",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/types",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/vscode-textmate",
            "direct": false,
            "version": "10.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@simple-libs/child-process-utils",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@simple-libs/stream-utils",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@sindresorhus/base62",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@sindresorhus/is",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@standard-schema/spec",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/core",
            "direct": false,
            "version": "1.15.43",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/core-darwin-arm64",
            "direct": false,
            "version": "1.15.43",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/core-darwin-x64",
            "direct": false,
            "version": "1.15.43",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/core-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.15.43",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/core-linux-arm64-gnu",
            "direct": false,
            "version": "1.15.43",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/core-linux-arm64-musl",
            "direct": false,
            "version": "1.15.43",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/core-linux-ppc64-gnu",
            "direct": false,
            "version": "1.15.43",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/core-linux-s390x-gnu",
            "direct": false,
            "version": "1.15.43",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/core-linux-x64-gnu",
            "direct": false,
            "version": "1.15.43",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/core-linux-x64-musl",
            "direct": false,
            "version": "1.15.43",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/core-win32-arm64-msvc",
            "direct": false,
            "version": "1.15.43",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/core-win32-ia32-msvc",
            "direct": false,
            "version": "1.15.43",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/core-win32-x64-msvc",
            "direct": false,
            "version": "1.15.43",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/counter",
            "direct": false,
            "version": "0.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/types",
            "direct": false,
            "version": "0.1.27",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/chai",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/chalk",
            "direct": false,
            "version": "2.2.4",
            "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/hast",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/jsdom",
            "direct": false,
            "version": "21.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/json-schema",
            "direct": false,
            "version": "7.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "26.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/resolve",
            "direct": false,
            "version": "1.20.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/tough-cookie",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/trusted-types",
            "direct": false,
            "version": "2.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/unist",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/eslint-plugin",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/parser",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/project-service",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/scope-manager",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/tsconfig-utils",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/type-utils",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/types",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/typescript-estree",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/utils",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/visitor-keys",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-android-arm-eabi",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-android-arm64",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-darwin-arm64",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-darwin-x64",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-freebsd-x64",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-arm-musleabihf",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-arm64-musl",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-loong64-gnu",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-loong64-musl",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-riscv64-gnu",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-riscv64-musl",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-x64-gnu",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-x64-musl",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-openharmony-arm64",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-wasm32-wasi",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-win32-ia32-msvc",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-win32-x64-msvc",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/coverage-v8",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/eslint-plugin",
            "direct": false,
            "version": "1.6.23",
            "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": "@viz-js/viz",
            "direct": false,
            "version": "3.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "@web/config-loader",
            "direct": false,
            "version": "0.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@xn-sakina/rml-darwin-arm64",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "@xn-sakina/rml-darwin-x64",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "@xn-sakina/rml-linux-arm-gnueabihf",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "@xn-sakina/rml-linux-arm64-gnu",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "@xn-sakina/rml-linux-arm64-musl",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "@xn-sakina/rml-linux-x64-gnu",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "@xn-sakina/rml-linux-x64-musl",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "@xn-sakina/rml-win32-arm64-msvc",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "@xn-sakina/rml-win32-x64-msvc",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "accepts",
            "direct": false,
            "version": "1.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.17.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-jsx",
            "direct": false,
            "version": "5.3.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": "ajv-formats",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-escapes",
            "direct": false,
            "version": "4.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-escapes",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "2.1.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": "3.2.1",
            "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": "any-promise",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "anymatch",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "are-docs-informative",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "arg-parser",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "argue-cli",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "array-back",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "array-back",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "array-back",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "array-back",
            "direct": false,
            "version": "6.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "array-flatten",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "array-union",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "assertion-error",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ast-v8-to-istanbul",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "astral-regex",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "asynckit",
            "direct": false,
            "version": "0.4.0",
            "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": "base64-js",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "baseline-browser-mapping",
            "direct": false,
            "version": "2.10.43",
            "ecosystem": "npm"
          },
          {
            "name": "benchmark",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "benny",
            "direct": false,
            "version": "3.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "better_git_changelog",
            "direct": false,
            "version": "1.6.20",
            "ecosystem": "npm"
          },
          {
            "name": "binary-extensions",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "body-parser",
            "direct": false,
            "version": "1.20.5",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.15",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "5.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "braces",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "browserslist",
            "direct": false,
            "version": "4.28.5",
            "ecosystem": "npm"
          },
          {
            "name": "buffer",
            "direct": false,
            "version": "5.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-from",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "builtin-modules",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "bytes",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind-apply-helpers",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "call-bound",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "callsites",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "caniuse-lite",
            "direct": false,
            "version": "1.0.30001803",
            "ecosystem": "npm"
          },
          {
            "name": "chai",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "5.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "change-case",
            "direct": false,
            "version": "5.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "char-regex",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "3.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "ci-info",
            "direct": false,
            "version": "4.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "cjs-module-lexer",
            "direct": false,
            "version": "1.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "cli-color",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-cursor",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-highlight",
            "direct": false,
            "version": "2.1.11",
            "ecosystem": "npm"
          },
          {
            "name": "cli-table3",
            "direct": false,
            "version": "0.6.5",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "7.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "9.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "cloc",
            "direct": false,
            "version": "2.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "1.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "combined-stream",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "command-line-args",
            "direct": false,
            "version": "4.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "command-line-args",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "command-line-usage",
            "direct": false,
            "version": "5.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "10.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "2.20.3",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "6.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "9.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "comment-parser",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "comment-parser",
            "direct": false,
            "version": "1.4.7",
            "ecosystem": "npm"
          },
          {
            "name": "common-tags",
            "direct": false,
            "version": "1.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "commondir",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "concat-map",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "content-disposition",
            "direct": false,
            "version": "0.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "content-type",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-angular",
            "direct": false,
            "version": "9.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-changelog-conventionalcommits",
            "direct": false,
            "version": "10.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "conventional-commits-parser",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "convert-hrtime",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cookie",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "cookie-signature",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "core-js-compat",
            "direct": false,
            "version": "3.49.0",
            "ecosystem": "npm"
          },
          {
            "name": "cosmiconfig",
            "direct": false,
            "version": "9.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "cosmiconfig-typescript-loader",
            "direct": false,
            "version": "6.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "crelt",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "cssstyle",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "custom-elements-manifest",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "data-urls",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "debounce",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "2.6.9",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "decimal.js",
            "direct": false,
            "version": "10.6.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": "deepmerge",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "deepmerge-ts",
            "direct": false,
            "version": "7.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "delayed-stream",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "depd",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "destroy",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-indent",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "dir-glob",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "dunder-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ee-first",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "electron-to-chromium",
            "direct": false,
            "version": "1.5.389",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "10.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "emojilib",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "encodeurl",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "enhanced-resolve",
            "direct": false,
            "version": "5.24.2",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "4.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "env-paths",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "environment",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "error-ex",
            "direct": false,
            "version": "1.3.4",
            "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": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-module-lexer",
            "direct": false,
            "version": "2.3.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": "es-toolkit",
            "direct": false,
            "version": "1.49.0",
            "ecosystem": "npm"
          },
          {
            "name": "es5-ext",
            "direct": false,
            "version": "0.10.64",
            "ecosystem": "npm"
          },
          {
            "name": "es6-iterator",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "es6-symbol",
            "direct": false,
            "version": "3.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "es6-weak-map",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "escape-html",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint",
            "direct": false,
            "version": "10.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-compat-utils",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-import-context",
            "direct": false,
            "version": "0.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-import-resolver-typescript",
            "direct": false,
            "version": "4.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-es-x",
            "direct": false,
            "version": "7.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-functional",
            "direct": false,
            "version": "10.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-import-x",
            "direct": false,
            "version": "4.17.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-jsdoc",
            "direct": false,
            "version": "63.0.13",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-n",
            "direct": false,
            "version": "18.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-promise",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-regexp",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-unicorn",
            "direct": false,
            "version": "71.1.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": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "esniff",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "espree",
            "direct": false,
            "version": "11.2.0",
            "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": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "esutils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "etag",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "event-emitter",
            "direct": false,
            "version": "0.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "expect-type",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "express",
            "direct": false,
            "version": "4.22.2",
            "ecosystem": "npm"
          },
          {
            "name": "ext",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-check",
            "direct": false,
            "version": "2.25.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-glob",
            "direct": false,
            "version": "3.3.3",
            "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": "fastq",
            "direct": false,
            "version": "1.20.1",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "fflate",
            "direct": false,
            "version": "0.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "file-entry-cache",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fill-range",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "finalhandler",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "find-replace",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "find-replace",
            "direct": false,
            "version": "3.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": "form-data",
            "direct": false,
            "version": "4.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "forwarded",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "fresh",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "fs-extra",
            "direct": false,
            "version": "10.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fs.realpath",
            "direct": false,
            "version": "1.0.0",
            "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": "function-timeout",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "get-caller-file",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "get-east-asian-width",
            "direct": false,
            "version": "1.6.0",
            "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-tsconfig",
            "direct": false,
            "version": "4.14.0",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "7.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "global-directory",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "globals",
            "direct": false,
            "version": "15.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "globals",
            "direct": false,
            "version": "17.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "globby",
            "direct": false,
            "version": "11.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "globrex",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-symbols",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-tostringtag",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hasown",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "highlight.js",
            "direct": false,
            "version": "10.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "html-encoding-sniffer",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "html-entities",
            "direct": false,
            "version": "2.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "html-escaper",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "http-errors",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "http-proxy-agent",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "https-proxy-agent",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.4.24",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "identifier-regex",
            "direct": false,
            "version": "1.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": "ignore",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "import-fresh",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "imurmurhash",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "indent-string",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "inflight",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ini",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ipaddr.js",
            "direct": false,
            "version": "1.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-arrayish",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-binary-path",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-builtin-module",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-bun-module",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-core-module",
            "direct": false,
            "version": "2.16.2",
            "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-identifier",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-immutable-type",
            "direct": false,
            "version": "5.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "is-module",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-number",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-plain-obj",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-potential-custom-element-name",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-promise",
            "direct": false,
            "version": "2.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-reference",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-coverage",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-report",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-reports",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "jiti",
            "direct": false,
            "version": "2.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "10.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsdoc-type-pratt-parser",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsdom",
            "direct": false,
            "version": "24.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "jsesc",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-buffer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-parse-even-better-errors",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-stable-stringify-without-jsonify",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json2csv",
            "direct": false,
            "version": "5.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "jsonfile",
            "direct": false,
            "version": "6.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "jsonparse",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "keyv",
            "direct": false,
            "version": "4.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "kleur",
            "direct": false,
            "version": "4.1.5",
            "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": "lines-and-columns",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "linkify-it",
            "direct": false,
            "version": "5.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "lit",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "lit-element",
            "direct": false,
            "version": "4.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "lit-html",
            "direct": false,
            "version": "3.3.3",
            "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.get",
            "direct": false,
            "version": "4.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.padend",
            "direct": false,
            "version": "4.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "log-update",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "10.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "11.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "lru-queue",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "lunr",
            "direct": false,
            "version": "2.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "magicast",
            "direct": false,
            "version": "0.5.3",
            "ecosystem": "npm"
          },
          {
            "name": "make-asynchronous",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "make-dir",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it",
            "direct": false,
            "version": "14.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "marked",
            "direct": false,
            "version": "9.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "marked-terminal",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdurl",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "media-typer",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "memoizee",
            "direct": false,
            "version": "0.4.17",
            "ecosystem": "npm"
          },
          {
            "name": "merge-descriptors",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "merge2",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "methods",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "micromatch",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "mime",
            "direct": false,
            "version": "1.6.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": "minimatch",
            "direct": false,
            "version": "10.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "3.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "mz",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.15",
            "ecosystem": "npm"
          },
          {
            "name": "napi-postinstall",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "natural-compare",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "negotiator",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "next-tick",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-emoji",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-releases",
            "direct": false,
            "version": "2.0.51",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-path",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "nwsapi",
            "direct": false,
            "version": "2.2.24",
            "ecosystem": "npm"
          },
          {
            "name": "oauth",
            "direct": false,
            "version": "0.9.15",
            "ecosystem": "npm"
          },
          {
            "name": "object-assign",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "object-deep-merge",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "object-inspect",
            "direct": false,
            "version": "1.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "object-sizeof",
            "direct": false,
            "version": "1.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "obug",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "on-finished",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "once",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "onetime",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "optionator",
            "direct": false,
            "version": "0.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "p-event",
            "direct": false,
            "version": "6.0.1",
            "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": "p-timeout",
            "direct": false,
            "version": "6.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "parent-module",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse-imports-exports",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "parse-json",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse-statements",
            "direct": false,
            "version": "1.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse5-htmlparser2-tree-adapter",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "parseurl",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "path-exists",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-is-absolute",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-parse",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "path-to-regexp",
            "direct": false,
            "version": "0.1.13",
            "ecosystem": "npm"
          },
          {
            "name": "path-type",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "pegjs",
            "direct": false,
            "version": "0.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "platform",
            "direct": false,
            "version": "1.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "playwright",
            "direct": false,
            "version": "1.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "playwright-core",
            "direct": false,
            "version": "1.61.1",
            "ecosystem": "npm"
          },
          {
            "name": "pluralize",
            "direct": false,
            "version": "8.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": "proxy-addr",
            "direct": false,
            "version": "2.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "psl",
            "direct": false,
            "version": "1.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "punycode",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "punycode.js",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "pure-rand",
            "direct": false,
            "version": "5.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "qs",
            "direct": false,
            "version": "6.15.3",
            "ecosystem": "npm"
          },
          {
            "name": "querystringify",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "queue-microtask",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "quote-js-string",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "range-parser",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "raw-body",
            "direct": false,
            "version": "2.5.3",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "reduce-flatten",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "refa",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "npm"
          },
          {
            "name": "regexp-ast-analysis",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "regjsparser",
            "direct": false,
            "version": "0.13.2",
            "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": "requires-port",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "reserved-identifiers",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "1.22.12",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-from",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-from",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-pkg-maps",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "restore-cursor",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "reusify",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "rollup-plugin-dts",
            "direct": false,
            "version": "6.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "rollup-plugin-esbuild",
            "direct": false,
            "version": "6.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "rrweb-cssom",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "rrweb-cssom",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "rs-module-lexer",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "run-parallel",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "safer-buffer",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "sax",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "saxes",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "scslre",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.8.5",
            "ecosystem": "npm"
          },
          {
            "name": "send",
            "direct": false,
            "version": "0.19.2",
            "ecosystem": "npm"
          },
          {
            "name": "serve-static",
            "direct": false,
            "version": "1.16.3",
            "ecosystem": "npm"
          },
          {
            "name": "servehere",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "setprototypeof",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-command",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-regex",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel",
            "direct": false,
            "version": "1.1.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": "skin-tone",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "slash",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "slice-ansi",
            "direct": false,
            "version": "4.0.0",
            "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": "source-map-support",
            "direct": false,
            "version": "0.5.21",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-exceptions",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-expression-parse",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "spdx-license-ids",
            "direct": false,
            "version": "3.0.23",
            "ecosystem": "npm"
          },
          {
            "name": "stable-hash-x",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "stackback",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "statuses",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "std-env",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "7.2.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-indent",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "style-mod",
            "direct": false,
            "version": "4.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "super-regex",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "5.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-hyperlinks",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-preserve-symlinks-flag",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "symbol-tree",
            "direct": false,
            "version": "3.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "table-layout",
            "direct": false,
            "version": "0.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "tapable",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "terser",
            "direct": false,
            "version": "5.48.0",
            "ecosystem": "npm"
          },
          {
            "name": "test-value",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "text_audit",
            "direct": false,
            "version": "0.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "thenify",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "thenify-all",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "time-span",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "timers-ext",
            "direct": false,
            "version": "0.1.8",
            "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": "to-regex-range",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "to-valid-identifier",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "toidentifier",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tough-cookie",
            "direct": false,
            "version": "4.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "tr46",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "ts-api-utils",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "ts-declaration-location",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "twitter-api-client",
            "direct": false,
            "version": "1.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "txt_tocfill",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "type",
            "direct": false,
            "version": "2.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "type-check",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "4.41.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-is",
            "direct": false,
            "version": "1.6.18",
            "ecosystem": "npm"
          },
          {
            "name": "typedoc",
            "direct": false,
            "version": "0.28.20",
            "ecosystem": "npm"
          },
          {
            "name": "typedoc-plugin-missing-exports",
            "direct": false,
            "version": "4.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.6.1-rc",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "typescript-eslint",
            "direct": false,
            "version": "8.63.0",
            "ecosystem": "npm"
          },
          {
            "name": "typical",
            "direct": false,
            "version": "2.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "typical",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "uc.micro",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "8.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "unicode-emoji-modifier-base",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "universalify",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "universalify",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "unpipe",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unplugin-utils",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "unrs-resolver",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "update-browserslist-db",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "uri-js",
            "direct": false,
            "version": "4.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "url-parse",
            "direct": false,
            "version": "1.5.10",
            "ecosystem": "npm"
          },
          {
            "name": "utils-merge",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "validate-npm-package-name",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "vary",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "8.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "w3c-keyname",
            "direct": false,
            "version": "2.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "w3c-xmlserializer",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "web-worker",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "webidl-conversions",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-encoding",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-mimetype",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-url",
            "direct": false,
            "version": "14.2.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": "word-wrap",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "wordwrapjs",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "6.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "9.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "wrappy",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": false,
            "version": "8.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "xml-name-validator",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "xml2js",
            "direct": false,
            "version": "0.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "xmlbuilder",
            "direct": false,
            "version": "11.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "xmlchars",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "y18n",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "16.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "18.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "20.2.9",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "22.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "yocto-queue",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 795,
        "direct_count": 2,
        "indirect_count": 793
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 403,
        "open_issues": 7,
        "closed_ratio": 0.987,
        "closed_issues": 537,
        "closed_unmerged_prs": 24
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "StoneCypher",
          "commits": 2371,
          "avatar_url": "https://avatars.githubusercontent.com/u/77482?v=4"
        },
        {
          "type": "User",
          "login": "machinshin",
          "commits": 20,
          "avatar_url": "https://avatars.githubusercontent.com/u/706190?v=4"
        },
        {
          "type": "User",
          "login": "tylerbutler",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/19589?v=4"
        },
        {
          "type": "User",
          "login": "technophile77",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/4401329?v=4"
        },
        {
          "type": "User",
          "login": "cohendvir",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/10887223?v=4"
        },
        {
          "type": "User",
          "login": "mhsdef",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/2006764?v=4"
        },
        {
          "type": "User",
          "login": "kraln",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/117142?v=4"
        },
        {
          "type": "User",
          "login": "msmorgan",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/94825?v=4"
        },
        {
          "type": "User",
          "login": "daviddelapena",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/3840082?v=4"
        },
        {
          "type": "User",
          "login": "tanvirrb",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/2250509?v=4"
        }
      ],
      "contributors_sampled": 11,
      "top_contributor_share": 0.985
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "nodejs.yml",
        "perf_backfill.yml",
        "perf_chart.yml",
        "perf_envelope.yml",
        "perf_results_sync.yml",
        "shootout.yml"
      ],
      "has_docs_dir": false,
      "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": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "13 out of 13 merged PRs checked by a CI test -- score normalized to 10",
            "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/13 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 3 contributing companies or organizations -- score normalized to 10",
            "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": 10,
            "reason": "project is 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 30 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": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 7,
            "reason": "3 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "f4f9496177f19972dd3894733c9da9091b96f7d1",
        "ran_at": "2026-07-24T04:27:41Z",
        "aggregate_score": 5.4,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-23T11:21:19Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-07-18T18:31:17Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 754,
          "created_at": "2026-06-14T09:44:16Z",
          "last_comment_at": "2026-06-14T20:45:18Z",
          "last_comment_author": "StoneCypher"
        },
        {
          "number": 755,
          "created_at": "2026-06-14T09:44:44Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 757,
          "created_at": "2026-06-14T09:44:55Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 758,
          "created_at": "2026-06-14T09:45:02Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 759,
          "created_at": "2026-06-14T09:45:06Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 827,
          "created_at": "2026-06-28T06:05:12Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 921,
          "created_at": "2026-07-03T19:08:31Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/StoneCypher/jssm",
    "host": "github.com",
    "name": "jssm",
    "owner": "StoneCypher"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 72,
      "inputs": {
        "security": 63,
        "vitality": 86,
        "community": 59,
        "governance": 67,
        "engineering": 80
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 86,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 77,
            "inputs": {
              "commits_last_year": 1254,
              "human_commit_share": 1,
              "days_since_last_push": 3,
              "active_weeks_last_year": 19
            },
            "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": "19/52 weeks with commits",
                "points": 13.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 19
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "1254 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 1254
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "5.163.4",
              "releases_from_tags": false,
              "days_since_latest_release": 5,
              "mean_days_between_releases": 0.3
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 5 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~0.3 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 0.3
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "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": 5,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 5 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 59,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 57,
            "inputs": {
              "forks": 24,
              "stars": 366,
              "watchers": 7,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "366 stars",
                "points": 41.6,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 366
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "24 forks",
                "points": 11.3,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 24
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "7 watchers",
                "points": 4.3,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "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": 0,
                "status": "missed",
                "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": "good",
            "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": 75,
            "inputs": {
              "packages": [
                "jssm"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 30835
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "30,835 downloads/month across npm",
                "points": 59.9,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 30835,
                      "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": 67,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 33,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 11,
              "top_contributor_share": 0.985
            },
            "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 98% of commits",
                "points": 0.3,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 98
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "11 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 11
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 3 contributing companies or organizations -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 82,
            "inputs": {
              "merged_prs": 403,
              "open_issues": 7,
              "closed_issues": 537,
              "issue_closed_ratio": 0.987,
              "closed_unmerged_prs": 24
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "99% of issues closed",
                "points": 46.1,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 99
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "403/427 decided PRs merged",
                "points": 36.1,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 403,
                      "decided": 427
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/13 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 65,
            "inputs": {
              "followers": 214,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "StoneCypher",
              "public_repos": 548,
              "account_age_days": 6299
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "214 followers of StoneCypher",
                "points": 16.8,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 214,
                      "login": "StoneCypher"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "548 public repos, account ~17 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 548
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 17
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "jssm"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 5
            },
            "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 5 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "515 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 515
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 80,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 90,
            "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": "13 out of 13 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "topics": [
                "state",
                "state-machine",
                "machine",
                "finite-state-machine",
                "fsm",
                "fsm-library",
                "js",
                "javascript",
                "javascript-library",
                "mit-license",
                "tested",
                "typed",
                "typed-js",
                "flowtype",
                "mealy-machine",
                "moore-machine",
                "mealy",
                "moore",
                "graphviz",
                "dsl"
              ],
              "has_wiki": false,
              "homepage": "http://fsl.tools/",
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "http://fsl.tools/",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "20 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 20
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 63,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 54,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 5.4
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "13 out of 13 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/13 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 3 contributing companies or organizations -- score normalized to 10",
                "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 fuzzed",
                "points": 5,
                "status": "met",
                "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 30 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": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "3 existing vulnerabilities detected",
                "points": 5.2,
                "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:jssm@5.163.4 runtime dependency closure — what installing the published package pulls in — 4 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:jssm@5.163.4",
                  "assessed": 4
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 4,
              "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": 4,
              "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": 11
            },
            "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": 68,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.99,
              "agent_instruction_files": [
                "CLAUDE.md",
                "src/fsl.tools/AGENTS.md"
              ],
              "agent_instruction_max_bytes": 9406
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "CLAUDE.md, src/fsl.tools/AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "CLAUDE.md, src/fsl.tools/AGENTS.md"
                    }
                  }
                ],
                "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": "99 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 99,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 54,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "tsconfig.json"
              ],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": "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": "tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "tsconfig.json"
                    }
                  }
                ],
                "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": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 1986367,
              "source_files_sampled": 520,
              "oversized_source_files": 11
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "TypeScript (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "11/520 source files over 60KB",
                "points": 53.8,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 520,
                      "oversized": 11
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples",
                "recipes"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples, recipes",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples, recipes"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "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-24T04:28:03.070398Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/StoneCypher/jssm.svg",
  "full_name": "StoneCypher/jssm",
  "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.