Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 2.3.1 · 2026-08-01 01:27 UTC

wwdrew / expo-spotify-sdk

Expo Module for native Spotify SDKs

TypeScript · Swift · KotlinMIT★ 17 estrellas⑂ 7 forksdesde dic 2023Ver en GitHub ↗
TipoBibliotecacómo se determina

wwdrew/expo-spotify-sdk tiene un índice de salud de 73 sobre 100, lo que lo sitúa en la banda Bueno. Su puntuación más alta es Vitality (77/100) y la más baja, Community & Adoption (50/100). Se actualizó por última vez hace 9 días. Una sola persona concentra la mayor parte del trabajo reciente.

73
global / 100
Bueno

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala estandarizada de 1 a 100. El resultado global parte de su media ponderada, calibrada contra la distribución del registro público para que las bandas tengan significado percentil; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe un límite «En riesgo» de 34.

73
Excepcional93-100El nivel más alto del registro (≈ el 5% superior); cumple prácticamente todos los criterios evaluados
Excelente80-92Sólido en todos los frentes; carencias menores
Bueno65-79Saludable; carencias limitadas y manejables
Moderado50-64Aceptable con carencias notables; se recomienda revisión
Débil35-49Debilidades sustanciales en varias áreas
En riesgo20-34Debilidades significativas; su adopción exige cautela
Crítico1-19Problemas 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.

El resultado global ponderado 64 se calibra a 73 en la escala publicada del índice (calibración del registro 2026-08-02).

Titularidad

Drew MillerCuenta personal
17 seguidores51 repositorios públicosdesde abr 2019

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

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicaciónEtiquetas
npm@wwdrew/expo-spotify-sdk2.3.2470824hace 9 díasreact-nativeexpoexpo-spotify-sdkexpospotifysdkspotify

Métricas por categoría

Vitalidad

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

77Bueno · 21% del índice global
Cómo se puntúa
28.8/36Recencia de push — último push hace 9 días
6.9/36Cadencia de commits — 10/52 semanas con commits
16.1/18Volumen de commits — 61 commits en el último año
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10
Datos de entrada utilizados
commits_last_year61
human_commit_share0,87
days_since_last_push9
active_weeks_last_year10
Cómo se puntúa
27/27Publica versiones — 14 versiones publicadas
36/36Recencia de las versiones — última versión hace 9 días
27/27Cadencia de publicación — una versión cada ~6,1 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count14
latest_release_tagexpo-spotify-sdk-v2.3.2
releases_from_tagsno
days_since_latest_release9
mean_days_between_releases6,1
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?

50Moderado · 17% del índice global
Cómo se puntúa
19.5/60Estrellas — 17 estrellas
6.5/25Forks — 7 forks
0/15Observadores — 1 observadores
Datos de entrada utilizados
forks7
stars17
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (MIT)
18/18Guía CONTRIBUTING
0/13.5Código de conducta
0/7.2Plantilla de issues
0/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
readme_badges
has_contributing
has_issue_templateno
has_code_of_conductno
readme_badge_services
has_pull_request_templateno
Cómo se puntúa
49/80Descargas mensuales — 4708 descargas/mes en npm
0/20Dependientes en el registro — no lo informa este ecosistema
Datos de entrada utilizados
packages@wwdrew/expo-spotify-sdk
dependents
ecosystemsnpm
total_downloads
monthly_downloads4708
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?

58Moderado · 23% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
0.5/22.5Distribución de commits — el principal contribuyente firma el 98% de los commits
4.1/13.5Amplitud de contribuyentes — 3 contribuyentes
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Datos de entrada utilizados
bus_factor1
contributors_sampled3
top_contributor_share0,979
Cómo se puntúa
42/42Resolución de issues — 100% de issues cerradas
26.8/30Aceptación de PR — 59/66 PR decididos fusionados
0/13Newcomer PR acceptance — ningún PR de un contribuyente primerizo decidido en 30 d
1.5/15OpenSSF Scorecard: Code-Review — Found 2/15 approved changesets -- score normalized to 1
Datos de entrada utilizados
merged_prs59
open_issues0
closed_issues10
prs_merged_7d
prs_decided_7d
prs_merged_30d
prs_decided_30d
issue_closed_ratio1
closed_unmerged_prs7
first_time_authors_30d
first_time_prs_merged_30d
first_time_prs_decided_30d
Excluidos de la puntuación (sin datos o no aplicable): newcomer_pr_acceptance. Los pesos restantes se han renormalizado.
Cómo se puntúa
10/30Respaldo de la propiedad — cuenta personal (usuario)
0/20Dominio verificado — no aplicable a cuentas de usuario
9/25Alcance del propietario — 17 seguidores de wwdrew
24.5/25Trayectoria — 51 repos públicos, cuenta de ~7 años
Datos de entrada utilizados
followers17
owner_typeUser
is_verified
owner_loginwwdrew
public_repos51
account_age_days2658
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 9 días
20/20Historial de versiones — 24 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packages@wwdrew/expo-spotify-sdk
ecosystemsnpm
any_deprecatedno
min_days_since_publish9

Calidad de Ingeniería

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

76Bueno · 19% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 2 flujo(s) de trabajo
24/24Pruebas presentes
16/16Configuración de linter — eslint.config.js
0/9.6Hooks de pre-commit
6.4/6.4.editorconfig
14/20OpenSSF Scorecard: CI-Tests — 17 out of 22 merged PRs checked by a CI test -- score normalized to 7
Datos de entrada utilizados
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_configno
Cómo se puntúa
30/30README
25/25Directorio de documentación
0/15Sitio de documentación / página del proyecto
10/10Descripción del repositorio
0/10Topics
0/10Wiki
Datos de entrada utilizados
topics
has_wikino
homepage
has_readme
has_docs_dir
has_description

Seguridad

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

51Moderado · 16% del índice global
Cómo se puntúa
6.8/7.5Binary-Artifacts — binaries present in source code
0/7.5Branch-Protection — branch protection not enabled on development/release branches
1.8/2.5CI-Tests — 17 out of 22 merged PRs checked by a CI test -- score normalized to 7
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0.8/7.5Code-Review — Found 2/15 approved changesets -- score normalized to 1
0/2.5Contributors — project has 0 contributing companies or organizations -- score normalized to 0
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Licencia — license file detected
7.5/7.5Maintained — 30 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
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
2/5Security-Policy — security policy file detected
0/7.5Signed-Releases — sin datos
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
1.5/7.5Vulnerabilities — 8 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate3,9
Excluidos de la puntuación (sin datos o no aplicable): 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
0/25Dependencias indirectas libres de avisos conocidos — el conjunto transitivo no es separable de las dependencias de desarrollo y prueba en este alcance
0/40Sin avisos pendientes — ningún aviso tiene fecha de publicación
Datos de entrada utilizados
sourceosv
advisories13
affected_packages9
assessed_packages1062
unassessed_packages0
affected_by_severityhigh 9
direct_affected_packages0
Excluidos de la puntuación (sin datos o no aplicable): Dependencias indirectas libres de avisos conocidos, Sin avisos pendientes. Los pesos restantes se han renormalizado. Se cotejaron 1062 dependencias resueltas con OSV. Este repositorio no publica ningún paquete que el índice resuelva, por lo que se evaluó en su lugar el grafo de dependencias del repositorio. Ese grafo mezcla fijaciones de desarrollo y prueba con las dependencias distribuidas, de modo que solo se puntúan las dependencias declaradas en tiempo de ejecución; los hallazgos transitivos se informan como contexto y quedan excluidos de la puntuación. 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? Tiene un peso deliberadamente pequeño (4%): las herramientas para agentes son una señal real de mantenimiento, pero un repositorio sin ninguna puede alcanzar igualmente 100/100.

77Bueno · 4% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — AGENTS.md
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 87 de 87 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share1
agent_instruction_filesAGENTS.md
agent_instruction_max_bytes531
Cómo se puntúa
12.6/18Arranque con un solo comando — android/build.gradle, example/android/app/build.gradle, example/android/build.gradle (convención del toolchain, sin ejecutor de tareas)
22/22Pruebas automatizadas
11/11Configuración de lint / formato — eslint.config.js
11/11Verificación estática de tipos — example/tsconfig.json, plugin/tsconfig.json, tsconfig.json
10/10Entorno reproducible — lockfile
10/10Práctica demostrada con agentes — 27 de los últimos 100 commits con autoría o crédito de agente
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
lockfilesyarn.lock
has_dockerfileno
typed_language
bootstrap_files
has_devcontainerno
has_linter_config
typecheck_configsexample/tsconfig.json, plugin/tsconfig.json, tsconfig.json
agent_commit_share0,27
toolchain_manifestsandroid/build.gradle, example/android/app/build.gradle, example/android/build.gradle
dependency_bot_commit_share0
Cómo se puntúa
45/45Código verificable por tipos — TypeScript (tipado estático)
55/55Tamaños de archivo manejables — 0/97 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageTypeScript
largest_source_bytes20.879
source_files_sampled97
oversized_source_files0
Cómo se puntúa
0/40Esquema de API (OpenAPI/GraphQL/proto)
0/20Servidor MCP
40/40Ejemplos ejecutables — example
Datos de entrada utilizados
example_dirsexample
has_mcp_signalno
api_schema_files

Datos clave

17estrellas de GitHub
3contribuidores
61commits en los últimos 12 meses
9días desde el último push
14versiones publicadas
1factor bus
0issues abiertas
Maven, 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 ★ / 7 ⇿
0Estrellas
7Forks

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.

1234567712024-012025-022026-03

Cada punto abarca 2 días.

OpenSSF Scorecard 3.9 / 10
3.9agregado

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-08-01 01:26 UTC

9Binary-Artifactsbinaries present in source code
0Branch-Protectionbranch protection not enabled on development/release branches
7CI-Tests17 out of 22 merged PRs checked by a CI test -- score normalized to 7
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
1Code-ReviewFound 2/15 approved changesets -- score normalized to 1
0Contributorsproject has 0 contributing companies or organizations -- score normalized to 0
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
4Security-Policysecurity policy file detected
n/dSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
2Vulnerabilities8 existing vulnerabilities detected
Todas las dependencias 1062

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

RegistroPaqueteVersiónRelación
npm@adobe/css-tools4.5.0indirecta
npm@babel/cli7.29.7indirecta
npm@babel/code-frame7.29.7indirecta
npm@babel/compat-data7.29.7indirecta
npm@babel/core7.29.7indirecta
npm@babel/generator7.29.7indirecta
npm@babel/helper-annotate-as-pure7.29.7indirecta
npm@babel/helper-compilation-targets7.29.7indirecta
npm@babel/helper-create-class-features-plugin7.29.7indirecta
npm@babel/helper-create-regexp-features-plugin7.29.7indirecta
npm@babel/helper-define-polyfill-provider0.6.8indirecta
npm@babel/helper-globals7.29.7indirecta
npm@babel/helper-member-expression-to-functions7.29.7indirecta
npm@babel/helper-module-imports7.29.7indirecta
npm@babel/helper-module-transforms7.29.7indirecta
npm@babel/helper-optimise-call-expression7.29.7indirecta
npm@babel/helper-plugin-utils7.29.7indirecta
npm@babel/helper-remap-async-to-generator7.29.7indirecta
npm@babel/helper-replace-supers7.29.7indirecta
npm@babel/helper-skip-transparent-expression-wrappers7.29.7indirecta
npm@babel/helper-string-parser7.29.7indirecta
npm@babel/helper-validator-identifier7.29.7indirecta
npm@babel/helper-validator-option7.29.7indirecta
npm@babel/helper-wrap-function7.29.7indirecta
npm@babel/helpers7.29.7indirecta
npm@babel/parser7.29.7indirecta
npm@babel/plugin-bugfix-firefox-class-in-computed-class-key7.29.7indirecta
npm@babel/plugin-bugfix-safari-class-field-initializer-scope7.29.7indirecta
npm@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression7.29.7indirecta
npm@babel/plugin-bugfix-safari-rest-destructuring-rhs-array7.29.7indirecta
npm@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining7.29.7indirecta
npm@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly7.29.7indirecta
npm@babel/plugin-proposal-decorators7.29.7indirecta
npm@babel/plugin-proposal-export-default-from7.29.7indirecta
npm@babel/plugin-proposal-private-property-in-object7.21.0-placeholder-for-preset-env.2indirecta
npm@babel/plugin-syntax-async-generators7.8.4indirecta
npm@babel/plugin-syntax-bigint7.8.3indirecta
npm@babel/plugin-syntax-class-properties7.12.13indirecta
npm@babel/plugin-syntax-class-static-block7.14.5indirecta
npm@babel/plugin-syntax-decorators7.29.7indirecta
npm@babel/plugin-syntax-dynamic-import7.8.3indirecta
npm@babel/plugin-syntax-export-default-from7.29.7indirecta
npm@babel/plugin-syntax-flow7.29.7indirecta
npm@babel/plugin-syntax-import-assertions7.29.7indirecta
npm@babel/plugin-syntax-import-attributes7.29.7indirecta
npm@babel/plugin-syntax-import-meta7.10.4indirecta
npm@babel/plugin-syntax-json-strings7.8.3indirecta
npm@babel/plugin-syntax-jsx7.29.7indirecta
npm@babel/plugin-syntax-logical-assignment-operators7.10.4indirecta
npm@babel/plugin-syntax-nullish-coalescing-operator7.8.3indirecta
npm@babel/plugin-syntax-numeric-separator7.10.4indirecta
npm@babel/plugin-syntax-object-rest-spread7.8.3indirecta
npm@babel/plugin-syntax-optional-catch-binding7.8.3indirecta
npm@babel/plugin-syntax-optional-chaining7.8.3indirecta
npm@babel/plugin-syntax-private-property-in-object7.14.5indirecta
npm@babel/plugin-syntax-top-level-await7.14.5indirecta
npm@babel/plugin-syntax-typescript7.29.7indirecta
npm@babel/plugin-syntax-unicode-sets-regex7.18.6indirecta
npm@babel/plugin-transform-arrow-functions7.29.7indirecta
npm@babel/plugin-transform-async-generator-functions7.29.7indirecta
npm@babel/plugin-transform-async-to-generator7.29.7indirecta
npm@babel/plugin-transform-block-scoped-functions7.29.7indirecta
npm@babel/plugin-transform-block-scoping7.29.7indirecta
npm@babel/plugin-transform-class-properties7.29.7indirecta
npm@babel/plugin-transform-class-static-block7.29.7indirecta
npm@babel/plugin-transform-classes7.29.7indirecta
npm@babel/plugin-transform-computed-properties7.29.7indirecta
npm@babel/plugin-transform-destructuring7.29.7indirecta
npm@babel/plugin-transform-dotall-regex7.29.7indirecta
npm@babel/plugin-transform-duplicate-keys7.29.7indirecta
npm@babel/plugin-transform-duplicate-named-capturing-groups-regex7.29.7indirecta
npm@babel/plugin-transform-dynamic-import7.29.7indirecta
npm@babel/plugin-transform-explicit-resource-management7.29.7indirecta
npm@babel/plugin-transform-exponentiation-operator7.29.7indirecta
npm@babel/plugin-transform-export-namespace-from7.29.7indirecta
npm@babel/plugin-transform-flow-strip-types7.29.7indirecta
npm@babel/plugin-transform-for-of7.29.7indirecta
npm@babel/plugin-transform-function-name7.29.7indirecta
npm@babel/plugin-transform-json-strings7.29.7indirecta
npm@babel/plugin-transform-literals7.29.7indirecta
npm@babel/plugin-transform-logical-assignment-operators7.29.7indirecta
npm@babel/plugin-transform-member-expression-literals7.29.7indirecta
npm@babel/plugin-transform-modules-amd7.29.7indirecta
npm@babel/plugin-transform-modules-commonjs7.29.7indirecta
npm@babel/plugin-transform-modules-systemjs7.29.7indirecta
npm@babel/plugin-transform-modules-umd7.29.7indirecta
npm@babel/plugin-transform-named-capturing-groups-regex7.29.7indirecta
npm@babel/plugin-transform-new-target7.29.7indirecta
npm@babel/plugin-transform-nullish-coalescing-operator7.29.7indirecta
npm@babel/plugin-transform-numeric-separator7.29.7indirecta
npm@babel/plugin-transform-object-rest-spread7.29.7indirecta
npm@babel/plugin-transform-object-super7.29.7indirecta
npm@babel/plugin-transform-optional-catch-binding7.29.7indirecta
npm@babel/plugin-transform-optional-chaining7.29.7indirecta
npm@babel/plugin-transform-parameters7.29.7indirecta
npm@babel/plugin-transform-private-methods7.29.7indirecta
npm@babel/plugin-transform-private-property-in-object7.29.7indirecta
npm@babel/plugin-transform-property-literals7.29.7indirecta
npm@babel/plugin-transform-react-display-name7.29.7indirecta
npm@babel/plugin-transform-react-jsx7.29.7indirecta
npm@babel/plugin-transform-react-jsx-development7.29.7indirecta
npm@babel/plugin-transform-react-pure-annotations7.29.7indirecta
npm@babel/plugin-transform-regenerator7.29.7indirecta
npm@babel/plugin-transform-regexp-modifiers7.29.7indirecta
npm@babel/plugin-transform-reserved-words7.29.7indirecta
npm@babel/plugin-transform-runtime7.29.7indirecta
npm@babel/plugin-transform-shorthand-properties7.29.7indirecta
npm@babel/plugin-transform-spread7.29.7indirecta
npm@babel/plugin-transform-sticky-regex7.29.7indirecta
npm@babel/plugin-transform-template-literals7.29.7indirecta
npm@babel/plugin-transform-typeof-symbol7.29.7indirecta
npm@babel/plugin-transform-typescript7.29.7indirecta
npm@babel/plugin-transform-unicode-escapes7.29.7indirecta
npm@babel/plugin-transform-unicode-property-regex7.29.7indirecta
npm@babel/plugin-transform-unicode-regex7.29.7indirecta
npm@babel/plugin-transform-unicode-sets-regex7.29.7indirecta
npm@babel/preset-env7.29.7indirecta
npm@babel/preset-modules0.1.6-no-external-pluginsindirecta
npm@babel/preset-typescript7.29.7indirecta
npm@babel/runtime7.29.7indirecta
npm@babel/template7.29.7indirecta
npm@babel/traverse7.29.7indirecta
npm@babel/types7.29.7indirecta
npm@bcoe/v8-coverage0.2.3indirecta
npm@egjs/hammerjs2.0.17indirecta
npm@eslint-community/eslint-utils4.9.1indirecta
npm@eslint-community/regexpp4.12.2indirecta
npm@eslint/config-array0.21.2indirecta
npm@eslint/config-helpers0.4.2indirecta
npm@eslint/core0.17.0indirecta
npm@eslint/eslintrc3.3.5indirecta
npm@eslint/js9.39.4indirecta
npm@eslint/object-schema2.1.7indirecta
npm@eslint/plugin-kit0.4.1indirecta
npm@expo-google-fonts/material-symbols0.4.38indirecta
npm@expo/cli56.1.16indirecta
npm@expo/code-signing-certificates0.0.6indirecta
npm@expo/config56.0.9indirecta
npm@expo/config-plugins56.0.8indirecta
npm@expo/config-plugins56.0.9indirecta
npm@expo/config-types56.0.5indirecta
npm@expo/config-types56.0.6indirecta
npm@expo/devcert1.2.1indirecta
npm@expo/devtools56.0.2indirecta
npm@expo/dom-webview56.0.5indirecta
npm@expo/env2.3.0indirecta
npm@expo/expo-modules-macros-plugin0.0.9indirecta
npm@expo/expo-modules-macros-plugin0.2.2indirecta
npm@expo/fingerprint0.19.4indirecta
npm@expo/image-utils0.10.1indirecta
npm@expo/inline-modules0.0.12indirecta
npm@expo/json-file10.2.0indirecta
npm@expo/local-build-cache-provider56.0.8indirecta
npm@expo/log-box56.0.13indirecta
npm@expo/metro56.0.0indirecta
npm@expo/metro-config56.0.14indirecta
npm@expo/metro-file-map56.0.3indirecta
npm@expo/metro-runtime56.0.15indirecta
npm@expo/osascript2.6.0indirecta
npm@expo/package-manager1.12.1indirecta
npm@expo/plist0.7.0indirecta
npm@expo/prebuild-config56.0.16indirecta
npm@expo/require-utils56.1.3indirecta
npm@expo/router-server56.0.14indirecta
npm@expo/schema-utils56.0.1indirecta
npm@expo/sdk-runtime-versions1.0.0indirecta
npm@expo/spawn-async1.8.0indirecta
npm@expo/sudo-prompt9.3.2indirecta
npm@expo/ui56.0.18indirecta
npm@expo/ws-tunnel2.0.0indirecta
npm@expo/xcpretty4.4.4indirecta
npm@humanfs/core0.19.2indirecta
npm@humanfs/node0.16.8indirecta
npm@humanfs/types0.15.0indirecta
npm@humanwhocodes/module-importer1.0.1indirecta
npm@humanwhocodes/retry0.4.3indirecta
npm@isaacs/ttlcache1.4.1indirecta
npm@istanbuljs/load-nyc-config1.1.0indirecta
npm@istanbuljs/schema0.1.6indirecta
npm@jest/console29.7.0indirecta
npm@jest/core29.7.0indirecta
npm@jest/create-cache-key-function29.7.0indirecta
npm@jest/diff-sequences30.4.0indirecta
npm@jest/environment29.7.0indirecta
npm@jest/expect29.7.0indirecta
npm@jest/expect-utils29.7.0indirecta
npm@jest/fake-timers29.7.0indirecta
npm@jest/get-type30.1.0indirecta
npm@jest/globals29.7.0indirecta
npm@jest/reporters29.7.0indirecta
npm@jest/schemas29.6.3indirecta
npm@jest/schemas30.4.1indirecta
npm@jest/source-map29.6.3indirecta
npm@jest/test-result29.7.0indirecta
npm@jest/test-sequencer29.7.0indirecta
npm@jest/transform29.7.0indirecta
npm@jest/types29.6.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@nicolo-ribaudo/chokidar-22.1.8-no-fsevents.3indirecta
npm@pkgr/core0.3.6indirecta
npm@radix-ui/primitive1.1.4indirecta
npm@radix-ui/react-collection1.1.10indirecta
npm@radix-ui/react-compose-refs1.1.3indirecta
npm@radix-ui/react-context1.1.4indirecta
npm@radix-ui/react-dialog1.1.17indirecta
npm@radix-ui/react-direction1.1.2indirecta
npm@radix-ui/react-dismissable-layer1.1.13indirecta
npm@radix-ui/react-focus-guards1.1.4indirecta
npm@radix-ui/react-focus-scope1.1.10indirecta
npm@radix-ui/react-id1.1.2indirecta
npm@radix-ui/react-portal1.1.12indirecta
npm@radix-ui/react-presence1.1.6indirecta
npm@radix-ui/react-primitive2.1.6indirecta
npm@radix-ui/react-roving-focus1.1.13indirecta
npm@radix-ui/react-slot1.3.0indirecta
npm@radix-ui/react-tabs1.1.15indirecta
npm@radix-ui/react-use-callback-ref1.1.2indirecta
npm@radix-ui/react-use-controllable-state1.2.3indirecta
npm@radix-ui/react-use-effect-event0.0.3indirecta
npm@radix-ui/react-use-escape-keydown1.1.2indirecta
npm@radix-ui/react-use-layout-effect1.1.2indirecta
npm@react-native-async-storage/async-storage2.2.0indirecta
npm@react-native-masked-view/masked-view0.3.2indirecta
npm@react-native/assets-registry0.85.3indirecta
npm@react-native/babel-plugin-codegen0.85.3indirecta
npm@react-native/codegen0.85.3indirecta
npm@react-native/community-cli-plugin0.85.3indirecta
npm@react-native/debugger-frontend0.85.3indirecta
npm@react-native/debugger-shell0.85.3indirecta
npm@react-native/dev-middleware0.85.3indirecta
npm@react-native/gradle-plugin0.85.3indirecta
npm@react-native/jest-preset0.85.3indirecta
npm@react-native/js-polyfills0.85.3indirecta
npm@react-native/normalize-colors0.85.3indirecta
npm@react-native/virtualized-lists0.85.3indirecta
npm@rtsao/scc1.1.0indirecta
npm@sinclair/typebox0.27.10indirecta
npm@sinclair/typebox0.34.49indirecta
npm@sinonjs/commons3.0.1indirecta
npm@sinonjs/fake-timers10.3.0indirecta
npm@testing-library/jest-dom6.9.1indirecta
npm@testing-library/react-native13.3.3indirecta
npm@testing-library/user-event14.6.1indirecta
npm@tootallnate/once2.0.1indirecta
npm@types/babel__core7.20.5indirecta
npm@types/babel__generator7.27.0indirecta
npm@types/babel__template7.4.4indirecta
npm@types/babel__traverse7.28.0indirecta
npm@types/estree1.0.9indirecta
npm@types/graceful-fs4.1.9indirecta
npm@types/hammerjs2.0.46indirecta
npm@types/istanbul-lib-coverage2.0.6indirecta
npm@types/istanbul-lib-report3.0.3indirecta
npm@types/istanbul-reports3.0.4indirecta
npm@types/jest29.5.14indirecta
npm@types/jsdom20.0.1indirecta
npm@types/json-schema7.0.15indirecta
npm@types/json50.0.29indirecta
npm@types/node25.9.2indirecta
npm@types/node26.0.0indirecta
npm@types/react19.2.17indirecta
npm@types/react-test-renderer19.1.0indirecta
npm@types/stack-utils2.0.3indirecta
npm@types/tough-cookie4.0.5indirecta
npm@types/yargs17.0.35indirecta
npm@types/yargs-parser21.0.3indirecta
npm@typescript-eslint/eslint-plugin8.61.0indirecta
npm@typescript-eslint/parser8.61.0indirecta
npm@typescript-eslint/project-service8.61.0indirecta
npm@typescript-eslint/scope-manager8.61.0indirecta
npm@typescript-eslint/tsconfig-utils8.61.0indirecta
npm@typescript-eslint/type-utils8.61.0indirecta
npm@typescript-eslint/types8.61.0indirecta
npm@typescript-eslint/typescript-estree8.61.0indirecta
npm@typescript-eslint/utils8.61.0indirecta
npm@typescript-eslint/visitor-keys8.61.0indirecta
npm@ungap/structured-clone1.3.2indirecta
npm@xmldom/xmldom0.8.13indirecta
npm@xmldom/xmldom0.9.10indirecta
npmabab2.0.6indirecta
npmabort-controller3.0.0indirecta
npmaccepts1.3.8indirecta
npmaccepts2.0.0indirecta
npmacorn8.16.0indirecta
npmacorn8.17.0indirecta
npmacorn-globals7.0.1indirecta
npmacorn-jsx5.3.2indirecta
npmacorn-walk8.3.5indirecta
npmagent-base6.0.2indirecta
npmagent-base7.1.4indirecta
npmajv6.15.0indirecta
npmanser1.4.10indirecta
npmansi-escapes4.3.2indirecta
npmansi-escapes6.2.1indirecta
npmansi-regex4.1.1indirecta
npmansi-regex5.0.1indirecta
npmansi-regex6.2.2indirecta
npmansi-styles3.2.1indirecta
npmansi-styles4.3.0indirecta
npmansi-styles5.2.0indirecta
npmanymatch3.1.3indirecta
npmarg5.0.2indirecta
npmargparse1.0.10indirecta
npmargparse2.0.1indirecta
npmaria-hidden1.2.6indirecta
npmaria-query5.3.2indirecta
npmarray-buffer-byte-length1.0.2indirecta
npmarray-includes3.1.9indirecta
npmarray.prototype.findlast1.2.5indirecta
npmarray.prototype.findlastindex1.2.6indirecta
npmarray.prototype.flat1.3.3indirecta
npmarray.prototype.flatmap1.3.3indirecta
npmarray.prototype.tosorted1.1.4indirecta
npmarraybuffer.prototype.slice1.0.4indirecta
npmasap2.0.6indirecta
npmasync-function1.0.0indirecta
npmasynckit0.4.0indirecta
npmavailable-typed-arrays1.0.7indirecta
npmbabel-jest29.7.0indirecta
npmbabel-plugin-dynamic-import-node2.3.3indirecta
npmbabel-plugin-istanbul6.1.1indirecta
npmbabel-plugin-jest-hoist29.6.3indirecta
npmbabel-plugin-module-resolver5.0.3indirecta
npmbabel-plugin-polyfill-corejs20.4.17indirecta
npmbabel-plugin-polyfill-corejs30.13.0indirecta
npmbabel-plugin-polyfill-corejs30.14.2indirecta
npmbabel-plugin-polyfill-regenerator0.6.8indirecta
npmbabel-plugin-react-compiler1.0.0indirecta
npmbabel-plugin-react-native-web0.21.2indirecta
npmbabel-plugin-syntax-hermes-parser0.33.3indirecta
npmbabel-plugin-transform-flow-enums0.0.2indirecta
npmbabel-preset-current-node-syntax1.2.0indirecta
npmbabel-preset-expo56.0.14indirecta
npmbabel-preset-expo56.0.15indirecta
npmbabel-preset-jest29.6.3indirecta
npmbalanced-match1.0.2indirecta
npmbalanced-match4.0.4indirecta
npmbase64-js1.5.1indirecta
npmbaseline-browser-mapping2.10.34indirecta
npmbaseline-browser-mapping2.10.38indirecta
npmbig-integer1.6.52indirecta
npmbinary-extensions2.3.0indirecta
npmbplist-creator0.1.0indirecta
npmbplist-parser0.3.1indirecta
npmbplist-parser0.3.2indirecta
npmbrace-expansion1.1.15indirecta
npmbrace-expansion2.1.1indirecta
npmbrace-expansion5.0.6indirecta
npmbraces3.0.3indirecta
npmbrowserslist4.28.2indirecta
npmbrowserslist4.28.4indirecta
npmbs-logger0.2.6indirecta
npmbser2.1.1indirecta
npmbuffer-from1.1.2indirecta
npmbytes3.1.2indirecta
npmcall-bind1.0.9indirecta
npmcall-bind-apply-helpers1.0.2indirecta
npmcall-bound1.0.4indirecta
npmcallsites3.1.0indirecta
npmcamelcase5.3.1indirecta
npmcamelcase6.3.0indirecta
npmcaniuse-lite1.0.30001797indirecta
npmcaniuse-lite1.0.30001799indirecta
npmchalk2.4.2indirecta
npmchalk3.0.0indirecta
npmchalk4.1.2indirecta
npmchar-regex1.0.2indirecta
npmchar-regex2.0.2indirecta
npmchokidar3.6.0indirecta
npmchrome-launcher0.15.2indirecta
npmchromium-edge-launcher0.3.0indirecta
npmci-info2.0.0indirecta
npmci-info3.9.0indirecta
npmcjs-module-lexer1.4.3indirecta
npmcli-cursor2.1.0indirecta
npmcli-spinners2.9.2indirecta
npmclient-only0.0.1indirecta
npmcliui8.0.1indirecta
npmclone1.0.4indirecta
npmco4.6.0indirecta
npmcollect-v8-coverage1.0.3indirecta
npmcolor4.2.3indirecta
npmcolor-convert1.9.3indirecta
npmcolor-convert2.0.1indirecta
npmcolor-name1.1.3indirecta
npmcolor-name1.1.4indirecta
npmcolor-string1.9.1indirecta
npmcombined-stream1.0.8indirecta
npmcommander12.1.0indirecta
npmcommander2.20.3indirecta
npmcommander6.2.1indirecta
npmcommander7.2.0indirecta
npmcompressible2.0.18indirecta
npmcompression1.8.1indirecta
npmconcat-map0.0.1indirecta
npmconnect3.7.0indirecta
npmconvert-source-map2.0.0indirecta
npmcore-js-compat3.49.0indirecta
npmcreate-jest29.7.0indirecta
npmcross-spawn7.0.6indirecta
npmcss.escape1.5.1indirecta
npmcssom0.3.8indirecta
npmcssom0.5.0indirecta
npmcssstyle2.3.0indirecta
npmcsstype3.2.3indirecta
npmdata-urls3.0.2indirecta
npmdata-view-buffer1.0.2indirecta
npmdata-view-byte-length1.0.2indirecta
npmdata-view-byte-offset1.0.1indirecta
npmdebug2.6.9indirecta
npmdebug3.2.7indirecta
npmdebug4.4.3indirecta
npmdecimal.js10.6.0indirecta
npmdecode-uri-component0.2.2indirecta
npmdedent1.7.2indirecta
npmdeep-is0.1.4indirecta
npmdeepmerge4.3.1indirecta
npmdefaults1.0.4indirecta
npmdefine-data-property1.1.4indirecta
npmdefine-properties1.2.1indirecta
npmdelayed-stream1.0.0indirecta
npmdepd2.0.0indirecta
npmdestroy1.2.0indirecta
npmdetect-libc2.1.2indirecta
npmdetect-newline3.1.0indirecta
npmdetect-node-es1.1.0indirecta
npmdiff-sequences29.6.3indirecta
npmdnssd-advertise1.1.6indirecta
npmdoctrine2.1.0indirecta
npmdom-accessibility-api0.6.3indirecta
npmdomexception4.0.0indirecta
npmdunder-proto1.0.1indirecta
npmee-first1.1.1indirecta
npmelectron-to-chromium1.5.370indirecta
npmelectron-to-chromium1.5.377indirecta
npmemittery0.13.1indirecta
npmemoji-regex8.0.0indirecta
npmencodeurl1.0.2indirecta
npmencodeurl2.0.0indirecta
npmenhanced-resolve5.23.0indirecta
npmentities6.0.1indirecta
npmerror-ex1.3.4indirecta
npmerror-stack-parser2.1.4indirecta
npmes-abstract1.24.2indirecta
npmes-define-property1.0.1indirecta
npmes-errors1.3.0indirecta
npmes-iterator-helpers1.3.2indirecta
npmes-object-atoms1.1.2indirecta
npmes-set-tostringtag2.1.0indirecta
npmes-shim-unscopables1.1.0indirecta
npmes-to-primitive1.3.0indirecta
npmescalade3.2.0indirecta
npmescape-html1.0.3indirecta
npmescape-string-regexp1.0.5indirecta
npmescape-string-regexp2.0.0indirecta
npmescape-string-regexp4.0.0indirecta
npmescodegen2.1.0indirecta
npmeslint9.39.4indirecta
npmeslint-compat-utils0.5.1indirecta
npmeslint-config-prettier9.1.2indirecta
npmeslint-config-universe15.2.0indirecta
npmeslint-import-resolver-node0.3.10indirecta
npmeslint-module-utils2.13.0indirecta
npmeslint-plugin-es3.0.1indirecta
npmeslint-plugin-es-x7.8.0indirecta
npmeslint-plugin-import2.32.0indirecta
npmeslint-plugin-n17.24.0indirecta
npmeslint-plugin-node11.1.0indirecta
npmeslint-plugin-prettier5.5.6indirecta
npmeslint-plugin-react7.37.5indirecta
npmeslint-plugin-react-hooks7.1.1indirecta
npmeslint-scope8.4.0indirecta
npmeslint-utils2.1.0indirecta
npmeslint-visitor-keys1.3.0indirecta
npmeslint-visitor-keys3.4.3indirecta
npmeslint-visitor-keys4.2.1indirecta
npmeslint-visitor-keys5.0.1indirecta
npmespree10.4.0indirecta
npmesprima4.0.1indirecta
npmesquery1.7.0indirecta
npmesrecurse4.3.0indirecta
npmestraverse5.3.0indirecta
npmesutils2.0.3indirecta
npmetag1.8.1indirecta
npmevent-target-shim5.0.1indirecta
npmexeca5.1.1indirecta
npmexit0.1.2indirecta
npmexpect29.7.0indirecta
npmexpo56.0.12indirecta
npmexpo-asset56.0.17indirecta
npmexpo-constants56.0.18indirecta
npmexpo-file-system56.0.8indirecta
npmexpo-font56.0.7indirecta
npmexpo-glass-effect56.0.4indirecta
npmexpo-keep-awake56.0.3indirecta
npmexpo-linking56.0.14indirecta
npmexpo-module-scripts56.0.3indirecta
npmexpo-modules-autolinking56.0.16indirecta
npmexpo-modules-core56.0.15indirecta
npmexpo-modules-core56.0.17indirecta
npmexpo-modules-jsi56.0.10indirecta
npmexpo-modules-jsi56.0.8indirecta
npmexpo-router56.2.11indirecta
npmexpo-server56.0.5indirecta
npmexpo-splash-screen56.0.10indirecta
npmexpo-status-bar56.0.4indirecta
npmexpo-symbols56.0.6indirecta
npmexpo-system-ui56.0.5indirecta
npmexponential-backoff3.1.3indirecta
npmfast-deep-equal3.1.3indirecta
npmfast-diff1.3.0indirecta
npmfast-json-stable-stringify2.1.0indirecta
npmfast-levenshtein2.0.6indirecta
npmfb-dotslash0.5.8indirecta
npmfb-watchman2.0.2indirecta
npmfdir6.5.0indirecta
npmfetch-nodeshim0.4.10indirecta
npmfile-entry-cache8.0.0indirecta
npmfill-range7.1.1indirecta
npmfilter-obj1.1.0indirecta
npmfinalhandler1.1.2indirecta
npmfind-babel-config2.1.2indirecta
npmfind-up3.0.0indirecta
npmfind-up4.1.0indirecta
npmfind-up5.0.0indirecta
npmflat-cache4.0.1indirecta
npmflatted3.4.2indirecta
npmflow-enums-runtime0.0.6indirecta
npmfontfaceobserver2.3.0indirecta
npmfor-each0.3.5indirecta
npmform-data4.0.5indirecta
npmfresh0.5.2indirecta
npmfs-readdir-recursive1.1.0indirecta
npmfs.realpath1.0.0indirecta
npmfsevents2.3.3indirecta
npmfunction-bind1.1.2indirecta
npmfunction.prototype.name1.1.8indirecta
npmfunctions-have-names1.2.3indirecta
npmgenerator-function2.0.1indirecta
npmgensync1.0.0-beta.2indirecta
npmget-caller-file2.0.5indirecta
npmget-intrinsic1.3.0indirecta
npmget-nonce1.0.1indirecta
npmget-package-type0.1.0indirecta
npmget-proto1.0.1indirecta
npmget-stream6.0.1indirecta
npmget-symbol-description1.1.0indirecta
npmget-tsconfig4.14.0indirecta
npmgetenv2.0.0indirecta
npmglob13.0.6indirecta
npmglob7.2.3indirecta
npmglob9.3.5indirecta
npmglob-parent5.1.2indirecta
npmglob-parent6.0.2indirecta
npmglobals14.0.0indirecta
npmglobals15.15.0indirecta
npmglobals16.5.0indirecta
npmglobalthis1.0.4indirecta
npmglobrex0.1.2indirecta
npmgopd1.2.0indirecta
npmgraceful-fs4.2.11indirecta
npmhandlebars4.7.9indirecta
npmhas-bigints1.1.0indirecta
npmhas-flag3.0.0indirecta
npmhas-flag4.0.0indirecta
npmhas-property-descriptors1.0.2indirecta
npmhas-proto1.2.0indirecta
npmhas-symbols1.1.0indirecta
npmhas-tostringtag1.0.2indirecta
npmhasown2.0.4indirecta
npmhermes-compiler250829098.0.10indirecta
npmhermes-estree0.25.1indirecta
npmhermes-estree0.33.3indirecta
npmhermes-estree0.35.0indirecta
npmhermes-parser0.25.1indirecta
npmhermes-parser0.33.3indirecta
npmhermes-parser0.35.0indirecta
npmhoist-non-react-statics3.3.2indirecta
npmhosted-git-info7.0.2indirecta
npmhtml-encoding-sniffer3.0.0indirecta
npmhtml-escaper2.0.2indirecta
npmhttp-errors2.0.1indirecta
npmhttp-proxy-agent5.0.0indirecta
npmhttps-proxy-agent5.0.1indirecta
npmhttps-proxy-agent7.0.6indirecta
npmhuman-signals2.1.0indirecta
npmiconv-lite0.6.3indirecta
npmignore5.3.2indirecta
npmignore7.0.5indirecta
npmimage-size1.2.1indirecta
npmimport-fresh3.3.1indirecta
npmimport-local3.2.0indirecta
npmimurmurhash0.1.4indirecta
npmindent-string4.0.0indirecta
npminflight1.0.6indirecta
npminherits2.0.4indirecta
npminternal-slot1.1.0indirecta
npminvariant2.2.4indirecta
npmis-array-buffer3.0.5indirecta
npmis-arrayish0.2.1indirecta
npmis-arrayish0.3.4indirecta
npmis-async-function2.1.1indirecta
npmis-bigint1.1.0indirecta
npmis-binary-path2.1.0indirecta
npmis-boolean-object1.2.2indirecta
npmis-callable1.2.7indirecta
npmis-core-module2.16.2indirecta
npmis-data-view1.0.2indirecta
npmis-date-object1.1.0indirecta
npmis-docker2.2.1indirecta
npmis-extglob2.1.1indirecta
npmis-finalizationregistry1.1.1indirecta
npmis-fullwidth-code-point3.0.0indirecta
npmis-generator-fn2.1.0indirecta
npmis-generator-function1.1.2indirecta
npmis-glob4.0.3indirecta
npmis-map2.0.3indirecta
npmis-negative-zero2.0.3indirecta
npmis-number7.0.0indirecta
npmis-number-object1.1.1indirecta
npmis-plain-obj2.1.0indirecta
npmis-potential-custom-element-name1.0.1indirecta
npmis-regex1.2.1indirecta
npmis-set2.0.3indirecta
npmis-shared-array-buffer1.0.4indirecta
npmis-stream2.0.1indirecta
npmis-string1.1.1indirecta
npmis-symbol1.1.1indirecta
npmis-typed-array1.1.15indirecta
npmis-weakmap2.0.2indirecta
npmis-weakref1.1.1indirecta
npmis-weakset2.0.4indirecta
npmis-wsl2.2.0indirecta
npmisarray2.0.5indirecta
npmisexe2.0.0indirecta
npmistanbul-lib-coverage3.2.2indirecta
npmistanbul-lib-instrument5.2.1indirecta
npmistanbul-lib-instrument6.0.3indirecta
npmistanbul-lib-report3.0.1indirecta
npmistanbul-lib-source-maps4.0.1indirecta
npmistanbul-reports3.2.0indirecta
npmiterator.prototype1.1.5indirecta
npmjest29.7.0indirecta
npmjest-changed-files29.7.0indirecta
npmjest-circus29.7.0indirecta
npmjest-cli29.7.0indirecta
npmjest-config29.7.0indirecta
npmjest-diff29.7.0indirecta
npmjest-diff30.4.1indirecta
npmjest-docblock29.7.0indirecta
npmjest-each29.7.0indirecta
npmjest-environment-jsdom29.7.0indirecta
npmjest-environment-node29.7.0indirecta
npmjest-expo56.0.4indirecta
npmjest-get-type29.6.3indirecta
npmjest-haste-map29.7.0indirecta
npmjest-leak-detector29.7.0indirecta
npmjest-matcher-utils29.7.0indirecta
npmjest-matcher-utils30.4.1indirecta
npmjest-message-util29.7.0indirecta
npmjest-mock29.7.0indirecta
npmjest-pnp-resolver1.2.3indirecta
npmjest-regex-util29.6.3indirecta
npmjest-resolve29.7.0indirecta
npmjest-resolve-dependencies29.7.0indirecta
npmjest-runner29.7.0indirecta
npmjest-runtime29.7.0indirecta
npmjest-snapshot29.7.0indirecta
npmjest-snapshot-prettier2.8.8indirecta
npmjest-util29.7.0indirecta
npmjest-validate29.7.0indirecta
npmjest-watch-select-projects2.0.0indirecta
npmjest-watch-typeahead2.2.1indirecta
npmjest-watcher29.7.0indirecta
npmjest-worker29.7.0indirecta
npmjimp-compact0.16.1indirecta
npmjs-tokens4.0.0indirecta
npmjs-yaml3.14.2indirecta
npmjs-yaml4.2.0indirecta
npmjsc-safe-url0.2.4indirecta
npmjsdom20.0.3indirecta
npmjsesc3.1.0indirecta
npmjson-buffer3.0.1indirecta
npmjson-parse-even-better-errors2.3.1indirecta
npmjson-schema-traverse0.4.1indirecta
npmjson-stable-stringify-without-jsonify1.0.1indirecta
npmjson51.0.2indirecta
npmjson52.2.3indirecta
npmjsx-ast-utils3.3.5indirecta
npmkeyv4.5.4indirecta
npmkleur3.0.3indirecta
npmlan-network0.2.1indirecta
npmleven3.1.0indirecta
npmlevn0.4.1indirecta
npmlighthouse-logger1.4.2indirecta
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
npmlocate-path3.0.0indirecta
npmlocate-path5.0.0indirecta
npmlocate-path6.0.0indirecta
npmlodash4.18.1indirecta
npmlodash.debounce4.0.8indirecta
npmlodash.memoize4.1.2indirecta
npmlodash.merge4.6.2indirecta
npmlodash.throttle4.1.1indirecta
npmlog-symbols2.2.0indirecta
npmloose-envify1.4.0indirecta
npmlru-cache10.4.3indirecta
npmlru-cache11.5.1indirecta
npmlru-cache5.1.1indirecta
npmmake-dir2.1.0indirecta
npmmake-dir4.0.0indirecta
npmmake-error1.3.6indirecta
npmmakeerror1.0.12indirecta
npmmarky1.3.0indirecta
npmmath-intrinsics1.1.0indirecta
npmmemoize-one5.2.1indirecta
npmmerge-options3.0.4indirecta
npmmerge-stream2.0.0indirecta
npmmetro0.84.4indirecta
npmmetro-babel-transformer0.84.4indirecta
npmmetro-cache0.84.4indirecta
npmmetro-cache-key0.84.4indirecta
npmmetro-config0.84.4indirecta
npmmetro-core0.84.4indirecta
npmmetro-file-map0.84.4indirecta
npmmetro-minify-terser0.84.4indirecta
npmmetro-resolver0.84.4indirecta
npmmetro-runtime0.84.4indirecta
npmmetro-source-map0.84.4indirecta
npmmetro-symbolicate0.84.4indirecta
npmmetro-transform-plugins0.84.4indirecta
npmmetro-transform-worker0.84.4indirecta
npmmicromatch4.0.8indirecta
npmmime1.6.0indirecta
npmmime-db1.52.0indirecta
npmmime-db1.54.0indirecta
npmmime-types2.1.35indirecta
npmmime-types3.0.2indirecta
npmmimic-fn1.2.0indirecta
npmmimic-fn2.1.0indirecta
npmmin-indent1.0.1indirecta
npmminimatch10.2.5indirecta
npmminimatch3.1.5indirecta
npmminimatch8.0.7indirecta
npmminimist1.2.8indirecta
npmminipass4.2.8indirecta
npmminipass7.1.3indirecta
npmmkdirp1.0.4indirecta
npmms2.0.0indirecta
npmms2.1.3indirecta
npmmultitars1.0.0indirecta
npmnanoid3.3.15indirecta
npmnatural-compare1.4.0indirecta
npmnegotiator0.6.3indirecta
npmnegotiator0.6.4indirecta
npmnegotiator1.0.0indirecta
npmneo-async2.6.2indirecta
npmnode-exports-info1.6.0indirecta
npmnode-forge1.4.0indirecta
npmnode-int640.4.0indirecta
npmnode-releases2.0.47indirecta
npmnode-releases2.0.48indirecta
npmnormalize-path3.0.0indirecta
npmnpm-package-arg11.0.3indirecta
npmnpm-run-path4.0.1indirecta
npmnullthrows1.1.1indirecta
npmnwsapi2.2.24indirecta
npmob10.84.4indirecta
npmobject-assign4.1.1indirecta
npmobject-inspect1.13.4indirecta
npmobject-keys1.1.1indirecta
npmobject.assign4.1.7indirecta
npmobject.entries1.1.9indirecta
npmobject.fromentries2.0.8indirecta
npmobject.groupby1.0.3indirecta
npmobject.values1.2.1indirecta
npmon-finished2.3.0indirecta
npmon-finished2.4.1indirecta
npmon-headers1.1.0indirecta
npmonce1.4.0indirecta
npmonetime2.0.1indirecta
npmonetime5.1.2indirecta
npmopen7.4.2indirecta
npmoptionator0.9.4indirecta
npmora3.4.0indirecta
npmown-keys1.0.1indirecta
npmp-limit2.3.0indirecta
npmp-limit3.1.0indirecta
npmp-locate3.0.0indirecta
npmp-locate4.1.0indirecta
npmp-locate5.0.0indirecta
npmp-try2.2.0indirecta
npmparent-module1.0.1indirecta
npmparse-json5.2.0indirecta
npmparse-png2.1.0indirecta
npmparse57.3.0indirecta
npmparseurl1.3.3indirecta
npmpath-exists3.0.0indirecta
npmpath-exists4.0.0indirecta
npmpath-is-absolute1.0.1indirecta
npmpath-key3.1.1indirecta
npmpath-parse1.0.7indirecta
npmpath-scurry1.11.1indirecta
npmpath-scurry2.0.2indirecta
npmpicocolors1.1.1indirecta
npmpicomatch2.3.2indirecta
npmpicomatch4.0.4indirecta
npmpify4.0.1indirecta
npmpirates4.0.7indirecta
npmpkg-dir4.2.0indirecta
npmpkg-up3.1.0indirecta
npmplist3.1.1indirecta
npmpngjs3.4.0indirecta
npmpossible-typed-array-names1.1.0indirecta
npmpostcss8.5.15indirecta
npmprelude-ls1.2.1indirecta
npmprettier3.8.4indirecta
npmprettier-linter-helpers1.0.1indirecta
npmpretty-format29.7.0indirecta
npmpretty-format30.4.1indirecta
npmproc-log4.2.0indirecta
npmprogress2.0.3indirecta
npmpromise8.3.0indirecta
npmprompts2.4.2indirecta
npmprop-types15.8.1indirecta
npmpsl1.15.0indirecta
npmpunycode2.3.1indirecta
npmpure-rand6.1.0indirecta
npmquery-string7.1.3indirecta
npmquerystringify2.2.0indirecta
npmqueue6.0.2indirecta
npmrange-parser1.2.1indirecta
npmreact19.2.3indirecta
npmreact-devtools-core6.1.5indirecta
npmreact-fast-compare3.2.2indirecta
npmreact-freeze1.0.4indirecta
npmreact-is16.13.1indirecta
npmreact-is18.3.1indirecta
npmreact-is19.2.7indirecta
npmreact-is-1818.3.1indirecta
npmreact-is-1919.2.7indirecta
npmreact-native0.85.3indirecta
npmreact-native-drawer-layout4.2.5indirecta
npmreact-native-gesture-handler2.31.2indirecta
npmreact-native-safe-area-context5.7.0indirecta
npmreact-native-screens4.25.2indirecta
npmreact-refresh0.14.2indirecta
npmreact-remove-scroll2.7.2indirecta
npmreact-remove-scroll-bar2.3.8indirecta
npmreact-style-singleton2.2.3indirecta
npmreact-test-renderer19.2.3indirecta
npmreaddirp3.6.0indirecta
npmredent3.0.0indirecta
npmreflect.getprototypeof1.0.10indirecta
npmregenerate1.4.2indirecta
npmregenerate-unicode-properties10.2.2indirecta
npmregenerator-runtime0.13.11indirecta
npmregexp.prototype.flags1.5.4indirecta
npmregexpp3.2.0indirecta
npmregexpu-core6.4.0indirecta
npmregjsgen0.8.0indirecta
npmregjsparser0.13.1indirecta
npmregjsparser0.13.2indirecta
npmrequire-directory2.1.1indirecta
npmrequires-port1.0.0indirecta
npmreselect4.1.8indirecta
npmresolve1.22.12indirecta
npmresolve2.0.0-next.7indirecta
npmresolve-cwd3.0.0indirecta
npmresolve-from4.0.0indirecta
npmresolve-from5.0.0indirecta
npmresolve-pkg-maps1.0.0indirecta
npmresolve-workspace-root2.0.1indirecta
npmresolve.exports2.0.3indirecta
npmrestore-cursor2.0.0indirecta
npmsafe-array-concat1.1.4indirecta
npmsafe-buffer5.2.1indirecta
npmsafe-push-apply1.0.0indirecta
npmsafe-regex-test1.1.0indirecta
npmsafer-buffer2.1.2indirecta
npmsax1.6.0indirecta
npmsaxes6.0.0indirecta
npmscheduler0.27.0indirecta
npmsemver5.7.2indirecta
npmsemver6.3.1indirecta
npmsemver7.8.3indirecta
npmsemver7.8.5indirecta
npmsend0.19.2indirecta
npmserialize-error2.1.0indirecta
npmserve-static1.16.3indirecta
npmserver-only0.0.1indirecta
npmset-function-length1.2.2indirecta
npmset-function-name2.0.2indirecta
npmset-proto1.0.0indirecta
npmsetprototypeof1.2.0indirecta
npmsf-symbols-typescript2.2.0indirecta
npmshallowequal1.1.0indirecta
npmshebang-command2.0.0indirecta
npmshebang-regex3.0.0indirecta
npmshell-quote1.8.4indirecta
npmside-channel1.1.1indirecta
npmside-channel-list1.0.1indirecta
npmside-channel-map1.0.1indirecta
npmside-channel-weakmap1.0.2indirecta
npmsignal-exit3.0.7indirecta
npmsimple-plist1.3.1indirecta
npmsimple-swizzle0.2.4indirecta
npmsisteransi1.0.5indirecta
npmslash2.0.0indirecta
npmslash3.0.0indirecta
npmslash5.1.0indirecta
npmslugify1.6.9indirecta
npmsource-map0.5.6indirecta
npmsource-map0.5.7indirecta
npmsource-map0.6.1indirecta
npmsource-map-js1.2.1indirecta
npmsource-map-support0.5.13indirecta
npmsource-map-support0.5.21indirecta
npmsplit-on-first1.1.0indirecta
npmsprintf-js1.0.3indirecta
npmstack-generator2.0.10indirecta
npmstack-utils2.0.6indirecta
npmstackframe1.3.4indirecta
npmstacktrace-gps3.1.2indirecta
npmstacktrace-js2.0.2indirecta
npmstacktrace-parser0.1.11indirecta
npmstandard-navigation0.0.5indirecta
npmstatuses1.5.0indirecta
npmstatuses2.0.2indirecta
npmstop-iteration-iterator1.1.0indirecta
npmstream-buffers2.2.0indirecta
npmstrict-uri-encode2.0.0indirecta
npmstring-length4.0.2indirecta
npmstring-length5.0.1indirecta
npmstring-width4.2.3indirecta
npmstring.prototype.matchall4.0.12indirecta
npmstring.prototype.repeat1.0.0indirecta
npmstring.prototype.trim1.2.11indirecta
npmstring.prototype.trimend1.0.10indirecta
npmstring.prototype.trimstart1.0.8indirecta
npmstrip-ansi5.2.0indirecta
npmstrip-ansi6.0.1indirecta
npmstrip-ansi7.2.0indirecta
npmstrip-bom3.0.0indirecta
npmstrip-bom4.0.0indirecta
npmstrip-final-newline2.0.0indirecta
npmstrip-indent3.0.0indirecta
npmstrip-json-comments3.1.1indirecta
npmstructured-headers0.4.1indirecta
npmsupports-color5.5.0indirecta
npmsupports-color7.2.0indirecta
npmsupports-color8.1.1indirecta
npmsupports-hyperlinks2.3.0indirecta
npmsupports-preserve-symlinks-flag1.0.0indirecta
npmsymbol-tree3.2.4indirecta
npmsynckit0.11.13indirecta
npmtapable2.3.3indirecta
npmterminal-link2.1.1indirecta
npmterser5.48.0indirecta
npmtest-exclude6.0.0indirecta
npmthroat5.0.0indirecta
npmtinyglobby0.2.17indirecta
npmtmpl1.0.5indirecta
npmto-regex-range5.0.1indirecta
npmtoidentifier1.0.1indirecta
npmtoqr0.1.1indirecta
npmtough-cookie4.1.4indirecta
npmtr463.0.0indirecta
npmts-api-utils2.5.0indirecta
npmts-declaration-location1.0.7indirecta
npmts-jest29.4.11indirecta
npmtsconfig-paths3.15.0indirecta
npmtslib2.8.1indirecta
npmtype-check0.4.0indirecta
npmtype-detect4.0.8indirecta
npmtype-fest0.21.3indirecta
npmtype-fest0.7.1indirecta
npmtype-fest4.41.0indirecta
npmtyped-array-buffer1.0.3indirecta
npmtyped-array-byte-length1.0.3indirecta
npmtyped-array-byte-offset1.0.4indirecta
npmtyped-array-length1.0.8indirecta
npmtypescript5.9.3indirecta
npmtypescript6.0.3indirecta
npmuglify-js3.19.3indirecta
npmunbox-primitive1.1.0indirecta
npmundici-types7.24.6indirecta
npmundici-types8.3.0indirecta
npmunicode-canonical-property-names-ecmascript2.0.1indirecta
npmunicode-match-property-ecmascript2.0.0indirecta
npmunicode-match-property-value-ecmascript2.2.1indirecta
npmunicode-property-aliases-ecmascript2.2.0indirecta
npmuniversalify0.2.0indirecta
npmunpipe1.0.0indirecta
npmupdate-browserslist-db1.2.3indirecta
npmuri-js4.4.1indirecta
npmurl-parse1.5.10indirecta
npmuse-callback-ref1.3.3indirecta
npmuse-latest-callback0.2.6indirecta
npmuse-sidecar1.1.3indirecta
npmutils-merge1.0.1indirecta
npmuuid7.0.3indirecta
npmv8-to-istanbul9.3.0indirecta
npmvalidate-npm-package-name5.0.1indirecta
npmvary1.1.2indirecta
npmvaul1.1.2indirecta
npmvlq1.0.1indirecta
npmw3c-xmlserializer4.0.0indirecta
npmwalker1.0.8indirecta
npmwarn-once0.1.1indirecta
npmwcwidth1.0.1indirecta
npmwebidl-conversions7.0.0indirecta
npmwhatwg-encoding2.0.0indirecta
npmwhatwg-fetch3.6.20indirecta
npmwhatwg-mimetype3.0.0indirecta
npmwhatwg-url11.0.0indirecta
npmwhatwg-url-minimum0.1.2indirecta
npmwhich2.0.2indirecta
npmwhich-boxed-primitive1.1.1indirecta
npmwhich-builtin-type1.2.1indirecta
npmwhich-collection1.0.2indirecta
npmwhich-typed-array1.1.22indirecta
npmword-wrap1.2.5indirecta
npmwordwrap1.0.0indirecta
npmwrap-ansi7.0.0indirecta
npmwrappy1.0.2indirecta
npmwrite-file-atomic4.0.2indirecta
npmws7.5.11indirecta
npmws8.21.0indirecta
npmxcode3.0.1indirecta
npmxml-name-validator4.0.0indirecta
npmxml2js0.6.0indirecta
npmxmlbuilder11.0.1indirecta
npmxmlbuilder15.1.1indirecta
npmxmlchars2.2.0indirecta
npmy18n5.0.8indirecta
npmyallist3.1.1indirecta
npmyaml2.9.0indirecta
npmyargs17.7.2indirecta
npmyargs17.7.3indirecta
npmyargs-parser21.1.1indirecta
npmyocto-queue0.1.0indirecta
npmzod3.25.76indirecta
npmzod4.4.3indirecta
npmzod-validation-error4.0.2indirecta
Avisos de dependencias 9

Este repositorio no publica ningún paquete que el índice resuelva, así que se evaluó su propio grafo de dependencias — 1062 paquetes, que incluyen también fijaciones de desarrollo y prueba que nunca se distribuyen: 9 tienen avisos conocidos, de los cuales 0 son directas.

PaqueteVersiónRelaciónGravedadAvisosCorregido en
brace-expansion1.1.15indirectaalta25.0.8
brace-expansion2.1.1indirectaalta25.0.8
brace-expansion5.0.6indirectaalta25.0.8
form-data4.0.5indirectaalta14.0.6
js-yaml3.14.2indirectaalta24.3.0
js-yaml4.2.0indirectaalta14.3.0
postcss8.5.15indirectaalta18.5.18
shell-quote1.8.4indirectaalta11.9.0
uuid7.0.3indirectaalta113.0.1

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": [],
      "is_fork": false,
      "size_kb": 10882,
      "has_wiki": false,
      "homepage": null,
      "languages": {
        "C": 102,
        "Ruby": 4978,
        "Shell": 1618,
        "Swift": 89956,
        "Kotlin": 67273,
        "JavaScript": 2717,
        "TypeScript": 129627
      },
      "pushed_at": "2026-07-22T16:52:09Z",
      "created_at": "2023-12-08T16:27:15Z",
      "owner_type": "User",
      "updated_at": "2026-07-27T21:35:33Z",
      "description": "Expo Module for native Spotify SDKs",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript",
        "Swift",
        "Kotlin"
      ]
    },
    "owner": {
      "blog": null,
      "name": "Drew Miller",
      "type": "User",
      "login": "wwdrew",
      "company": null,
      "location": "Berkhamsted, UK",
      "followers": 17,
      "avatar_url": "https://avatars.githubusercontent.com/u/49833875?v=4",
      "created_at": "2019-04-21T10:45:55Z",
      "is_verified": null,
      "public_repos": 51,
      "account_age_days": 2658
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "expo-spotify-sdk-v2.3.2",
          "kind": "other",
          "published_at": "2026-07-22T16:52:10Z"
        },
        {
          "tag": "expo-spotify-sdk-v2.3.1",
          "kind": "other",
          "published_at": "2026-07-07T10:25:40Z"
        },
        {
          "tag": "expo-spotify-sdk-v2.3.0",
          "kind": "other",
          "published_at": "2026-06-29T10:21:18Z"
        },
        {
          "tag": "expo-spotify-sdk-v2.2.3",
          "kind": "other",
          "published_at": "2026-06-23T15:03:40Z"
        },
        {
          "tag": "expo-spotify-sdk-v2.2.2",
          "kind": "other",
          "published_at": "2026-06-09T12:42:10Z"
        },
        {
          "tag": "expo-spotify-sdk-v2.2.1",
          "kind": "other",
          "published_at": "2026-06-08T17:22:32Z"
        },
        {
          "tag": "expo-spotify-sdk-v2.2.0",
          "kind": "other",
          "published_at": "2026-06-06T18:58:28Z"
        },
        {
          "tag": "expo-spotify-sdk-v2.1.0",
          "kind": "other",
          "published_at": "2026-06-03T21:05:23Z"
        },
        {
          "tag": "expo-spotify-sdk-v2.0.0",
          "kind": "other",
          "published_at": "2026-05-29T16:24:13Z"
        },
        {
          "tag": "expo-spotify-sdk-v1.0.0",
          "kind": "other",
          "published_at": "2026-05-28T22:29:20Z"
        },
        {
          "tag": "expo-spotify-sdk-v0.8.0",
          "kind": "other",
          "published_at": "2026-05-07T15:26:10Z"
        },
        {
          "tag": "expo-spotify-sdk-v0.7.1",
          "kind": "other",
          "published_at": "2026-04-30T11:21:02Z"
        },
        {
          "tag": "expo-spotify-sdk-v0.7.0",
          "kind": "other",
          "published_at": "2026-04-29T17:26:10Z"
        },
        {
          "tag": "expo-spotify-sdk-v0.6.0",
          "kind": "other",
          "published_at": "2026-04-29T11:45:25Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "001f53ea9e05532755943742b3db8d883dfe08eb",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(main): release expo-spotify-sdk 2.3.2 (#75)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-22T16:51:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3fdf1a6f328f77392e7b6c6ab1d7b7e284684c84",
          "body": "Also document Auth.isAvailable() platform semantics and refresh stale release-lane wording in CONTEXT.md.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "chore(ci): run Android auth availability unit tests in CI (#76)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-07-22T16:49:31Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f4f4b4f8c44972f2bccd7b7491d54e65fb13b7af",
          "body": "* fix(android): guard Spotify browser auth when no handler exists\n\nAdd https/http manifest queries and a preflight availability check so\nAuth.authenticate rejects with SPOTIFY_NOT_INSTALLED instead of crashing\ninside the Spotify SDK LoginActivity browser fallback.\n\nCo-authored-by: Cursor <cursoragen\n[…]\ns Android-only, and show iOS-appropriate unavailable messaging in docs and the example app.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>\n\n---------\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "fix(android): guard Spotify browser auth when no handler exists (#74)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-07-22T16:12:19Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "448c21da0325d263a61fa1aabb7b13d2c3a08afa",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(main): release expo-spotify-sdk 2.3.1 (#73)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-07T10:25:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6e7654c440ce5d722c6e89488315a49d2dbefbb1",
          "body": "* fix(ios): avoid SIGABRT when NSError description key is non-string\n\nSpotify's SDK can deliver NSError userInfo values that are not strings;\nreading localizedDescription force-bridges them and aborts the process.\nRoute all diagnostic reads through safeLocalizedDescription instead.\n\nCo-authored-by: \n[…]\nhe NSError extension and read\nsafeLocalizedDescription once per App Remote mapper function.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>\n\n---------\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "fix(ios): avoid SIGABRT when NSError description key is non-string (#72)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-07-07T10:22:45Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6f04b0755648cf34161d3195464acf72c36f8354",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(main): release expo-spotify-sdk 2.3.0 (#70)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-29T10:21:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cebefd3becb9264756d53c2116df687d7bf026e6",
          "body": "The fixture listed REFRESH_TOKEN_EXPIRED (and other directly-thrown\ncodes) in `codes` with no classifier rule, and the tests only checked\nthe forward direction (rules -> documented code). Add an explicit\n`passthroughCodes` allowlist for codes raised by dedicated paths rather\nthan the classifier, and assert the inverse: every documented code is\neither covered by a rule or marked pass-through, keeping the fixture\nauthoritative.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "test(auth): assert every documented code is rule-covered or pass-through",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-06-29T10:17:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b4dfae02b5a6eac453663a5cf9f9d0940d830b7a",
          "body": "The RefreshTokenExpiredException remap used a loose raw-body substring\ncheck for \"invalid_grant\", which could misfire on unrelated payloads.\nParse the JSON body and check the OAuth `error` field (RFC 6749 5.2),\ngated on HTTP 400, while keeping the refresh-only scope via\ninvalidGrantIsExpiredToken.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "fix(android): match structured invalid_grant field on refresh 400",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-06-29T10:17:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "35680767bbde279d7720958aace572c128e908f4",
          "body": "describeError dumped the full userInfo dictionary into the detail string\nthat is both NSLog'd and embedded in JS-visible SpotifyError messages,\nrisking leakage of tokens, auth codes, or raw bodies. Emit a keys-only\nform (userInfoKeys=[...]) for everything that leaves the process while\nkeeping the unredacted detail for the in-process classification\nheuristics, so classification behaviour is unchanged.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "fix(ios): redact NSError userInfo values from logs and JS errors",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-06-29T10:17:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "bd73914bf299e50e30267367ee6ea0b9ac4394c7",
          "body": "…h tokens\n\nSpotify returns `invalid_grant` when a refresh token has expired or been revoked\n(and, from 2026-07-20, expires them six months after issue). Both the iOS\n(SpotifyTokenRefreshClient) and Android (SpotifyTokenSwapClient) refresh paths\nnow detect `invalid_grant` in the error body and reject\n[…]\nre\nand tests, and documents the code and re-auth pattern across the README,\nerror-codes, auth-error-mapping, token-swap-server, and api-reference docs.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "feat(auth): add REFRESH_TOKEN_EXPIRED code for expired/revoked refres…",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-06-29T10:17:46Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c6133cf0fec16650a58aca1cb5485ebbc406b45a",
          "body": "…nt handling\n\nFrom 2026-07-20 Spotify expires refresh tokens six months after issue. Document\nthe re-authentication pattern (discard the token and re-run Auth.authenticate(),\nnever retry the refresh) in the README, the server-side requirement to forward\nSpotify's `400 invalid_grant` verbatim in the token-swap-server guide, and the\ninvalid_grant case on the TOKEN_SWAP_FAILED error code.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "docs: document Spotify refresh-token six-month expiry and invalid_gra…",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-06-29T10:17:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "16ca8a183243cad7d7e760f5194a1a5403d8bd3a",
          "body": "Collapse the two divergent auth-error classifiers (the delegate's mapSDKError\nand the module catch-all's mapRawAuthError) plus three duplicated NSError\nchain-walks into a single SpotifyAuthErrorMapping.classify entry point, so a\nraw error maps to the same code regardless of which path delivers it. S\n[…]\nt across\nthe async-rejection bridge. Document the pre-57 UNKNOWN behaviour and the\noptional patch-package workaround in the README and auth error docs.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "refactor(ios): unify auth error classification into one canonical mapper",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-06-29T10:17:46Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0fac47ba3b4ed0a0737f8f885b9ed281af391c05",
          "body": "The Spotify iOS SDK does not always route a user-cancelled web auth through the\nsession-manager delegate, so the cancellation can reach authenticateAsync's\ntop-level catch as a raw NSError. The module only caught SpotifyError, so such\ncancellations escaped to JS as a generic UNKNOWN failure and trig\n[…]\nors via a new mapRawAuthError, and extract\nisKnownCancellationCode to a file-scope function so the delegate path and the\nraw path share a single source of truth for the cancellation domain/code rules.",
          "is_bot": false,
          "headline": "fix(ios): map cancellation NSErrors that bypass the session delegate",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-06-29T10:17:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8670b62d9aed13e5b62bd18006f2c9ee7c31c104",
          "body": "The Spotify iOS login SDK surfaces a user-cancelled web auth under its own\n`com.spotify.sdk.login` domain with code 1. This was not recognised by\nisKnownCancellationCode, and the domain contains \"spotify\" but not \"auth\" so it\nalso slipped past the fuzzy message matching, leaving cancellations classified\nas UNKNOWN and surfacing a spurious sign-in failure to callers.\n\nRecognise the domain/code explicitly so it maps to USER_CANCELLED.",
          "is_bot": false,
          "headline": "fix(ios): classify com.spotify.sdk.login code 1 as user cancellation",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-06-29T10:17:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "58763566c10eaa8ff0bbac9a9e336ee104b7ff75",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(main): release expo-spotify-sdk 2.2.3 (#68)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-23T15:03:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9322972cd999b7de78853d7efd27754beb801096",
          "body": "* fix(auth): improve native error mapping and document iOS/Android parity\n\nMap auth failures to structured codes on iOS (network, token swap, OAuth)\nand wrap unexpected Android throwables so JS receives consistent AuthError\nevents instead of opaque UNKNOWN rejections.\n\nCo-authored-by: Cursor <cursor\n[…]\nng OAuth auth\nrejections as TOKEN_SWAP_FAILED/TOKEN_SWAP_PARSE_ERROR instead of AUTH_ERROR.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>\n\n---------\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "fix: improve auth error mapping (#67)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-06-23T15:01:11Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e5502cd5028dd0a2d01fc7b10a8ac7bb05dead0d",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(main): release expo-spotify-sdk 2.2.2 (#66)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-09T12:41:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d2ec75e0d446757438eefb5db1e195a4b6e84ba1",
          "body": "* fix(ios): fetch SpotifyiOS via CocoaPods binary pod at pod install\n\nReplace SPM with an HTTP binary podspec and config-plugin Podfile injection so\nstatic-framework Expo apps can resolve SpotifyiOS without bundling it in npm.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>\n\n* chore(example): sync \n[…]\ne, Podfile.lock, and yarn locks after validating the\nCocoaPods binary pod approach locally.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>\n\n---------\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "fix(ios): fetch SpotifyiOS via CocoaPods binary pod at pod install (#64)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-06-09T12:40:25Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "10d95338e9b572f4a497010e261067836e1d4b6c",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(main): release expo-spotify-sdk 2.2.1 (#60)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-08T17:22:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cfa5d725a8284968fbf1ffe7b2445746e6071a79",
          "body": "…ch (#61)\n\nRely on Ant get defaults so slow networks are not cut off by fixed 30s/60s limits.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "fix(android): drop explicit Ant download timeouts for Spotify AAR fet…",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-06-08T17:21:08Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a51ef04aeb96bf33d85e7b01a6d6f7d2d9eaef90",
          "body": "Follow-up to #54 — deduplicate connect/authorizeAndPlay bootstrap, replace\npendingAuthorizeRemote with a unified connectionAttempt model, and move\nlifecycle code into dedicated files without changing public API behavior.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "refactor(ios): extract App Remote connection lifecycle (#59)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-06-06T19:09:21Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a2ea3219686420f4ac1bc4c6b7f238dfeaea39b6",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(main): release expo-spotify-sdk 2.2.0 (#57)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-06T18:58:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c284f99c83412dae90e6582ae0ee0156bf963502",
          "body": "…ing in npm (#58)\n\n* refactor(native): resolve Spotify SDKs at build time instead of bundling in npm\n\niOS pulls SpotifyiOS via spm_dependency at pod install; Android downloads\nthe App Remote AAR from GitHub in a Gradle preBuild task. Removes vendored\nbinaries, fetch/verify scripts, and native artifa\n[…]\ngestion to prefer the async wrapper over the\ncompletion-handler API; behavior is unchanged.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>\n\n---------\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "refactor(native): resolve Spotify SDKs at build time instead of bundl…",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-06-06T18:56:13Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "bb4e23f4ac390203357a5285c73121c4cd6b9126",
          "body": "…Spotify (#54)\n\n* feat(app-remote): add AppRemote.authorizeAndPlay to wake a suspended Spotify\n\n`AppRemote.connect()` only attaches to an already-running Spotify process.\nWhen Spotify has been suspended in the background (iOS reclaims a backgrounded\napp that isn't playing audio, or the App Remote co\n[…]\nhe previous `let launched = ...; if !launched` failed to compile\n(cannot convert Void to Bool). Use the completion handler: success=false\nmeans Spotify couldn't be opened, so fail the connection then.",
          "is_bot": false,
          "headline": "feat(app-remote): add AppRemote.authorizeAndPlay to wake a suspended …",
          "author_name": "Johan Ekorn",
          "author_login": "johra",
          "committed_at": "2026-06-05T12:51:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3efec1521524063b1eb78367c1f721c8ce0168c4",
          "body": "* fix(release): bundle Spotify native SDKs in npm via prepublish fetch\n\nPublished packages were missing the Android App Remote AAR because it was\ngitignored and never present in the CI checkout. Fetch pinned iOS and\nAndroid binaries before npm pack, verify the tarball includes both, and\ndocument the\n[…]\nksum, sync Android AAR paths from the fetch script, and\nshow npm pack output during verify.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>\n\n---------\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "fix(release): bundle Spotify native SDKs in npm (#55)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-06-05T12:39:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "601ac599762e0c99966bceabf5aa3e8ebd9713a3",
          "body": "Run release-please on main and v1 with per-branch target-branch scoping,\npublish 1.x to npm dist-tag sdk55 so latest stays on 2.x, and document\nthe dual-lane release flow.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "ci: enable Release Please and sdk55 publishes on v1 lane (#56)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-06-05T12:37:25Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "70d7ee6ad6eb01c3cf88624313562c2ead567d44",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(main): release expo-spotify-sdk 2.1.0 (#50)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-03T21:05:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "903b9e00ef0afd88385240d256c4e2d0b713a2af",
          "body": "* refactor(ios): split SpotifyAppRemoteCoordinator into focused modules\n\nExtract error types, SPT error mapping, and JS bridge mappers so the coordinator stays connection/API-only and stays under the 1k-line threshold as App Remote grows.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>\n\n* refactor(\n[…]\nand Basic auth construction, and document lane-specific payload differences for 1.x vs 2.x.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>\n\n---------\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "docs: SDK lane model + maintainability refactors (recreated) (#51)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-06-03T21:04:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "88c37600f0fe00f1308274a31d24de0bc64d3dc1",
          "body": "* feat: normalize Android token endpoint payloads and clarify backend contract\n\nAlign Android token swap/refresh request bodies with iOS by sending only the auth artifact fields, and expand docs/examples to define the server-owned Spotify exchange contract including redirect URI matching and Basic a\n[…]\nix example paths\n\n* improve readme and remove redundant manifest read\n\n---------\n\nCo-authored-by: Drew Miller <49833875+wwdrew@users.noreply.github.com>\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "feat: GH-46 improve tokenSwap endpoint contract clarity (#49)",
          "author_name": "Drew Miller",
          "author_login": "skdrew",
          "committed_at": "2026-06-03T20:40:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "657b0673363d51e9cd0b39902ff329b6919a77d3",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(main): release expo-spotify-sdk 2.0.0 (#42)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-05-29T16:23:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd3002764c0a36684595474b58becbd8e7196b14",
          "body": "Rewrite RELEASE and QA checklists for the two-branch model, update\nCONTRIBUTING/CONTEXT/V1_PLAN/ADRs, and align README install guidance\nnow that v1 is cut from expo-spotify-sdk-v1.0.0.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "docs: document main as SDK 56 (2.x) and v1 as SDK 55 (1.x) (#44)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-29T16:22:52Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3419df79871b5df32cf6bec23af20d68f833148a",
          "body": "expo-module-scripts ships extensionless subcommand bins as 644 in the npm\ntarball; Commander requires +x on Linux, so `prepare` failed in CI. Call\ntsc, eslint, and jest directly, remove the noop prepare script, drop the\nstale root package-lock.json, and build plugin/ in prepublishOnly.\n\nRefs expo/expo#46404\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "fix(ci): bypass expo-module CLI after install EACCES (#43)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-29T16:08:56Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6c191e60d7b97f8cc7c08575bd326d34c7065621",
          "body": "Refresh iOS and Android prebuild output and yarn.lock so the example\nbuilds on current Expo tooling. Document Xcode 26.4+ in CONTRIBUTING.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "chore(example): regenerate native projects for Expo SDK 56",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-29T11:54:39Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "76eb1f8dd05cb069a3b4e9a5284a5937f0bf93e1",
          "body": "The manifest must track the last shipped version, not the next one.\npackage.json stays at 2.0.0 so release-please can open the 2.0.0 release PR.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "chore: reset release-please manifest to last released version (1.0.0)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-29T11:15:20Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7369fd279debd9a3a00b974d5bb6a5f039cebed5",
          "body": "Migrate main to the Expo SDK 56 lane (iOS 16.4+, expo-modules-core 56) and bump\npackage versioning to 2.0.0. Add a typed config plugin helper at\n@wwdrew/expo-spotify-sdk/plugin while keeping string/tuple plugin usage working,\nand upgrade the example app to Expo SDK 56.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "feat!: Expo SDK 56 lane + typed config plugin (v2.0.0)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-29T10:24:20Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e503ac386823c7a25c6ff06f52b9befeda908b2b",
          "body": "Sync .release-please-manifest.json and package-lock.json with package.json\nso release automation publishes 1.0.0 instead of 0.9.0.\n\nRelease-As: 1.0.0\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "chore: align release-please manifest and lockfile to 1.0.0",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-28T22:28:00Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "71e124583885406f23ff679d174000369f668637",
          "body": "* fix(ios): align App Remote bridge with Spotify SDK Swift imports\n\nUpdate native coordinators to use current SpotifyiOS Swift API names and resolve Swift 6 actor-isolation errors that blocked the example iOS build.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>\n\n* fix(example): stabilize spotify \n[…]\nanes, polish the example with capability-gated library save and structured errors, and bump version to 1.0.0 with QA and release checklists.\n\n---------\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "fix: ios spotify sdk swift imports (#40)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-28T22:06:55Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c921d3572bcbc555b8480a1993705e82520863c8",
          "body": "* feat(example): polish app-remote demo and release docs\n\n* GitButler Workspace Commit\n\nThis is placeholder commit and will be replaced by a merge of your virtual branches.\n\nDue to GitButler managing multiple virtual branches, you cannot switch back and\nforth between git branches and virtual branche\n[…]\nsh asset metadata\n\n---------\n\nCo-authored-by: Drew Miller <49833875+wwdrew@users.noreply.github.com>\nCo-authored-by: GitButler <gitbutler@gitbutler.com>\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "feat: polish app remote demo (#39)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-28T13:22:05Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3e78d7746c1fb1bc131e904600f1e95f05982c69",
          "body": "…(#38)\n\nCo-authored-by: Drew Miller <49833875+wwdrew@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(content-images): add Phase 5 content browsing and image loading …",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-27T16:45:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "41515d1f57b763cfc5a6770d222ec9842d750982",
          "body": "Co-authored-by: Drew Miller <49833875+wwdrew@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(hooks): restore missing Phase 4 hook exports (#37)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-27T16:33:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "99bfa8e5e32679bbf8aa9431f958ff9f7ef0f093",
          "body": "* GitButler Workspace Commit\n\nThis is placeholder commit and will be replaced by a merge of your virtual branches.\n\nDue to GitButler managing multiple virtual branches, you cannot switch back and\nforth between git branches and virtual branches easily. \n\nIf you switch to another branch, GitButler wil\n[…]\nagent@cursor.com>\n\n---------\n\nCo-authored-by: GitButler <gitbutler@gitbutler.com>\nCo-authored-by: Drew Miller <49833875+wwdrew@users.noreply.github.com>\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "feat/phase-4-user-capabilities (#36)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-27T16:12:42Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "11a9218744304a2e807fc22946023ba9254bd342",
          "body": "…state) (#35)\n\niOS:\n- SpotifyAppRemoteCoordinator actor: creates SPTAppRemote per-connect call\n  with the caller's access token in SPTAppRemoteConnectionParams; delegate\n  bridge (NSObject) hops callbacks onto the actor via Task{}\n- AppRemoteError enum + AppRemoteException (same pattern as SpotifyAu\n[…]\nlStore; module-level stores seeded from native state on init\n- src/index.ts: export hooks, ConnectionState + related event types\n\nCo-authored-by: Drew Miller <49833875+wwdrew@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(app-remote): Phase 2 — connection lifecycle (connect/disconnect/…",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-27T16:11:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dcc6f40ee4954afb33c75f685a4cb42c22a15205",
          "body": "…(#34)\n\n- Abstract SpotifyError base class in src/error.ts (carries `code` +\n  `namespace`; never thrown directly)\n- Six concrete error subclasses: AuthError, AppRemoteError, PlayerError,\n  UserError, ContentError, ImagesError — each with a typed error-code union\n- Branded SpotifyURI type (src/uri/)\n[…]\nub updated: remove \"planned\" language; web is not supported\n- CONTEXT.md: add branch naming convention (feat/*, fix/*, docs/* …)\n\nCo-authored-by: Drew Miller <49833875+wwdrew@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(api): Phase 1 — namespace skeleton, error hierarchy, SpotifyURI …",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-27T14:28:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4c4405c817e1655c0f47b72baea1a0eed34495a0",
          "body": "Establishes project domain language and the full v1/v2 plan for App\nRemote SDK wrapping:\n\n- CONTEXT.md — glossary covering Auth SDK, App Remote SDK, Web API,\n  connection lifecycle, SpotifyURI branded type, error class hierarchy,\n  and the explicit no-web-api-wrapper boundary\n- docs/V1_PLAN.md — liv\n[…]\n= SDK 56+); branch cut happens after v1.0.0 is feature-complete\n- ADR-0006 — six-namespace API and full App Remote sub-API scope\n\nCo-authored-by: Drew Miller <49833875+wwdrew@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs: add CONTEXT.md, V1_PLAN.md and ADRs 0004–0006 (#33)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-27T13:59:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8d2fb5b5f9e6e7771da52034253e92877f39e07a",
          "body": "…S (#31)\n\nThe iOS module re-threw caught `SpotifyError` / `SpotifyRefreshError` via\n`GenericException<String>`, whose `param` carried `\"<CODE>: <message>\"`\nbut which never overrode `Exception.reason` — leaving it as the literal\ndefault `\"undefined reason\"`. `expo-modules-core` then wrapped that in\n`\n[…]\nKotlin changes are needed — the JS\nshape is now identical across platforms.\n\nSee `docs/adr/0003-structured-exception-bridging.md` for the full\nrationale, alternatives considered, and validation steps.",
          "is_bot": false,
          "headline": "fix(ios): bridge structured SpotifyError code and reason through to J…",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-11T14:44:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c5359be5e426a8c1f9e3af9f3039bed914c018e4",
          "body": "* docs(adr): propose build-time download of Spotify native SDKs (ADR-0001)\n\nDocuments the case for replacing the checked-in `SpotifyiOS.xcframework`\nbinary with a build-time download via the iOS podspec, and adding a\nparallel mechanism for the Android App Remote AAR (which is published as\na GitHub r\n[…]\n forcibly stopped (no public API). Android coordinator unchanged\nbecause its `Mutex`/structured-concurrency model has no analogous leak.\n\nStatus: Proposed. Implementation will follow in a separate PR.",
          "is_bot": false,
          "headline": "docs: add initial ADRs (#30)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-11T14:40:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6f2e3bc056f2155ea05ab6cedaf6e3cc515f8eeb",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(main): release expo-spotify-sdk 0.8.0 (#23)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-05-07T15:25:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5582135eefec9db0579dd0d1b0cf03d7066bdbc0",
          "body": "Configure per-repo conventions for the engineering skills set:\n\n- AGENTS.md at the repo root pointing to the three docs below\n- docs/agents/issue-tracker.md (GitHub Issues via the gh CLI)\n- docs/agents/triage-labels.md (canonical default vocabulary)\n- docs/agents/domain.md (single-context layout for CONTEXT.md / docs/adr/)\n\nGenerated by the setup-matt-pocock-skills agent skill.",
          "is_bot": false,
          "headline": "docs: add AGENTS.md and agent skills configuration (#29)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-07T15:23:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "104bf50fd9ae6c30c3ecfee1983fd07f4c381aa8",
          "body": "… (#28)\n\n`SPTScopeSerializer.deserialize` skipped scope strings that weren't in\nits hard-coded map, which meant a typo or a newly-added Spotify scope\nsilently changed the meaning of a caller's auth request. Android\nforwards scope strings raw and lets Spotify reject them, so the two\nplatforms diverge\n[…]\n observable behaviour.\n\n\nKeep the lenient drop (changing it to a hard error would be a breaking\nchange) but `NSLog` each unknown scope so the discrepancy is at\nleastdebuggable from the device console.",
          "is_bot": false,
          "headline": "fix(ios): log unknown scope strings instead of silently dropping them…",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-06T13:51:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "baacce75c6c049a2774f588c45742ad218b9f907",
          "body": "`URLComponents.percentEncodedQuery` does not escape `+`, but in\n`application/x-www-form-urlencoded` bodies `+` is interpreted as a\nspace. If a refresh token (or any future field) ever contains `+`, the\nserver would receive a corrupted value.\n\n\nSpotify's current token format is base64url so this hasn't bittenanyone\nin practice, but the Foundation gotcha is well known and thefix is a\none-liner. Android uses OkHttp's `FormBody.Builder` whichalready encodes\ncorrectly, so no change needed there.",
          "is_bot": false,
          "headline": "fix(ios): escape \"+\" in form-encoded refresh token bodies (#27)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-06T13:51:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d7e5aea60bbf7e8598061fe0c3c1272a13357239",
          "body": "When the Spotify Android auth activity is dismissed before completing\n(user backs out, swipes home, kills the activity), the Spotify\nSDKreturns AuthorizationResponse.Type.EMPTY. The module was reporting\nthisas UNKNOWN, which surfaces as a generic error in callers' UIs\neventhough it's a perfectly nor\n[…]\nandling(typically: silent dismissal, no error UI) treats it correctly.\nMatchesthe behaviour of CANCELLED already, and is consistent with the\niOSside, which produces userCancelled for the same gesture.",
          "is_bot": false,
          "headline": "fix: classify Android EMPTY auth response as USER_CANCELLED (#26)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-06T13:50:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c5f40b3bc79393e4a583e3e308a3167c50ec4d1c",
          "body": "Spotify's refresh endpoint only returns the `scope` field when the\ngranted scope set has changed since the last issuance — most refresh\nresponses omit it. Both natives were hardcoding the fallback as an\nempty list, which meant that any refresh-without-scope returned a\nSpotifySession with `scopes: []\n[…]\nan pass the previous\nsession's scopes through. Existing call sites continue to work but\nare now explicitly opting into the lossy behaviour by omitting it;\nthe README documents the recommended pattern.",
          "is_bot": false,
          "headline": "fix: plumb previous scopes through refreshSessionAsync (#25)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-06T13:50:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "35410754ea2fa9523a3bfd7203e1b7c5e7930458",
          "body": "…tions (#24)\n\nThe iOS SpotifyAuthCoordinator's `pending` continuation is only cleared\nby SPTSessionManagerDelegate callbacks. When those don't fire — e.g. when\nSpotify never redirects back to the host app, or the host process is\nbackgrounded mid-flow — `pending` stays set forever and every subsequen\n[…]\nbefore\nauthenticateAsync to ensure retries actually open Spotify rather than\nimmediately rejecting.\nNo-op on Android (the Kotlin coordinator already self-cleans via\nstructured concurrency) and on web.",
          "is_bot": false,
          "headline": "feat: add cancelPendingAuthAsync to recover from leaked auth continua…",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-06T13:29:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b00fc478118e64cef82b8ab12ebfb8ad6d45ee60",
          "body": "ios/ExpoSpotifySDKModule.swift and android/.../ExpoSpotifySDKModule.kt\nboth hardcoded SDK_VERSION = \"0.5.0\" while the npm package was at 0.7.1.\nThe value flows into the User-Agent header on token swap and refresh\nrequests, so server-side metrics and logs were attributing real 0.7.x\ntraffic to a long\n[…]\nBumps both files to 0.7.1 and adds x-release-please-version inline\nmarkers wired into release-please's extra-files so the literals stay\nin sync with package.json automatically on every future release.",
          "is_bot": false,
          "headline": "fix: correct SDK_VERSION drift and auto-sync on future releases (#22)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-05-06T13:27:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8681338845ffc5fbcc9855502672e6061f4cec40",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(main): release expo-spotify-sdk 0.7.1 (#21)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-04-30T11:20:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "93edca030e0895e15688a6edfcbaf64bf076293e",
          "body": "The previous default required at least a literal \"/\" in the URI path,\nwhich fails to match the most common Spotify redirect URI shape\n\"scheme://host\" where the path component is the empty string. \".*\"\nmatches both empty and non-empty paths, so existing setups that\noverride to a stricter pattern continue to work unchanged.",
          "is_bot": false,
          "headline": "fix(plugin): change default redirectPathPattern from \"/.*\" to \".*\" (#20)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-04-30T11:18:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e705de34373734acfa295fd4e9ad6917eae7ccdb",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(main): release expo-spotify-sdk 0.7.0 (#19)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-04-29T17:25:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d061642eb2252251407a14ed57d5065537db1c57",
          "body": "Add an optional `showDialog: boolean` to the `authenticateAsync` config that\nforces Spotify's authorization dialog to appear even when the user already has\nan active session. Defaults to `false` so existing behaviour is unchanged.\n\nMaps to `SPTSessionManager.alwaysShowAuthorizationDialog` on iOS (a \n[…]\nhorizationOptions` flag) and\n`AuthorizationRequest.Builder.setShowDialog(boolean)` on Android.\n\nUseful during development to re-prompt for scopes; Spotify recommends against\nenabling it in production.",
          "is_bot": false,
          "headline": "feat: add showDialog option to authenticateAsync (#18)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-04-29T17:24:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2b1b7f401b1a8a5f756af1c2b9803b20323e2447",
          "body": "chore(main): release expo-spotify-sdk 0.6.0",
          "is_bot": false,
          "headline": "chore(main): release expo-spotify-sdk 0.6.0",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-04-29T11:45:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bd63291f40cd7246d74b11179a7d694311f91577",
          "body": null,
          "is_bot": true,
          "headline": "chore(main): release expo-spotify-sdk 0.6.0",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-04-29T11:44:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3de74453b1da3a7ed627cb47aa5590e07ae71dcc",
          "body": "Made-with: Cursor",
          "is_bot": false,
          "headline": "feat: SDK upgrades, Expo Router example, CI & release automation (#14)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2026-04-29T11:43:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1eade7ee370ad6ef7dd0e2b60bc855c4d5aa0c66",
          "body": "* upgrade internal spotify sdk to 3.0.0\n\n* rebuild example project",
          "is_bot": false,
          "headline": "chore: upgrade spotify sdk to 3.0.0 (#13)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2025-04-22T08:30:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "17bf8907ce3209d7d193faa3dd22a3b1ac73ddde",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 0.4.3",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-10-29T10:20:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "134bbc80739e0354403f4475e6f7b479ccc18727",
          "body": null,
          "is_bot": false,
          "headline": "fix(android): fix compilation errors when using sdk 52 (#10)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-10-29T10:11:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6e9f9ef9e7e9822d37b751a4bf1347ee5b1990c6",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 0.4.2",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-06-26T10:19:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f9fcd584e1507c3ac469437add3e7a887d6cc5b2",
          "body": null,
          "is_bot": false,
          "headline": "fix: use maven auth module and remove redundant dependency",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-06-26T10:15:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e215efdfa1232ef0f0c0ee7a613e9d0641cec4f",
          "body": null,
          "is_bot": false,
          "headline": "chore: upgrade dependency for security",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-06-22T17:21:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2e795af0be16079d937a0c4f3d7206b3bda930da",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 0.4.1",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-06-17T09:10:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cdaa6abb901e0eb00f25e81ec39c6002cb87f2de",
          "body": null,
          "is_bot": false,
          "headline": "docs: android authentication is now included",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-06-17T09:08:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04fdce968ef534a69315e93889003e7259c872ba",
          "body": null,
          "is_bot": false,
          "headline": "fix: include android folder in package",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-06-17T09:07:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d7a7cbec5ed8015c182e9704615e6210e48a28dc",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 0.4.0",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-06-14T09:06:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc8626871a030478608e408120cc52b0885f9636",
          "body": null,
          "is_bot": false,
          "headline": "chore: upgrade example to expo sdk 51 (#7)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-06-14T08:45:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "028e864270461f4695171213c9231dec6b79ce08",
          "body": null,
          "is_bot": false,
          "headline": "feat: upgrade ios sdk (#6)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-06-12T15:22:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63f09bbae647162e0c12eadbe3c25c8f3b4c902d",
          "body": null,
          "is_bot": false,
          "headline": "feat: add android authentication (#5)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-06-12T15:04:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e70d376f8f70a80a2863b2d345510b8f15024f39",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 0.3.1",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-17T17:30:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "93dc4700060101ce42ac46b5084a9a7e8180b8bb",
          "body": null,
          "is_bot": false,
          "headline": "fix: remove feature to return code only (#3)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-17T17:21:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a9bdb4fcac7e618b5ee538e55ac167f398c9c936",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 0.3.0",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-16T18:05:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0f0186bf6f6d4f1ee2b0cbdbf71e641a8660cd09",
          "body": "…hentication (#2)",
          "is_bot": false,
          "headline": "feat: implement flag to toggle whether to send code or session on aut…",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-16T17:58:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4c573a4a54e0aa1e2b686250c5fb1ab89e3c5705",
          "body": null,
          "is_bot": false,
          "headline": "docs: update docs for latest release",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-16T09:53:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a8910a3d0448c510a249764b57fcbe51ab91a24",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 0.2.0",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-16T09:40:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d6b32081f870e6888694f2b5f93b091a42199fb9",
          "body": "* change parameter to a config value\r\n\r\n* remove dynamic config values from plugin config\r\n\r\n* rename functions\r\n\r\n* remove non-required values from config\r\n\r\n* pass in new config to native function\r\n\r\n* put clientID back into config\r\n\r\n* enable passing in urls\r\n\r\n* create a new session manager when authenticating\r\n\r\n* reset token when re-authenticating\r\n\r\n* set new example settings",
          "is_bot": false,
          "headline": "feat: allow passing token swap and refresh values in config (#1)",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-15T20:35:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2500f7c91c952af15bf2849f3bdb798a3de85b93",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version number",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-15T11:38:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d5052971484b75bae37285ad2811f3b69cd69b4c",
          "body": null,
          "is_bot": false,
          "headline": "fix: don't accept handling url unless it has been",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-15T11:13:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "12b2126596985b247687d1044874018b814cfbd7",
          "body": null,
          "is_bot": false,
          "headline": "refactor: improve types",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-15T10:40:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "29189283a039b7ef6c04834d81efe6d0c0f854ff",
          "body": null,
          "is_bot": false,
          "headline": "chore: move server and dependencies into example",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-15T10:12:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4a1a62a26cd073b69ffc84d7c5ae66f527c9f613",
          "body": null,
          "is_bot": false,
          "headline": "chore: setup package details",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-11T18:03:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c2b9905e2aa1c15c2091e77488ff75c8d7300898",
          "body": null,
          "is_bot": false,
          "headline": "feat: implement initial version",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-11T17:33:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a7013a5242620daebfca8c355ad67aab2c3ec8a7",
          "body": null,
          "is_bot": false,
          "headline": "fix: add missing config types",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-04T17:40:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fbd811065c53df79bd47fb4a517f52cddaeac89b",
          "body": null,
          "is_bot": false,
          "headline": "feat: add support for more config values",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-04T17:22:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3c1c863f9d21a72b4cc60861c0d8a28592ac197",
          "body": null,
          "is_bot": false,
          "headline": "refactor: tidy up plugin functions",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-04T15:54:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "364f0f61ef87c2919e4a266174b7f74a400ca26f",
          "body": null,
          "is_bot": false,
          "headline": "feat: add Spotify config to object in Info.plist",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-04T15:48:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd1fd72e6ad389c78672ba2d0b5b7425f173c596",
          "body": null,
          "is_bot": false,
          "headline": "feat: add config plugins",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-04T15:10:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "05083df1d0d0f3ef537d82c1c4e8c880e08e1fe0",
          "body": "…ble on the device",
          "is_bot": false,
          "headline": "feat: add isAvailable function to check whether Spotify app is availa…",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2024-01-04T12:42:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b64abb1134d2b52293f0555d271f4c012fdbe804",
          "body": null,
          "is_bot": false,
          "headline": "feat: add initial dummy authenticate function",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2023-12-11T17:17:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba44d0837b9616c78f98835f3e23da39161bc311",
          "body": null,
          "is_bot": false,
          "headline": "chore: remove redundant view module files",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2023-12-11T15:57:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da0df5c493df318914c3fcfbf27f3bf4f2b992f8",
          "body": null,
          "is_bot": false,
          "headline": "chore: remove ios submodule",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2023-12-11T15:35:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a6be15199009013dc6bcaca0ca6e9899478bd4e9",
          "body": "…east it works",
          "is_bot": false,
          "headline": "build(ios): lesser attempt at getting iOS framework to build but at l…",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2023-12-11T15:34:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3d14d1b9da6c68375f81909f1cacf27c8f331c4",
          "body": null,
          "is_bot": false,
          "headline": "build(ios): fix paths to ios submodule and update podspec",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2023-12-11T10:11:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "005e1df6c9a763fd80b91c8bdf35dab15196fde0",
          "body": null,
          "is_bot": false,
          "headline": "build(android): fix paths to android submodule",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2023-12-11T10:05:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2f38310ba110627055e7a8c0461b84c484a520d6",
          "body": null,
          "is_bot": false,
          "headline": "chore: move submodules out of plugin directories",
          "author_name": "Drew Miller",
          "author_login": "wwdrew",
          "committed_at": "2023-12-11T10:04:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 14,
      "commits_last_year": 61,
      "latest_release_at": "2026-07-22T16:52:10Z",
      "latest_release_tag": "expo-spotify-sdk-v2.3.2",
      "releases_from_tags": false,
      "days_since_last_push": 9,
      "active_weeks_last_year": 10,
      "days_since_latest_release": 9,
      "mean_days_between_releases": 6.1
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 71,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@wwdrew/expo-spotify-sdk",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "react-native",
            "expo",
            "expo-spotify-sdk",
            "ExpoSpotifySDK",
            "Spotify"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@wwdrew/expo-spotify-sdk",
          "is_deprecated": false,
          "latest_version": "2.3.2",
          "repository_url": "https://github.com/wwdrew/expo-spotify-sdk",
          "versions_count": 24,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 4708,
          "first_published_at": "2024-01-12T10:14:43.516000Z",
          "latest_published_at": "2026-07-22T16:52:45.046000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 9
        }
      ]
    },
    "popularity": {
      "forks": 7,
      "stars": 17,
      "watchers": 1,
      "fork_history": {
        "days": [
          {
            "date": "2024-01-17",
            "count": 1
          },
          {
            "date": "2024-06-24",
            "count": 1
          },
          {
            "date": "2025-01-25",
            "count": 1
          },
          {
            "date": "2025-02-13",
            "count": 1
          },
          {
            "date": "2025-04-17",
            "count": 1
          },
          {
            "date": "2025-05-06",
            "count": 1
          },
          {
            "date": "2026-03-09",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 7,
        "total_forks": 7
      },
      "star_history": null,
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "example"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "example/tsconfig.json",
        "plugin/tsconfig.json",
        "tsconfig.json"
      ],
      "toolchain_manifests": [
        "android/build.gradle",
        "example/android/app/build.gradle",
        "example/android/build.gradle"
      ],
      "largest_source_bytes": 20879,
      "source_files_sampled": 97,
      "oversized_source_files": 0,
      "agent_instruction_files": [
        "AGENTS.md"
      ],
      "agent_instruction_max_bytes": 531
    },
    "dependencies": {
      "manifests": [
        "android/build.gradle",
        "example/package.json",
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.15",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-3jxr-9vmj-r5cp",
              "GHSA-mh99-v99m-4gvg"
            ],
            "fixed_version": "5.0.8",
            "advisory_count": 2,
            "oldest_advisory_days": 11
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "2.1.1",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-3jxr-9vmj-r5cp",
              "GHSA-mh99-v99m-4gvg"
            ],
            "fixed_version": "5.0.8",
            "advisory_count": 2,
            "oldest_advisory_days": 11
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "5.0.6",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-3jxr-9vmj-r5cp",
              "GHSA-mh99-v99m-4gvg"
            ],
            "fixed_version": "5.0.8",
            "advisory_count": 2,
            "oldest_advisory_days": 11
          },
          {
            "name": "form-data",
            "direct": false,
            "version": "4.0.5",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-hmw2-7cc7-3qxx"
            ],
            "fixed_version": "4.0.6",
            "advisory_count": 1,
            "oldest_advisory_days": 46
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "3.14.2",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-52cp-r559-cp3m",
              "GHSA-h67p-54hq-rp68"
            ],
            "fixed_version": "4.3.0",
            "advisory_count": 2,
            "oldest_advisory_days": 46
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "4.2.0",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-52cp-r559-cp3m"
            ],
            "fixed_version": "4.3.0",
            "advisory_count": 1,
            "oldest_advisory_days": 11
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.15",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-r28c-9q8g-f849"
            ],
            "fixed_version": "8.5.18",
            "advisory_count": 1,
            "oldest_advisory_days": 7
          },
          {
            "name": "shell-quote",
            "direct": false,
            "version": "1.8.4",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-395f-4hp3-45gv"
            ],
            "fixed_version": "1.9.0",
            "advisory_count": 1,
            "oldest_advisory_days": 11
          },
          {
            "name": "uuid",
            "direct": false,
            "version": "7.0.3",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-w5hq-g745-h8pq"
            ],
            "fixed_version": "13.0.1",
            "advisory_count": 1,
            "oldest_advisory_days": 100
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 9
        },
        "advisory_count": 13,
        "affected_count": 9,
        "assessed_count": 1062,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "maven",
        "npm"
      ],
      "dependencies": [],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@adobe/css-tools",
            "direct": false,
            "version": "4.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/cli",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/code-frame",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/compat-data",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/core",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/generator",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-annotate-as-pure",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-compilation-targets",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-create-class-features-plugin",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-create-regexp-features-plugin",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-define-polyfill-provider",
            "direct": false,
            "version": "0.6.8",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-globals",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-member-expression-to-functions",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-module-imports",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-module-transforms",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-optimise-call-expression",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-plugin-utils",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-remap-async-to-generator",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-replace-supers",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-skip-transparent-expression-wrappers",
            "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/helper-validator-option",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-wrap-function",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helpers",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-bugfix-firefox-class-in-computed-class-key",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-bugfix-safari-class-field-initializer-scope",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-proposal-decorators",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-proposal-export-default-from",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-proposal-private-property-in-object",
            "direct": false,
            "version": "7.21.0-placeholder-for-preset-env.2",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-async-generators",
            "direct": false,
            "version": "7.8.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-bigint",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-class-properties",
            "direct": false,
            "version": "7.12.13",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-class-static-block",
            "direct": false,
            "version": "7.14.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-decorators",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-dynamic-import",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-export-default-from",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-flow",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-import-assertions",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-import-attributes",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-import-meta",
            "direct": false,
            "version": "7.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-json-strings",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-jsx",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-logical-assignment-operators",
            "direct": false,
            "version": "7.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-nullish-coalescing-operator",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-numeric-separator",
            "direct": false,
            "version": "7.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-object-rest-spread",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-optional-catch-binding",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-optional-chaining",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-private-property-in-object",
            "direct": false,
            "version": "7.14.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-top-level-await",
            "direct": false,
            "version": "7.14.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-typescript",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-unicode-sets-regex",
            "direct": false,
            "version": "7.18.6",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-arrow-functions",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-async-generator-functions",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-async-to-generator",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-block-scoped-functions",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-block-scoping",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-class-properties",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-class-static-block",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-classes",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-computed-properties",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-destructuring",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-dotall-regex",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-duplicate-keys",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-duplicate-named-capturing-groups-regex",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-dynamic-import",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-explicit-resource-management",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-exponentiation-operator",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-export-namespace-from",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-flow-strip-types",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-for-of",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-function-name",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-json-strings",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-literals",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-logical-assignment-operators",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-member-expression-literals",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-modules-amd",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-modules-commonjs",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-modules-systemjs",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-modules-umd",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-named-capturing-groups-regex",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-new-target",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-nullish-coalescing-operator",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-numeric-separator",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-object-rest-spread",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-object-super",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-optional-catch-binding",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-optional-chaining",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-parameters",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-private-methods",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-private-property-in-object",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-property-literals",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-react-display-name",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-react-jsx",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-react-jsx-development",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-react-pure-annotations",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-regenerator",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-regexp-modifiers",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-reserved-words",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-runtime",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-shorthand-properties",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-spread",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-sticky-regex",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-template-literals",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-typeof-symbol",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-typescript",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-unicode-escapes",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-unicode-property-regex",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-unicode-regex",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-unicode-sets-regex",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/preset-env",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/preset-modules",
            "direct": false,
            "version": "0.1.6-no-external-plugins",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/preset-typescript",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/runtime",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/template",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/traverse",
            "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": "0.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@egjs/hammerjs",
            "direct": false,
            "version": "2.0.17",
            "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.21.2",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/config-helpers",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/core",
            "direct": false,
            "version": "0.17.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/eslintrc",
            "direct": false,
            "version": "3.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/js",
            "direct": false,
            "version": "9.39.4",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/object-schema",
            "direct": false,
            "version": "2.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/plugin-kit",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "@expo-google-fonts/material-symbols",
            "direct": false,
            "version": "0.4.38",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/cli",
            "direct": false,
            "version": "56.1.16",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/code-signing-certificates",
            "direct": false,
            "version": "0.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/config",
            "direct": false,
            "version": "56.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/config-plugins",
            "direct": false,
            "version": "56.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/config-plugins",
            "direct": false,
            "version": "56.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/config-types",
            "direct": false,
            "version": "56.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/config-types",
            "direct": false,
            "version": "56.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/devcert",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/devtools",
            "direct": false,
            "version": "56.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/dom-webview",
            "direct": false,
            "version": "56.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/env",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/expo-modules-macros-plugin",
            "direct": false,
            "version": "0.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/expo-modules-macros-plugin",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/fingerprint",
            "direct": false,
            "version": "0.19.4",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/image-utils",
            "direct": false,
            "version": "0.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/inline-modules",
            "direct": false,
            "version": "0.0.12",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/json-file",
            "direct": false,
            "version": "10.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/local-build-cache-provider",
            "direct": false,
            "version": "56.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/log-box",
            "direct": false,
            "version": "56.0.13",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/metro",
            "direct": false,
            "version": "56.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/metro-config",
            "direct": false,
            "version": "56.0.14",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/metro-file-map",
            "direct": false,
            "version": "56.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/metro-runtime",
            "direct": false,
            "version": "56.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/osascript",
            "direct": false,
            "version": "2.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/package-manager",
            "direct": false,
            "version": "1.12.1",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/plist",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/prebuild-config",
            "direct": false,
            "version": "56.0.16",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/require-utils",
            "direct": false,
            "version": "56.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/router-server",
            "direct": false,
            "version": "56.0.14",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/schema-utils",
            "direct": false,
            "version": "56.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/sdk-runtime-versions",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/spawn-async",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/sudo-prompt",
            "direct": false,
            "version": "9.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/ui",
            "direct": false,
            "version": "56.0.18",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/ws-tunnel",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@expo/xcpretty",
            "direct": false,
            "version": "4.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/core",
            "direct": false,
            "version": "0.19.2",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/node",
            "direct": false,
            "version": "0.16.8",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/types",
            "direct": false,
            "version": "0.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/module-importer",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/retry",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@isaacs/ttlcache",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "@istanbuljs/load-nyc-config",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@istanbuljs/schema",
            "direct": false,
            "version": "0.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/console",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/core",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/create-cache-key-function",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/diff-sequences",
            "direct": false,
            "version": "30.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/environment",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/expect",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/expect-utils",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/fake-timers",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/get-type",
            "direct": false,
            "version": "30.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/globals",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/reporters",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/schemas",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/schemas",
            "direct": false,
            "version": "30.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/source-map",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/test-result",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/test-sequencer",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/transform",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/types",
            "direct": false,
            "version": "29.6.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": "@nicolo-ribaudo/chokidar-2",
            "direct": false,
            "version": "2.1.8-no-fsevents.3",
            "ecosystem": "npm"
          },
          {
            "name": "@pkgr/core",
            "direct": false,
            "version": "0.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/primitive",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-collection",
            "direct": false,
            "version": "1.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-compose-refs",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-context",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-dialog",
            "direct": false,
            "version": "1.1.17",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-direction",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-dismissable-layer",
            "direct": false,
            "version": "1.1.13",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-focus-guards",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-focus-scope",
            "direct": false,
            "version": "1.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-id",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-portal",
            "direct": false,
            "version": "1.1.12",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-presence",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-primitive",
            "direct": false,
            "version": "2.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-roving-focus",
            "direct": false,
            "version": "1.1.13",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-slot",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-tabs",
            "direct": false,
            "version": "1.1.15",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-use-callback-ref",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-use-controllable-state",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-use-effect-event",
            "direct": false,
            "version": "0.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-use-escape-keydown",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-use-layout-effect",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@react-native-async-storage/async-storage",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@react-native-masked-view/masked-view",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "@react-native/assets-registry",
            "direct": false,
            "version": "0.85.3",
            "ecosystem": "npm"
          },
          {
            "name": "@react-native/babel-plugin-codegen",
            "direct": false,
            "version": "0.85.3",
            "ecosystem": "npm"
          },
          {
            "name": "@react-native/codegen",
            "direct": false,
            "version": "0.85.3",
            "ecosystem": "npm"
          },
          {
            "name": "@react-native/community-cli-plugin",
            "direct": false,
            "version": "0.85.3",
            "ecosystem": "npm"
          },
          {
            "name": "@react-native/debugger-frontend",
            "direct": false,
            "version": "0.85.3",
            "ecosystem": "npm"
          },
          {
            "name": "@react-native/debugger-shell",
            "direct": false,
            "version": "0.85.3",
            "ecosystem": "npm"
          },
          {
            "name": "@react-native/dev-middleware",
            "direct": false,
            "version": "0.85.3",
            "ecosystem": "npm"
          },
          {
            "name": "@react-native/gradle-plugin",
            "direct": false,
            "version": "0.85.3",
            "ecosystem": "npm"
          },
          {
            "name": "@react-native/jest-preset",
            "direct": false,
            "version": "0.85.3",
            "ecosystem": "npm"
          },
          {
            "name": "@react-native/js-polyfills",
            "direct": false,
            "version": "0.85.3",
            "ecosystem": "npm"
          },
          {
            "name": "@react-native/normalize-colors",
            "direct": false,
            "version": "0.85.3",
            "ecosystem": "npm"
          },
          {
            "name": "@react-native/virtualized-lists",
            "direct": false,
            "version": "0.85.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rtsao/scc",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@sinclair/typebox",
            "direct": false,
            "version": "0.27.10",
            "ecosystem": "npm"
          },
          {
            "name": "@sinclair/typebox",
            "direct": false,
            "version": "0.34.49",
            "ecosystem": "npm"
          },
          {
            "name": "@sinonjs/commons",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@sinonjs/fake-timers",
            "direct": false,
            "version": "10.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@testing-library/jest-dom",
            "direct": false,
            "version": "6.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "@testing-library/react-native",
            "direct": false,
            "version": "13.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@testing-library/user-event",
            "direct": false,
            "version": "14.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "@tootallnate/once",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/babel__core",
            "direct": false,
            "version": "7.20.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/babel__generator",
            "direct": false,
            "version": "7.27.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/babel__template",
            "direct": false,
            "version": "7.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/babel__traverse",
            "direct": false,
            "version": "7.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/graceful-fs",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/hammerjs",
            "direct": false,
            "version": "2.0.46",
            "ecosystem": "npm"
          },
          {
            "name": "@types/istanbul-lib-coverage",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/istanbul-lib-report",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/istanbul-reports",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/jest",
            "direct": false,
            "version": "29.5.14",
            "ecosystem": "npm"
          },
          {
            "name": "@types/jsdom",
            "direct": false,
            "version": "20.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/json-schema",
            "direct": false,
            "version": "7.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@types/json5",
            "direct": false,
            "version": "0.0.29",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "25.9.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "26.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react",
            "direct": false,
            "version": "19.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react-test-renderer",
            "direct": false,
            "version": "19.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/stack-utils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/tough-cookie",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/yargs",
            "direct": false,
            "version": "17.0.35",
            "ecosystem": "npm"
          },
          {
            "name": "@types/yargs-parser",
            "direct": false,
            "version": "21.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/eslint-plugin",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/parser",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/project-service",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/scope-manager",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/tsconfig-utils",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/type-utils",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/types",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/typescript-estree",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/utils",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/visitor-keys",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@ungap/structured-clone",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "@xmldom/xmldom",
            "direct": false,
            "version": "0.8.13",
            "ecosystem": "npm"
          },
          {
            "name": "@xmldom/xmldom",
            "direct": false,
            "version": "0.9.10",
            "ecosystem": "npm"
          },
          {
            "name": "abab",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "abort-controller",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "accepts",
            "direct": false,
            "version": "1.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "accepts",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.16.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.17.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-globals",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-jsx",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-walk",
            "direct": false,
            "version": "8.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "agent-base",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "agent-base",
            "direct": false,
            "version": "7.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "6.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "anser",
            "direct": false,
            "version": "1.4.10",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-escapes",
            "direct": false,
            "version": "4.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-escapes",
            "direct": false,
            "version": "6.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "4.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": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "anymatch",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "arg",
            "direct": false,
            "version": "5.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "1.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "aria-hidden",
            "direct": false,
            "version": "1.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "aria-query",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "array-buffer-byte-length",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "array-includes",
            "direct": false,
            "version": "3.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "array.prototype.findlast",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "array.prototype.findlastindex",
            "direct": false,
            "version": "1.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "array.prototype.flat",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "array.prototype.flatmap",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "array.prototype.tosorted",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "arraybuffer.prototype.slice",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "asap",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "async-function",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "asynckit",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "available-typed-arrays",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "babel-jest",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-dynamic-import-node",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-istanbul",
            "direct": false,
            "version": "6.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-jest-hoist",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-module-resolver",
            "direct": false,
            "version": "5.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-polyfill-corejs2",
            "direct": false,
            "version": "0.4.17",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-polyfill-corejs3",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-polyfill-corejs3",
            "direct": false,
            "version": "0.14.2",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-polyfill-regenerator",
            "direct": false,
            "version": "0.6.8",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-react-compiler",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-react-native-web",
            "direct": false,
            "version": "0.21.2",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-syntax-hermes-parser",
            "direct": false,
            "version": "0.33.3",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-transform-flow-enums",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "babel-preset-current-node-syntax",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "babel-preset-expo",
            "direct": false,
            "version": "56.0.14",
            "ecosystem": "npm"
          },
          {
            "name": "babel-preset-expo",
            "direct": false,
            "version": "56.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "babel-preset-jest",
            "direct": false,
            "version": "29.6.3",
            "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.34",
            "ecosystem": "npm"
          },
          {
            "name": "baseline-browser-mapping",
            "direct": false,
            "version": "2.10.38",
            "ecosystem": "npm"
          },
          {
            "name": "big-integer",
            "direct": false,
            "version": "1.6.52",
            "ecosystem": "npm"
          },
          {
            "name": "binary-extensions",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "bplist-creator",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "bplist-parser",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "bplist-parser",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.15",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "5.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "braces",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "browserslist",
            "direct": false,
            "version": "4.28.2",
            "ecosystem": "npm"
          },
          {
            "name": "browserslist",
            "direct": false,
            "version": "4.28.4",
            "ecosystem": "npm"
          },
          {
            "name": "bs-logger",
            "direct": false,
            "version": "0.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "bser",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-from",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "bytes",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind",
            "direct": false,
            "version": "1.0.9",
            "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": "camelcase",
            "direct": false,
            "version": "5.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "camelcase",
            "direct": false,
            "version": "6.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "caniuse-lite",
            "direct": false,
            "version": "1.0.30001797",
            "ecosystem": "npm"
          },
          {
            "name": "caniuse-lite",
            "direct": false,
            "version": "1.0.30001799",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "char-regex",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "char-regex",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "chrome-launcher",
            "direct": false,
            "version": "0.15.2",
            "ecosystem": "npm"
          },
          {
            "name": "chromium-edge-launcher",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ci-info",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ci-info",
            "direct": false,
            "version": "3.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "cjs-module-lexer",
            "direct": false,
            "version": "1.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "cli-cursor",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-spinners",
            "direct": false,
            "version": "2.9.2",
            "ecosystem": "npm"
          },
          {
            "name": "client-only",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "clone",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "co",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "collect-v8-coverage",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "color",
            "direct": false,
            "version": "4.2.3",
            "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": "color-string",
            "direct": false,
            "version": "1.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "combined-stream",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "12.1.0",
            "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": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "compressible",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "npm"
          },
          {
            "name": "compression",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "concat-map",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "connect",
            "direct": false,
            "version": "3.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "core-js-compat",
            "direct": false,
            "version": "3.49.0",
            "ecosystem": "npm"
          },
          {
            "name": "create-jest",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "css.escape",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "cssom",
            "direct": false,
            "version": "0.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "cssom",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "cssstyle",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "csstype",
            "direct": false,
            "version": "3.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "data-urls",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "data-view-buffer",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "data-view-byte-length",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "data-view-byte-offset",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "2.6.9",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "3.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "decimal.js",
            "direct": false,
            "version": "10.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "decode-uri-component",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "dedent",
            "direct": false,
            "version": "1.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "deep-is",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "deepmerge",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "defaults",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "define-data-property",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "define-properties",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "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-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "detect-newline",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-node-es",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "diff-sequences",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "dnssd-advertise",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "doctrine",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "dom-accessibility-api",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "domexception",
            "direct": false,
            "version": "4.0.0",
            "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.370",
            "ecosystem": "npm"
          },
          {
            "name": "electron-to-chromium",
            "direct": false,
            "version": "1.5.377",
            "ecosystem": "npm"
          },
          {
            "name": "emittery",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "encodeurl",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "encodeurl",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "enhanced-resolve",
            "direct": false,
            "version": "5.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "error-ex",
            "direct": false,
            "version": "1.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "error-stack-parser",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "es-abstract",
            "direct": false,
            "version": "1.24.2",
            "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-iterator-helpers",
            "direct": false,
            "version": "1.3.2",
            "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-shim-unscopables",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-to-primitive",
            "direct": false,
            "version": "1.3.0",
            "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": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "escodegen",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint",
            "direct": false,
            "version": "9.39.4",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-compat-utils",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-config-prettier",
            "direct": false,
            "version": "9.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-config-universe",
            "direct": false,
            "version": "15.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-import-resolver-node",
            "direct": false,
            "version": "0.3.10",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-module-utils",
            "direct": false,
            "version": "2.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-es",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-es-x",
            "direct": false,
            "version": "7.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-import",
            "direct": false,
            "version": "2.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-n",
            "direct": false,
            "version": "17.24.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-node",
            "direct": false,
            "version": "11.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-prettier",
            "direct": false,
            "version": "5.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-react",
            "direct": false,
            "version": "7.37.5",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-react-hooks",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-scope",
            "direct": false,
            "version": "8.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-utils",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "3.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "4.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "espree",
            "direct": false,
            "version": "10.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "esprima",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "esquery",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "esrecurse",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estraverse",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "esutils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "etag",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "event-target-shim",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "execa",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "exit",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "expect",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "expo",
            "direct": false,
            "version": "56.0.12",
            "ecosystem": "npm"
          },
          {
            "name": "expo-asset",
            "direct": false,
            "version": "56.0.17",
            "ecosystem": "npm"
          },
          {
            "name": "expo-constants",
            "direct": false,
            "version": "56.0.18",
            "ecosystem": "npm"
          },
          {
            "name": "expo-file-system",
            "direct": false,
            "version": "56.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "expo-font",
            "direct": false,
            "version": "56.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "expo-glass-effect",
            "direct": false,
            "version": "56.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "expo-keep-awake",
            "direct": false,
            "version": "56.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "expo-linking",
            "direct": false,
            "version": "56.0.14",
            "ecosystem": "npm"
          },
          {
            "name": "expo-module-scripts",
            "direct": false,
            "version": "56.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "expo-modules-autolinking",
            "direct": false,
            "version": "56.0.16",
            "ecosystem": "npm"
          },
          {
            "name": "expo-modules-core",
            "direct": false,
            "version": "56.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "expo-modules-core",
            "direct": false,
            "version": "56.0.17",
            "ecosystem": "npm"
          },
          {
            "name": "expo-modules-jsi",
            "direct": false,
            "version": "56.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "expo-modules-jsi",
            "direct": false,
            "version": "56.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "expo-router",
            "direct": false,
            "version": "56.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "expo-server",
            "direct": false,
            "version": "56.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "expo-splash-screen",
            "direct": false,
            "version": "56.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "expo-status-bar",
            "direct": false,
            "version": "56.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "expo-symbols",
            "direct": false,
            "version": "56.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "expo-system-ui",
            "direct": false,
            "version": "56.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "exponential-backoff",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-diff",
            "direct": false,
            "version": "1.3.0",
            "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": "fb-dotslash",
            "direct": false,
            "version": "0.5.8",
            "ecosystem": "npm"
          },
          {
            "name": "fb-watchman",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "fetch-nodeshim",
            "direct": false,
            "version": "0.4.10",
            "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": "filter-obj",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "finalhandler",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "find-babel-config",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "flat-cache",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "flatted",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "flow-enums-runtime",
            "direct": false,
            "version": "0.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "fontfaceobserver",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "for-each",
            "direct": false,
            "version": "0.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "form-data",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "fresh",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "fs-readdir-recursive",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fs.realpath",
            "direct": false,
            "version": "1.0.0",
            "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.prototype.name",
            "direct": false,
            "version": "1.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "functions-have-names",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "generator-function",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "gensync",
            "direct": false,
            "version": "1.0.0-beta.2",
            "ecosystem": "npm"
          },
          {
            "name": "get-caller-file",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "get-intrinsic",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-nonce",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-package-type",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-stream",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-symbol-description",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-tsconfig",
            "direct": false,
            "version": "4.14.0",
            "ecosystem": "npm"
          },
          {
            "name": "getenv",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "13.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "7.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "9.3.5",
            "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": "globals",
            "direct": false,
            "version": "14.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "globals",
            "direct": false,
            "version": "15.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "globals",
            "direct": false,
            "version": "16.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "globalthis",
            "direct": false,
            "version": "1.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": "handlebars",
            "direct": false,
            "version": "4.7.9",
            "ecosystem": "npm"
          },
          {
            "name": "has-bigints",
            "direct": false,
            "version": "1.1.0",
            "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-property-descriptors",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "has-proto",
            "direct": false,
            "version": "1.2.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": "hermes-compiler",
            "direct": false,
            "version": "250829098.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "hermes-estree",
            "direct": false,
            "version": "0.25.1",
            "ecosystem": "npm"
          },
          {
            "name": "hermes-estree",
            "direct": false,
            "version": "0.33.3",
            "ecosystem": "npm"
          },
          {
            "name": "hermes-estree",
            "direct": false,
            "version": "0.35.0",
            "ecosystem": "npm"
          },
          {
            "name": "hermes-parser",
            "direct": false,
            "version": "0.25.1",
            "ecosystem": "npm"
          },
          {
            "name": "hermes-parser",
            "direct": false,
            "version": "0.33.3",
            "ecosystem": "npm"
          },
          {
            "name": "hermes-parser",
            "direct": false,
            "version": "0.35.0",
            "ecosystem": "npm"
          },
          {
            "name": "hoist-non-react-statics",
            "direct": false,
            "version": "3.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "hosted-git-info",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "html-encoding-sniffer",
            "direct": false,
            "version": "3.0.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": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "https-proxy-agent",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "https-proxy-agent",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "human-signals",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "7.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "image-size",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "import-fresh",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "import-local",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "imurmurhash",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "indent-string",
            "direct": false,
            "version": "4.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": "internal-slot",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "invariant",
            "direct": false,
            "version": "2.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "is-array-buffer",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "is-arrayish",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-arrayish",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "is-async-function",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-bigint",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-binary-path",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-boolean-object",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-callable",
            "direct": false,
            "version": "1.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "is-core-module",
            "direct": false,
            "version": "2.16.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-data-view",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-date-object",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-docker",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-extglob",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-finalizationregistry",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-generator-fn",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-generator-function",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-glob",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-map",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-negative-zero",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-number",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-number-object",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-plain-obj",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-potential-custom-element-name",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-regex",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-set",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-shared-array-buffer",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "is-stream",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-string",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-symbol",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-typed-array",
            "direct": false,
            "version": "1.1.15",
            "ecosystem": "npm"
          },
          {
            "name": "is-weakmap",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-weakref",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-weakset",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "is-wsl",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "isarray",
            "direct": false,
            "version": "2.0.5",
            "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-instrument",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-instrument",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-report",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-source-maps",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-reports",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "iterator.prototype",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "jest",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-changed-files",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-circus",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-cli",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-config",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-diff",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-diff",
            "direct": false,
            "version": "30.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-docblock",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-each",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-environment-jsdom",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-environment-node",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-expo",
            "direct": false,
            "version": "56.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "jest-get-type",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "jest-haste-map",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-leak-detector",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-matcher-utils",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-matcher-utils",
            "direct": false,
            "version": "30.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-message-util",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-mock",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-pnp-resolver",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "jest-regex-util",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "jest-resolve",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-resolve-dependencies",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-runner",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-runtime",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-snapshot",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-snapshot-prettier",
            "direct": false,
            "version": "2.8.8",
            "ecosystem": "npm"
          },
          {
            "name": "jest-util",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-validate",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-watch-select-projects",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-watch-typeahead",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "jest-watcher",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-worker",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jimp-compact",
            "direct": false,
            "version": "0.16.1",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "3.14.2",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsc-safe-url",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "jsdom",
            "direct": false,
            "version": "20.0.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-stable-stringify-without-jsonify",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json5",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "json5",
            "direct": false,
            "version": "2.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "jsx-ast-utils",
            "direct": false,
            "version": "3.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "keyv",
            "direct": false,
            "version": "4.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "kleur",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "lan-network",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "leven",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "levn",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "lighthouse-logger",
            "direct": false,
            "version": "1.4.2",
            "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": "locate-path",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash",
            "direct": false,
            "version": "4.18.1",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.debounce",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.memoize",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.merge",
            "direct": false,
            "version": "4.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.throttle",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "log-symbols",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "loose-envify",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "10.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "11.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "make-dir",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "make-dir",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "make-error",
            "direct": false,
            "version": "1.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "makeerror",
            "direct": false,
            "version": "1.0.12",
            "ecosystem": "npm"
          },
          {
            "name": "marky",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "memoize-one",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "merge-options",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "merge-stream",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "metro",
            "direct": false,
            "version": "0.84.4",
            "ecosystem": "npm"
          },
          {
            "name": "metro-babel-transformer",
            "direct": false,
            "version": "0.84.4",
            "ecosystem": "npm"
          },
          {
            "name": "metro-cache",
            "direct": false,
            "version": "0.84.4",
            "ecosystem": "npm"
          },
          {
            "name": "metro-cache-key",
            "direct": false,
            "version": "0.84.4",
            "ecosystem": "npm"
          },
          {
            "name": "metro-config",
            "direct": false,
            "version": "0.84.4",
            "ecosystem": "npm"
          },
          {
            "name": "metro-core",
            "direct": false,
            "version": "0.84.4",
            "ecosystem": "npm"
          },
          {
            "name": "metro-file-map",
            "direct": false,
            "version": "0.84.4",
            "ecosystem": "npm"
          },
          {
            "name": "metro-minify-terser",
            "direct": false,
            "version": "0.84.4",
            "ecosystem": "npm"
          },
          {
            "name": "metro-resolver",
            "direct": false,
            "version": "0.84.4",
            "ecosystem": "npm"
          },
          {
            "name": "metro-runtime",
            "direct": false,
            "version": "0.84.4",
            "ecosystem": "npm"
          },
          {
            "name": "metro-source-map",
            "direct": false,
            "version": "0.84.4",
            "ecosystem": "npm"
          },
          {
            "name": "metro-symbolicate",
            "direct": false,
            "version": "0.84.4",
            "ecosystem": "npm"
          },
          {
            "name": "metro-transform-plugins",
            "direct": false,
            "version": "0.84.4",
            "ecosystem": "npm"
          },
          {
            "name": "metro-transform-worker",
            "direct": false,
            "version": "0.84.4",
            "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-db",
            "direct": false,
            "version": "1.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "2.1.35",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-fn",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-fn",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "min-indent",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "10.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "3.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "8.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "minimist",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "minipass",
            "direct": false,
            "version": "4.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "minipass",
            "direct": false,
            "version": "7.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "mkdirp",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "multitars",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.15",
            "ecosystem": "npm"
          },
          {
            "name": "natural-compare",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "negotiator",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "negotiator",
            "direct": false,
            "version": "0.6.4",
            "ecosystem": "npm"
          },
          {
            "name": "negotiator",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "neo-async",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "node-exports-info",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-forge",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-int64",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-releases",
            "direct": false,
            "version": "2.0.47",
            "ecosystem": "npm"
          },
          {
            "name": "node-releases",
            "direct": false,
            "version": "2.0.48",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-path",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "npm-package-arg",
            "direct": false,
            "version": "11.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "npm-run-path",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "nullthrows",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "nwsapi",
            "direct": false,
            "version": "2.2.24",
            "ecosystem": "npm"
          },
          {
            "name": "ob1",
            "direct": false,
            "version": "0.84.4",
            "ecosystem": "npm"
          },
          {
            "name": "object-assign",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "object-inspect",
            "direct": false,
            "version": "1.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "object-keys",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "object.assign",
            "direct": false,
            "version": "4.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "object.entries",
            "direct": false,
            "version": "1.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "object.fromentries",
            "direct": false,
            "version": "2.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "object.groupby",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "object.values",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "on-finished",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "on-finished",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "on-headers",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "once",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "onetime",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "onetime",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "open",
            "direct": false,
            "version": "7.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "optionator",
            "direct": false,
            "version": "0.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "ora",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "own-keys",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-try",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "parent-module",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse-json",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse-png",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "parseurl",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "path-exists",
            "direct": false,
            "version": "3.0.0",
            "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-scurry",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-scurry",
            "direct": false,
            "version": "2.0.2",
            "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.4",
            "ecosystem": "npm"
          },
          {
            "name": "pify",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "pirates",
            "direct": false,
            "version": "4.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "pkg-dir",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "pkg-up",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "plist",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "pngjs",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "possible-typed-array-names",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.15",
            "ecosystem": "npm"
          },
          {
            "name": "prelude-ls",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "prettier",
            "direct": false,
            "version": "3.8.4",
            "ecosystem": "npm"
          },
          {
            "name": "prettier-linter-helpers",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "pretty-format",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "pretty-format",
            "direct": false,
            "version": "30.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "proc-log",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "progress",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "promise",
            "direct": false,
            "version": "8.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "prompts",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "prop-types",
            "direct": false,
            "version": "15.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "psl",
            "direct": false,
            "version": "1.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "punycode",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "pure-rand",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "query-string",
            "direct": false,
            "version": "7.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "querystringify",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "queue",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "range-parser",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "react",
            "direct": false,
            "version": "19.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "react-devtools-core",
            "direct": false,
            "version": "6.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "react-fast-compare",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "react-freeze",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "react-is",
            "direct": false,
            "version": "16.13.1",
            "ecosystem": "npm"
          },
          {
            "name": "react-is",
            "direct": false,
            "version": "18.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "react-is",
            "direct": false,
            "version": "19.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "react-is-18",
            "direct": false,
            "version": "18.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "react-is-19",
            "direct": false,
            "version": "19.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "react-native",
            "direct": false,
            "version": "0.85.3",
            "ecosystem": "npm"
          },
          {
            "name": "react-native-drawer-layout",
            "direct": false,
            "version": "4.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "react-native-gesture-handler",
            "direct": false,
            "version": "2.31.2",
            "ecosystem": "npm"
          },
          {
            "name": "react-native-safe-area-context",
            "direct": false,
            "version": "5.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "react-native-screens",
            "direct": false,
            "version": "4.25.2",
            "ecosystem": "npm"
          },
          {
            "name": "react-refresh",
            "direct": false,
            "version": "0.14.2",
            "ecosystem": "npm"
          },
          {
            "name": "react-remove-scroll",
            "direct": false,
            "version": "2.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "react-remove-scroll-bar",
            "direct": false,
            "version": "2.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "react-style-singleton",
            "direct": false,
            "version": "2.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "react-test-renderer",
            "direct": false,
            "version": "19.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "redent",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "reflect.getprototypeof",
            "direct": false,
            "version": "1.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "regenerate",
            "direct": false,
            "version": "1.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "regenerate-unicode-properties",
            "direct": false,
            "version": "10.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "regenerator-runtime",
            "direct": false,
            "version": "0.13.11",
            "ecosystem": "npm"
          },
          {
            "name": "regexp.prototype.flags",
            "direct": false,
            "version": "1.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "regexpp",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "regexpu-core",
            "direct": false,
            "version": "6.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "regjsgen",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "regjsparser",
            "direct": false,
            "version": "0.13.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": "requires-port",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "reselect",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "1.22.12",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "2.0.0-next.7",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-cwd",
            "direct": false,
            "version": "3.0.0",
            "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": "resolve-workspace-root",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "resolve.exports",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "restore-cursor",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "safe-array-concat",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "safe-push-apply",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "safe-regex-test",
            "direct": false,
            "version": "1.1.0",
            "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": "scheduler",
            "direct": false,
            "version": "0.27.0",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "5.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "6.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.8.5",
            "ecosystem": "npm"
          },
          {
            "name": "send",
            "direct": false,
            "version": "0.19.2",
            "ecosystem": "npm"
          },
          {
            "name": "serialize-error",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "serve-static",
            "direct": false,
            "version": "1.16.3",
            "ecosystem": "npm"
          },
          {
            "name": "server-only",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "set-function-length",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "set-function-name",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "set-proto",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "setprototypeof",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "sf-symbols-typescript",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "shallowequal",
            "direct": false,
            "version": "1.1.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": "shell-quote",
            "direct": false,
            "version": "1.8.4",
            "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": "signal-exit",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "simple-plist",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "simple-swizzle",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "sisteransi",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "slash",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "slash",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "slash",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "slugify",
            "direct": false,
            "version": "1.6.9",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.5.7",
            "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.13",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-support",
            "direct": false,
            "version": "0.5.21",
            "ecosystem": "npm"
          },
          {
            "name": "split-on-first",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "sprintf-js",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "stack-generator",
            "direct": false,
            "version": "2.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "stack-utils",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "stackframe",
            "direct": false,
            "version": "1.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "stacktrace-gps",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "stacktrace-js",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "stacktrace-parser",
            "direct": false,
            "version": "0.1.11",
            "ecosystem": "npm"
          },
          {
            "name": "standard-navigation",
            "direct": false,
            "version": "0.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "statuses",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "statuses",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "stop-iteration-iterator",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "stream-buffers",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "strict-uri-encode",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "string-length",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "string-length",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.matchall",
            "direct": false,
            "version": "4.0.12",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.repeat",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.trim",
            "direct": false,
            "version": "1.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.trimend",
            "direct": false,
            "version": "1.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.trimstart",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "5.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-bom",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-bom",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-final-newline",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-indent",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-json-comments",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "structured-headers",
            "direct": false,
            "version": "0.4.1",
            "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-color",
            "direct": false,
            "version": "8.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "supports-hyperlinks",
            "direct": false,
            "version": "2.3.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": "synckit",
            "direct": false,
            "version": "0.11.13",
            "ecosystem": "npm"
          },
          {
            "name": "tapable",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "terminal-link",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "terser",
            "direct": false,
            "version": "5.48.0",
            "ecosystem": "npm"
          },
          {
            "name": "test-exclude",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "throat",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "tmpl",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "to-regex-range",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "toidentifier",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "toqr",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "tough-cookie",
            "direct": false,
            "version": "4.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "tr46",
            "direct": false,
            "version": "3.0.0",
            "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": "ts-jest",
            "direct": false,
            "version": "29.4.11",
            "ecosystem": "npm"
          },
          {
            "name": "tsconfig-paths",
            "direct": false,
            "version": "3.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-check",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-detect",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "4.41.0",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-buffer",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-byte-length",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-byte-offset",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-length",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "uglify-js",
            "direct": false,
            "version": "3.19.3",
            "ecosystem": "npm"
          },
          {
            "name": "unbox-primitive",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "7.24.6",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "8.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "unicode-canonical-property-names-ecmascript",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "unicode-match-property-ecmascript",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unicode-match-property-value-ecmascript",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "unicode-property-aliases-ecmascript",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "universalify",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "unpipe",
            "direct": false,
            "version": "1.0.0",
            "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": "use-callback-ref",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "use-latest-callback",
            "direct": false,
            "version": "0.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "use-sidecar",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "utils-merge",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "uuid",
            "direct": false,
            "version": "7.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "v8-to-istanbul",
            "direct": false,
            "version": "9.3.0",
            "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": "vaul",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "vlq",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "w3c-xmlserializer",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "walker",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "warn-once",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "wcwidth",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "webidl-conversions",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-encoding",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-fetch",
            "direct": false,
            "version": "3.6.20",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-mimetype",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-url",
            "direct": false,
            "version": "11.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-url-minimum",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "which-boxed-primitive",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "which-builtin-type",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "which-collection",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "which-typed-array",
            "direct": false,
            "version": "1.1.22",
            "ecosystem": "npm"
          },
          {
            "name": "word-wrap",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "wordwrap",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrappy",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "write-file-atomic",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": false,
            "version": "7.5.11",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": false,
            "version": "8.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "xcode",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "xml-name-validator",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "xml2js",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "xmlbuilder",
            "direct": false,
            "version": "11.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "xmlbuilder",
            "direct": false,
            "version": "15.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "xmlchars",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "y18n",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "yallist",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "17.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "17.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "21.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "yocto-queue",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": false,
            "version": "3.25.76",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "zod-validation-error",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 1062,
        "direct_count": 0,
        "indirect_count": 1062
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 59,
        "open_issues": 0,
        "closed_ratio": 1,
        "closed_issues": 10,
        "closed_unmerged_prs": 7
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "wwdrew",
          "commits": 93,
          "avatar_url": "https://avatars.githubusercontent.com/u/49833875?v=4"
        },
        {
          "type": "User",
          "login": "skdrew",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/101203626?v=4"
        },
        {
          "type": "User",
          "login": "johra",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/1061240?v=4"
        }
      ],
      "contributors_sampled": 3,
      "top_contributor_share": 0.979
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "release.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        "eslint.config.js"
      ],
      "has_editorconfig": true,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "yarn.lock"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 9,
            "reason": "binaries present in source code",
            "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": 7,
            "reason": "17 out of 22 merged PRs checked by a CI test -- score normalized to 7",
            "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": 1,
            "reason": "Found 2/15 approved changesets -- score normalized to 1",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 0,
            "reason": "project has 0 contributing companies or organizations -- score normalized to 0",
            "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": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 7 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": 10,
            "reason": "packaging workflow 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": 4,
            "reason": "security policy file 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": 2,
            "reason": "8 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "001f53ea9e05532755943742b3db8d883dfe08eb",
        "ran_at": "2026-08-01T01:26:46Z",
        "aggregate_score": 3.9,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-22T16:52:49Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-07-22T16:51:57Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/wwdrew/expo-spotify-sdk",
    "host": "github.com",
    "name": "expo-spotify-sdk",
    "owner": "wwdrew"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": "The weighted overall 64 is calibrated to 73 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 64,
            "calibrated": 73,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 73,
      "inputs": {
        "security": 51,
        "vitality": 77,
        "community": 50,
        "governance": 58,
        "calibration": "2026-08-02",
        "engineering": 76,
        "ai_readiness": 77,
        "weighted_overall_raw": 64
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 77,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "commits_last_year": 61,
              "human_commit_share": 0.87,
              "days_since_last_push": 9,
              "active_weeks_last_year": 10
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 9 days ago",
                "points": 28.8,
                "status": "partial",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 9
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "10/52 weeks with commits",
                "points": 6.9,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 10
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "61 commits in the last year",
                "points": 16.1,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 61
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "exceptional",
            "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": 14,
              "latest_release_tag": "expo-spotify-sdk-v2.3.2",
              "releases_from_tags": false,
              "days_since_latest_release": 9,
              "mean_days_between_releases": 6.1
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "14 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 14
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 9 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 9
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~6.1 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 6.1
                    }
                  }
                ],
                "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": "exceptional",
            "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": 11,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 11 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 11
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 50,
        "weight": 0.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "at_risk",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 26,
            "inputs": {
              "forks": 7,
              "stars": 17,
              "watchers": 1,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "17 stars",
                "points": 19.5,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 17
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "7 forks",
                "points": 6.5,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "1 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "readme_badges": null,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "readme_badge_services": [],
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "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": 61,
            "inputs": {
              "packages": [
                "@wwdrew/expo-spotify-sdk"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 4708
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "4,708 downloads/month across npm",
                "points": 49,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 4708,
                      "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": 58,
        "weight": 0.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 14,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 3,
              "top_contributor_share": 0.979
            },
            "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.5,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 98
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "3 contributors",
                "points": 4.1,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "excellent",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Newcomer PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "newcomer_pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 81,
            "inputs": {
              "merged_prs": 59,
              "open_issues": 0,
              "closed_issues": 10,
              "prs_merged_7d": null,
              "prs_decided_7d": null,
              "prs_merged_30d": null,
              "prs_decided_30d": null,
              "issue_closed_ratio": 1,
              "closed_unmerged_prs": 7,
              "first_time_authors_30d": null,
              "first_time_prs_merged_30d": null,
              "first_time_prs_decided_30d": null
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "100% of issues closed",
                "points": 42,
                "status": "met",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "59/66 decided PRs merged",
                "points": 26.8,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 59,
                      "decided": 66
                    }
                  }
                ],
                "max_points": 30
              },
              {
                "key": "newcomer_pr_acceptance",
                "name": "Newcomer PR acceptance",
                "detail": "no first-time contributor's PR decided in 30d",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_newcomer_prs",
                    "params": {
                      "days": 30
                    }
                  }
                ],
                "max_points": 13
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 2/15 approved changesets -- score normalized to 1",
                "points": 1.5,
                "status": "partial",
                "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": 54,
            "inputs": {
              "followers": 17,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "wwdrew",
              "public_repos": 51,
              "account_age_days": 2658
            },
            "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": "17 followers of wwdrew",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 17,
                      "login": "wwdrew"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "51 public repos, account ~7 yr old",
                "points": 24.5,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 51
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 7
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "exceptional",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@wwdrew/expo-spotify-sdk"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 9
            },
            "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 9 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 9
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "24 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 24
                    }
                  }
                ],
                "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": 76,
        "weight": 0.19,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 84,
            "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": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "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.js",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "eslint.config.js"
                    }
                  }
                ],
                "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": "17 out of 22 merged PRs checked by a CI test -- score normalized to 7",
                "points": 14,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "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": 51,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "weak",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 39,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 3.9
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 6.8,
                "status": "partial",
                "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": "17 out of 22 merged PRs checked by a CI test -- score normalized to 7",
                "points": 1.8,
                "status": "partial",
                "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 2/15 approved changesets -- score normalized to 1",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "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": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 7 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 detected",
                "points": 5,
                "status": "met",
                "details": [],
                "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 detected",
                "points": 2,
                "status": "partial",
                "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": "8 existing vulnerabilities detected",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "exceptional",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 1062 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 1062
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 13,
              "affected_packages": 9,
              "assessed_packages": 1062,
              "unassessed_packages": 0,
              "affected_by_severity": "high 9",
              "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": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "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": "exceptional",
            "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": 1062,
              "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": "exceptional",
            "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"
              ],
              "commit_weight_rule": {
                "min_commits": 50,
                "min_commit_share": 0.1
              },
              "review_only_matches": 0,
              "below_threshold_exposures": [],
              "assessed_self_published_locations": 3
            },
            "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": "good",
        "name": "AI Readiness",
        "value": 77,
        "weight": 0.04,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [
                "AGENTS.md"
              ],
              "agent_instruction_max_bytes": 531
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "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": "87 of 87 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 87,
                      "sampled": 87
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 77,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "yarn.lock"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "example/tsconfig.json",
                "plugin/tsconfig.json",
                "tsconfig.json"
              ],
              "agent_commit_share": 0.27,
              "toolchain_manifests": [
                "android/build.gradle",
                "example/android/app/build.gradle",
                "example/android/build.gradle"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "android/build.gradle, example/android/app/build.gradle, example/android/build.gradle (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "android/build.gradle, example/android/app/build.gradle, example/android/build.gradle"
                    }
                  }
                ],
                "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.js",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "eslint.config.js"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "example/tsconfig.json, plugin/tsconfig.json, tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "example/tsconfig.json, plugin/tsconfig.json, 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": "27 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 27,
                      "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": "exceptional",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 20879,
              "source_files_sampled": 97,
              "oversized_source_files": 0
            },
            "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": "0/97 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 97,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "weak",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "example"
              ],
              "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": "example",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "example"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
      }
    ],
    "classification": {
      "labels": [
        "library"
      ],
      "scores": {
        "library": 6
      },
      "primary": "library",
      "evidence": [
        {
          "tier": "distribution",
          "label": "library",
          "source": "registry:npm",
          "weight": 6
        }
      ],
      "artifacts": [],
      "confidence": "medium",
      "host_extension": false,
      "runs_as_process": false,
      "consumed_by_code": true
    },
    "metrics_version": "2.3.1"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-08-01T01:27:03.879625Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/w/wwdrew/expo-spotify-sdk.svg",
  "full_name": "wwdrew/expo-spotify-sdk",
  "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 v2.3.1, 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.