Öffentliches Register
Software-GesundheitsberichtSchema 0.14.0 · Metriken 1.13.0 · 2026-07-18 22:24 UTC

TobiasBuchholz / Plugin.Firebase

Wrapper around the native Android and iOS Firebase Xamarin SDKs

C#MIT★ 305 Sterne⑂ 63 Forksseit Juni 2018Auf GitHub ansehen ↗

TobiasBuchholz/Plugin.Firebase erreicht einen Gesundheitsindex von 63 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Engineering Quality (74/100) ab, am schwächsten bei Security (55/100). Zuletzt vor 37 Tagen aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

63
gesamt / 100
Mittel

Software-Gesundheitsindex

Metriken werden auf einer Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr Mittel; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze 49 (Gefährdet). AI Readiness liegt außerhalb.

63
Exzellent85-100Vorbildlich; erfüllt im Wesentlichen alle geprüften Kriterien
Gut70-84Gesund; geringfügige Lücken
Mittel50-69Akzeptabel mit deutlichen Lücken; Überprüfung empfohlen
Gefährdet30-49Erhebliche Schwächen; eine Übernahme erfordert Vorsicht
Kritisch1-29Schwerwiegende 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.

Eigentümerschaft

TobiasBuchholzPersönliches Konto
36 Follower36 öffentliche Reposseit Okt. 2011

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.

Metriken nach Kategorie

Vitalität

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

60Mittel · 22 % des Gesamtindex
Wie die Bewertung erfolgt
18/36Push-Aktualität — letzter Push vor 37 Tagen
12.5/36Commit-Rhythmus — 18/52 Wochen mit Commits
18/18Commit-Volumen — 205 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year205
human_commit_share
days_since_last_push37
active_weeks_last_year18
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 1 Releases veröffentlicht
16.2/36Release-Aktualität — letztes Release vor 201 Tagen
12.6/27Release-Rhythmus — Rhythmus unbekannt (nur ein Release)
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count1
latest_release_tag4.0.0
releases_from_tagsnein
days_since_latest_release201
mean_days_between_releases
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?

66Mittel · 18 % des Gesamtindex
Wie die Bewertung erfolgt
40.3/60Stars — 305 Stars
14.9/25Forks — 63 Forks
6.7/15Watcher — 17 Watcher
Verwendete Eingangsdaten
forks63
stars305
watchers17
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
has_contributingja
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein

Nachhaltigkeit & Governance

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

59Mittel · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
8.9/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 60 % der Commits
13.5/13.5Breite der Beitragenden — 19 Beitragende
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Verwendete Eingangsdaten
bus_factor1
contributors_sampled19
top_contributor_share0,605
Wie die Bewertung erfolgt
45.6/46.8Issue-Lösungsquote — 98 % der Issues geschlossen
30.3/38.3PR-Annahme — 163/206 entschiedene PRs gemergt
15/15OpenSSF Scorecard: Code-Review — all changesets reviewed
Verwendete Eingangsdaten
merged_prs163
open_issues10
closed_issues401
issue_closed_ratio0,976
closed_unmerged_prs43
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
11.3/25Reichweite des Inhabers — 36 Follower von TobiasBuchholz
23.4/25Kontohistorie — 36 öffentliche Repos, Kontoalter ca. 14 Jahre
Verwendete Eingangsdaten
followers36
owner_typeUser
is_verified
owner_loginTobiasBuchholz
public_repos36
account_age_days5.388
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Verifizierte Domain. Die verbleibenden Gewichte wurden renormalisiert.

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

74Gut · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 4 Workflow(s)
24/24Tests vorhanden
0/16Linter-Konfiguration
0/9.6Pre-Commit-Hooks
6.4/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfigja
has_linter_confignein
has_precommit_confignein
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
0/15Dokumentations-/Homepage-Site
10/10Repository-Beschreibung
0/10Topics
10/10Wiki
Verwendete Eingangsdaten
topics
has_wikija
homepage
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

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

55Mittel · 16 % des Gesamtindex
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — keine Daten
2.5/2.5CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
7.5/7.5Code-Review — all changesets reviewed
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
7.5/7.5Maintained — 30 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — keine Daten
1/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — keine Daten
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 42 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate5,5
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): branch_protection, packaging, signed_releases. Die verbleibenden Gewichte wurden renormalisiert.

AI Readiness

Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Ein unabhängiges, experimentelles Badge — Gewicht 0,0, es wird eigenständig ausgewiesen und verändert den Gesamt-Gesundheitswert nicht.

66Mittel · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — .github/copilot-instructions.md, AGENTS.md
0/15Maschinenlesbare Doku (llms.txt)
0/40Lesbare Commit-Historie — keine Daten
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share
agent_instruction_files.github/copilot-instructions.md, AGENTS.md
agent_instruction_max_bytes2.907
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Lesbare Commit-Historie. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
0/18Bootstrap mit einem Befehl
22/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — sample/playground-functions/functions/tsconfig.json, tests/cloud-functions/functions/tsconfig.json
10/10Reproduzierbare Umgebung — lockfile
0/10Belegte Agentenpraxis — keine Daten
0/8Automatisierte Wartung — keine Daten
2/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilespackage-lock.json
has_dockerfilenein
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_confignein
typecheck_configssample/playground-functions/functions/tsconfig.json, tests/cloud-functions/functions/tsconfig.json
agent_commit_share
toolchain_manifests
dependency_bot_commit_share
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Belegte Agentenpraxis, Automatisierte Wartung. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — C# (statisch typisiert)
55/55Handhabbare Dateigrößen — 0/406 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageC#
largest_source_bytes14.084
source_files_sampled406
oversized_source_files0
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
0/20MCP-Server
40/40Lauffähige Beispiele — sample
Verwendete Eingangsdaten
example_dirssample
has_mcp_signalnein
api_schema_files

Eckdaten

305GitHub-Sterne
19Mitwirkende
205Commits, letzte 12 Monate
37Tage seit letztem Push
1Releases
1Bus-Faktor
10offene Issues
Paket-Ökosysteme

Weitere Details

OpenSSF Scorecard 5.5 / 10
5.5Gesamtwert

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-07-18 22:24 UTC

10Binary-Artifactsno binaries found in the repo
k. A.Branch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
10CI-Tests30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
10Code-Reviewall changesets reviewed
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10
k. A.Packagingpackaging workflow not detected
2Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 2
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
k. A.Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities42 existing vulnerabilities detected
Alle Abhängigkeiten 361

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

RegistryPaketVersionBeziehung
npm@babel/code-frame7.10.4indirekt
npm@babel/code-frame7.18.6indirekt
npm@babel/helper-validator-identifier7.10.4indirekt
npm@babel/helper-validator-identifier7.19.1indirekt
npm@babel/highlight7.10.4indirekt
npm@babel/highlight7.18.6indirekt
npm@fastify/busboy1.2.1indirekt
npm@firebase/app-check-interop-types0.3.1indirekt
npm@firebase/app-types0.9.1indirekt
npm@firebase/auth-interop-types0.2.2indirekt
npm@firebase/component0.6.6indirekt
npm@firebase/database1.0.4indirekt
npm@firebase/database-compat1.0.4indirekt
npm@firebase/database-types1.0.2indirekt
npm@firebase/logger0.4.1indirekt
npm@firebase/util1.9.5indirekt
npm@google-cloud/firestore7.6.0indirekt
npm@google-cloud/paginator5.0.0indirekt
npm@google-cloud/projectify4.0.0indirekt
npm@google-cloud/promisify4.0.0indirekt
npm@google-cloud/storage7.19.0indirekt
npm@google-cloud/storage7.9.0indirekt
npm@grpc/grpc-js1.10.11indirekt
npm@grpc/grpc-js1.10.9indirekt
npm@grpc/proto-loader0.7.13indirekt
npm@js-sdsl/ordered-map4.4.2indirekt
npm@protobufjs/aspromise1.1.2indirekt
npm@protobufjs/base641.1.2indirekt
npm@protobufjs/codegen2.0.4indirekt
npm@protobufjs/eventemitter1.1.0indirekt
npm@protobufjs/fetch1.1.0indirekt
npm@protobufjs/float1.0.2indirekt
npm@protobufjs/inquire1.1.0indirekt
npm@protobufjs/path1.1.2indirekt
npm@protobufjs/pool1.1.0indirekt
npm@protobufjs/utf81.1.0indirekt
npm@tootallnate/once2.0.0indirekt
npm@types/body-parser1.19.0indirekt
npm@types/body-parser1.19.2indirekt
npm@types/caseless0.12.5indirekt
npm@types/connect3.4.33indirekt
npm@types/connect3.4.35indirekt
npm@types/cors2.8.12indirekt
npm@types/express4.17.21indirekt
npm@types/express4.17.3indirekt
npm@types/express-serve-static-core4.19.0indirekt
npm@types/jsonwebtoken9.0.6indirekt
npm@types/lodash4.14.185indirekt
npm@types/long4.0.2indirekt
npm@types/mime1.3.5indirekt
npm@types/mime2.0.3indirekt
npm@types/mime3.0.1indirekt
npm@types/node20.12.7indirekt
npm@types/qs6.9.5indirekt
npm@types/qs6.9.7indirekt
npm@types/range-parser1.2.3indirekt
npm@types/range-parser1.2.4indirekt
npm@types/request2.48.12indirekt
npm@types/send0.17.4indirekt
npm@types/serve-static1.13.8indirekt
npm@types/serve-static1.15.0indirekt
npm@types/tough-cookie4.0.5indirekt
npmabort-controller3.0.0indirekt
npmaccepts1.3.8indirekt
npmagent-base6.0.2indirekt
npmagent-base7.1.1indirekt
npmansi-regex5.0.1indirekt
npmansi-styles3.2.1indirekt
npmansi-styles4.3.0indirekt
npmargparse1.0.10indirekt
npmarray-flatten1.1.1indirekt
npmarrify2.0.1indirekt
npmasync-retry1.3.3indirekt
npmasynckit0.4.0indirekt
npmbalanced-match1.0.0indirekt
npmbalanced-match1.0.2indirekt
npmbase64-js1.5.1indirekt
npmbignumber.js9.1.2indirekt
npmbody-parser1.20.3indirekt
npmbrace-expansion1.1.11indirekt
npmbuffer-equal-constant-time1.0.1indirekt
npmbuiltin-modules1.1.1indirekt
npmbytes3.1.2indirekt
npmcall-bind1.0.7indirekt
npmcall-bind-apply-helpers1.0.2indirekt
npmcall-bound1.0.4indirekt
npmchalk2.4.2indirekt
npmclass-transformer0.3.1indirekt
npmcliui8.0.1indirekt
npmcolor-convert1.9.3indirekt
npmcolor-convert2.0.1indirekt
npmcolor-name1.1.3indirekt
npmcolor-name1.1.4indirekt
npmcombined-stream1.0.8indirekt
npmcommander2.20.3indirekt
npmcompressible2.0.18indirekt
npmconcat-map0.0.1indirekt
npmcontent-disposition0.5.4indirekt
npmcontent-type1.0.5indirekt
npmcookie0.7.1indirekt
npmcookie-signature1.0.6indirekt
npmcors2.8.5indirekt
npmdebug2.6.9indirekt
npmdebug4.3.4indirekt
npmdefine-data-property1.1.4indirekt
npmdelayed-stream1.0.0indirekt
npmdepd2.0.0indirekt
npmdestroy1.2.0indirekt
npmdiff4.0.2indirekt
npmdunder-proto1.0.1indirekt
npmduplexify4.1.3indirekt
npmecdsa-sig-formatter1.0.11indirekt
npmee-first1.1.1indirekt
npmemoji-regex8.0.0indirekt
npmencodeurl1.0.2indirekt
npmencodeurl2.0.0indirekt
npmend-of-stream1.4.4indirekt
npment2.2.0indirekt
npmes-define-property1.0.1indirekt
npmes-errors1.3.0indirekt
npmes-object-atoms1.1.1indirekt
npmes-set-tostringtag2.1.0indirekt
npmescalade3.1.2indirekt
npmescape-html1.0.3indirekt
npmescape-string-regexp1.0.5indirekt
npmesprima4.0.1indirekt
npmetag1.8.1indirekt
npmevent-target-shim5.0.1indirekt
npmexpress4.21.2indirekt
npmexpress4.22.1indirekt
npmextend3.0.2indirekt
npmfast-deep-equal3.1.3indirekt
npmfast-xml-builder1.0.0indirekt
npmfast-xml-parser4.4.1indirekt
npmfast-xml-parser5.4.1indirekt
npmfaye-websocket0.11.4indirekt
npmfinalhandler1.3.1indirekt
npmfirebase-admin12.0.0indirekt
npmfirebase-functions3.23.0indirekt
npmfirebase-functions3.24.0indirekt
npmfirebase-functions-test0.2.3indirekt
npmform-data2.5.5indirekt
npmforwarded0.2.0indirekt
npmfresh0.5.2indirekt
npmfs.realpath1.0.0indirekt
npmfunction-bind1.1.2indirekt
npmfunctional-red-black-tree1.0.1indirekt
npmgaxios6.4.0indirekt
npmgcp-metadata6.1.0indirekt
npmget-caller-file2.0.5indirekt
npmget-intrinsic1.3.0indirekt
npmget-proto1.0.1indirekt
npmglob7.1.6indirekt
npmglob7.2.3indirekt
npmgoogle-auth-library9.7.0indirekt
npmgoogle-gax4.3.2indirekt
npmgopd1.2.0indirekt
npmgtoken7.1.0indirekt
npmhas1.0.3indirekt
npmhas-flag3.0.0indirekt
npmhas-property-descriptors1.0.2indirekt
npmhas-symbols1.1.0indirekt
npmhas-tostringtag1.0.2indirekt
npmhasown2.0.2indirekt
npmhtml-entities2.6.0indirekt
npmhttp-errors2.0.0indirekt
npmhttp-parser-js0.5.8indirekt
npmhttp-proxy-agent5.0.0indirekt
npmhttps-proxy-agent5.0.1indirekt
npmhttps-proxy-agent7.0.4indirekt
npmiconv-lite0.4.24indirekt
npminflight1.0.6indirekt
npminherits2.0.4indirekt
npmipaddr.js1.9.1indirekt
npmis-core-module2.10.0indirekt
npmis-core-module2.2.0indirekt
npmis-fullwidth-code-point3.0.0indirekt
npmis-stream2.0.1indirekt
npmjose4.15.5indirekt
npmjs-tokens4.0.0indirekt
npmjs-yaml3.14.2indirekt
npmjson-bigint1.0.0indirekt
npmjsonwebtoken9.0.0indirekt
npmjwa1.4.2indirekt
npmjwa2.0.1indirekt
npmjwks-rsa3.1.0indirekt
npmjws3.2.3indirekt
npmjws4.0.1indirekt
npmlimiter1.1.5indirekt
npmlodash4.17.23indirekt
npmlodash.camelcase4.3.0indirekt
npmlodash.clonedeep4.5.0indirekt
npmlong5.2.3indirekt
npmlru-cache4.0.2indirekt
npmlru-cache6.0.0indirekt
npmlru-memoizer2.2.0indirekt
npmmath-intrinsics1.1.0indirekt
npmmedia-typer0.3.0indirekt
npmmerge-descriptors1.0.3indirekt
npmmethods1.1.2indirekt
npmmime1.6.0indirekt
npmmime3.0.0indirekt
npmmime-db1.52.0indirekt
npmmime-types2.1.35indirekt
npmminimatch3.1.2indirekt
npmminimatch3.1.5indirekt
npmminimist1.2.6indirekt
npmmkdirp0.5.5indirekt
npmmkdirp0.5.6indirekt
npmms2.0.0indirekt
npmms2.1.2indirekt
npmms2.1.3indirekt
npmnegotiator0.6.3indirekt
npmnode-fetch2.7.0indirekt
npmnode-forge1.3.3indirekt
npmobject-assign4.1.1indirekt
npmobject-hash3.0.0indirekt
npmobject-inspect1.13.3indirekt
npmon-finished2.4.1indirekt
npmonce1.4.0indirekt
npmp-limit3.1.0indirekt
npmparseurl1.3.3indirekt
npmpath-is-absolute1.0.1indirekt
npmpath-parse1.0.7indirekt
npmpath-to-regexp0.1.12indirekt
npmproto3-json-serializer2.0.1indirekt
npmprotobufjs7.2.6indirekt
npmproxy-addr2.0.7indirekt
npmpseudomap1.0.2indirekt
npmqs6.13.0indirekt
npmqs6.14.2indirekt
npmrange-parser1.2.1indirekt
npmraw-body2.5.2indirekt
npmreadable-stream3.6.2indirekt
npmreflect-metadata0.1.13indirekt
npmrequire-directory2.1.1indirekt
npmresolve1.19.0indirekt
npmresolve1.22.1indirekt
npmretry0.13.1indirekt
npmretry-request7.0.2indirekt
npmsafe-buffer5.2.1indirekt
npmsafer-buffer2.1.2indirekt
npmsemver5.7.2indirekt
npmsemver7.5.4indirekt
npmsend0.19.0indirekt
npmserve-static1.16.2indirekt
npmset-function-length1.2.2indirekt
npmsetprototypeof1.2.0indirekt
npmside-channel1.0.6indirekt
npmside-channel1.1.0indirekt
npmside-channel-list1.0.0indirekt
npmside-channel-map1.0.1indirekt
npmside-channel-weakmap1.0.2indirekt
npmsprintf-js1.0.3indirekt
npmstatuses2.0.1indirekt
npmstream-events1.0.5indirekt
npmstream-shift1.0.3indirekt
npmstring-width4.2.3indirekt
npmstring_decoder1.3.0indirekt
npmstrip-ansi6.0.1indirekt
npmstrnum1.0.5indirekt
npmstrnum2.2.0indirekt
npmstubs3.0.0indirekt
npmsupports-color5.5.0indirekt
npmsupports-preserve-symlinks-flag1.0.0indirekt
npmteeny-request9.0.0indirekt
npmtext-decoding1.0.0indirekt
npmtoidentifier1.0.1indirekt
npmtr460.0.3indirekt
npmtslib1.14.1indirekt
npmtslib2.6.2indirekt
npmtslint5.20.1indirekt
npmtsutils2.29.0indirekt
npmtype-is1.6.18indirekt
npmtypescript4.8.3indirekt
npmundici-types5.26.5indirekt
npmunpipe1.0.0indirekt
npmutil-deprecate1.0.2indirekt
npmutils-merge1.0.1indirekt
npmuuid8.3.2indirekt
npmuuid9.0.1indirekt
npmvary1.1.2indirekt
npmwebidl-conversions3.0.1indirekt
npmwebsocket-driver0.7.4indirekt
npmwebsocket-extensions0.1.4indirekt
npmwhatwg-url5.0.0indirekt
npmwrap-ansi7.0.0indirekt
npmwrappy1.0.2indirekt
npmy18n5.0.8indirekt
npmyallist2.1.2indirekt
npmyallist4.0.0indirekt
npmyargs17.7.2indirekt
npmyargs-parser21.1.1indirekt
npmyocto-queue0.1.0indirekt
NuGetAdamE.Firebase.iOS.Analyticsindirekt
NuGetAdamE.Firebase.iOS.AppCheckindirekt
NuGetAdamE.Firebase.iOS.Authindirekt
NuGetAdamE.Firebase.iOS.CloudFirestoreindirekt
NuGetAdamE.Firebase.iOS.CloudFunctionsindirekt
NuGetAdamE.Firebase.iOS.CloudMessagingindirekt
NuGetAdame.Firebase.iOS.Coreindirekt
NuGetAdamE.Firebase.iOS.Crashlyticsindirekt
NuGetAdamE.Firebase.iOS.Installationsindirekt
NuGetAdamE.Firebase.iOS.PerformanceMonitoringindirekt
NuGetAdamE.Firebase.iOS.RemoteConfigindirekt
NuGetAdamE.Firebase.iOS.Storageindirekt
NuGetCommunityToolkit.Maui1.2.0indirekt
NuGetCommunityToolkit.Maui.Markup1.0.1indirekt
NuGetcoverlet.collector6.0.2indirekt
NuGetDeviceRunners.UITesting.Maui0.1.0-preview.6indirekt
NuGetDeviceRunners.VisualRunners.Maui0.1.0-preview.6indirekt
NuGetDeviceRunners.VisualRunners.Xunit0.1.0-preview.6indirekt
NuGetDeviceRunners.XHarness.Maui0.1.0-preview.6indirekt
NuGetDeviceRunners.XHarness.Xunit0.1.0-preview.6indirekt
NuGetGenesis.Logging3.0.0indirekt
NuGetGenesis.Observables3.0.0indirekt
NuGetGoogleGson2.11.0.3indirekt
NuGetJetBrains.Annotations2025.2.4indirekt
NuGetMicrosoft.Extensions.Logging.Debug9.0.0indirekt
NuGetMicrosoft.Maui.Controlsindirekt
NuGetMicrosoft.Maui.Controls.Compatibilityindirekt
NuGetMicrosoft.NET.Test.Sdk17.12.0indirekt
NuGetNSubstitute5.3.0indirekt
NuGetReactiveUI18.3.1indirekt
NuGetReactiveUI.Fody18.3.1indirekt
NuGetReactiveUI.Maui18.3.1indirekt
NuGetXamarin.AndroidX.Activity1.10.1.3indirekt
NuGetXamarin.AndroidX.Activity.Ktx1.10.1.3indirekt
NuGetXamarin.AndroidX.Collection.Jvm1.5.0.3indirekt
NuGetXamarin.AndroidX.Collection.Ktx1.5.0.3indirekt
NuGetXamarin.AndroidX.DataStoreindirekt
NuGetXamarin.AndroidX.Fragment1.8.8.1indirekt
NuGetXamarin.AndroidX.Fragment.Ktx1.8.8.1indirekt
NuGetXamarin.AndroidX.Lifecycle.LiveData2.9.2.1indirekt
NuGetXamarin.AndroidX.Lifecycle.LiveData.Core2.9.2.1indirekt
NuGetXamarin.AndroidX.Lifecycle.LiveData.Core.Ktx2.9.2.1indirekt
NuGetXamarin.AndroidX.Lifecycle.Processindirekt
NuGetXamarin.AndroidX.Lifecycle.Process2.9.2.1indirekt
NuGetXamarin.AndroidX.Lifecycle.Runtime2.9.2.1indirekt
NuGetXamarin.AndroidX.Lifecycle.Runtime.Ktx2.9.2.1indirekt
NuGetXamarin.AndroidX.Lifecycle.Runtime.Ktx.Android2.9.2.1indirekt
NuGetXamarin.AndroidX.Lifecycle.ViewModel2.9.2.1indirekt
NuGetXamarin.AndroidX.Lifecycle.ViewModel.Ktx2.9.2.1indirekt
NuGetXamarin.Firebase.Analytics122.0.2.1indirekt
NuGetXamarin.Firebase.AppCheck118.0.0.2indirekt
NuGetXamarin.Firebase.AppCheck.Debug118.0.0.2indirekt
NuGetXamarin.Firebase.AppCheck.PlayIntegrity118.0.0.2indirekt
NuGetXamarin.Firebase.Auth123.0.0indirekt
NuGetXamarin.Firebase.Common121.0.0.6indirekt
NuGetXamarin.Firebase.Config122.0.0.2indirekt
NuGetXamarin.Firebase.Crashlyticsindirekt
NuGetXamarin.Firebase.Firestore125.0.0indirekt
NuGetXamarin.Firebase.Functions121.0.0.3indirekt
NuGetXamarin.Firebase.Installations118.0.0.6indirekt
NuGetXamarin.Firebase.Messaging124.0.0.2indirekt
NuGetXamarin.Firebase.Perf121.0.0indirekt
NuGetXamarin.Firebase.Storage121.0.0.2indirekt
NuGetxunit2.9.3indirekt
NuGetxunit.runner.utility2.9.3indirekt
NuGetxunit.runner.visualstudio3.0.1indirekt
NuGetxunit.v31.0.1indirekt
JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 3591,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "C#": 886209,
        "HTML": 3505,
        "Ruby": 9173,
        "Shell": 16314,
        "JavaScript": 1990,
        "TypeScript": 5208
      },
      "pushed_at": "2026-06-11T15:14:11Z",
      "created_at": "2018-06-25T18:23:56Z",
      "owner_type": "User",
      "updated_at": "2026-07-05T01:02:01Z",
      "description": "Wrapper around the native Android and iOS Firebase Xamarin SDKs",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "development",
      "license_spdx_raw": "MIT",
      "primary_language": "C#",
      "significant_languages": [
        "C#"
      ]
    },
    "owner": {
      "blog": null,
      "name": null,
      "type": "User",
      "login": "TobiasBuchholz",
      "company": null,
      "location": null,
      "followers": 36,
      "avatar_url": "https://avatars.githubusercontent.com/u/1132836?v=4",
      "created_at": "2011-10-17T09:49:28Z",
      "is_verified": null,
      "public_repos": 36,
      "account_age_days": 5388
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases_count": 1,
      "commits_last_year": 205,
      "latest_release_at": "2025-12-29T21:37:38Z",
      "latest_release_tag": "4.0.0",
      "releases_from_tags": false,
      "days_since_last_push": 37,
      "active_weeks_last_year": 18,
      "days_since_latest_release": 201,
      "mean_days_between_releases": null
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 57,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 63,
      "stars": 305,
      "watchers": 17,
      "open_issues_and_prs": 28
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "sample"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "sample/playground-functions/functions/tsconfig.json",
        "tests/cloud-functions/functions/tsconfig.json"
      ],
      "largest_source_bytes": 14084,
      "source_files_sampled": 406,
      "oversized_source_files": 0,
      "agent_instruction_files": [
        ".github/copilot-instructions.md",
        "AGENTS.md"
      ],
      "agent_instruction_max_bytes": 2907
    },
    "dependencies": {
      "manifests": [],
      "ecosystems": [],
      "dependencies": [],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@babel/code-frame",
            "direct": false,
            "version": "7.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/code-frame",
            "direct": false,
            "version": "7.18.6",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.19.1",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/highlight",
            "direct": false,
            "version": "7.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/highlight",
            "direct": false,
            "version": "7.18.6",
            "ecosystem": "npm"
          },
          {
            "name": "@fastify/busboy",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@firebase/app-check-interop-types",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@firebase/app-types",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "@firebase/auth-interop-types",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@firebase/component",
            "direct": false,
            "version": "0.6.6",
            "ecosystem": "npm"
          },
          {
            "name": "@firebase/database",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@firebase/database-compat",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@firebase/database-types",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@firebase/logger",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "@firebase/util",
            "direct": false,
            "version": "1.9.5",
            "ecosystem": "npm"
          },
          {
            "name": "@google-cloud/firestore",
            "direct": false,
            "version": "7.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@google-cloud/paginator",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@google-cloud/projectify",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@google-cloud/promisify",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@google-cloud/storage",
            "direct": false,
            "version": "7.19.0",
            "ecosystem": "npm"
          },
          {
            "name": "@google-cloud/storage",
            "direct": false,
            "version": "7.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "@grpc/grpc-js",
            "direct": false,
            "version": "1.10.11",
            "ecosystem": "npm"
          },
          {
            "name": "@grpc/grpc-js",
            "direct": false,
            "version": "1.10.9",
            "ecosystem": "npm"
          },
          {
            "name": "@grpc/proto-loader",
            "direct": false,
            "version": "0.7.13",
            "ecosystem": "npm"
          },
          {
            "name": "@js-sdsl/ordered-map",
            "direct": false,
            "version": "4.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/aspromise",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/base64",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/codegen",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/eventemitter",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/fetch",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/float",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/inquire",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/path",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/pool",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/utf8",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tootallnate/once",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/body-parser",
            "direct": false,
            "version": "1.19.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/body-parser",
            "direct": false,
            "version": "1.19.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/caseless",
            "direct": false,
            "version": "0.12.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/connect",
            "direct": false,
            "version": "3.4.33",
            "ecosystem": "npm"
          },
          {
            "name": "@types/connect",
            "direct": false,
            "version": "3.4.35",
            "ecosystem": "npm"
          },
          {
            "name": "@types/cors",
            "direct": false,
            "version": "2.8.12",
            "ecosystem": "npm"
          },
          {
            "name": "@types/express",
            "direct": false,
            "version": "4.17.21",
            "ecosystem": "npm"
          },
          {
            "name": "@types/express",
            "direct": false,
            "version": "4.17.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/express-serve-static-core",
            "direct": false,
            "version": "4.19.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/jsonwebtoken",
            "direct": false,
            "version": "9.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/lodash",
            "direct": false,
            "version": "4.14.185",
            "ecosystem": "npm"
          },
          {
            "name": "@types/long",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/mime",
            "direct": false,
            "version": "1.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/mime",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/mime",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "20.12.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/qs",
            "direct": false,
            "version": "6.9.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/qs",
            "direct": false,
            "version": "6.9.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/range-parser",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/range-parser",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/request",
            "direct": false,
            "version": "2.48.12",
            "ecosystem": "npm"
          },
          {
            "name": "@types/send",
            "direct": false,
            "version": "0.17.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/serve-static",
            "direct": false,
            "version": "1.13.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/serve-static",
            "direct": false,
            "version": "1.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/tough-cookie",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "abort-controller",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "accepts",
            "direct": false,
            "version": "1.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "agent-base",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "agent-base",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "5.0.1",
            "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": "argparse",
            "direct": false,
            "version": "1.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "array-flatten",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "arrify",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "async-retry",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "asynckit",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "base64-js",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "bignumber.js",
            "direct": false,
            "version": "9.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "body-parser",
            "direct": false,
            "version": "1.20.3",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.11",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-equal-constant-time",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "builtin-modules",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "bytes",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind",
            "direct": false,
            "version": "1.0.7",
            "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": "chalk",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "class-transformer",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "1.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "combined-stream",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "2.20.3",
            "ecosystem": "npm"
          },
          {
            "name": "compressible",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "npm"
          },
          {
            "name": "concat-map",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "content-disposition",
            "direct": false,
            "version": "0.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "content-type",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "cookie",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "cookie-signature",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "cors",
            "direct": false,
            "version": "2.8.5",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "2.6.9",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "define-data-property",
            "direct": false,
            "version": "1.1.4",
            "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": "diff",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "dunder-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "duplexify",
            "direct": false,
            "version": "4.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "ecdsa-sig-formatter",
            "direct": false,
            "version": "1.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "ee-first",
            "direct": false,
            "version": "1.1.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": "end-of-stream",
            "direct": false,
            "version": "1.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "ent",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-define-property",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-errors",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-object-atoms",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-set-tostringtag",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.1.2",
            "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": "esprima",
            "direct": false,
            "version": "4.0.1",
            "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": "express",
            "direct": false,
            "version": "4.21.2",
            "ecosystem": "npm"
          },
          {
            "name": "express",
            "direct": false,
            "version": "4.22.1",
            "ecosystem": "npm"
          },
          {
            "name": "extend",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-xml-builder",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-xml-parser",
            "direct": false,
            "version": "4.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "fast-xml-parser",
            "direct": false,
            "version": "5.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "faye-websocket",
            "direct": false,
            "version": "0.11.4",
            "ecosystem": "npm"
          },
          {
            "name": "finalhandler",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "firebase-admin",
            "direct": false,
            "version": "12.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "firebase-functions",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "firebase-functions",
            "direct": false,
            "version": "3.24.0",
            "ecosystem": "npm"
          },
          {
            "name": "firebase-functions-test",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "form-data",
            "direct": false,
            "version": "2.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "forwarded",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "fresh",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "fs.realpath",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "function-bind",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "functional-red-black-tree",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "gaxios",
            "direct": false,
            "version": "6.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "gcp-metadata",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-caller-file",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "get-intrinsic",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "7.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "7.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "google-auth-library",
            "direct": false,
            "version": "9.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "google-gax",
            "direct": false,
            "version": "4.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "gtoken",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "has",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-property-descriptors",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "has-symbols",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-tostringtag",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hasown",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "html-entities",
            "direct": false,
            "version": "2.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "http-errors",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "http-parser-js",
            "direct": false,
            "version": "0.5.8",
            "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.4",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.4.24",
            "ecosystem": "npm"
          },
          {
            "name": "inflight",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ipaddr.js",
            "direct": false,
            "version": "1.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-core-module",
            "direct": false,
            "version": "2.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-core-module",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-stream",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "jose",
            "direct": false,
            "version": "4.15.5",
            "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": "json-bigint",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsonwebtoken",
            "direct": false,
            "version": "9.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jwa",
            "direct": false,
            "version": "1.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "jwa",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "jwks-rsa",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "jws",
            "direct": false,
            "version": "3.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "jws",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "limiter",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "lodash",
            "direct": false,
            "version": "4.17.23",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.camelcase",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.clonedeep",
            "direct": false,
            "version": "4.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "long",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lru-memoizer",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "media-typer",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge-descriptors",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "methods",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "mime",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-db",
            "direct": false,
            "version": "1.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "2.1.35",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "3.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimist",
            "direct": false,
            "version": "1.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "mkdirp",
            "direct": false,
            "version": "0.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "mkdirp",
            "direct": false,
            "version": "0.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "negotiator",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "node-fetch",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-forge",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "object-assign",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "object-hash",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "object-inspect",
            "direct": false,
            "version": "1.13.3",
            "ecosystem": "npm"
          },
          {
            "name": "on-finished",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "once",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "parseurl",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "path-is-absolute",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-parse",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "path-to-regexp",
            "direct": false,
            "version": "0.1.12",
            "ecosystem": "npm"
          },
          {
            "name": "proto3-json-serializer",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "protobufjs",
            "direct": false,
            "version": "7.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "proxy-addr",
            "direct": false,
            "version": "2.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "pseudomap",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "qs",
            "direct": false,
            "version": "6.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "qs",
            "direct": false,
            "version": "6.14.2",
            "ecosystem": "npm"
          },
          {
            "name": "range-parser",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "raw-body",
            "direct": false,
            "version": "2.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "readable-stream",
            "direct": false,
            "version": "3.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "reflect-metadata",
            "direct": false,
            "version": "0.1.13",
            "ecosystem": "npm"
          },
          {
            "name": "require-directory",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "1.19.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "1.22.1",
            "ecosystem": "npm"
          },
          {
            "name": "retry",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "npm"
          },
          {
            "name": "retry-request",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "safer-buffer",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "5.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "send",
            "direct": false,
            "version": "0.19.0",
            "ecosystem": "npm"
          },
          {
            "name": "serve-static",
            "direct": false,
            "version": "1.16.2",
            "ecosystem": "npm"
          },
          {
            "name": "set-function-length",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "setprototypeof",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-list",
            "direct": false,
            "version": "1.0.0",
            "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": "sprintf-js",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "statuses",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "stream-events",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "stream-shift",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string_decoder",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strnum",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "strnum",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "stubs",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "5.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-preserve-symlinks-flag",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "teeny-request",
            "direct": false,
            "version": "9.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "text-decoding",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "toidentifier",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tr46",
            "direct": false,
            "version": "0.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "tslint",
            "direct": false,
            "version": "5.20.1",
            "ecosystem": "npm"
          },
          {
            "name": "tsutils",
            "direct": false,
            "version": "2.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-is",
            "direct": false,
            "version": "1.6.18",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "4.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "5.26.5",
            "ecosystem": "npm"
          },
          {
            "name": "unpipe",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "util-deprecate",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "utils-merge",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "uuid",
            "direct": false,
            "version": "8.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "uuid",
            "direct": false,
            "version": "9.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "vary",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "webidl-conversions",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "websocket-driver",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "websocket-extensions",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-url",
            "direct": false,
            "version": "5.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": "y18n",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "yallist",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "yallist",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "17.7.2",
            "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": "AdamE.Firebase.iOS.Analytics",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "AdamE.Firebase.iOS.AppCheck",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "AdamE.Firebase.iOS.Auth",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "AdamE.Firebase.iOS.CloudFirestore",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "AdamE.Firebase.iOS.CloudFunctions",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "AdamE.Firebase.iOS.CloudMessaging",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Adame.Firebase.iOS.Core",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "AdamE.Firebase.iOS.Crashlytics",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "AdamE.Firebase.iOS.Installations",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "AdamE.Firebase.iOS.PerformanceMonitoring",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "AdamE.Firebase.iOS.RemoteConfig",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "AdamE.Firebase.iOS.Storage",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "CommunityToolkit.Maui",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "nuget"
          },
          {
            "name": "CommunityToolkit.Maui.Markup",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "nuget"
          },
          {
            "name": "coverlet.collector",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "DeviceRunners.UITesting.Maui",
            "direct": false,
            "version": "0.1.0-preview.6",
            "ecosystem": "nuget"
          },
          {
            "name": "DeviceRunners.VisualRunners.Maui",
            "direct": false,
            "version": "0.1.0-preview.6",
            "ecosystem": "nuget"
          },
          {
            "name": "DeviceRunners.VisualRunners.Xunit",
            "direct": false,
            "version": "0.1.0-preview.6",
            "ecosystem": "nuget"
          },
          {
            "name": "DeviceRunners.XHarness.Maui",
            "direct": false,
            "version": "0.1.0-preview.6",
            "ecosystem": "nuget"
          },
          {
            "name": "DeviceRunners.XHarness.Xunit",
            "direct": false,
            "version": "0.1.0-preview.6",
            "ecosystem": "nuget"
          },
          {
            "name": "Genesis.Logging",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "nuget"
          },
          {
            "name": "Genesis.Observables",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "nuget"
          },
          {
            "name": "GoogleGson",
            "direct": false,
            "version": "2.11.0.3",
            "ecosystem": "nuget"
          },
          {
            "name": "JetBrains.Annotations",
            "direct": false,
            "version": "2025.2.4",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Logging.Debug",
            "direct": false,
            "version": "9.0.0",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Maui.Controls",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Maui.Controls.Compatibility",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.NET.Test.Sdk",
            "direct": false,
            "version": "17.12.0",
            "ecosystem": "nuget"
          },
          {
            "name": "NSubstitute",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "nuget"
          },
          {
            "name": "ReactiveUI",
            "direct": false,
            "version": "18.3.1",
            "ecosystem": "nuget"
          },
          {
            "name": "ReactiveUI.Fody",
            "direct": false,
            "version": "18.3.1",
            "ecosystem": "nuget"
          },
          {
            "name": "ReactiveUI.Maui",
            "direct": false,
            "version": "18.3.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.AndroidX.Activity",
            "direct": false,
            "version": "1.10.1.3",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.AndroidX.Activity.Ktx",
            "direct": false,
            "version": "1.10.1.3",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.AndroidX.Collection.Jvm",
            "direct": false,
            "version": "1.5.0.3",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.AndroidX.Collection.Ktx",
            "direct": false,
            "version": "1.5.0.3",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.AndroidX.DataStore",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.AndroidX.Fragment",
            "direct": false,
            "version": "1.8.8.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.AndroidX.Fragment.Ktx",
            "direct": false,
            "version": "1.8.8.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.AndroidX.Lifecycle.LiveData",
            "direct": false,
            "version": "2.9.2.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.AndroidX.Lifecycle.LiveData.Core",
            "direct": false,
            "version": "2.9.2.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.AndroidX.Lifecycle.LiveData.Core.Ktx",
            "direct": false,
            "version": "2.9.2.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.AndroidX.Lifecycle.Process",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.AndroidX.Lifecycle.Process",
            "direct": false,
            "version": "2.9.2.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.AndroidX.Lifecycle.Runtime",
            "direct": false,
            "version": "2.9.2.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.AndroidX.Lifecycle.Runtime.Ktx",
            "direct": false,
            "version": "2.9.2.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.AndroidX.Lifecycle.Runtime.Ktx.Android",
            "direct": false,
            "version": "2.9.2.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.AndroidX.Lifecycle.ViewModel",
            "direct": false,
            "version": "2.9.2.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.AndroidX.Lifecycle.ViewModel.Ktx",
            "direct": false,
            "version": "2.9.2.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.Firebase.Analytics",
            "direct": false,
            "version": "122.0.2.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.Firebase.AppCheck",
            "direct": false,
            "version": "118.0.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.Firebase.AppCheck.Debug",
            "direct": false,
            "version": "118.0.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.Firebase.AppCheck.PlayIntegrity",
            "direct": false,
            "version": "118.0.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.Firebase.Auth",
            "direct": false,
            "version": "123.0.0",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.Firebase.Common",
            "direct": false,
            "version": "121.0.0.6",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.Firebase.Config",
            "direct": false,
            "version": "122.0.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.Firebase.Crashlytics",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.Firebase.Firestore",
            "direct": false,
            "version": "125.0.0",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.Firebase.Functions",
            "direct": false,
            "version": "121.0.0.3",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.Firebase.Installations",
            "direct": false,
            "version": "118.0.0.6",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.Firebase.Messaging",
            "direct": false,
            "version": "124.0.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.Firebase.Perf",
            "direct": false,
            "version": "121.0.0",
            "ecosystem": "nuget"
          },
          {
            "name": "Xamarin.Firebase.Storage",
            "direct": false,
            "version": "121.0.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "xunit",
            "direct": false,
            "version": "2.9.3",
            "ecosystem": "nuget"
          },
          {
            "name": "xunit.runner.utility",
            "direct": false,
            "version": "2.9.3",
            "ecosystem": "nuget"
          },
          {
            "name": "xunit.runner.visualstudio",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "nuget"
          },
          {
            "name": "xunit.v3",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "nuget"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 361,
        "direct_count": 0,
        "indirect_count": 361
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 18,
        "merged_prs": 163,
        "open_issues": 10,
        "closed_ratio": 0.976,
        "closed_issues": 401,
        "closed_unmerged_prs": 43
      },
      "bus_factor": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "TobiasBuchholz",
          "commits": 421,
          "avatar_url": "https://avatars.githubusercontent.com/u/1132836?v=4"
        },
        {
          "type": "User",
          "login": "AdamEssenmacher",
          "commits": 102,
          "avatar_url": "https://avatars.githubusercontent.com/u/8496021?v=4"
        },
        {
          "type": "User",
          "login": "Kapusch",
          "commits": 79,
          "avatar_url": "https://avatars.githubusercontent.com/u/9576733?v=4"
        },
        {
          "type": "Bot",
          "login": "dependabot[bot]",
          "commits": 56,
          "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4"
        },
        {
          "type": "User",
          "login": "MatabogeO",
          "commits": 13,
          "avatar_url": "https://avatars.githubusercontent.com/u/98893520?v=4"
        },
        {
          "type": "User",
          "login": "tranb3r",
          "commits": 8,
          "avatar_url": "https://avatars.githubusercontent.com/u/12516566?v=4"
        },
        {
          "type": "User",
          "login": "AdamBebko",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/43276915?v=4"
        },
        {
          "type": "User",
          "login": "Dreamescaper",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/17177729?v=4"
        },
        {
          "type": "User",
          "login": "andyzukunft",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/26144024?v=4"
        },
        {
          "type": "User",
          "login": "cagz",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/26085474?v=4"
        }
      ],
      "contributors_sampled": 19,
      "top_contributor_share": 0.605
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "integration-emulators.yml",
        "sample-android.yml",
        "sample-ios.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": true,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 10,
            "reason": "all changesets reviewed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 2,
            "reason": "dependency not pinned by hash detected -- score normalized to 2",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "42 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "c8a103a6f5782da31427131989f4e4b7f794077f",
        "ran_at": "2026-07-18T22:24:03Z",
        "aggregate_score": 5.5,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/TobiasBuchholz/Plugin.Firebase",
    "host": "github.com",
    "name": "Plugin.Firebase",
    "owner": "TobiasBuchholz"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 63,
      "inputs": {
        "security": 55,
        "vitality": 60,
        "community": 66,
        "governance": 59,
        "engineering": 74
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 60,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 58,
            "inputs": {
              "commits_last_year": 205,
              "human_commit_share": null,
              "days_since_last_push": 37,
              "active_weeks_last_year": 18
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 37 days ago",
                "points": 18,
                "status": "partial",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 37
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "18/52 weeks with commits",
                "points": 12.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 18
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "205 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 205
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "moderate",
            "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": 62,
            "inputs": {
              "releases_count": 1,
              "latest_release_tag": "4.0.0",
              "releases_from_tags": false,
              "days_since_latest_release": 201,
              "mean_days_between_releases": null
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "1 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 201 days ago",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 201
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "cadence unknown (single release)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence_unknown",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "no_commit_sample",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 66,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "forks": 63,
              "stars": 305,
              "watchers": 17,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "305 stars",
                "points": 40.3,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 305
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "63 forks",
                "points": 14.9,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 63
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "17 watchers",
                "points": 6.7,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 17
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 59,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 34,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 19,
              "top_contributor_share": 0.605
            },
            "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 60% of commits",
                "points": 8.9,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 60
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "19 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 19
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "excellent",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 91,
            "inputs": {
              "merged_prs": 163,
              "open_issues": 10,
              "closed_issues": 401,
              "issue_closed_ratio": 0.976,
              "closed_unmerged_prs": 43
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "98% of issues closed",
                "points": 45.6,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 98
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "163/206 decided PRs merged",
                "points": 30.3,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 163,
                      "decided": 206
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "all changesets reviewed",
                "points": 15,
                "status": "met",
                "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": 56,
            "inputs": {
              "followers": 36,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "TobiasBuchholz",
              "public_repos": 36,
              "account_age_days": 5388
            },
            "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": "36 followers of TobiasBuchholz",
                "points": 11.3,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 36,
                      "login": "TobiasBuchholz"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "36 public repos, account ~14 yr old",
                "points": 23.4,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 36
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 14
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 74,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "4 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "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": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 55,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 55,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 15,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 3,
              "scorecard_aggregate": 5.5
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "all changesets reviewed",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 2",
                "points": 1,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "42 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 6
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 66,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "good",
            "name": "Agent context & guidance",
            "note": "Excluded from scoring (no data or not applicable): Legible commit history. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "legible_commit_history"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 75,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": null,
              "agent_instruction_files": [
                ".github/copilot-instructions.md",
                "AGENTS.md"
              ],
              "agent_instruction_max_bytes": 2907
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": ".github/copilot-instructions.md, AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".github/copilot-instructions.md, 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": "no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": "Excluded from scoring (no data or not applicable): Demonstrated agent practice, Automated maintenance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "demonstrated_agent_practice",
                    "automated_maintenance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 55,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [
                "sample/playground-functions/functions/tsconfig.json",
                "tests/cloud-functions/functions/tsconfig.json"
              ],
              "agent_commit_share": null,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": null
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "sample/playground-functions/functions/tsconfig.json, tests/cloud-functions/functions/tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "sample/playground-functions/functions/tsconfig.json, tests/cloud-functions/functions/tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 2",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "C#",
              "largest_source_bytes": 14084,
              "source_files_sampled": 406,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "C# (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C#"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/406 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 406,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "sample"
              ],
              "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": "sample",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "sample"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [],
  "report_type": "repository",
  "generated_at": "2026-07-18T22:24:24.779831Z",
  "schema_version": "0.14.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/t/TobiasBuchholz/Plugin.Firebase.svg",
  "full_name": "TobiasBuchholz/Plugin.Firebase",
  "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 v1.13.0, Schema v0.14.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte Statistiken.