Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 0.27.0 · метрики 1.13.0 · 2026-07-27 11:40 UTC

PipedreamHQ / pipedream-sdk-typescript

TypeScript SDK for Pipedream

TypeScriptВласна ліцензія★ 9 зірок⑂ 5 форківз лип. 2025 р.Переглянути на GitHub ↗

PipedreamHQ/pipedream-sdk-typescript має індекс здоров’я 65 зі 100, що відповідає смузі «Помірний». Найвищий показник — Vitality (92/100), найнижчий — Security (51/100). Останнє оновлення було 6 днів тому. Більшість нещодавньої роботи виконує один учасник.

65
загалом / 100
Помірний

Індекс здоров'я програмного забезпечення

Метрики згруповано у зважені категорії на шкалі 1–100. Загальна оцінка починається як їхнє середнє; коли публічні дані активують Політику юрисдикцій високого ризику, рейтинг коригується й отримує верхню межу 49 («Під ризиком»). Готовність до ШІ не входить до індексу.

65
Відмінний85-100Зразковий; відповідає практично всім перевіреним критеріям
Добрий70-84Здоровий; незначні прогалини
Помірний50-69Прийнятний, але з помітними прогалинами; рекомендовано перевірку
У зоні ризику30-49Суттєві слабкі місця; впровадження потребує обережності
Критичний1-29Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

Профіль оцінок

Кожна вісь — окрема категорія. Форма важить більше, ніж середнє: здоровий об'єкт заповнює всю фігуру, тоді як профіль із піками та провалами означає, що сила в одному вимірі маскує ризик в іншому.

Власність

PipedreamОрганізація
591 підписник47 публічних репозиторіївз жовт. 2018 р.

За цим репозиторієм стоїть організація — спільна, підзвітна опіка, здатна пережити будь-якого окремого мейнтейнера.

Пакетні екосистеми

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікація
npm@pipedream/sdk3.1.2693 8011376 днів тому

Метрики за категоріями

Життєздатність

Чи живий проєкт — чи пишеться код і чи виходять релізи?

92Відмінний · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 6 дн. тому
22.8/36Ритм комітів — 33/52 тижнів із комітами
18/18Обсяг комітів — 115 комітів за останній рік
10/10OpenSSF Scorecard: Maintained — 26 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
Використані вхідні дані
commits_last_year115
human_commit_share0,63
days_since_last_push6
active_weeks_last_year33
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 62 релізів
36/36Свіжість релізів — останній реліз 39 дн. тому
27/27Ритм релізів — реліз кожні ~3,9 дн.
0/10OpenSSF Scorecard: Signed-Releases — немає даних
Використані вхідні дані
releases_count62
latest_release_tagv3.1.1
releases_from_tagsні
days_since_latest_release39
mean_days_between_releases3,9
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Signed-Releases. Залишкові ваги перенормовано.

Спільнота та впровадження

Чи має проєкт користувачів, завантаження, увагу та влаштовані умови для контриб’юторів?

55Помірний · 18% загального індексу
Як обчислюється оцінка
14.6/60Зірки — 9 зірок
5/25Форки — 5 форків
0/15Спостерігачі — 1 спостерігачів
Використані вхідні дані
forks5
stars9
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
22.5/22.5README
16.9/22.5Ліцензія — файл ліцензії наявний, не є визнаною ліцензією
18/18Настанови CONTRIBUTING
0/13.5Кодекс поведінки
0/7.2Шаблон issue
0/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
has_contributingтак
has_issue_templateні
has_code_of_conductні
has_pull_request_templateні
Як обчислюється оцінка
77.9/80Щомісячні завантаження — 693 801 завантажень/місяць у npm
0/20Залежні пакети в реєстрі — ця екосистема цього не повідомляє
Використані вхідні дані
packages@pipedream/sdk
dependents
ecosystemsnpm
total_downloads
monthly_downloads693 801
Виключено з оцінювання (немає даних або не застосовно): Залежні пакети в реєстрі. Залишкові ваги перенормовано.

Сталість та врядування

Чи переживе проєкт своїх людей — бас-фактор, реактивність, хто за ним стоїть і як супроводжуються пакети?

56Помірний · 24% загального індексу
Як обчислюється оцінка
9/54Бас-фактор — на 1 контриб’ютор(ів) припадає половина всіх комітів
2.1/22.5Розподіл комітів — головний контриб’ютор — автор 90% комітів
6.8/13.5Широта контриб’юторів — 5 контриб’юторів
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Використані вхідні дані
bus_factor1
contributors_sampled5
top_contributor_share0,905
Як обчислюється оцінка
36.4/46.8Вирішення issue — закрито 78% issue
6.7/38.3Прийняття PR — злито 60/341 вирішених PR
0/15OpenSSF Scorecard: Code-Review — Found 1/17 approved changesets -- score normalized to 0
Використані вхідні дані
merged_prs60
open_issues2
closed_issues7
issue_closed_ratio0,778
closed_unmerged_prs281
Як обчислюється оцінка
30/30Підтримка власника — у власності організації
0/20Верифікований домен
19.9/25Охоплення власника — 591 підписників у PipedreamHQ
24.2/25Послужний список — 47 публічних репозиторіїв, вік облікового запису ~7 р.
Використані вхідні дані
followers591
owner_typeOrganization
is_verified
owner_loginPipedreamHQ
public_repos47
account_age_days2 854

Супровід пакетів

100Відмінний
Як обчислюється оцінка
25/25Опубліковано й доступно — 1 пакет(ів) у npm
35/35Свіжість публікацій — остання публікація 6 дн. тому
20/20Історія версій — 137 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packages@pipedream/sdk
ecosystemsnpm
any_deprecatedні
min_days_since_publish6

Інженерна якість

Чи наявні базові інженерні практики та документація?

66Помірний · 20% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 3 процес(ів) CI
24/24Наявні тести
16/16Конфігурація лінтера — biome.json
0/9.6Pre-commit-хуки
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 14 out of 14 merged PRs checked by a CI test -- score normalized to 10
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigні
has_linter_configтак
has_precommit_configні

Документація

40У зоні ризику
Як обчислюється оцінка
30/30README
0/25Каталог документації
0/15Сайт документації / домашня сторінка
10/10Опис репозиторію
0/10Теми
0/10Wiki
Використані вхідні дані
topics
has_wikiні
homepage
has_readmeтак
has_docs_dirні
has_descriptionтак

Безпека

Чи міцні видимі практики безпеки й ланцюга постачання, без непослабленої пов’язаності з юрисдикціями високого ризику?

51Помірний · 16% загального індексу

Стан безпеки

39У зоні ризику
Як обчислюється оцінка
7.5/7.5Binary-Artifacts — no binaries found in the repo
2.2/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 14 out of 14 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 1/17 approved changesets -- score normalized to 0
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.2/2.5Ліцензія — license file detected
7.5/7.5Maintained — 26 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — немає даних
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — немає даних
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
3.8/7.5Vulnerabilities — 5 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate3,9
Виключено з оцінювання (немає даних або не застосовно): packaging, signed_releases. Залишкові ваги перенормовано.
Як обчислюється оцінка
35/35Прямі залежності без відомих сповіщень — жодна пряма залежність не має відомих сповіщень
0/25Непрямі залежності без відомих сповіщень — транзитивний набір не відокремлюється від залежностей розробки й тестування в цьому обсязі
0/40Немає задавнених сповіщень — жодне сповіщення не має дати публікації
Використані вхідні дані
sourceosv
advisories5
affected_packages3
assessed_packages212
unassessed_packages0
affected_by_severityhigh 3
direct_affected_packages0
Виключено з оцінювання (немає даних або не застосовно): Непрямі залежності без відомих сповіщень, Немає задавнених сповіщень. Залишкові ваги перенормовано. Звірено 212 резолвлених залежностей із OSV. Цей репозиторій не публікує пакета, який резолвить індекс, тож натомість оцінено граф залежностей репозиторію. Цей граф змішує закріплені версії для розробки й тестування зі справді постачаними залежностями, тож оцінюються лише задекларовані runtime-залежності; транзитивні знахідки подаються як контекст і в оцінку не входять. Досяжність не аналізується.

Готовність до ШІ

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Незалежний, експериментальний бейдж — вага 0.0, тож він подається окремо і не впливає на загальний індекс здоров'я.

64Помірний · 0% загального індексу
Як обчислюється оцінка
45/45Інструкції для агентів — CLAUDE.md
0/15Машиночитана документація (llms.txt)
15.2/40Читабельна історія комітів — намір зазначено у 18 з 63 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,286
agent_instruction_filesCLAUDE.md
agent_instruction_max_bytes8 056
Як обчислюється оцінка
0/18Розгортання однією командою
22/22Автоматизовані тести
11/11Конфігурація лінтера / форматера — biome.json
11/11Статична перевірка типів — tests/tsconfig.json, tsconfig.json
10/10Відтворюване середовище — lockfile
0/10Підтверджена практика роботи з агентами — серед останніх 100 комітів немає створених агентом
0/8Автоматизоване супроводження — автоматичних оновлень залежностей не виявлено
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Використані вхідні дані
has_nixні
has_testsтак
lockfilespnpm-lock.yaml
has_dockerfileні
typed_languageтак
bootstrap_files
has_devcontainerні
has_linter_configтак
typecheck_configstests/tsconfig.json, tsconfig.json
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
Як обчислюється оцінка
45/45Типізований код — TypeScript (статично типізована)
55/55Керовані розміри файлів — 0/665 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languageTypeScript
largest_source_bytes48 346
source_files_sampled665
oversized_source_files0

Ключові факти

9зірок GitHub
5контриб'юторів
115комітів за останні 12 місяців
6днів від останнього пушу
62релізів
1бас-фактор
2відкритих issue
npmпакетних екосистем

Попередження щодо збору даних

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

Докладніше

Історія зірок і форків 0 ★ / 5 ⇿
0Зірки
5Форки
57Релізи

Коли додано кожну зірку й форк — зібрано з GitHub і згруповано за днями. Кумулятивне зростання розміщено просто над денними додаваннями, з яких воно складається, тож їх видно одне проти одного: рівномірне органічне накопичення виглядає зовсім інакше, ніж різкий короткочасний сплеск. Там, де цю різницю можна виміряти, її подано як автентичність росту.

12345512025-072025-122026-05
Мажорні 2Мінорні 5Патчі 34
OpenSSF Scorecard 3.9 / 10
3.9сукупно

Незалежна, не прив'язана до інструментів оцінка безпеки від відкритого проєкту OpenSSF Scorecard. Кожна перевірка винагороджує практику безпеки, а не інструмент конкретного постачальника. Перевірки, які Scorecard не зміг визначити, позначено н/д і виключено з оцінки безпеки (вони ніколи не зараховуються як нуль).Scorecard v5.5.0 · 2026-07-27 11:40 UTC

10Binary-Artifactsno binaries found in the repo
3Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests14 out of 14 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 1/17 approved changesets -- score normalized to 0
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
9Licenselicense file detected
10Maintained26 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
н/дPackagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
н/дSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
5Vulnerabilities5 existing vulnerabilities detected
Усі залежності 212

Повний розв'язаний набір залежностей із графа залежностей GitHub: 0 прямих і 212 непрямих (транзитивних) пакетів. Транзитивне замикання є повним, коли в репозиторії закомічено lockfile.

РеєстрПакетВерсіяЗв'язок
npm@biomejs/biome2.4.10непряма
npm@biomejs/cli-darwin-arm642.4.10непряма
npm@biomejs/cli-darwin-x642.4.10непряма
npm@biomejs/cli-linux-arm642.4.10непряма
npm@biomejs/cli-linux-arm64-musl2.4.10непряма
npm@biomejs/cli-linux-x642.4.10непряма
npm@biomejs/cli-linux-x64-musl2.4.10непряма
npm@biomejs/cli-win32-arm642.4.10непряма
npm@biomejs/cli-win32-x642.4.10непряма
npm@bundled-es-modules/cookie2.0.1непряма
npm@bundled-es-modules/statuses1.0.1непряма
npm@emnapi/core1.10.0непряма
npm@emnapi/runtime1.10.0непряма
npm@emnapi/wasi-threads1.2.1непряма
npm@inquirer/ansi1.0.2непряма
npm@inquirer/confirm5.1.21непряма
npm@inquirer/core10.3.2непряма
npm@inquirer/figures1.0.15непряма
npm@inquirer/type3.0.10непряма
npm@jridgewell/gen-mapping0.3.13непряма
npm@jridgewell/resolve-uri3.1.2непряма
npm@jridgewell/source-map0.3.11непряма
npm@jridgewell/sourcemap-codec1.5.5непряма
npm@jridgewell/trace-mapping0.3.31непряма
npm@mswjs/interceptors0.39.8непряма
npm@napi-rs/wasm-runtime1.1.4непряма
npm@open-draft/deferred-promise2.2.0непряма
npm@open-draft/logger0.3.0непряма
npm@open-draft/until2.1.0непряма
npm@oxc-project/types0.127.0непряма
npm@rolldown/binding-android-arm641.0.0-rc.17непряма
npm@rolldown/binding-darwin-arm641.0.0-rc.17непряма
npm@rolldown/binding-darwin-x641.0.0-rc.17непряма
npm@rolldown/binding-freebsd-x641.0.0-rc.17непряма
npm@rolldown/binding-linux-arm-gnueabihf1.0.0-rc.17непряма
npm@rolldown/binding-linux-arm64-gnu1.0.0-rc.17непряма
npm@rolldown/binding-linux-arm64-musl1.0.0-rc.17непряма
npm@rolldown/binding-linux-ppc64-gnu1.0.0-rc.17непряма
npm@rolldown/binding-linux-s390x-gnu1.0.0-rc.17непряма
npm@rolldown/binding-linux-x64-gnu1.0.0-rc.17непряма
npm@rolldown/binding-linux-x64-musl1.0.0-rc.17непряма
npm@rolldown/binding-openharmony-arm641.0.0-rc.17непряма
npm@rolldown/binding-wasm32-wasi1.0.0-rc.17непряма
npm@rolldown/binding-win32-arm64-msvc1.0.0-rc.17непряма
npm@rolldown/binding-win32-x64-msvc1.0.0-rc.17непряма
npm@rolldown/pluginutils1.0.0-rc.17непряма
npm@standard-schema/spec1.1.0непряма
npm@tybys/wasm-util0.10.2непряма
npm@types/chai5.2.3непряма
npm@types/cookie0.6.0непряма
npm@types/deep-eql4.0.2непряма
npm@types/eslint9.6.1непряма
npm@types/eslint-scope3.7.7непряма
npm@types/estree1.0.8непряма
npm@types/json-schema7.0.15непряма
npm@types/node18.19.130непряма
npm@types/statuses2.0.6непряма
npm@vitest/expect4.1.5непряма
npm@vitest/mocker4.1.5непряма
npm@vitest/pretty-format4.1.5непряма
npm@vitest/runner4.1.5непряма
npm@vitest/snapshot4.1.5непряма
npm@vitest/spy4.1.5непряма
npm@vitest/utils4.1.5непряма
npm@webassemblyjs/ast1.14.1непряма
npm@webassemblyjs/floating-point-hex-parser1.13.2непряма
npm@webassemblyjs/helper-api-error1.13.2непряма
npm@webassemblyjs/helper-buffer1.14.1непряма
npm@webassemblyjs/helper-numbers1.13.2непряма
npm@webassemblyjs/helper-wasm-bytecode1.13.2непряма
npm@webassemblyjs/helper-wasm-section1.14.1непряма
npm@webassemblyjs/ieee7541.13.2непряма
npm@webassemblyjs/leb1281.13.2непряма
npm@webassemblyjs/utf81.13.2непряма
npm@webassemblyjs/wasm-edit1.14.1непряма
npm@webassemblyjs/wasm-gen1.14.1непряма
npm@webassemblyjs/wasm-opt1.14.1непряма
npm@webassemblyjs/wasm-parser1.14.1непряма
npm@webassemblyjs/wast-printer1.14.1непряма
npm@xtuc/ieee7541.2.0непряма
npm@xtuc/long4.2.2непряма
npmacorn8.16.0непряма
npmacorn-import-phases1.0.4непряма
npmajv8.20.0непряма
npmajv-formats2.1.1непряма
npmajv-keywords5.1.0непряма
npmansi-regex5.0.1непряма
npmansi-styles4.3.0непряма
npmassertion-error2.0.1непряма
npmbaseline-browser-mapping2.10.27непряма
npmbraces3.0.3непряма
npmbrowserslist4.28.2непряма
npmbuffer-from1.1.2непряма
npmcaniuse-lite1.0.30001791непряма
npmchai6.2.2непряма
npmchalk4.1.2непряма
npmchrome-trace-event1.0.4непряма
npmcli-width4.1.0непряма
npmcliui8.0.1непряма
npmcolor-convert2.0.1непряма
npmcolor-name1.1.4непряма
npmcommander2.20.3непряма
npmconvert-source-map2.0.0непряма
npmcookie0.7.2непряма
npmdetect-libc2.1.2непряма
npmelectron-to-chromium1.5.349непряма
npmemoji-regex8.0.0непряма
npmenhanced-resolve5.21.0непряма
npmes-module-lexer2.1.0непряма
npmescalade3.2.0непряма
npmeslint-scope5.1.1непряма
npmesrecurse4.3.0непряма
npmestraverse4.3.0непряма
npmestraverse5.3.0непряма
npmestree-walker3.0.3непряма
npmevents3.3.0непряма
npmexpect-type1.3.0непряма
npmfast-deep-equal3.1.3непряма
npmfast-uri3.1.2непряма
npmfdir6.5.0непряма
npmfill-range7.1.1непряма
npmfsevents2.3.3непряма
npmget-caller-file2.0.5непряма
npmglob-to-regexp0.4.1непряма
npmgraceful-fs4.2.11непряма
npmgraphql16.13.2непряма
npmhas-flag4.0.0непряма
npmheaders-polyfill4.0.3непряма
npmis-fullwidth-code-point3.0.0непряма
npmis-node-process1.2.0непряма
npmis-number7.0.0непряма
npmjest-worker27.5.1непряма
npmjson-schema-traverse1.0.0непряма
npmlightningcss1.32.0непряма
npmlightningcss-android-arm641.32.0непряма
npmlightningcss-darwin-arm641.32.0непряма
npmlightningcss-darwin-x641.32.0непряма
npmlightningcss-freebsd-x641.32.0непряма
npmlightningcss-linux-arm-gnueabihf1.32.0непряма
npmlightningcss-linux-arm64-gnu1.32.0непряма
npmlightningcss-linux-arm64-musl1.32.0непряма
npmlightningcss-linux-x64-gnu1.32.0непряма
npmlightningcss-linux-x64-musl1.32.0непряма
npmlightningcss-win32-arm64-msvc1.32.0непряма
npmlightningcss-win32-x64-msvc1.32.0непряма
npmloader-runner4.3.2непряма
npmmagic-string0.30.21непряма
npmmerge-stream2.0.0непряма
npmmicromatch4.0.8непряма
npmmime-db1.54.0непряма
npmmsw2.11.2непряма
npmmute-stream2.0.0непряма
npmnanoid3.3.12непряма
npmneo-async2.6.2непряма
npmnode-releases2.0.38непряма
npmobug2.1.1непряма
npmoutvariant1.4.3непряма
npmpath-to-regexp6.3.0непряма
npmpathe2.0.3непряма
npmpicocolors1.1.1непряма
npmpicomatch2.3.2непряма
npmpicomatch4.0.4непряма
npmpostcss8.5.14непряма
npmrequire-directory2.1.1непряма
npmrequire-from-string2.0.2непряма
npmrettime0.7.0непряма
npmrolldown1.0.0-rc.17непряма
npmschema-utils4.3.3непряма
npmsemver7.7.4непряма
npmsiginfo2.0.0непряма
npmsignal-exit4.1.0непряма
npmsource-map0.6.1непряма
npmsource-map0.7.6непряма
npmsource-map-js1.2.1непряма
npmsource-map-support0.5.21непряма
npmstackback0.0.2непряма
npmstatuses2.0.2непряма
npmstd-env4.1.0непряма
npmstrict-event-emitter0.5.1непряма
npmstring-width4.2.3непряма
npmstrip-ansi6.0.1непряма
npmsupports-color7.2.0непряма
npmsupports-color8.1.1непряма
npmtapable2.3.3непряма
npmterser5.46.2непряма
npmterser-webpack-plugin5.5.0непряма
npmtinybench2.9.0непряма
npmtinyexec1.1.2непряма
npmtinyglobby0.2.16непряма
npmtinyrainbow3.1.0непряма
npmtldts7.0.30непряма
npmtldts-core7.0.30непряма
npmto-regex-range5.0.1непряма
npmtough-cookie6.0.1непряма
npmts-loader9.5.7непряма
npmtslib2.8.1непряма
npmtype-fest4.41.0непряма
npmtypescript5.9.3непряма
npmundici-types5.26.5непряма
npmupdate-browserslist-db1.2.3непряма
npmvite8.0.10непряма
npmvitest4.1.5непряма
npmwatchpack2.5.1непряма
npmwebpack5.106.2непряма
npmwebpack-sources3.4.1непряма
npmwhy-is-node-running2.3.0непряма
npmwrap-ansi6.2.0непряма
npmwrap-ansi7.0.0непряма
npmy18n5.0.8непряма
npmyargs17.7.2непряма
npmyargs-parser21.1.1непряма
npmyoctocolors-cjs2.1.3непряма
Сповіщення про залежності 3

Цей репозиторій не публікує пакета, який розпізнає індекс, тож оцінено його власний граф залежностей — 212 пакетів, серед яких є й піниї розробки та тестування, що ніколи не постачаються: 3 мають відомі сповіщення, з них 0 прямі.

ПакетВерсіяЗв'язокКритичністьСповіщеньВиправлено в
fast-uri3.1.2непрямависока24.1.1
postcss8.5.14непрямависока18.5.18
vite8.0.10непрямависока28.0.16

Сповіщення означає, що версія, записана в графі залежностей, потрапляє в уражений діапазон. Досяжність не аналізується, а граф містить піниї розробки й тестування — знахідка може стосуватися інструментів, а не поставленого коду.

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 1497,
      "has_wiki": false,
      "homepage": null,
      "languages": {
        "JavaScript": 3552,
        "TypeScript": 1169335
      },
      "pushed_at": "2026-07-20T19:49:25Z",
      "created_at": "2025-07-02T18:17:33Z",
      "owner_type": "Organization",
      "updated_at": "2026-06-17T19:40:53Z",
      "description": "TypeScript SDK for Pipedream",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "main",
      "license_spdx_raw": "NOASSERTION",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript"
      ]
    },
    "owner": {
      "blog": "https://pipedream.com",
      "name": "Pipedream",
      "type": "Organization",
      "login": "PipedreamHQ",
      "company": null,
      "location": "San Francisco, CA",
      "followers": 591,
      "avatar_url": "https://avatars.githubusercontent.com/u/43791938?v=4",
      "created_at": "2018-10-02T17:45:22Z",
      "is_verified": null,
      "public_repos": 47,
      "account_age_days": 2854
    },
    "license": {
      "state": "custom",
      "spdx_id": null,
      "raw_spdx": "NOASSERTION",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v3.1.1",
          "kind": "patch",
          "published_at": "2026-06-17T19:42:02Z"
        },
        {
          "tag": "v3.1.0",
          "kind": "minor",
          "published_at": "2026-06-06T00:15:07Z"
        },
        {
          "tag": "v3.0.9",
          "kind": "patch",
          "published_at": "2026-05-29T22:32:42Z"
        },
        {
          "tag": "v3.0.8",
          "kind": "patch",
          "published_at": "2026-05-28T00:43:10Z"
        },
        {
          "tag": "v3.0.7",
          "kind": "patch",
          "published_at": "2026-05-26T21:04:08Z"
        },
        {
          "tag": "v3.0.6",
          "kind": "patch",
          "published_at": "2026-05-22T03:36:19Z"
        },
        {
          "tag": "v3.0.5",
          "kind": "patch",
          "published_at": "2026-05-22T03:29:31Z"
        },
        {
          "tag": "v3.0.4",
          "kind": "patch",
          "published_at": "2026-05-20T01:52:44Z"
        },
        {
          "tag": "v3.0.3",
          "kind": "patch",
          "published_at": "2026-05-20T00:18:45Z"
        },
        {
          "tag": "v3.0.2",
          "kind": "patch",
          "published_at": "2026-05-13T21:25:58Z"
        },
        {
          "tag": "v3.0.1",
          "kind": "patch",
          "published_at": "2026-05-08T23:18:27Z"
        },
        {
          "tag": "v3.0.0",
          "kind": "major",
          "published_at": "2026-05-08T20:13:43Z"
        },
        {
          "tag": "v2.5.0",
          "kind": "minor",
          "published_at": "2026-05-06T17:45:08Z"
        },
        {
          "tag": "v2.4.9",
          "kind": "patch",
          "published_at": "2026-05-06T15:41:19Z"
        },
        {
          "tag": "v2.4.8",
          "kind": "patch",
          "published_at": "2026-04-28T17:57:06Z"
        },
        {
          "tag": "v2.4.7",
          "kind": "patch",
          "published_at": "2026-04-21T23:19:49Z"
        },
        {
          "tag": "v2.4.6",
          "kind": "patch",
          "published_at": "2026-04-17T17:58:14Z"
        },
        {
          "tag": "v2.4.5",
          "kind": "patch",
          "published_at": "2026-04-13T16:04:01Z"
        },
        {
          "tag": "v2.4.4",
          "kind": "patch",
          "published_at": "2026-04-09T15:42:37Z"
        },
        {
          "tag": "v2.4.3",
          "kind": "patch",
          "published_at": "2026-04-01T18:09:07Z"
        },
        {
          "tag": "v2.4.2",
          "kind": "patch",
          "published_at": "2026-03-30T16:29:12Z"
        },
        {
          "tag": "v2.4.1",
          "kind": "patch",
          "published_at": "2026-03-20T18:14:15Z"
        },
        {
          "tag": "v2.4.0",
          "kind": "minor",
          "published_at": "2026-03-20T00:06:05Z"
        },
        {
          "tag": "v2.3.9",
          "kind": "patch",
          "published_at": "2026-03-17T17:19:26Z"
        },
        {
          "tag": "v2.3.8",
          "kind": "patch",
          "published_at": "2026-03-05T20:23:44Z"
        },
        {
          "tag": "v2.3.7",
          "kind": "patch",
          "published_at": "2026-02-17T17:03:40Z"
        },
        {
          "tag": "v2.3.6",
          "kind": "patch",
          "published_at": "2026-02-02T23:00:32Z"
        },
        {
          "tag": "v2.3.5",
          "kind": "patch",
          "published_at": "2025-12-15T17:12:21Z"
        },
        {
          "tag": "v2.3.4",
          "kind": "patch",
          "published_at": "2025-12-11T22:01:11Z"
        },
        {
          "tag": "v2.3.3",
          "kind": "patch",
          "published_at": "2025-12-11T15:01:22Z"
        },
        {
          "tag": "v2.3.2",
          "kind": "patch",
          "published_at": "2025-12-05T17:31:14Z"
        },
        {
          "tag": "v2.3.1",
          "kind": "patch",
          "published_at": "2025-12-02T17:41:39Z"
        },
        {
          "tag": "v2.3.0",
          "kind": "minor",
          "published_at": "2025-11-20T21:11:36Z"
        },
        {
          "tag": "v2.2.0",
          "kind": "minor",
          "published_at": "2025-10-24T16:13:25Z"
        },
        {
          "tag": "v2.1.0",
          "kind": "minor",
          "published_at": "2025-10-20T17:35:16Z"
        },
        {
          "tag": "v2.0.13",
          "kind": "patch",
          "published_at": "2025-10-08T21:59:35Z"
        },
        {
          "tag": "v2.0.12",
          "kind": "patch",
          "published_at": "2025-10-02T17:38:12Z"
        },
        {
          "tag": "v2.0.11",
          "kind": "patch",
          "published_at": "2025-10-01T22:08:42Z"
        },
        {
          "tag": "v2.0.10",
          "kind": "patch",
          "published_at": "2025-10-01T18:45:26Z"
        },
        {
          "tag": "v2.0.7",
          "kind": "patch",
          "published_at": "2025-09-19T11:56:21Z"
        },
        {
          "tag": "v2.0.6",
          "kind": "patch",
          "published_at": "2025-09-18T19:00:28Z"
        },
        {
          "tag": "v2.0.5",
          "kind": "patch",
          "published_at": "2025-09-15T19:47:35Z"
        },
        {
          "tag": "v2.0.4",
          "kind": "patch",
          "published_at": "2025-09-09T15:30:36Z"
        },
        {
          "tag": "v2.0.2",
          "kind": "patch",
          "published_at": "2025-09-08T22:14:29Z"
        },
        {
          "tag": "v2.0.1",
          "kind": "patch",
          "published_at": "2025-09-08T21:25:12Z"
        },
        {
          "tag": "v2.0.0",
          "kind": "major",
          "published_at": "2025-09-06T16:14:44Z"
        },
        {
          "tag": "v2.0.0-rc.16",
          "kind": "prerelease",
          "published_at": "2025-09-06T02:27:30Z"
        },
        {
          "tag": "v2.0.0-rc.15",
          "kind": "prerelease",
          "published_at": "2025-09-05T22:01:00Z"
        },
        {
          "tag": "v2.0.0-rc.14",
          "kind": "prerelease",
          "published_at": "2025-09-05T20:04:12Z"
        },
        {
          "tag": "v2.0.0-rc.13",
          "kind": "prerelease",
          "published_at": "2025-09-05T19:30:57Z"
        },
        {
          "tag": "v2.0.0-rc.12",
          "kind": "prerelease",
          "published_at": "2025-09-05T16:13:29Z"
        },
        {
          "tag": "v2.0.0-rc.11",
          "kind": "prerelease",
          "published_at": "2025-08-20T22:16:08Z"
        },
        {
          "tag": "v2.0.0-rc.10",
          "kind": "prerelease",
          "published_at": "2025-08-19T21:19:07Z"
        },
        {
          "tag": "v2.0.0-rc.9",
          "kind": "prerelease",
          "published_at": "2025-08-18T22:25:29Z"
        },
        {
          "tag": "v2.0.0-rc.8",
          "kind": "prerelease",
          "published_at": "2025-08-15T19:35:41Z"
        },
        {
          "tag": "v2.0.0-rc.7",
          "kind": "prerelease",
          "published_at": "2025-08-11T17:32:34Z"
        },
        {
          "tag": "v2.0.0-rc.6",
          "kind": "prerelease",
          "published_at": "2025-08-06T00:23:05Z"
        },
        {
          "tag": "v2.0.0-rc.5",
          "kind": "prerelease",
          "published_at": "2025-08-05T22:23:57Z"
        },
        {
          "tag": "v2.0.0-rc.4",
          "kind": "prerelease",
          "published_at": "2025-08-04T23:44:47Z"
        },
        {
          "tag": "v2.0.0-rc.3",
          "kind": "prerelease",
          "published_at": "2025-08-01T23:43:54Z"
        },
        {
          "tag": "v2.0.0-rc.2",
          "kind": "prerelease",
          "published_at": "2025-07-30T22:19:35Z"
        },
        {
          "tag": "v2.0.0-rc.1",
          "kind": "prerelease",
          "published_at": "2025-07-29T20:00:08Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "971d42028c0a7d8464f99f4c48442a1d9baad68b",
          "body": "The logic to normalize URL paths was broken because it applied the\npattern matching to the entire URL instead of just the path.",
          "is_bot": false,
          "headline": "Fix path normalization bug",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-06-17T19:39:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ff00226eed5eb37c8f46e252816d1c13c105179",
          "body": "* Add summary (`sum` field) to emitted events\n* Improve documentation of endpoints by using examples\n\n---------\n\nCo-authored-by: Jay Vercellone <jay.vercellone@workday.com>",
          "is_bot": true,
          "headline": "Documentation and schema improvements (#350)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-06-06T00:06:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e7add34a7b40b37f8ff8fb21f4db4bfc3b2f5490",
          "body": "When the `PipedreamClient` is initialized without a project\nID (e.g. in the browser), the client internally feeds the parent class\nwith a blank ID, causing every request path to be prefixed with\n`/v1/connect//`. This change intercepts `fetch` calls so that the\nrequest path is normalized by stripping duplicate slashes.",
          "is_bot": false,
          "headline": "Normalize paths in the request URLs",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-06-05T23:50:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a14651d47691c176c2a5e342c8afc12351fe8954",
          "body": null,
          "is_bot": false,
          "headline": "Bump version",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-05-29T22:02:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea130db45c3d253cd07c3ddb7e81d84646680d07",
          "body": "The base client accepts as input a field called `headers` which\nentries are sent in every request that the client instance makes. Our\nexisting wrapper did not handle that field previously, and this change\nfixes that both for the Node.js and the browser clients.",
          "is_bot": false,
          "headline": "Accept custom headers at the client level",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-05-29T21:54:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2fa7f6ee10ab9608d608c001d518413ddef74ad0",
          "body": "This changes fixes a regression introduced during the latest\nmigration (i.e. v3) due to how Fern rewrote the API authentication\nlayer.",
          "is_bot": false,
          "headline": "Proxy auth fix",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-05-28T00:40:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e29389db57f65ed5acbe426095868806b3b4844a",
          "body": "Revert the following commits:\n* c685375b3f8b0d6c860176086bea106a594c70e3.\n* a623a84725d576eb1440027e6f5d287dfed8dc9c.",
          "is_bot": false,
          "headline": "Revert changes related to Fern replays",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-05-28T00:38:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a623a84725d576eb1440027e6f5d287dfed8dc9c",
          "body": "Applying the migration guide from Fern:\nhttps://buildwithfern.com/learn/sdks/overview/replay-migration\n\n---------\n\nCo-authored-by: Jay Vercellone <jay.vercellone@workday.com>",
          "is_bot": true,
          "headline": "Onboard to Fern replay (#349)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-05-26T23:45:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c685375b3f8b0d6c860176086bea106a594c70e3",
          "body": null,
          "is_bot": false,
          "headline": "Lean .fernignore",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-05-26T22:29:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bf20ede111cf2300bd2b76202fead4722dc1ec66",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 3.0.7",
          "author_name": "Moshe Grunwald",
          "author_login": "TheBestMoshe",
          "committed_at": "2026-05-26T21:02:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1c2951f226bc7433bab7331073c2c145b9082ebb",
          "body": null,
          "is_bot": false,
          "headline": "Add accountId support to browser client connectAccount (#346)",
          "author_name": "Moshe Grunwald",
          "author_login": "TheBestMoshe",
          "committed_at": "2026-05-26T20:59:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4b7d1bcfd2077f9e37de5f4962dcef1afdbf7a17",
          "body": null,
          "is_bot": false,
          "headline": "Trigger new deployment",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-05-22T03:34:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a57af44a3e8cc48efe8f8d43435781e3a69bdb67",
          "body": "This change handles the rate-limit response headers\ncoming from the `POST /v1/oauth/token` endpoint, so that\nthe SDK can do retries properly.\n\n---------\n\nCo-authored-by: Jay Vercellone <jay.vercellone@workday.com>",
          "is_bot": true,
          "headline": "Rate-limit response headers for OAuth token creation (#344)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-05-22T03:27:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9908f7814588a510bc1ee1fff6be08a57f9d3fa7",
          "body": "* Fix all linter issues\n* Use proper type for OAuth scope profiles",
          "is_bot": false,
          "headline": "Minor cleanups",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-05-20T01:49:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8fe72d16e2980daa2570c5afc5932c9bb8f11d8c",
          "body": "This reverts commit 1e42dba5f6c5d362e2b428335d9d97981ed1544b.",
          "is_bot": false,
          "headline": "Revert \"Specify environment in CI/CD\"",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-05-20T00:17:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e42dba5f6c5d362e2b428335d9d97981ed1544b",
          "body": null,
          "is_bot": false,
          "headline": "Specify environment in CI/CD",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-05-20T00:02:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e3e25e52b4623986b7cab48cbf21bb5be02732d",
          "body": "* Expose the OAuth scope profiles that each OAuth app supports\n* Update the browser interface to accept the OAuth scope profile\n\n---------\n\nCo-authored-by: Jay Vercellone <jay.vercellone@workday.com>",
          "is_bot": true,
          "headline": "Add support for OAuth scope profiles (#342)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-05-19T23:36:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6f68eec0656b7c7b474deee0f56762a491ea85cc",
          "body": "* SDK regeneration\n\n* Restore browser package changes\n\n---------\n\nCo-authored-by: fern-api[bot] <115122769+fern-api[bot]@users.noreply.github.com>\nCo-authored-by: Giao Phan <giao.phan@workday.com>",
          "is_bot": true,
          "headline": ":herb: Fern Regeneration -- May 13, 2026 (#343)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-05-13T21:19:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a54943f75c68fdee4c70693d96a1217ddd3be1ac",
          "body": null,
          "is_bot": false,
          "headline": "Draft releases with version from manifest",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-05-11T17:15:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4fa3188dd1fc44aa496dc358504bd22be19288a4",
          "body": "---------\n\nCo-authored-by: fern-api[bot] <115122769+fern-api[bot]@users.noreply.github.com>\nCo-authored-by: Jay Vercellone <jay.vercellone@workday.com>",
          "is_bot": true,
          "headline": "Fix SDK version in `User-Agent` header (#341)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-05-08T22:40:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd271bf553b63df1f9594b793ac2b1ec67db963f",
          "body": null,
          "is_bot": false,
          "headline": "Automate relase notes",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-05-08T22:14:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5d99df6e6826631240e212e4bbc869f0a79c14ad",
          "body": "Flatten the `ConfigurableProp` and `Emitter` discriminated unions: the nested\n`ConfigurableProp.{Variant}` and `Emitter.{Member}` namespaces are removed in\nfavor of flat per-variant interfaces (`ConfigurablePropAlert`,\n`DeployedComponent`, etc.). Each variant now carries its `type` discriminator\ndir\n[…]\nriables, or auth flows changed in this release.\n\n---------\n\nCo-authored-by: fern-api[bot] <115122769+fern-api[bot]@users.noreply.github.com>\nCo-authored-by: Jay Vercellone <jay.vercellone@workday.com>",
          "is_bot": true,
          "headline": "Major upgrade to v3 (#340)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-05-08T19:17:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f831a8c669881188dbc314acc0f5213781ecfe01",
          "body": null,
          "is_bot": false,
          "headline": "Temporarily allow changes to all files",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-05-06T19:50:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "266f185f333e444382d729cc87f22ec4019d10a0",
          "body": "This change is the result of re-generating the SDK\nusing the latest v3 Fern generator (`3.69.1`) and\nre-applying the custom code fixes.\n\n---------\n\nCo-authored-by: fern-api[bot] <115122769+fern-api[bot]@users.noreply.github.com>\nCo-authored-by: Jay Vercellone <jay.vercellone@workday.com>",
          "is_bot": true,
          "headline": "Upgrade Fern generator (#338)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-05-06T17:42:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b5464dac79b901bd0e1cffc3d5d4040a57f8e6e9",
          "body": "Co-authored-by: fern-api[bot] <115122769+fern-api[bot]@users.noreply.github.com>\nCo-authored-by: Moshe Grunwald <moshe.grunwald@workday.com>",
          "is_bot": true,
          "headline": "🌿 Fern Regeneration -- April 30, 2026 (#335)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-05-05T14:36:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ea4fc7c0516d8afca8cf1ffe640974c9c99c2cc",
          "body": "---------\n\nCo-authored-by: Jay Vercellone <jay.vercellone@workday.com>",
          "is_bot": true,
          "headline": "Allow progressive scopes (#334)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-04-28T17:52:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "51fea78de5dea84adbc0b32551385f1ca6a72890",
          "body": null,
          "is_bot": true,
          "headline": "Update reference docs (#330)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-04-27T19:23:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d3e4f19ce86a41b978da4c337e493d42db7d011",
          "body": null,
          "is_bot": false,
          "headline": "Temporarily allow changes to reference doc",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-04-27T18:53:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f517512512167a73b24fed4079f9af5af00ec1ad",
          "body": "* Add the new `authorizedScopes` field to the `Account` schema\n* Add the missing `accessMode` and `sync` fields to the\n  `ConfigurablePropDir` prop type",
          "is_bot": true,
          "headline": "Improve the `Account` and `ConfigurablePropDir` schemas",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-04-21T22:55:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae6433c514d898bbf80e0f481ed2c8a5807ae900",
          "body": null,
          "is_bot": true,
          "headline": "List external users (#325)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-04-17T17:52:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e16ee88fce0943fd2e0cf55effaa584ae1e6a6f3",
          "body": null,
          "is_bot": false,
          "headline": "Add license field to `package.json` (#323)",
          "author_name": "casret",
          "author_login": "casret",
          "committed_at": "2026-04-13T16:02:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6e63c1711809c2f2cf9b983db32549224e7f44d7",
          "body": "The `credentials` field in the `Account` OpenAPI schema lacked\nproperty definitions causing SDK generators to type it as an opaque\nobject.",
          "is_bot": true,
          "headline": "Improve the `Account` schema credentials definition (#322)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-04-08T23:31:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7386549ac5aaa7d03fcf2230b26543dcd36daaf9",
          "body": "The `exports`, `os` and `ret` fields in the `RunActionResponse`\nOpenAPI schema lacked type information causing SDK generators to type\nthem as `unknown`.",
          "is_bot": true,
          "headline": "Improve the `RunActionResponse` schema (#321)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-04-08T21:59:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "915e357a86473cb1ff7b7ca04db8b827c8c36289",
          "body": "The `usage` and `projectEnvironment` endpoints were already\nimplemented but they were not accessible because `src/Client.ts` did\nnot include them (it's currently listed in `.fernignore`). This change\naddresses this bug.",
          "is_bot": false,
          "headline": "Expose new endpoints in the main client class",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-04-01T18:05:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "68011c63f7a7b5ff2d6fb55952f7d68ac2e581f7",
          "body": "* SDK regeneration\n\n* Fixing type exports\n\n* Readding exports\n\n---------\n\nCo-authored-by: fern-api[bot] <115122769+fern-api[bot]@users.noreply.github.com>\nCo-authored-by: Dylan Sather <Dylan Sather>",
          "is_bot": true,
          "headline": "ProjectEnvironment + Webhook changes (#316)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-03-26T22:44:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e09b6f23c763c8eac23ad0fb7c1c7897c12f915f",
          "body": "The browser client extends the backend client, but it was missing some\nthe `baseUrl` argument in the call to `super`. This meant that passing\na custom URL for the API in the browser didn't do anything.",
          "is_bot": false,
          "headline": "Fix browser client `baseUrl` initialization",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-03-20T18:09:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "81d1f83f64c17021b093b577e12a84e2c9d03728",
          "body": null,
          "is_bot": false,
          "headline": "Make project environment optional for browser clients",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-03-19T23:13:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2cccc6e9d358900eea56e97efcd478ce97146dce",
          "body": "* remove environment\nadd baseUrl\n\n* get url from generator\n\n* restore\n\n* .\n\n* add Proxy wrapper\n\n* update proxy wrapper\n\n* remove other env references\n\n* SDK regeneration\n\n* delete proxy.ts\n\n* add support for PIPEDREAM_BASE_URL env var\n\n* readd per Jay's feedback\n\n---------\n\nCo-authored-by: Jason Endo <jason@pipedream.com>\nCo-authored-by: fern-api[bot] <115122769+fern-api[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": ":herb: Fern Regeneration -- March 16, 2026 (#311)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-03-17T17:18:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "26d11df850b060ab78941af7ff66268ce918256d",
          "body": "Configurable props of type `\"string\"` can have a `format` field that\nspecifies the expected format of the string. Currently, the only\nsupported format is `\"file-ref\"`.\n\n---------\n\nCo-authored-by: fern-api[bot] <115122769+fern-api[bot]@users.noreply.github.com>\nCo-authored-by: Jay Vercellone <jay@pipedream.com>\nCo-authored-by: js07 <19861096+js07@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Expose format field for string configurable props",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-03-05T19:17:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4eab51773031ecb2d0f6f4371ae2ee028d52fb53",
          "body": "* Add a new usage resource with a list method\n  to retrieve Connect usage records for a given\n  time window.\n* `CreateTokenOpts` now supports:\n  - `expiresIn`: set a custom TTL in seconds (max 4 hours)\n  - `scope`: restrict token permissions with\n    space-separated scopes (defaults to `connect:*`)",
          "is_bot": true,
          "headline": "Add Connect Usage API and token scope (#302)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2026-02-17T17:01:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "78a06c6e9c93000fe1e65a96cbf6f3ac4d306777",
          "body": "This reverts commit 9ba3577aba96a07aa869aa82b0a3561d357b7154.",
          "is_bot": false,
          "headline": "Revert \"Temporarily make custom files updateable\"",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2026-02-06T16:26:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9577314427c50aa673a56d7fff629c1f4620f2c2",
          "body": null,
          "is_bot": false,
          "headline": "Exposing hideClose arg (#299)",
          "author_name": "Danny Roosevelt",
          "author_login": "dannyroosevelt",
          "committed_at": "2026-02-02T21:59:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ba3577aba96a07aa869aa82b0a3561d357b7154",
          "body": null,
          "is_bot": false,
          "headline": "Temporarily make custom files updateable",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-12-19T20:30:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "671dde14541038141eceefb0e1f7c8c8b583637e",
          "body": "The correct name for the \"string options\" field\nis `stringOptions` instead of `string_options`.\n\nThis solves issue #271\n\n---------\n\nCo-authored-by: Jay Vercellone <jay@pipedream.com>",
          "is_bot": true,
          "headline": "Fix typo in `ConfigurePropResponse` (#297)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-12-15T17:11:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49eeb03851f8844407ca367ce6dd6290cae264ec",
          "body": "* Add support for the `has_components`, `has_actions`\n  and `has_triggers` existing query params to filter\n  apps listings\n* Add support for the new `connect_require_key_auth_test`\n  project setting, which verifies that new accounts\n  for key-based apps are tested before creation.\n\n---------\n\nCo-authored-by: Jay Vercellone <jay@pipedream.com>",
          "is_bot": true,
          "headline": "Apps listing and project settings improvements (#296)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-12-11T22:00:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "89c584010897111382de1a64a2d6be7e9bba8456",
          "body": "This change adds support for managing projects\nvia the SDK. Users can now create, retrieve,\nupdate, and delete projects programmatically.\n\n---------\n\nCo-authored-by: Jay Vercellone <jay@pipedream.com>",
          "is_bot": true,
          "headline": "Project management endpoints (#293)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-12-11T14:59:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9102f381b4e570032e7afc26d365fd309a659245",
          "body": null,
          "is_bot": false,
          "headline": "Temporarily make custom files updateable",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-12-10T19:40:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50c2179c134d9a6682a77c8ace4a1bbd5dc26c6b",
          "body": "Pipedream JWT access tokens do not have the project\nID encoded in it. Clients should use the project ID\npassed in during initialization.\n\n---------\n\nCo-authored-by: Jay Vercellone <jay@pipedream.com>",
          "is_bot": false,
          "headline": "fix: remove project ID override when using token provider (#281)",
          "author_name": "Moshe Grunwald",
          "author_login": "TheBestMoshe",
          "committed_at": "2025-12-05T17:29:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "18a1329f0ec3f660852c3be5baaad081042a4e01",
          "body": "This change accepts an extra parameter when listing\ncomponents, so that users can list private components,\npublic/registry components, or both.\n\n---------\n\nCo-authored-by: fern-api[bot] <115122769+fern-api[bot]@users.noreply.github.com>\nCo-authored-by: Jay Vercellone <jay@pipedream.com>\nCo-authored-by: Moshe Grunwald <moshe@pipedream.com>",
          "is_bot": true,
          "headline": "Custom component listing (#279)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-12-02T17:38:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "114e3b8ce3fac28aaed3fa7497493d1960b5336d",
          "body": null,
          "is_bot": false,
          "headline": "Update the `SDK_VERSION` constant",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-11-20T21:08:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "508446201354e44d72fb88f9534b99991471f03b",
          "body": null,
          "is_bot": false,
          "headline": "Bring back the path exports",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-11-20T21:08:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "41baeb1eee68584bab447bbe097d2b4d05f77df2",
          "body": null,
          "is_bot": false,
          "headline": "Fix Accept header parsing RegEx and docs",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-11-20T20:13:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f0378321e1a52a858f191083e3c33b2de770232",
          "body": "* Only process responses as JSON if the upstream call does not provide\na specific `Accept` header\n* Transform all user-provided headers (i.e. the ones prefixed with\n`x-pd-proxy-`) to lowercase, to make the `Accept` header inspection\neasier\n* Merge the user-provided query params with the URL before the\nbase64 encoding, so that users don't have to do it themselves\n* Bump package minor version",
          "is_bot": false,
          "headline": "Allow Proxy to accept multiple content types (#278)",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-11-20T18:57:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c1dc025aa431c5e5e5ae47c10b6fc8dd8ff8c3ea",
          "body": "This change turns the `ConfigurableProp` type\ninto a union of all its subtypes (e.g.\n`ConfigurablePropInteger`, `ConfigurablePropString`, etc.).\n\nThis allows users to refer to that generic type\nwhen calling methods such as `components.reloadProps`\nand process the response by using a parent type. Thi\n[…]\nypes of every single prop\nthat's returned by the method.\n\n---------\n\nCo-authored-by: fern-api[bot] <115122769+fern-api[bot]@users.noreply.github.com>\nCo-authored-by: Jay Vercellone <jay@pipedream.com>",
          "is_bot": true,
          "headline": "Relate `ConfigurableProp` with its subtypes(#276)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-11-19T20:52:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e4c49cf39a1e75ee60d54ef7325a91d00fb4c69a",
          "body": "This reverts commit bec5d891394e7ea7ccaf084e66358d8fb5803d18.",
          "is_bot": false,
          "headline": "Revert \"Temporarily make Proxy files updateable\"",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-11-17T18:50:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bec5d891394e7ea7ccaf084e66358d8fb5803d18",
          "body": null,
          "is_bot": false,
          "headline": "Temporarily make Proxy files updateable",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-11-14T21:00:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "209c25f4ae67ce9e86ce64cb5f49d9f4fe49b0ac",
          "body": "* Run actions using a specific component version\n* Expose component key when retrieving deployed\n  triggers\n* Associate workflow ID when deploying triggers\n* Filter component lists by emitter type (e.g. HTTP,\n  Timer, etc.)\n* Replace type of component listing and retrieval with\n  the new `Emitter` type\n\n---------\n\nCo-authored-by: Jay Vercellone <jay@pipedream.com>\nCo-authored-by: Boris Verkhovskiy <boris@pipedream.com>\nCo-authored-by: Jacob Pines <jacob@pipedream.com>",
          "is_bot": true,
          "headline": "Changes in component operations (#248)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-10-24T16:11:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1c1c21cf8e2b1bd0c4122074a385aa1c0ad5d7b4",
          "body": "This reverts commit 164f0611f1d1d209aa204c970ea5e3c66d054721.",
          "is_bot": false,
          "headline": "Revert \"Temporarily make Proxy files updateable\"",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-10-23T20:14:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "164f0611f1d1d209aa204c970ea5e3c66d054721",
          "body": null,
          "is_bot": false,
          "headline": "Temporarily make Proxy files updateable",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-10-21T19:33:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c96bd26b954b4ec2c29bc75fe29e4644f1a73328",
          "body": null,
          "is_bot": false,
          "headline": "Fix NPM publish command",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-10-18T14:02:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c19952e5575f22c6de76a2cf9c5270e3aa82f7c",
          "body": "---------\n\nCo-authored-by: Jay Vercellone <jay@pipedream.com>",
          "is_bot": true,
          "headline": "Regenerate SDK with Fern's v3 Node generator (#222)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-10-18T13:54:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5d9e40de3fdd10a738784590e9a409b8954e4a86",
          "body": null,
          "is_bot": false,
          "headline": "Temporarily make all files updateable",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-10-17T15:36:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c8215443c0c7c037fff0c7c8ea68fb190122ce14",
          "body": null,
          "is_bot": false,
          "headline": "Make the main client file updateable",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-10-16T20:16:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "92294ffbfc854e8cc80ca537e18c270cb23f8cea",
          "body": null,
          "is_bot": false,
          "headline": "Make the CI/CD workflow updateable",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-10-16T18:54:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb9a15b4b2a74c8b571d5103a1c05de25403ea75",
          "body": "Both the Node.js and the browser artifacts that we generate contain\ndynamic references to entries in `process.env`. This does not play\nnicely when bundling apps intended for the browser.\n\nAs of now, the only function that does this is `getBaseUrl`, which is\na function intended for internal development only. This change makes\nsure that this function is defined for the browser in such a way that\ndoes not reference `process.env` anymore and just returns the\nProduction base URL.",
          "is_bot": false,
          "headline": "Remove `process.env` refs from the browser artifact",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-10-08T21:52:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "42a6515867ba52fef3b2c5cf74bc6bdbea978b3c",
          "body": "This reverts commit 34b124177c77941c4fee64e73a8de3e40877021e.",
          "is_bot": false,
          "headline": "Revert \"Make the CI/CD workflow updateable\"",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-10-08T20:39:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "34b124177c77941c4fee64e73a8de3e40877021e",
          "body": null,
          "is_bot": false,
          "headline": "Make the CI/CD workflow updateable",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-10-08T16:10:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e8ecb629836b2b093c36f800a4d01675020fd16a",
          "body": null,
          "is_bot": true,
          "headline": "Fix GetTriggerResponse (union of dc/ti/hi)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-10-02T17:36:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9fdcb2e214a90e490ea4aea06d683be01bddbbf8",
          "body": "* Add `default` and `options` fields to several\n  configurable prop types that were missing them\n* Rename the `appId` leftovers, replacing it with `app`\n  where applicable\n* Add the `ToolAnnotation` type and corresponding field\n  in the component definition\n\n---------\n\nCo-authored-by: Jay Vercellone <jay@pipedream.com>",
          "is_bot": true,
          "headline": "Many bug fixes and features (#204)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-10-01T21:52:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "90c41ff9b97195b8b27d24c8d13fe69e91ba757a",
          "body": null,
          "is_bot": false,
          "headline": "Expose the external user ID in the browser client",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-10-01T18:40:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d0a6ca7f6c2c29751f1393093a48f776edf0e3c",
          "body": null,
          "is_bot": false,
          "headline": "Fix DeployTriggerResponse (union of dc/ti/hi)",
          "author_name": "TJ Koblentz",
          "author_login": "tjk",
          "committed_at": "2025-09-28T06:22:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48f0f6db6e2c70adef140538dedece3e0359d45a",
          "body": null,
          "is_bot": false,
          "headline": "Undo accidental change (but params are not right)",
          "author_name": "TJ Koblentz",
          "author_login": "tjk",
          "committed_at": "2025-09-26T22:32:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "442ef95198d7144eaf127201f23af2a98dfb7dc2",
          "body": null,
          "is_bot": false,
          "headline": "Fix list accounts app param",
          "author_name": "TJ Koblentz",
          "author_login": "tjk",
          "committed_at": "2025-09-26T22:26:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d69606c192dd5dce7eb5db648ae105732275960e",
          "body": null,
          "is_bot": false,
          "headline": "Expose fileStash in the client",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-09-19T11:54:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "438161b7c035b4399b545e1da79bdbb780b1e19f",
          "body": "* Add new API to download files from a file stash\n* Specify the possible prop values (instead of `unknown`)\n\n---------\n\nCo-authored-by: fern-api <115122769+fern-api[bot]@users.noreply.github.com>\nCo-authored-by: Jay Vercellone <jay@pipedream.com>",
          "is_bot": true,
          "headline": "File stash downloads and stricter prop values (#173)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-09-18T18:58:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe894b033c6ec1fd25523e36681f819b39c9c2e4",
          "body": "Check the throttle headers from the API to adjust\nthe retry/backoff strategy.\n\n---------\n\nCo-authored-by: fern-api <115122769+fern-api[bot]@users.noreply.github.com>\nCo-authored-by: Jay Vercellone <jay@pipedream.com>",
          "is_bot": true,
          "headline": "Handle throttle headers (#160)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-09-15T19:46:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dcc649a47345928950b72264dde2d19e441bc100",
          "body": null,
          "is_bot": false,
          "headline": "Fix import of SDK_VERSION",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-09-09T15:28:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c19716ed9ed1ba49a560396529a9c2688e8810d",
          "body": "Both `externalUserId` and `tokenCallback` are mandatory fields when\ninitializing the client in the browser. The SDK currently throws a\nruntime error when they are not provided, so the type definition of\nthe client opts should reflect this requirement.",
          "is_bot": false,
          "headline": "Fix the client opts in the browser",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-09-08T22:13:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cbb929d9ade502eac1924aecec968c5ece916e6b",
          "body": null,
          "is_bot": false,
          "headline": "v2.0.1",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-09-08T21:21:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6bbd7b92a0192c38f6f7a13f93d698fe74206a5e",
          "body": null,
          "is_bot": false,
          "headline": "Polyfill 'process' in the browser",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-09-08T21:20:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "66fa3f036adbdd04305a3323a04e8e8463b96edb",
          "body": null,
          "is_bot": false,
          "headline": "Allow for version updates in package.json",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-09-06T17:06:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ce002d964e00e40925f857dab02202ed249ef55f",
          "body": null,
          "is_bot": false,
          "headline": "Do not hard-code version",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-09-06T17:06:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4490186e08e2a0e75cfb1c7be56639891165679c",
          "body": null,
          "is_bot": false,
          "headline": "Prepare repo for prop type fixes",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-09-06T16:54:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e58dc4038548f608a8ffcdb279c4ba0fab91ec6d",
          "body": null,
          "is_bot": false,
          "headline": "v2.0.0",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-09-06T16:11:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f7335e51bd702f8040fc52049e49645dc4f09181",
          "body": "* Add missing `default` field for certain configurable props\n* Add `componentType` param when listing components using the\n  generic route/path\n* Temporarily add missing types that Fern is not processing\n\n---------\n\nCo-authored-by: fern-api <115122769+fern-api[bot]@users.noreply.github.com>\nCo-authored-by: Jay Vercellone <jay@pipedream.com>",
          "is_bot": true,
          "headline": "Fixes in configurable props and component listing (#150)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-09-06T02:26:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c42da262c101eda4835bdc3a0b59945034297f46",
          "body": "* Some fields in several configurable props were \n  marked as optional when in fact they are required\n* Regenerate the SDK with the latest Fern generator\n\n---------\n\nCo-authored-by: fern-api <115122769+fern-api[bot]@users.noreply.github.com>\nCo-authored-by: Jay Vercellone <jay@pipedream.com>",
          "is_bot": true,
          "headline": "Mark some fields as required for configurable props (#148)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-09-05T21:59:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "09d2b32baf93eeabd3a121e3e19f44098f4893a7",
          "body": null,
          "is_bot": false,
          "headline": "Bump version",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-09-05T20:03:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2d9cd29daa9c2194b03feb41abc2dca84d9e4531",
          "body": "Same as aee0092110e0413f9c42044387b144d28b1361d9 but\nfor every specific prop type.\n\nCo-authored-by: fern-api <115122769+fern-api[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Make the `type` field required for all prop types (#145)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-09-05T20:02:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aee0092110e0413f9c42044387b144d28b1361d9",
          "body": "All configurable props must have a non-empty `type`\nfield.\n\n---------\n\nCo-authored-by: fern-api <115122769+fern-api[bot]@users.noreply.github.com>\nCo-authored-by: Jay Vercellone <jay@pipedream.com>",
          "is_bot": true,
          "headline": "Make the `type` field required for props (#142)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-09-05T19:29:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "18b36d6fd9e980b92b8a1aaf2f06282c94f7675e",
          "body": "Rewrite the `ConfiguredProps` type in such a way that we can have type\nsafety based on the configurable props of a component. This mimics\nwhat the old SDK and `connect-react` already do.",
          "is_bot": false,
          "headline": "Make `ConfiguredProps` generic",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-09-05T16:00:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6c8fb1fab3c760cb1d1a2c5b7dd750f0dff7f0d",
          "body": "* Add new types for configurable prop options,\n  including nested values under `__lv`\n* Add new types for configured props, and all the\n  possible values\n\n---------\n\nCo-authored-by: fern-api <115122769+fern-api[bot]@users.noreply.github.com>\nCo-authored-by: Jay Vercellone <jay@pipedream.com>",
          "is_bot": true,
          "headline": "Add types for props (#139)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-09-05T15:25:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "36b39d98ee75b63935d6626623e399d6a09aec67",
          "body": "The `token`/`tokenCallback` arguments were not\r\nbeing used properly.",
          "is_bot": false,
          "headline": "Fix migration docs",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-08-21T17:16:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c9dfbb9c13400b0911e79e3cb26595e26edc82c",
          "body": "* Fix module path of `CreateTokenResponse` import\n* Import `TokenProvider` as a type\n* Import from `TokenProvider.js`\n* Bump version",
          "is_bot": false,
          "headline": "Fix imports of custom types",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-08-20T22:08:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bda3a6257d378cd907060e28ee7eeb41b7a1d21a",
          "body": "* Fix the reload props response schema\n* Add endpoint descriptions\n* Bump version\n\n---------\n\nCo-authored-by: fern-api <115122769+fern-api[bot]@users.noreply.github.com>\nCo-authored-by: Jay Vercellone <jay@pipedream.com>",
          "is_bot": true,
          "headline": "Fix the reload props response schema (#102)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-08-19T20:11:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20cffe7f9bd878a4b3bd57d8b1f70a5ccb058735",
          "body": "* Update `Proxy*` types to use camelCase\n* Bump version",
          "is_bot": false,
          "headline": "Refactor the Proxy interfaces to use camelCase",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-08-18T22:18:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "16f9d36c7b6178b94c5c452ac1cc608a9f844b7e",
          "body": "SDK regeneration\n\nCo-authored-by: fern-api <115122769+fern-api[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": ":herb: Fern Regeneration -- August 16, 2025 (#97)",
          "author_name": "fern-api[bot]",
          "author_login": "fern-api[bot]",
          "committed_at": "2025-08-16T01:08:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8a43b47fd4df51cc49b9ac7ab443356e904c498a",
          "body": null,
          "is_bot": false,
          "headline": "Prevent Fern from deleting these files",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-08-16T00:55:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c2e23cc4432d4386b24f3f58f40a46e688fa63c2",
          "body": null,
          "is_bot": false,
          "headline": "Prevent Fern from deleting these files",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-08-16T00:53:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a769e6f6f62bc92eeb524d93e1280643df0b47d",
          "body": null,
          "is_bot": false,
          "headline": "Update migration guide",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-08-15T19:31:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1f2da4161d0733827c68dfc535c0ba9a882cbeb5",
          "body": "* Fix the `/browser` imports so that they can be used in Node.js (for\ntesting purposes for example)\n* Define `TokenProvider` interface so that we can authenticate via\nmultiple methods\n* Clean up the browser client by using the new SDK types, renaming the\nclient class, and removing the duplicate logi\n[…]\nat don't\nexpire\n* Implement `ConnectTokenProvider` to support Connect tokens that can\nbe refreshed\n* Export types directly instead of nested under `Pipedream`\n* Fix the indentation in our custom files",
          "is_bot": false,
          "headline": "Support authentication with Connect tokens",
          "author_name": "Jay Vercellone",
          "author_login": "jverce",
          "committed_at": "2025-08-15T19:15:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        }
      ],
      "releases_count": 62,
      "commits_last_year": 115,
      "latest_release_at": "2026-06-17T19:42:02Z",
      "latest_release_tag": "v3.1.1",
      "releases_from_tags": false,
      "days_since_last_push": 6,
      "active_weeks_last_year": 33,
      "days_since_latest_release": 39,
      "mean_days_between_releases": 3.9
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 62,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@pipedream/sdk",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@pipedream/sdk",
          "is_deprecated": false,
          "latest_version": "3.1.2",
          "repository_url": "https://github.com/PipedreamHQ/pipedream-sdk-typescript",
          "versions_count": 137,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 5,
          "monthly_downloads": 693801,
          "first_published_at": "2024-08-19T21:06:37.220000Z",
          "latest_published_at": "2026-07-20T19:50:19.900000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        }
      ]
    },
    "popularity": {
      "forks": 5,
      "stars": 9,
      "watchers": 1,
      "fork_history": {
        "days": [
          {
            "date": "2025-07-03",
            "count": 1
          },
          {
            "date": "2025-07-15",
            "count": 1
          },
          {
            "date": "2025-10-01",
            "count": 1
          },
          {
            "date": "2026-01-07",
            "count": 1
          },
          {
            "date": "2026-05-26",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 5,
        "total_forks": 5
      },
      "star_history": null,
      "open_issues_and_prs": 7
    },
    "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": [
        "tests/tsconfig.json",
        "tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 48346,
      "source_files_sampled": 665,
      "oversized_source_files": 0,
      "agent_instruction_files": [
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 8056
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "fast-uri",
            "direct": false,
            "version": "3.1.2",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-4c8g-83qw-93j6",
              "GHSA-v2hh-gcrm-f6hx"
            ],
            "fixed_version": "4.1.1",
            "advisory_count": 2,
            "oldest_advisory_days": 5
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.14",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-r28c-9q8g-f849"
            ],
            "fixed_version": "8.5.18",
            "advisory_count": 1,
            "oldest_advisory_days": 2
          },
          {
            "name": "vite",
            "direct": false,
            "version": "8.0.10",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-fx2h-pf6j-xcff",
              "GHSA-v6wh-96g9-6wx3"
            ],
            "fixed_version": "8.0.16",
            "advisory_count": 2,
            "oldest_advisory_days": 41
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 3
        },
        "advisory_count": 5,
        "affected_count": 3,
        "assessed_count": 212,
        "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": "@biomejs/biome",
            "direct": false,
            "version": "2.4.10",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-darwin-arm64",
            "direct": false,
            "version": "2.4.10",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-darwin-x64",
            "direct": false,
            "version": "2.4.10",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-arm64",
            "direct": false,
            "version": "2.4.10",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-arm64-musl",
            "direct": false,
            "version": "2.4.10",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-x64",
            "direct": false,
            "version": "2.4.10",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-x64-musl",
            "direct": false,
            "version": "2.4.10",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-win32-arm64",
            "direct": false,
            "version": "2.4.10",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-win32-x64",
            "direct": false,
            "version": "2.4.10",
            "ecosystem": "npm"
          },
          {
            "name": "@bundled-es-modules/cookie",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@bundled-es-modules/statuses",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/ansi",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/confirm",
            "direct": false,
            "version": "5.1.21",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/core",
            "direct": false,
            "version": "10.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/figures",
            "direct": false,
            "version": "1.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/type",
            "direct": false,
            "version": "3.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/gen-mapping",
            "direct": false,
            "version": "0.3.13",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/resolve-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/source-map",
            "direct": false,
            "version": "0.3.11",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/trace-mapping",
            "direct": false,
            "version": "0.3.31",
            "ecosystem": "npm"
          },
          {
            "name": "@mswjs/interceptors",
            "direct": false,
            "version": "0.39.8",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@open-draft/deferred-promise",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@open-draft/logger",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@open-draft/until",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.127.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-android-arm64",
            "direct": false,
            "version": "1.0.0-rc.17",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-arm64",
            "direct": false,
            "version": "1.0.0-rc.17",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-x64",
            "direct": false,
            "version": "1.0.0-rc.17",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-freebsd-x64",
            "direct": false,
            "version": "1.0.0-rc.17",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.0.0-rc.17",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.0.0-rc.17",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.0.0-rc.17",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.0.0-rc.17",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.0.0-rc.17",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.0.0-rc.17",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-musl",
            "direct": false,
            "version": "1.0.0-rc.17",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-openharmony-arm64",
            "direct": false,
            "version": "1.0.0-rc.17",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-wasm32-wasi",
            "direct": false,
            "version": "1.0.0-rc.17",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.0.0-rc.17",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.0.0-rc.17",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/pluginutils",
            "direct": false,
            "version": "1.0.0-rc.17",
            "ecosystem": "npm"
          },
          {
            "name": "@standard-schema/spec",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/chai",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/cookie",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/deep-eql",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/eslint",
            "direct": false,
            "version": "9.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/eslint-scope",
            "direct": false,
            "version": "3.7.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/json-schema",
            "direct": false,
            "version": "7.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "18.19.130",
            "ecosystem": "npm"
          },
          {
            "name": "@types/statuses",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/expect",
            "direct": false,
            "version": "4.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/mocker",
            "direct": false,
            "version": "4.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/pretty-format",
            "direct": false,
            "version": "4.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/runner",
            "direct": false,
            "version": "4.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/snapshot",
            "direct": false,
            "version": "4.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/spy",
            "direct": false,
            "version": "4.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/utils",
            "direct": false,
            "version": "4.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/ast",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/floating-point-hex-parser",
            "direct": false,
            "version": "1.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/helper-api-error",
            "direct": false,
            "version": "1.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/helper-buffer",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/helper-numbers",
            "direct": false,
            "version": "1.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/helper-wasm-bytecode",
            "direct": false,
            "version": "1.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/helper-wasm-section",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/ieee754",
            "direct": false,
            "version": "1.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/leb128",
            "direct": false,
            "version": "1.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/utf8",
            "direct": false,
            "version": "1.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/wasm-edit",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/wasm-gen",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/wasm-opt",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/wasm-parser",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/wast-printer",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "@xtuc/ieee754",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@xtuc/long",
            "direct": false,
            "version": "4.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.16.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-import-phases",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "8.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "ajv-formats",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "ajv-keywords",
            "direct": false,
            "version": "5.1.0",
            "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": "assertion-error",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "baseline-browser-mapping",
            "direct": false,
            "version": "2.10.27",
            "ecosystem": "npm"
          },
          {
            "name": "braces",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "browserslist",
            "direct": false,
            "version": "4.28.2",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-from",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "caniuse-lite",
            "direct": false,
            "version": "1.0.30001791",
            "ecosystem": "npm"
          },
          {
            "name": "chai",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "chrome-trace-event",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "cli-width",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "8.0.1",
            "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": "commander",
            "direct": false,
            "version": "2.20.3",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cookie",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "electron-to-chromium",
            "direct": false,
            "version": "1.5.349",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "enhanced-resolve",
            "direct": false,
            "version": "5.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-module-lexer",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-scope",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "esrecurse",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estraverse",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estraverse",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "events",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "expect-type",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "fill-range",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "get-caller-file",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "glob-to-regexp",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "graphql",
            "direct": false,
            "version": "16.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "headers-polyfill",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-node-process",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-number",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-worker",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-android-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-freebsd-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-arm64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-x64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "loader-runner",
            "direct": false,
            "version": "4.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "merge-stream",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromatch",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "mime-db",
            "direct": false,
            "version": "1.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "msw",
            "direct": false,
            "version": "2.11.2",
            "ecosystem": "npm"
          },
          {
            "name": "mute-stream",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.12",
            "ecosystem": "npm"
          },
          {
            "name": "neo-async",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "node-releases",
            "direct": false,
            "version": "2.0.38",
            "ecosystem": "npm"
          },
          {
            "name": "obug",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "outvariant",
            "direct": false,
            "version": "1.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "path-to-regexp",
            "direct": false,
            "version": "6.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.14",
            "ecosystem": "npm"
          },
          {
            "name": "require-directory",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "require-from-string",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "rettime",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown",
            "direct": false,
            "version": "1.0.0-rc.17",
            "ecosystem": "npm"
          },
          {
            "name": "schema-utils",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "siginfo",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.7.6",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-support",
            "direct": false,
            "version": "0.5.21",
            "ecosystem": "npm"
          },
          {
            "name": "stackback",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "statuses",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "std-env",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "strict-event-emitter",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "8.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "tapable",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "terser",
            "direct": false,
            "version": "5.46.2",
            "ecosystem": "npm"
          },
          {
            "name": "terser-webpack-plugin",
            "direct": false,
            "version": "5.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinybench",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.16",
            "ecosystem": "npm"
          },
          {
            "name": "tinyrainbow",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "tldts",
            "direct": false,
            "version": "7.0.30",
            "ecosystem": "npm"
          },
          {
            "name": "tldts-core",
            "direct": false,
            "version": "7.0.30",
            "ecosystem": "npm"
          },
          {
            "name": "to-regex-range",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tough-cookie",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ts-loader",
            "direct": false,
            "version": "9.5.7",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "4.41.0",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "5.26.5",
            "ecosystem": "npm"
          },
          {
            "name": "update-browserslist-db",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "8.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "4.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "watchpack",
            "direct": false,
            "version": "2.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "webpack",
            "direct": false,
            "version": "5.106.2",
            "ecosystem": "npm"
          },
          {
            "name": "webpack-sources",
            "direct": false,
            "version": "3.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "why-is-node-running",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "6.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "y18n",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "17.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "21.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "yoctocolors-cjs",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 212,
        "direct_count": 0,
        "indirect_count": 212
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 5,
        "merged_prs": 60,
        "open_issues": 2,
        "closed_ratio": 0.778,
        "closed_issues": 7,
        "closed_unmerged_prs": 281
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "jverce",
          "commits": 76,
          "avatar_url": "https://avatars.githubusercontent.com/u/5479513?v=4"
        },
        {
          "type": "User",
          "login": "tjk",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/109224?v=4"
        },
        {
          "type": "User",
          "login": "TheBestMoshe",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/34072688?v=4"
        },
        {
          "type": "User",
          "login": "dannyroosevelt",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/20780753?v=4"
        },
        {
          "type": "User",
          "login": "casret",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/9604?v=4"
        }
      ],
      "contributors_sampled": 5,
      "top_contributor_share": 0.905
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "auto-close-empty-prs.yml",
        "ci.yml",
        "draft-release.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [
        "biome.json"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "pnpm-lock.yaml"
      ],
      "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": 3,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "14 out of 14 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 1/17 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 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": 9,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "26 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 5,
            "reason": "5 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "971d42028c0a7d8464f99f4c48442a1d9baad68b",
        "ran_at": "2026-07-27T11:40:32Z",
        "aggregate_score": 3.9,
        "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-06-17T19:43:57Z",
      "oldest_open_prs": [
        {
          "number": 307,
          "created_at": "2026-03-11T19:59:05Z",
          "last_comment_at": "2026-03-11T19:59:15Z",
          "last_comment_author": "coderabbitai"
        },
        {
          "number": 352,
          "created_at": "2026-06-06T00:48:34Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 353,
          "created_at": "2026-06-17T17:39:24Z",
          "last_comment_at": "2026-06-17T17:39:36Z",
          "last_comment_author": "coderabbitai"
        },
        {
          "number": 354,
          "created_at": "2026-07-06T21:39:23Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 355,
          "created_at": "2026-07-07T19:13:39Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-06-06T00:06:26Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 178,
          "created_at": "2025-09-23T01:17:21Z",
          "last_comment_at": "2025-09-26T13:34:16Z",
          "last_comment_author": "isac322"
        },
        {
          "number": 347,
          "created_at": "2026-05-26T21:21:09Z",
          "last_comment_at": "2026-06-17T20:28:05Z",
          "last_comment_author": "jverce"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/PipedreamHQ/pipedream-sdk-typescript",
    "host": "github.com",
    "name": "pipedream-sdk-typescript",
    "owner": "PipedreamHQ"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 65,
      "inputs": {
        "security": 51,
        "vitality": 92,
        "community": 55,
        "governance": 56,
        "engineering": 66
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 92,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 87,
            "inputs": {
              "commits_last_year": 115,
              "human_commit_share": 0.63,
              "days_since_last_push": 6,
              "active_weeks_last_year": 33
            },
            "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": "33/52 weeks with commits",
                "points": 22.8,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 33
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "115 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 115
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "26 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 62,
              "latest_release_tag": "v3.1.1",
              "releases_from_tags": false,
              "days_since_latest_release": 39,
              "mean_days_between_releases": 3.9
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "62 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 62
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 39 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 39
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~3.9 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 3.9
                    }
                  }
                ],
                "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": 39,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 39 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 39
                    }
                  }
                ],
                "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": 20,
            "inputs": {
              "forks": 5,
              "stars": 9,
              "watchers": 1,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "9 stars",
                "points": 14.6,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "5 forks",
                "points": 5,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "1 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 64,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file present, not a recognized license",
                "points": 16.9,
                "status": "partial",
                "details": [
                  {
                    "code": "license_custom",
                    "params": {}
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "excellent",
            "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": 97,
            "inputs": {
              "packages": [
                "@pipedream/sdk"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 693801
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "693,801 downloads/month across npm",
                "points": 77.9,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 693801,
                      "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": 56,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 21,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 5,
              "top_contributor_share": 0.905
            },
            "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 90% of commits",
                "points": 2.1,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 90
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "5 contributors",
                "points": 6.8,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "at_risk",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 43,
            "inputs": {
              "merged_prs": 60,
              "open_issues": 2,
              "closed_issues": 7,
              "issue_closed_ratio": 0.778,
              "closed_unmerged_prs": 281
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "78% of issues closed",
                "points": 36.4,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 78
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "60/341 decided PRs merged",
                "points": 6.7,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 60,
                      "decided": 341
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 1/17 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "followers": 591,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "PipedreamHQ",
              "public_repos": 47,
              "account_age_days": 2854
            },
            "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": "591 followers of PipedreamHQ",
                "points": 19.9,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 591,
                      "login": "PipedreamHQ"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "47 public repos, account ~7 yr old",
                "points": 24.2,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 47
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 7
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@pipedream/sdk"
              ],
              "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": "137 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 137
                    }
                  }
                ],
                "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": 66,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "3 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": "biome.json",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "biome.json"
                    }
                  }
                ],
                "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "14 out of 14 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "at_risk",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": null,
              "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 51,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 39,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 3.9
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "14 out of 14 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 1/17 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "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.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "26 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "5 existing vulnerabilities detected",
                "points": 3.8,
                "status": "partial",
                "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 212 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": 212
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 5,
              "affected_packages": 3,
              "assessed_packages": 212,
              "unassessed_packages": 0,
              "affected_by_severity": "high 3",
              "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": 212,
              "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": 6
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 64,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "moderate",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.286,
              "agent_instruction_files": [
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 8056
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "CLAUDE.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": "18 of 63 human commits state their intent (structured subject or explanatory body)",
                "points": 15.2,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 18,
                      "sampled": 63
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 54,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "pnpm-lock.yaml"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "tests/tsconfig.json",
                "tsconfig.json"
              ],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": "biome.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "biome.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "tests/tsconfig.json, tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "tests/tsconfig.json, tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 48346,
              "source_files_sampled": 665,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "TypeScript (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/665 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 665,
                      "oversized": 0
                    }
                  }
                ],
                "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-27T11:40:46.999616Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/p/PipedreamHQ/pipedream-sdk-typescript.svg",
  "full_name": "PipedreamHQ/pipedream-sdk-typescript",
  "license_state": "custom",
  "license_spdx": null
}

Оцінки — це сигнали, а не гарантії. Вони відображають публічно видимі практики на GitHub — це не аудит коду й не гарантія безпеки.

Відсутні дані виключаються, а ваги перенормовуються — нуль за відсутність ніколи не ставиться. Методологія версіонована й відкрита: метрики v1.13.0, схема v0.27.0 — повна методологія · вікі метрик.

Як окремий результат виглядає на тлі всього реєстру: сукупна статистикаnpm.