Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 2.3.1 · 2026-08-01 01:27 UTC

wwdrew / expo-spotify-sdk

Expo Module for native Spotify SDKs

TypeScript · Swift · KotlinMIT★ 17 Sterne⑂ 7 Forksseit Dez. 2023Auf GitHub ansehen ↗

wwdrew/expo-spotify-sdk erreicht einen Gesundheitsindex von 73 von 100 und liegt damit im Bereich Gut. Am stärksten schneidet es bei Vitality (77/100) ab, am schwächsten bei Community & Adoption (50/100). Zuletzt vor 9 Tagen aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

73
gesamt / 100
Gut

Software-Gesundheitsindex

Metriken werden auf einer standardisierten Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr gewichtetes Mittel, kalibriert auf die Verteilung des öffentlichen Registers, sodass die Stufen Perzentilbedeutung tragen; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze Gefährdet von 34.

73
Außergewöhnlich93-100Die Spitzengruppe des Registers (≈ obere 5 %); erfüllt im Wesentlichen alle geprüften Kriterien
Exzellent80-92Durchgehend stark; geringfügige Lücken
Gut65-79Gesund; Lücken sind begrenzt und beherrschbar
Mittel50-64Akzeptabel mit deutlichen Lücken; Überprüfung empfohlen
Schwach35-49Wesentliche Schwächen in mehreren Bereichen
Gefährdet20-34Erhebliche Schwächen; eine Übernahme erfordert Vorsicht
Kritisch1-19Schwerwiegende Probleme (aufgegeben, nur ein Maintainer, keine Hygiene)
VitalitätCommunity &VerbreitungNachhaltigkeit &GovernanceEngineering-QualitätSicherheitAI Readiness

Bewertungsprofil

Jede Achse ist eine Kategorie. Die Form zählt mehr als der Durchschnitt — ein gesundes Projekt füllt die gesamte Fläche, während ein Profil aus Spitzen und Kratern bedeutet, dass Stärke in einer Dimension Risiken in einer anderen verdeckt.

Der gewichtete Gesamtwert 64 wird auf der veröffentlichten Indexskala auf 73 kalibriert (Register-Kalibrierung 2026-08-02).

Eigentümerschaft

Drew MillerPersönliches Konto
17 Follower51 öffentliche Reposseit Apr. 2019

Dieses Repository gehört einem persönlichen Konto. Ein Projekt mit nur einem Eigentümer trägt ein höheres Kontinuitätsrisiko als ein organisationsgetragenes.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlichtTags
npm@wwdrew/expo-spotify-sdk2.3.24.70824vor 9 Tagenreact-nativeexpoexpo-spotify-sdkexpospotifysdkspotify

Metriken nach Kategorie

Vitalität

Lebt das Projekt — wird Code geschrieben und werden Releases ausgeliefert?

77Gut · 21 % des Gesamtindex
Wie die Bewertung erfolgt
28.8/36Push-Aktualität — letzter Push vor 9 Tagen
6.9/36Commit-Rhythmus — 10/52 Wochen mit Commits
16.1/18Commit-Volumen — 61 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year61
human_commit_share0,87
days_since_last_push9
active_weeks_last_year10

Release-Disziplin

100Außergewöhnlich
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 14 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 9 Tagen
27/27Release-Rhythmus — ein Release etwa alle 6,1 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count14
latest_release_tagexpo-spotify-sdk-v2.3.2
releases_from_tagsnein
days_since_latest_release9
mean_days_between_releases6,1
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Signed-Releases. Die verbleibenden Gewichte wurden renormalisiert.

Community & Verbreitung

Hat das Projekt Nutzer, Downloads, Aufmerksamkeit und ein einladendes Umfeld für Beitragende?

50Mittel · 17 % des Gesamtindex
Wie die Bewertung erfolgt
19.5/60Stars — 17 Stars
6.5/25Forks — 7 Forks
0/15Watcher — 1 Watcher
Verwendete Eingangsdaten
forks7
stars17
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
18/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
readme_badges
has_contributingja
has_issue_templatenein
has_code_of_conductnein
readme_badge_services
has_pull_request_templatenein
Wie die Bewertung erfolgt
49/80Downloads pro Monat — 4.708 Downloads/Monat über npm
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packages@wwdrew/expo-spotify-sdk
dependents
ecosystemsnpm
total_downloads
monthly_downloads4.708
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Abhängige in der Registry. Die verbleibenden Gewichte wurden renormalisiert.

Nachhaltigkeit & Governance

Überdauert das Projekt die Menschen, die es tragen — Bus-Faktor, Reaktionsfähigkeit, Trägerschaft und Paketpflege?

58Mittel · 23 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
0.5/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 98 % der Commits
4.1/13.5Breite der Beitragenden — 3 Beitragende
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Verwendete Eingangsdaten
bus_factor1
contributors_sampled3
top_contributor_share0,979
Wie die Bewertung erfolgt
42/42Issue-Lösungsquote — 100 % der Issues geschlossen
26.8/30PR-Annahme — 59/66 entschiedene PRs gemergt
0/13Newcomer PR acceptance — kein PR eines Erstbeitragenden in 30 Tagen entschieden
1.5/15OpenSSF Scorecard: Code-Review — Found 2/15 approved changesets -- score normalized to 1
Verwendete Eingangsdaten
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
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): newcomer_pr_acceptance. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
9/25Reichweite des Inhabers — 17 Follower von wwdrew
24.5/25Kontohistorie — 51 öffentliche Repos, Kontoalter ca. 7 Jahre
Verwendete Eingangsdaten
followers17
owner_typeUser
is_verified
owner_loginwwdrew
public_repos51
account_age_days2.658
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Verifizierte Domain. Die verbleibenden Gewichte wurden renormalisiert.

Paketpflege

100Außergewöhnlich
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 1 Paket(e) auf npm
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 9 Tagen
20/20Versionshistorie — 24 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packages@wwdrew/expo-spotify-sdk
ecosystemsnpm
any_deprecatednein
min_days_since_publish9

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

76Gut · 19 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 2 Workflow(s)
24/24Tests vorhanden
16/16Linter-Konfiguration — eslint.config.js
0/9.6Pre-Commit-Hooks
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
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfigja
has_linter_configja
has_precommit_confignein
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
0/15Dokumentations-/Homepage-Site
10/10Repository-Beschreibung
0/10Topics
0/10Wiki
Verwendete Eingangsdaten
topics
has_wikinein
homepage
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

Sind die sichtbaren Sicherheits- und Lieferkettenpraktiken belastbar, ohne ungeklärte Exposition gegenüber Hochrisikojurisdiktionen?

51Mittel · 16 % des Gesamtindex
Wie die Bewertung erfolgt
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.5Lizenz — 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 — keine Daten
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
1.5/7.5Vulnerabilities — 8 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate3,9
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): signed_releases. Die verbleibenden Gewichte wurden renormalisiert.

Abhängigkeits-Advisories

100Außergewöhnlich
Wie die Bewertung erfolgt
35/35Direkte Abhängigkeiten ohne bekannte Advisories — keine direkte Abhängigkeit trägt ein bekanntes Advisory
0/25Indirekte Abhängigkeiten ohne bekannte Advisories — transitive Menge in diesem Bereich nicht von Entwicklungs- und Test-Abhängigkeiten trennbar
0/40Keine offenen Advisories — kein Advisory trägt ein Veröffentlichungsdatum
Verwendete Eingangsdaten
sourceosv
advisories13
affected_packages9
assessed_packages1.062
unassessed_packages0
affected_by_severityhigh 9
direct_affected_packages0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Indirekte Abhängigkeiten ohne bekannte Advisories, Keine offenen Advisories. Die verbleibenden Gewichte wurden renormalisiert. 1062 aufgelöste Abhängigkeiten wurden mit OSV abgeglichen. Dieses Repository veröffentlicht kein Paket, das der Index auflöst; bewertet wurde daher der Abhängigkeitsgraph des Repositorys. Dieser Graph vermischt Entwicklungs- und Test-Pins mit ausgelieferten Abhängigkeiten, daher werden nur die deklarierten Laufzeit-Abhängigkeiten bewertet; transitive Befunde werden als Kontext ausgewiesen und fließen nicht in die Bewertung ein. Erreichbarkeit wird nicht analysiert.

AI Readiness

Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Trägt ein bewusst kleines Gewicht (4 %): Agenten-Tooling ist ein echtes Pflegesignal, doch ein Repository ohne jedes Signal kann weiterhin 100/100 erreichen.

77Gut · 4 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — AGENTS.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 87 von 87 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share1
agent_instruction_filesAGENTS.md
agent_instruction_max_bytes531
Wie die Bewertung erfolgt
12.6/18Bootstrap mit einem Befehl — android/build.gradle, example/android/app/build.gradle, example/android/build.gradle (Toolchain-Konvention, kein Task-Runner)
22/22Automatisierte Tests
11/11Lint-/Format-Konfiguration — eslint.config.js
11/11Statische Typprüfung — example/tsconfig.json, plugin/tsconfig.json, tsconfig.json
10/10Reproduzierbare Umgebung — lockfile
10/10Belegte Agentenpraxis — 27 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilesyarn.lock
has_dockerfilenein
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_configja
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
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — TypeScript (statisch typisiert)
55/55Handhabbare Dateigrößen — 0/97 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageTypeScript
largest_source_bytes20.879
source_files_sampled97
oversized_source_files0
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
0/20MCP-Server
40/40Lauffähige Beispiele — example
Verwendete Eingangsdaten
example_dirsexample
has_mcp_signalnein
api_schema_files

Eckdaten

17GitHub-Sterne
3Mitwirkende
61Commits, letzte 12 Monate
9Tage seit letztem Push
14Releases
1Bus-Faktor
0offene Issues
Maven, npmPaket-Ökosysteme

Warnungen zur Datenerhebung

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

Weitere Details

Stern- und Fork-Verlauf 0 ★ / 7 ⇿
0Sterne
7Forks

Wann jeder Stern und Fork hinzugefügt wurde, von GitHub erfasst und nach Tagen gruppiert. Das kumulierte Wachstum steht direkt über den täglichen Zugängen, aus denen es besteht, sodass beide gegeneinander lesbar sind: stetiger organischer Zuwachs sieht ganz anders aus als ein abrupter, kurzlebiger Ausschlag. Wo dieser Unterschied messbar ist, wird er als Wachstumsauthentizität ausgewiesen.

1234567712024-012025-022026-03

Jeder Punkt umfasst 2 Tage.

OpenSSF Scorecard 3.9 / 10
3.9Gesamtwert

Unabhängige, werkzeugneutrale Sicherheitsbewertung durch das quelloffene OpenSSF Scorecard. Jede Prüfung honoriert eine Sicherheits-Praxis, nicht das Werkzeug eines bestimmten Anbieters. Prüfungen, die Scorecard nicht ermitteln konnte, sind mit k. A. markiert und vom Sicherheitswert ausgeschlossen (nie als null gezählt).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
k. A.Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
2Vulnerabilities8 existing vulnerabilities detected
Alle Abhängigkeiten 1.062

Vollständig aufgelöster Abhängigkeitssatz aus dem GitHub-Abhängigkeitsgraphen: 0 direkte und 1.062 indirekte (transitive) Pakete. Die transitive Hülle ist vollständig, wenn das Repository eine Lockfile eincheckt.

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

Dieses Repository veröffentlicht kein vom Index auflösbares Paket, daher wurde sein eigener Abhängigkeitsgraph bewertet – 1.062 Pakete, darunter auch Entwicklungs- und Test-Pins, die nie ausgeliefert werden: 9 tragen bekannte Advisories, davon 0 direkte.

PaketVersionBeziehungSchweregradAdvisoriesBehoben in
brace-expansion1.1.15indirekthoch25.0.8
brace-expansion2.1.1indirekthoch25.0.8
brace-expansion5.0.6indirekthoch25.0.8
form-data4.0.5indirekthoch14.0.6
js-yaml3.14.2indirekthoch24.3.0
js-yaml4.2.0indirekthoch14.3.0
postcss8.5.15indirekthoch18.5.18
shell-quote1.8.4indirekthoch11.9.0
uuid7.0.3indirekthoch113.0.1

Ein Advisory bedeutet, dass die im Abhängigkeitsgraphen erfasste Version in den betroffenen Bereich eines Advisories fällt. Erreichbarkeit wird nicht analysiert, und der Graph enthält Entwicklungs- und Test-Pins — ein Fund kann das Werkzeug betreffen und nicht die ausgelieferte Software.

JSON-Rohbericht maschinenlesbar
{
  "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"
}

Bewertungen sind Signale, keine Garantien. Sie spiegeln öffentlich sichtbare Praxis auf GitHub wider — kein Code-Audit und keine Sicherheitsgarantie.

Fehlende Daten werden ausgeschlossen und die Gewichte neu normiert, nie als null bewertet. Die Methodik ist versioniert und offen: Metriken v2.3.1, Schema v0.27.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte Statistikennpm.