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

cipherstash / protectjs-ffi

CipherStash Client Rust bindings for JS. Implemented in @cipherstash/stack

Rust · TypeScriptMIT★ 2 зірки⑂ 0 форківз груд. 2024 р.Переглянути на GitHub ↗

cipherstash/protectjs-ffi має індекс здоров’я 69 зі 100, що відповідає смузі «Помірний». Найвищий показник — Vitality (88/100), найнижчий — Community & Adoption (40/100). Останнє оновлення — сьогодні. Більшість нещодавньої роботи виконують 2 учасники.

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

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

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

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

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

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

Власність

CipherStashОрганізація
72 підписники53 публічні репозиторіїз черв. 2020 р.

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

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

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікаціяТеги
npm@cipherstash/protect-ffi0.30.010 036466 днів тому
npmintegration-testsвказує на інший репозиторій — не оцінюється0.0.11113701 день томуfsisomorphiclayers

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

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

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

88Відмінний · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 0 дн. тому
21.5/36Ритм комітів — 31/52 тижнів із комітами
18/18Обсяг комітів — 406 комітів за останній рік
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Використані вхідні дані
commits_last_year406
human_commit_share1
days_since_last_push0
active_weeks_last_year31
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 83 релізів
36/36Свіжість релізів — останній реліз 6 дн. тому
27/27Ритм релізів — реліз кожні ~6,6 дн.
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Використані вхідні дані
releases_count83
latest_release_tagv0.30.0
releases_from_tagsні
days_since_latest_release6
mean_days_between_releases6,6

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

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

40У зоні ризику · 18% загального індексу
Як обчислюється оцінка
0/60Зірки — 2 зірок
0/25Форки — 0 форків
1.7/15Спостерігачі — 3 спостерігачів
Використані вхідні дані
forks0
stars2
watchers3
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (MIT)
0/18Настанови CONTRIBUTING
13.5/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ні
Як обчислюється оцінка
53.4/80Щомісячні завантаження — 10 036 завантажень/місяць у npm
0/20Залежні пакети в реєстрі — ця екосистема цього не повідомляє
Використані вхідні дані
packages@cipherstash/protect-ffi
dependents
ecosystemsnpm
total_downloads
monthly_downloads10 036
Виключено з оцінювання (немає даних або не застосовно): Залежні пакети в реєстрі. Залишкові ваги перенормовано.

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

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

68Помірний · 24% загального індексу
Як обчислюється оцінка
25.2/54Бас-фактор — на 2 контриб’ютор(ів) припадає половина всіх комітів
15.7/22.5Розподіл комітів — головний контриб’ютор — автор 30% комітів
10.8/13.5Широта контриб’юторів — 8 контриб’юторів
10/10OpenSSF Scorecard: Contributors — project has 7 contributing companies or organizations
Використані вхідні дані
bus_factor2
contributors_sampled8
top_contributor_share0,303
Як обчислюється оцінка
15.6/46.8Вирішення issue — закрито 33% issue
26.5/38.3Прийняття PR — злито 93/134 вирішених PR
9/15OpenSSF Scorecard: Code-Review — Found 6/10 approved changesets -- score normalized to 6
Використані вхідні дані
merged_prs93
open_issues6
closed_issues3
issue_closed_ratio0,333
closed_unmerged_prs41
Як обчислюється оцінка
30/30Підтримка власника — у власності організації
0/20Верифікований домен
13.4/25Охоплення власника — 72 підписників у cipherstash
24.6/25Послужний список — 53 публічних репозиторіїв, вік облікового запису ~6 р.
Використані вхідні дані
followers72
owner_typeOrganization
is_verified
owner_logincipherstash
public_repos53
account_age_days2 233

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

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

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

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

82Добрий · 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 — 8 out of 8 merged PRs checked by a CI test -- score normalized to 10
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigні
has_linter_configтак
has_precommit_configні
Як обчислюється оцінка
30/30README
25/25Каталог документації
15/15Сайт документації / домашня сторінка — https://github.com/cipherstash/stack
10/10Опис репозиторію
0/10Теми
0/10Wiki
Використані вхідні дані
topics
has_wikiні
homepagehttps://github.com/cipherstash/stack
has_readmeтак
has_docs_dirтак
has_descriptionтак

Безпека

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

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

Стан безпеки

53Помірний
Як обчислюється оцінка
7.5/7.5Binary-Artifacts — no binaries found in the repo
3.8/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 8 out of 8 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
4.5/7.5Code-Review — Found 6/10 approved changesets -- score normalized to 6
2.5/2.5Contributors — project has 7 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Ліцензія — license file detected
7.5/7.5Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — немає даних
3.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 7
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 — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0.8/7.5Vulnerabilities — 9 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate5,2
Виключено з оцінювання (немає даних або не застосовно): packaging. Залишкові ваги перенормовано.
Як обчислюється оцінка
35/35Прямі залежності без відомих сповіщень — жодна пряма залежність не має відомих сповіщень
25/25Непрямі залежності без відомих сповіщень — жодна непряма залежність не має відомих сповіщень
0/40Немає задавнених сповіщень — жодне сповіщення не має дати публікації
Використані вхідні дані
sourceosv
advisories0
affected_packages0
assessed_packages7
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Виключено з оцінювання (немає даних або не застосовно): Немає задавнених сповіщень. Залишкові ваги перенормовано. Звірено з runtime-замиканням залежностей npm:@cipherstash/protect-ffi@0.30.0 — тим, що тягне за собою встановлення опублікованого пакета, — 7 пакетів. Досяжність не аналізується.

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

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

71Добрий · 0% загального індексу
Як обчислюється оцінка
0/45Інструкції для агентів — немає CLAUDE.md / AGENTS.md / правил редактора
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 94 з 100 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,94
agent_instruction_files
agent_instruction_max_bytes
Як обчислюється оцінка
18/18Розгортання однією командою — mise.toml
22/22Автоматизовані тести
11/11Конфігурація лінтера / форматера — biome.json
11/11Статична перевірка типів — integration-tests/tsconfig.json, tsconfig.json
10/10Відтворюване середовище — Dockerfile, lockfile
4/10Підтверджена практика роботи з агентами — 2 з останніх 100 комітів створено агентом або з його зазначенням
0/8Автоматизоване супроводження — автоматичних оновлень залежностей не виявлено
7/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 7
Використані вхідні дані
has_nixні
has_testsтак
lockfilesCargo.lock, package-lock.json
has_dockerfileтак
typed_languageтак
bootstrap_filesmise.toml
has_devcontainerні
has_linter_configтак
typecheck_configsintegration-tests/tsconfig.json, tsconfig.json
agent_commit_share0,02
toolchain_manifestsCargo.toml, crates/protect-ffi/Cargo.toml
dependency_bot_commit_share0
Як обчислюється оцінка
45/45Типізований код — Rust (статично типізована)
54.2/55Керовані розміри файлів — 2/143 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languageRust
largest_source_bytes121 065
source_files_sampled143
oversized_source_files2

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

2зірок GitHub
8контриб'юторів
406комітів за останні 12 місяців
0днів від останнього пушу
83релізів
2бас-фактор
6відкритих issue
crates.io, npmпакетних екосистем

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

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • npm package 'integration-tests' points at a different repository (https://github.com/doug-wade/iso-fs); excluded from ecosystem scoring

Докладніше

OpenSSF Scorecard 5.2 / 10
5.2сукупно

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

10Binary-Artifactsno binaries found in the repo
5Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests8 out of 8 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
6Code-ReviewFound 6/10 approved changesets -- score normalized to 6
10Contributorsproject has 7 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
н/дPackagingpackaging workflow not detected
7Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 7
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
1Vulnerabilities9 existing vulnerabilities detected
Прямі залежності 4
РеєстрПакетОбмеження версіїМаніфест
npm@cipherstash/auth^0.39.0integration-tests/package.json
npm@cipherstash/protect-ffi..integration-tests/package.json
npmpg^8.13.3integration-tests/package.json
npm@neon-rs/load^0.1.82package.json
Усі залежності 785

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

РеєстрПакетВерсіяЗв'язок
npm@cipherstash/auth0.39.0пряма
npm@cipherstash/protect-ffi0.29.0пряма
npm@neon-rs/load0.1.82пряма
npmpg8.13.3пряма
crates.ioadler22.0.1непряма
crates.ioaead0.5.2непряма
crates.ioaes0.8.4непряма
crates.ioaes-gcm0.10.3непряма
crates.ioaes-gcm-siv0.11.1непряма
crates.ioahash0.7.8непряма
crates.ioahash0.8.12непряма
crates.ioaho-corasick1.1.4непряма
crates.ioalloc-no-stdlib2.0.4непряма
crates.ioalloc-stdlib0.2.2непряма
crates.ioallocator-api20.2.21непряма
crates.ioandroid_system_properties0.1.5непряма
crates.ioanyhow1.0.102непряма
crates.ioaquamarine0.6.0непряма
crates.ioarrayref0.3.9непряма
crates.ioarrayvec0.7.6непряма
crates.ioasync-compression0.4.41непряма
crates.ioasync-mutex1.4.1непряма
crates.ioasync-trait0.1.89непряма
crates.ioatomic0.6.1непряма
crates.ioatomic-waker1.1.2непряма
crates.ioautocfg1.5.0непряма
crates.ioaws-lc-rs1.16.3непряма
crates.ioaws-lc-sys0.40.0непряма
crates.iobase16ct0.2.0непряма
crates.iobase320.5.1непряма
crates.iobase640.22.1непряма
crates.iobase64ct1.8.3непряма
crates.iobase85непряма
crates.iobase852.0.0непряма
crates.iobitflags2.11.0непряма
crates.iobitvec1.0.1непряма
crates.ioblake31.8.3непряма
crates.ioblock-buffer0.10.4непряма
crates.ioblock-buffer0.12.0непряма
crates.ioblock-modes0.9.1непряма
crates.ioborsh1.6.1непряма
crates.ioborsh-derive1.6.1непряма
crates.iobrotli8.0.2непряма
crates.iobrotli-decompressor5.0.0непряма
crates.iobumpalo3.20.2непряма
crates.iobytecheck0.6.12непряма
crates.iobytecheck_derive0.6.12непряма
crates.iobytemuck1.25.0непряма
crates.iobyteorder1.5.0непряма
crates.iobytes1.11.1непряма
crates.iocached0.54.0непряма
crates.iocached_proc_macro0.23.0непряма
crates.iocached_proc_macro_types0.1.1непряма
crates.iocc1.2.57непряма
crates.iocesu81.1.0непряма
crates.iocfg-if1.0.4непряма
crates.iocfg_aliases0.2.1непряма
crates.iochacha200.10.0непряма
crates.iochronoнепряма
crates.iochrono0.4.44непряма
crates.iocipher0.4.4непряма
crates.iocipherstash-client0.42.0непряма
crates.iocipherstash-config0.42.0непряма
crates.iocipherstash-core0.42.0непряма
crates.iocllw-ore0.4.2непряма
crates.iocmac0.7.2непряма
crates.iocmake0.1.57непряма
crates.iocombine4.6.7непряма
crates.iocompression-codecs0.4.37непряма
crates.iocompression-core0.4.31непряма
crates.ioconsole_error_panic_hookнепряма
crates.ioconsole_error_panic_hook0.1.7непряма
crates.ioconst-hex1.18.1непряма
crates.ioconstant_time_eq0.4.2непряма
crates.ioconvert_case0.10.0непряма
crates.iocore-foundation0.10.1непряма
crates.iocore-foundation0.9.4непряма
crates.iocore-foundation-sys0.8.7непряма
crates.iocpufeatures0.2.17непряма
crates.iocpufeatures0.3.0непряма
crates.iocrc32fast1.5.0непряма
crates.iocritical-section1.2.0непряма
crates.iocrossbeam-channel0.5.15непряма
crates.iocrossbeam-epoch0.9.18непряма
crates.iocrossbeam-utils0.8.21непряма
crates.iocrypto-common0.1.7непряма
crates.iocrypto-common0.2.1непряма
crates.ioctr0.9.2непряма
crates.iocts-common0.42.0непряма
crates.iodarling0.20.11непряма
crates.iodarling_core0.20.11непряма
crates.iodarling_macro0.20.11непряма
crates.iodata-encoding2.10.0непряма
crates.iodbl0.3.2непряма
crates.ioderanged0.5.8непряма
crates.ioderive_more1.0.0непряма
crates.ioderive_more2.1.1непряма
crates.ioderive_more-impl1.0.0непряма
crates.ioderive_more-impl2.1.1непряма
crates.iodeunicode1.6.2непряма
crates.iodigest0.10.7непряма
crates.iodigest0.11.3непряма
crates.iodirs4.0.0непряма
crates.iodirs-sys0.3.7непряма
crates.iodisplaydoc0.2.5непряма
crates.iodummy0.8.0непряма
crates.iodunce1.0.5непряма
crates.iodyn-clone1.0.20непряма
crates.ioeither1.15.0непряма
crates.ioenv_filter1.0.0непряма
crates.ioenv_logger0.11.9непряма
crates.ioeql-bindings3.0.2непряма
crates.ioequivalent1.0.2непряма
crates.ioerrno0.3.14непряма
crates.ioevent-listener2.5.3непряма
crates.iofake2.10.0непряма
crates.iofind-msvc-tools0.1.9непряма
crates.ioflate21.1.9непряма
crates.iofnv1.0.7непряма
crates.iofoldhash0.1.5непряма
crates.ioform_urlencoded1.2.2непряма
crates.iofs_extra1.3.0непряма
crates.iofunty2.0.0непряма
crates.iofutures0.3.32непряма
crates.iofutures-channel0.3.32непряма
crates.iofutures-core0.3.32непряма
crates.iofutures-executor0.3.32непряма
crates.iofutures-io0.3.32непряма
crates.iofutures-macro0.3.32непряма
crates.iofutures-sink0.3.32непряма
crates.iofutures-task0.3.32непряма
crates.iofutures-util0.3.32непряма
crates.iogeneric-array0.14.7непряма
crates.iogethostname0.5.0непряма
crates.iogetrandomнепряма
crates.iogetrandom0.2.17непряма
crates.iogetrandom0.3.4непряма
crates.iogetrandom0.4.2непряма
crates.ioghash0.5.1непряма
crates.iohalf1.8.3непряма
crates.iohashbrown0.12.3непряма
crates.iohashbrown0.14.5непряма
crates.iohashbrown0.15.5непряма
crates.iohashbrown0.16.1непряма
crates.ioheck0.5.0непряма
crates.iohexнепряма
crates.iohex0.4.3непряма
crates.iohex-literal0.3.4непряма
crates.iohickory-net0.26.1непряма
crates.iohickory-proto0.26.1непряма
crates.iohickory-resolver0.26.1непряма
crates.iohmac0.12.1непряма
crates.iohttp1.4.0непряма
crates.iohttp-body1.0.1непряма
crates.iohttp-body-util0.1.3непряма
crates.iohttparse1.10.1непряма
crates.iohybrid-array0.4.12непряма
crates.iohyper1.8.1непряма
crates.iohyper-rustls0.27.7непряма
crates.iohyper-util0.1.20непряма
crates.ioiana-time-zone0.1.65непряма
crates.ioiana-time-zone-haiku0.1.2непряма
crates.ioicu_collections2.1.1непряма
crates.ioicu_locale_core2.1.1непряма
crates.ioicu_normalizer2.1.1непряма
crates.ioicu_normalizer_data2.1.1непряма
crates.ioicu_properties2.1.2непряма
crates.ioicu_properties_data2.1.2непряма
crates.ioicu_provider2.1.1непряма
crates.ioid-arena2.3.0непряма
crates.ioident_case1.0.1непряма
crates.ioidna1.1.0непряма
crates.ioidna_adapter1.2.1непряма
crates.ioinclude_dir0.7.4непряма
crates.ioinclude_dir_macros0.7.4непряма
crates.ioindexmap2.13.0непряма
crates.ioinout0.1.4непряма
crates.ioipconfig0.3.2непряма
crates.ioipnet2.12.0непряма
crates.ioiri-string0.7.10непряма
crates.iois-docker0.2.0непряма
crates.iois-wsl0.4.0непряма
crates.ioitertools0.10.5непряма
crates.ioitertools0.12.1непряма
crates.ioitoa1.0.17непряма
crates.iojni0.21.1непряма
crates.iojni0.22.4непряма
crates.iojni-macros0.22.4непряма
crates.iojni-sys0.3.0непряма
crates.iojni-sys0.4.1непряма
crates.iojni-sys-macros0.4.1непряма
crates.iojobserver0.1.34непряма
crates.iojs-sysнепряма
crates.iojs-sys0.3.91непряма
crates.iojsonwebtoken9.3.1непряма
crates.iolazy_static1.5.0непряма
crates.ioleb128fmt0.1.0непряма
crates.iolibc0.2.183непряма
crates.iolibloading0.8.9непряма
crates.iolibredox0.1.14непряма
crates.iolinkme0.3.35непряма
crates.iolinkme-impl0.3.35непряма
crates.iolinux-raw-sys0.4.15непряма
crates.iolitemap0.8.1непряма
crates.iolock_api0.4.14непряма
crates.iolog0.4.29непряма
crates.iolru-slab0.1.2непряма
crates.iomd-50.10.6непряма
crates.iomemchr2.8.0непряма
crates.iomiette7.6.0непряма
crates.iomiette-derive7.6.0непряма
crates.iominiz_oxide0.8.9непряма
crates.iomio1.1.1непряма
crates.iomoka0.12.14непряма
crates.iondk-context0.1.1непряма
crates.ioneonнепряма
crates.ioneon1.1.1непряма
crates.ioneon-macros1.1.1непряма
crates.ionom8.0.0непряма
crates.ionum0.4.3непряма
crates.ionum-bigint0.4.6непряма
crates.ionum-complex0.4.6непряма
crates.ionum-conv0.2.0непряма
crates.ionum-integer0.1.46непряма
crates.ionum-iter0.1.45непряма
crates.ionum-rational0.4.2непряма
crates.ionum-traits0.2.19непряма
crates.ioonce_cellнепряма
crates.ioonce_cell1.21.4непряма
crates.ioopaque-debug0.3.1непряма
crates.ioopen5.3.3непряма
crates.ioopenssl-probe0.2.1непряма
crates.ioorderable-bytes0.1.1непряма
crates.ioore-rs0.8.3непряма
crates.ioparking_lot0.12.5непряма
crates.ioparking_lot_core0.9.12непряма
crates.iopathdiff0.2.3непряма
crates.iopem3.0.6непряма
crates.iopercent-encoding2.3.2непряма
crates.iopin-project-lite0.2.17непряма
crates.iopin-utils0.1.0непряма
crates.iopolyval0.6.2непряма
crates.ioportable-atomic1.13.1непряма
crates.iopotential_utf0.1.4непряма
crates.iopowerfmt0.2.0непряма
crates.ioppv-lite860.2.21непряма
crates.ioprefix-trie0.8.4непряма
crates.ioprettyplease0.2.37непряма
crates.ioproc-macro-crate3.5.0непряма
crates.ioproc-macro-error-attr22.0.0непряма
crates.ioproc-macro-error22.0.1непряма
crates.ioproc-macro21.0.106непряма
crates.ioproptest1.10.0непряма
crates.ioptr_meta0.1.4непряма
crates.ioptr_meta_derive0.1.4непряма
crates.ioquickcheckнепряма
crates.ioquickcheck1.1.0непряма
crates.ioquickcheck_macrosнепряма
crates.ioquickcheck_macros1.2.0непряма
crates.ioquinn0.11.9непряма
crates.ioquinn-proto0.11.14непряма
crates.ioquinn-udp0.5.14непряма
crates.ioquote1.0.45непряма
crates.ior-efi5.3.0непряма
crates.ior-efi6.0.0непряма
crates.ioradium0.7.0непряма
crates.iorand0.10.1непряма
crates.iorand0.8.6непряма
crates.iorand0.9.3непряма
crates.iorand_chacha0.3.1непряма
crates.iorand_chacha0.9.0непряма
crates.iorand_core0.10.0непряма
crates.iorand_core0.6.4непряма
crates.iorand_core0.9.5непряма
crates.iorand_xorshift0.4.0непряма
crates.iorecipher0.2.3непряма
crates.ioredox_syscall0.5.18непряма
crates.ioredox_users0.4.6непряма
crates.ioref-cast1.0.25непряма
crates.ioref-cast-impl1.0.25непряма
crates.ioregex1.12.3непряма
crates.ioregex-automata0.4.14непряма
crates.ioregex-syntax0.8.10непряма
crates.iorend0.4.2непряма
crates.ioreqwest0.13.4непряма
crates.ioresolv-conf0.7.6непряма
crates.ioring0.17.14непряма
crates.iorkyv0.7.46непряма
crates.iorkyv_derive0.7.46непряма
crates.iormp0.8.15непряма
crates.iormp-serde1.3.1непряма
crates.iorust-stemmers1.2.0непряма
crates.iorust_decimalнепряма
crates.iorust_decimal1.40.0непряма
crates.iorustc-hash2.1.1непряма
crates.iorustc_version0.4.1непряма
crates.iorustix0.38.44непряма
crates.iorustls0.23.37непряма
crates.iorustls-native-certs0.8.3непряма
crates.iorustls-pki-types1.14.0непряма
crates.iorustls-platform-verifier0.6.2непряма
crates.iorustls-platform-verifier-android0.1.1непряма
crates.iorustls-webpki0.103.13непряма
crates.iorustversion1.0.22непряма
crates.ioryu1.0.23непряма
crates.iosame-file1.0.6непряма
crates.ioschannel0.1.29непряма
crates.ioschemars1.2.1непряма
crates.ioschemars_derive1.2.1непряма
crates.ioscopeguard1.2.0непряма
crates.ioseahash4.1.0непряма
crates.iosecurity-framework3.7.0непряма
crates.iosecurity-framework-sys2.17.0непряма
crates.iosemver1.0.27непряма
crates.iosend_wrapper0.6.0непряма
crates.ioserdeнепряма
crates.ioserde1.0.228непряма
crates.ioserde-wasm-bindgenнепряма
crates.ioserde-wasm-bindgen0.6.5непряма
crates.ioserde_bytes0.11.19непряма
crates.ioserde_cbor0.11.2непряма
crates.ioserde_core1.0.228непряма
crates.ioserde_derive1.0.228непряма
crates.ioserde_derive_internals0.29.1непряма
crates.ioserde_jsonнепряма
crates.ioserde_json1.0.149непряма
crates.ioserde_spanned0.6.9непряма
crates.ioserde_urlencoded0.7.1непряма
crates.ioserdect0.3.0непряма
crates.iosha1_smol1.0.1непряма
crates.iosha20.10.9непряма
crates.ioshlex1.3.0непряма
crates.iosignal-hook-registry1.4.8непряма
crates.iosimd-adler320.3.8непряма
crates.iosimd_cesu81.2.0непряма
crates.iosimdutf80.1.5непряма
crates.iosimple_asn10.6.4непряма
crates.ioslab0.4.12непряма
crates.iosmallvec1.15.1непряма
crates.iosocket20.5.10непряма
crates.iosocket20.6.3непряма
crates.iostable_deref_trait1.2.1непряма
crates.iostack-auth0.42.0непряма
crates.iostack-profile0.42.0непряма
crates.iostatic_assertions1.1.0непряма
crates.iostrsim0.11.1непряма
crates.iosubtle2.6.1непряма
crates.iosubtle-ng2.5.0непряма
crates.iosyn1.0.109непряма
crates.iosyn2.0.117непряма
crates.iosync_wrapper1.0.2непряма
crates.iosynstructure0.13.2непряма
crates.iosystem-configuration0.7.0непряма
crates.iosystem-configuration-sys0.6.0непряма
crates.iotagptr0.2.0непряма
crates.iotap1.0.1непряма
crates.iotermcolor1.4.1непряма
crates.iothiserrorнепряма
crates.iothiserror1.0.69непряма
crates.iothiserror2.0.18непряма
crates.iothiserror-impl1.0.69непряма
crates.iothiserror-impl2.0.18непряма
crates.iotime0.3.47непряма
crates.iotime-core0.1.8непряма
crates.iotime-macros0.2.27непряма
crates.iotinystr0.8.2непряма
crates.iotinyvec1.11.0непряма
crates.iotinyvec_macros0.1.1непряма
crates.iotokioнепряма
crates.iotokio1.50.0непряма
crates.iotokio-macros2.6.1непряма
crates.iotokio-rustls0.26.4непряма
crates.iotokio-util0.7.18непряма
crates.iotoml0.8.23непряма
crates.iotoml_datetime0.6.11непряма
crates.iotoml_datetime1.0.1+spec-1.1.0непряма
crates.iotoml_edit0.22.27непряма
crates.iotoml_edit0.25.5+spec-1.1.0непряма
crates.iotoml_parser1.0.10+spec-1.1.0непряма
crates.iotoml_write0.1.2непряма
crates.iotower0.5.3непряма
crates.iotower-http0.6.8непряма
crates.iotower-layer0.3.3непряма
crates.iotower-service0.3.3непряма
crates.iotracing0.1.44непряма
crates.iotracing-attributes0.1.31непряма
crates.iotracing-core0.1.36непряма
crates.iotry-lock0.2.5непряма
crates.iots-rs10.1.0непряма
crates.iots-rs-macros10.1.0непряма
crates.iotypenum1.20.0непряма
crates.iounarray0.1.4непряма
crates.iounicode-ident1.0.24непряма
crates.iounicode-normalization0.1.25непряма
crates.iounicode-segmentation1.12.0непряма
crates.iounicode-width0.1.14непряма
crates.iounicode-xid0.2.6непряма
crates.iouniversal-hash0.5.1непряма
crates.iountrusted0.7.1непряма
crates.iountrusted0.9.0непряма
crates.iourl2.5.8непряма
crates.ioutf8_iter1.0.4непряма
crates.ioutoipa5.4.0непряма
crates.ioutoipa-gen5.4.0непряма
crates.iouuidнепряма
crates.iouuid1.22.0непряма
crates.iovalidator0.20.0непряма
crates.iovalidator_derive0.20.0непряма
crates.ioversion_check0.9.5непряма
crates.iovitaminc0.1.0-pre4.2непряма
crates.iovitaminc0.2.0-preнепряма
crates.iovitaminc-aead0.2.0-preнепряма
crates.iovitaminc-encrypt0.2.0-preнепряма
crates.iovitaminc-protected0.1.0-pre4.2непряма
crates.iovitaminc-protected0.2.0-preнепряма
crates.iovitaminc-protected-derive0.1.0-pre4.2непряма
crates.iovitaminc-protected-derive0.2.0-preнепряма
crates.iovitaminc-random0.1.0-pre4.2непряма
crates.iovitaminc-random0.2.0-preнепряма
crates.iovitaminc-random-derives0.1.0-pre4.2непряма
crates.iovitaminc-random-derives0.2.0-preнепряма
crates.iovitaminc-traits0.2.0-preнепряма
crates.iowalkdir2.5.0непряма
crates.iowant0.3.1непряма
crates.iowasi0.11.1+wasi-snapshot-preview1непряма
crates.iowasip21.0.2+wasi-0.2.9непряма
crates.iowasip30.4.0+wasi-0.3.0-rc-2026-01-06непряма
crates.iowasm-bindgenнепряма
crates.iowasm-bindgen0.2.114непряма
crates.iowasm-bindgen-futuresнепряма
crates.iowasm-bindgen-futures0.4.64непряма
crates.iowasm-bindgen-macro0.2.114непряма
crates.iowasm-bindgen-macro-support0.2.114непряма
crates.iowasm-bindgen-shared0.2.114непряма
crates.iowasm-encoder0.244.0непряма
crates.iowasm-metadata0.244.0непряма
crates.iowasm-streams0.5.0непряма
crates.iowasmparser0.244.0непряма
crates.ioweb-sysнепряма
crates.ioweb-sys0.3.91непряма
crates.ioweb-time1.1.0непряма
crates.iowebpki-root-certs1.0.6непряма
crates.iowidestring1.2.1непряма
crates.iowinapi0.3.9непряма
crates.iowinapi-i686-pc-windows-gnu0.4.0непряма
crates.iowinapi-util0.1.11непряма
crates.iowinapi-x86_64-pc-windows-gnu0.4.0непряма
crates.iowindows-core0.62.2непряма
crates.iowindows-implement0.60.2непряма
crates.iowindows-interface0.59.3непряма
crates.iowindows-link0.2.1непряма
crates.iowindows-result0.4.1непряма
crates.iowindows-strings0.5.1непряма
crates.iowindows-sys0.45.0непряма
crates.iowindows-sys0.48.0непряма
crates.iowindows-sys0.52.0непряма
crates.iowindows-sys0.60.2непряма
crates.iowindows-sys0.61.2непряма
crates.iowindows-targets0.42.2непряма
crates.iowindows-targets0.48.5непряма
crates.iowindows-targets0.52.6непряма
crates.iowindows-targets0.53.5непряма
crates.iowindows_aarch64_gnullvm0.42.2непряма
crates.iowindows_aarch64_gnullvm0.48.5непряма
crates.iowindows_aarch64_gnullvm0.52.6непряма
crates.iowindows_aarch64_gnullvm0.53.1непряма
crates.iowindows_aarch64_msvc0.42.2непряма
crates.iowindows_aarch64_msvc0.48.5непряма
crates.iowindows_aarch64_msvc0.52.6непряма
crates.iowindows_aarch64_msvc0.53.1непряма
crates.iowindows_i686_gnu0.42.2непряма
crates.iowindows_i686_gnu0.48.5непряма
crates.iowindows_i686_gnu0.52.6непряма
crates.iowindows_i686_gnu0.53.1непряма
crates.iowindows_i686_gnullvm0.52.6непряма
crates.iowindows_i686_gnullvm0.53.1непряма
crates.iowindows_i686_msvc0.42.2непряма
crates.iowindows_i686_msvc0.48.5непряма
crates.iowindows_i686_msvc0.52.6непряма
crates.iowindows_i686_msvc0.53.1непряма
crates.iowindows_x86_64_gnu0.42.2непряма
crates.iowindows_x86_64_gnu0.48.5непряма
crates.iowindows_x86_64_gnu0.52.6непряма
crates.iowindows_x86_64_gnu0.53.1непряма
crates.iowindows_x86_64_gnullvm0.42.2непряма
crates.iowindows_x86_64_gnullvm0.48.5непряма
crates.iowindows_x86_64_gnullvm0.52.6непряма
crates.iowindows_x86_64_gnullvm0.53.1непряма
crates.iowindows_x86_64_msvc0.42.2непряма
crates.iowindows_x86_64_msvc0.48.5непряма
crates.iowindows_x86_64_msvc0.52.6непряма
crates.iowindows_x86_64_msvc0.53.1непряма
crates.iowinnow0.6.26непряма
crates.iowinnow0.7.15непряма
crates.iowinnow1.0.0непряма
crates.iowinreg0.50.0непряма
crates.iowit-bindgen0.51.0непряма
crates.iowit-bindgen-core0.51.0непряма
crates.iowit-bindgen-rust0.51.0непряма
crates.iowit-bindgen-rust-macro0.51.0непряма
crates.iowit-component0.244.0непряма
crates.iowit-parser0.244.0непряма
crates.iowriteable0.6.2непряма
crates.iowyz0.5.1непряма
crates.ioyoke0.8.1непряма
crates.ioyoke-derive0.8.1непряма
crates.iozerocopy0.8.42непряма
crates.iozerocopy-derive0.8.42непряма
crates.iozerofrom0.1.6непряма
crates.iozerofrom-derive0.1.6непряма
crates.iozeroizeнепряма
crates.iozeroize1.8.2непряма
crates.iozeroize_derive1.4.3непряма
crates.iozerokms-protocol0.12.26непряма
crates.iozerotrie0.2.3непряма
crates.iozerovec0.11.5непряма
crates.iozerovec-derive0.11.2непряма
crates.iozmij1.0.21непряма
npm@ampproject/remapping2.3.0непряма
npm@babel/helper-string-parser7.27.1непряма
npm@babel/helper-validator-identifier7.28.5непряма
npm@babel/parser7.28.5непряма
npm@babel/types7.28.5непряма
npm@bcoe/v8-coverage1.0.2непряма
npm@biomejs/biome1.9.4непряма
npm@biomejs/cli-darwin-arm641.9.4непряма
npm@biomejs/cli-darwin-x641.9.4непряма
npm@biomejs/cli-linux-arm641.9.4непряма
npm@biomejs/cli-linux-arm64-musl1.9.4непряма
npm@biomejs/cli-linux-x641.9.4непряма
npm@biomejs/cli-linux-x64-musl1.9.4непряма
npm@biomejs/cli-win32-arm641.9.4непряма
npm@biomejs/cli-win32-x641.9.4непряма
npm@cargo-messages/android-arm-eabi0.1.81непряма
npm@cargo-messages/darwin-arm640.1.81непряма
npm@cargo-messages/darwin-x640.1.81непряма
npm@cargo-messages/linux-arm-gnueabihf0.1.81непряма
npm@cargo-messages/linux-arm64-gnu0.1.81непряма
npm@cargo-messages/linux-arm64-musl0.1.81непряма
npm@cargo-messages/linux-x64-gnu0.1.81непряма
npm@cargo-messages/linux-x64-musl0.1.81непряма
npm@cargo-messages/win32-arm64-msvc0.1.81непряма
npm@cargo-messages/win32-x64-msvc0.1.81непряма
npm@cipherstash/eql3.0.2непряма
npm@emnapi/core1.11.1непряма
npm@emnapi/runtime1.11.1непряма
npm@emnapi/wasi-threads1.2.2непряма
npm@esbuild/aix-ppc640.28.1непряма
npm@esbuild/android-arm0.28.1непряма
npm@esbuild/android-arm640.28.1непряма
npm@esbuild/android-x640.28.1непряма
npm@esbuild/darwin-arm640.28.1непряма
npm@esbuild/darwin-x640.28.1непряма
npm@esbuild/freebsd-arm640.28.1непряма
npm@esbuild/freebsd-x640.28.1непряма
npm@esbuild/linux-arm0.28.1непряма
npm@esbuild/linux-arm640.28.1непряма
npm@esbuild/linux-ia320.28.1непряма
npm@esbuild/linux-loong640.28.1непряма
npm@esbuild/linux-mips64el0.28.1непряма
npm@esbuild/linux-ppc640.28.1непряма
npm@esbuild/linux-riscv640.28.1непряма
npm@esbuild/linux-s390x0.28.1непряма
npm@esbuild/linux-x640.28.1непряма
npm@esbuild/netbsd-arm640.28.1непряма
npm@esbuild/netbsd-x640.28.1непряма
npm@esbuild/openbsd-arm640.28.1непряма
npm@esbuild/openbsd-x640.28.1непряма
npm@esbuild/openharmony-arm640.28.1непряма
npm@esbuild/sunos-x640.28.1непряма
npm@esbuild/win32-arm640.28.1непряма
npm@esbuild/win32-ia320.28.1непряма
npm@esbuild/win32-x640.28.1непряма
npm@isaacs/cliui8.0.2непряма
npm@istanbuljs/schema0.1.3непряма
npm@jridgewell/gen-mapping0.3.13непряма
npm@jridgewell/resolve-uri3.1.2непряма
npm@jridgewell/sourcemap-codec1.5.5непряма
npm@jridgewell/trace-mapping0.3.31непряма
npm@napi-rs/wasm-runtime1.1.6непряма
npm@neon-rs/cli0.1.82непряма
npm@oxc-project/types0.139.0непряма
npm@pkgjs/parseargs0.11.0непряма
npm@rolldown/binding-android-arm641.1.5непряма
npm@rolldown/binding-darwin-arm641.1.5непряма
npm@rolldown/binding-darwin-x641.1.5непряма
npm@rolldown/binding-freebsd-x641.1.5непряма
npm@rolldown/binding-linux-arm-gnueabihf1.1.5непряма
npm@rolldown/binding-linux-arm64-gnu1.1.5непряма
npm@rolldown/binding-linux-arm64-musl1.1.5непряма
npm@rolldown/binding-linux-ppc64-gnu1.1.5непряма
npm@rolldown/binding-linux-s390x-gnu1.1.5непряма
npm@rolldown/binding-linux-x64-gnu1.1.5непряма
npm@rolldown/binding-linux-x64-musl1.1.5непряма
npm@rolldown/binding-openharmony-arm641.1.5непряма
npm@rolldown/binding-wasm32-wasi1.1.5непряма
npm@rolldown/binding-win32-arm64-msvc1.1.5непряма
npm@rolldown/binding-win32-x64-msvc1.1.5непряма
npm@rolldown/pluginutils1.0.1непряма
npm@rollup/rollup-android-arm-eabi4.59.0непряма
npm@rollup/rollup-android-arm644.59.0непряма
npm@rollup/rollup-darwin-arm644.59.0непряма
npm@rollup/rollup-darwin-x644.59.0непряма
npm@rollup/rollup-freebsd-arm644.59.0непряма
npm@rollup/rollup-freebsd-x644.59.0непряма
npm@rollup/rollup-linux-arm-gnueabihf4.59.0непряма
npm@rollup/rollup-linux-arm-musleabihf4.59.0непряма
npm@rollup/rollup-linux-arm64-gnu4.59.0непряма
npm@rollup/rollup-linux-arm64-musl4.59.0непряма
npm@rollup/rollup-linux-loong64-gnu4.59.0непряма
npm@rollup/rollup-linux-loong64-musl4.59.0непряма
npm@rollup/rollup-linux-ppc64-gnu4.59.0непряма
npm@rollup/rollup-linux-ppc64-musl4.59.0непряма
npm@rollup/rollup-linux-riscv64-gnu4.59.0непряма
npm@rollup/rollup-linux-riscv64-musl4.59.0непряма
npm@rollup/rollup-linux-s390x-gnu4.59.0непряма
npm@rollup/rollup-linux-x64-gnu4.59.0непряма
npm@rollup/rollup-linux-x64-musl4.59.0непряма
npm@rollup/rollup-openbsd-x644.59.0непряма
npm@rollup/rollup-openharmony-arm644.59.0непряма
npm@rollup/rollup-win32-arm64-msvc4.59.0непряма
npm@rollup/rollup-win32-ia32-msvc4.59.0непряма
npm@rollup/rollup-win32-x64-gnu4.59.0непряма
npm@rollup/rollup-win32-x64-msvc4.59.0непряма
npm@standard-schema/spec1.1.0непряма
npm@tsconfig/node2020.1.4непряма
npm@tybys/wasm-util0.10.3непряма
npm@types/chai5.2.3непряма
npm@types/deep-eql4.0.2непряма
npm@types/estree1.0.8непряма
npm@types/estree1.0.9непряма
npm@types/node20.17.10непряма
npm@types/node22.13.10непряма
npm@types/pg8.11.11непряма
npm@vitest/coverage-v83.2.7непряма
npm@vitest/expect3.2.7непряма
npm@vitest/expect4.1.10непряма
npm@vitest/mocker3.2.7непряма
npm@vitest/mocker4.1.10непряма
npm@vitest/pretty-format3.2.7непряма
npm@vitest/pretty-format4.1.10непряма
npm@vitest/runner3.2.7непряма
npm@vitest/runner4.1.10непряма
npm@vitest/snapshot3.2.7непряма
npm@vitest/snapshot4.1.10непряма
npm@vitest/spy3.2.7непряма
npm@vitest/spy4.1.10непряма
npm@vitest/utils3.2.7непряма
npm@vitest/utils4.1.10непряма
npmansi-regex5.0.1непряма
npmansi-regex6.2.2непряма
npmansi-styles4.3.0непряма
npmansi-styles6.2.3непряма
npmassertion-error2.0.1непряма
npmast-v8-to-istanbul0.3.10непряма
npmbalanced-match1.0.2непряма
npmbrace-expansion2.0.2непряма
npmcac6.7.14непряма
npmchai5.3.3непряма
npmchai6.2.2непряма
npmcheck-error2.1.3непряма
npmcolor-convert2.0.1непряма
npmcolor-name1.1.4непряма
npmconvert-source-map2.0.0непряма
npmcross-spawn7.0.6непряма
npmdebug4.4.3непряма
npmdeep-eql5.0.2непряма
npmdetect-libc2.1.2непряма
npmdotenv16.4.7непряма
npmeastasianwidth0.2.0непряма
npmemoji-regex8.0.0непряма
npmemoji-regex9.2.2непряма
npmes-module-lexer1.7.0непряма
npmes-module-lexer2.0.0непряма
npmesbuild0.28.1непряма
npmestree-walker3.0.3непряма
npmexpect-type1.2.1непряма
npmexpect-type1.3.0непряма
npmfdir6.5.0непряма
npmforeground-child3.3.1непряма
npmfsevents2.3.3непряма
npmglob10.5.0непряма
npmhas-flag4.0.0непряма
npmhtml-escaper2.0.2непряма
npmis-fullwidth-code-point3.0.0непряма
npmisexe2.0.0непряма
npmistanbul-lib-coverage3.2.2непряма
npmistanbul-lib-report3.0.1непряма
npmistanbul-lib-source-maps5.0.6непряма
npmistanbul-reports3.2.0непряма
npmjackspeak3.4.3непряма
npmjs-tokens9.0.1непряма
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непряма
npmloupe3.2.1непряма
npmlru-cache10.4.3непряма
npmmagic-string0.30.19непряма
npmmagic-string0.30.21непряма
npmmagicast0.3.5непряма
npmmake-dir4.0.0непряма
npmminimatch9.0.9непряма
npmminipass7.1.2непряма
npmms2.1.3непряма
npmnanoid3.3.16непряма
npmobuf1.1.2непряма
npmobug2.1.1непряма
npmpackage-json-from-dist1.0.1непряма
npmpath-key3.1.1непряма
npmpath-scurry1.11.1непряма
npmpathe2.0.3непряма
npmpathval2.0.1непряма
npmpg-cloudflare1.1.1непряма
npmpg-connection-string2.7.0непряма
npmpg-int81.0.1непряма
npmpg-numeric1.0.2непряма
npmpg-pool3.7.1непряма
npmpg-protocol1.7.1непряма
npmpg-types2.2.0непряма
npmpg-types4.0.2непряма
npmpgpass1.0.5непряма
npmpicocolors1.1.1непряма
npmpicomatch4.0.5непряма
npmpostcss8.5.19непряма
npmpostgres-array2.0.0непряма
npmpostgres-array3.0.4непряма
npmpostgres-bytea1.0.0непряма
npmpostgres-bytea3.0.0непряма
npmpostgres-date1.0.7непряма
npmpostgres-date2.1.0непряма
npmpostgres-interval1.2.0непряма
npmpostgres-interval3.0.0непряма
npmpostgres-range1.1.4непряма
npmrolldown1.1.5непряма
npmrollup4.59.0непряма
npmsemver7.7.3непряма
npmshebang-command2.0.0непряма
npmshebang-regex3.0.0непряма
npmsiginfo2.0.0непряма
npmsignal-exit4.1.0непряма
npmsource-map-js1.2.1непряма
npmsplit24.2.0непряма
npmstackback0.0.2непряма
npmstd-env3.9.0непряма
npmstd-env4.0.0непряма
npmstring-width4.2.3непряма
npmstring-width5.1.2непряма
npmstrip-ansi6.0.1непряма
npmstrip-ansi7.1.2непряма
npmstrip-literal3.1.0непряма
npmsupports-color7.2.0непряма
npmtest-exclude7.0.1непряма
npmtinybench2.9.0непряма
npmtinyexec0.3.2непряма
npmtinyexec1.0.4непряма
npmtinyglobby0.2.15непряма
npmtinyglobby0.2.17непряма
npmtinypool1.1.1непряма
npmtinyrainbow2.0.0непряма
npmtinyrainbow3.1.0непряма
npmtinyspy4.0.4непряма
npmtslib2.8.1непряма
npmtypescript5.7.2непряма
npmtypescript5.8.2непряма
npmundici-types6.19.8непряма
npmundici-types6.20.0непряма
npmvite7.3.6непряма
npmvite8.1.5непряма
npmvite-node3.2.4непряма
npmvitest3.2.7непряма
npmvitest4.1.10непряма
npmwhich2.0.2непряма
npmwhy-is-node-running2.3.0непряма
npmwrap-ansi7.0.0непряма
npmwrap-ansi8.1.0непряма
npmxtend4.0.2непряма
Сповіщення про залежності 0

Встановлення npm:@cipherstash/protect-ffi@0.30.0 тягне 7 пакетів, прямих і транзитивних: 0 мають відомі сповіщення, з них 0 — прямі залежності.

Жодне відоме сповіщення не стосується оцінених залежностей.

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

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 2244,
      "has_wiki": false,
      "homepage": "https://github.com/cipherstash/stack",
      "languages": {
        "Rust": 322131,
        "Shell": 2380,
        "JavaScript": 8828,
        "TypeScript": 288052
      },
      "pushed_at": "2026-07-26T12:04:12Z",
      "created_at": "2024-12-13T05:06:22Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-20T09:17:35Z",
      "description": "CipherStash Client Rust bindings for JS. Implemented in @cipherstash/stack",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "Rust",
      "significant_languages": [
        "Rust",
        "TypeScript"
      ]
    },
    "owner": {
      "blog": "https://cipherstash.com",
      "name": "CipherStash",
      "type": "Organization",
      "login": "cipherstash",
      "company": null,
      "location": "United States of America",
      "followers": 72,
      "avatar_url": "https://avatars.githubusercontent.com/u/66902246?v=4",
      "created_at": "2020-06-14T09:00:37Z",
      "is_verified": null,
      "public_repos": 53,
      "account_age_days": 2233
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.30.0",
          "kind": "minor",
          "published_at": "2026-07-20T09:19:00Z"
        },
        {
          "tag": "v0.29.0",
          "kind": "minor",
          "published_at": "2026-07-09T16:54:13Z"
        },
        {
          "tag": "v0.28.0",
          "kind": "minor",
          "published_at": "2026-07-08T02:52:23Z"
        },
        {
          "tag": "v0.27.1-0",
          "kind": "prerelease",
          "published_at": "2026-07-06T05:12:14Z"
        },
        {
          "tag": "v0.27.0",
          "kind": "minor",
          "published_at": "2026-07-04T14:29:51Z"
        },
        {
          "tag": "v0.26.1-0",
          "kind": "prerelease",
          "published_at": "2026-07-04T14:07:17Z"
        },
        {
          "tag": "v0.26.0",
          "kind": "minor",
          "published_at": "2026-06-08T04:30:57Z"
        },
        {
          "tag": "v0.25.0",
          "kind": "minor",
          "published_at": "2026-05-29T06:39:50Z"
        },
        {
          "tag": "v0.24.0",
          "kind": "minor",
          "published_at": "2026-05-26T09:33:38Z"
        },
        {
          "tag": "v0.23.0",
          "kind": "minor",
          "published_at": "2026-05-21T13:17:02Z"
        },
        {
          "tag": "v0.22.0",
          "kind": "minor",
          "published_at": "2026-05-20T17:38:10Z"
        },
        {
          "tag": "v0.21.4",
          "kind": "patch",
          "published_at": "2026-04-30T08:53:43Z"
        },
        {
          "tag": "v0.21.3",
          "kind": "patch",
          "published_at": "2026-04-28T06:50:22Z"
        },
        {
          "tag": "v0.21.2",
          "kind": "patch",
          "published_at": "2026-04-09T15:28:15Z"
        },
        {
          "tag": "v0.21.1",
          "kind": "patch",
          "published_at": "2026-04-08T22:03:30Z"
        },
        {
          "tag": "v0.21.0",
          "kind": "minor",
          "published_at": "2026-03-24T03:20:31Z"
        },
        {
          "tag": "v0.20.2",
          "kind": "patch",
          "published_at": "2026-02-24T22:40:29Z"
        },
        {
          "tag": "v0.20.1",
          "kind": "patch",
          "published_at": "2026-01-28T04:42:24Z"
        },
        {
          "tag": "v0.20.0",
          "kind": "minor",
          "published_at": "2026-01-19T01:20:59Z"
        },
        {
          "tag": "v0.19.0",
          "kind": "minor",
          "published_at": "2026-01-14T06:30:32Z"
        },
        {
          "tag": "v0.19.0-8",
          "kind": "prerelease",
          "published_at": "2026-01-08T02:42:25Z"
        },
        {
          "tag": "v0.18.1",
          "kind": "patch",
          "published_at": "2025-11-12T16:52:09Z"
        },
        {
          "tag": "v0.18.0",
          "kind": "minor",
          "published_at": "2025-11-12T02:57:31Z"
        },
        {
          "tag": "v0.17.1",
          "kind": "patch",
          "published_at": "2025-10-28T21:23:47Z"
        },
        {
          "tag": "v0.17.1-11",
          "kind": "prerelease",
          "published_at": "2025-10-27T17:35:28Z"
        },
        {
          "tag": "v0.17.1-10",
          "kind": "prerelease",
          "published_at": "2025-10-26T13:16:04Z"
        },
        {
          "tag": "v0.17.1-9",
          "kind": "prerelease",
          "published_at": "2025-10-26T12:23:50Z"
        },
        {
          "tag": "v0.17.1-8",
          "kind": "prerelease",
          "published_at": "2025-10-24T18:45:07Z"
        },
        {
          "tag": "v0.17.1-7",
          "kind": "prerelease",
          "published_at": "2025-10-24T18:34:05Z"
        },
        {
          "tag": "v0.17.1-6",
          "kind": "prerelease",
          "published_at": "2025-10-23T22:23:55Z"
        },
        {
          "tag": "v0.17.1-5",
          "kind": "prerelease",
          "published_at": "2025-10-23T21:20:14Z"
        },
        {
          "tag": "v0.17.1-4",
          "kind": "prerelease",
          "published_at": "2025-10-23T21:08:09Z"
        },
        {
          "tag": "v0.17.1-3",
          "kind": "prerelease",
          "published_at": "2025-10-23T20:35:25Z"
        },
        {
          "tag": "v0.17.1-2",
          "kind": "prerelease",
          "published_at": "2025-10-23T19:50:05Z"
        },
        {
          "tag": "v0.17.1-1",
          "kind": "prerelease",
          "published_at": "2025-10-23T19:31:31Z"
        },
        {
          "tag": "v0.17.1-0",
          "kind": "prerelease",
          "published_at": "2025-10-23T19:19:41Z"
        },
        {
          "tag": "v0.18.0-9",
          "kind": "prerelease",
          "published_at": "2025-10-21T20:01:22Z"
        },
        {
          "tag": "v0.18.0-8",
          "kind": "prerelease",
          "published_at": "2025-10-21T19:35:54Z"
        },
        {
          "tag": "v0.18.0-7",
          "kind": "prerelease",
          "published_at": "2025-10-21T18:20:34Z"
        },
        {
          "tag": "v0.18.0-6",
          "kind": "prerelease",
          "published_at": "2025-10-21T18:12:24Z"
        },
        {
          "tag": "v0.18.0-5",
          "kind": "prerelease",
          "published_at": "2025-10-21T18:05:22Z"
        },
        {
          "tag": "v0.18.0-4",
          "kind": "prerelease",
          "published_at": "2025-10-21T16:41:45Z"
        },
        {
          "tag": "v0.18.0-3",
          "kind": "prerelease",
          "published_at": "2025-10-21T16:35:02Z"
        },
        {
          "tag": "v0.18.0-2",
          "kind": "prerelease",
          "published_at": "2025-10-21T16:28:42Z"
        },
        {
          "tag": "v0.18.0-1",
          "kind": "prerelease",
          "published_at": "2025-10-21T16:09:35Z"
        },
        {
          "tag": "v0.18.0-0",
          "kind": "prerelease",
          "published_at": "2025-10-21T14:48:58Z"
        },
        {
          "tag": "v0.17.0",
          "kind": "minor",
          "published_at": "2025-10-01T00:39:28Z"
        },
        {
          "tag": "v0.16.1",
          "kind": "patch",
          "published_at": "2025-08-26T03:05:35Z"
        },
        {
          "tag": "v0.16.0",
          "kind": "minor",
          "published_at": "2025-07-15T00:02:31Z"
        },
        {
          "tag": "v0.16.0-2",
          "kind": "prerelease",
          "published_at": "2025-07-14T05:29:21Z"
        },
        {
          "tag": "v0.16.0-1",
          "kind": "prerelease",
          "published_at": "2025-07-10T06:44:57Z"
        },
        {
          "tag": "v0.16.0-0",
          "kind": "prerelease",
          "published_at": "2025-06-25T18:58:45Z"
        },
        {
          "tag": "v0.5.4",
          "kind": "patch",
          "published_at": "2025-06-25T07:02:02Z"
        },
        {
          "tag": "v0.15.0",
          "kind": "minor",
          "published_at": "2025-06-03T21:44:05Z"
        },
        {
          "tag": "v0.15.0-0",
          "kind": "prerelease",
          "published_at": "2025-06-03T07:08:27Z"
        },
        {
          "tag": "v0.14.2",
          "kind": "patch",
          "published_at": "2025-05-28T03:26:50Z"
        },
        {
          "tag": "v0.14.1",
          "kind": "patch",
          "published_at": "2025-05-26T07:29:51Z"
        },
        {
          "tag": "v0.14.0",
          "kind": "minor",
          "published_at": "2025-05-23T07:02:39Z"
        },
        {
          "tag": "v0.13.0-1",
          "kind": "prerelease",
          "published_at": "2025-03-11T06:36:37Z"
        },
        {
          "tag": "v0.13.0-0",
          "kind": "prerelease",
          "published_at": "2025-03-10T23:04:52Z"
        },
        {
          "tag": "v0.12.0",
          "kind": "minor",
          "published_at": "2025-03-05T15:01:51Z"
        },
        {
          "tag": "v0.12.0-4",
          "kind": "prerelease",
          "published_at": "2025-03-05T05:03:05Z"
        },
        {
          "tag": "v0.12.0-3",
          "kind": "prerelease",
          "published_at": "2025-03-04T14:49:03Z"
        },
        {
          "tag": "v0.12.0-2",
          "kind": "prerelease",
          "published_at": "2025-03-04T02:58:08Z"
        },
        {
          "tag": "v0.12.0-1",
          "kind": "prerelease",
          "published_at": "2025-03-03T22:31:50Z"
        },
        {
          "tag": "v0.12.0-0",
          "kind": "prerelease",
          "published_at": "2025-03-03T06:29:14Z"
        },
        {
          "tag": "v0.11.0",
          "kind": "minor",
          "published_at": "2025-02-28T02:27:19Z"
        },
        {
          "tag": "v0.10.0",
          "kind": "minor",
          "published_at": "2025-02-26T13:03:22Z"
        },
        {
          "tag": "v0.9.0",
          "kind": "minor",
          "published_at": "2025-02-17T22:21:05Z"
        },
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2025-02-17T18:44:36Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2025-02-17T18:20:18Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2025-02-17T17:56:14Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2025-01-19T04:48:32Z"
        },
        {
          "tag": "v0.5.0-0",
          "kind": "prerelease",
          "published_at": "2025-01-19T01:39:30Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2025-01-14T02:31:58Z"
        },
        {
          "tag": "v0.4.0-0",
          "kind": "prerelease",
          "published_at": "2025-01-08T05:46:57Z"
        },
        {
          "tag": "v0.3.0-0",
          "kind": "prerelease",
          "published_at": "2024-12-24T04:16:01Z"
        },
        {
          "tag": "v0.2.0",
          "kind": "minor",
          "published_at": "2024-12-23T04:03:43Z"
        },
        {
          "tag": "v0.2.0-0",
          "kind": "prerelease",
          "published_at": "2024-12-20T06:24:05Z"
        },
        {
          "tag": "v0.1.1",
          "kind": "patch",
          "published_at": "2024-12-20T03:44:24Z"
        },
        {
          "tag": "v0.1.1-2",
          "kind": "prerelease",
          "published_at": "2024-12-19T04:59:21Z"
        },
        {
          "tag": "v0.1.1-1",
          "kind": "prerelease",
          "published_at": "2024-12-19T02:41:17Z"
        },
        {
          "tag": "v0.1.1-0",
          "kind": "prerelease",
          "published_at": "2024-12-19T01:56:38Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "361f026b8e68debcb1488c1aacbcfd32c282a557",
          "body": null,
          "is_bot": false,
          "headline": "v0.30.0",
          "author_name": "github-actions",
          "author_login": null,
          "committed_at": "2026-07-20T09:16:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0f92dbbfe4ad2784d5bdec27a34c41e63b7b8a7d",
          "body": "feat: support cipherstash-client 0.42 SteVec wire format",
          "is_bot": false,
          "headline": "Merge pull request #141 from cipherstash/dan/cipherstash-client-0.42",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-20T08:57:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5cffa3c766e6541eaf542323a5d52ef753e5b1ef",
          "body": null,
          "is_bot": false,
          "headline": "fix: address PR 141 review feedback",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-20T07:49:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "347d8f7d4ec8d4393163d9a2e8a8b675de1a699e",
          "body": null,
          "is_bot": false,
          "headline": "test: emit an actual v2 domain fixture",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-20T07:30:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5c57d8d4b569176781f4652f74e5beabaaf23bdc",
          "body": null,
          "is_bot": false,
          "headline": "build: adopt published EQL 3.0.2 packages",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-20T07:22:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a8ea398fbe65f949b849cb91650bbe0344057162",
          "body": null,
          "is_bot": false,
          "headline": "feat: support cipherstash-client 0.42 SteVec wire format",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-19T13:14:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dee3ea5148a626c5ea0cc2283ea2a5a654398678",
          "body": "…-native-v3-storage\n\nfeat(protect-ffi): emit v3 storage payloads natively via encrypt_eql_v3",
          "is_bot": false,
          "headline": "Merge pull request #136 from cipherstash/james/cip-3359-c-protect-ffi…",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-18T14:49:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2df823c662fa798ad20f6cfd14b22f4ce01b8d82",
          "body": "…se failures; add SteVec oracle tests\n\nAddress PR #136 review feedback (CodeRabbit + fresh-context review):\n\n- A natively-emitted v3 payload that fails its target domain's strict\n  parse previously surfaced as a bare serde error (\"missing field `ob`\"),\n  which the JS side maps to UNKNOWN. New Error:\n[…]\nainment projection is\n  byte-identical to the from_v2 needle (envelope, c, and a stripped).\n\n- CHANGELOG: record the native v3 emission under Changed (closes the\n  remaining pre-merge checklist item).",
          "is_bot": false,
          "headline": "fix(errors): keep the EQL_V3_CONVERSION_FAILED contract on native par…",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-17T12:23:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "469cd76bc5e637876fc6f2aa80ec2bea27abdad8",
          "body": "…h operator\n\neql 3.0.1 restructures the v3 JSON domains and the match operator:\n\n- The SteVec document domain is now `public.eql_v3_json_search` (was\n  `eql_v3_json`) and its containment needle `eql_v3.query_json` (was\n  `query_jsonb`). `public.eql_v3_json` still exists but is a new\n  storage-only s\n[…]\n tests incl. postgres-v3 match/containment/\nselector against the reinstalled 3.0.1 schema) all pass. wasm-round-trip\nneeds CS_* env credentials and cannot run locally (pre-existing; CI\nprovides them).",
          "is_bot": false,
          "headline": "build(deps)!: adopt eql-bindings 3.0.1 — json_search domain + @@ matc…",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-17T12:01:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9ee584dd67fe8aa8ab6f3d86b922e049b2bbec17",
          "body": "….41.0\n\ncipherstash-client 0.41.0 is out and includes the encrypt_eql_v3 API\nthis branch needs, so the temporary source redirect to a local\ncipherstash-suite checkout is no longer required. Pin the suite crates\n(cipherstash-client / cts-common / stack-auth / stack-profile) to\n=0.41.0 and resolve everything from crates.io again.\n\nVerified against the published crates: 212 Rust tests, unit suite,\nclippy, wasm target, and the eql-v3 + encrypt-config integration\nsuites (42 tests) all pass.",
          "is_bot": false,
          "headline": "build(deps): drop the [patch.crates-io] suite redirect for released 0…",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-17T12:01:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fada52f5086d1fa3294b5cbe26a3bbcf9e61d574",
          "body": "Migrate the eqlVersion=3 QUERY emit path from `encrypt_eql` + `from_v2_query_typed`\nto the native `encrypt_eql_v3`. New `query_output_v3` projects a Store-mode\n`EqlCiphertextV3` into its query operand via `into_query_operand` (dropping `c`)\nand strict-parses it into the column's `query_<name>` / `qu\n[…]\nnch, still\nexercised by tests) are untouched. With this, the v3 storage AND query emit\npaths are both native — `from_v2` no longer runs in the protect-ffi hot path.\n\nRefs: CIP-3359 (Workstream C / C3)",
          "is_bot": false,
          "headline": "feat(protect-ffi): emit v3 query operands natively via encrypt_eql_v3",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-17T12:01:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "74c9fae356d265d3b9d9b67adfc4a6d6361684bc",
          "body": "Migrate the eqlVersion=3 STORAGE emit path from `encrypt_eql` + `from_v2_typed`\nto cipherstash-client's native `encrypt_eql_v3`. New `into_store_ciphertext_v3`\n+ `storage_output_v3` strict-parse the client's native v3 payload into the\ncolumn's DomainPayload (no from_v2). The v2 path is unchanged; th\n[…]\n3 branch (Cargo.toml).\nMerge only after cipherstash-client is released, with the patch removed and the\nversion pins bumped. See the PR description for the full sequence.\n\nRefs: CIP-3359 (Workstream C)",
          "is_bot": false,
          "headline": "feat(protect-ffi): emit v3 storage payloads natively via encrypt_eql_v3",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-17T12:01:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d21a87a2555a0b7b351cc4fc759386809217ccdc",
          "body": "docs(changelog): record unreleased changes since 0.26.0",
          "is_bot": false,
          "headline": "Merge pull request #126 from cipherstash/docs/changelog-unreleased",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-17T05:39:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "85abaa7d35992f8897c6d0a6b77ed4afe2a29a4c",
          "body": "fix(deps): resolve open Dependabot security alerts",
          "is_bot": false,
          "headline": "Merge pull request #140 from cipherstash/fix/dependabot-security-alerts",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-17T05:35:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d652e4b1cb5fcc29bd81338f4093a18ece9b1825",
          "body": "Rust (Cargo.lock):\n- reqwest 0.13.2 -> 0.13.4, moving hickory-proto/hickory-resolver to\n  0.26.1. Fixes GHSA-3v94-mw7p-v465 (NSEC3 unbounded loop, high) and\n  the O(n^2) name-compression CPU exhaustion advisory (medium).\n- rand 0.9.2 -> 0.9.3 (unsoundness with custom loggers, low).\n\nJavaScript:\n- ro\n[…]\nad/execute); postcss -> 8.5.19; picomatch\n  -> 4.0.5.\n\nNot addressed here: jsonwebtoken 9.3.1 (type confusion, medium)\nrequires jsonwebtoken 10.3.0, a major bump that must land upstream in\nstack-auth.",
          "is_bot": false,
          "headline": "fix(deps): resolve open Dependabot security alerts",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-17T05:18:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d445749842154ba1f0a7aad71aae675e40308331",
          "body": null,
          "is_bot": false,
          "headline": "Merge pull request #139 from cipherstash/fix/short-match-needle-guard",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-17T03:24:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e17830baed42f70b7b9bbe4f53db0374f9034132",
          "body": "Insert a period between the source message and the \"Use a longer search\nterm.\" hint so it no longer reads as a run-on (\"…every row Use…\"),\nmatching the {reason}. {hint} shape of the other errors in this enum.\nUpdates the JS test fixture and comment to mirror the single-line message.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_0121iSgg172VMvPuHwx3WbNK",
          "is_bot": false,
          "headline": "fix(errors): add sentence separator in ShortMatchNeedle message",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-17T03:03:18Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a9df66e0e806efff344505f5133bc9c41193cd99",
          "body": "Finishes the short-match-needle guard by upgrading to the released\ncipherstash-client 0.41.1, which provides MatchIndexer::validate_query_input.\nBumps cts-common, stack-auth and stack-profile in lockstep to 0.41.1 so the\ndependency graph resolves a single version of each (cargo otherwise splits\nstack_auth/stack_profile into two crate instances).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_0121iSgg172VMvPuHwx3WbNK",
          "is_bot": false,
          "headline": "chore(deps): bump cipherstash-client to 0.41.1",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-17T02:50:09Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8e2e28d316fde7831619fa5c630dbb7b578b2c5c",
          "body": "…_NEEDLE)\n\nA match query needle that tokenizes to zero terms (shorter than the\nngram token length, LIKE wildcards trimmed away, stop-filtered) mints\nan empty bloom filter — and the EQL match comparison (query bits ⊆ row\nbits) is vacuously true for an empty query, so the term silently\nmatches EVERY r\n[…]\nCargo dependency bump lands as a\nfollow-up commit once that releases; until then this branch builds\nagainst a local path patch.\n\nClaude-Session: https://claude.ai/code/session_01MxTTPaPP16m6br7Hoab94w",
          "is_bot": false,
          "headline": "fix: reject match query needles that tokenize to nothing (SHORT_MATCH…",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-17T02:05:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8c1da6bf6a6413bc5ce76ae57f5ff1dbe957e68d",
          "body": null,
          "is_bot": false,
          "headline": "v0.29.0",
          "author_name": "github-actions",
          "author_login": null,
          "committed_at": "2026-07-09T16:51:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ce5a8063d6113f0f3e2bb97520cb10450f9db6f6",
          "body": "…-implement-eql-v3-scalar-jsonb-query-terms-in\n\nchore(deps)!: eql-bindings 3.0.0, cipherstash-client 0.40.0",
          "is_bot": false,
          "headline": "Merge pull request #132 from cipherstash/james/cip-3423-protectjs-ffi…",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-09T16:49:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba7ec0457f35ca3e9134783856006d79826e5053",
          "body": "Reverses the v2 half of 9307db4. EQL v3 is OPE-only; EQL v2 stays on ORE.\n\ncipherstash-config 0.40.0 flipped the ste_vec default from `standard` to\n`compat`, which silently moved the unpinned `jsonSteVec` fixture onto CLLW-OPE\n`op` terms. Rather than track that default, the fixture now pins\n`mode: '\n[…]\now exercises the `compat` default that v2\ncallers get when they omit `mode`. Worth a follow-up fixture.\n\nNot executed locally: the integration suite needs Docker, Postgres and\nCipherStash credentials.",
          "is_bot": false,
          "headline": "fix(tests): pin v2 ste_vec to `standard`, restoring the `oc` assertions",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-09T16:26:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d12df48579af907be2bae5bd6f8b50049ca65a81",
          "body": "The 3.0.0 SQL snapshot inverted the ord extractor names: `ord_term` now takes\nthe OPE domain, and the ORE twin carries an `_ore` suffix. `ord_ope_term` went\nfrom nine definitions to zero.\n\n    before:  ord_term(…ord_ore)       ord_ope_term(…ord_ope)\n    after:   ord_term_ore(…ord_ore)   ord_term(…or\n[…]\nur postgres-v3 failures the preceding two commits left; the sv\nterm assertions were handled separately. Not executed locally — the\nintegration suite needs Docker, Postgres and CipherStash credentials.",
          "is_bot": false,
          "headline": "fix(tests): call the renamed v3 ord extractors in postgres-v3",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-09T16:18:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9307db467fc7ef5629e238668645dbdd2ff7b6f9",
          "body": "…W-OPE\n\nPorts the still-relevant parts of #129 (james/cip-3469-stevec-ope), which\npredates 3.0.0 and was written release-gated against [patch.crates-io]\nbranches. Its dep/Cargo/SQL/eql_v3.rs hunks are superseded by the previous\ncommit; these four are not, and the first is a defect that commit shippe\n[…]\n fix in place.\n\nVerified: npm test, integration-tests typecheck, biome lint + format. The\nintegration tests themselves still require Docker, Postgres and CipherStash\ncredentials and were not executed.",
          "is_bot": false,
          "headline": "fix(types): SteVecEntry carries `op`; migrate v2 sv assertions to CLL…",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-09T16:09:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e78985f9b790e1d8bc13ae0fa5ed5c369d00f478",
          "body": "Bump eql-bindings 3.0.0-alpha.3 -> 3.0.0 and cipherstash-client 0.39.1 ->\n0.40.0. cts-common, stack-auth and stack-profile move with the client: they\nare `=`-pinned here and the client requires ^0.40.0, so leaving them would\nput two incompatible copies of each in the tree.\n\nThe bump compiles clean b\n[…]\ns were NOT run — they need Docker, Postgres and CipherStash\ncredentials. Their SQL column types and query casts were updated against the\nregenerated snapshot but the end-to-end round-trip is unproven.",
          "is_bot": false,
          "headline": "chore(deps)!: eql-bindings 3.0.0, cipherstash-client 0.40.0",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-09T15:31:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "05cba5c33e4e67411f1577855c08ce11d0eca665",
          "body": "…lope\n\nfix: type AuthStrategy as the contract the runtime already implements",
          "is_bot": false,
          "headline": "Merge pull request #131 from cipherstash/fix/authstrategy-result-enve…",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-09T10:03:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b52b1b947a3f5b505996acc646c03c46f1032ce5",
          "body": "Both review comments were correct.\n\n`getToken` must return a Promise: `JsAuthStrategy::get_token` does\n`promise.dyn_into::<js_sys::Promise>()` and errors with\n\"strategy.getToken() did not return a Promise\" otherwise\n(crates/protect-ffi/src/wasm.rs:122-125). The comment I replaced said\n`getToken(): P\n[…]\nully-qualified `crates/protect-ffi/src/lib.rs`, so the bare\n`src/wasm.rs` read as a repo-root path — and `src/` at the root is the\nTypeScript surface, which is exactly where a reader would look first.",
          "is_bot": false,
          "headline": "docs: address review — name the Promise contract, fix the wasm.rs path",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-09T09:44:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4381bd3f376ff53b05108aa4853457d997037f43",
          "body": "Since 0.28.0 both the Neon and WASM clients accept either shape from\n`strategy.getToken()`:\n\n  - `{ token }`                          — @cipherstash/auth <= 0.40, custom strategies\n  - `{ data: { token } }` / `{ failure }` — @cipherstash/auth >= 0.41 (@byteslice/result)\n\nThe Neon path does this at c\n[…]\nesult<TokenResult, AuthFailure>` over\n@byteslice's exact `Success`/`Failure` union) now assign, and that the legacy\nbare `{ token }` strategy still does.\n\nFound from downstream: cipherstash/stack#602.",
          "is_bot": false,
          "headline": "fix: type AuthStrategy as the contract the runtime already implements",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-09T08:54:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1268c521c29f439c3a709940e0fc3418493f5317",
          "body": "…-implement-eql-v3-scalar-jsonb-query-terms-in\n\nfeat: EQL v3 scalar + JSONB query terms in encryptQuery — CIP-3423",
          "is_bot": false,
          "headline": "Merge pull request #128 from cipherstash/james/cip-3423-protectjs-ffi…",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-08T13:59:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e5274ec247adb8c916d040660e35ed0afa77411a",
          "body": "…points\n\nReview follow-up (PR #128 findings 2+3): the column lookup, index\nresolution, mode inference, and EqlOperation selection were duplicated\nverbatim across the four encrypt-query entry points (neon + wasm, single +\nbulk) — every edit had to be hand-synced twice or silently diverge.\nExtracted i\n[…]\nops carry (usize, &ColumnConfig)\ninstead of re-looking-up by a cloned Identifier after encryption (the\nre-lookup's UnknownColumn arm was dead — the same key had already\nsucceeded in the prepare loop).",
          "is_bot": false,
          "headline": "refactor(rust): one prepare_query_plaintext seam for all query entry …",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-08T13:53:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0723c5a4dacfa630da59734eb63e8197770a0d8c",
          "body": "Review follow-up (PR #128 finding 1): the storage column domains moved to\nthe public schema in alpha.3; the SteVec heading was the one rename miss —\ncopying eql_v3.json into a CREATE TABLE fails with 'type does not exist'.",
          "is_bot": false,
          "headline": "docs: the SteVec storage domain is public.json, not eql_v3.json",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-08T13:53:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49c944e6ffea173cd33b47a0f667187b8ad04c54",
          "body": "Review follow-up (PR #128): the version number is chosen at\nrelease-workflow dispatch time, so 'since protect-ffi 0.29' could silently\nlie; point at CIP-3423 + the CHANGELOG instead.",
          "is_bot": false,
          "headline": "docs: release-agnostic phrasing for scalar query support",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-08T12:48:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "30c44ca1ed167d89c54a10791cbdd6e654353e08",
          "body": "Review follow-up (PR #128): the SQL snapshot gained release provenance but\nthe TS types still synced from an unpinned sibling checkout. The published\neql-bindings crate ships its ts-rs output (bindings/**), so the sync script\nnow resolves the exact Cargo.lock-pinned copy via cargo metadata --locked \n[…]\nill overrides for development against unreleased bindings.\n\nRe-vendored output from the locked release is byte-identical to the\ncommitted types (the sibling checkout was at the eql-3.0.0-alpha.3 tag).",
          "is_bot": false,
          "headline": "chore(types): vendor TS types from the locked eql-bindings release",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-08T12:48:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1133fcaf0ad33dfdfb76d3a590473675ae7cbb29",
          "body": "Added: scalar query-term encryption (CIP-3423), selector queries,\nquery-twin TS types. Changed: eql-bindings 3.0.0-alpha.3, crate-extracted\nSQL snapshot, Store-mode cost note. Breaking: EQL_V3_QUERY_UNSUPPORTED\nremoved, EncryptedV3Query widened.",
          "is_bot": false,
          "headline": "chore(changelog): 0.29.0 notes for the EQL v3 query path",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-08T11:38:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1893b1bfa9794c059b1f815eea7c4bbfc1a0199",
          "body": "Replace the 'containment only / EQL_V3_QUERY_UNSUPPORTED' limitations with\nthe shipped behaviour: term-only scalar operands cast to\neql_v3.query_<name> (always carrying the full column-domain term set), the\neql_v3.query_jsonb containment needle (renamed from the pre-release\njsonb_query), and bare selector-hash strings for -> / ->>.",
          "is_bot": false,
          "headline": "docs: EQL v3 query support",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-08T11:38:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3bea534e7540fcd09b64f95f5bc0f34c17560dcc",
          "body": "Flip the two 'returns a typed error' cases to positive assertions: scalar\nqueries return term-only operands (exact key sets pinned per column domain\nvia v3WireKeys against the vendored *Query types — including the\nmatch-on-text_search case documenting that the operand tracks the COLUMN\ndomain, not t\n[…]\nerands, and every\noperand asserts no c before use.\n\ncommon.ts: the assertScalar/assertSteVec narrowing helpers guard for\nobject payloads first — EncryptedV3Query now includes the bare selector\nstring.",
          "is_bot": false,
          "headline": "test(integration): EQL v3 query round-trips",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-08T11:37:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fe60256409819096403c128512f1d9ed137a897b",
          "body": "eql-bindings now bundles its exact install SQL\n(eql_bindings::sql::INSTALL_SQL), so the eql:v3:build task extracts the\ncommitted snapshot from the locked release via the new print_eql_v3_sql\nexample instead of building a sibling encrypt-query-language checkout —\nthe SQL the tests install is exactly \n[…]\nefreshed to EQL 3.0.0-alpha.3 (sha256 matches the release\nmanifest): column domains move eql_v3.* -> public.*, and the term-only\nquery-operand domains (eql_v3.query_<name>, eql_v3.query_jsonb) appear.",
          "is_bot": false,
          "headline": "chore(sql): refresh the EQL v3 snapshot to 3.0.0-alpha.3 from the crate",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-08T11:37:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6a1dd1313f8494c41a033c1d2cfa469280a7a787",
          "body": "Re-vendor src/eql-v3-types/ from eql-bindings 3.0.0-alpha.3 (adds the 38\nscalar query-twin types — TextEqQuery, IntegerOrdOreQuery, …; doc comments\nfollow the public.* column-domain / eql_v3.query_* operand rename). New\nEncryptedV3ScalarQuery union; EncryptedV3Query widens to\nEncryptedV3ScalarQuery \n[…]\nQuery | Selector (selector results are the\nbare hash string — no wrapper type; it is the Selector term encoding).\nEQL_V3_QUERY_UNSUPPORTED is removed from ProtectErrorCode — nothing throws\nit anymore.",
          "is_bot": false,
          "headline": "feat(ts): v3 query operand types, errors, vendored bindings",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-08T11:37:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f7ad9d639e397dfdc8a8413123ef4c3435a28069",
          "body": "Under eqlVersion 3, encrypt_query / encrypt_query_bulk now produce:\n\n- Scalar queries: the term-only operand {v, i, <terms>} (no c) for the\n  column domain's eql_v3.query_<name> twin. The EQL v3 operators pair each\n  column domain only with its same-name query twin, whose domain CHECK\n  requires the\n[…]\nypt_bulk); wasm\nmirrors both. The V3ScalarQueryUnsupported / V3SelectorQueryUnsupported\nerror variants are deleted — those queries now succeed; the impossible\narms fail closed as invariant violations.",
          "is_bot": false,
          "headline": "feat(rust): EQL v3 scalar + selector query encryption — CIP-3423",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-08T11:37:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "768f97c88225070b4eafea3e03914eca313722ad",
          "body": "The scalar query-operand release (CIP-3432 + CIP-3442 upstream): catalog-\ngenerated QueryPayload scalar variants, from_v2_query scalar term hoisting,\nthe eql_v3.query_<name> / eql_v3.query_jsonb operand naming (column domains\nmove to public.*), and the bundled install SQL (eql_bindings::sql). No\nbehaviour change in this commit — all existing tests pass unmodified,\nincluding the v2/v3 routing canary (cipherstash-client stays at 0.39.1).",
          "is_bot": false,
          "headline": "build(deps): eql-bindings 3.0.0-alpha.3",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-08T11:37:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc58f7ddc5f42e8a3e9f6c77bce08ed9dc085c8d",
          "body": null,
          "is_bot": false,
          "headline": "v0.28.0",
          "author_name": "github-actions",
          "author_login": null,
          "committed_at": "2026-07-08T02:49:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70bd8ff60f63ed3347c68990d33648261e59dc5a",
          "body": "feat: EQL v3 support (dual-format encrypt, version-agnostic decrypt, BigInt plaintexts)",
          "is_bot": false,
          "headline": "Merge pull request #127 from cipherstash/eql_v3",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-08T02:48:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f998f7c04b86a0db6a03516b3da87232510b209b",
          "body": "- postgres-v3.test.ts: the `describe` callback was `async` with top-level\n  `await newClient()` / `await pg.connect()`. Vitest does not await describe\n  callbacks, so collection could finish before those resolved, leaving the\n  nested hooks/tests unregistered (CodeRabbit, Major). Make the callback\n \n[…]\nrialize\n  as `JsPlaintext::BigInt`, not the catch-all `JsonB` (Toby). Also pins the\n  i64 extremes and the documented non-i64 fall-through to JsonB.\n\nVerified: cargo test (193), cargo fmt, tsc, biome.",
          "is_bot": false,
          "headline": "test+fix: address remaining PR review threads (CodeRabbit + Toby)",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-08T02:38:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9590220a8efa199c698ee77934f9c19364075206",
          "body": "- bigintWire: the `opts?.` optional-chaining branch in withEncodedPlaintext/\n  withEncodedPlaintexts — a null/undefined element must fall through to\n  native validation rather than throw a raw TypeError, including the decisive\n  case where a sibling element carries a bigint (which triggers the map p\n[…]\n- eql_v3::query_output: the EqlOutput::Store(EqlCiphertext::Encrypted(_)) =>\n  InvariantViolation arm — the one match arm with no test.\n\nVerified: cargo test (189), vitest (54), tsc, biome, cargo fmt.",
          "is_bot": false,
          "headline": "test: cover the gaps flagged in the PR test-coverage review",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-08T02:32:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a1bb91ae6f3bbc7517397aa2c55034b106b20fd1",
          "body": "Addresses the code-review findings on the merged auth error-mapping code:\n\n1. prop_string/prop_object (Neon) now read through cx.try_catch, so a\n   throwing getter on failure.type/error/message clears its pending N-API\n   exception instead of leaving it dangling when neon_failure_to_auth_error\n   ru\n[…]\ntrategy supplied no error.message, so an\n   unknown code (e.g. RATE_LIMITED) is never surfaced as a blank error. Used\n   by both seams.\n\nVerified: cargo check (native + wasm32), cargo test, cargo fmt.",
          "is_bot": false,
          "headline": "fix(auth): harden failure-envelope reconstruction on both seams",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-08T02:31:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e1fafc950edb933396683363cdd59884d02d4702",
          "body": "Bring the EQL v3 branch up to date with main (auth 0.41 support,\ncipherstash-client 0.39.1, changelog tooling, CI hardening).\n\nConflict resolutions:\n- Cargo.toml / Cargo.lock: take main's 0.39.1 cipherstash-client family\n  and package metadata (MIT license, description, repository); keep\n  eql-bindi\n[…]\n- wasm-round-trip.test.ts: take main's clarifying prerequisite comment.\n\nVerified: cargo check (native + wasm32), cargo test (188), cargo fmt,\ntsc typecheck, vitest (50), biome lint + format all pass.",
          "is_bot": false,
          "headline": "Merge branch 'main' into eql_v3",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-08T01:53:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4e12f1acfbf30133dd3e491a6921655a02f16e46",
          "body": "- Changed: cipherstash-client dependency group bumped to 0.38.0; license\n  corrected to MIT across manifests.\n- Fixed: access-key token refresh (CIP-3233) via the 0.38.0 bump.\n- Security: release/build workflow version input allowlist-gated against\n  template injection.",
          "is_bot": false,
          "headline": "docs(changelog): record unreleased changes since 0.26.0",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-07T15:08:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "faf492d59b768204250497e01a8b55e489b8c3a6",
          "body": "feat: support @cipherstash/auth 0.41 Result-shaped getToken (via stack-auth 0.39.1 from_error_code)",
          "is_bot": false,
          "headline": "Merge pull request #125 from cipherstash/fix/auth-0.41-result-gettoken",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-07T14:53:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c37f1a1032d19460315e38001be91c8ed5b57d16",
          "body": "Address Copilot #4 on #125 — no explicit tests for the `{ data }` / `{ failure }`\ngetToken shapes. Adds two JsBacked-strategy cases:\n\n- success envelope: wrap the real token as `{ data: { token } }`; the client\n  must unwrap `data.token` and complete an encrypt→decrypt round-trip.\n- failure envelope: return `{ failure: { type: \"NOT_AUTHENTICATED\", error } }`;\n  newClient (load_keyset) must reject with the reconstructed typed auth error\n  rather than a token-parse error.",
          "is_bot": false,
          "headline": "test: cover the 0.41 Result success + failure envelopes (js-strategy)",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-07T07:49:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "359707ab4bec172f302950485696be6e30959838",
          "body": "Address Copilot review on #125 (WASM auth seam):\n- Validate the resolved `getToken()` value is an object before `Reflect::get`.\n  A non-object resolution (e.g. a bare string) now fails as \"did not return an\n  object\" — matching the Node seam's `downcast::<JsObject>` guard — instead of\n  the misleadi\n[…]\nropagate `Reflect::get` errors on the `failure`/`data` fields as\n  `AuthError::Server` rather than `unwrap_or(UNDEFINED)`, so a throwing getter\n  (Proxy trap) isn't silently masked as an absent field.",
          "is_bot": false,
          "headline": "fix(wasm): guard non-object getToken result; propagate Reflect errors",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-07T07:31:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6bfcb9e1a1d905d9c7d72b2caf8523d0af05ae40",
          "body": "…_code\n\nNow that stack-auth 0.39.1 ships `AuthError::from_error_code`, replace the\nhand-rolled failure-to-string extraction on both FFI seams with a faithful\nreconstruction, so a JS strategy's `{ failure }` crosses back into Rust as the\nreal typed `AuthError` (preserving its code) instead of being f\n[…]\nh the detail kept in the\n  message). Malformed-shape errors stay `Server` as before.\n\ncargo check (native + wasm32), clippy -D warnings, cargo test --lib (71), and\nthe wasm-pack bundle build all pass.",
          "is_bot": false,
          "headline": "feat: reconstruct auth failures via stack_auth::AuthError::from_error…",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-07T07:12:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3397baaa1c31ee0a967360b1dd8b16f12adf82cf",
          "body": "The first cut required auth 0.41's `{ data: { token } }` envelope, which broke\nprotect-ffi's own js-strategy / wasm-round-trip tests — they (and the\ndocumented `getToken(): Promise<{ token }>` contract, and custom strategies)\nuse the bare top-level `token` shape.\n\nAccept both on each seam: read `res\n[…]\ns an object (auth >= 0.41), else read the\nbare result object directly (auth <= 0.40 / custom). No longer a breaking change.\n\ncargo clippy -D warnings, cargo test --lib (71), and wasm32 check all pass.",
          "is_bot": false,
          "headline": "fix: accept both bare and Result-shaped getToken (backward compatible)",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-07T04:36:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dceaea8df8bf3ed7cb7a85dc7150036ae65217a7",
          "body": "`@cipherstash/auth` 0.41 changed the JS strategy's `getToken()` to return a\n`@byteslice/result` `Result` — `{ data: { token, … } }` on success,\n`{ failure: { type, error, … } }` on error — instead of a bare `{ token }`.\nBoth FFI seams read the token from the top level, so a 0.41 strategy failed\nwith\n[…]\n: cargo check (native + wasm32), clippy -D warnings, 71 unit tests,\nand the wasm-pack bundle build all pass. End-to-end encrypt/decrypt is\nexercised by the @cipherstash/stack WASM e2e once this ships.",
          "is_bot": false,
          "headline": "fix: consume @cipherstash/auth 0.41 Result-shaped getToken",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-07T04:22:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7ace44b2057ce32e3b4af423cab44f86b8d2d890",
          "body": "…build-and-zig-in-protectjs-ffi-misetoml\n\nci: pin zig and cargo-zigbuild in mise.toml",
          "is_bot": false,
          "headline": "Merge pull request #119 from cipherstash/james/cip-3405-pin-cargo-zig…",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-06T13:35:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3482f4be40deca254db673ef87766341319724e3",
          "body": "feat!: JS BigInt plaintext support (i64-bounded) — CIP-3291",
          "is_bot": false,
          "headline": "Merge pull request #120 from cipherstash/feat/js-bigint-plaintext",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-06T06:23:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "053fc4bdfc9c57732e17ee369e189d3eac1f4138",
          "body": "The new JSON.stringify-parity test exposed a pre-existing wasm decrypt\nbug: serde-wasm-bindgen's default serializer emits Rust maps as JS Maps\nand nulls as undefined, so decrypting a cast_as 'json' column on wasm\nreturned Map { \"score\" => undefined } where Neon returns the plain\nobject { score: null\n[…]\ncheck --target wasm32-unknown-unknown clean. The\nfailing CI test (wasm-round-trip.test.ts 'json plaintexts follow\nJSON.stringify semantics') asserts exactly this shape and runs\ncredential-gated in CI.",
          "is_bot": false,
          "headline": "fix(wasm): decrypt json documents to plain objects, not JS Maps",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-06T06:12:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b3ab5d55458e8c1c1d10bdfd1146b0ba37fb2b1e",
          "body": "Review fixes:\n\n- wasm bounds error is now a real RangeError (js_sys::RangeError), the\n  class the README/JSDoc promise and the Neon boundary already throws.\n  The wasm test now asserts the class, and both directions (above-max\n  AND below-min, covering the sign detection in bigint_bounds_error).\n- w\n[…]\nrnings), cargo test -p protect-ffi (188 passed), root + integration\ntsc clean, biome clean on changed files (index.cts import-order\ncomplaint pre-exists). Credential-gated integration tests run in CI.",
          "is_bot": false,
          "headline": "fix,test,docs: address PR #120 review feedback",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-06T06:12:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "486e1d11ec6bf54cfa25b0c7c411dab96ce6daeb",
          "body": "…rity\n\nA bigint nested inside a cast_as: 'json' plaintext diverged across\nplatforms: Neon rejects it (neon's Json extractor runs JSON.stringify,\nwhich throws a TypeError on any BigInt), but serde_wasm_bindgen walked\nthe live object and folded the bigint into the document as an i64 —\nwhich then decry\n[…]\new\nwarnings), cargo test -p protect-ffi (188 passed), tsc --noEmit clean.\nThe new integration tests require credentials and run in CI.\n\nAddresses review finding 1 (nested-bigint Neon/wasm divergence).",
          "is_bot": false,
          "headline": "fix(wasm): canonicalize plaintexts through JSON.stringify for Neon pa…",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-06T06:12:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "46a5fa5205b9a054112edb285aa2db456350db64",
          "body": "Adds a README section covering the i64 bounds, the RangeError boundary\nbehaviour, the number-input guard, the JSON exclusion, and a prominent\nbreaking-change callout (bigint columns now decrypt to JS bigint).\nUpdates the JsPlaintext type-detection and conversion tables in the\nJSONB API reference (which still described integer coercion as\ntruncating — it errors). Also ignores dist/ in biome so npm test stays\ngreen after a local npm run build:wasm.\n\nCIP-3291",
          "is_bot": false,
          "headline": "docs: document BigInt plaintext support and the breaking decrypt change",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-06T06:12:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "46606f936859a42309a45c1f29176c2c6a0b3aa1",
          "body": "- scalar/scalar-bulk: bigint inputs round-trip exactly (incl. i64::MIN /\n  i64::MAX); +/-2^63-adjacent values are rejected at the boundary with a\n  RangeError naming the bounds and direction; existing expectations\n  updated for the breaking decrypt change (the bigint 'score' column now\n  decrypts to\n[…]\n terms.\n- wasm-round-trip: bigint round-trips through the wasm boundary as a\n  real JS bigint and out-of-range values are rejected pre-serde\n  (creds-gated via the existing describe.skipIf).\n\nCIP-3291",
          "is_bot": false,
          "headline": "test: cover bigint round-trips, bounds rejection, and v3 bigint domains",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-06T06:12:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "752de6a1d1e28efd2b6b752e5772dcdcdb2c7491",
          "body": "cast_as 'bigint' columns now accept JS bigint plaintexts (exact,\nbounds-checked against the full i64 range) alongside numbers, and ALWAYS\ndecrypt to a JS bigint.\n\nBoundary mechanics:\n\n- Neon extracts every options object via neon's Json extractor\n  (JSON.stringify -> serde_json), which cannot carry \n[…]\ner a number) for cast_as 'bigint' columns, including\nvalues that fit in a JS number. Previous releases returned a number,\nsilently losing precision beyond Number.MAX_SAFE_INTEGER (2^53 - 1).\n\nCIP-3291",
          "is_bot": false,
          "headline": "feat!: accept and return JS BigInt plaintexts (i64-bounded)",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-06T06:12:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e8abfcc97b92593010e96e87d1d19fa74fea8fa9",
          "body": "ci: harden version-input handling across the release workflows",
          "is_bot": false,
          "headline": "Merge pull request #124 from cipherstash/ci/gate-binaries-version-input",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-06T05:23:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c39d929dbf8095d37bd0172ae5d093f2cd818594",
          "body": null,
          "is_bot": false,
          "headline": "v0.27.1-0",
          "author_name": "github-actions",
          "author_login": null,
          "committed_at": "2026-07-06T05:09:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cf5226141ab6573d56e4c13a5a1dadaee736aaf9",
          "body": "The version-input allowlist accepts a pre-release suffix (`-*`) but not\nSemVer build metadata (`+...`). Reword the comment on all three copies of\nthe guard to say 'pre-release suffix' so it no longer implies stricter/\nbroader validation than is implemented. Addresses Copilot review on #124.",
          "is_bot": false,
          "headline": "ci: correct allowlist comment to match patterns (drop 'build metadata')",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-06T05:01:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "76a6a5a4c33328ce5bee0f123ef42815c817b8ac",
          "body": "The real-release version bump interpolated the resolved version\n(single-quoted) directly into the `run:` body, so a `custom` version\nstring containing a single quote could break out of the quotes — a\ntemplate-injection vector on the primary release path (only the\nnon-empty check gates `custom`, neve\n[…]\nbind the\nvalue to `VERSION_INPUT`, validate it against the bump-keyword/semver\nallowlist, and pass the quoted `\"$VERSION_INPUT\"` to `npm version`.\nCross-reference all three steps so they stay in sync.",
          "is_bot": false,
          "headline": "ci: harden release.yml Tag Release version input",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-06T01:05:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9d8a74a3936cbdb11d2df77dcb0e83418ce1a277",
          "body": "Closes #122.\n\nThe `binaries` matrix job's \"Update Version\" step interpolated\n`${{ inputs.version }}` directly into its `run:` block, unlike the `wasm`\njob which binds the input to an env var and validates it against an\nallowlist first. Port that guard verbatim so the two steps are identical:\n\n- bind\n[…]\nERSION_INPUT\"`.\n\nCross-referenced both steps with a \"keep in sync\" comment. This step only\nruns on dry-runs (release.yml sets update-version from the dryrun flag),\nbut the guard should hold there too.",
          "is_bot": false,
          "headline": "ci: gate the binaries job's version input (match the wasm job)",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-06T01:03:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "15d8f04bf69f797a3a1d3dd05118480e68bd5b6b",
          "body": "…otes\n\ndocs: add CHANGELOG, automate release notes, refresh README",
          "is_bot": false,
          "headline": "Merge pull request #121 from cipherstash/docs/changelog-and-release-n…",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-06T00:57:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "32ec50ae95232bdd61119153a36fbfb067e78e98",
          "body": "Addresses James's non-blocking review notes on #121:\n\n- changelog-extract.mjs: strip the trailing compare-link block (anchored to\n  EOF) before extracting, instead of treating any column-0 `[x]:` line as the\n  section boundary. A reference-style Markdown link inside a section body is no\n  longer mis\n[…]\nt that `Breaking` is an intentional addition to the\n  standard Keep a Changelog categories, so the \"based on Keep a Changelog\"\n  claim and the `### Breaking` heading no longer read as a contradiction.",
          "is_bot": false,
          "headline": "changelog: harden extract link-block detection; note Breaking category",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-06T00:49:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "262a358e16979b045e3034696fb91c5cdb652938",
          "body": "- changelog-extract.mjs: wrap the CHANGELOG.md read in try/catch so a\n  missing/unreadable file (or wrong cwd) exits 1 with a concise message\n  instead of a raw stack trace — the workflow only needs the non-zero exit\n  to fall back. Matches changelog-release.mjs's defensive read.\n- build.yml: fail the \"Extract release notes\" step fast when inputs.tag is\n  empty while github-release is true, rather than emitting an empty version\n  and a broken `blob//CHANGELOG.md` fallback link.",
          "is_bot": false,
          "headline": "docs+ci: address Copilot review on #121",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-06T00:41:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "72db5c548a5afb955e10d6f13d82b237321b0d49",
          "body": "Adds a CHANGELOG.md (the repo had none), automates changelog/release-notes\nupkeep, and fixes stale README docs. Supersedes #97, brought current to main.\n\nCHANGELOG\n- New CHANGELOG.md in Keep a Changelog format, seeded through 0.26.0\n  (0.22.0-0.25.0 backfilled from git history).\n- An [Unreleased] se\n[…]\ny, missing-version fallback).\n\nREADME\n- Local setup now uses `npx stash auth login` instead of the stale\n  brew-installed `stash setup`.\n- Replace the \"no changelog automation\" note with the new flow.",
          "is_bot": false,
          "headline": "docs: add CHANGELOG, automate release notes, refresh README",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-05T23:48:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "15a80922648fa3d8ec915cef3a4903e2450c0ad0",
          "body": "cargo-zigbuild 0.23.0 bumped cargo-options from 0.7.6 to 0.8.1, which\ndropped the env = \"CARGO_BUILD_TARGET\" binding on --target. The\nglibc-suffixed target (x86_64-unknown-linux-gnu.2.28) supplied via the\nenvironment now passes through to cargo unstripped, and rustc rejects\nit as an unknown target specification.\n\nPassing the suffixed target as an explicit --target flag works on both\nold and new cargo-zigbuild versions.\n\n(cherry picked from commit 1296016bd26bd4c7f19d67b7617104af84617997)",
          "is_bot": false,
          "headline": "ci: pass glibc-versioned target to cargo-zigbuild as a flag",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-05T03:30:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "62b10edceca38eba12ac4d1f6b1480333fa37d12",
          "body": "'latest' is how cargo-zigbuild 0.23.0 silently broke the Release\nworkflow (its cargo-options bump dropped the CARGO_BUILD_TARGET env\nbinding — CIP-3399). Pin both tools to the versions proven by the\nsuccessful v0.27.0 release run so toolchain upgrades become deliberate\nPRs instead of ambient breakage at release time.",
          "is_bot": false,
          "headline": "ci: pin zig and cargo-zigbuild in mise.toml (CIP-3405)",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-05T02:53:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d9c15579710b2ba156c660c84e50c7aa6741f73",
          "body": "feat(eql-v3): real-ciphertext _ord_ope coverage on cipherstash-client 0.38.1",
          "is_bot": false,
          "headline": "Merge pull request #115 from cipherstash/feat/cip-3348-ope-round-trip",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-05T02:52:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca379eb5fb04e5bf57e73f889c8d120f26739ee8",
          "body": null,
          "is_bot": false,
          "headline": "v0.27.0",
          "author_name": "github-actions",
          "author_login": null,
          "committed_at": "2026-07-04T14:27:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a42784126c29d29fdd3ff52a7a7c978262f94dda",
          "body": null,
          "is_bot": false,
          "headline": "v0.26.1-0",
          "author_name": "github-actions",
          "author_login": null,
          "committed_at": "2026-07-04T14:05:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "471bbac4d719551b23bf065582311c6d659994da",
          "body": "ci: pass glibc-versioned target to cargo-zigbuild as a flag",
          "is_bot": false,
          "headline": "Merge pull request #118 from cipherstash/fix/zigbuild-glibc-target-flag",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-04T13:43:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1296016bd26bd4c7f19d67b7617104af84617997",
          "body": "cargo-zigbuild 0.23.0 bumped cargo-options from 0.7.6 to 0.8.1, which\ndropped the env = \"CARGO_BUILD_TARGET\" binding on --target. The\nglibc-suffixed target (x86_64-unknown-linux-gnu.2.28) supplied via the\nenvironment now passes through to cargo unstripped, and rustc rejects\nit as an unknown target specification.\n\nPassing the suffixed target as an explicit --target flag works on both\nold and new cargo-zigbuild versions.",
          "is_bot": false,
          "headline": "ci: pass glibc-versioned target to cargo-zigbuild as a flag",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-04T13:38:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4b903952f13c7bcf48d8a7a0252ef3e352d0a5e",
          "body": "docs+meta: resolve license contradiction (MIT), fix rename fallout and stale env docs",
          "is_bot": false,
          "headline": "Merge pull request #116 from cipherstash/docs/meta-refresh",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-04T10:11:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a5a211dd63e5700c72eb32076070a19377ab5db5",
          "body": "The hand-drawn box diagrams were misaligned and fragile to edit (the\nrename in this PR broke one of them). Mermaid renders natively on\nGitHub and survives label changes. Content unchanged — the page gets\na fuller revision when EQL v3 lands.",
          "is_bot": false,
          "headline": "docs(jsonb): replace ASCII diagrams with Mermaid",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-04T10:04:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4fa02f7556a494d84ff335207537cfe859c38d00",
          "body": "- README: newClient() credentials can come from the profile store\n  (npx stash auth login), env vars, or an explicit strategy — not\n  env-only\n- platforms/*: license ISC → MIT and fill author (the per-platform\n  packages publish to npm too, so the MIT decision applies to them)\n- package-lock.json: r\n[…]\nhe two remaining ISC entries are\n  third-party deps that are genuinely ISC)\n- jsonb-integration: re-centre the architecture diagram label\n- jsonb-troubleshooting: code-format + link @cipherstash/stack",
          "is_bot": false,
          "headline": "docs+meta: address review feedback",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-04T09:57:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d2cc5108ae5057e5cd257d9901cdc15954e1dc86",
          "body": "…d stale env docs\n\n- License: LICENSE.md (MIT) vs package.json/Cargo.toml (ISC) — MIT wins\n  per maintainer decision; both manifests now say MIT. Year → 2024-2026.\n- package.json: fill empty description/author (humans@cipherstash.com)\n- lib.rs: invariant-violation error told users to file issues at \n[…]\nect-ffi → protectjs-ffi); add docs/ and scripts/ to the layout\n- docs/jsonb-*: rebrand Protect.js references to @cipherstash/stack\n- wasm-round-trip test docs: CS_REGION → CS_WORKSPACE_CRN (post-0.26)",
          "is_bot": false,
          "headline": "docs+meta: resolve license contradiction (MIT), fix rename fallout an…",
          "author_name": "Dan Draper",
          "author_login": "coderdan",
          "committed_at": "2026-07-04T09:44:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "13a2a77374726dc730d98722ddd242424a524ffa",
          "body": "CIP-3348: with cipherstash-client 0.38.1 emitting the scalar `op`\n(CLLW-OPE) term, an ope-indexed column can be exercised end-to-end.\n\n- postgres-v3: replace the skipped _ord_ope stub with a real round-trip\n  — encryptBulk out-of-order plaintexts into an eql_v3.integer_ord_ope\n  column, assert each \n[…]\nd_ope domain with exactly v, i, c, op.\n- README: the ope -> _ord_ope caveat about the unemitted op term is\n  stale; the domains are now producible.\n\nRefs: https://linear.app/cipherstash/issue/CIP-3348",
          "is_bot": false,
          "headline": "test(eql-v3): real-ciphertext _ord_ope coverage on client 0.38.1",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T13:52:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9b8f52fa5b9cb53f73d930dc308993eebc8c8858",
          "body": "cipherstash-client 0.38.1 adds the scalar ope_cllw field to\nEncryptedPayload (serialized as the `op` wire key) and maps\nIndexTerm::OpeFixed/OpeVariable onto it — 0.38.0 dropped those terms at\nencrypt time, so no _ord_ope payload could be produced. Add\n`ope_cllw: None` to the test payload builders that construct\nEncryptedPayload literals.\n\nPart of CIP-3348.",
          "is_bot": false,
          "headline": "chore(deps): bump cipherstash-client and stack crates to 0.38.1",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T13:52:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "57ce453c9765838a85f6e8fbebca2c731bc5c5a7",
          "body": "feat: dual-format EQL v2/v3 support (eqlVersion option)",
          "is_bot": false,
          "headline": "Merge pull request #104 from cipherstash/feat/eql-v3-dual-format",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T13:22:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f1cd4de47d6b654241bc8f210a403405fb4ecc66",
          "body": "PR #104 retargets from main to a new eql_v3 staging branch (mirroring\nthe encrypt-query-language branch model); the pull_request branches\nfilter matches the BASE branch, so without this the retargeted PR\nwould silently stop running CI. push also gains eql_v3 so merges into\nthe staging branch re-run the suite.",
          "is_bot": false,
          "headline": "ci: run the Test workflow for the eql_v3 staging branch",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T13:16:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "298e466800defffcf21d488610857c28781627fa",
          "body": "No-op for protect-ffi (the release only removes an eql-bindings build\nwarning): 159 tests pass, wire behavior and warning counts unchanged\non both targets.",
          "is_bot": false,
          "headline": "chore(deps): bump eql-bindings to 0.4.2",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T13:16:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ae3b36a9b4eceefaa3542d7d9075c4a691950cb",
          "body": "Rebuilt via the guarded eql:v3:build from encrypt-query-language@eql_v3\n(7682b72f, eql-bindings 0.4.1): the schema now carries the SQL-standard\nfamily names (int4_ord_ore -> integer_ord_ore, 263 occurrences), so the\npostgres-v3 DDL and comments drop the deliberately-stale spelling.\nVerified: installs into the integration postgres with zero errors and\neql_v3.integer_ord_ore resolves. Vendored TS types re-synced against\nthe freshly-run 0.4.1 generator — byte-identical, no diff.",
          "is_bot": false,
          "headline": "test(integration): refresh the v3 SQL snapshot past the domain renames",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T13:09:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "25dbfef66b30a5ed7d4f2b5d7a2b0c0057165ac0",
          "body": "… 0.4.1)\n\nCompletes the typed-conversion adoption (storage: DomainPayload in\n6de5d65): the query path now uses from_v2_query_typed and carries the\ntyped SteVec containment needle; single-term scalar query variants\n(Ore/Ope/Bloom/Hm values) join the upstream enum when the v3\nscalar-query wire shape ships. Wire output value-identical, pinned by\ntest (keys in schema wire order — meaningless for jsonb).",
          "is_bot": false,
          "headline": "refactor(eql-v3): carry QueryPayload in QueryOutput::V3 (eql-bindings…",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T13:09:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aaf7dc7a62a29ccb3cdae5ecfcbf0606c1700896",
          "body": "…standard family names)\n\neql-bindings 0.3.0 (via encrypt-query-language PR #344) renamed the scalar\ndomain families from PG-internal names to SQL-standard catalog names:\nint2 -> smallint, int4 -> integer, int8 -> bigint, float4 -> real,\nfloat8 -> double, bool -> boolean (text/numeric/date/timestamp/\n[…]\n_ore spelling (the snapshot predates the SQL rename);\n  a comment marks it for the next eql:v3:build refresh.\n- README domain-mapping table and the index.cts eqlVersion doc use the new\n  family names.",
          "is_bot": false,
          "headline": "chore(types): re-vendor EQL v3 TS types from eql-bindings 0.3.0 (SQL-…",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T12:15:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "47a765a23ed309a777493a258acecad99b0cb8a9",
          "body": "The v3 test configs asserted the resulting eql_v3 domain only in\ncomments (e.g. \"// eql_v3.text_eq (hm)\"), so drift in the domain\nselection logic could invalidate the comments while the per-term spot\nchecks partially passed. Replace the comment-asserted mapping with two\nverified legs:\n\n- Compile tim\n[…]\necks.\n\npostgres-v3 keeps the live domain CHECK on INSERT (genuine e2e for the\nrequired keys) and adds the exact-set assertions before INSERT, since\na CHECK will not reject an over-provisioned payload.",
          "is_bot": false,
          "headline": "test(integration): make the config -> eql_v3 domain mapping load-bearing",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T11:59:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6de5d65d38e9807819cde1e392734da677bcd0d6",
          "body": "…dings 0.3.0)\n\nCloses the loop on the PR #104 review thread: eql-bindings 0.3.0 ships the\ncatalog-generated DomainPayload enum and from_v2_typed (implemented in\nencrypt-query-language #349), so EncryptedOutput::V3 now carries the typed\npayload instead of a shape-erased serde_json::Value, and storage\n[…]\nad members).\n- Decrypt paths still parse incoming JSON through SteVecDocument /\n  is_v3_payload: DomainPayload has no Deserialize by design (inference from\n  bytes is unsound), so they are unaffected.",
          "is_bot": false,
          "headline": "refactor(eql-v3): carry DomainPayload in EncryptedOutput::V3 (eql-bin…",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T11:59:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7e3e17dae8a042e9cf5123065b39fdd448ba2901",
          "body": "…ncating\n\nThe coercion test pinned the old silent-truncation behavior that\nd03d6d0 deliberately removed (encrypt Errs on any JS number that would\nbe truncated). It only runs with live ZeroKMS creds, so the fold-in's\nlocal gates couldn't catch it — CI on the folded head did. Assert the\nfractional-component rejection instead.",
          "is_bot": false,
          "headline": "test(integration): float-as-integer encrypt now errors instead of tru…",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T11:16:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bbc3404dcb1e9558bc679d0e605c5545be244d56",
          "body": "… configured term\n\nCommit c293d38 made json and non-text term-dropping combinations error,\nbut text combinations still dropped terms silently: {unique, match}\nselected text_match (bf only) and permanently stripped the configured hm\nterm from stored rows; {unique, ope, match} selected text_ord_ope an\n[…]\nctual invariant\n(equality: hm|ob|op, ordering: ob|op, match: bf only, ste_vec: sv only)\nand keeps future selection arms fail-closed by default.\n\nAddresses review comment 3518412508 on #104 (CIP-3342).",
          "is_bot": false,
          "headline": "fix(eql-v3): fail closed on text index combinations that would drop a…",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T11:07:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2698082c0b6984312586ed6cee228dea3cfebf90",
          "body": "…qlVersion enum\n\nCode review on #104 asked whether the eql version could be a const\ngeneric. It can't fit cleanly: the version arrives as a runtime value\nfrom JavaScript (newClient({ eqlVersion })), so Client<const V: u8>\nwould still need runtime dispatch at the FFI boundary, and the\n\nThis lands the\n[…]\n comparisons that silently treat unknown values as v2.\n\nNo behavior change; wire output is identical.\n\nRefs: https://github.com/cipherstash/protectjs-ffi/pull/104#discussion_r3518392870\nRefs: CIP-3342",
          "is_bot": false,
          "headline": "refactor(eql-v3): replace the raw u8 eql version with a #[repr(u8)] E…",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T11:07:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0f593a78bff6b5ca0e02fcb0e50eb979d41a95e8",
          "body": "The eql_v3 helpers were imported twice: once in lib.rs behind a\ncfg(not(target_arch = \"wasm32\")) gate, and again in wasm.rs via\ncrate::eql_v3 — two separately-maintained copies of the same seven-item\nlist, with a comment explaining the split.\n\nReplace the cfg-gated import with an unconditional pub(c\n[…]\nets now\nresolve the eql_v3 API through the single re-export; no behavior change.\n\nAddresses review comment:\nhttps://github.com/cipherstash/protectjs-ffi/pull/104#discussion_r3518392835\n\nRefs: CIP-3342",
          "is_bot": false,
          "headline": "refactor(imports): share the eql_v3 import between Neon and wasm targets",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T11:06:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d03d6d0e9237c907b8029d1de66bf27ed956a09c",
          "body": "The Number arms for BigInt/Int/SmallInt/BigUInt in to_plaintext_with_type\nused Rust's saturating `as` cast, so encrypting 5_000_000_000 into a\ncast_as:'int' column silently stored 2147483647, NaN became 0, and\nfractional values (42.5) silently dropped their fraction. The hm/ob index\nterms were compu\n[…]\nfinite values via\nDecimal::try_from (now verified by tests). Error messages name the\ncolumn type but deliberately do not echo the value, matching the file's\nexisting no-plaintext-in-errors convention.",
          "is_bot": false,
          "headline": "fix(encrypt): error instead of truncating JS numbers for integer casts",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T11:06:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "27010ff0ab52255dd938cda77809b0696cbc6cae",
          "body": "…queryable\n\nThe Indexes config type gained ope?: OpeIndexOpts, and the native side\nalready accepts \"ope\" in find_index_for_type on the v2 query path, but\nIndexTypeName still omitted it — so encryptQuery/encryptQueryBulk could\nnot target an ope index without an unsafe cast.\n\nAdds 'ope' to the union, \n[…]\nc with keyof\nIndexes (enforced via a new tsconfig.test.json pass in test:typecheck,\nsince test files are excluded from the emitting tsc build).\n\nAddresses review comment 3518412523 on #104 (CIP-3342).",
          "is_bot": false,
          "headline": "fix(types): add 'ope' to IndexTypeName so configured ope indexes are …",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T11:06:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d64d777996b4335aeb88c0242ef2615effa8fa5a",
          "body": "The Rust InvalidCiphertext variant (\"Invalid EQL ciphertext: ...\")\nsurfaced as code UNKNOWN and was rethrown bare instead of being wrapped\nin ProtectError, so callers switching on ProtectErrorCode could not\ndistinguish corrupted ciphertext from arbitrary failure.\n\n- Add INVALID_CIPHERTEXT to Protect\n[…]\nn\n- Add unit tests for inferErrorCode/normalizeError\n- Sync the ProtectErrorCode enumeration in docs/jsonb-api-reference.md\n\nAddresses review comment on PR #104 (discussion r3518412517).\nRef: CIP-3342",
          "is_bot": false,
          "headline": "fix(errors): map InvalidCiphertext to a stable INVALID_CIPHERTEXT code",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T11:06:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "90fff9df63c15b0fb53b5658aa8fbe37dc69948d",
          "body": "`mise run setup` previously ran eql:v3:build unconditionally, building\nfrom whatever branch the sibling ../../encrypt-query-language checkout\nhappened to be on. If that checkout was on `main`, setup silently\noverwrote the committed sql/cipherstash-encrypt-v3.sql snapshot with the\nv2 installer, break\n[…]\nched. A missing sibling checkout is now an\n  error (it was a warning when setup depended on it).\n\nAddresses review comment:\nhttps://github.com/cipherstash/protectjs-ffi/pull/104#discussion_r3518412513",
          "is_bot": false,
          "headline": "fix(integration): make the v3 snapshot rebuild opt-in and self-verifying",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T11:06:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e2f9c87dde1fd58eaa08959cc9620ae8a1b25054",
          "body": "…nion\n\nReplace the unknown parameter on assertSteVec / assertScalar with the\nprecise union of everything encrypt / encryptBulk (EncryptedPayload) and\nencryptQuery / encryptQueryBulk (EncryptedQuery | EncryptedV3Query) can\nreturn, narrowing via the in operator instead of a cast.\n\nAddresses review comment:\nhttps://github.com/cipherstash/protectjs-ffi/pull/104#discussion_r3518392901\n\nRefs: CIP-3342",
          "is_bot": false,
          "headline": "test(integration): type the common helper with the EncryptedPayload u…",
          "author_name": "James Sadler",
          "author_login": "freshtonic",
          "committed_at": "2026-07-03T11:06:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 83,
      "commits_last_year": 406,
      "latest_release_at": "2026-07-20T09:19:00Z",
      "latest_release_tag": "v0.30.0",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 31,
      "days_since_latest_release": 6,
      "mean_days_between_releases": 6.6
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 50,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@cipherstash/protect-ffi",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@cipherstash/protect-ffi",
          "is_deprecated": false,
          "latest_version": "0.30.0",
          "repository_url": "https://github.com/cipherstash/protectjs-ffi",
          "versions_count": 46,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 6,
          "monthly_downloads": 10036,
          "first_published_at": "2025-02-17T18:29:59.197000Z",
          "latest_published_at": "2026-07-20T09:30:18.787000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        },
        {
          "name": "integration-tests",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "fs",
            "isomorphic",
            "layers"
          ],
          "ecosystem": "npm",
          "matches_repo": false,
          "registry_url": "https://www.npmjs.com/package/integration-tests",
          "is_deprecated": false,
          "latest_version": "0.0.1",
          "repository_url": "https://github.com/doug-wade/iso-fs",
          "versions_count": 1,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 11,
          "first_published_at": "2016-06-07T09:28:30.298000Z",
          "latest_published_at": "2016-06-07T09:28:30.298000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 3701
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 2,
      "watchers": 3,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": null,
      "open_issues_and_prs": 10
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "mise.toml"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "integration-tests/tsconfig.json",
        "tsconfig.json"
      ],
      "toolchain_manifests": [
        "Cargo.toml",
        "crates/protect-ffi/Cargo.toml"
      ],
      "largest_source_bytes": 121065,
      "source_files_sampled": 143,
      "oversized_source_files": 2,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "Cargo.toml",
        "integration-tests/package.json",
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 7,
        "malicious_count": 0,
        "assessed_package": "npm:@cipherstash/protect-ffi@0.30.0",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "crates",
        "npm"
      ],
      "dependencies": [
        {
          "name": "@cipherstash/auth",
          "manifest": "integration-tests/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.39.0"
        },
        {
          "name": "@cipherstash/protect-ffi",
          "manifest": "integration-tests/package.json",
          "ecosystem": "npm",
          "version_constraint": ".."
        },
        {
          "name": "pg",
          "manifest": "integration-tests/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.13.3"
        },
        {
          "name": "@neon-rs/load",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.1.82"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@cipherstash/auth",
            "direct": true,
            "version": "0.39.0",
            "ecosystem": "npm"
          },
          {
            "name": "@cipherstash/protect-ffi",
            "direct": true,
            "version": "0.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "@neon-rs/load",
            "direct": true,
            "version": "0.1.82",
            "ecosystem": "npm"
          },
          {
            "name": "pg",
            "direct": true,
            "version": "8.13.3",
            "ecosystem": "npm"
          },
          {
            "name": "adler2",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "aead",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "crates"
          },
          {
            "name": "aes",
            "direct": false,
            "version": "0.8.4",
            "ecosystem": "crates"
          },
          {
            "name": "aes-gcm",
            "direct": false,
            "version": "0.10.3",
            "ecosystem": "crates"
          },
          {
            "name": "aes-gcm-siv",
            "direct": false,
            "version": "0.11.1",
            "ecosystem": "crates"
          },
          {
            "name": "ahash",
            "direct": false,
            "version": "0.7.8",
            "ecosystem": "crates"
          },
          {
            "name": "ahash",
            "direct": false,
            "version": "0.8.12",
            "ecosystem": "crates"
          },
          {
            "name": "aho-corasick",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "alloc-no-stdlib",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "crates"
          },
          {
            "name": "alloc-stdlib",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "allocator-api2",
            "direct": false,
            "version": "0.2.21",
            "ecosystem": "crates"
          },
          {
            "name": "android_system_properties",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "anyhow",
            "direct": false,
            "version": "1.0.102",
            "ecosystem": "crates"
          },
          {
            "name": "aquamarine",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "crates"
          },
          {
            "name": "arrayref",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "crates"
          },
          {
            "name": "arrayvec",
            "direct": false,
            "version": "0.7.6",
            "ecosystem": "crates"
          },
          {
            "name": "async-compression",
            "direct": false,
            "version": "0.4.41",
            "ecosystem": "crates"
          },
          {
            "name": "async-mutex",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "async-trait",
            "direct": false,
            "version": "0.1.89",
            "ecosystem": "crates"
          },
          {
            "name": "atomic",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "atomic-waker",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "autocfg",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "aws-lc-rs",
            "direct": false,
            "version": "1.16.3",
            "ecosystem": "crates"
          },
          {
            "name": "aws-lc-sys",
            "direct": false,
            "version": "0.40.0",
            "ecosystem": "crates"
          },
          {
            "name": "base16ct",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "base32",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "crates"
          },
          {
            "name": "base64",
            "direct": false,
            "version": "0.22.1",
            "ecosystem": "crates"
          },
          {
            "name": "base64ct",
            "direct": false,
            "version": "1.8.3",
            "ecosystem": "crates"
          },
          {
            "name": "base85",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "base85",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "bitflags",
            "direct": false,
            "version": "2.11.0",
            "ecosystem": "crates"
          },
          {
            "name": "bitvec",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "blake3",
            "direct": false,
            "version": "1.8.3",
            "ecosystem": "crates"
          },
          {
            "name": "block-buffer",
            "direct": false,
            "version": "0.10.4",
            "ecosystem": "crates"
          },
          {
            "name": "block-buffer",
            "direct": false,
            "version": "0.12.0",
            "ecosystem": "crates"
          },
          {
            "name": "block-modes",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "crates"
          },
          {
            "name": "borsh",
            "direct": false,
            "version": "1.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "borsh-derive",
            "direct": false,
            "version": "1.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "brotli",
            "direct": false,
            "version": "8.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "brotli-decompressor",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "bumpalo",
            "direct": false,
            "version": "3.20.2",
            "ecosystem": "crates"
          },
          {
            "name": "bytecheck",
            "direct": false,
            "version": "0.6.12",
            "ecosystem": "crates"
          },
          {
            "name": "bytecheck_derive",
            "direct": false,
            "version": "0.6.12",
            "ecosystem": "crates"
          },
          {
            "name": "bytemuck",
            "direct": false,
            "version": "1.25.0",
            "ecosystem": "crates"
          },
          {
            "name": "byteorder",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "bytes",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "crates"
          },
          {
            "name": "cached",
            "direct": false,
            "version": "0.54.0",
            "ecosystem": "crates"
          },
          {
            "name": "cached_proc_macro",
            "direct": false,
            "version": "0.23.0",
            "ecosystem": "crates"
          },
          {
            "name": "cached_proc_macro_types",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "cc",
            "direct": false,
            "version": "1.2.57",
            "ecosystem": "crates"
          },
          {
            "name": "cesu8",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "cfg-if",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "crates"
          },
          {
            "name": "cfg_aliases",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "chacha20",
            "direct": false,
            "version": "0.10.0",
            "ecosystem": "crates"
          },
          {
            "name": "chrono",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "chrono",
            "direct": false,
            "version": "0.4.44",
            "ecosystem": "crates"
          },
          {
            "name": "cipher",
            "direct": false,
            "version": "0.4.4",
            "ecosystem": "crates"
          },
          {
            "name": "cipherstash-client",
            "direct": false,
            "version": "0.42.0",
            "ecosystem": "crates"
          },
          {
            "name": "cipherstash-config",
            "direct": false,
            "version": "0.42.0",
            "ecosystem": "crates"
          },
          {
            "name": "cipherstash-core",
            "direct": false,
            "version": "0.42.0",
            "ecosystem": "crates"
          },
          {
            "name": "cllw-ore",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "cmac",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "crates"
          },
          {
            "name": "cmake",
            "direct": false,
            "version": "0.1.57",
            "ecosystem": "crates"
          },
          {
            "name": "combine",
            "direct": false,
            "version": "4.6.7",
            "ecosystem": "crates"
          },
          {
            "name": "compression-codecs",
            "direct": false,
            "version": "0.4.37",
            "ecosystem": "crates"
          },
          {
            "name": "compression-core",
            "direct": false,
            "version": "0.4.31",
            "ecosystem": "crates"
          },
          {
            "name": "console_error_panic_hook",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "console_error_panic_hook",
            "direct": false,
            "version": "0.1.7",
            "ecosystem": "crates"
          },
          {
            "name": "const-hex",
            "direct": false,
            "version": "1.18.1",
            "ecosystem": "crates"
          },
          {
            "name": "constant_time_eq",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "convert_case",
            "direct": false,
            "version": "0.10.0",
            "ecosystem": "crates"
          },
          {
            "name": "core-foundation",
            "direct": false,
            "version": "0.10.1",
            "ecosystem": "crates"
          },
          {
            "name": "core-foundation",
            "direct": false,
            "version": "0.9.4",
            "ecosystem": "crates"
          },
          {
            "name": "core-foundation-sys",
            "direct": false,
            "version": "0.8.7",
            "ecosystem": "crates"
          },
          {
            "name": "cpufeatures",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "crates"
          },
          {
            "name": "cpufeatures",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "crc32fast",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "critical-section",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-channel",
            "direct": false,
            "version": "0.5.15",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-epoch",
            "direct": false,
            "version": "0.9.18",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-utils",
            "direct": false,
            "version": "0.8.21",
            "ecosystem": "crates"
          },
          {
            "name": "crypto-common",
            "direct": false,
            "version": "0.1.7",
            "ecosystem": "crates"
          },
          {
            "name": "crypto-common",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "ctr",
            "direct": false,
            "version": "0.9.2",
            "ecosystem": "crates"
          },
          {
            "name": "cts-common",
            "direct": false,
            "version": "0.42.0",
            "ecosystem": "crates"
          },
          {
            "name": "darling",
            "direct": false,
            "version": "0.20.11",
            "ecosystem": "crates"
          },
          {
            "name": "darling_core",
            "direct": false,
            "version": "0.20.11",
            "ecosystem": "crates"
          },
          {
            "name": "darling_macro",
            "direct": false,
            "version": "0.20.11",
            "ecosystem": "crates"
          },
          {
            "name": "data-encoding",
            "direct": false,
            "version": "2.10.0",
            "ecosystem": "crates"
          },
          {
            "name": "dbl",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "deranged",
            "direct": false,
            "version": "0.5.8",
            "ecosystem": "crates"
          },
          {
            "name": "derive_more",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "derive_more",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "derive_more-impl",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "derive_more-impl",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "deunicode",
            "direct": false,
            "version": "1.6.2",
            "ecosystem": "crates"
          },
          {
            "name": "digest",
            "direct": false,
            "version": "0.10.7",
            "ecosystem": "crates"
          },
          {
            "name": "digest",
            "direct": false,
            "version": "0.11.3",
            "ecosystem": "crates"
          },
          {
            "name": "dirs",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "dirs-sys",
            "direct": false,
            "version": "0.3.7",
            "ecosystem": "crates"
          },
          {
            "name": "displaydoc",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "crates"
          },
          {
            "name": "dummy",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "dunce",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "crates"
          },
          {
            "name": "dyn-clone",
            "direct": false,
            "version": "1.0.20",
            "ecosystem": "crates"
          },
          {
            "name": "either",
            "direct": false,
            "version": "1.15.0",
            "ecosystem": "crates"
          },
          {
            "name": "env_filter",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "env_logger",
            "direct": false,
            "version": "0.11.9",
            "ecosystem": "crates"
          },
          {
            "name": "eql-bindings",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "equivalent",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "errno",
            "direct": false,
            "version": "0.3.14",
            "ecosystem": "crates"
          },
          {
            "name": "event-listener",
            "direct": false,
            "version": "2.5.3",
            "ecosystem": "crates"
          },
          {
            "name": "fake",
            "direct": false,
            "version": "2.10.0",
            "ecosystem": "crates"
          },
          {
            "name": "find-msvc-tools",
            "direct": false,
            "version": "0.1.9",
            "ecosystem": "crates"
          },
          {
            "name": "flate2",
            "direct": false,
            "version": "1.1.9",
            "ecosystem": "crates"
          },
          {
            "name": "fnv",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "crates"
          },
          {
            "name": "foldhash",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "form_urlencoded",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "fs_extra",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "funty",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "futures",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-channel",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-core",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-executor",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-io",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-macro",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-sink",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-task",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-util",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "generic-array",
            "direct": false,
            "version": "0.14.7",
            "ecosystem": "crates"
          },
          {
            "name": "gethostname",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "ghash",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "crates"
          },
          {
            "name": "half",
            "direct": false,
            "version": "1.8.3",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.12.3",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.14.5",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.15.5",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.16.1",
            "ecosystem": "crates"
          },
          {
            "name": "heck",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "hex",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "hex",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "crates"
          },
          {
            "name": "hex-literal",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "crates"
          },
          {
            "name": "hickory-net",
            "direct": false,
            "version": "0.26.1",
            "ecosystem": "crates"
          },
          {
            "name": "hickory-proto",
            "direct": false,
            "version": "0.26.1",
            "ecosystem": "crates"
          },
          {
            "name": "hickory-resolver",
            "direct": false,
            "version": "0.26.1",
            "ecosystem": "crates"
          },
          {
            "name": "hmac",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "crates"
          },
          {
            "name": "http",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "http-body",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "http-body-util",
            "direct": false,
            "version": "0.1.3",
            "ecosystem": "crates"
          },
          {
            "name": "httparse",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "crates"
          },
          {
            "name": "hybrid-array",
            "direct": false,
            "version": "0.4.12",
            "ecosystem": "crates"
          },
          {
            "name": "hyper",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "crates"
          },
          {
            "name": "hyper-rustls",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "crates"
          },
          {
            "name": "hyper-util",
            "direct": false,
            "version": "0.1.20",
            "ecosystem": "crates"
          },
          {
            "name": "iana-time-zone",
            "direct": false,
            "version": "0.1.65",
            "ecosystem": "crates"
          },
          {
            "name": "iana-time-zone-haiku",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "icu_collections",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "icu_locale_core",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "icu_normalizer",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "icu_normalizer_data",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "icu_properties",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "icu_properties_data",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "icu_provider",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "id-arena",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "ident_case",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "idna",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "idna_adapter",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "include_dir",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "crates"
          },
          {
            "name": "include_dir_macros",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "crates"
          },
          {
            "name": "indexmap",
            "direct": false,
            "version": "2.13.0",
            "ecosystem": "crates"
          },
          {
            "name": "inout",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "ipconfig",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "ipnet",
            "direct": false,
            "version": "2.12.0",
            "ecosystem": "crates"
          },
          {
            "name": "iri-string",
            "direct": false,
            "version": "0.7.10",
            "ecosystem": "crates"
          },
          {
            "name": "is-docker",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "is-wsl",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "itertools",
            "direct": false,
            "version": "0.10.5",
            "ecosystem": "crates"
          },
          {
            "name": "itertools",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "crates"
          },
          {
            "name": "itoa",
            "direct": false,
            "version": "1.0.17",
            "ecosystem": "crates"
          },
          {
            "name": "jni",
            "direct": false,
            "version": "0.21.1",
            "ecosystem": "crates"
          },
          {
            "name": "jni",
            "direct": false,
            "version": "0.22.4",
            "ecosystem": "crates"
          },
          {
            "name": "jni-macros",
            "direct": false,
            "version": "0.22.4",
            "ecosystem": "crates"
          },
          {
            "name": "jni-sys",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "jni-sys",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "jni-sys-macros",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "jobserver",
            "direct": false,
            "version": "0.1.34",
            "ecosystem": "crates"
          },
          {
            "name": "js-sys",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "js-sys",
            "direct": false,
            "version": "0.3.91",
            "ecosystem": "crates"
          },
          {
            "name": "jsonwebtoken",
            "direct": false,
            "version": "9.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "lazy_static",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "leb128fmt",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "libc",
            "direct": false,
            "version": "0.2.183",
            "ecosystem": "crates"
          },
          {
            "name": "libloading",
            "direct": false,
            "version": "0.8.9",
            "ecosystem": "crates"
          },
          {
            "name": "libredox",
            "direct": false,
            "version": "0.1.14",
            "ecosystem": "crates"
          },
          {
            "name": "linkme",
            "direct": false,
            "version": "0.3.35",
            "ecosystem": "crates"
          },
          {
            "name": "linkme-impl",
            "direct": false,
            "version": "0.3.35",
            "ecosystem": "crates"
          },
          {
            "name": "linux-raw-sys",
            "direct": false,
            "version": "0.4.15",
            "ecosystem": "crates"
          },
          {
            "name": "litemap",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "crates"
          },
          {
            "name": "lock_api",
            "direct": false,
            "version": "0.4.14",
            "ecosystem": "crates"
          },
          {
            "name": "log",
            "direct": false,
            "version": "0.4.29",
            "ecosystem": "crates"
          },
          {
            "name": "lru-slab",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "md-5",
            "direct": false,
            "version": "0.10.6",
            "ecosystem": "crates"
          },
          {
            "name": "memchr",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "miette",
            "direct": false,
            "version": "7.6.0",
            "ecosystem": "crates"
          },
          {
            "name": "miette-derive",
            "direct": false,
            "version": "7.6.0",
            "ecosystem": "crates"
          },
          {
            "name": "miniz_oxide",
            "direct": false,
            "version": "0.8.9",
            "ecosystem": "crates"
          },
          {
            "name": "mio",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "moka",
            "direct": false,
            "version": "0.12.14",
            "ecosystem": "crates"
          },
          {
            "name": "ndk-context",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "neon",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "neon",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "neon-macros",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "nom",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "num",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "crates"
          },
          {
            "name": "num-bigint",
            "direct": false,
            "version": "0.4.6",
            "ecosystem": "crates"
          },
          {
            "name": "num-complex",
            "direct": false,
            "version": "0.4.6",
            "ecosystem": "crates"
          },
          {
            "name": "num-conv",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "num-integer",
            "direct": false,
            "version": "0.1.46",
            "ecosystem": "crates"
          },
          {
            "name": "num-iter",
            "direct": false,
            "version": "0.1.45",
            "ecosystem": "crates"
          },
          {
            "name": "num-rational",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "num-traits",
            "direct": false,
            "version": "0.2.19",
            "ecosystem": "crates"
          },
          {
            "name": "once_cell",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "once_cell",
            "direct": false,
            "version": "1.21.4",
            "ecosystem": "crates"
          },
          {
            "name": "opaque-debug",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "open",
            "direct": false,
            "version": "5.3.3",
            "ecosystem": "crates"
          },
          {
            "name": "openssl-probe",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "orderable-bytes",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "ore-rs",
            "direct": false,
            "version": "0.8.3",
            "ecosystem": "crates"
          },
          {
            "name": "parking_lot",
            "direct": false,
            "version": "0.12.5",
            "ecosystem": "crates"
          },
          {
            "name": "parking_lot_core",
            "direct": false,
            "version": "0.9.12",
            "ecosystem": "crates"
          },
          {
            "name": "pathdiff",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "crates"
          },
          {
            "name": "pem",
            "direct": false,
            "version": "3.0.6",
            "ecosystem": "crates"
          },
          {
            "name": "percent-encoding",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "pin-project-lite",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "crates"
          },
          {
            "name": "pin-utils",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "polyval",
            "direct": false,
            "version": "0.6.2",
            "ecosystem": "crates"
          },
          {
            "name": "portable-atomic",
            "direct": false,
            "version": "1.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "potential_utf",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "powerfmt",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "ppv-lite86",
            "direct": false,
            "version": "0.2.21",
            "ecosystem": "crates"
          },
          {
            "name": "prefix-trie",
            "direct": false,
            "version": "0.8.4",
            "ecosystem": "crates"
          },
          {
            "name": "prettyplease",
            "direct": false,
            "version": "0.2.37",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro-crate",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro-error-attr2",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro-error2",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro2",
            "direct": false,
            "version": "1.0.106",
            "ecosystem": "crates"
          },
          {
            "name": "proptest",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "crates"
          },
          {
            "name": "ptr_meta",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "ptr_meta_derive",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "quickcheck",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "quickcheck",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "quickcheck_macros",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "quickcheck_macros",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "quinn",
            "direct": false,
            "version": "0.11.9",
            "ecosystem": "crates"
          },
          {
            "name": "quinn-proto",
            "direct": false,
            "version": "0.11.14",
            "ecosystem": "crates"
          },
          {
            "name": "quinn-udp",
            "direct": false,
            "version": "0.5.14",
            "ecosystem": "crates"
          },
          {
            "name": "quote",
            "direct": false,
            "version": "1.0.45",
            "ecosystem": "crates"
          },
          {
            "name": "r-efi",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "r-efi",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "radium",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "crates"
          },
          {
            "name": "rand",
            "direct": false,
            "version": "0.10.1",
            "ecosystem": "crates"
          },
          {
            "name": "rand",
            "direct": false,
            "version": "0.8.6",
            "ecosystem": "crates"
          },
          {
            "name": "rand",
            "direct": false,
            "version": "0.9.3",
            "ecosystem": "crates"
          },
          {
            "name": "rand_chacha",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "rand_chacha",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "rand_core",
            "direct": false,
            "version": "0.10.0",
            "ecosystem": "crates"
          },
          {
            "name": "rand_core",
            "direct": false,
            "version": "0.6.4",
            "ecosystem": "crates"
          },
          {
            "name": "rand_core",
            "direct": false,
            "version": "0.9.5",
            "ecosystem": "crates"
          },
          {
            "name": "rand_xorshift",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "recipher",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "crates"
          },
          {
            "name": "redox_syscall",
            "direct": false,
            "version": "0.5.18",
            "ecosystem": "crates"
          },
          {
            "name": "redox_users",
            "direct": false,
            "version": "0.4.6",
            "ecosystem": "crates"
          },
          {
            "name": "ref-cast",
            "direct": false,
            "version": "1.0.25",
            "ecosystem": "crates"
          },
          {
            "name": "ref-cast-impl",
            "direct": false,
            "version": "1.0.25",
            "ecosystem": "crates"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "1.12.3",
            "ecosystem": "crates"
          },
          {
            "name": "regex-automata",
            "direct": false,
            "version": "0.4.14",
            "ecosystem": "crates"
          },
          {
            "name": "regex-syntax",
            "direct": false,
            "version": "0.8.10",
            "ecosystem": "crates"
          },
          {
            "name": "rend",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "reqwest",
            "direct": false,
            "version": "0.13.4",
            "ecosystem": "crates"
          },
          {
            "name": "resolv-conf",
            "direct": false,
            "version": "0.7.6",
            "ecosystem": "crates"
          },
          {
            "name": "ring",
            "direct": false,
            "version": "0.17.14",
            "ecosystem": "crates"
          },
          {
            "name": "rkyv",
            "direct": false,
            "version": "0.7.46",
            "ecosystem": "crates"
          },
          {
            "name": "rkyv_derive",
            "direct": false,
            "version": "0.7.46",
            "ecosystem": "crates"
          },
          {
            "name": "rmp",
            "direct": false,
            "version": "0.8.15",
            "ecosystem": "crates"
          },
          {
            "name": "rmp-serde",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "rust-stemmers",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "rust_decimal",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "rust_decimal",
            "direct": false,
            "version": "1.40.0",
            "ecosystem": "crates"
          },
          {
            "name": "rustc-hash",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "rustc_version",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "rustix",
            "direct": false,
            "version": "0.38.44",
            "ecosystem": "crates"
          },
          {
            "name": "rustls",
            "direct": false,
            "version": "0.23.37",
            "ecosystem": "crates"
          },
          {
            "name": "rustls-native-certs",
            "direct": false,
            "version": "0.8.3",
            "ecosystem": "crates"
          },
          {
            "name": "rustls-pki-types",
            "direct": false,
            "version": "1.14.0",
            "ecosystem": "crates"
          },
          {
            "name": "rustls-platform-verifier",
            "direct": false,
            "version": "0.6.2",
            "ecosystem": "crates"
          },
          {
            "name": "rustls-platform-verifier-android",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "rustls-webpki",
            "direct": false,
            "version": "0.103.13",
            "ecosystem": "crates"
          },
          {
            "name": "rustversion",
            "direct": false,
            "version": "1.0.22",
            "ecosystem": "crates"
          },
          {
            "name": "ryu",
            "direct": false,
            "version": "1.0.23",
            "ecosystem": "crates"
          },
          {
            "name": "same-file",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "crates"
          },
          {
            "name": "schannel",
            "direct": false,
            "version": "0.1.29",
            "ecosystem": "crates"
          },
          {
            "name": "schemars",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "schemars_derive",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "scopeguard",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "seahash",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "security-framework",
            "direct": false,
            "version": "3.7.0",
            "ecosystem": "crates"
          },
          {
            "name": "security-framework-sys",
            "direct": false,
            "version": "2.17.0",
            "ecosystem": "crates"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "1.0.27",
            "ecosystem": "crates"
          },
          {
            "name": "send_wrapper",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "crates"
          },
          {
            "name": "serde",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "serde",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde-wasm-bindgen",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "serde-wasm-bindgen",
            "direct": false,
            "version": "0.6.5",
            "ecosystem": "crates"
          },
          {
            "name": "serde_bytes",
            "direct": false,
            "version": "0.11.19",
            "ecosystem": "crates"
          },
          {
            "name": "serde_cbor",
            "direct": false,
            "version": "0.11.2",
            "ecosystem": "crates"
          },
          {
            "name": "serde_core",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_derive",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_derive_internals",
            "direct": false,
            "version": "0.29.1",
            "ecosystem": "crates"
          },
          {
            "name": "serde_json",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "serde_json",
            "direct": false,
            "version": "1.0.149",
            "ecosystem": "crates"
          },
          {
            "name": "serde_spanned",
            "direct": false,
            "version": "0.6.9",
            "ecosystem": "crates"
          },
          {
            "name": "serde_urlencoded",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "crates"
          },
          {
            "name": "serdect",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "sha1_smol",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "sha2",
            "direct": false,
            "version": "0.10.9",
            "ecosystem": "crates"
          },
          {
            "name": "shlex",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "signal-hook-registry",
            "direct": false,
            "version": "1.4.8",
            "ecosystem": "crates"
          },
          {
            "name": "simd-adler32",
            "direct": false,
            "version": "0.3.8",
            "ecosystem": "crates"
          },
          {
            "name": "simd_cesu8",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "simdutf8",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "simple_asn1",
            "direct": false,
            "version": "0.6.4",
            "ecosystem": "crates"
          },
          {
            "name": "slab",
            "direct": false,
            "version": "0.4.12",
            "ecosystem": "crates"
          },
          {
            "name": "smallvec",
            "direct": false,
            "version": "1.15.1",
            "ecosystem": "crates"
          },
          {
            "name": "socket2",
            "direct": false,
            "version": "0.5.10",
            "ecosystem": "crates"
          },
          {
            "name": "socket2",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "crates"
          },
          {
            "name": "stable_deref_trait",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "stack-auth",
            "direct": false,
            "version": "0.42.0",
            "ecosystem": "crates"
          },
          {
            "name": "stack-profile",
            "direct": false,
            "version": "0.42.0",
            "ecosystem": "crates"
          },
          {
            "name": "static_assertions",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "strsim",
            "direct": false,
            "version": "0.11.1",
            "ecosystem": "crates"
          },
          {
            "name": "subtle",
            "direct": false,
            "version": "2.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "subtle-ng",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "syn",
            "direct": false,
            "version": "1.0.109",
            "ecosystem": "crates"
          },
          {
            "name": "syn",
            "direct": false,
            "version": "2.0.117",
            "ecosystem": "crates"
          },
          {
            "name": "sync_wrapper",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "synstructure",
            "direct": false,
            "version": "0.13.2",
            "ecosystem": "crates"
          },
          {
            "name": "system-configuration",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "crates"
          },
          {
            "name": "system-configuration-sys",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "crates"
          },
          {
            "name": "tagptr",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "tap",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "termcolor",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "thiserror",
            "direct": false,
            "version": "1.0.69",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror-impl",
            "direct": false,
            "version": "1.0.69",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror-impl",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "time",
            "direct": false,
            "version": "0.3.47",
            "ecosystem": "crates"
          },
          {
            "name": "time-core",
            "direct": false,
            "version": "0.1.8",
            "ecosystem": "crates"
          },
          {
            "name": "time-macros",
            "direct": false,
            "version": "0.2.27",
            "ecosystem": "crates"
          },
          {
            "name": "tinystr",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "tinyvec",
            "direct": false,
            "version": "1.11.0",
            "ecosystem": "crates"
          },
          {
            "name": "tinyvec_macros",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "tokio",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tokio",
            "direct": false,
            "version": "1.50.0",
            "ecosystem": "crates"
          },
          {
            "name": "tokio-macros",
            "direct": false,
            "version": "2.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "tokio-rustls",
            "direct": false,
            "version": "0.26.4",
            "ecosystem": "crates"
          },
          {
            "name": "tokio-util",
            "direct": false,
            "version": "0.7.18",
            "ecosystem": "crates"
          },
          {
            "name": "toml",
            "direct": false,
            "version": "0.8.23",
            "ecosystem": "crates"
          },
          {
            "name": "toml_datetime",
            "direct": false,
            "version": "0.6.11",
            "ecosystem": "crates"
          },
          {
            "name": "toml_datetime",
            "direct": false,
            "version": "1.0.1+spec-1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "toml_edit",
            "direct": false,
            "version": "0.22.27",
            "ecosystem": "crates"
          },
          {
            "name": "toml_edit",
            "direct": false,
            "version": "0.25.5+spec-1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "toml_parser",
            "direct": false,
            "version": "1.0.10+spec-1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "toml_write",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "tower",
            "direct": false,
            "version": "0.5.3",
            "ecosystem": "crates"
          },
          {
            "name": "tower-http",
            "direct": false,
            "version": "0.6.8",
            "ecosystem": "crates"
          },
          {
            "name": "tower-layer",
            "direct": false,
            "version": "0.3.3",
            "ecosystem": "crates"
          },
          {
            "name": "tower-service",
            "direct": false,
            "version": "0.3.3",
            "ecosystem": "crates"
          },
          {
            "name": "tracing",
            "direct": false,
            "version": "0.1.44",
            "ecosystem": "crates"
          },
          {
            "name": "tracing-attributes",
            "direct": false,
            "version": "0.1.31",
            "ecosystem": "crates"
          },
          {
            "name": "tracing-core",
            "direct": false,
            "version": "0.1.36",
            "ecosystem": "crates"
          },
          {
            "name": "try-lock",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "crates"
          },
          {
            "name": "ts-rs",
            "direct": false,
            "version": "10.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "ts-rs-macros",
            "direct": false,
            "version": "10.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "typenum",
            "direct": false,
            "version": "1.20.0",
            "ecosystem": "crates"
          },
          {
            "name": "unarray",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-ident",
            "direct": false,
            "version": "1.0.24",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-normalization",
            "direct": false,
            "version": "0.1.25",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-segmentation",
            "direct": false,
            "version": "1.12.0",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-width",
            "direct": false,
            "version": "0.1.14",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-xid",
            "direct": false,
            "version": "0.2.6",
            "ecosystem": "crates"
          },
          {
            "name": "universal-hash",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "crates"
          },
          {
            "name": "untrusted",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "crates"
          },
          {
            "name": "untrusted",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "url",
            "direct": false,
            "version": "2.5.8",
            "ecosystem": "crates"
          },
          {
            "name": "utf8_iter",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "crates"
          },
          {
            "name": "utoipa",
            "direct": false,
            "version": "5.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "utoipa-gen",
            "direct": false,
            "version": "5.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "uuid",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "uuid",
            "direct": false,
            "version": "1.22.0",
            "ecosystem": "crates"
          },
          {
            "name": "validator",
            "direct": false,
            "version": "0.20.0",
            "ecosystem": "crates"
          },
          {
            "name": "validator_derive",
            "direct": false,
            "version": "0.20.0",
            "ecosystem": "crates"
          },
          {
            "name": "version_check",
            "direct": false,
            "version": "0.9.5",
            "ecosystem": "crates"
          },
          {
            "name": "vitaminc",
            "direct": false,
            "version": "0.1.0-pre4.2",
            "ecosystem": "crates"
          },
          {
            "name": "vitaminc",
            "direct": false,
            "version": "0.2.0-pre",
            "ecosystem": "crates"
          },
          {
            "name": "vitaminc-aead",
            "direct": false,
            "version": "0.2.0-pre",
            "ecosystem": "crates"
          },
          {
            "name": "vitaminc-encrypt",
            "direct": false,
            "version": "0.2.0-pre",
            "ecosystem": "crates"
          },
          {
            "name": "vitaminc-protected",
            "direct": false,
            "version": "0.1.0-pre4.2",
            "ecosystem": "crates"
          },
          {
            "name": "vitaminc-protected",
            "direct": false,
            "version": "0.2.0-pre",
            "ecosystem": "crates"
          },
          {
            "name": "vitaminc-protected-derive",
            "direct": false,
            "version": "0.1.0-pre4.2",
            "ecosystem": "crates"
          },
          {
            "name": "vitaminc-protected-derive",
            "direct": false,
            "version": "0.2.0-pre",
            "ecosystem": "crates"
          },
          {
            "name": "vitaminc-random",
            "direct": false,
            "version": "0.1.0-pre4.2",
            "ecosystem": "crates"
          },
          {
            "name": "vitaminc-random",
            "direct": false,
            "version": "0.2.0-pre",
            "ecosystem": "crates"
          },
          {
            "name": "vitaminc-random-derives",
            "direct": false,
            "version": "0.1.0-pre4.2",
            "ecosystem": "crates"
          },
          {
            "name": "vitaminc-random-derives",
            "direct": false,
            "version": "0.2.0-pre",
            "ecosystem": "crates"
          },
          {
            "name": "vitaminc-traits",
            "direct": false,
            "version": "0.2.0-pre",
            "ecosystem": "crates"
          },
          {
            "name": "walkdir",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "want",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "wasi",
            "direct": false,
            "version": "0.11.1+wasi-snapshot-preview1",
            "ecosystem": "crates"
          },
          {
            "name": "wasip2",
            "direct": false,
            "version": "1.0.2+wasi-0.2.9",
            "ecosystem": "crates"
          },
          {
            "name": "wasip3",
            "direct": false,
            "version": "0.4.0+wasi-0.3.0-rc-2026-01-06",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen",
            "direct": false,
            "version": "0.2.114",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-futures",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-futures",
            "direct": false,
            "version": "0.4.64",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-macro",
            "direct": false,
            "version": "0.2.114",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-macro-support",
            "direct": false,
            "version": "0.2.114",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-shared",
            "direct": false,
            "version": "0.2.114",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-encoder",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-metadata",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-streams",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "wasmparser",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "web-sys",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "web-sys",
            "direct": false,
            "version": "0.3.91",
            "ecosystem": "crates"
          },
          {
            "name": "web-time",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "webpki-root-certs",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "crates"
          },
          {
            "name": "widestring",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "winapi",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "crates"
          },
          {
            "name": "winapi-i686-pc-windows-gnu",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "winapi-util",
            "direct": false,
            "version": "0.1.11",
            "ecosystem": "crates"
          },
          {
            "name": "winapi-x86_64-pc-windows-gnu",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows-core",
            "direct": false,
            "version": "0.62.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-implement",
            "direct": false,
            "version": "0.60.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-interface",
            "direct": false,
            "version": "0.59.3",
            "ecosystem": "crates"
          },
          {
            "name": "windows-link",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows-result",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows-strings",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": false,
            "version": "0.45.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": false,
            "version": "0.48.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": false,
            "version": "0.60.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": false,
            "version": "0.61.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-targets",
            "direct": false,
            "version": "0.42.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-targets",
            "direct": false,
            "version": "0.48.5",
            "ecosystem": "crates"
          },
          {
            "name": "windows-targets",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows-targets",
            "direct": false,
            "version": "0.53.5",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_gnullvm",
            "direct": false,
            "version": "0.42.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_gnullvm",
            "direct": false,
            "version": "0.48.5",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_gnullvm",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_gnullvm",
            "direct": false,
            "version": "0.53.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_msvc",
            "direct": false,
            "version": "0.42.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_msvc",
            "direct": false,
            "version": "0.48.5",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_msvc",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_msvc",
            "direct": false,
            "version": "0.53.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_gnu",
            "direct": false,
            "version": "0.42.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_gnu",
            "direct": false,
            "version": "0.48.5",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_gnu",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_gnu",
            "direct": false,
            "version": "0.53.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_gnullvm",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_gnullvm",
            "direct": false,
            "version": "0.53.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_msvc",
            "direct": false,
            "version": "0.42.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_msvc",
            "direct": false,
            "version": "0.48.5",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_msvc",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_msvc",
            "direct": false,
            "version": "0.53.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnu",
            "direct": false,
            "version": "0.42.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnu",
            "direct": false,
            "version": "0.48.5",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnu",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnu",
            "direct": false,
            "version": "0.53.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnullvm",
            "direct": false,
            "version": "0.42.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnullvm",
            "direct": false,
            "version": "0.48.5",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnullvm",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnullvm",
            "direct": false,
            "version": "0.53.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_msvc",
            "direct": false,
            "version": "0.42.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_msvc",
            "direct": false,
            "version": "0.48.5",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_msvc",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_msvc",
            "direct": false,
            "version": "0.53.1",
            "ecosystem": "crates"
          },
          {
            "name": "winnow",
            "direct": false,
            "version": "0.6.26",
            "ecosystem": "crates"
          },
          {
            "name": "winnow",
            "direct": false,
            "version": "0.7.15",
            "ecosystem": "crates"
          },
          {
            "name": "winnow",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "winreg",
            "direct": false,
            "version": "0.50.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen-core",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen-rust",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen-rust-macro",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-component",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-parser",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "writeable",
            "direct": false,
            "version": "0.6.2",
            "ecosystem": "crates"
          },
          {
            "name": "wyz",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "crates"
          },
          {
            "name": "yoke",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "crates"
          },
          {
            "name": "yoke-derive",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "crates"
          },
          {
            "name": "zerocopy",
            "direct": false,
            "version": "0.8.42",
            "ecosystem": "crates"
          },
          {
            "name": "zerocopy-derive",
            "direct": false,
            "version": "0.8.42",
            "ecosystem": "crates"
          },
          {
            "name": "zerofrom",
            "direct": false,
            "version": "0.1.6",
            "ecosystem": "crates"
          },
          {
            "name": "zerofrom-derive",
            "direct": false,
            "version": "0.1.6",
            "ecosystem": "crates"
          },
          {
            "name": "zeroize",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "zeroize",
            "direct": false,
            "version": "1.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "zeroize_derive",
            "direct": false,
            "version": "1.4.3",
            "ecosystem": "crates"
          },
          {
            "name": "zerokms-protocol",
            "direct": false,
            "version": "0.12.26",
            "ecosystem": "crates"
          },
          {
            "name": "zerotrie",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "crates"
          },
          {
            "name": "zerovec",
            "direct": false,
            "version": "0.11.5",
            "ecosystem": "crates"
          },
          {
            "name": "zerovec-derive",
            "direct": false,
            "version": "0.11.2",
            "ecosystem": "crates"
          },
          {
            "name": "zmij",
            "direct": false,
            "version": "1.0.21",
            "ecosystem": "crates"
          },
          {
            "name": "@ampproject/remapping",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-string-parser",
            "direct": false,
            "version": "7.27.1",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.28.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.28.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "7.28.5",
            "ecosystem": "npm"
          },
          {
            "name": "@bcoe/v8-coverage",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/biome",
            "direct": false,
            "version": "1.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-darwin-arm64",
            "direct": false,
            "version": "1.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-darwin-x64",
            "direct": false,
            "version": "1.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-arm64",
            "direct": false,
            "version": "1.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-arm64-musl",
            "direct": false,
            "version": "1.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-x64",
            "direct": false,
            "version": "1.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-x64-musl",
            "direct": false,
            "version": "1.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-win32-arm64",
            "direct": false,
            "version": "1.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-win32-x64",
            "direct": false,
            "version": "1.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "@cargo-messages/android-arm-eabi",
            "direct": false,
            "version": "0.1.81",
            "ecosystem": "npm"
          },
          {
            "name": "@cargo-messages/darwin-arm64",
            "direct": false,
            "version": "0.1.81",
            "ecosystem": "npm"
          },
          {
            "name": "@cargo-messages/darwin-x64",
            "direct": false,
            "version": "0.1.81",
            "ecosystem": "npm"
          },
          {
            "name": "@cargo-messages/linux-arm-gnueabihf",
            "direct": false,
            "version": "0.1.81",
            "ecosystem": "npm"
          },
          {
            "name": "@cargo-messages/linux-arm64-gnu",
            "direct": false,
            "version": "0.1.81",
            "ecosystem": "npm"
          },
          {
            "name": "@cargo-messages/linux-arm64-musl",
            "direct": false,
            "version": "0.1.81",
            "ecosystem": "npm"
          },
          {
            "name": "@cargo-messages/linux-x64-gnu",
            "direct": false,
            "version": "0.1.81",
            "ecosystem": "npm"
          },
          {
            "name": "@cargo-messages/linux-x64-musl",
            "direct": false,
            "version": "0.1.81",
            "ecosystem": "npm"
          },
          {
            "name": "@cargo-messages/win32-arm64-msvc",
            "direct": false,
            "version": "0.1.81",
            "ecosystem": "npm"
          },
          {
            "name": "@cargo-messages/win32-x64-msvc",
            "direct": false,
            "version": "0.1.81",
            "ecosystem": "npm"
          },
          {
            "name": "@cipherstash/eql",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openharmony-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@isaacs/cliui",
            "direct": false,
            "version": "8.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@istanbuljs/schema",
            "direct": false,
            "version": "0.1.3",
            "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/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/trace-mapping",
            "direct": false,
            "version": "0.3.31",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@neon-rs/cli",
            "direct": false,
            "version": "0.1.82",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.139.0",
            "ecosystem": "npm"
          },
          {
            "name": "@pkgjs/parseargs",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-android-arm64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-arm64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-x64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-freebsd-x64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-musl",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-openharmony-arm64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-wasm32-wasi",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/pluginutils",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm-eabi",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-arm64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-x64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-arm64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-x64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-musleabihf",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-s390x-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openbsd-x64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openharmony-arm64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-arm64-msvc",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-ia32-msvc",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-msvc",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@standard-schema/spec",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tsconfig/node20",
            "direct": false,
            "version": "20.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/chai",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/deep-eql",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "20.17.10",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "22.13.10",
            "ecosystem": "npm"
          },
          {
            "name": "@types/pg",
            "direct": false,
            "version": "8.11.11",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/coverage-v8",
            "direct": false,
            "version": "3.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/expect",
            "direct": false,
            "version": "3.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/expect",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/mocker",
            "direct": false,
            "version": "3.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/mocker",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/pretty-format",
            "direct": false,
            "version": "3.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/pretty-format",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/runner",
            "direct": false,
            "version": "3.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/runner",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/snapshot",
            "direct": false,
            "version": "3.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/snapshot",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/spy",
            "direct": false,
            "version": "3.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/spy",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/utils",
            "direct": false,
            "version": "3.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/utils",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "6.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "assertion-error",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ast-v8-to-istanbul",
            "direct": false,
            "version": "0.3.10",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "cac",
            "direct": false,
            "version": "6.7.14",
            "ecosystem": "npm"
          },
          {
            "name": "chai",
            "direct": false,
            "version": "5.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "chai",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "check-error",
            "direct": false,
            "version": "2.1.3",
            "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": "convert-source-map",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "deep-eql",
            "direct": false,
            "version": "5.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "dotenv",
            "direct": false,
            "version": "16.4.7",
            "ecosystem": "npm"
          },
          {
            "name": "eastasianwidth",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "9.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "es-module-lexer",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-module-lexer",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "expect-type",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "expect-type",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "foreground-child",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "10.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "html-escaper",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-coverage",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-report",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-source-maps",
            "direct": false,
            "version": "5.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-reports",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "jackspeak",
            "direct": false,
            "version": "3.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "9.0.1",
            "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": "loupe",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "10.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.19",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "magicast",
            "direct": false,
            "version": "0.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "make-dir",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "9.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "minipass",
            "direct": false,
            "version": "7.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.16",
            "ecosystem": "npm"
          },
          {
            "name": "obuf",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "obug",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "package-json-from-dist",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-scurry",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "pathval",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "pg-cloudflare",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "pg-connection-string",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "pg-int8",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "pg-numeric",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "pg-pool",
            "direct": false,
            "version": "3.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "pg-protocol",
            "direct": false,
            "version": "1.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "pg-types",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "pg-types",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "pgpass",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.19",
            "ecosystem": "npm"
          },
          {
            "name": "postgres-array",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "postgres-array",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "postgres-bytea",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "postgres-bytea",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "postgres-date",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "postgres-date",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "postgres-interval",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "postgres-interval",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "postgres-range",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-command",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-regex",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "siginfo",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "split2",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "stackback",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "std-env",
            "direct": false,
            "version": "3.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "std-env",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "7.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "strip-literal",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "test-exclude",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tinybench",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.15",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "tinypool",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "tinyrainbow",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyrainbow",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyspy",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "6.19.8",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "6.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "7.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "8.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "vite-node",
            "direct": false,
            "version": "3.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "3.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "why-is-node-running",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "8.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "xtend",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 785,
        "direct_count": 4,
        "indirect_count": 781
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 4,
        "merged_prs": 93,
        "open_issues": 6,
        "closed_ratio": 0.333,
        "closed_issues": 3,
        "closed_unmerged_prs": 41
      },
      "bus_factor": 2,
      "bot_contributors": 2,
      "top_contributors": [
        {
          "type": "User",
          "login": "coderdan",
          "commits": 153,
          "avatar_url": "https://avatars.githubusercontent.com/u/522225?v=4"
        },
        {
          "type": "User",
          "login": "CDThomas",
          "commits": 101,
          "avatar_url": "https://avatars.githubusercontent.com/u/7672425?v=4"
        },
        {
          "type": "User",
          "login": "freshtonic",
          "commits": 94,
          "avatar_url": "https://avatars.githubusercontent.com/u/2769?v=4"
        },
        {
          "type": "User",
          "login": "tobyhede",
          "commits": 73,
          "avatar_url": "https://avatars.githubusercontent.com/u/28390?v=4"
        },
        {
          "type": "User",
          "login": "calvinbrewer",
          "commits": 71,
          "avatar_url": "https://avatars.githubusercontent.com/u/10352306?v=4"
        },
        {
          "type": "User",
          "login": "auxesis",
          "commits": 7,
          "avatar_url": "https://avatars.githubusercontent.com/u/12306?v=4"
        },
        {
          "type": "User",
          "login": "yujiyokoo",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/583965?v=4"
        },
        {
          "type": "User",
          "login": "claude",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/81847?v=4"
        }
      ],
      "contributors_sampled": 8,
      "top_contributor_share": 0.303
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "build.yml",
        "release.yml",
        "test.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        "biome.json"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "Cargo.lock",
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 5,
            "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": "8 out of 8 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": 6,
            "reason": "Found 6/10 approved changesets -- score normalized to 6",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 7 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 7,
            "reason": "dependency not pinned by hash detected -- score normalized to 7",
            "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": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "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": 1,
            "reason": "9 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "361f026b8e68debcb1488c1aacbcfd32c282a557",
        "ran_at": "2026-07-26T12:18:10Z",
        "aggregate_score": 5.2,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-20T09:21:50Z",
      "oldest_open_prs": [
        {
          "number": 133,
          "created_at": "2026-07-09T17:12:56Z",
          "last_comment_at": "2026-07-17T06:59:16Z",
          "last_comment_author": "coderdan"
        },
        {
          "number": 135,
          "created_at": "2026-07-13T00:25:47Z",
          "last_comment_at": "2026-07-21T23:56:21Z",
          "last_comment_author": "freshtonic"
        },
        {
          "number": 143,
          "created_at": "2026-07-26T05:45:41Z",
          "last_comment_at": "2026-07-26T05:46:00Z",
          "last_comment_author": "coderabbitai"
        },
        {
          "number": 147,
          "created_at": "2026-07-26T11:12:24Z",
          "last_comment_at": "2026-07-26T11:12:31Z",
          "last_comment_author": "coderabbitai"
        }
      ],
      "last_merged_pr_at": "2026-07-20T08:57:10Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 134,
          "created_at": "2026-07-12T13:28:35Z",
          "last_comment_at": "2026-07-13T00:29:43Z",
          "last_comment_author": "freshtonic"
        },
        {
          "number": 138,
          "created_at": "2026-07-15T17:27:57Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 142,
          "created_at": "2026-07-26T05:25:06Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 144,
          "created_at": "2026-07-26T09:02:09Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 145,
          "created_at": "2026-07-26T09:31:25Z",
          "last_comment_at": "2026-07-26T12:05:03Z",
          "last_comment_author": "coderdan"
        },
        {
          "number": 146,
          "created_at": "2026-07-26T10:26:25Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/cipherstash/protectjs-ffi",
    "host": "github.com",
    "name": "protectjs-ffi",
    "owner": "cipherstash"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 69,
      "inputs": {
        "security": 62,
        "vitality": 88,
        "community": 40,
        "governance": 68,
        "engineering": 82
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 88,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 86,
            "inputs": {
              "commits_last_year": 406,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 31
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "31/52 weeks with commits",
                "points": 21.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 31
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "406 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 406
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 83,
              "latest_release_tag": "v0.30.0",
              "releases_from_tags": false,
              "days_since_latest_release": 6,
              "mean_days_between_releases": 6.6
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "83 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 83
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 6 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~6.6 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 6.6
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 6,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 6 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 40,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 2,
            "inputs": {
              "forks": 0,
              "stars": 2,
              "watchers": 3,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "2 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "3 watchers",
                "points": 1.7,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 67,
            "inputs": {
              "packages": [
                "@cipherstash/protect-ffi"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 10036
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "10,036 downloads/month across npm",
                "points": 53.4,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 10036,
                      "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": 68,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 8,
              "top_contributor_share": 0.303
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "2 contributor(s) cover half of all commits",
                "points": 25.2,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 30% of commits",
                "points": 15.7,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 30
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "8 contributors",
                "points": 10.8,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 8
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 7 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "moderate",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 51,
            "inputs": {
              "merged_prs": 93,
              "open_issues": 6,
              "closed_issues": 3,
              "issue_closed_ratio": 0.333,
              "closed_unmerged_prs": 41
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "33% of issues closed",
                "points": 15.6,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 33
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "93/134 decided PRs merged",
                "points": 26.5,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 93,
                      "decided": 134
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 6/10 approved changesets -- score normalized to 6",
                "points": 9,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "followers": 72,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "cipherstash",
              "public_repos": 53,
              "account_age_days": 2233
            },
            "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": "72 followers of cipherstash",
                "points": 13.4,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 72,
                      "login": "cipherstash"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "53 public repos, account ~6 yr old",
                "points": 24.6,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 53
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 6
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@cipherstash/protect-ffi"
              ],
              "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": "46 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 46
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 82,
        "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": "8 out of 8 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": "https://github.com/cipherstash/stack",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://github.com/cipherstash/stack",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": 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": 62,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 53,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 5.2
            },
            "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": 3.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "8 out of 8 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 6/10 approved changesets -- score normalized to 6",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 7 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow 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 7",
                "points": 3.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "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": "9 existing vulnerabilities detected",
                "points": 0.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): No advisories left outstanding. Remaining weights renormalized. Matched the npm:@cipherstash/protect-ffi@0.30.0 runtime dependency closure — what installing the published package pulls in — 7 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "npm:@cipherstash/protect-ffi@0.30.0",
                  "assessed": 7
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 7,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "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": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "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": 7,
              "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": 10
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 71,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.94,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "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": "94 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 94,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 83,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "Cargo.lock",
                "package-lock.json"
              ],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [
                "mise.toml"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "integration-tests/tsconfig.json",
                "tsconfig.json"
              ],
              "agent_commit_share": 0.02,
              "toolchain_manifests": [
                "Cargo.toml",
                "crates/protect-ffi/Cargo.toml"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "mise.toml",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "mise.toml"
                    }
                  }
                ],
                "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": "integration-tests/tsconfig.json, tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "integration-tests/tsconfig.json, tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "2 of the last 100 commits agent-authored or agent-credited",
                "points": 4,
                "status": "partial",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 2,
                      "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 7",
                "points": 7,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "Rust",
              "largest_source_bytes": 121065,
              "source_files_sampled": 143,
              "oversized_source_files": 2
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Rust (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Rust"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "2/143 source files over 60KB",
                "points": 54.2,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 143,
                      "oversized": 2
                    }
                  }
                ],
                "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",
    "npm package 'integration-tests' points at a different repository (https://github.com/doug-wade/iso-fs); excluded from ecosystem scoring"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-26T12:18:28.061179Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/c/cipherstash/protectjs-ffi.svg",
  "full_name": "cipherstash/protectjs-ffi",
  "license_state": "standard",
  "license_spdx": "MIT"
}

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

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

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