Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-27 13:01 UTC

Upload-Post / n8n-nodes-upload-post

🚀 Official n8n community node for Upload-Post API. Schedule & publish to TikTok, Instagram, YouTube, LinkedIn, X, Facebook, Pinterest, Threads, Reddit & Bluesky from your n8n workflows.

TypeScriptMIT★ 24 Sterne⑂ 7 Forksseit Apr. 2025Auf GitHub ansehen ↗

Upload-Post/n8n-nodes-upload-post erreicht einen Gesundheitsindex von 62 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Vitality (83/100) ab, am schwächsten bei Sustainability & Governance (55/100). Zuletzt vor 6 Tagen aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

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

62
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

Upload-postOrganisation
40 Follower13 öffentliche Reposseit Apr. 2025

Dieses Repository wird von einer Organisation getragen — geteilte, rechenschaftspflichtige Trägerschaft, die jeden einzelnen Maintainer überdauern kann.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlichtTags
npmn8n-nodes-upload-post0.1.55102.66043vor 6 Tagenn8n-community-node-packageupload-postsocial-media

Metriken nach Kategorie

Vitalität

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

83Gut · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 6 Tagen
14.5/36Commit-Rhythmus — 21/52 Wochen mit Commits
17.3/18Commit-Volumen — 83 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 27 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year83
human_commit_share1
days_since_last_push6
active_weeks_last_year21
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 3 Releases veröffentlicht
27/36Release-Aktualität — letztes Release vor 171 Tagen
27/27Release-Rhythmus — ein Release etwa alle 1,3 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count3
latest_release_tagv0.1.39
releases_from_tagsnein
days_since_latest_release171
mean_days_between_releases1,3
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?

55Mittel · 18 % des Gesamtindex
Wie die Bewertung erfolgt
22.1/60Stars — 24 Stars
6.5/25Forks — 7 Forks
0/15Watcher — 0 Watcher
Verwendete Eingangsdaten
forks7
stars24
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
0/18CONTRIBUTING-Leitfaden
13.5/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingnein
has_issue_templatenein
has_code_of_conductja
has_pull_request_templatenein
Wie die Bewertung erfolgt
66.8/80Downloads pro Monat — 102.660 Downloads/Monat über npm
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packagesn8n-nodes-upload-post
dependents
ecosystemsnpm
total_downloads
monthly_downloads102.660
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Abhängige in der Registry. Die verbleibenden Gewichte wurden renormalisiert.

Nachhaltigkeit & Governance

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

55Mittel · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
0/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 100 % der Commits
1.4/13.5Breite der Beitragenden — 1 Beitragende
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Verwendete Eingangsdaten
bus_factor1
contributors_sampled1
top_contributor_share1
Wie die Bewertung erfolgt
46.8/46.8Issue-Lösungsquote — 100 % der Issues geschlossen
26.8/38.3PR-Annahme — 47/67 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — Found 0/27 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs47
open_issues0
closed_issues20
issue_closed_ratio1
closed_unmerged_prs20
Wie die Bewertung erfolgt
30/30Organisatorische Trägerschaft — im Besitz einer Organisation
0/20Verifizierte Domain
11.6/25Reichweite des Inhabers — 40 Follower von Upload-Post
11/25Kontohistorie — 13 öffentliche Repos, Kontoalter ca. 1 Jahre
Verwendete Eingangsdaten
followers40
owner_typeOrganization
is_verified
owner_loginUpload-Post
public_repos13
account_age_days479

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 1 Paket(e) auf npm
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 6 Tagen
20/20Versionshistorie — 43 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagesn8n-nodes-upload-post
ecosystemsnpm
any_deprecatednein
min_days_since_publish6

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

58Mittel · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 1 Workflow(s)
0/24Tests vorhanden
16/16Linter-Konfiguration — .eslintrc.js
0/9.6Pre-Commit-Hooks
6.4/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — 0 out of 3 merged PRs checked by a CI test -- score normalized to 0
Verwendete Eingangsdaten
has_cija
has_testsnein
has_editorconfigja
has_linter_configja
has_precommit_confignein
Wie die Bewertung erfolgt
30/30README
0/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://upload-post.com
10/10Repository-Beschreibung
10/10Topics — 8 Topics
10/10Wiki
Verwendete Eingangsdaten
topicsautomation, instagram, n8n, n8n-community-node, social-media, tiktok, youtube, upload-post
has_wikija
homepagehttps://upload-post.com
has_readmeja
has_docs_dirnein
has_descriptionja

Sicherheit

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

56Mittel · 16 % des Gesamtindex

Sicherheitslage

45Gefährdet
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — keine Daten
0/2.5CI-Tests — 0 out of 3 merged PRs checked by a CI test -- score normalized to 0
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/27 approved changesets -- score normalized to 0
0/2.5Contributors — project has 0 contributing companies or organizations -- score normalized to 0
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
7.5/7.5Maintained — 27 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
1.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 3
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
6.8/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 48 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate4,5
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): branch_protection, signed_releases. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
35/35Direkte Abhängigkeiten ohne bekannte Advisories — keine direkte Abhängigkeit trägt ein bekanntes Advisory
0/25Indirekte Abhängigkeiten ohne bekannte Advisories — transitive Menge in diesem Bereich nicht von Entwicklungs- und Test-Abhängigkeiten trennbar
0/40Keine offenen Advisories — kein Advisory trägt ein Veröffentlichungsdatum
Verwendete Eingangsdaten
sourceosv
advisories58
affected_packages13
assessed_packages374
unassessed_packages0
affected_by_severitycritical 1, high 10, moderate 2
direct_affected_packages0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Indirekte Abhängigkeiten ohne bekannte Advisories, Keine offenen Advisories. Die verbleibenden Gewichte wurden renormalisiert. 374 aufgelöste Abhängigkeiten wurden mit OSV abgeglichen. Dieses Repository veröffentlicht kein Paket, das der Index auflöst; bewertet wurde daher der Abhängigkeitsgraph des Repositorys. Dieser Graph vermischt Entwicklungs- und Test-Pins mit ausgelieferten Abhängigkeiten, daher werden nur die deklarierten Laufzeit-Abhängigkeiten bewertet; transitive Befunde werden als Kontext ausgewiesen und fließen nicht in die Bewertung ein. Erreichbarkeit wird nicht analysiert.

AI Readiness

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

67Mittel · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — AGENTS.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 90 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,9
agent_instruction_filesAGENTS.md
agent_instruction_max_bytes7.743
Wie die Bewertung erfolgt
0/18Bootstrap mit einem Befehl
0/22Automatisierte Tests
11/11Lint-/Format-Konfiguration — .eslintrc.js
11/11Statische Typprüfung — tsconfig.json
10/10Reproduzierbare Umgebung — lockfile
10/10Belegte Agentenpraxis — 19 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
3/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 3
Verwendete Eingangsdaten
has_nixnein
has_testsnein
lockfilespackage-lock.json
has_dockerfilenein
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_configja
typecheck_configstsconfig.json
agent_commit_share0,19
toolchain_manifests
dependency_bot_commit_share0
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — TypeScript (statisch typisiert)
47.1/55Handhabbare Dateigrößen — 1/7 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageTypeScript
largest_source_bytes154.848
source_files_sampled7
oversized_source_files1

Eckdaten

24GitHub-Sterne
1Mitwirkende
83Commits, letzte 12 Monate
6Tage seit letztem Push
3Releases
1Bus-Faktor
0offene Issues
npmPaket-Ökosysteme

Warnungen zur Datenerhebung

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

Weitere Details

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

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

1234567712025-112026-032026-07
Major 0Minor 0Patch 3
OpenSSF Scorecard 4.5 / 10
4.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-27 13:01 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
0CI-Tests0 out of 3 merged PRs checked by a CI test -- score normalized to 0
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/27 approved changesets -- score normalized to 0
0Contributorsproject has 0 contributing companies or organizations -- score normalized to 0
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained27 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
3Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 3
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
k. A.Signed-Releasesno releases found
9Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities48 existing vulnerabilities detected
Alle Abhängigkeiten 374

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

RegistryPaketVersionBeziehung
npm@eslint-community/eslint-utils4.7.0indirekt
npm@eslint-community/regexpp4.12.1indirekt
npm@eslint/eslintrc2.1.4indirekt
npm@eslint/js8.57.1indirekt
npm@eslint/js9.39.2indirekt
npm@gulpjs/messages1.1.0indirekt
npm@gulpjs/to-absolute-glob4.0.0indirekt
npm@humanwhocodes/config-array0.13.0indirekt
npm@humanwhocodes/module-importer1.0.1indirekt
npm@humanwhocodes/object-schema2.0.3indirekt
npm@n8n/tournament1.0.6indirekt
npm@n8n_io/riot-tmpl4.0.0indirekt
npm@n8n_io/riot-tmpl4.0.1indirekt
npm@nodelib/fs.scandir2.1.5indirekt
npm@nodelib/fs.stat2.0.5indirekt
npm@nodelib/fs.walk1.2.8indirekt
npm@types/json-schema7.0.15indirekt
npm@types/semver7.7.0indirekt
npm@typescript-eslint/parser8.32.1indirekt
npm@typescript-eslint/scope-manager6.21.0indirekt
npm@typescript-eslint/scope-manager8.32.1indirekt
npm@typescript-eslint/types6.21.0indirekt
npm@typescript-eslint/types8.32.1indirekt
npm@typescript-eslint/typescript-estree6.21.0indirekt
npm@typescript-eslint/typescript-estree8.32.1indirekt
npm@typescript-eslint/utils6.21.0indirekt
npm@typescript-eslint/visitor-keys6.21.0indirekt
npm@typescript-eslint/visitor-keys8.32.1indirekt
npm@ungap/structured-clone1.3.0indirekt
npmacorn8.14.1indirekt
npmacorn-jsx5.3.2indirekt
npmajv6.12.6indirekt
npmansi-regex5.0.1indirekt
npmansi-styles4.3.0indirekt
npmanymatch3.1.3indirekt
npmargparse2.0.1indirekt
npmarray-each1.0.1indirekt
npmarray-slice1.1.0indirekt
npmarray-union2.1.0indirekt
npmassert2.1.0indirekt
npmast-types0.15.2indirekt
npmast-types0.16.1indirekt
npmasync-done2.0.0indirekt
npmasync-settle2.0.0indirekt
npmasynckit0.4.0indirekt
npmavailable-typed-arrays1.0.7indirekt
npmaxios1.8.2indirekt
npmb4a1.6.7indirekt
npmbach2.0.1indirekt
npmbalanced-match1.0.2indirekt
npmbare-events2.5.4indirekt
npmbase64-js1.5.1indirekt
npmbinary-extensions2.3.0indirekt
npmbl5.1.0indirekt
npmbrace-expansion1.1.12indirekt
npmbrace-expansion2.0.2indirekt
npmbraces3.0.3indirekt
npmbuffer6.0.3indirekt
npmcall-bind1.0.8indirekt
npmcall-bind-apply-helpers1.0.2indirekt
npmcall-bound1.0.4indirekt
npmcallsites3.1.0indirekt
npmcamel-case4.1.2indirekt
npmchalk4.1.2indirekt
npmcharenc0.0.2indirekt
npmchokidar3.6.0indirekt
npmcliui7.0.4indirekt
npmcliui8.0.1indirekt
npmclone2.1.2indirekt
npmclone-stats1.0.0indirekt
npmcolor-convert2.0.1indirekt
npmcolor-name1.1.4indirekt
npmcombined-stream1.0.8indirekt
npmconcat-map0.0.1indirekt
npmconvert-source-map2.0.0indirekt
npmcopy-props4.0.0indirekt
npmcross-spawn7.0.6indirekt
npmcrypt0.0.2indirekt
npmdebug4.4.1indirekt
npmdeep-equal2.2.0indirekt
npmdeep-is0.1.4indirekt
npmdefine-data-property1.1.4indirekt
npmdefine-properties1.2.1indirekt
npmdelayed-stream1.0.0indirekt
npmdetect-file1.0.0indirekt
npmdir-glob3.0.1indirekt
npmdoctrine3.0.0indirekt
npmdunder-proto1.0.1indirekt
npmeach-props3.0.0indirekt
npmemoji-regex8.0.0indirekt
npmend-of-stream1.4.4indirekt
npmes-define-property1.0.1indirekt
npmes-errors1.3.0indirekt
npmes-get-iterator1.1.3indirekt
npmes-object-atoms1.1.1indirekt
npmescalade3.2.0indirekt
npmescape-string-regexp4.0.0indirekt
npmeslint8.57.1indirekt
npmeslint-config-riot1.0.0indirekt
npmeslint-plugin-local1.0.0indirekt
npmeslint-plugin-n8n-nodes-base1.16.3indirekt
npmeslint-scope7.2.2indirekt
npmeslint-visitor-keys3.4.3indirekt
npmeslint-visitor-keys4.2.0indirekt
npmespree9.6.1indirekt
npmesprima4.0.1indirekt
npmesprima-next5.8.4indirekt
npmesquery1.6.0indirekt
npmesrecurse4.3.0indirekt
npmestraverse5.3.0indirekt
npmesutils2.0.3indirekt
npmexpand-tilde2.0.2indirekt
npmextend3.0.2indirekt
npmfast-deep-equal3.1.3indirekt
npmfast-fifo1.3.2indirekt
npmfast-glob3.3.3indirekt
npmfast-json-stable-stringify2.1.0indirekt
npmfast-levenshtein2.0.6indirekt
npmfast-levenshtein3.0.0indirekt
npmfastest-levenshtein1.0.16indirekt
npmfastq1.19.1indirekt
npmfile-entry-cache6.0.1indirekt
npmfill-range7.1.1indirekt
npmfind-up5.0.0indirekt
npmfindup-sync5.0.0indirekt
npmfined2.0.0indirekt
npmflagged-respawn2.0.0indirekt
npmflat-cache3.2.0indirekt
npmflatted3.3.3indirekt
npmfollow-redirects1.15.9indirekt
npmfor-each0.3.5indirekt
npmfor-in1.0.2indirekt
npmfor-own1.0.0indirekt
npmform-data4.0.0indirekt
npmfs-mkdirp-stream2.0.1indirekt
npmfs.realpath1.0.0indirekt
npmfsevents2.3.3indirekt
npmfunction-bind1.1.2indirekt
npmfunctions-have-names1.2.3indirekt
npmget-caller-file2.0.5indirekt
npmget-intrinsic1.3.0indirekt
npmget-proto1.0.1indirekt
npmglob7.2.3indirekt
npmglob-parent5.1.2indirekt
npmglob-parent6.0.2indirekt
npmglob-stream8.0.2indirekt
npmglob-watcher6.0.0indirekt
npmglobal-modules1.0.0indirekt
npmglobal-prefix1.0.2indirekt
npmglobals13.24.0indirekt
npmglobals15.15.0indirekt
npmglobby11.1.0indirekt
npmglogg2.2.0indirekt
npmgopd1.2.0indirekt
npmgraceful-fs4.2.11indirekt
npmgraphemer1.4.0indirekt
npmgulp5.0.0indirekt
npmgulp-cli3.0.0indirekt
npmgulplog2.2.0indirekt
npmhas-bigints1.1.0indirekt
npmhas-flag3.0.0indirekt
npmhas-flag4.0.0indirekt
npmhas-property-descriptors1.0.2indirekt
npmhas-symbols1.1.0indirekt
npmhas-tostringtag1.0.2indirekt
npmhasown2.0.2indirekt
npmhomedir-polyfill1.0.3indirekt
npmiconv-lite0.6.3indirekt
npmieee7541.2.1indirekt
npmignore5.3.2indirekt
npmignore-by-default1.0.1indirekt
npmimport-fresh3.3.1indirekt
npmimurmurhash0.1.4indirekt
npmindefinite2.5.1indirekt
npminflight1.0.6indirekt
npminherits2.0.4indirekt
npmini1.3.8indirekt
npminternal-slot1.1.0indirekt
npminterpret3.1.1indirekt
npmis-absolute1.0.0indirekt
npmis-arguments1.2.0indirekt
npmis-array-buffer3.0.5indirekt
npmis-bigint1.1.0indirekt
npmis-binary-path2.1.0indirekt
npmis-boolean-object1.2.2indirekt
npmis-buffer1.1.6indirekt
npmis-callable1.2.7indirekt
npmis-core-module2.16.1indirekt
npmis-date-object1.1.0indirekt
npmis-extglob2.1.1indirekt
npmis-fullwidth-code-point3.0.0indirekt
npmis-generator-function1.1.0indirekt
npmis-glob4.0.3indirekt
npmis-map2.0.3indirekt
npmis-nan1.3.2indirekt
npmis-negated-glob1.0.0indirekt
npmis-number7.0.0indirekt
npmis-number-object1.1.1indirekt
npmis-path-inside3.0.3indirekt
npmis-plain-object5.0.0indirekt
npmis-regex1.2.1indirekt
npmis-relative1.0.0indirekt
npmis-set2.0.3indirekt
npmis-shared-array-buffer1.0.4indirekt
npmis-string1.1.1indirekt
npmis-symbol1.1.1indirekt
npmis-typed-array1.1.15indirekt
npmis-unc-path1.0.0indirekt
npmis-valid-glob1.0.0indirekt
npmis-weakmap2.0.2indirekt
npmis-weakset2.0.4indirekt
npmis-windows1.0.2indirekt
npmisarray2.0.5indirekt
npmisexe2.0.0indirekt
npmisobject3.0.1indirekt
npmjmespath0.16.0indirekt
npmjs-base643.7.2indirekt
npmjs-yaml4.1.0indirekt
npmjson-buffer3.0.1indirekt
npmjson-schema-traverse0.4.1indirekt
npmjson-stable-stringify-without-jsonify1.0.1indirekt
npmjssha3.3.1indirekt
npmkeyv4.5.4indirekt
npmlast-run2.0.0indirekt
npmlead4.0.0indirekt
npmlevn0.4.1indirekt
npmliftoff5.0.0indirekt
npmlocate-path6.0.0indirekt
npmlodash4.17.21indirekt
npmlodash.merge4.6.2indirekt
npmlower-case2.0.2indirekt
npmluxon3.4.4indirekt
npmmap-cache0.2.2indirekt
npmmath-intrinsics1.1.0indirekt
npmmd52.3.0indirekt
npmmerge21.4.1indirekt
npmmicromatch4.0.8indirekt
npmmime-db1.52.0indirekt
npmmime-types2.1.35indirekt
npmminimatch3.1.2indirekt
npmminimatch9.0.3indirekt
npmminimatch9.0.5indirekt
npmms2.1.3indirekt
npmmute-stdout2.0.0indirekt
npmn8n-workflow1.82.0indirekt
npmnatural-compare1.4.0indirekt
npmno-case3.0.4indirekt
npmnodemon3.1.10indirekt
npmnormalize-path3.0.0indirekt
npmnow-and-later3.0.0indirekt
npmobject-inspect1.13.4indirekt
npmobject-is1.1.6indirekt
npmobject-keys1.1.1indirekt
npmobject.assign4.1.7indirekt
npmobject.defaults1.1.0indirekt
npmobject.pick1.3.0indirekt
npmonce1.4.0indirekt
npmoptionator0.9.4indirekt
npmp-limit3.1.0indirekt
npmp-locate5.0.0indirekt
npmparent-module1.0.1indirekt
npmparse-filepath1.0.2indirekt
npmparse-passwd1.0.0indirekt
npmpascal-case3.1.2indirekt
npmpath-exists4.0.0indirekt
npmpath-is-absolute1.0.1indirekt
npmpath-key3.1.1indirekt
npmpath-parse1.0.7indirekt
npmpath-root0.1.1indirekt
npmpath-root-regex0.1.2indirekt
npmpath-type4.0.0indirekt
npmpicomatch2.3.1indirekt
npmpluralize8.0.0indirekt
npmpossible-typed-array-names1.1.0indirekt
npmprelude-ls1.2.1indirekt
npmprettier3.5.3indirekt
npmproxy-from-env1.1.0indirekt
npmpstree.remy1.1.8indirekt
npmpunycode2.3.1indirekt
npmqueue-microtask1.2.3indirekt
npmreadable-stream3.6.2indirekt
npmreaddirp3.6.0indirekt
npmrecast0.21.5indirekt
npmrecast0.22.0indirekt
npmrechoir0.8.0indirekt
npmregexp.prototype.flags1.5.4indirekt
npmremove-trailing-separator1.1.0indirekt
npmreplace-ext2.0.0indirekt
npmreplace-homedir2.0.0indirekt
npmrequire-directory2.1.1indirekt
npmresolve1.22.10indirekt
npmresolve-dir1.0.1indirekt
npmresolve-from4.0.0indirekt
npmresolve-options2.0.0indirekt
npmreusify1.1.0indirekt
npmrimraf3.0.2indirekt
npmrun-parallel1.2.0indirekt
npmsafe-buffer5.2.1indirekt
npmsafe-regex-test1.1.0indirekt
npmsafer-buffer2.1.2indirekt
npmsax1.4.1indirekt
npmsemver6.3.1indirekt
npmsemver7.7.2indirekt
npmsemver-greatest-satisfied-range2.0.0indirekt
npmsentence-case3.0.4indirekt
npmset-function-length1.2.2indirekt
npmset-function-name2.0.2indirekt
npmshebang-command2.0.0indirekt
npmshebang-regex3.0.0indirekt
npmside-channel1.1.0indirekt
npmside-channel-list1.0.0indirekt
npmside-channel-map1.0.1indirekt
npmside-channel-weakmap1.0.2indirekt
npmsimple-update-notifier2.0.0indirekt
npmslash3.0.0indirekt
npmsource-map0.6.1indirekt
npmsparkles2.1.0indirekt
npmstop-iteration-iterator1.1.0indirekt
npmstream-composer1.0.2indirekt
npmstream-exhaust1.0.2indirekt
npmstreamx2.22.0indirekt
npmstring-width4.2.3indirekt
npmstring_decoder1.3.0indirekt
npmstrip-ansi6.0.1indirekt
npmstrip-json-comments3.1.1indirekt
npmsupports-color5.5.0indirekt
npmsupports-color7.2.0indirekt
npmsupports-preserve-symlinks-flag1.0.0indirekt
npmsver1.8.4indirekt
npmteex1.0.1indirekt
npmtext-decoder1.2.3indirekt
npmtext-table0.2.0indirekt
npmtitle-case3.0.3indirekt
npmto-regex-range5.0.1indirekt
npmto-through3.0.0indirekt
npmtouch3.1.1indirekt
npmtransliteration2.3.5indirekt
npmts-api-utils1.4.3indirekt
npmts-api-utils2.1.0indirekt
npmtslib2.8.1indirekt
npmtype-check0.4.0indirekt
npmtype-fest0.20.2indirekt
npmtypescript5.8.3indirekt
npmunc-path-regex0.1.2indirekt
npmundefsafe2.0.5indirekt
npmundertaker2.0.0indirekt
npmundertaker-registry2.0.0indirekt
npmupper-case-first2.0.2indirekt
npmuri-js4.4.1indirekt
npmutil0.12.5indirekt
npmutil-deprecate1.0.2indirekt
npmv8flags4.0.1indirekt
npmvalue-or-function4.0.0indirekt
npmvinyl3.0.0indirekt
npmvinyl-contents2.0.0indirekt
npmvinyl-fs4.0.0indirekt
npmvinyl-sourcemap2.0.0indirekt
npmwhich1.3.1indirekt
npmwhich2.0.2indirekt
npmwhich-boxed-primitive1.1.1indirekt
npmwhich-collection1.0.2indirekt
npmwhich-typed-array1.1.19indirekt
npmword-wrap1.2.5indirekt
npmwrap-ansi7.0.0indirekt
npmwrappy1.0.2indirekt
npmxml2js0.6.2indirekt
npmxmlbuilder11.0.1indirekt
npmy18n5.0.8indirekt
npmyargs16.2.0indirekt
npmyargs17.7.2indirekt
npmyargs-parser20.2.9indirekt
npmyargs-parser21.1.1indirekt
npmyocto-queue0.1.0indirekt
npmzod3.24.1indirekt
Abhängigkeits-Advisories 13

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

PaketVersionBeziehungSchweregradAdvisoriesBehoben in
flatted3.3.3indirektkritisch23.4.2
axios1.8.2indirekthoch291.18.0
brace-expansion1.1.12indirekthoch35.0.8
brace-expansion2.0.2indirekthoch35.0.8
form-data4.0.0indirekthoch24.0.6
js-yaml4.1.0indirekthoch34.3.0
lodash4.17.21indirekthoch34.18.0
minimatch3.1.2indirekthoch310.2.3
minimatch9.0.3indirekthoch310.2.3
minimatch9.0.5indirekthoch310.2.3
picomatch2.3.1indirekthoch24.0.4
ajv6.12.6indirektmittel18.18.0
follow-redirects1.15.9indirektmittel11.16.0

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

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [
        "automation",
        "instagram",
        "n8n",
        "n8n-community-node",
        "social-media",
        "tiktok",
        "youtube",
        "upload-post"
      ],
      "is_fork": false,
      "size_kb": 425,
      "has_wiki": true,
      "homepage": "https://upload-post.com",
      "languages": {
        "Shell": 1547,
        "JavaScript": 9747,
        "TypeScript": 156078
      },
      "pushed_at": "2026-07-20T20:37:15Z",
      "created_at": "2025-04-21T17:29:03Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-20T20:38:11Z",
      "description": "🚀 Official n8n community node for Upload-Post API. Schedule & publish to TikTok, Instagram, YouTube, LinkedIn, X, Facebook, Pinterest, Threads, Reddit & Bluesky from your n8n workflows.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript"
      ]
    },
    "owner": {
      "blog": "https://upload-post.com",
      "name": "Upload-post",
      "type": "Organization",
      "login": "Upload-Post",
      "company": null,
      "location": null,
      "followers": 40,
      "avatar_url": "https://avatars.githubusercontent.com/u/206099361?v=4",
      "created_at": "2025-04-03T15:05:01Z",
      "is_verified": null,
      "public_repos": 13,
      "account_age_days": 479
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.1.39",
          "kind": "patch",
          "published_at": "2026-02-06T12:34:26Z"
        },
        {
          "tag": "v0.1.38",
          "kind": "patch",
          "published_at": "2026-02-04T07:33:54Z"
        },
        {
          "tag": "v0.1.37",
          "kind": "patch",
          "published_at": "2026-02-04T00:15:43Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "d7ff7bc2a69f051fa7ab18dca2a7cbda0881f6de",
          "body": "The Autogenerate Copy With AI field removal left an extra closing\nbrace that broke the properties array and blocked the v0.1.55 npm\npublish pipeline.",
          "is_bot": false,
          "headline": "fix: restore TS syntax after removing autogenerate property",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-07-20T20:37:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df60d51cd65b398e46eb85dad72545af4289a0f8",
          "body": null,
          "is_bot": false,
          "headline": "fix: remove remaining autogenerate formData block",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-07-20T20:15:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a5740988aca54204c4e3921cc4432a87088538a1",
          "body": null,
          "is_bot": false,
          "headline": "chore: remove Autogenerate Copy With AI option (v0.1.55)",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-07-20T20:15:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c2b575ce0f8dac376e27ce14bcfd78c01bc56346",
          "body": "New 'YouTube Playlist ID' field maps to youtube_playlist_id (comma-separated\nfor multiple). Integrates PR #86 (rebased onto main). Bumps 0.1.53 -> 0.1.54.",
          "is_bot": false,
          "headline": "feat(youtube): expose Playlist ID field for video uploads (v0.1.54)",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-07-18T02:02:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b6e443f878981183d181e7aeaa9619e3d439420c",
          "body": "…rg/company pages\n\nLinkedIn's API does not expose member-level analytics to standard apps.\nVerified live against production tokens (2026-07-18): personal post/share stats\nrequire r_member_social (we only hold w_member_social) -> HTTP 400, and the\nfirst-degree connection count requires the partner-only r_1st_connections_size\n-> HTTP 403. Personal profiles therefore return no analytics. Stop implying\notherwise; only organization/company pages the member administers are supported.",
          "is_bot": false,
          "headline": "fix(linkedin-analytics): personal profiles have no analytics — only o…",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-07-18T00:31:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c9d213115617a3b49ef06753fc8af538a1a24805",
          "body": "- Support maps, platform dropdown and per-platform title override\n  properties for the 9 new channels; fixes for four broken operations,\n  double-post on retry, Google Business post types.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "release: 0.1.53 — 9 new platforms (staging → main)",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-07-16T10:32:07Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "07f9a25538d9333cc7b8d5d415559fad8ba35dea",
          "body": "…ypes\n\nVerified against production (unauthenticated probes distinguish 404 from\n401/405) and against the backend handlers:\n\n- Edit Scheduled Post sent POST; the route is PATCH-only, so it always 405'd.\n  A timezone-only edit also sent nothing, because the timezone was read\n  inside the 'if new date'\n[…]\n\nmedia posts were unreachable. Facebook analytics silently failed without the\nrequired page_id; the node now asks for it up front.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: four operations that could never succeed; Google Business post t…",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-07-09T10:06:44Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ba2db1f790590a54cb5863bf099f8fe9ea9ea6e3",
          "body": "`npm install -g npm@latest` leaves the global npm missing 'sigstore', so\n`npm publish --provenance` dies with MODULE_NOT_FOUND. Node 24 already\nships npm 11, which is new enough for trusted publishing.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci: use Node 24's bundled npm instead of upgrading in place",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-07-09T09:09:18Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "673935e355d85a91e02f53732228f8347f5c6b55",
          "body": "The classic token authenticates but npm demands an OTP on publish (EOTP),\nand npm now discourages the 2FA-bypass token for CI. Trusted publishing\nswaps the token for a short-lived OIDC token minted by GitHub, so there is\nnothing left to expire — which is what broke publishing twice already.\n\nRequires npm >= 11.5.1, hence the explicit upgrade step, and Node >= 22.14.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci: publish via npm trusted publishing (OIDC)",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-07-09T08:30:00Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ccc2f73c638c4744a96cc3484bb6a49f8804be0b",
          "body": "Uploads now carry an Idempotency-Key derived from the execution, node and\nitem index. The API collapses duplicates within 24h, but only when the\nclient sends a stable key across retries; the node sent none, so an n8n\n\"Retry On Fail\" after a timeout published the post a second time.\n\nWait for Complet\n[…]\n Get Post Analytics, Get Post Analytics by Platform ID, Get Total\nImpressions, Get Platform Metrics and Get Reddit Detailed Posts.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: stop retried uploads from posting twice; expand analytics",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-07-09T08:16:25Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5493b9965b9099b6ad12391f590263e47d8b14d6",
          "body": "npm returns a masked 404 on the publish PUT when NODE_AUTH_TOKEN is\ninvalid, which made the last three release failures hard to read.\nFail on `npm whoami` instead.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci: verify npm auth before publish",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-07-09T08:06:54Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e238b9b64d771029125b2c89474e021a04dce1f9",
          "body": "Release Staging to Production",
          "is_bot": false,
          "headline": "Merge pull request #88 from Upload-Post/staging",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-06-14T11:32:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7940648a4273c6ffe5bff74e11edb1993354fd71",
          "body": "…> 0.1.50\n\nNew boolean \"Autogenerate Copy With AI\" on Upload Video/Photos -> sends autogenerate=true\nso the server generates native per-platform title/description from the media and fills\nblank fields.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Autogenerate Copy With AI option on upload nodes; bump 0.1.49 -…",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-06-12T21:53:20Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "117d07b95ee05518569bc2ba67b540b4e145b3e3",
          "body": "Append Discord and Telegram to the uploadPhotos/uploadText/uploadVideo\noperation descriptions, the generate-JWT platforms picker, and the\nREADME/AGENTS supported-platform lists.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add Discord and Telegram to supported platforms",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-06-10T18:26:26Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c710ea6989b079aa5767e1dcc8022fddbedb019d",
          "body": "Add 'discord' and 'telegram' as supported platforms for uploadPhotos,\nuploadVideo and uploadText in the UploadPost node. Both expose TEXT,\nPHOTO and VIDEO capabilities via the platform support map, the dynamic\ngetPlatforms options list and its per-operation support map.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: support Discord and Telegram platforms",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-06-10T15:35:31Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "748a7bf04a67238d8c6ce44e286f5e2d56b1ad72",
          "body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(release): 0.1.49 — Language option in Generate JWT",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-06-02T21:12:30Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c18350e89e3da913a2ca13493185364a0584f250",
          "body": "New Language dropdown (Auto-Detect default, en/es/de/fr/pt) on the\nGenerate JWT operation, forwarded as `language` to force the white-label\nconnect page language.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: add Language option to Generate JWT operation",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-06-02T20:33:22Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ec2a26e5f56367b667fcea72f922744bd2eaa919",
          "body": "Cuts a release with the latest staging features:\n- feat(youtube): add subtitle upload support to n8n node (#84)\n- feat(platforms): expose Google Business in platform dropdown\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: bump version to 0.1.48",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-05-18T14:23:22Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2c75cb2f7a31130f720a74e5731819323084c8af",
          "body": "Release Staging to Production",
          "is_bot": false,
          "headline": "Merge pull request #87 from Upload-Post/staging",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-05-18T14:16:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0602e40874db1cd2474f22a36b719c0ac99e4739",
          "body": "Add YouTube subtitle parameters (languages, names, files) to the Upload Video\noperation. Supports multiple tracks via comma-separated values.\n\nCo-Authored-By: Claude (noreply@anthropic.com)\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(youtube): add subtitle upload support to n8n node (#84)",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-05-18T12:25:03Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a941ad9cd893efc71d3fa2dcc82a53b752376ec4",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into staging",
          "author_name": "AI Coder Bot",
          "author_login": null,
          "committed_at": "2026-05-17T22:29:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "90f118353f4cc079b4cd3018887d7e8b908a2d57",
          "body": "The backend already supported google_business in PLATFORM_SUPPORT and\napplyGoogleBusinessOptions, but getPlatforms() loadOptions omitted it\nfrom the dropdown, forcing users to fall back to Manual Entry.\n\nBumps version to 0.1.46.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(platforms): expose Google Business in platform dropdown",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-05-17T10:37:03Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b37e0427cc452f0fa7547767ac9a1942b9cf5720",
          "body": "Restored NODE_AUTH_TOKEN auth since npm requires it even with OIDC\nfor the actual publish. Provenance is still enabled.\n\nCo-Authored-By: Harry (noreply@anthropic.com)",
          "is_bot": false,
          "headline": "fix(ci): use NPM_TOKEN with provenance",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-05-04T08:13:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a03d94cb65cb69ddfa3f9f95cb6845ba1bef0f9",
          "body": "setup-node creates a .npmrc with auth config that interferes with\nOIDC trusted publishing. Remove it before publishing so npm uses\nonly the OIDC token.\n\nCo-Authored-By: Harry (noreply@anthropic.com)",
          "is_bot": false,
          "headline": "fix(ci): clean npmrc before OIDC publish",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-05-04T08:09:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4077f7a4575cbbc0a7b0cb95c8431513864ee11",
          "body": "The NODE_AUTH_TOKEN keeps being injected (likely from org-level secret).\nExplicitly unset it so npm uses OIDC trusted publishing instead.\n\nCo-Authored-By: Harry (noreply@anthropic.com)",
          "is_bot": false,
          "headline": "fix(ci): force OIDC by unsetting NODE_AUTH_TOKEN",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-05-04T08:07:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8d490add92469bf0ffdeacad47b2fdaec40bb0b6",
          "body": "npm no longer allows creating classic publish tokens.\nTrusted publishing via OIDC is the recommended approach.\nRequires configuring the package on npm.js to trust this GitHub workflow.\n\nCo-Authored-By: Harry (noreply@anthropic.com)",
          "is_bot": false,
          "headline": "fix(ci): restore OIDC trusted publishing with provenance",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-05-04T07:59:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f1eee134d8138f4832327c981bc562592fd6972b",
          "body": "The workflow had the NPM_TOKEN secret configured but never referenced it.\nThis caused all publish attempts to fail with 404 because npm was\npublishing anonymously.\n\nCo-Authored-By: Harry (noreply@anthropic.com)",
          "is_bot": false,
          "headline": "fix(ci): add NPM_TOKEN auth to publish workflow",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-05-04T07:57:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a87804071977b4f59614e061d3a6b719e28060b7",
          "body": null,
          "is_bot": false,
          "headline": "fix: eslint title case fix",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-04-14T16:24:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "51bed2bf47eea97225e58effed262a6b2da2d6e7",
          "body": null,
          "is_bot": false,
          "headline": "fix: use IDataObject type for notification body",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-04-14T16:19:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "562b6302ed393e753216e4aa7ca992ffd8f3d8ab",
          "body": null,
          "is_bot": false,
          "headline": "fix: remove broken npm update step from CI workflow",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-04-14T16:16:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f65233eb4ac388423b5cd7dc5daf0e9d84161e25",
          "body": null,
          "is_bot": false,
          "headline": "feat: add user preferences operations + bump to v0.1.46",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-04-14T15:56:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c486233077793b2a986fcf8efe6a8c88907bab6",
          "body": "Release Staging to Production",
          "is_bot": false,
          "headline": "Merge pull request #85 from Upload-Post/staging",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-04-14T14:56:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9d35e3a997c0d068ec12c3abcb1cc96f37b8e38f",
          "body": "…#82)\n\nAdd Get/Update Notification Preferences operations to the User resource.\nUsers can configure webhook URL and select which events to subscribe to\n(upload_completed, social_account.connected, social_account.disconnected,\nsocial_account.reauth_required).\n\nCo-Authored-By: Claude (noreply@anthropic.com)\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(webhooks): add notification preferences operations to n8n node (…",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-04-14T00:57:52Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "4d7f0a5c0a8c90fbe6dacfd06c162ae6a12d8895",
          "body": "Add Instagram resource with Get Post Comments, Private Reply to\nComment, and Public Reply to Comment operations to the n8n node.\n\nCo-Authored-By: Claude (noreply@anthropic.com)\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(instagram): add Instagram resource with comment operations (#83)",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-04-14T00:38:25Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ddf76e26f9c66cfc7436676b8194807a535a5ff4",
          "body": "* feat(instagram): support binary data for Instagram Reels cover image\n\nAdd binary property detection for instagramCoverUrl field using isUrlString(),\nmatching the existing YouTube thumbnail pattern. When a binary property name\nis provided instead of a URL, the image is sent as a multipart file uplo\n[…]\nuthored-By: Claude (noreply@anthropic.com)\n\n* fix(instagram): tighten cover field description\n\nCo-Authored-By: Claude (noreply@anthropic.com)\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(instagram): support binary data for Instagram Reels cover (#81)",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-04-14T00:38:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2643b9106dcd729a7aecf0d9dc647ec60790db13",
          "body": "Release Staging to Production",
          "is_bot": false,
          "headline": "Merge pull request #80 from Upload-Post/staging",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-04-13T21:28:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a3fade22fc0c785f5bedc17576c34c503c838181",
          "body": "…llUploadStatus (#79)\n\nThe pollUploadStatus function only recognized 'success', 'completed', 'failed', and 'error'\nas terminal statuses. When a post is scheduled for the future, the API returns 'scheduled',\n'queued', or 'pending' status, none of which triggered the polling loop to break. This caused\n[…]\ng' to the terminal status list so the node returns\nimmediately when a post is confirmed as scheduled.\n\nCo-Authored-By: Claude (noreply@anthropic.com)\n\nCo-authored-by: AI Coder Bot <ai-coder@bot.local>",
          "is_bot": false,
          "headline": "fix(polling): add scheduled/queued/pending as terminal statuses in po…",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-04-13T19:15:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "545481cebeabed4a7577b1be74ea92303d7e77df",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump to 0.1.45",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-03-31T15:28:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "396abadb6f730dff81dbcac5a79af7a263f3c87f",
          "body": "… + bump to 0.1.44",
          "is_bot": false,
          "headline": "fix: lint errors (sort options alphabetically, remove required:false)…",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-03-31T15:25:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c9fd1305ee30e6acdfdcacf94e7766441ea85e8",
          "body": null,
          "is_bot": false,
          "headline": "chore: trigger redeploy",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-03-16T17:49:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3cd5e47b8bed21feb39577e614de01b1717c1f8",
          "body": "Release Staging to Production",
          "is_bot": false,
          "headline": "Merge pull request #77 from Upload-Post/staging",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-03-16T17:23:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3a2cca8920f5f9a1b35353f7489a4a554961061c",
          "body": "Add threadsTopicTag parameter to the UploadPost node, allowing users\nto specify a topic tag (1-50 chars) for Threads posts across photo,\nvideo, and text upload operations. The tag is sent as threads_topic_tag\nin the form data to improve post discoverability on Threads.\n\nCo-authored-by: AI Coder Bot <ai-coder@bot.local>",
          "is_bot": false,
          "headline": "feat(threads): add topic tag parameter for Threads posts (#76)",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-03-13T13:19:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "790919c6fe4f4319cf99f0bf96c7931525003e21",
          "body": "…ccounts (#75)\n\nAllow users to specify a Google Business Profile location ID when\nuploading content, enabling support for accounts with multiple\nlocations. If omitted, the default connected location is used.\n\nCo-authored-by: AI Coder Bot <ai-coder@bot.local>",
          "is_bot": false,
          "headline": "feat(google-business): add location ID parameter for multi-location a…",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-03-13T13:18:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "527c7af5d39895e557ca0d37e8f144e8c258e952",
          "body": "…ge: (#74)\n\nfeat(clients): add get_job_status method across Python, npm, and n8n clients\n\nThe /api/uploadposts/status endpoint accepts both request_id and job_id\nparameters. Previously, only request_id lookups were supported in the\nclient libraries. This adds a dedicated get_job_status method so users\ncan check the status of scheduled or queued posts using job_id.\n\nCo-authored-by: AI Coder Bot <ai-coder@bot.local>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Based on the diff provided and the file list, here's the commit messa…",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-03-13T13:16:55Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "4e850e8227e1ed826440d5e276a3865cbdf41691",
          "body": "Add LinkedIn-specific first comment override parameter to the n8n node,\nallowing users to set a dedicated first comment for LinkedIn that\noverrides the generic first comment field.\n\nSupports uploadPhotos, uploadVideo, uploadText, and uploadDocument\noperations.\n\nCo-authored-by: AI Coder Bot <ai-coder@bot.local>",
          "is_bot": false,
          "headline": "feat(linkedin): add first_comment support for LinkedIn posts (#73)",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-03-13T13:16:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "adc726aaa3d8d23b86e9434e791bbc51523ddf76",
          "body": "Release Staging to Production",
          "is_bot": false,
          "headline": "Merge pull request #72 from Upload-Post/staging",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-03-04T09:36:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "46b4896a1f89be71c4227f3abd446a46a60724ff",
          "body": "…first-comment-images-7e2c9168\n\nAdd Reddit link posts & first comment images",
          "is_bot": false,
          "headline": "Merge pull request #71 from Upload-Post/ai-feature-reddit-link-posts-…",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-02-27T13:30:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7e1f11ebcbb6ac5e34444e099822e79c58608ad1",
          "body": "…-tolowercase-crash-7c9bdd10\n\nFix binary data .toLowerCase() crash",
          "is_bot": false,
          "headline": "Merge pull request #69 from Upload-Post/ai-fix-n8n-upload-node-binary…",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-02-27T13:30:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4a2c20b59381ba94f3e7b865e81c9af268aad65c",
          "body": "Add redditLinkUrl field to the uploadText operation, allowing users\nto create Reddit link posts with URL preview cards instead of plain\ntext posts. The reddit_link_url is passed to the API when provided.",
          "is_bot": false,
          "headline": "feat(reddit): add link URL parameter for Reddit link posts",
          "author_name": "AI Coder Bot",
          "author_login": null,
          "committed_at": "2026-02-27T11:24:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c00e5c51e98599fa08881f041cd38052511285e2",
          "body": "When binary data (Buffer) is passed instead of a URL string, calling\n.toLowerCase() directly on the value causes a runtime crash. Extract\nURL detection into a type-safe isUrlString() helper that checks for\nstring type before calling .toLowerCase(), and add a typeof guard to\nthe status polling comparison.",
          "is_bot": false,
          "headline": "fix(upload): guard .toLowerCase() calls against non-string binary data",
          "author_name": "AI Coder Bot",
          "author_login": null,
          "committed_at": "2026-02-27T09:07:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "76184d02759ceacb24988ca3c832941f7eaa7669",
          "body": "Release Staging to Production",
          "is_bot": false,
          "headline": "Merge pull request #68 from Upload-Post/staging",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-02-24T10:26:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7cde189e7e6232bb9f10381534e0d1bae30f12e7",
          "body": null,
          "is_bot": false,
          "headline": "chore: sync changes to staging",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-02-23T18:59:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "18e64f319b9b685792558ba68108771413612704",
          "body": "Add maxPostsPerSlot option to the n8n node that allows limiting\nthe number of posts assigned to each queue slot. When enabled\nand set above 0, the value is sent as max_posts_per_slot in the\nupload form data, overriding the profile-level default.\n\nThe field is conditionally displayed only when Add to Queue is enabled.\n\nCo-authored-by: AI Coder Bot <ai-coder@bot.local>",
          "is_bot": false,
          "headline": "feat(queue): add max posts per slot parameter for queue uploads (#67)",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-02-23T00:10:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1a152ee3922d33bb24b1b01cce996939c86456b",
          "body": "…rigin (#66)\n\nIntroduce request source tracking across all API clients (n8n, npm, pip)\nand the backend to distinguish how users interact with the platform.\n\n- Add X-Upload-Post-Source header to n8n node credentials and status polling\n- Add same header to npm and pip client libraries\n- Backend detects source via header, form field, or User-Agent fallback\n- Persist source field in upload stats for analytics and usage reporting\n\nCo-authored-by: AI Coder Bot <ai-coder@bot.local>",
          "is_bot": false,
          "headline": "feat(tracking): add X-Upload-Post-Source header to identify request o…",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-02-23T00:07:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6fb85062b6e54bd92d8eec3d66b827a5e10d25a6",
          "body": "…#65)\n\nAdd linkedin_link_url and bluesky_link_url parameters to the uploadText\noperation, enabling rich link preview cards (title, description, thumbnail)\nwhen posting text to LinkedIn and Bluesky platforms.\n\nCo-authored-by: AI Coder Bot <ai-coder@bot.local>",
          "is_bot": false,
          "headline": "feat(uploadText): add link preview support for LinkedIn and Bluesky (…",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-02-20T14:48:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "18551c40366c37199c7929a82f125a5b53a3793b",
          "body": "Make the title parameter non-required for platforms like TikTok,\nInstagram, Facebook, and others where it is optional. Only send\ntitle in form data when a value is provided.\n\nAdd character limit documentation to TikTok title field description\n(90 chars for photos, 2200 for videos) and clarify which platforms\nrequire titles (YouTube, Reddit, text posts) vs optional.\n\nCo-authored-by: AI Coder Bot <ai-coder@bot.local>",
          "is_bot": false,
          "headline": "feat(tiktok): make title optional and document character limits (#64)",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-02-20T14:47:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f60ee3e77347dc6f610e6e62f68f69e6bcd1b761",
          "body": "…ules",
          "is_bot": false,
          "headline": "fix(lint): prefix boolean description with 'Whether' per n8n eslint r…",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-02-12T18:08:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "58ea6192c0e824a252d33cf93e38d2710f0e98c6",
          "body": "Release Staging to Production",
          "is_bot": false,
          "headline": "Merge pull request #61 from Upload-Post/staging",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-02-12T18:04:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "abc47ba010ceaa2a566ed7b15e810d30d6e551be",
          "body": "…oads\n\nAdd a new parameter to control how media items are distributed across\nThreads posts, following the same pattern as x_thread_image_layout.\nEach value can be 1-10. Bump version to 0.1.43.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: add threads_thread_media_layout parameter for Threads photo upl…",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2026-02-12T17:37:18Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "25155a347c3748c2a386da28eb37a3f88684cd3d",
          "body": "…(#59)\n\n- Add facebookThumbnailUrl parameter for custom thumbnails on Facebook page videos\n- Add xThreadImageLayout parameter to control image distribution across X tweet threads\n- Support new VIDEO media type option for Facebook video uploads\n- Enable fine-grained control over multi-image posts on X platform\n\nCo-authored-by: AI Coder Bot <ai-coder@bot.local>",
          "is_bot": false,
          "headline": "feat: add Facebook video thumbnail and X thread image layout options …",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-02-09T13:06:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c3e7dd2ce40008e407888975423e3ee5c0658f65",
          "body": "Add new parameters to JWT generation endpoint for white-label calendar\nsharing: showCalendar, readonlyCalendar, connectTitle, and\nconnectDescription. Enables users to display a read-only calendar view\nto end clients without requiring account connection or editing\ncapabilities.\n\nCo-authored-by: AI Coder Bot <ai-coder@bot.local>",
          "is_bot": false,
          "headline": "feat(uploadpost): support read-only calendar for white-label (#57)",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-02-06T13:40:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "310ae29c9d11c9100b7ef237f17d12dee093a54e",
          "body": null,
          "is_bot": false,
          "headline": "fix: remove superfluous required:false to pass n8n lint, bump v0.1.42",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-02-06T13:21:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7f4b5af1dac8172b593069a68ce6ef1dd89099d",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 0.1.41",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-02-06T13:18:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4facd0d7b61d7a6a655e23a18368702b6653be54",
          "body": null,
          "is_bot": false,
          "headline": "chore: remove backup file",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-02-06T13:13:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "57409b3b26bb03388f54d489a3745bc5b14b2dfc",
          "body": "… Manual Entry fields\n\n- Restore original displayOptions for facebookPageIdManual, targetLinkedinPageIdManual, pinterestBoardIdManual (sub-select dependent)\n- Add new fields for Manual Platform mode: targetLinkedinPageIdManualEntry, facebookPageIdManualEntry, pinterestBoardIdManualEntry\n- These only show when 'Manual Entry (all fields)' platform is selected\n- Update apply*Options functions to read from ManualEntry fields when in manual platform mode\n- TypeScript compiles clean",
          "is_bot": false,
          "headline": "fix: restore sub-select conditions for platform fields, add dedicated…",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-02-06T13:13:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2ab030cc44bf17ff02e06d25b2587b2199cf06b1",
          "body": "- Add 'Manual Entry (all fields)' option to platform selector\n- When selected, shows ALL platform-specific fields (titles, descriptions, page IDs, etc.)\n- Make platform-specific required fields optional (LinkedIn Page, Facebook Page, Reddit Subreddit, Pinterest Board)\n- Remove sub-select dependencies for manual entry fields\n- Normal platform selection unchanged - still shows only relevant fields\n\nThis enables AI agents in n8n to use Upload Post as a tool with full access to all parameters.",
          "is_bot": false,
          "headline": "feat: add Manual Entry platform option for AI agent tool compatibility",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-02-06T13:04:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "972fc18b325d9ec1e63793507845d8ef91898793",
          "body": "Enables the Upload Post node to be used as a tool by AI agents in n8n.\nCloses #11",
          "is_bot": false,
          "headline": "feat: add usableAsTool for AI agent compatibility in n8n",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-02-06T12:40:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e81c1bb20123b93640f187a495e7305049c96563",
          "body": null,
          "is_bot": false,
          "headline": "ci: auto-publish on push to main when version changes",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-02-06T12:37:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fda86e704102d8f33b2b450dfa303cc0c1fd08dc",
          "body": "Fixes icon not loading in n8n node listing. The SVG file is lowercase but the reference was capitalized.",
          "is_bot": false,
          "headline": "fix: correct icon filename case (UploadPost.svg -> uploadpost.svg)",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-02-06T12:34:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "de0bd89e77926d8c852a6b291ca312682436ed10",
          "body": "Add Instagram Trial Reels functionality with three posting modes for Reels uploads:\n- CUSTOM: Regular Reel (default)\n- TRIAL_REELS_SHARE_TO_FOLLOWERS_IF_LIKED: Auto-share if performs well\n- TRIAL_REELS_DONT_SHARE_TO_FOLLOWERS: Manual decision later\n\nTrial Reels enable content creators to test videos\n[…]\n non-followers first before deciding whether to share with their followers, allowing better content performance validation before wider distribution.\n\nCo-authored-by: AI Coder Bot <ai-coder@bot.local>",
          "is_bot": false,
          "headline": "feat(instagram): Add Trial Reels support (#55)",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2026-02-04T09:54:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f887cab5531461b12ae87363854c8966f175efc4",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump to 0.1.38",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-02-04T07:33:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b113d419fa2ea1d4ed94f190e93b72e7ef69d1b9",
          "body": "Closes #13 - Users can now upload photos to Facebook Stories",
          "is_bot": false,
          "headline": "feat(facebook): add media_type option for photos (POSTS/STORIES)",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-02-04T07:29:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "44e12d5c62520b44debdf0079e938dc04fe2827c",
          "body": null,
          "is_bot": false,
          "headline": "ci: fix npm version for trusted publishing (requires 11.5.1+)",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-02-04T00:22:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ab5ae3365f1f92352f95c9e9c005debbf50cc5d3",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 0.1.37",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-02-04T00:15:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22ec0330a7c8c5c8821b6b7a474360786038afb1",
          "body": null,
          "is_bot": false,
          "headline": "ci: add manual trigger with dry-run for testing",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-02-04T00:08:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a3a3097e09e5c3ca88e61b84e78f22b4efbaed56",
          "body": null,
          "is_bot": false,
          "headline": "ci: switch to OIDC trusted publishing (no tokens needed)",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-02-03T23:53:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4effd2ce62c49732a20906bff3af71e451c7cd89",
          "body": null,
          "is_bot": false,
          "headline": "ci: add auto-publish to npm on release",
          "author_name": "root",
          "author_login": null,
          "committed_at": "2026-02-03T23:52:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "850dc1ec507ddfbf575b1a2de4dbf51b083ec30c",
          "body": "Add 'Add to Queue' boolean parameter to upload operations that allows users to queue posts instead of posting immediately. Posts will be automatically scheduled to the next available queue slot.\n\nBased on user feedback requesting a Buffer-like queue system for improved content scheduling workflow.",
          "is_bot": false,
          "headline": "feat(uploadpost): add queue option for post scheduling",
          "author_name": "AI Coder Bot",
          "author_login": null,
          "committed_at": "2026-01-26T13:59:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ddf70bdb2e5742544775fdfb32e9b2f52b4f6209",
          "body": "Add platform-specific first comment field overrides for Instagram, Facebook, X, Threads, YouTube, Reddit, and Bluesky. This allows each platform to have its own first comment configuration rather than using a single generic field across all platforms.\n\nThe implementation includes a new FIRST_COMMENT\n[…]\ncific overrides to form data, and individual form field definitions for each platform's first comment handling. This enables more granular control over platform-specific behavior when posting content.",
          "is_bot": false,
          "headline": "feat(UploadPost): add platform-specific first comment field overrides",
          "author_name": "AI Coder Bot",
          "author_login": null,
          "committed_at": "2026-01-26T11:58:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d13f82056af1647891c02dbfb04e0c7b738f0a7d",
          "body": null,
          "is_bot": false,
          "headline": "0.1.36",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2025-12-28T04:09:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2081eb86ce9a70c77935bd16567b97d439679a1d",
          "body": "AI: Implemented features for añadir a la api de linkedin que se pueda…",
          "is_bot": false,
          "headline": "Merge pull request #45 from Upload-Post/staging",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2025-12-28T04:08:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "51583a3f2df904f540247d2744ce34d9aba048f8",
          "body": "…n subir pdfs",
          "is_bot": false,
          "headline": "AI: Implemented features for añadir a la api de linkedin que se pueda…",
          "author_name": "AI Coder Bot",
          "author_login": null,
          "committed_at": "2025-12-28T02:03:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "697f75ac63bf6e7f77ef05d722fae7d1580c9077",
          "body": null,
          "is_bot": false,
          "headline": "0.1.35",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2025-12-28T01:48:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c67d596443dfa9129635b57b271e76fdc2e9f019",
          "body": "AI: Implemented features for Upload-Post node in n8n x_long_text_as_p…",
          "is_bot": false,
          "headline": "Merge pull request #44 from Upload-Post/ai--d4ea209f",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2025-12-28T01:47:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d9e857e0922d12f2eda83c6b1faca42176865528",
          "body": "…ost=true option only appears when using the \"Upload Text\" action, but not the \"Upload Photos\" action.",
          "is_bot": false,
          "headline": "AI: Implemented features for Upload-Post node in n8n x_long_text_as_p…",
          "author_name": "AI Coder Bot",
          "author_login": null,
          "committed_at": "2025-12-28T01:44:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dbb92f2b12c4280c612395291217439f20b2d46d",
          "body": null,
          "is_bot": false,
          "headline": "0.1.34",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2025-12-26T02:41:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c378938b7c40a163c566aa4b6424d992bd9b1379",
          "body": "Implements support for the 'first_comment' parameter, allowing users to specify an initial comment for posts.\nAdds the 'altText' parameter for image accessibility.\n\nExtends platform capabilities by including Reddit for photo uploads and generalizing platform-specific configurations (e.g., Threads, Reddit titles) across more operations. This aligns the node with features available in the dashboard, offering a more complete posting experience.",
          "is_bot": false,
          "headline": "feat(UploadPost): Add first comment and expand platform features",
          "author_name": "AI Coder Bot",
          "author_login": null,
          "committed_at": "2025-12-26T01:09:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3c3df63375e46db3859cb2a8e4d86c57b71149a7",
          "body": "This change introduces a new 'Pinterest Alt Text' parameter in the Upload Post\nnode. Users can now specify alternative text for their Pinterest photo and\nvideo uploads, improving accessibility and discoverability.\n\nThis fulfills the requirement to allow users to provide alt text when uploading\nto Pinterest via n8n, ensuring the parameter is correctly passed to the\nPinterest API.",
          "is_bot": false,
          "headline": "feat(pinterest): Add alt text support for uploads",
          "author_name": "AI Coder Bot",
          "author_login": null,
          "committed_at": "2025-12-24T11:17:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b4128e848f05bd35b94dfea6e1c2b4f96e4f9624",
          "body": "AI: Meter parametro time zone a los schedule post para todos los endpoints de la api que lo soportan",
          "is_bot": false,
          "headline": "Merge pull request #33 from Upload-Post/ai-tz-schedule-param-bfb2d8d6",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2025-12-16T10:46:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "98f1d7d382b75fbefbea266c6231d97d5f1b2412",
          "body": null,
          "is_bot": false,
          "headline": "Update version to 0.1.33 in package.json",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2025-12-16T10:45:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e61ad43dd348bed02988e33fc07d5f0adc4cbe1f",
          "body": null,
          "is_bot": false,
          "headline": "fixes",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2025-12-16T10:41:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c16a343b9e272e98379ac299e7a67f6ff2d4199e",
          "body": "This change introduces an optional `timezone` parameter for new scheduled posts and a `newTimezone` parameter for editing existing scheduled posts within the `UploadPost` node.\n\nThis allows users to specify their local timezone when setting a scheduled date. The underlying API can then correctly con\n[…]\nprovided date to UTC, ensuring accurate scheduling regardless of the user's geographical location or the server's default timezone. This improves the usability and precision of the scheduling feature.",
          "is_bot": false,
          "headline": "feat(scheduling): Add timezone parameter for scheduled posts",
          "author_name": "AI Coder Bot",
          "author_login": null,
          "committed_at": "2025-12-15T16:34:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1fa7ba6d6e48d4adae864c2e50af17be6bb4ce77",
          "body": "…31f9\n\nAI: Hay que quitar la propiedad madeForKids de la api de youtube es solo read. La buena es selfDeclaredMadeForKids",
          "is_bot": false,
          "headline": "Merge pull request #31 from Upload-Post/ai-fix/selfdeclared-kids-21f6…",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2025-12-15T16:17:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f82c52d2f33b9d04a709478d33c92d0f97ad226a",
          "body": "…moving unnecessary peer dependencies. This streamlines the project setup and ensures compatibility with the latest dependencies.",
          "is_bot": false,
          "headline": "Remove ESLint configuration file and clean up package-lock.json by re…",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2025-12-15T16:15:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a22f3eed3f97f62c08bc61c80333109813b46d4f",
          "body": "Removed the `madeForKids` property from the YouTube video upload/update payload. This property is read-only in the YouTube API and should not be sent in requests. Its removal ensures correct API interaction and prevents potential errors. The correct property for declaring content for kids is `selfDeclaredMadeForKids`.\n\nUpdated ESLint configuration and dev dependencies.",
          "is_bot": false,
          "headline": "fix(youtube): Remove read-only 'madeForKids' property",
          "author_name": "AI Coder Bot",
          "author_login": null,
          "committed_at": "2025-12-15T15:57:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "712b468715c94ac24a8f9478b8a0df80eabf77dd",
          "body": null,
          "is_bot": false,
          "headline": "eslint",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2025-12-15T13:40:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e07db8243d82ba9b6bdd9b09160e6d195022e49a",
          "body": "Staging",
          "is_bot": false,
          "headline": "Merge pull request #22 from Upload-Post/staging",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2025-12-06T22:00:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b8bb93ebcf059560a752285c2580f6aa41269d6",
          "body": null,
          "is_bot": false,
          "headline": "Update version to 0.1.32 in package.json and package-lock.json",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2025-12-06T22:00:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3967f9db8b2d35d6f2765e511310ba7cef55666a",
          "body": null,
          "is_bot": false,
          "headline": "fix lint",
          "author_name": "victormanuel.caverogracia",
          "author_login": null,
          "committed_at": "2025-12-06T21:59:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c07d19279a6bcefd512ad1c3eb60c79a386a6552",
          "body": "…s-108ef35b\n\nAI: Permitir instagram campos de collaborator y user_tags y alguno mas que falte para fotos de Upload post tambien no solo para video q ya lo tenemos (buscar la documentación de instagram a ver si se peude hacer o no y si es asi implementarlo)",
          "is_bot": false,
          "headline": "Merge pull request #21 from Upload-Post/ai-feat/instagram-photo-field…",
          "author_name": "Víctor Cavero",
          "author_login": "victorcavero14",
          "committed_at": "2025-12-06T19:37:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 3,
      "commits_last_year": 83,
      "latest_release_at": "2026-02-06T12:34:26Z",
      "latest_release_tag": "v0.1.39",
      "releases_from_tags": false,
      "days_since_last_push": 6,
      "active_weeks_last_year": 21,
      "days_since_latest_release": 171,
      "mean_days_between_releases": 1.3
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 62,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "n8n-nodes-upload-post",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "n8n-community-node-package",
            "upload-post",
            "social media"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/n8n-nodes-upload-post",
          "is_deprecated": false,
          "latest_version": "0.1.55",
          "repository_url": "https://github.com/Upload-Post/n8n-nodes-upload-post",
          "versions_count": 43,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 102660,
          "first_published_at": "2025-05-28T16:22:27.410000Z",
          "latest_published_at": "2026-07-20T20:42:21.016000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        }
      ]
    },
    "popularity": {
      "forks": 7,
      "stars": 24,
      "watchers": 0,
      "fork_history": {
        "days": [
          {
            "date": "2025-11-09",
            "count": 1
          },
          {
            "date": "2026-01-27",
            "count": 1
          },
          {
            "date": "2026-02-01",
            "count": 1
          },
          {
            "date": "2026-02-13",
            "count": 1
          },
          {
            "date": "2026-02-21",
            "count": 1
          },
          {
            "date": "2026-06-04",
            "count": 1
          },
          {
            "date": "2026-07-09",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 7,
        "total_forks": 7
      },
      "star_history": null,
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 154848,
      "source_files_sampled": 7,
      "oversized_source_files": 1,
      "agent_instruction_files": [
        "AGENTS.md"
      ],
      "agent_instruction_max_bytes": 7743
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "flatted",
            "direct": false,
            "version": "3.3.3",
            "severity": "critical",
            "ecosystem": "npm",
            "cvss_score": 9.8,
            "advisory_ids": [
              "GHSA-25h7-pfq9-p65f",
              "GHSA-rf6f-7fwh-wjgh"
            ],
            "fixed_version": "3.4.2",
            "advisory_count": 2,
            "oldest_advisory_days": 135
          },
          {
            "name": "axios",
            "direct": false,
            "version": "1.8.2",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 8.7,
            "advisory_ids": [
              "GHSA-35jp-ww65-95wh",
              "GHSA-3g43-6gmg-66jw",
              "GHSA-3p68-rc4w-qgx5",
              "GHSA-3w6x-2g7m-8v23",
              "GHSA-42h9-826w-cgv3",
              "GHSA-43fc-jf86-j433",
              "GHSA-445q-vr5w-6q77",
              "GHSA-4hjh-wcwx-xvwj",
              "GHSA-5c9x-8gcm-mpgx",
              "GHSA-62hf-57xw-28j9"
            ],
            "fixed_version": "1.18.0",
            "advisory_count": 29,
            "oldest_advisory_days": 318
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.12",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-3jxr-9vmj-r5cp",
              "GHSA-f886-m6hf-6m8v",
              "GHSA-mh99-v99m-4gvg"
            ],
            "fixed_version": "5.0.8",
            "advisory_count": 3,
            "oldest_advisory_days": 122
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "2.0.2",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-3jxr-9vmj-r5cp",
              "GHSA-f886-m6hf-6m8v",
              "GHSA-mh99-v99m-4gvg"
            ],
            "fixed_version": "5.0.8",
            "advisory_count": 3,
            "oldest_advisory_days": 122
          },
          {
            "name": "form-data",
            "direct": false,
            "version": "4.0.0",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-fjxv-7rqg-78g4",
              "GHSA-hmw2-7cc7-3qxx"
            ],
            "fixed_version": "4.0.6",
            "advisory_count": 2,
            "oldest_advisory_days": 370
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "4.1.0",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-52cp-r559-cp3m",
              "GHSA-h67p-54hq-rp68",
              "GHSA-mh29-5h37-fv8m"
            ],
            "fixed_version": "4.3.0",
            "advisory_count": 3,
            "oldest_advisory_days": 254
          },
          {
            "name": "lodash",
            "direct": false,
            "version": "4.17.21",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 8.1,
            "advisory_ids": [
              "GHSA-f23m-r3pf-42rh",
              "GHSA-r5fr-rjxr-66jc",
              "GHSA-xxjr-mmjv-4gpg"
            ],
            "fixed_version": "4.18.0",
            "advisory_count": 3,
            "oldest_advisory_days": 186
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "3.1.2",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-23c5-xmqv-rm74",
              "GHSA-3ppc-4f35-3m26",
              "GHSA-7r86-cg39-jmmj"
            ],
            "fixed_version": "10.2.3",
            "advisory_count": 3,
            "oldest_advisory_days": 158
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "9.0.3",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-23c5-xmqv-rm74",
              "GHSA-3ppc-4f35-3m26",
              "GHSA-7r86-cg39-jmmj"
            ],
            "fixed_version": "10.2.3",
            "advisory_count": 3,
            "oldest_advisory_days": 158
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "9.0.5",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-23c5-xmqv-rm74",
              "GHSA-3ppc-4f35-3m26",
              "GHSA-7r86-cg39-jmmj"
            ],
            "fixed_version": "10.2.3",
            "advisory_count": 3,
            "oldest_advisory_days": 158
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.1",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-3v7f-55p6-f55p",
              "GHSA-c2c7-rcm5-vvqj"
            ],
            "fixed_version": "4.0.4",
            "advisory_count": 2,
            "oldest_advisory_days": 123
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "6.12.6",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-2g4f-4pwh-qvx6"
            ],
            "fixed_version": "8.18.0",
            "advisory_count": 1,
            "oldest_advisory_days": 165
          },
          {
            "name": "follow-redirects",
            "direct": false,
            "version": "1.15.9",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-r4q5-vmmm-2653"
            ],
            "fixed_version": "1.16.0",
            "advisory_count": 1,
            "oldest_advisory_days": 104
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 10,
          "critical": 1,
          "moderate": 2
        },
        "advisory_count": 58,
        "affected_count": 13,
        "assessed_count": 374,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@eslint-community/eslint-utils",
            "direct": false,
            "version": "4.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint-community/regexpp",
            "direct": false,
            "version": "4.12.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/eslintrc",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/js",
            "direct": false,
            "version": "8.57.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/js",
            "direct": false,
            "version": "9.39.2",
            "ecosystem": "npm"
          },
          {
            "name": "@gulpjs/messages",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@gulpjs/to-absolute-glob",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/config-array",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/module-importer",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/object-schema",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@n8n/tournament",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@n8n_io/riot-tmpl",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@n8n_io/riot-tmpl",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.scandir",
            "direct": false,
            "version": "2.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.stat",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.walk",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/json-schema",
            "direct": false,
            "version": "7.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@types/semver",
            "direct": false,
            "version": "7.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/parser",
            "direct": false,
            "version": "8.32.1",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/scope-manager",
            "direct": false,
            "version": "6.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/scope-manager",
            "direct": false,
            "version": "8.32.1",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/types",
            "direct": false,
            "version": "6.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/types",
            "direct": false,
            "version": "8.32.1",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/typescript-estree",
            "direct": false,
            "version": "6.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/typescript-estree",
            "direct": false,
            "version": "8.32.1",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/utils",
            "direct": false,
            "version": "6.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/visitor-keys",
            "direct": false,
            "version": "6.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/visitor-keys",
            "direct": false,
            "version": "8.32.1",
            "ecosystem": "npm"
          },
          {
            "name": "@ungap/structured-clone",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-jsx",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "6.12.6",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "anymatch",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "array-each",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "array-slice",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "array-union",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "assert",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "ast-types",
            "direct": false,
            "version": "0.15.2",
            "ecosystem": "npm"
          },
          {
            "name": "ast-types",
            "direct": false,
            "version": "0.16.1",
            "ecosystem": "npm"
          },
          {
            "name": "async-done",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "async-settle",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "asynckit",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "available-typed-arrays",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "axios",
            "direct": false,
            "version": "1.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "b4a",
            "direct": false,
            "version": "1.6.7",
            "ecosystem": "npm"
          },
          {
            "name": "bach",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "bare-events",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "base64-js",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "binary-extensions",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "bl",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.12",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "braces",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "buffer",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind-apply-helpers",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "call-bound",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "callsites",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "camel-case",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "charenc",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "7.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "clone",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "clone-stats",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "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": "concat-map",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "copy-props",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "crypt",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "deep-equal",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "deep-is",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "define-data-property",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "define-properties",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "delayed-stream",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-file",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "dir-glob",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "doctrine",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "dunder-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "each-props",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "end-of-stream",
            "direct": false,
            "version": "1.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "es-define-property",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-errors",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-get-iterator",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "es-object-atoms",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint",
            "direct": false,
            "version": "8.57.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-config-riot",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-local",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-n8n-nodes-base",
            "direct": false,
            "version": "1.16.3",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-scope",
            "direct": false,
            "version": "7.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "3.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "espree",
            "direct": false,
            "version": "9.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "esprima",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "esprima-next",
            "direct": false,
            "version": "5.8.4",
            "ecosystem": "npm"
          },
          {
            "name": "esquery",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "esrecurse",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estraverse",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "esutils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "expand-tilde",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "extend",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-fifo",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "fast-glob",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-json-stable-stringify",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-levenshtein",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "fast-levenshtein",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fastest-levenshtein",
            "direct": false,
            "version": "1.0.16",
            "ecosystem": "npm"
          },
          {
            "name": "fastq",
            "direct": false,
            "version": "1.19.1",
            "ecosystem": "npm"
          },
          {
            "name": "file-entry-cache",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "fill-range",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "findup-sync",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fined",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "flagged-respawn",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "flat-cache",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "flatted",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "follow-redirects",
            "direct": false,
            "version": "1.15.9",
            "ecosystem": "npm"
          },
          {
            "name": "for-each",
            "direct": false,
            "version": "0.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "for-in",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "for-own",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "form-data",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fs-mkdirp-stream",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "fs.realpath",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "function-bind",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "functions-have-names",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "get-caller-file",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "get-intrinsic",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "7.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "glob-stream",
            "direct": false,
            "version": "8.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "glob-watcher",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "global-modules",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "global-prefix",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "globals",
            "direct": false,
            "version": "13.24.0",
            "ecosystem": "npm"
          },
          {
            "name": "globals",
            "direct": false,
            "version": "15.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "globby",
            "direct": false,
            "version": "11.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "glogg",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "graphemer",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "gulp",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "gulp-cli",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "gulplog",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-bigints",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-property-descriptors",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "has-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": "homedir-polyfill",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "ieee754",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ignore-by-default",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "import-fresh",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "imurmurhash",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "indefinite",
            "direct": false,
            "version": "2.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "inflight",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ini",
            "direct": false,
            "version": "1.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "internal-slot",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "interpret",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-absolute",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-arguments",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-array-buffer",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "is-bigint",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-binary-path",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-boolean-object",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-buffer",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "is-callable",
            "direct": false,
            "version": "1.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "is-core-module",
            "direct": false,
            "version": "2.16.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-date-object",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-extglob",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-generator-function",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-glob",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-map",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-nan",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-negated-glob",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-number",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-number-object",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-path-inside",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-plain-object",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-regex",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-relative",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-set",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-shared-array-buffer",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "is-string",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-symbol",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-typed-array",
            "direct": false,
            "version": "1.1.15",
            "ecosystem": "npm"
          },
          {
            "name": "is-unc-path",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-valid-glob",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-weakmap",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-weakset",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "is-windows",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "isarray",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "isobject",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "jmespath",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-base64",
            "direct": false,
            "version": "3.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-buffer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-stable-stringify-without-jsonify",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "jssha",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "keyv",
            "direct": false,
            "version": "4.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "last-run",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lead",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "levn",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "liftoff",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash",
            "direct": false,
            "version": "4.17.21",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.merge",
            "direct": false,
            "version": "4.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "lower-case",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "luxon",
            "direct": false,
            "version": "3.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "map-cache",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "md5",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge2",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromatch",
            "direct": false,
            "version": "4.0.8",
            "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": "9.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "9.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "mute-stdout",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "n8n-workflow",
            "direct": false,
            "version": "1.82.0",
            "ecosystem": "npm"
          },
          {
            "name": "natural-compare",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "no-case",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "nodemon",
            "direct": false,
            "version": "3.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-path",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "now-and-later",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "object-inspect",
            "direct": false,
            "version": "1.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "object-is",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "object-keys",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "object.assign",
            "direct": false,
            "version": "4.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "object.defaults",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "object.pick",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "once",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "optionator",
            "direct": false,
            "version": "0.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "parent-module",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse-filepath",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "parse-passwd",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "pascal-case",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "path-exists",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-is-absolute",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-parse",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "path-root",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-root-regex",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "path-type",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "pluralize",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "possible-typed-array-names",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "prelude-ls",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "prettier",
            "direct": false,
            "version": "3.5.3",
            "ecosystem": "npm"
          },
          {
            "name": "proxy-from-env",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "pstree.remy",
            "direct": false,
            "version": "1.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "punycode",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "queue-microtask",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "readable-stream",
            "direct": false,
            "version": "3.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "recast",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "recast",
            "direct": false,
            "version": "0.22.0",
            "ecosystem": "npm"
          },
          {
            "name": "rechoir",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "regexp.prototype.flags",
            "direct": false,
            "version": "1.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "remove-trailing-separator",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "replace-ext",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "replace-homedir",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "require-directory",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "1.22.10",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-dir",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-from",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-options",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "reusify",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "rimraf",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "run-parallel",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "safe-regex-test",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "safer-buffer",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "sax",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "6.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "semver-greatest-satisfied-range",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "sentence-case",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "set-function-length",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "set-function-name",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-command",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-regex",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel",
            "direct": false,
            "version": "1.1.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": "simple-update-notifier",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "slash",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "sparkles",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "stop-iteration-iterator",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "stream-composer",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "stream-exhaust",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "streamx",
            "direct": false,
            "version": "2.22.0",
            "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": "strip-json-comments",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "5.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-preserve-symlinks-flag",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "sver",
            "direct": false,
            "version": "1.8.4",
            "ecosystem": "npm"
          },
          {
            "name": "teex",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "text-decoder",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "text-table",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "title-case",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "to-regex-range",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "to-through",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "touch",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "transliteration",
            "direct": false,
            "version": "2.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "ts-api-utils",
            "direct": false,
            "version": "1.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "ts-api-utils",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-check",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.20.2",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "unc-path-regex",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "undefsafe",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "undertaker",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "undertaker-registry",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "upper-case-first",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "uri-js",
            "direct": false,
            "version": "4.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "util",
            "direct": false,
            "version": "0.12.5",
            "ecosystem": "npm"
          },
          {
            "name": "util-deprecate",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "v8flags",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "value-or-function",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "vinyl",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "vinyl-contents",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "vinyl-fs",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "vinyl-sourcemap",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "which-boxed-primitive",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "which-collection",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "which-typed-array",
            "direct": false,
            "version": "1.1.19",
            "ecosystem": "npm"
          },
          {
            "name": "word-wrap",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrappy",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "xml2js",
            "direct": false,
            "version": "0.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "xmlbuilder",
            "direct": false,
            "version": "11.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "y18n",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "16.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "17.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "20.2.9",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "21.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "yocto-queue",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": false,
            "version": "3.24.1",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 374,
        "direct_count": 0,
        "indirect_count": 374
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 47,
        "open_issues": 0,
        "closed_ratio": 1,
        "closed_issues": 20,
        "closed_unmerged_prs": 20
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "victorcavero14",
          "commits": 62,
          "avatar_url": "https://avatars.githubusercontent.com/u/33009505?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": false,
      "ci_workflows": [
        "publish.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [
        ".eslintrc.js"
      ],
      "has_editorconfig": true,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 0,
            "reason": "0 out of 3 merged PRs checked by a CI test -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/27 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 0,
            "reason": "project has 0 contributing companies or organizations -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "27 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 3,
            "reason": "dependency not pinned by hash detected -- score normalized to 3",
            "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": 9,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "48 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "d7ff7bc2a69f051fa7ab18dca2a7cbda0881f6de",
        "ran_at": "2026-07-27T13:01:39Z",
        "aggregate_score": 4.5,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-20T20:42:24Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-05-18T12:25:04Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/Upload-Post/n8n-nodes-upload-post",
    "host": "github.com",
    "name": "n8n-nodes-upload-post",
    "owner": "Upload-Post"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 62,
      "inputs": {
        "security": 56,
        "vitality": 83,
        "community": 55,
        "governance": 55,
        "engineering": 58
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 83,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 78,
            "inputs": {
              "commits_last_year": 83,
              "human_commit_share": 1,
              "days_since_last_push": 6,
              "active_weeks_last_year": 21
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 6 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "21/52 weeks with commits",
                "points": 14.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 21
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "83 commits in the last year",
                "points": 17.3,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 83
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "27 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 90,
            "inputs": {
              "releases_count": 3,
              "latest_release_tag": "v0.1.39",
              "releases_from_tags": false,
              "days_since_latest_release": 171,
              "mean_days_between_releases": 1.3
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "3 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 171 days ago",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 171
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~1.3 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 1.3
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 6,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 6 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 55,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 29,
            "inputs": {
              "forks": 7,
              "stars": 24,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "24 stars",
                "points": 22.1,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 24
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "7 forks",
                "points": 6.5,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "good",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 84,
            "inputs": {
              "packages": [
                "n8n-nodes-upload-post"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 102660
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "102,660 downloads/month across npm",
                "points": 66.8,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 102660,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 55,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 10,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 1,
              "top_contributor_share": 1
            },
            "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 100% of commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "1 contributors",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "merged_prs": 47,
              "open_issues": 0,
              "closed_issues": 20,
              "issue_closed_ratio": 1,
              "closed_unmerged_prs": 20
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "100% of issues closed",
                "points": 46.8,
                "status": "met",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "47/67 decided PRs merged",
                "points": 26.8,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 47,
                      "decided": 67
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/27 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 53,
            "inputs": {
              "followers": 40,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "Upload-Post",
              "public_repos": 13,
              "account_age_days": 479
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "40 followers of Upload-Post",
                "points": 11.6,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 40,
                      "login": "Upload-Post"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "13 public repos, account ~1 yr old",
                "points": 11,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 13
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 1
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "n8n-nodes-upload-post"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 6
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 6 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "43 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 43
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 58,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "at_risk",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 46,
            "inputs": {
              "has_ci": true,
              "has_tests": false,
              "has_editorconfig": true,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "1 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": ".eslintrc.js",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc.js"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "0 out of 3 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "topics": [
                "automation",
                "instagram",
                "n8n",
                "n8n-community-node",
                "social-media",
                "tiktok",
                "youtube",
                "upload-post"
              ],
              "has_wiki": true,
              "homepage": "https://upload-post.com",
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://upload-post.com",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "8 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 8
                    }
                  }
                ],
                "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": 56,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 45,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 4.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": "0 out of 3 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/27 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "27 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 3",
                "points": 1.5,
                "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": 6.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "48 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 374 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 374
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 58,
              "affected_packages": 13,
              "assessed_packages": 374,
              "unassessed_packages": 0,
              "affected_by_severity": "critical 1, high 10, moderate 2",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 374,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 1
            },
            "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": 67,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.9,
              "agent_instruction_files": [
                "AGENTS.md"
              ],
              "agent_instruction_max_bytes": 7743
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "90 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 90,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "at_risk",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 45,
            "inputs": {
              "has_nix": false,
              "has_tests": false,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "tsconfig.json"
              ],
              "agent_commit_share": 0.19,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": ".eslintrc.js",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc.js"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "19 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 19,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 154848,
              "source_files_sampled": 7,
              "oversized_source_files": 1
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "TypeScript (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "1/7 source files over 60KB",
                "points": 47.1,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 7,
                      "oversized": 1
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-27T13:01:48.588613Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/u/Upload-Post/n8n-nodes-upload-post.svg",
  "full_name": "Upload-Post/n8n-nodes-upload-post",
  "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.27.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte Statistikennpm.