公开记录
软件健康报告模式 0.27.0 · 指标 1.13.0 · 2026-07-26 21:45 UTC

speechmatics / speechmatics-js-sdk

Javascript and Typescript SDK for Speechmatics

TypeScript · HTMLMIT★ 57 星标⑂ 24 复刻始于 2023年9月在 GitHub 上查看 ↗

speechmatics/speechmatics-js-sdk 的健康指数为 100 分中的 66 分,处于「中等」区间。 其得分最高的类别是Community & Adoption(69/100),最低的是AI Readiness(60/100)。 最近一次更新在 5 天前。 近期的大部分工作由 1 位贡献者完成。

66
总分 / 100
中等

软件健康指数

指标归入加权类别,统一采用 1–100 量表。总体分先取类别加权平均;当公开证据触发高风险司法辖区政策时,评级会按政策调整,并设置 49(有风险)的上限。AI 就绪度不计入总体分。

66
优秀85-100堪称典范;基本满足所有检验标准
良好70-84健康;仅有轻微不足
中等50-69可接受,但存在明显不足;建议进行审查
存在风险30-49存在重大薄弱环节;采用时应保持审慎
危急1-29问题严重(项目被弃置、仅有单一维护者、缺乏基本工程规范)
活力社区与采用可持续性与治理工程质量安全AI 就绪度

评分画像

每条轴代表一个类别。形状比平均值更重要——健康的对象会填满整个图形,而“一峰一谷”式画像意味着某一维度的优势正掩盖另一维度的风险。

所有权

120 关注者53 个公开仓库始于 2015年10月

该仓库由组织支持——共同承担、可问责的托管责任,可延续于任何单一维护者之后。

软件包生态系统

注册表软件包版本月下载量版本数最近发布标签
npm@speechmatics/auth0.1.056,3212354 天前speechmaticsauthenticationtranscriptionbatchreal-timetext-to-speech
npm@speechmatics/flow-client⚠ Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.0.2.266439523 天前voicespeechintelligenceassistancechatapi
npm@speechmatics/batch-client5.4.259,083837 天前speechasrbatchrest-apitranscripttranslationsummary
npm@speechmatics/web-pcm-player1.1.02,071781 天前webpcmaudioplayer
npm@speechmatics/real-time-client8.5.199,900295 天前speechasrreal-timerealtimewebsockettranscripttranslation
npm@speechmatics/flow-client-react⚠ Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.0.2.180632523 天前flowapireacthookstranscriptionspeechintelligence
npm@speechmatics/browser-audio-input2.0.425,211136 天前audiobrowserdeviceselection
npm@speechmatics/use-flow-transcript0.0.1-rc.0631402 天前speechmaticsflowtranscriptreacthooks

按类别列示的指标

活力

项目是否仍有生命——是否仍在编写代码,是否仍在发布版本?

65中等 · 占总体的 22%
评分方式
36/36推送新近度 — 最近一次推送于 5 天前
9/36提交节奏 — 52 周中有 13 周有提交
12.9/18提交量 — 最近一年 26 次提交
10/10OpenSSF Scorecard:Maintained — 13 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
所用输入
commits_last_year26
human_commit_share0.98
days_since_last_push5
active_weeks_last_year13

发布纪律

60中等
评分方式
27/27有发布版本 — 已发布 13 个发布版本
7.2/36发布时效 — 最近一次发布版本于 634 天前
19.8/27发布节奏 — 约每 45.9 天发布一次
0/10OpenSSF Scorecard:Signed-Releases — 无数据
所用输入
releases_count13
latest_release_tagreal-time-client@5.0.1
releases_from_tags
days_since_latest_release634
mean_days_between_releases45.9
已排除计分(无数据或不适用):OpenSSF Scorecard:Signed-Releases。 其余权重已重新归一化。

社区与采用

项目是否拥有用户、下载量与关注度,并具备欢迎贡献者参与的配置?

69中等 · 占总体的 18%

流行度与采用

42存在风险
评分方式
28.4/60星标 — 57 个星标
11.3/25复刻 — 24 个复刻
2.7/15关注者 — 4 位关注者
所用输入
forks24
stars57
watchers4
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

社区健康

85优秀
评分方式
22.5/22.5README
22.5/22.5许可证 — 可识别的许可证(MIT)
18/18CONTRIBUTING 指南
13.5/13.5行为准则
0/7.2议题模板
0/6.3PR 模板
所用输入
has_readme
has_license
has_contributing
has_issue_template
has_code_of_conduct
has_pull_request_template
评分方式
71.8/80月度下载量 — npm 合计每月 244,119 次下载
0/20注册表被依赖数 — 该生态系统不报告此项
所用输入
packages@speechmatics/auth, @speechmatics/flow-client, @speechmatics/batch-client, @speechmatics/web-pcm-player, @speechmatics/real-time-client, @speechmatics/flow-client-react, @speechmatics/browser-audio-input, @speechmatics/use-flow-transcript
dependents
ecosystemsnpm
total_downloads
monthly_downloads244,119
已排除计分(无数据或不适用):注册表被依赖数。 其余权重已重新归一化。

可持续性与治理

项目能否在其成员之外延续——巴士系数、响应能力、由谁支持,以及软件包的维护状况?

65中等 · 占总体的 24%
评分方式
9/54巴士系数 — 1 位贡献者贡献了半数提交
6.1/22.5提交分布 — 头号贡献者编写了 73% 的提交
13.5/13.5贡献者广度 — 13 位贡献者
6/10OpenSSF Scorecard:Contributors — project has 2 contributing companies or organizations -- score normalized to 6
所用输入
bus_factor1
contributors_sampled13
top_contributor_share0.729
评分方式
39.5/46.8议题解决 — 84% 的议题已关闭
29.4/38.3PR 接受 — 已裁定的 PR 中 132/172 已合并
15/15OpenSSF Scorecard:Code-Review — all changesets reviewed
所用输入
merged_prs132
open_issues7
closed_issues38
issue_closed_ratio0.844
closed_unmerged_prs40
评分方式
30/30所有权背书 — 组织持有
0/20已验证域名
15/25所有者影响力 — speechmatics 有 120 位关注者
24.6/25既往记录 — 53 个公开仓库,账户约 10 年
所用输入
followers120
owner_typeOrganization
is_verified
owner_loginspeechmatics
public_repos53
account_age_days3,936
评分方式
25/25已发布且可解析 — npm 上有 8 个软件包
35/35发布时效 — 最近一次发布于 5 天前
20/20版本历史 — 39 个已发布版本
0/20未被弃用 — @speechmatics/flow-client: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
所用输入
packages@speechmatics/auth, @speechmatics/flow-client, @speechmatics/batch-client, @speechmatics/web-pcm-player, @speechmatics/real-time-client, @speechmatics/flow-client-react, @speechmatics/browser-audio-input, @speechmatics/use-flow-transcript
ecosystemsnpm
any_deprecated
min_days_since_publish5

工程质量

基础的工程与文档实践是否到位?

65中等 · 占总体的 20%

工程实践

82良好
评分方式
24/24CI 工作流 — 2 个工作流
24/24存在测试
16/16Linter 配置 — biome.json
0/9.6Pre-commit 钩子
0/6.4.editorconfig
18/20OpenSSF Scorecard:CI-Tests — 29 out of 30 merged PRs checked by a CI test -- score normalized to 9
所用输入
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_config

文档

40存在风险
评分方式
30/30README
0/25文档目录
0/15文档 / 主页站点
10/10仓库描述
0/10主题标签
0/10Wiki
所用输入
topics
has_wiki
homepage
has_readme
has_docs_dir
has_description

安全

可见的安全与供应链实践是否稳固,且不存在未解决的高风险司法辖区暴露?

68中等 · 占总体的 16%

安全态势

60中等
评分方式
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — 无数据
2.2/2.5CI-Tests — 29 out of 30 merged PRs checked by a CI test -- score normalized to 9
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
7.5/7.5Code-Review — all changesets reviewed
1.5/2.5Contributors — project has 2 contributing companies or organizations -- score normalized to 6
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 — 13 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — 无数据
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
4.5/5SAST — SAST tool is not run on all commits -- score normalized to 9
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — 无数据
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 21 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate6
已排除计分(无数据或不适用):branch_protection, packaging, signed_releases。 其余权重已重新归一化。
评分方式
35/35直接依赖不含已知公告 — 没有直接依赖携带已知公告
0/25间接依赖不含已知公告 — 在此范围内,传递依赖集合无法与开发和测试依赖区分
0/40没有长期未处理的公告 — 没有公告带有发布日期
所用输入
sourceosv
advisories24
affected_packages11
assessed_packages615
unassessed_packages17
affected_by_severitycritical 1, high 6, moderate 4
direct_affected_packages0
已排除计分(无数据或不适用):间接依赖不含已知公告, 没有长期未处理的公告。 其余权重已重新归一化。 已将 615 个已解析依赖与 OSV 比对。 有 17 项无法评估——没有已解析的版本、生态系统不受支持,或超出所报告的软件包清单。 该仓库未发布任何索引可解析的软件包,因此改为评估仓库依赖图。该图将开发与测试版本固定同交付的依赖混在一起,因此仅对声明的运行时依赖计分;传递性发现仅作为背景信息列出,不计入评分。 未对可达性进行分析。

AI 就绪度

该仓库在多大程度上具备与 AI 编码代理协同开发与维护的条件?这是一枚独立的实验性徽章——权重为 0.0,因此单独呈现,不影响总体健康评分。

60中等 · 占总体的 0%
评分方式
0/45代理指令 — 没有 CLAUDE.md / AGENTS.md / 编辑器规则
0/15机器可读文档(llms.txt)
40/40可读的提交历史 — 98 次人类提交中有 98 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share1
agent_instruction_files
agent_instruction_max_bytes
评分方式
0/18一条命令的引导启动
22/22自动化测试
11/11Lint / 格式化配置 — biome.json
11/11静态类型检查 — examples/nextjs-real-time-transcription/tsconfig.json, packages/auth/tsconfig.json, packages/batch-client/tsconfig.json, packages/browser-audio-input-react/tsconfig.json, packages/browser-audio-input/tsconfig.json, packages/flow-client-react/tsconfig.json, packages/flow-client/tsconfig.json, packages/real-time-client-react/tsconfig.json, packages/real-time-client/tsconfig.json, packages/web-pcm-player-react/tsconfig.json, tsconfig.json
10/10可复现环境 — lockfile
6/10已体现的代理实践 — 最近 100 次提交中有 3 次由代理编写或署名代理
8/8自动化维护 — 最近 100 次提交中有 2 次为自动依赖更新
0/10OpenSSF Scorecard:Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
所用输入
has_nix
has_tests
lockfilespnpm-lock.yaml
has_dockerfile
typed_language
bootstrap_files
has_devcontainer
has_linter_config
typecheck_configsexamples/nextjs-real-time-transcription/tsconfig.json, packages/auth/tsconfig.json, packages/batch-client/tsconfig.json, packages/browser-audio-input-react/tsconfig.json, packages/browser-audio-input/tsconfig.json, packages/flow-client-react/tsconfig.json, packages/flow-client/tsconfig.json, packages/real-time-client-react/tsconfig.json, packages/real-time-client/tsconfig.json, packages/web-pcm-player-react/tsconfig.json, tsconfig.json
agent_commit_share0.03
toolchain_manifests
dependency_bot_commit_share0.02
评分方式
45/45可类型检查的代码 — TypeScript(静态类型)
55/55可控的文件大小 — 采样的 225 个源文件中有 0 个超过 60KB
所用输入
primary_languageTypeScript
largest_source_bytes10,138
source_files_sampled225
oversized_source_files0

机器可读接口

40存在风险
评分方式
0/40API 模式(OpenAPI/GraphQL/proto)
0/20MCP 服务器
40/40可运行示例 — example, examples
所用输入
example_dirsexample, examples
has_mcp_signal
api_schema_files

关键数据

57GitHub 星标
13贡献者
26最近 12 个月提交数
5距最近推送天数
13发布版本数
1巴士系数(bus factor)
7开放议题
npm软件包生态系统数

数据采集警告

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

更多细节

Star 与 Fork 历史 0 ★ / 24 ⇿
0Star
24Fork
8发布

每颗 star 和每个 fork 的添加时间,来自 GitHub 并按天汇总。累计增长位于其构成来源——每日新增——的正上方,二者可相互对照:稳定的自然增长与短暂的突增形态截然不同。当这一差别可被衡量时,它会作为增长真实性予以报告。

048121620242422023-092025-022026-06
主版本 1次版本 0修订 5

每个点涵盖 3 天。

OpenSSF Scorecard 6.0 / 10
6.0综合

来自开源项目 OpenSSF Scorecard 的独立、工具无关的安全评估。每项检查奖励的是安全实践本身,而非特定供应商的工具。Scorecard 无法判定的检查项标记为 不适用,并从安全评分中剔除(绝不按零分计)。Scorecard v5.5.0 · 2026-07-26 21:45 UTC

10Binary-Artifactsno binaries found in the repo
不适用Branch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
9CI-Tests29 out of 30 merged PRs checked by a CI test -- score normalized to 9
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
10Code-Reviewall changesets reviewed
6Contributorsproject has 2 contributing companies or organizations -- score normalized to 6
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained13 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
不适用Packagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
9SASTSAST tool is not run on all commits -- score normalized to 9
0Security-Policysecurity policy file not detected
不适用Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities21 existing vulnerabilities detected
直接依赖 13
注册表软件包版本约束清单文件
npmzod^3.23.8packages/batch-client/package.json
npm@speechmatics/browser-audio-inputworkspace:*packages/browser-audio-input-react/package.json
npmtypescript-event-target^1.1.1packages/browser-audio-input/package.json
npm@speechmatics/flow-clientworkspace:*packages/flow-client-react/package.json
npmtypescript-event-target^1.1.1packages/flow-client/package.json
npmws^8.21.0packages/flow-client/package.json
npm@speechmatics/real-time-clientworkspace:*packages/real-time-client-react/package.json
npmtypescript-event-target^1.1.1packages/real-time-client/package.json
npmws^8.21.0packages/real-time-client/package.json
npm@speechmatics/flow-client-reactworkspace:*packages/use-flow-transcript/package.json
npmtypescript-event-target^1.1.1packages/use-flow-transcript/package.json
npm@speechmatics/web-pcm-playerworkspace:*packages/web-pcm-player-react/package.json
npmtypescript-event-target^1.1.1packages/web-pcm-player/package.json
全部依赖 632

来自 GitHub 依赖图的完整解析依赖集合:7 个直接依赖与 625 个间接(传递)软件包。仓库提交锁文件时,传递闭包才是完整的。

注册表软件包版本关系
npmtypescript-event-target1.1.1直接
npmtypescript-event-target^1.1.1直接
npmws8.21.1直接
npmws^8.21.0直接
npmzod3.23.8直接
npmzod4.4.3直接
npmzod^3.23.8直接
npm@apidevtools/json-schema-ref-parser11.7.2间接
npm@apidevtools/json-schema-ref-parser11.9.3间接
npm@apidevtools/openapi-schemas2.1.0间接
npm@apidevtools/swagger-methods3.0.2间接
npm@apidevtools/swagger-parser10.1.1间接
npm@asyncapi/avro-schema-parser3.0.24间接
npm@asyncapi/modelina5.10.1间接
npm@asyncapi/modelina^5.10.1间接
npm@asyncapi/multi-parser2.2.0间接
npm@asyncapi/openapi-schema-parser3.0.24间接
npm@asyncapi/parser2.1.2间接
npm@asyncapi/parser3.0.0-next-major-spec.8间接
npm@asyncapi/parser3.4.0间接
npm@asyncapi/protobuf-schema-parser3.5.1间接
npm@asyncapi/raml-dt-schema-parser4.0.24间接
npm@asyncapi/specs5.1.0间接
npm@asyncapi/specs6.11.1间接
npm@babel/code-frame7.26.0间接
npm@babel/helper-validator-identifier7.25.9间接
npm@babel/runtime7.29.7间接
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@borewit/text-codec0.2.2间接
npm@cspotcode/source-map-support0.8.1间接
npm@emnapi/core1.11.0间接
npm@emnapi/core1.11.1间接
npm@emnapi/runtime1.11.0间接
npm@emnapi/runtime1.11.1间接
npm@emnapi/runtime1.11.2间接
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@hyperjump/json0.1.0间接
npm@hyperjump/json-pointer0.9.8间接
npm@hyperjump/json-schema0.23.5间接
npm@hyperjump/json-schema-core0.28.5间接
npm@hyperjump/pact0.2.5间接
npm@img/colour1.1.0间接
npm@img/sharp-darwin-arm640.34.5间接
npm@img/sharp-darwin-x640.34.5间接
npm@img/sharp-libvips-darwin-arm641.2.4间接
npm@img/sharp-libvips-darwin-x641.2.4间接
npm@img/sharp-libvips-linux-arm1.2.4间接
npm@img/sharp-libvips-linux-arm641.2.4间接
npm@img/sharp-libvips-linux-ppc641.2.4间接
npm@img/sharp-libvips-linux-riscv641.2.4间接
npm@img/sharp-libvips-linux-s390x1.2.4间接
npm@img/sharp-libvips-linux-x641.2.4间接
npm@img/sharp-libvips-linuxmusl-arm641.2.4间接
npm@img/sharp-libvips-linuxmusl-x641.2.4间接
npm@img/sharp-linux-arm0.34.5间接
npm@img/sharp-linux-arm640.34.5间接
npm@img/sharp-linux-ppc640.34.5间接
npm@img/sharp-linux-riscv640.34.5间接
npm@img/sharp-linux-s390x0.34.5间接
npm@img/sharp-linux-x640.34.5间接
npm@img/sharp-linuxmusl-arm640.34.5间接
npm@img/sharp-linuxmusl-x640.34.5间接
npm@img/sharp-wasm320.34.5间接
npm@img/sharp-win32-arm640.34.5间接
npm@img/sharp-win32-ia320.34.5间接
npm@img/sharp-win32-x640.34.5间接
npm@inquirer/core6.0.0间接
npm@inquirer/select1.3.3间接
npm@inquirer/type1.5.5间接
npm@jridgewell/resolve-uri3.1.2间接
npm@jridgewell/sourcemap-codec1.5.0间接
npm@jridgewell/trace-mapping0.3.9间接
npm@jsdevtools/ono7.1.3间接
npm@jsep-plugin/assignment1.3.0间接
npm@jsep-plugin/regex1.0.4间接
npm@jsep-plugin/ternary1.1.4间接
npm@lukeed/csprng1.1.0间接
npm@napi-rs/wasm-runtime1.1.6间接
npm@nestjs/axios4.0.1间接
npm@nestjs/common11.1.28间接
npm@nestjs/core11.1.28间接
npm@next/env16.2.10间接
npm@next/swc-darwin-arm6416.2.10间接
npm@next/swc-darwin-x6416.2.10间接
npm@next/swc-linux-arm64-gnu16.2.10间接
npm@next/swc-linux-arm64-musl16.2.10间接
npm@next/swc-linux-x64-gnu16.2.10间接
npm@next/swc-linux-x64-musl16.2.10间接
npm@next/swc-win32-arm64-msvc16.2.10间接
npm@next/swc-win32-x64-msvc16.2.10间接
npm@nodable/entities3.0.0间接
npm@nuxtjs/opencollective0.3.2间接
npm@openapi-contrib/openapi-schema-to-json-schema3.2.0间接
npm@openapitools/openapi-generator-cli2.40.0间接
npm@oxc-parser/binding-android-arm-eabi0.137.0间接
npm@oxc-parser/binding-android-arm640.137.0间接
npm@oxc-parser/binding-darwin-arm640.137.0间接
npm@oxc-parser/binding-darwin-x640.137.0间接
npm@oxc-parser/binding-freebsd-x640.137.0间接
npm@oxc-parser/binding-linux-arm-gnueabihf0.137.0间接
npm@oxc-parser/binding-linux-arm-musleabihf0.137.0间接
npm@oxc-parser/binding-linux-arm64-gnu0.137.0间接
npm@oxc-parser/binding-linux-arm64-musl0.137.0间接
npm@oxc-parser/binding-linux-ppc64-gnu0.137.0间接
npm@oxc-parser/binding-linux-riscv64-gnu0.137.0间接
npm@oxc-parser/binding-linux-riscv64-musl0.137.0间接
npm@oxc-parser/binding-linux-s390x-gnu0.137.0间接
npm@oxc-parser/binding-linux-x64-gnu0.137.0间接
npm@oxc-parser/binding-linux-x64-musl0.137.0间接
npm@oxc-parser/binding-openharmony-arm640.137.0间接
npm@oxc-parser/binding-wasm32-wasi0.137.0间接
npm@oxc-parser/binding-win32-arm64-msvc0.137.0间接
npm@oxc-parser/binding-win32-ia32-msvc0.137.0间接
npm@oxc-parser/binding-win32-x64-msvc0.137.0间接
npm@oxc-project/types0.137.0间接
npm@oxc-resolver/binding-android-arm-eabi11.21.3间接
npm@oxc-resolver/binding-android-arm6411.21.3间接
npm@oxc-resolver/binding-darwin-arm6411.21.3间接
npm@oxc-resolver/binding-darwin-x6411.21.3间接
npm@oxc-resolver/binding-freebsd-x6411.21.3间接
npm@oxc-resolver/binding-linux-arm-gnueabihf11.21.3间接
npm@oxc-resolver/binding-linux-arm-musleabihf11.21.3间接
npm@oxc-resolver/binding-linux-arm64-gnu11.21.3间接
npm@oxc-resolver/binding-linux-arm64-musl11.21.3间接
npm@oxc-resolver/binding-linux-ppc64-gnu11.21.3间接
npm@oxc-resolver/binding-linux-riscv64-gnu11.21.3间接
npm@oxc-resolver/binding-linux-riscv64-musl11.21.3间接
npm@oxc-resolver/binding-linux-s390x-gnu11.21.3间接
npm@oxc-resolver/binding-linux-x64-gnu11.21.3间接
npm@oxc-resolver/binding-linux-x64-musl11.21.3间接
npm@oxc-resolver/binding-openharmony-arm6411.21.3间接
npm@oxc-resolver/binding-wasm32-wasi11.21.3间接
npm@oxc-resolver/binding-win32-arm64-msvc11.21.3间接
npm@oxc-resolver/binding-win32-x64-msvc11.21.3间接
npm@picocss/pico2.1.1间接
npm@picocss/pico^2.1.1间接
npm@protobufjs/aspromise1.1.2间接
npm@protobufjs/base641.1.2间接
npm@protobufjs/codegen2.0.5间接
npm@protobufjs/eventemitter1.1.1间接
npm@protobufjs/fetch1.1.1间接
npm@protobufjs/float1.0.2间接
npm@protobufjs/path1.1.2间接
npm@protobufjs/pool1.1.0间接
npm@protobufjs/utf81.1.2间接
npm@rollup/plugin-inject5.0.5间接
npm@rollup/plugin-inject^5.0.5间接
npm@rollup/pluginutils5.1.3间接
npm@rollup/rollup-android-arm-eabi4.62.2间接
npm@rollup/rollup-android-arm644.62.2间接
npm@rollup/rollup-darwin-arm644.62.2间接
npm@rollup/rollup-darwin-x644.62.2间接
npm@rollup/rollup-freebsd-arm644.62.2间接
npm@rollup/rollup-freebsd-x644.62.2间接
npm@rollup/rollup-linux-arm-gnueabihf4.62.2间接
npm@rollup/rollup-linux-arm-musleabihf4.62.2间接
npm@rollup/rollup-linux-arm64-gnu4.62.2间接
npm@rollup/rollup-linux-arm64-musl4.62.2间接
npm@rollup/rollup-linux-loong64-gnu4.62.2间接
npm@rollup/rollup-linux-loong64-musl4.62.2间接
npm@rollup/rollup-linux-ppc64-gnu4.62.2间接
npm@rollup/rollup-linux-ppc64-musl4.62.2间接
npm@rollup/rollup-linux-riscv64-gnu4.62.2间接
npm@rollup/rollup-linux-riscv64-musl4.62.2间接
npm@rollup/rollup-linux-s390x-gnu4.62.2间接
npm@rollup/rollup-linux-x64-gnu4.62.2间接
npm@rollup/rollup-linux-x64-musl4.62.2间接
npm@rollup/rollup-openbsd-x644.62.2间接
npm@rollup/rollup-openharmony-arm644.62.2间接
npm@rollup/rollup-win32-arm64-msvc4.62.2间接
npm@rollup/rollup-win32-ia32-msvc4.62.2间接
npm@rollup/rollup-win32-x64-gnu4.62.2间接
npm@rollup/rollup-win32-x64-msvc4.62.2间接
npm@scarf/scarf1.4.0间接
npm@stoplight/better-ajv-errors1.0.3间接
npm@stoplight/json3.21.0间接
npm@stoplight/json3.21.7间接
npm@stoplight/json-ref-readers1.2.2间接
npm@stoplight/json-ref-resolver3.1.6间接
npm@stoplight/ordered-object-literal1.0.5间接
npm@stoplight/path1.3.2间接
npm@stoplight/spectral-core1.23.1间接
npm@stoplight/spectral-formats1.8.5间接
npm@stoplight/spectral-functions1.10.5间接
npm@stoplight/spectral-parsers1.0.5间接
npm@stoplight/spectral-ref-resolver1.0.5间接
npm@stoplight/spectral-runtime1.1.6间接
npm@stoplight/types13.20.0间接
npm@stoplight/types13.6.0间接
npm@stoplight/types14.1.1间接
npm@stoplight/yaml4.3.0间接
npm@stoplight/yaml-ast-parser0.0.50间接
npm@swc/helpers0.5.15间接
npm@tokenizer/inflate0.4.1间接
npm@tokenizer/token0.3.0间接
npm@tsconfig/node101.0.11间接
npm@tsconfig/node121.0.11间接
npm@tsconfig/node141.0.3间接
npm@tsconfig/node161.0.4间接
npm@tybys/wasm-util0.10.3间接
npm@types/audioworklet0.0.64间接
npm@types/audioworklet^0.0.64间接
npm@types/es-aggregate-error1.0.6间接
npm@types/estree1.0.6间接
npm@types/estree1.0.9间接
npm@types/json-schema7.0.15间接
npm@types/mute-stream0.0.4间接
npm@types/node16.18.126间接
npm@types/node20.0.0间接
npm@types/node20.19.43间接
npm@types/node22.5.2间接
npm@types/node^20间接
npm@types/prop-types15.7.13间接
npm@types/protocol-buffers-schema3.4.3间接
npm@types/react18.3.12间接
npm@types/react19.0.10间接
npm@types/react^18.3.12间接
npm@types/react^19.0.10间接
npm@types/urijs1.19.26间接
npm@types/wrap-ansi3.0.0间接
npm@types/ws8.5.12间接
npm@types/ws^8.5.12间接
npmacorn8.14.1间接
npmacorn-walk8.3.4间接
npmagent-base6.0.2间接
npmagent-base9.0.0间接
npmajv5.5.2间接
npmajv6.5.2间接
npmajv8.20.0间接
npmajv-draft-041.0.0间接
npmajv-errors3.0.0间接
npmajv-formats2.1.1间接
npmalterschema1.1.3间接
npmansi-escapes4.3.2间接
npmansi-regex5.0.1间接
npmansi-regex6.2.2间接
npmansi-styles4.3.0间接
npmansi-styles6.2.3间接
npmanynum1.0.1间接
npmarg4.1.3间接
npmargparse1.0.10间接
npmargparse2.0.1间接
npmarray-buffer-byte-length1.0.2间接
npmarraybuffer.prototype.slice1.0.4间接
npmast-types0.13.4间接
npmastring1.9.0间接
npmasync-function1.0.0间接
npmasynckit0.4.0间接
npmavailable-typed-arrays1.0.7间接
npmavsc5.7.9间接
npmaxios1.18.1间接
npmbalanced-match1.0.2间接
npmbalanced-match4.0.4间接
npmbaseline-browser-mapping2.10.43间接
npmbasic-ftp5.3.1间接
npmbrace-expansion1.1.16间接
npmbrace-expansion5.0.7间接
npmcall-bind1.0.8间接
npmcall-bind-apply-helpers1.0.2间接
npmcall-bound1.0.4间接
npmcall-me-maybe1.0.2间接
npmcamel-case4.1.2间接
npmcaniuse-lite1.0.30001806间接
npmcapital-case1.0.4间接
npmchalk4.1.2间接
npmchalk5.6.2间接
npmchange-case4.1.2间接
npmcli-spinners2.9.2间接
npmcli-width4.1.0间接
npmclient-only0.0.1间接
npmcliui8.0.1间接
npmcliui9.0.1间接
npmclone1.0.4间接
npmco4.6.0间接
npmcolor-convert2.0.1间接
npmcolor-name1.1.4间接
npmcombined-stream1.0.8间接
npmcommander5.1.0间接
npmcommander8.3.0间接
npmcompare-versions6.1.1间接
npmconcat-map0.0.1间接
npmconcurrently10.0.3间接
npmconsola2.15.3间接
npmconsole.table0.10.0间接
npmconstant-case3.0.4间接
npmcontent-type1.0.5间接
npmcreate-require1.1.1间接
npmcsstype3.1.3间接
npmdata-uri-to-buffer8.0.0间接
npmdata-view-buffer1.0.2间接
npmdata-view-byte-length1.0.2间接
npmdata-view-byte-offset1.0.1间接
npmdebug4.4.3间接
npmdefaults1.0.4间接
npmdefine-data-property1.1.4间接
npmdefine-properties1.2.1间接
npmdegenerator7.0.1间接
npmdelayed-stream1.0.0间接
npmdependency-graph0.11.0间接
npmdetect-libc2.1.2间接
npmdiff4.0.2间接
npmdot-case3.0.4间接
npmdotenv16.4.5间接
npmdotenv^16.4.5间接
npmdunder-proto1.0.1间接
npmeasy-table1.1.0间接
npmemoji-regex10.6.0间接
npmemoji-regex8.0.0间接
npmes-abstract1.24.0间接
npmes-aggregate-error1.0.14间接
npmes-define-property1.0.1间接
npmes-errors1.3.0间接
npmes-module-lexer1.7.0间接
npmes-object-atoms1.1.1间接
npmes-set-tostringtag2.1.0间接
npmes-to-primitive1.3.0间接
npmesbuild0.28.1间接
npmescalade3.2.0间接
npmescape-string-regexp1.0.5间接
npmescodegen2.1.0间接
npmesprima4.0.1间接
npmestraverse5.3.0间接
npmestree-walker2.0.2间接
npmesutils2.0.3间接
npmexpr-eval-fork3.0.3间接
npmfast-deep-equal1.1.0间接
npmfast-deep-equal2.0.1间接
npmfast-deep-equal3.1.3间接
npmfast-json-stable-stringify2.1.0间接
npmfast-memoize2.5.2间接
npmfast-safe-stringify2.1.1间接
npmfast-uri3.1.4间接
npmfast-xml-builder1.3.0间接
npmfast-xml-parser5.10.1间接
npmfastest-stable-stringify2.0.2间接
npmfd-package-json2.0.0间接
npmfdir6.5.0间接
npmfigures3.2.0间接
npmfile-type21.3.4间接
npmfollow-redirects1.16.0间接
npmfor-each0.3.5间接
npmform-data4.0.6间接
npmformatly0.3.0间接
npmfs-extra11.3.6间接
npmfs.realpath1.0.0间接
npmfsevents2.3.3间接
npmfunction-bind1.1.2间接
npmfunction.prototype.name1.1.8间接
npmfunctions-have-names1.2.3间接
npmget-caller-file2.0.5间接
npmget-east-asian-width1.6.0间接
npmget-intrinsic1.3.0间接
npmget-proto1.0.1间接
npmget-symbol-description1.1.0间接
npmget-tsconfig4.14.0间接
npmget-uri8.0.1间接
npmglob13.0.6间接
npmglob7.2.3间接
npmglobalthis1.0.4间接
npmgopd1.2.0间接
npmgraceful-fs4.2.11间接
npmhas-bigints1.1.0间接
npmhas-flag4.0.0间接
npmhas-property-descriptors1.0.2间接
npmhas-proto1.2.0间接
npmhas-symbols1.1.0间接
npmhas-tostringtag1.0.2间接
npmhasown2.0.2间接
npmhasown2.0.4间接
npmheader-case2.0.4间接
npmhttp-proxy-agent9.1.0间接
npmhttps-proxy-agent5.0.1间接
npmhttps-proxy-agent9.1.0间接
npmieee7541.2.1间接
npmimmer9.0.21间接
npminflight1.0.6间接
npminherits2.0.4间接
npminternal-slot1.1.0间接
npmip-address10.2.0间接
npmis-array-buffer3.0.5间接
npmis-async-function2.1.1间接
npmis-bigint1.1.0间接
npmis-boolean-object1.2.2间接
npmis-callable1.2.7间接
npmis-data-view1.0.2间接
npmis-date-object1.1.0间接
npmis-finalizationregistry1.1.1间接
npmis-fullwidth-code-point3.0.0间接
npmis-generator-function1.1.0间接
npmis-map2.0.3间接
npmis-negative-zero2.0.3间接
npmis-number-object1.1.1间接
npmis-regex1.2.1间接
npmis-set2.0.3间接
npmis-shared-array-buffer1.0.4间接
npmis-string1.1.1间接
npmis-symbol1.1.1间接
npmis-typed-array1.1.15间接
npmis-unsafe2.0.0间接
npmis-weakmap2.0.2间接
npmis-weakref1.1.1间接
npmis-weakset2.0.4间接
npmisarray2.0.5间接
npmiterare1.2.1间接
npmjiti2.7.0间接
npmjs-tokens4.0.0间接
npmjs-yaml3.15.0间接
npmjs-yaml4.3.0间接
npmjsep1.4.0间接
npmjson-e4.8.0间接
npmjson-schema-migrate0.2.0间接
npmjson-schema-traverse0.3.1间接
npmjson-schema-traverse0.4.1间接
npmjson-schema-traverse1.0.0间接
npmjson-stable-stringify-without-jsonify1.0.1间接
npmjsonc-parser2.2.1间接
npmjsonfile6.1.0间接
npmjsonpath-plus10.4.0间接
npmjsonpath-plus7.2.0间接
npmjsonpointer5.0.1间接
npmjust-curry-it3.2.1间接
npmjust-curry-it5.3.0间接
npmjwt-decode4.0.0间接
npmjwt-decode^4.0.0间接
npmknip6.27.0间接
npmleven3.1.0间接
npmload-esm1.0.3间接
npmlodash4.18.1间接
npmlodash.topath4.5.2间接
npmlong5.3.2间接
npmloose-envify1.4.0间接
npmlower-case2.0.2间接
npmlru-cache11.5.2间接
npmlru-cache7.18.3间接
npmmagic-string0.30.12间接
npmmake-error1.3.6间接
npmmath-intrinsics1.1.0间接
npmmime-db1.52.0间接
npmmime-types2.1.35间接
npmminimatch10.2.5间接
npmminimatch3.1.5间接
npmminipass7.1.3间接
npmmoo0.5.2间接
npmms2.1.3间接
npmmute-stream1.0.0间接
npmnanoid3.3.16间接
npmnetmask2.1.1间接
npmnext16.2.10间接
npmnimma0.2.3间接
npmno-case3.0.4间接
npmnode-fetch2.6.7间接
npmnode-fetch2.7.0间接
npmobject-hash3.0.0间接
npmobject-inspect1.13.4间接
npmobject-keys1.1.1间接
npmobject.assign4.1.7间接
npmonce1.4.0间接
npmopenapi-types12.1.3间接
npmown-keys1.0.1间接
npmoxc-parser0.137.0间接
npmoxc-resolver11.21.3间接
npmpac-proxy-agent9.1.0间接
npmpac-resolver9.0.1间接
npmparam-case3.0.4间接
npmpascal-case3.1.2间接
npmpath-case3.0.4间接
npmpath-equal1.2.5间接
npmpath-expression-matcher1.6.2间接
npmpath-is-absolute1.0.1间接
npmpath-scurry2.0.2间接
npmpath-to-regexp8.4.2间接
npmpathe2.0.3间接
npmpicocolors1.1.1间接
npmpicomatch4.0.5间接
npmpony-cause1.1.1间接
npmpossible-typed-array-names1.0.0间接
npmpostcss8.4.31间接
npmprotobufjs7.6.5间接
npmproxy-agent8.0.2间接
npmproxy-agent-negotiate1.1.0间接
npmproxy-from-env2.1.0间接
npmpubsub-js1.9.5间接
npmpunycode2.3.1间接
npmquickjs-wasi2.2.0间接
npmramldt2jsonschema1.2.3间接
npmreact18.0.0间接
npmreact19.0.0间接
npmreact19.0.0-rc-69d4b800-20241021间接
npmreact-dom19.0.0-rc-69d4b800-20241021间接
npmreact-error-boundary4.1.2间接
npmreact-error-boundary^4.1.2间接
npmreflect-metadata0.2.2间接
npmreflect.getprototypeof1.0.10间接
npmregexp.prototype.flags1.5.4间接
npmrequire-directory2.1.1间接
npmrequire-from-string2.0.2间接
npmresolve-pkg-maps1.0.0间接
npmrollup4.62.2间接
npmrollup-plugin-dts6.1.1间接
npmrollup-plugin-esbuild6.2.1间接
npmrollup-plugin-preserve-directives0.4.0间接
npmrollup-plugin-preserve-directives^0.4.0间接
npmrun-async3.0.0间接
npmrxjs7.8.2间接
npmsafe-array-concat1.1.3间接
npmsafe-push-apply1.0.0间接
npmsafe-regex-test1.1.0间接
npmsafe-stable-stringify1.1.1间接
npmsafe-stable-stringify2.5.0间接
npmscheduler0.25.0-rc-69d4b800-20241021间接
npmsemver7.8.5间接
npmsentence-case3.0.4间接
npmset-function-length1.2.2间接
npmset-function-name2.0.2间接
npmset-proto1.0.0间接
npmsharp0.34.5间接
npmshell-quote1.8.4间接
npmside-channel1.1.0间接
npmside-channel-list1.0.0间接
npmside-channel-map1.0.1间接
npmside-channel-weakmap1.0.2间接
npmsignal-exit4.1.0间接
npmsmart-buffer4.2.0间接
npmsmol-toml1.7.0间接
npmsnake-case3.0.4间接
npmsocks2.8.9间接
npmsocks-proxy-agent10.1.0间接
npmsource-map0.6.1间接
npmsource-map-js1.2.1间接
npmsprintf-js1.0.3间接
npmstop-iteration-iterator1.1.0间接
npmstring-width4.2.3间接
npmstring-width7.2.0间接
npmstring.prototype.trim1.2.10间接
npmstring.prototype.trimend1.0.9间接
npmstring.prototype.trimstart1.0.8间接
npmstrip-ansi6.0.1间接
npmstrip-ansi7.2.0间接
npmstrip-json-comments5.0.3间接
npmstrnum2.4.1间接
npmstrtok310.3.5间接
npmstyled-jsx5.1.6间接
npmsupports-color10.2.2间接
npmsupports-color7.2.0间接
npmtinyglobby0.2.17间接
npmtoken-types6.1.2间接
npmtr460.0.3间接
npmtree-kill1.2.2间接
npmts-node10.9.2间接
npmtslib1.14.1间接
npmtslib2.8.1间接
npmtsx4.23.1间接
npmtype-fest0.21.3间接
npmtyped-array-buffer1.0.3间接
npmtyped-array-byte-length1.0.3间接
npmtyped-array-byte-offset1.0.4间接
npmtyped-array-length1.0.7间接
npmtypescript4.9.5间接
npmtypescript5.5.4间接
npmtypescript^5间接
npmtypescript-json-schema0.58.1间接
npmuid2.0.2间接
npmuint8array-extras1.5.0间接
npmunbash4.0.3间接
npmunbox-primitive1.1.0间接
npmundici-types6.19.8间接
npmundici-types6.21.0间接
npmuniversalify2.0.1间接
npmunplugin-utils0.2.5间接
npmupper-case2.0.2间接
npmupper-case-first2.0.2间接
npmuri-js4.4.1间接
npmurijs1.19.11间接
npmutility-types3.11.0间接
npmv8-compile-cache-lib3.0.1间接
npmwalk-up-path4.0.0间接
npmwcwidth1.0.1间接
npmwebapi-parser0.5.0间接
npmwebidl-conversions3.0.1间接
npmwhatwg-url5.0.0间接
npmwhich-boxed-primitive1.1.1间接
npmwhich-builtin-type1.2.1间接
npmwhich-collection1.0.2间接
npmwhich-typed-array1.1.19间接
npmwrap-ansi6.2.0间接
npmwrap-ansi7.0.0间接
npmwrap-ansi9.0.2间接
npmwrappy1.0.2间接
npmxml-naming0.3.0间接
npmy18n5.0.8间接
npmyaml2.5.0间接
npmyaml2.9.0间接
npmyaml^2.5.0间接
npmyargs17.7.2间接
npmyargs18.0.0间接
npmyargs-parser21.1.1间接
npmyargs-parser22.0.0间接
npmyn3.1.1间接
依赖安全公告 11

该仓库未发布可被索引解析的包,因此评估的是其自身的依赖图——共 615 个包,其中也包含从不交付的开发与测试版本固定:11 个存在已知公告,0 个为直接依赖。 有 17 个无法评估——没有已解析的版本、生态系统不受支持,或不在所列包清单之内。

软件包版本关系严重程度公告数修复版本
jsonpath-plus7.2.0间接严重210.3.0
brace-expansion1.1.16间接15.0.8
brace-expansion5.0.7间接15.0.8
next16.2.10间接916.2.11
postcss8.4.31间接38.5.18
sharp0.34.5间接10.35.0
shell-quote1.8.4间接11.9.0
ajv5.5.2间接28.18.0
ajv6.5.2间接28.18.0
diff4.0.2间接18.0.3
yaml2.5.0间接12.8.3

公告表示依赖图中记录的版本落入某条公告的受影响范围。可达性未经分析,且依赖图包含开发与测试的版本固定——某项发现可能只涉及工具链而非交付的软件。

原始 JSON 报告 机器可读
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 4585,
      "has_wiki": false,
      "homepage": null,
      "languages": {
        "HTML": 29815,
        "Shell": 738,
        "JavaScript": 13740,
        "TypeScript": 243897
      },
      "pushed_at": "2026-07-21T12:21:39Z",
      "created_at": "2023-09-01T10:33:05Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-21T11:04:45Z",
      "description": "Javascript and Typescript SDK for Speechmatics",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript",
        "HTML"
      ]
    },
    "owner": {
      "blog": "https://www.speechmatics.com",
      "name": "Speechmatics",
      "type": "Organization",
      "login": "speechmatics",
      "company": null,
      "location": "Cambridge, United Kingdom",
      "followers": 120,
      "avatar_url": "https://avatars.githubusercontent.com/u/15156030?v=4",
      "created_at": "2015-10-16T10:02:50Z",
      "is_verified": null,
      "public_repos": 53,
      "account_age_days": 3936
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "real-time-client@5.0.1",
          "kind": "other",
          "published_at": "2024-10-30T20:40:49Z"
        },
        {
          "tag": "v4.0.0",
          "kind": "major",
          "published_at": "2024-06-18T14:21:59Z"
        },
        {
          "tag": "v3.1.7",
          "kind": "patch",
          "published_at": "2024-01-24T11:36:44Z"
        },
        {
          "tag": "v3.1.6",
          "kind": "patch",
          "published_at": "2024-01-11T13:23:12Z"
        },
        {
          "tag": "v3.1.5",
          "kind": "patch",
          "published_at": "2024-01-10T10:08:58Z"
        },
        {
          "tag": "v.3.1.4",
          "kind": "other",
          "published_at": "2023-12-18T14:45:05Z"
        },
        {
          "tag": "v3.1.3",
          "kind": "patch",
          "published_at": "2023-11-28T14:07:48Z"
        },
        {
          "tag": "v3.1.2",
          "kind": "patch",
          "published_at": "2023-10-25T12:35:59Z"
        },
        {
          "tag": "v3.1.1",
          "kind": "patch",
          "published_at": "2023-09-13T12:58:17Z"
        },
        {
          "tag": "v3.1.0",
          "kind": "minor",
          "published_at": "2023-09-13T10:11:12Z"
        },
        {
          "tag": "v3.0.2",
          "kind": "patch",
          "published_at": "2023-09-04T09:40:51Z"
        },
        {
          "tag": "v3.0.1",
          "kind": "patch",
          "published_at": "2023-09-01T14:24:37Z"
        },
        {
          "tag": "v3.0.0",
          "kind": "major",
          "published_at": "2023-09-01T14:13:28Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "f0d1fb86ff9eb1783a0e94972a669ad20ebb8e42",
          "body": "Bumps\n[rollup-plugin-esbuild](https://github.com/egoist/rollup-plugin-esbuild)\nfrom 6.1.1 to 6.2.1.\n<details>\n<summary>Release notes</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/egoist/rollup-plugin-esbuild/releases\">rollup-plugin-esbuild's\nreleases</a>.</em></p>\n<blockquote>\n<h2>v6.2.1\n[…]\n/v6.1.1...v6.2.1\">compare\nview</a></li>\n</ul>\n</details>\n<br />\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump rollup-plugin-esbuild from 6.1.1 to 6.2.1 (#223)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-21T11:03:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "55ccd123b8c55411a0da3c53c7ae7c2765e15b02",
          "body": "# Dependency updates — July 2026\n\nBranch: `chore/update-deps-jul-2026`\n\n## Bumped (committed)\n\n| Dependency | Result | How | Commit |\n| --- | --- | --- | --- |\n| `rollup` | `^4.21.2` → `^4.59.0` (4.62.2) | direct range bump |\n`1bb350d` |\n| `ws` | `^8.18.0` → `^8.21.0` (8.21.1) | direct, both client \n[…]\nranch also carries other commits (realtime package version bumps,\nthe `getJWT` example fix, `@changesets/cli` removal).\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Chore: update dependencies (July 2026) (#218)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2026-07-21T10:06:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "03f5f1dd8af053b0e2945978a9c8e147d79a7d18",
          "body": "- Install [Knip](https://www.npmjs.com/package/knip) to find/remove\nunused dependencies\n- Configure appropriately for packages with particular dependency\nstructures\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Chore: Remove unused dependencies (#217)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2026-07-20T14:03:44Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2ace3d0338ad4edc913353c1ea392d51b6534047",
          "body": "Note: In the future a React Native example for Realtime transcription\nwill be added in a separate repo.",
          "is_bot": false,
          "headline": "Remove React Native example for Flow (#216)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2026-07-20T13:36:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3a5f9e8fc22437c011aa0e13e7e9f7ea08f46df",
          "body": "…rt (#215)\n\nUpgrade the real-time transcription example to Next.js 16 (Turbopack).\nSince Turbopack doesn't run webpack plugins, replace the\nCopyWebpackPlugin step with a `turbopack.rules` asset rule so the PCM\nworklet is emitted as a static asset and the import resolves to its URL.\n\nShip a type decl\n[…]\nser-audio-input` and\n`@speechmatics/browser-audio-input-react` to 2.0.4, and remove the\nnow-unused nextjs-flow example.\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Update Next.js examples to v16 and improve AudioWorklet bundler suppo…",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2026-07-20T13:32:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5a96e5c684d4b4cb8d0380bc86e47a9ab082511b",
          "body": "This fixes a regression introduced in version 5.4.1 where clients\nconfigured with the default API URL no longer constructed the correct\npath. Unit test added to ensure compatibility.",
          "is_bot": false,
          "headline": "`batch-client`: Fix default apiurl subpath (#212)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2026-06-19T14:04:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8b9fd5aa79ec4de23a5be1cf3cd5389bef6187ad",
          "body": "…211)\n\n## Problem\n\nWhen callers pass a custom `apiUrl` which includes a subpath (e.g.\n`https://some.gateway.com/speechmatics`), the `/speechmatics` subpath is\nstripped, so calls are made to `https://some.gateway.com/v2/jobs`\ninstead of `https://some.gateway.com/speechmatics/v2/jobs.\n\n## Solution\n\n[A\n[…]\ne\nissue](https://github.com/speechmatics/speechmatics-js-sdk/issues/209),\nwhen constructing the full URL for a request, we take into account both\nthe origin _and_ the subpath of the provided `apiUrl`.",
          "is_bot": false,
          "headline": "`batch-client`: Ensure subpaths on provided `apiURL` are respected (#…",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2026-06-19T11:00:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "22146b724e243f5098776b230753be790d14b3f8",
          "body": null,
          "is_bot": false,
          "headline": "Support Melia 1 in Batch and RT SDKs (#210)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2026-06-17T10:13:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df19b4b1ee067ed8d22b093a8c35d8f41a35fcc6",
          "body": "- Update batch and realtime `TranscriptionConfig` schemas to include new\nproperty `model` with the same definition as `OperatingPoint`\n- Deprecate `operating_point` and update description\n- Configure Typescript generator to handle `@deprecated` annotation.\nThis can be removed if/when the following issue is resolved:\nhttps://github.com/asyncapi/modelina/issues/2569\n- Update examples to use `model` instead of `operating_point`",
          "is_bot": false,
          "headline": "Deprecate `operating_point` in batch and RT (#207)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2026-06-05T13:09:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "42dfba5a44b09cc1ceb7539495f8f73cdd8884eb",
          "body": "- Fixes https://github.com/speechmatics/speechmatics-js-sdk/issues/197",
          "is_bot": false,
          "headline": "Update batch spec and generated types (#204)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2026-05-11T16:52:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a97b18eab8fe6dbbcbf59892fc9ff6bb205c2dab",
          "body": null,
          "is_bot": false,
          "headline": "Add missing `repository` fields to all packages (#206)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2026-05-11T16:48:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "be551cc0b45fe7a79c168211410f916e5882ff07",
          "body": "- Add `timestamp` field to `ForceEndOfUtterance` request\n- Update `real-time-client` and `real-time-client-react` package\nversions",
          "is_bot": false,
          "headline": "Update RT spec and version (#205)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2026-05-08T09:22:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f34e2191fe8641720c14a23e7acf60d5ee668fb2",
          "body": "- Remove NPM access token from pipeline\n- Configure NPM to use trusted publishing with provenance:\nhttps://docs.npmjs.com/trusted-publishers\n- Bump NodeJS version to 24.15 and NPM to 11.5 to support trusted\npublish flow\n- Bump Github Actions to v6",
          "is_bot": false,
          "headline": "Fix trusted publish (#202)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2026-05-06T16:29:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e8a02068a34f2b21dec5cfcf1ed85ab2af91c27",
          "body": null,
          "is_bot": false,
          "headline": "Fix registry URL in `cd.yml` (#200)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2026-04-24T15:11:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2f8db741510526149c68b6b6c9405b768b591777",
          "body": null,
          "is_bot": false,
          "headline": "Release `@speechmatics/web-pcm-player@1.1.0` (#199)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2026-04-24T14:47:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e40f0066af1820e924e8fdea897e5293f0890772",
          "body": "## Background\n\nNPM now recommends Trusted Publish from Github in favour of access\ntokens: https://docs.npmjs.com/trusted-publishers. This PR updates the\nexisting publishing workflow to enable the necessary OIDC exchange,\nmaking publishing more secure.\n\n## Changes\n\n- Remove NPM auth token from `cd.yml`\n-  Add `--provenance` tag to the publish command",
          "is_bot": false,
          "headline": "Enable trusted publish for NPM packages (#198)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2026-04-24T14:19:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fdcfb2538f68fcca29a5c8d131c1fef3fc5b3f68",
          "body": "Allows pausing audio immediately and clearing the queue.\n\nCo-authored-by: Islam Sharabash <islam.sharabash@gmail.com>",
          "is_bot": false,
          "headline": "Adding interrupt method to web pcm player (#194)",
          "author_name": "ibash-corpusant",
          "author_login": "ibash-corpusant",
          "committed_at": "2026-04-24T13:33:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c0da77404c9cbcc3035e7bf92116c4da57322cd4",
          "body": "Allows the `@speechmatics/real-time-client` to be consumed directly from\nthe browser via CDN, similar to `@speechmatics/browser-audio-input`",
          "is_bot": false,
          "headline": "Add minified build target for `real-time-client` (#196)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2026-04-02T14:55:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fb21f29388e788790018f8b50957334909091b16",
          "body": "- Use Docs site RT spec as source of truth for codegen\n- Generate models against latest RT spec including:\n  - Adding support for multi channel audio outside of preview mode\n    https://github.com/speechmatics/speechmatics-js-sdk/issues/192\n  - Renaming of tags interface\n- Customise code generation \n[…]\ntead of just `Object` (couldn't find a way to override this more\ncleanly)\n- Expose `forceEndOfUtterance` method on client for convenience\nhttps://github.com/speechmatics/speechmatics-js-sdk/issues/192",
          "is_bot": false,
          "headline": "`real-time-client`: Update to latest schema (#193)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2026-01-27T17:06:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "549af3b7787a80931f2c212736e79890823f3224",
          "body": "…#189)\n\nAdditionally enable comments in type definitions, to give useful\ndocstrings.",
          "is_bot": false,
          "headline": "Pass `connectionTimeout` option to Realtime client in React context (…",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-11-11T10:21:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d7a954d406c025a347ede646490ddb3258b6c4f",
          "body": null,
          "is_bot": false,
          "headline": "Realtime: Allow connection timeout to be configured (#182)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-10-28T11:41:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e857385c02bd5bf7948fd3ce90648e97681ddd0a",
          "body": "Co-authored-by: Matt Nemitz <matt.nemitz@gmail.com>",
          "is_bot": false,
          "headline": "Add Force end of utterance (#186)",
          "author_name": "Tudor Evans",
          "author_login": "TudorCRL",
          "committed_at": "2025-10-24T10:28:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "87667139bbcf245056d60c9850a4f303ddef7ebd",
          "body": "This realtime PR:\n* Updates the schema with a few recent refreshes\n* Adds speaker ID as a feature to RT with a new function,\ngetSpeakers(final?: boolean) that let's users request the speaker IDs\n(and optionally wait until the end of the session to receive them)\n* Add setRecognitionConfig to react package\n\n---------\n\nCo-authored-by: Matt Nemitz <matt.nemitz@gmail.com>",
          "is_bot": false,
          "headline": "Add speaker id to rt (#183)",
          "author_name": "Tudor Evans",
          "author_login": "TudorCRL",
          "committed_at": "2025-10-23T13:27:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1d535e273e832568607b7f3144bee376f156cf45",
          "body": "Checks for and handles missing navigator.permissions object in older\nbrowsers.\n\nFix #171",
          "is_bot": false,
          "headline": "browser-audio-input: handle missing permissions (#171) (#172)",
          "author_name": "Tomas Fagerbekk",
          "author_login": "tomfa",
          "committed_at": "2025-08-27T09:15:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20e904067161cdfd3dbe69a3178785f7e1a4570c",
          "body": null,
          "is_bot": false,
          "headline": "Fix lockfile version (#169)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-08-06T15:46:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cdc853f482ba78cf9ef092e8170d96d0cce54bd1",
          "body": null,
          "is_bot": false,
          "headline": "Support tts (#168)",
          "author_name": "Tudor Evans",
          "author_login": "TudorCRL",
          "committed_at": "2025-08-06T13:14:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "24cf966c4d5309e9d676c4257c9da23130a9e7a2",
          "body": null,
          "is_bot": false,
          "headline": "Add transcript filtering (#162)",
          "author_name": "Tudor Evans",
          "author_login": "TudorCRL",
          "committed_at": "2025-07-16T12:50:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca3056948f2ae28a12bec2c91bde0b47f4d0c5f7",
          "body": null,
          "is_bot": false,
          "headline": "`browser-audio-input`: Bump version (#161)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-07-15T10:12:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "58dd381f94ff07942a036b9156d9647248206510",
          "body": "- Memoizes the return object of `useAudioDevices`\n- make `useAudioDevices` returns a consistent set of keys \n\nfixes #157",
          "is_bot": false,
          "headline": "Improve useAudioDevices DX (#158)",
          "author_name": "Tomas Fagerbekk",
          "author_login": "tomfa",
          "committed_at": "2025-07-15T09:27:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d219bfee9166736e6aa21598535a194387b84be",
          "body": "…150)\n\n- Add new package `@speechmatics/use-flow-transcript`\n- Bring over example implementation from `nextjs-flow`\n- Adjust naming/extracting utility functions\n- Add docstrings with examples",
          "is_bot": false,
          "headline": "Flow: Extract transcript manager from example into utility package (#…",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-06-24T18:04:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5c493050a793c9048c80e75114cac7cb13d74574",
          "body": null,
          "is_bot": false,
          "headline": "Remove app id from readmes (#151)",
          "author_name": "Tudor Evans",
          "author_login": "TudorCRL",
          "committed_at": "2025-06-20T13:59:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a8c5ecaf0e77a820368b1c68369d8b6e2fe157b9",
          "body": null,
          "is_bot": false,
          "headline": "Fix/word replacements (#149)",
          "author_name": "Tudor Evans",
          "author_login": "TudorCRL",
          "committed_at": "2025-06-19T13:08:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "47fc0439944a270e3b8109b92a5630ae144f15ae",
          "body": "- Add `type: \"object\"` to all schema items which either:\n  - have `properties` defined\n  - are a `oneOf` with variants which have `properties`\n- Re-run model generation",
          "is_bot": false,
          "headline": "Real-time client: Add missing `type: \"object\"` to schema items (#148)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-06-18T10:13:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "807c082f91189bd9ef6796bf8cc17c89beb287f8",
          "body": "…3 spec (#143)\n\n- Remove existing RT schema generation scripts\n- Bring updated RT schema using AsyncAPI V3, with note that it may\nchange\n- Add `generate-models` script using Modelina to output TS interfaces\n- Update package to work with new types\n- Update version and React-wrapper version\n- Tested the example app works as expected with the latest version",
          "is_bot": false,
          "headline": "Generate Real-time transcription models with Modelina from AsyncAPI v…",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-06-13T14:42:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "784401aebb05b1709718847b3303aa20ea2e557b",
          "body": "…#141)\n\nRemove tracks from `mediaStream` in addition to stopping on cleanup.\nThis removes the microphone indicator in Safari after recording stops",
          "is_bot": false,
          "headline": "`browser-audio-input`:  Remove tracks from `mediaStream` on cleanup (…",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-06-06T11:10:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "874c853300645e03976b31778d8840d3bcd885ca",
          "body": "Bumps [@picocss/pico](https://github.com/picocss/pico) from 2.0.6 to\n2.1.1.\n<details>\n<summary>Release notes</summary>\n<p><em>Sourced from <a\nhref=\"https://github.com/picocss/pico/releases\"><code>@​picocss/pico</code>'s\nreleases</a>.</em></p>\n<blockquote>\n<h2>v2.1.1</h2>\n<h3>Fix</h3>\n<ul>\n<li>Remove\n[…]\nnless you reopen the\nPR or upgrade to it yourself)\n\n\n</details>\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump @picocss/pico from 2.0.6 to 2.1.1 (#139)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2025-06-04T16:57:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "08fa6960b2a27128ea5b985c04c84a6019a39342",
          "body": null,
          "is_bot": false,
          "headline": "Add dependabot to SDK repo (#135)",
          "author_name": "Tudor Evans",
          "author_login": "TudorCRL",
          "committed_at": "2025-06-04T10:32:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bd8f906629df2b40687ea20d9e56c9511047717b",
          "body": null,
          "is_bot": false,
          "headline": "Fix real-time and flow examples so they work in Firefox (#134)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-05-27T18:27:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4c4ba93d6941abda58735829a219c518d8d30282",
          "body": "Clean up media stream after prompting for device permission. For more\ncontext, see issue:\nhttps://github.com/speechmatics/speechmatics-js-sdk/issues/128\n\n---------\n\nCo-authored-by: Matt Nemitz <mattn@speechmatics.com>",
          "is_bot": false,
          "headline": "browser-audio-input: cleanup media stream after permission prompt (#130)",
          "author_name": "Henrik Nerdrum",
          "author_login": "hnerdrum",
          "committed_at": "2025-05-06T12:40:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5e70bb856c729952f9488e274e624f8014238b11",
          "body": null,
          "is_bot": false,
          "headline": "`@speechmatics/auth` test: Fix lack of early return after skip (#132)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-05-06T11:05:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bd1b0e3813d5d00c5965ef1d146dacaad6f2b45d",
          "body": "## Problem\n\nTests for `@speechmatics/auth` fail for fork PRs, since they don't have\naccess to the necessary API key (nor should they)\n\n## Solution\n\nSkip the auth tests whenever the `API_KEY` environment variable is not\npresent",
          "is_bot": false,
          "headline": "Skip auth tests if API key not set (i.e. if in a fork) (#131)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-05-06T10:55:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1f29dec9b15da91495dcceda60668275f0724d6e",
          "body": "- Fix call to `usePCMAudioRecorder` without context\n- Fix language display names (broken since `en_ta` was added, which is\nnot ISO compliant)",
          "is_bot": false,
          "headline": "Fix broken RT example (#129)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-05-02T13:27:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20605a79d3f9cab01f91f3979c9a61ca8984572d",
          "body": null,
          "is_bot": false,
          "headline": "Livekit POC (#120)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-04-09T10:26:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f2084d3f42082dfaedab1dfb9119fc0e4ad13deb",
          "body": "- Remove `window.MessageEvent` dependency\n- Add `SendMessageEvent` and `ReceiveMessageEvent` classes to replace\n`MessageEvent`\n- Update versions",
          "is_bot": false,
          "headline": "Update RT client to work in React Native (#125)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-04-03T13:46:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c1903a9851446651467dc744b8951fb2b4d41925",
          "body": null,
          "is_bot": false,
          "headline": "Use enhanced operating point in ASR examples (#124)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-03-31T09:05:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ff0815a32876e26ab5999845b0e188abea249f04",
          "body": "https://nextjs.org/blog/cve-2025-29927\n\nAlso remove unused package-lock.json files",
          "is_bot": false,
          "headline": "Bump NextJS to address CVE security patch (#123)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-03-25T12:25:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "be90af7508f9510274c25df495bf7cd164b59236",
          "body": "## Package changes\n\n⚠️ This is a breaking change to the following packages:\n- `@speechmatics/browser-audio-input`\n- Update `PCMRecorder` class to clean up the `AudioWorkletNode`, rather\nthan assuming the `AudioContext` will be closed.\n- Automatically `resume` audio context when `startRecording` is c\n[…]\na\"\n/>\n\n\nNextJS real-time\n\n- Update dependencies, including React types (which were mistakenly at\n18 instead of 19)\n\n---------\n\nCo-authored-by: Tudor Evans <104087420+TudorCRL@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Refactor PCM audio utilities and add support for visualizers (#119)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-03-21T10:46:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5c686b40715bb791e83b1724ba6074bf0a9b2a81",
          "body": "- Add missing\n[`concurrent_session_usage`](https://docs.speechmatics.com/rt-api-ref#info)\nmessage to spec and types\n- Fix openapi generation script",
          "is_bot": false,
          "headline": "Update RT spec: Add missing info session variant (#118)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-02-25T10:15:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9fa0bec18d5045c2636b8c2f6b91d2728f63041f",
          "body": null,
          "is_bot": false,
          "headline": "Add missing properties to Persona interface (#117)",
          "author_name": "BTaylor",
          "author_login": "BellaT",
          "committed_at": "2025-02-18T14:02:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "40920d1293b5dd95dc5c70743c6698f2601c2440",
          "body": "Fix broken NextJS example link",
          "is_bot": false,
          "headline": "Update README.md (#116)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-02-12T11:18:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f550d9edcf84709f606dfcb55a4ec36ca1f17687",
          "body": "Add missing `prepare` scripts so that clean installs build the necessary\r\ndependencies",
          "is_bot": false,
          "headline": "Fix PCM player build (#115)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-01-30T16:01:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9bcfc551adea025d06149392d5232d460982ffa4",
          "body": "- Use Node version 22\r\n- Update JSON imports in Rollup build files to use new (stable) JSON\r\nimport syntax\r\n- Update `nvmrc` and `package.json`\r\n- Update documentation",
          "is_bot": false,
          "headline": "Use Node 22 (#114)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-01-30T15:53:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "64b5d51e0658492119b9c07c5b1b8f5f74103610",
          "body": null,
          "is_bot": false,
          "headline": "browser-audio-input: Add mute + unmute to PCM recorder (#113)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-01-30T13:29:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c007b94156f4a8fd48f68ba886766e0f229394f",
          "body": null,
          "is_bot": false,
          "headline": "Update NextJS example readme with PCM player (#112)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-01-29T14:17:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6cbe8d843a5fb5ad2f571405612d2d1b7216eaf2",
          "body": "- Add package `@speechmatics/web-pcm-player` which exposes a `PCMPlayer`\r\nclass. This class operates on a given `AudioContext`\r\n- Add package `@speechmatics/web-pcm-player-react` which provides a hook\r\nfor integrating the player into React apps\r\n- Update NextJS Flow example to use the above library, remove existing\r\nPCM player implementation",
          "is_bot": false,
          "headline": "Add PCM player packages (#109)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-01-29T13:57:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d28abed0b30a310b9d5bcd0131ee34b85a0219e6",
          "body": "Move `lib/`, `components/` and `hooks/` outside of `app/` directory and\r\nupdate imports.",
          "is_bot": false,
          "headline": "NextJS examples: exclude library code from routing (#110)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-01-28T13:06:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "29075447c7f8dfb8e7c5cfeb6941c897cbb039fa",
          "body": "Currently, the Node real-time example gives a timeout error when\r\nstreaming files longer than 10 seconds. This is because we call\r\n`stopRecognition` when the data is finished streaming, but there is\r\nstill audio/transcription being processed before the server disconnects.\r\n\r\nThis PR allows the user \n[…]\n `noTimeout`, to disable waiting for\r\nan `EndOfTranscript` message, facilitating faster-than-real-time use\r\ncases.\r\n\r\nAdditionally cleaning up error messages and bumping versions of changed\r\npackages.",
          "is_bot": false,
          "headline": "RT: Add option to disable timeout on `stopRecognition()` (#111)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-01-28T12:02:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f967797f6db93da4cbd96c6789e10181c5f29b94",
          "body": "- Add `SocketStateChangeEvent` which can be used for hooking into socket\r\nstate changes\r\n- Remove unused `ConnectionState` type",
          "is_bot": false,
          "headline": "Real-time: Extend socket state events with current status (#107)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-01-24T10:13:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e3c6927e190ef80b657a86fec8aeac9d7bed2a7",
          "body": null,
          "is_bot": false,
          "headline": "Ensure React-native test does not hang (#108)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-01-24T09:51:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "376555020aae2904a9b673be1054f635dcfa9a89",
          "body": "Previously, changing the `url` property for the\r\n`RealtimeTranscriptionProvider` did not result in any change, since the\r\nclient was kept in state. This PR uses `useMemo` to re-instantiate the\r\nclient if the URL changes, and clean up the old connection if it's\r\nactive during the change.",
          "is_bot": false,
          "headline": "Allow URL change for realtime transcription provider (#101)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-01-23T13:42:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aef745024743399fde689f3ac56b29cb6225985c",
          "body": "# Summary\r\n\r\nThis PR solves two separate problems encountered when using the Flow SDK\r\nin Firefox:\r\n\r\n## 1. Device enumeration\r\n\r\n### Problem\r\n\r\nOn Firefox, unlike Chrome and Safari, the `enumerateDevices` method does\r\nnot return a list of media devices if not immediately preceded by the\r\ncreation o\n[…]\nFirefox can't capture audio at 16,000Hz (or any custom sample rate).\r\n\r\n### Solution\r\n\r\nUse a separate `AudioContext` for playback in Firefox, and allow it to\r\nrecord at whatever sample rate it wants.",
          "is_bot": false,
          "headline": "Various fixes for Firefox (#102)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-01-22T14:21:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c88b06d4811e279b80a4b59ed165bde78edf0531",
          "body": "Co-authored-by: Matt Nemitz <mattn@speechmatics.com>",
          "is_bot": false,
          "headline": "Create new next example (#103)",
          "author_name": "BTaylor",
          "author_login": "BellaT",
          "committed_at": "2025-01-22T12:24:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0e73bd42122cbed727a86804555815dab52b9cd9",
          "body": null,
          "is_bot": false,
          "headline": "React native example for Flow (#105)",
          "author_name": "Anartz Nuin",
          "author_login": "anjz",
          "committed_at": "2025-01-21T12:04:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "904e1f0c81c5fff997dbcaff2ca5047312117a47",
          "body": "- Enable echo cancellation, noise suppression and auto gain control by\r\ndefault\r\n- Document defaults and how to override them in READMEs for both base\r\npackage and React wrapper\r\n- Bump versions\r\n- Update outdated docs/examples\r\n\r\n---------\r\n\r\nCo-authored-by: BTaylor <bellataylorlondon@gmail.com>",
          "is_bot": false,
          "headline": "Browser audio input: Enable default `MediaTrackConstraints` (#104)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-01-15T14:45:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f8f1e3bb8385ceabcd71757fdad1d25ccf5dc167",
          "body": "# Problem\r\n\r\nCreating a visualizer for the audio recorded with\r\n`@speechmatics/browser-audio-input-react` is too hard.\r\n\r\n# Solution\r\n\r\nThis PR updates the packages `@speechmatics/browser-audio-input` and\r\n`@speechmatics/browser-audio-input-react` to make it easier for\r\nconsumers to create audio vis\n[…]\nMRecorder`\r\nclass\r\n- Update `browser-audio-input-react` package to expose the analyser to\r\nthe top level hook\r\n- Style change: Rename `Pcm*` to `PCM*` for all user-facing APIs, since\r\nit is an acronym",
          "is_bot": false,
          "headline": "Add analyser to PCM audio recorder (#100)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-01-13T17:13:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3ab1258841669655dc1ec438174d349f3ccf6f58",
          "body": "- Add package `@speechmatics/real-time-client-react`, following similar\r\narchitecture to `flow-client-react`\r\n- Update NextJS example to include a real-time page. Refactor some of\r\nthe example code",
          "is_bot": false,
          "headline": "Real-time react package (#88)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-01-10T14:46:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a807c8976ecab35c43f557442973ed32ade665ea",
          "body": "Set `\"type\": \"module\"` for `@speechmatics/browser-audio-input-react`",
          "is_bot": false,
          "headline": "`browser-audio-input-react`: Ensure module is loaded as ESM (#99)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-01-10T10:44:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74dc23e34ab458281ecf6efc4cbefc06bd215eba",
          "body": null,
          "is_bot": false,
          "headline": "Refactor NextJS example (#98)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-01-08T12:53:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b0abb80f8dd08127c35b466746421d45cbc0242",
          "body": "## Summary\r\n\r\nThis PR implements fixed-time buffering for incoming TTS audio. The\r\nduration of the buffer is determined by the `audioBufferingMs` option.\r\n\r\nThis option already exists in the SDK, but was previously implemented\r\nwith a `setTimeout`, which did not guarantee a reliable buffer. This PR\r\n[…]\nCompleted` or `ResponseInterrupted` message is received. This\r\nis to prevent audio getting stuck. This logic may need some finessing\r\nbut so far seems to be working well when the network is throttled.",
          "is_bot": false,
          "headline": "Flow client: Implement fixed-time buffering (#97)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2025-01-06T11:29:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5f107d3842ea7df15e57d3b31a2fb2416b1a15f4",
          "body": null,
          "is_bot": false,
          "headline": "Bump `flow-client-react` to latest version (#96)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-12-11T12:22:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8dc06bd6e85461215b6b4da653d10ec0b0a0894d",
          "body": "## Problem\r\n\r\nWhen recording audio in the browser, it's not very straightforward to\r\ncapture PCM audio data, since the `MediaRecorder` API only provides\r\nencoded audio, and the `scriptProcessor` approach is both deprecated and\r\nflaky in terms of performance.\r\n\r\n## Solution\r\n\r\n1. Update the existing \n[…]\nioRecorderProvider` to provide the React\r\ncontext needed for the previous two\r\n3. Update the NextJS example to use the above React bindings instead of\r\nthe deprecated `createScriptProcessor` approach.",
          "is_bot": false,
          "headline": "Add PCM audio capture to browser audio input library (#95)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-12-10T16:14:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dda3f8dd5815962e2d88f8e5616ed8d7f9faf6b5",
          "body": null,
          "is_bot": false,
          "headline": "Flow: Add missing `AddPartialTranscription` message (#92)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-12-04T12:52:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af64210449fb11fdfca9d51f12b69c7369444381",
          "body": "- Add `enableLegacyMode` options to Realtime client\r\n- Add docstrings for other options too",
          "is_bot": false,
          "headline": "Add legacy mode option to RT client (#90)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-11-27T10:52:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "072cf8b88b98a717953eb0d7da609e8398cf0239",
          "body": "- Add `@speechmatics/auth` package which can be used to generate JWTs\r\nfor batch, real-time and Flow\r\n- Readme + links to documentation\r\n- Updated examples",
          "is_bot": false,
          "headline": "Add `@speechmatics/auth` package for JWT creation (#67)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-11-20T16:46:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6997dde8b6957ba77a9446439e55c9cb08e69afa",
          "body": "Releases the following changes:\r\nhttps://github.com/speechmatics/speechmatics-js-sdk/pull/84",
          "is_bot": false,
          "headline": "Bump RT version (#85)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-11-15T14:45:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d6bee6f147a5acf402e442c37133dcfcdb7ed022",
          "body": "…#84)\n\nCurrently impossible to override config to audio format on the real time\r\nclient. This allows the user to override",
          "is_bot": false,
          "headline": "fix(real-time-client): allow user to override audio_format on start (…",
          "author_name": "Franz von der Lippe",
          "author_login": "franzwilhelm",
          "committed_at": "2024-11-15T14:40:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d682a857619f1db3480d6d78e593b87f712b3f8d",
          "body": null,
          "is_bot": false,
          "headline": "Fix lockfile, force pnpm version (#83)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-11-06T15:44:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "54d0ad33bc68b10df7badf06349d7b5fa7f6c720",
          "body": null,
          "is_bot": false,
          "headline": "Fix lint error, add check in CI (#82)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-11-06T14:54:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d04c6b59565fddd9973537998e4805d4d49fe118",
          "body": "Add transcript message. Copy across types from realtime client for now.",
          "is_bot": false,
          "headline": "Add transcript message in flow client (#81)",
          "author_name": "Tudor Evans",
          "author_login": "TudorCRL",
          "committed_at": "2024-11-06T14:39:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b539c62919e84bb62e807fff6cb62365388a8e4b",
          "body": null,
          "is_bot": false,
          "headline": "Fix audio event ended type (#80)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-11-04T16:40:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e79ee7dfd82d9fbbda16f0b29a06e95c7fec6ee",
          "body": null,
          "is_bot": false,
          "headline": "Export batch and RT types (#76)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-11-04T15:14:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7e0083b830421541091730455f875be2a1984dc6",
          "body": null,
          "is_bot": false,
          "headline": "Bump Flow Client React version to use latest underlying package (#79)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-11-01T11:16:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4448c63af41e37effb9ef823638a60a5294b2a42",
          "body": "- Add logic ensuring if socket closes before the `ConversationStarted`\r\nmessage is received, we give up waiting for it\r\n- Add test\r\n- Add cancellable functionality to timeouts, so the test scripts don't\r\nhang on an orphaned promise\r\n- Add error type strings to the `SpeechmaticsFlowError` class, so we can\r\nhandle different errors differently\r\n- Add the `\"ws\"` dependency to the `flow-client` package (this was\r\nmissing before, breaking the Node polyfill)",
          "is_bot": false,
          "headline": "Handle premature websocket close (#78)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-11-01T11:06:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed56997d0465757217f499718ab13b9a7d0c0a77",
          "body": "Add two new packages based on the microphone selection flow implemented\r\nin the portal\r\n\r\n- `@speechmatics/browser-audio-input`:\r\n  - Contains just the store/singleton class managing audio devices.\r\n- Also provides a minified build in case someone wants to use this in an\r\ninline script tag\r\n- `@spee\n[…]\nly ESM (apart from the raw client\r\nwhich also provides a minified build). My thinking was there are\r\npractically 0 CommonJS use cases for browser microphone selection, so I\r\nomitted it from the build.",
          "is_bot": false,
          "headline": "Add packages for browser input audio device selection (#77)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-10-31T18:01:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9a8cb4b7ff17251c5892d2dd09cb7743a2580772",
          "body": "The schema was incorrect for `AudioEventStarted` and `AudioEventEnded`.\r\nThis brings them in line with actual API behaviour.",
          "is_bot": false,
          "headline": "Fix audio event types (#75)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-10-31T10:28:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f6d6704760ea5900f9be7d25de3141145e8378f3",
          "body": null,
          "is_bot": false,
          "headline": "Add note for React native users to install Event target polyfill (#74)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-10-30T20:28:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1794cb9c1b5c077398fff9efd9c6daf1cebed7fc",
          "body": null,
          "is_bot": false,
          "headline": "Configure PNPM publish (#73)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-10-30T16:37:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "64aa6d20670516c0ae33eee2dc1f3c744a793f92",
          "body": null,
          "is_bot": false,
          "headline": "Configure PNPM with node auth token (#72)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-10-30T12:46:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "072eea69b959a337d91a9edfb727369ee5ebec94",
          "body": "- Add `timelimit_exceeded` and `quota_exceeded` error messages\r\n- Export message types from top level of module for convenience",
          "is_bot": false,
          "headline": "Add missing RT error types (#70)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-10-30T11:59:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9363b8ae49e20be41d8a5539d7715d5d5d90a6df",
          "body": null,
          "is_bot": false,
          "headline": "Fix publish script (#69)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-10-30T11:58:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0e782dfef3054d256430f60ef284aab3f1948c61",
          "body": "## Summary\r\n\r\n- Use PNPM as package manager instead of NPM, as it has a very smooth\r\nout of the box experience for monorepos/workspaces:\r\nhttps://pnpm.io/workspaces\r\n- Add `real-time-client` package which is copied from the current Portal\r\nRT implementation\r\n- Add `batch-client` package which is mor\n[…]\nm/changesets/changesets\r\n- Add package for JWT generation across services:\r\nhttps://github.com/speechmatics/speechmatics-js-sdk/pull/67\r\n- Add utility hooks packages\r\n- Add batch/RT examples to NextJS",
          "is_bot": false,
          "headline": "Introduce monorepo structure (#58)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-10-29T16:38:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3becdb20c4f98e8dc0b722770f9949968752ee53",
          "body": null,
          "is_bot": false,
          "headline": "Release v4.0.0 (#51)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-06-18T14:11:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "19f21c688a075b9db03b9755332f394042559d60",
          "body": "- Update `example_batch.js` to use new call signature\r\n- Add `example_batch_url.js` to show how to transcribe from URL\r\n\r\n---------\r\n\r\nCo-authored-by: Nick Gerig <nickgerig@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Update batch examples (#52)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-06-18T14:10:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ff13d03afd86cd4efdcf3d983586f32852aca8d",
          "body": "Co-authored-by: Matt Nemitz <matt.nemitz@gmail.com>\r\nCo-authored-by: Matt Nemitz <mattn@speechmatics.com>",
          "is_bot": false,
          "headline": "generate audio events config for RT and Batch (#43)",
          "author_name": "Nick Gerig",
          "author_login": "nickgerig",
          "committed_at": "2024-06-18T11:09:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bb4252995211eccc4fa53234e88e1e0178fb6b46",
          "body": "Addresses issue where realtime `stopRecognition()` is called before the\r\nsocket is connected. #46\r\n\r\n---------\r\n\r\nCo-authored-by: Matt Nemitz <matt.nemitz@gmail.com>",
          "is_bot": false,
          "headline": "feat: defers stopRecognition until connected (#50)",
          "author_name": "Nick Gerig",
          "author_login": "nickgerig",
          "committed_at": "2024-06-18T10:49:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bdeb0c28d1770a05b7aa75d7639cf3aeb3b7aba3",
          "body": "Next version bump to 14.2.3\r\nAdded additional configuration options to enable enhanced operating\r\npoint and partial display.",
          "is_bot": false,
          "headline": "updating next version and adding additional configuration options (#47)",
          "author_name": "Ross Thompson",
          "author_login": "rosstspeech",
          "committed_at": "2024-06-06T08:37:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b7745ed346166b2122e356be9580dbf2e61a4036",
          "body": "4.0.0-pre.2",
          "is_bot": false,
          "headline": "Update prerelease version (#42)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-04-24T09:51:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7e7851711e325ca6aac093eb2d6f947588c2866e",
          "body": "- Update RT schema with audio event fields\r\n- Fix batch schema YAML (which was missing audio event fields)",
          "is_bot": false,
          "headline": "Update RT schema with audio events (#41)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-04-23T11:59:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dc4e845e1afd250eb982c52c468b6463a3a5246c",
          "body": "- Update Batch API spec to latest version\r\n- Add script to pull down latest batch schema from docs site\r\n- Make generation scripts more robust with NPM runner\r\n- Remove Makefile",
          "is_bot": false,
          "headline": "Schema updates (#39)",
          "author_name": "Matt Nemitz",
          "author_login": "mnemitz",
          "committed_at": "2024-03-22T10:24:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4984cc80c5e41867f5acdbc88f4ae063a723e752",
          "body": "This PR adds descriptively typed errors to handle various cases when using the SDK. These errors are grouped into two classes:\r\n\r\n- Response errors: These are thrown when an error response is returned from the API (see error-response.ts). Note that these error values originate from the OpenAPI spec,\n[…]\n Batch client for both types of errors, but more testing could be done to ensure every type of response error is handled correctly.\r\n\r\n---------\r\n\r\nCo-authored-by: Matt Nemitz <mattn@speechmatics.com>",
          "is_bot": false,
          "headline": "Typed Errors (#21)",
          "author_name": "Alasdair McLeay",
          "author_login": "penx",
          "committed_at": "2024-02-26T14:38:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        }
      ],
      "releases_count": 13,
      "commits_last_year": 26,
      "latest_release_at": "2024-10-30T20:40:49Z",
      "latest_release_tag": "real-time-client@5.0.1",
      "releases_from_tags": false,
      "days_since_last_push": 5,
      "active_weeks_last_year": 13,
      "days_since_latest_release": 634,
      "mean_days_between_releases": 45.9
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 75,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@speechmatics/auth",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "Speechmatics",
            "authentication",
            "transcription",
            "batch",
            "real-time",
            "text to speech"
          ],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/@speechmatics/auth",
          "is_deprecated": false,
          "latest_version": "0.1.0",
          "repository_url": null,
          "versions_count": 2,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 3,
          "monthly_downloads": 56321,
          "first_published_at": "2024-11-20T16:47:04.190000Z",
          "latest_published_at": "2025-08-06T16:02:46.888000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 354
        },
        {
          "name": "@speechmatics/flow-client",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "voice",
            "speech",
            "intelligence",
            "assistance",
            "chat",
            "API"
          ],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/@speechmatics/flow-client",
          "is_deprecated": true,
          "latest_version": "0.2.2",
          "repository_url": null,
          "versions_count": 39,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
          "maintainers_count": 3,
          "monthly_downloads": 664,
          "first_published_at": "2024-10-17T09:32:03.611000Z",
          "latest_published_at": "2025-02-18T14:03:52.841000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 523
        },
        {
          "name": "@speechmatics/batch-client",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "speech",
            "ASR",
            "batch",
            "REST API",
            "transcript",
            "translation",
            "summary"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@speechmatics/batch-client",
          "is_deprecated": false,
          "latest_version": "5.4.2",
          "repository_url": "https://github.com/speechmatics/speechmatics-js-sdk",
          "versions_count": 8,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 3,
          "monthly_downloads": 59083,
          "first_published_at": "2024-10-29T16:51:56.232000Z",
          "latest_published_at": "2026-06-19T14:06:12.894000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 37
        },
        {
          "name": "@speechmatics/web-pcm-player",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "web",
            "PCM",
            "audio",
            "player"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@speechmatics/web-pcm-player",
          "is_deprecated": false,
          "latest_version": "1.1.0",
          "repository_url": "https://github.com/speechmatics/speechmatics-js-sdk",
          "versions_count": 7,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 3,
          "monthly_downloads": 2071,
          "first_published_at": "2025-01-28T16:43:29.516000Z",
          "latest_published_at": "2026-05-06T13:40:47.218000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 81
        },
        {
          "name": "@speechmatics/real-time-client",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "speech",
            "ASR",
            "real-time",
            "realtime",
            "real time",
            "websocket",
            "transcript",
            "translation"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@speechmatics/real-time-client",
          "is_deprecated": false,
          "latest_version": "8.5.1",
          "repository_url": "https://github.com/speechmatics/speechmatics-js-sdk",
          "versions_count": 29,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 3,
          "monthly_downloads": 99900,
          "first_published_at": "2024-10-29T16:52:02.714000Z",
          "latest_published_at": "2026-07-21T10:08:08.665000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        },
        {
          "name": "@speechmatics/flow-client-react",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "Flow",
            "API",
            "React",
            "hooks",
            "transcription",
            "speech",
            "intelligence"
          ],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/@speechmatics/flow-client-react",
          "is_deprecated": true,
          "latest_version": "0.2.1",
          "repository_url": null,
          "versions_count": 32,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
          "maintainers_count": 3,
          "monthly_downloads": 806,
          "first_published_at": "2024-10-29T17:03:43.275000Z",
          "latest_published_at": "2025-02-18T14:04:01.201000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 523
        },
        {
          "name": "@speechmatics/browser-audio-input",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "Audio",
            "Browser",
            "device",
            "selection"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@speechmatics/browser-audio-input",
          "is_deprecated": false,
          "latest_version": "2.0.4",
          "repository_url": "https://github.com/speechmatics/speechmatics-js-sdk",
          "versions_count": 13,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 3,
          "monthly_downloads": 25211,
          "first_published_at": "2024-10-31T18:02:03.791000Z",
          "latest_published_at": "2026-07-20T13:33:47.411000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        },
        {
          "name": "@speechmatics/use-flow-transcript",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "speechmatics",
            "flow",
            "transcript",
            "react",
            "hooks"
          ],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/@speechmatics/use-flow-transcript",
          "is_deprecated": false,
          "latest_version": "0.0.1-rc.0",
          "repository_url": null,
          "versions_count": 1,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 3,
          "monthly_downloads": 63,
          "first_published_at": "2025-06-19T15:13:46.658000Z",
          "latest_published_at": "2025-06-19T15:13:46.929000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 402
        }
      ]
    },
    "popularity": {
      "forks": 24,
      "stars": 57,
      "watchers": 4,
      "fork_history": {
        "days": [
          {
            "date": "2023-09-15",
            "count": 1
          },
          {
            "date": "2023-09-26",
            "count": 1
          },
          {
            "date": "2023-11-04",
            "count": 1
          },
          {
            "date": "2024-04-29",
            "count": 1
          },
          {
            "date": "2024-07-03",
            "count": 1
          },
          {
            "date": "2024-09-20",
            "count": 1
          },
          {
            "date": "2024-11-15",
            "count": 1
          },
          {
            "date": "2025-01-15",
            "count": 1
          },
          {
            "date": "2025-01-19",
            "count": 1
          },
          {
            "date": "2025-01-21",
            "count": 1
          },
          {
            "date": "2025-02-14",
            "count": 1
          },
          {
            "date": "2025-02-28",
            "count": 1
          },
          {
            "date": "2025-03-04",
            "count": 1
          },
          {
            "date": "2025-04-14",
            "count": 1
          },
          {
            "date": "2025-04-25",
            "count": 1
          },
          {
            "date": "2025-05-05",
            "count": 1
          },
          {
            "date": "2025-06-06",
            "count": 1
          },
          {
            "date": "2025-07-10",
            "count": 1
          },
          {
            "date": "2025-09-17",
            "count": 1
          },
          {
            "date": "2025-11-06",
            "count": 1
          },
          {
            "date": "2025-12-26",
            "count": 1
          },
          {
            "date": "2025-12-30",
            "count": 1
          },
          {
            "date": "2026-01-30",
            "count": 1
          },
          {
            "date": "2026-06-24",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 24,
        "total_forks": 24
      },
      "star_history": null,
      "open_issues_and_prs": 13
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "example",
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "examples/nextjs-real-time-transcription/tsconfig.json",
        "packages/auth/tsconfig.json",
        "packages/batch-client/tsconfig.json",
        "packages/browser-audio-input-react/tsconfig.json",
        "packages/browser-audio-input/tsconfig.json",
        "packages/flow-client-react/tsconfig.json",
        "packages/flow-client/tsconfig.json",
        "packages/real-time-client-react/tsconfig.json",
        "packages/real-time-client/tsconfig.json",
        "packages/web-pcm-player-react/tsconfig.json",
        "tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 10138,
      "source_files_sampled": 225,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "jsonpath-plus",
            "direct": false,
            "version": "7.2.0",
            "severity": "critical",
            "ecosystem": "npm",
            "cvss_score": 9.8,
            "advisory_ids": [
              "GHSA-hw8r-x6gr-5gjp",
              "GHSA-pppg-cpfq-h7wr"
            ],
            "fixed_version": "10.3.0",
            "advisory_count": 2,
            "oldest_advisory_days": 653
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.16",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-mh99-v99m-4gvg"
            ],
            "fixed_version": "5.0.8",
            "advisory_count": 1,
            "oldest_advisory_days": 1
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "5.0.7",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-mh99-v99m-4gvg"
            ],
            "fixed_version": "5.0.8",
            "advisory_count": 1,
            "oldest_advisory_days": 1
          },
          {
            "name": "next",
            "direct": false,
            "version": "16.2.10",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 8.2,
            "advisory_ids": [
              "GHSA-4633-3j49-mh5q",
              "GHSA-4c39-4ccg-62r3",
              "GHSA-68g3-v927-f742",
              "GHSA-6gpp-xcg3-4w24",
              "GHSA-89xv-2m56-2m9x",
              "GHSA-955p-x3mx-jcvp",
              "GHSA-m99w-x7hq-7vfj",
              "GHSA-p9j2-gv94-2wf4",
              "GHSA-q8wf-6r8g-63ch"
            ],
            "fixed_version": "16.2.11",
            "advisory_count": 9,
            "oldest_advisory_days": 3
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.4.31",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-6g55-p6wh-862q",
              "GHSA-qx2v-qp2m-jg93",
              "GHSA-r28c-9q8g-f849"
            ],
            "fixed_version": "8.5.18",
            "advisory_count": 3,
            "oldest_advisory_days": 93
          },
          {
            "name": "sharp",
            "direct": false,
            "version": "0.34.5",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.3,
            "advisory_ids": [
              "GHSA-f88m-g3jw-g9cj"
            ],
            "fixed_version": "0.35.0",
            "advisory_count": 1,
            "oldest_advisory_days": 4
          },
          {
            "name": "shell-quote",
            "direct": false,
            "version": "1.8.4",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-395f-4hp3-45gv"
            ],
            "fixed_version": "1.9.0",
            "advisory_count": 1,
            "oldest_advisory_days": 5
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "5.5.2",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 5.6,
            "advisory_ids": [
              "GHSA-2g4f-4pwh-qvx6",
              "GHSA-v88g-cgmw-v5xw"
            ],
            "fixed_version": "8.18.0",
            "advisory_count": 2,
            "oldest_advisory_days": 1626
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "6.5.2",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 5.6,
            "advisory_ids": [
              "GHSA-2g4f-4pwh-qvx6",
              "GHSA-v88g-cgmw-v5xw"
            ],
            "fixed_version": "8.18.0",
            "advisory_count": 2,
            "oldest_advisory_days": 1626
          },
          {
            "name": "diff",
            "direct": false,
            "version": "4.0.2",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-73rr-hh4g-fpgx"
            ],
            "fixed_version": "8.0.3",
            "advisory_count": 1,
            "oldest_advisory_days": 193
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "2.5.0",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 4.3,
            "advisory_ids": [
              "GHSA-48c2-rrv3-qjmp"
            ],
            "fixed_version": "2.8.3",
            "advisory_count": 1,
            "oldest_advisory_days": 123
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 6,
          "critical": 1,
          "moderate": 4
        },
        "advisory_count": 24,
        "affected_count": 11,
        "assessed_count": 615,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 17,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "zod",
          "manifest": "packages/batch-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.23.8"
        },
        {
          "name": "@speechmatics/browser-audio-input",
          "manifest": "packages/browser-audio-input-react/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "typescript-event-target",
          "manifest": "packages/browser-audio-input/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.1"
        },
        {
          "name": "@speechmatics/flow-client",
          "manifest": "packages/flow-client-react/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "typescript-event-target",
          "manifest": "packages/flow-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.1"
        },
        {
          "name": "ws",
          "manifest": "packages/flow-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.21.0"
        },
        {
          "name": "@speechmatics/real-time-client",
          "manifest": "packages/real-time-client-react/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "typescript-event-target",
          "manifest": "packages/real-time-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.1"
        },
        {
          "name": "ws",
          "manifest": "packages/real-time-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.21.0"
        },
        {
          "name": "@speechmatics/flow-client-react",
          "manifest": "packages/use-flow-transcript/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "typescript-event-target",
          "manifest": "packages/use-flow-transcript/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.1"
        },
        {
          "name": "@speechmatics/web-pcm-player",
          "manifest": "packages/web-pcm-player-react/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "typescript-event-target",
          "manifest": "packages/web-pcm-player/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.1"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "typescript-event-target",
            "direct": true,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "typescript-event-target",
            "direct": true,
            "version": "^1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": true,
            "version": "8.21.1",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": true,
            "version": "^8.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": true,
            "version": "3.23.8",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": true,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": true,
            "version": "^3.23.8",
            "ecosystem": "npm"
          },
          {
            "name": "@apidevtools/json-schema-ref-parser",
            "direct": false,
            "version": "11.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "@apidevtools/json-schema-ref-parser",
            "direct": false,
            "version": "11.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "@apidevtools/openapi-schemas",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@apidevtools/swagger-methods",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@apidevtools/swagger-parser",
            "direct": false,
            "version": "10.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@asyncapi/avro-schema-parser",
            "direct": false,
            "version": "3.0.24",
            "ecosystem": "npm"
          },
          {
            "name": "@asyncapi/modelina",
            "direct": false,
            "version": "5.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@asyncapi/modelina",
            "direct": false,
            "version": "^5.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@asyncapi/multi-parser",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@asyncapi/openapi-schema-parser",
            "direct": false,
            "version": "3.0.24",
            "ecosystem": "npm"
          },
          {
            "name": "@asyncapi/parser",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@asyncapi/parser",
            "direct": false,
            "version": "3.0.0-next-major-spec.8",
            "ecosystem": "npm"
          },
          {
            "name": "@asyncapi/parser",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "@asyncapi/protobuf-schema-parser",
            "direct": false,
            "version": "3.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "@asyncapi/raml-dt-schema-parser",
            "direct": false,
            "version": "4.0.24",
            "ecosystem": "npm"
          },
          {
            "name": "@asyncapi/specs",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@asyncapi/specs",
            "direct": false,
            "version": "6.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/code-frame",
            "direct": false,
            "version": "7.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.25.9",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/runtime",
            "direct": false,
            "version": "7.29.7",
            "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": "@borewit/text-codec",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@cspotcode/source-map-support",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.11.2",
            "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": "@hyperjump/json",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@hyperjump/json-pointer",
            "direct": false,
            "version": "0.9.8",
            "ecosystem": "npm"
          },
          {
            "name": "@hyperjump/json-schema",
            "direct": false,
            "version": "0.23.5",
            "ecosystem": "npm"
          },
          {
            "name": "@hyperjump/json-schema-core",
            "direct": false,
            "version": "0.28.5",
            "ecosystem": "npm"
          },
          {
            "name": "@hyperjump/pact",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/colour",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-darwin-arm64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-darwin-x64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-darwin-arm64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-darwin-x64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-arm",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-arm64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-ppc64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-riscv64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-s390x",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-x64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linuxmusl-arm64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linuxmusl-x64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-arm",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-arm64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-ppc64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-riscv64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-s390x",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-x64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linuxmusl-arm64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linuxmusl-x64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-wasm32",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-win32-arm64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-win32-ia32",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-win32-x64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/core",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/select",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/type",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/resolve-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/trace-mapping",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "@jsdevtools/ono",
            "direct": false,
            "version": "7.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@jsep-plugin/assignment",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jsep-plugin/regex",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@jsep-plugin/ternary",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@lukeed/csprng",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@nestjs/axios",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@nestjs/common",
            "direct": false,
            "version": "11.1.28",
            "ecosystem": "npm"
          },
          {
            "name": "@nestjs/core",
            "direct": false,
            "version": "11.1.28",
            "ecosystem": "npm"
          },
          {
            "name": "@next/env",
            "direct": false,
            "version": "16.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "@next/swc-darwin-arm64",
            "direct": false,
            "version": "16.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "@next/swc-darwin-x64",
            "direct": false,
            "version": "16.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "@next/swc-linux-arm64-gnu",
            "direct": false,
            "version": "16.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "@next/swc-linux-arm64-musl",
            "direct": false,
            "version": "16.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "@next/swc-linux-x64-gnu",
            "direct": false,
            "version": "16.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "@next/swc-linux-x64-musl",
            "direct": false,
            "version": "16.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "@next/swc-win32-arm64-msvc",
            "direct": false,
            "version": "16.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "@next/swc-win32-x64-msvc",
            "direct": false,
            "version": "16.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "@nodable/entities",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@nuxtjs/opencollective",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "@openapi-contrib/openapi-schema-to-json-schema",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@openapitools/openapi-generator-cli",
            "direct": false,
            "version": "2.40.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-android-arm-eabi",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-android-arm64",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-darwin-arm64",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-darwin-x64",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-freebsd-x64",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-linux-arm-musleabihf",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-linux-arm64-gnu",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-linux-arm64-musl",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-linux-riscv64-gnu",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-linux-riscv64-musl",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-linux-s390x-gnu",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-linux-x64-gnu",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-linux-x64-musl",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-openharmony-arm64",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-wasm32-wasi",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-win32-arm64-msvc",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-win32-ia32-msvc",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-parser/binding-win32-x64-msvc",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-android-arm-eabi",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-android-arm64",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-darwin-arm64",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-darwin-x64",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-freebsd-x64",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-arm-musleabihf",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-arm64-gnu",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-arm64-musl",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-riscv64-gnu",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-riscv64-musl",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-s390x-gnu",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-x64-gnu",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-linux-x64-musl",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-openharmony-arm64",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-wasm32-wasi",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-win32-arm64-msvc",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-resolver/binding-win32-x64-msvc",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@picocss/pico",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@picocss/pico",
            "direct": false,
            "version": "^2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/aspromise",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/base64",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/codegen",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/eventemitter",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/fetch",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/float",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/path",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/pool",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/utf8",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/plugin-inject",
            "direct": false,
            "version": "5.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/plugin-inject",
            "direct": false,
            "version": "^5.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/pluginutils",
            "direct": false,
            "version": "5.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm-eabi",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-x64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-x64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-musleabihf",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-s390x-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openbsd-x64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openharmony-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-arm64-msvc",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-ia32-msvc",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-msvc",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@scarf/scarf",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/better-ajv-errors",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/json",
            "direct": false,
            "version": "3.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/json",
            "direct": false,
            "version": "3.21.7",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/json-ref-readers",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/json-ref-resolver",
            "direct": false,
            "version": "3.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/ordered-object-literal",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/path",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/spectral-core",
            "direct": false,
            "version": "1.23.1",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/spectral-formats",
            "direct": false,
            "version": "1.8.5",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/spectral-functions",
            "direct": false,
            "version": "1.10.5",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/spectral-parsers",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/spectral-ref-resolver",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/spectral-runtime",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/types",
            "direct": false,
            "version": "13.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/types",
            "direct": false,
            "version": "13.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/types",
            "direct": false,
            "version": "14.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/yaml",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@stoplight/yaml-ast-parser",
            "direct": false,
            "version": "0.0.50",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/helpers",
            "direct": false,
            "version": "0.5.15",
            "ecosystem": "npm"
          },
          {
            "name": "@tokenizer/inflate",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "@tokenizer/token",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tsconfig/node10",
            "direct": false,
            "version": "1.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "@tsconfig/node12",
            "direct": false,
            "version": "1.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "@tsconfig/node14",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tsconfig/node16",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/audioworklet",
            "direct": false,
            "version": "0.0.64",
            "ecosystem": "npm"
          },
          {
            "name": "@types/audioworklet",
            "direct": false,
            "version": "^0.0.64",
            "ecosystem": "npm"
          },
          {
            "name": "@types/es-aggregate-error",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/json-schema",
            "direct": false,
            "version": "7.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@types/mute-stream",
            "direct": false,
            "version": "0.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "16.18.126",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "20.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "20.19.43",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "22.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "^20",
            "ecosystem": "npm"
          },
          {
            "name": "@types/prop-types",
            "direct": false,
            "version": "15.7.13",
            "ecosystem": "npm"
          },
          {
            "name": "@types/protocol-buffers-schema",
            "direct": false,
            "version": "3.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react",
            "direct": false,
            "version": "18.3.12",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react",
            "direct": false,
            "version": "19.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react",
            "direct": false,
            "version": "^18.3.12",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react",
            "direct": false,
            "version": "^19.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "@types/urijs",
            "direct": false,
            "version": "1.19.26",
            "ecosystem": "npm"
          },
          {
            "name": "@types/wrap-ansi",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/ws",
            "direct": false,
            "version": "8.5.12",
            "ecosystem": "npm"
          },
          {
            "name": "@types/ws",
            "direct": false,
            "version": "^8.5.12",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-walk",
            "direct": false,
            "version": "8.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "agent-base",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "agent-base",
            "direct": false,
            "version": "9.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "5.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "6.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "8.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "ajv-draft-04",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ajv-errors",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ajv-formats",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "alterschema",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-escapes",
            "direct": false,
            "version": "4.3.2",
            "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": "anynum",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "arg",
            "direct": false,
            "version": "4.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "1.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "array-buffer-byte-length",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "arraybuffer.prototype.slice",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ast-types",
            "direct": false,
            "version": "0.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "astring",
            "direct": false,
            "version": "1.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "async-function",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "asynckit",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "available-typed-arrays",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "avsc",
            "direct": false,
            "version": "5.7.9",
            "ecosystem": "npm"
          },
          {
            "name": "axios",
            "direct": false,
            "version": "1.18.1",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "baseline-browser-mapping",
            "direct": false,
            "version": "2.10.43",
            "ecosystem": "npm"
          },
          {
            "name": "basic-ftp",
            "direct": false,
            "version": "5.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.16",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "5.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind-apply-helpers",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "call-bound",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "call-me-maybe",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "camel-case",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "caniuse-lite",
            "direct": false,
            "version": "1.0.30001806",
            "ecosystem": "npm"
          },
          {
            "name": "capital-case",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "5.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "change-case",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "cli-spinners",
            "direct": false,
            "version": "2.9.2",
            "ecosystem": "npm"
          },
          {
            "name": "cli-width",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "client-only",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "9.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "clone",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "co",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "combined-stream",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "8.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "compare-versions",
            "direct": false,
            "version": "6.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "concat-map",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "concurrently",
            "direct": false,
            "version": "10.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "consola",
            "direct": false,
            "version": "2.15.3",
            "ecosystem": "npm"
          },
          {
            "name": "console.table",
            "direct": false,
            "version": "0.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "constant-case",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "content-type",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "create-require",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "csstype",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "data-uri-to-buffer",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "data-view-buffer",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "data-view-byte-length",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "data-view-byte-offset",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "defaults",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "define-data-property",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "define-properties",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "degenerator",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "delayed-stream",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "dependency-graph",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "diff",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "dot-case",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "dotenv",
            "direct": false,
            "version": "16.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "dotenv",
            "direct": false,
            "version": "^16.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "dunder-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "easy-table",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "10.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-abstract",
            "direct": false,
            "version": "1.24.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-aggregate-error",
            "direct": false,
            "version": "1.0.14",
            "ecosystem": "npm"
          },
          {
            "name": "es-define-property",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-errors",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-module-lexer",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-object-atoms",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-set-tostringtag",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-to-primitive",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "escodegen",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "esprima",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "estraverse",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "esutils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "expr-eval-fork",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-json-stable-stringify",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-memoize",
            "direct": false,
            "version": "2.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "fast-safe-stringify",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "fast-uri",
            "direct": false,
            "version": "3.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "fast-xml-builder",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-xml-parser",
            "direct": false,
            "version": "5.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "fastest-stable-stringify",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "fd-package-json",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "figures",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "file-type",
            "direct": false,
            "version": "21.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "follow-redirects",
            "direct": false,
            "version": "1.16.0",
            "ecosystem": "npm"
          },
          {
            "name": "for-each",
            "direct": false,
            "version": "0.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "form-data",
            "direct": false,
            "version": "4.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "formatly",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "fs-extra",
            "direct": false,
            "version": "11.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "fs.realpath",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "function-bind",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "function.prototype.name",
            "direct": false,
            "version": "1.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "functions-have-names",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "get-caller-file",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "get-east-asian-width",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-intrinsic",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-symbol-description",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-tsconfig",
            "direct": false,
            "version": "4.14.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-uri",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "13.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "7.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "globalthis",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "has-bigints",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-property-descriptors",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "has-proto",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-symbols",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-tostringtag",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hasown",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hasown",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "header-case",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "http-proxy-agent",
            "direct": false,
            "version": "9.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "https-proxy-agent",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "https-proxy-agent",
            "direct": false,
            "version": "9.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "ieee754",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "immer",
            "direct": false,
            "version": "9.0.21",
            "ecosystem": "npm"
          },
          {
            "name": "inflight",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "internal-slot",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "ip-address",
            "direct": false,
            "version": "10.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-array-buffer",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "is-async-function",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-bigint",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-boolean-object",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-callable",
            "direct": false,
            "version": "1.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "is-data-view",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-date-object",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-finalizationregistry",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-generator-function",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-map",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-negative-zero",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-number-object",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-regex",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-set",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-shared-array-buffer",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "is-string",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-symbol",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-typed-array",
            "direct": false,
            "version": "1.1.15",
            "ecosystem": "npm"
          },
          {
            "name": "is-unsafe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-weakmap",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-weakref",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-weakset",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "isarray",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "iterare",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "jiti",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "3.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsep",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-e",
            "direct": false,
            "version": "4.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-migrate",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-stable-stringify-without-jsonify",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "jsonc-parser",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "jsonfile",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsonpath-plus",
            "direct": false,
            "version": "10.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsonpath-plus",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsonpointer",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "just-curry-it",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "just-curry-it",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "jwt-decode",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jwt-decode",
            "direct": false,
            "version": "^4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "knip",
            "direct": false,
            "version": "6.27.0",
            "ecosystem": "npm"
          },
          {
            "name": "leven",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "load-esm",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "lodash",
            "direct": false,
            "version": "4.18.1",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.topath",
            "direct": false,
            "version": "4.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "long",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "loose-envify",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "lower-case",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "11.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "7.18.3",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.12",
            "ecosystem": "npm"
          },
          {
            "name": "make-error",
            "direct": false,
            "version": "1.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-db",
            "direct": false,
            "version": "1.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "2.1.35",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "10.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "3.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "minipass",
            "direct": false,
            "version": "7.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "moo",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "mute-stream",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.16",
            "ecosystem": "npm"
          },
          {
            "name": "netmask",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "next",
            "direct": false,
            "version": "16.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "nimma",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "no-case",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "node-fetch",
            "direct": false,
            "version": "2.6.7",
            "ecosystem": "npm"
          },
          {
            "name": "node-fetch",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "object-hash",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "object-inspect",
            "direct": false,
            "version": "1.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "object-keys",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "object.assign",
            "direct": false,
            "version": "4.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "once",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "openapi-types",
            "direct": false,
            "version": "12.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "own-keys",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "oxc-parser",
            "direct": false,
            "version": "0.137.0",
            "ecosystem": "npm"
          },
          {
            "name": "oxc-resolver",
            "direct": false,
            "version": "11.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "pac-proxy-agent",
            "direct": false,
            "version": "9.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "pac-resolver",
            "direct": false,
            "version": "9.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "param-case",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "pascal-case",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "path-case",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "path-equal",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "path-expression-matcher",
            "direct": false,
            "version": "1.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "path-is-absolute",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-scurry",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "path-to-regexp",
            "direct": false,
            "version": "8.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "pony-cause",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "possible-typed-array-names",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.4.31",
            "ecosystem": "npm"
          },
          {
            "name": "protobufjs",
            "direct": false,
            "version": "7.6.5",
            "ecosystem": "npm"
          },
          {
            "name": "proxy-agent",
            "direct": false,
            "version": "8.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "proxy-agent-negotiate",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "proxy-from-env",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "pubsub-js",
            "direct": false,
            "version": "1.9.5",
            "ecosystem": "npm"
          },
          {
            "name": "punycode",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "quickjs-wasi",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "ramldt2jsonschema",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "react",
            "direct": false,
            "version": "18.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "react",
            "direct": false,
            "version": "19.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "react",
            "direct": false,
            "version": "19.0.0-rc-69d4b800-20241021",
            "ecosystem": "npm"
          },
          {
            "name": "react-dom",
            "direct": false,
            "version": "19.0.0-rc-69d4b800-20241021",
            "ecosystem": "npm"
          },
          {
            "name": "react-error-boundary",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "react-error-boundary",
            "direct": false,
            "version": "^4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "reflect-metadata",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "reflect.getprototypeof",
            "direct": false,
            "version": "1.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "regexp.prototype.flags",
            "direct": false,
            "version": "1.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "require-directory",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "require-from-string",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-pkg-maps",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "rollup-plugin-dts",
            "direct": false,
            "version": "6.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "rollup-plugin-esbuild",
            "direct": false,
            "version": "6.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "rollup-plugin-preserve-directives",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "rollup-plugin-preserve-directives",
            "direct": false,
            "version": "^0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "run-async",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "rxjs",
            "direct": false,
            "version": "7.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "safe-array-concat",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "safe-push-apply",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "safe-regex-test",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "safe-stable-stringify",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "safe-stable-stringify",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "scheduler",
            "direct": false,
            "version": "0.25.0-rc-69d4b800-20241021",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.8.5",
            "ecosystem": "npm"
          },
          {
            "name": "sentence-case",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "set-function-length",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "set-function-name",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "set-proto",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "sharp",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "shell-quote",
            "direct": false,
            "version": "1.8.4",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-list",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-map",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-weakmap",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "smart-buffer",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "smol-toml",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "snake-case",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "socks",
            "direct": false,
            "version": "2.8.9",
            "ecosystem": "npm"
          },
          {
            "name": "socks-proxy-agent",
            "direct": false,
            "version": "10.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "sprintf-js",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "stop-iteration-iterator",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.trim",
            "direct": false,
            "version": "1.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.trimend",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.trimstart",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-json-comments",
            "direct": false,
            "version": "5.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "strnum",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "strtok3",
            "direct": false,
            "version": "10.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "styled-jsx",
            "direct": false,
            "version": "5.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "10.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "token-types",
            "direct": false,
            "version": "6.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "tr46",
            "direct": false,
            "version": "0.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "tree-kill",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "ts-node",
            "direct": false,
            "version": "10.9.2",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "tsx",
            "direct": false,
            "version": "4.23.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-buffer",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-byte-length",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-byte-offset",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-length",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "4.9.5",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "^5",
            "ecosystem": "npm"
          },
          {
            "name": "typescript-json-schema",
            "direct": false,
            "version": "0.58.1",
            "ecosystem": "npm"
          },
          {
            "name": "uid",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "uint8array-extras",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "unbash",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "unbox-primitive",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "6.19.8",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "6.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "universalify",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "unplugin-utils",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "upper-case",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "upper-case-first",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "uri-js",
            "direct": false,
            "version": "4.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "urijs",
            "direct": false,
            "version": "1.19.11",
            "ecosystem": "npm"
          },
          {
            "name": "utility-types",
            "direct": false,
            "version": "3.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "v8-compile-cache-lib",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "walk-up-path",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wcwidth",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "webapi-parser",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "webidl-conversions",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-url",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "which-boxed-primitive",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "which-builtin-type",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "which-collection",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "which-typed-array",
            "direct": false,
            "version": "1.1.19",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "6.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "9.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "wrappy",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "xml-naming",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "y18n",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "^2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "17.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "18.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "21.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "22.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "yn",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 632,
        "direct_count": 7,
        "indirect_count": 625
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 6,
        "merged_prs": 132,
        "open_issues": 7,
        "closed_ratio": 0.844,
        "closed_issues": 38,
        "closed_unmerged_prs": 40
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "mnemitz",
          "commits": 97,
          "avatar_url": "https://avatars.githubusercontent.com/u/17129287?v=4"
        },
        {
          "type": "User",
          "login": "nickgerig",
          "commits": 11,
          "avatar_url": "https://avatars.githubusercontent.com/u/3910823?v=4"
        },
        {
          "type": "User",
          "login": "TudorCRL",
          "commits": 10,
          "avatar_url": "https://avatars.githubusercontent.com/u/104087420?v=4"
        },
        {
          "type": "User",
          "login": "penx",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/1027024?v=4"
        },
        {
          "type": "User",
          "login": "BellaT",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/16810510?v=4"
        },
        {
          "type": "User",
          "login": "IsaacHook",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/12621911?v=4"
        },
        {
          "type": "User",
          "login": "tomfa",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/1502702?v=4"
        },
        {
          "type": "User",
          "login": "anjz",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/591452?v=4"
        },
        {
          "type": "User",
          "login": "franzwilhelm",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/22563154?v=4"
        },
        {
          "type": "User",
          "login": "hnerdrum",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/25695037?v=4"
        }
      ],
      "contributors_sampled": 13,
      "top_contributor_share": 0.729
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "cd.yml",
        "ci.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [
        "biome.json"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "pnpm-lock.yaml"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 9,
            "reason": "29 out of 30 merged PRs checked by a CI test -- score normalized to 9",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 10,
            "reason": "all changesets reviewed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 6,
            "reason": "project has 2 contributing companies or organizations -- score normalized to 6",
            "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": "13 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": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 9,
            "reason": "SAST tool is not run on all commits -- score normalized to 9",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "21 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "f0d1fb86ff9eb1783a0e94972a669ad20ebb8e42",
        "ran_at": "2026-07-26T21:45:39Z",
        "aggregate_score": 6,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-22T16:44:12Z",
      "oldest_open_prs": [
        {
          "number": 121,
          "created_at": "2025-03-19T15:09:49Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 190,
          "created_at": "2026-01-02T15:50:21Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 195,
          "created_at": "2026-03-25T15:49:24Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 213,
          "created_at": "2026-06-24T21:54:26Z",
          "last_comment_at": "2026-07-14T12:14:41Z",
          "last_comment_author": "mnemitz"
        },
        {
          "number": 219,
          "created_at": "2026-07-20T16:53:36Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 224,
          "created_at": "2026-07-21T10:56:55Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-21T11:03:08Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 45,
          "created_at": "2024-04-30T08:36:07Z",
          "last_comment_at": "2026-05-04T10:26:00Z",
          "last_comment_author": "rayanfer"
        },
        {
          "number": 48,
          "created_at": "2024-06-11T11:49:41Z",
          "last_comment_at": "2024-06-18T10:24:41Z",
          "last_comment_author": "nickgerig"
        },
        {
          "number": 53,
          "created_at": "2024-06-24T22:11:56Z",
          "last_comment_at": "2024-08-28T07:37:59Z",
          "last_comment_author": "willemmulder"
        },
        {
          "number": 57,
          "created_at": "2024-09-01T15:44:14Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 160,
          "created_at": "2025-07-13T12:25:48Z",
          "last_comment_at": "2025-08-05T18:39:40Z",
          "last_comment_author": "tomfa"
        },
        {
          "number": 203,
          "created_at": "2026-05-05T05:07:49Z",
          "last_comment_at": "2026-06-22T05:43:44Z",
          "last_comment_author": "rayanfer"
        },
        {
          "number": 208,
          "created_at": "2026-06-12T19:56:22Z",
          "last_comment_at": "2026-06-19T08:43:40Z",
          "last_comment_author": "mnemitz"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/speechmatics/speechmatics-js-sdk",
    "host": "github.com",
    "name": "speechmatics-js-sdk",
    "owner": "speechmatics"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 66,
      "inputs": {
        "security": 68,
        "vitality": 65,
        "community": 69,
        "governance": 65,
        "engineering": 65
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 65,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "commits_last_year": 26,
              "human_commit_share": 0.98,
              "days_since_last_push": 5,
              "active_weeks_last_year": 13
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 5 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "13/52 weeks with commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 13
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "26 commits in the last year",
                "points": 12.9,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 26
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "13 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": "moderate",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 60,
            "inputs": {
              "releases_count": 13,
              "latest_release_tag": "real-time-client@5.0.1",
              "releases_from_tags": false,
              "days_since_latest_release": 634,
              "mean_days_between_releases": 45.9
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "13 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 13
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 634 days ago",
                "points": 7.2,
                "status": "partial",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 634
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~45.9 days",
                "points": 19.8,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 45.9
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 5,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 5 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 69,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "at_risk",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 42,
            "inputs": {
              "forks": 24,
              "stars": 57,
              "watchers": 4,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "57 stars",
                "points": 28.4,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 57
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "24 forks",
                "points": 11.3,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 24
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "4 watchers",
                "points": 2.7,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "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": 18,
                "status": "met",
                "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": "excellent",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 90,
            "inputs": {
              "packages": [
                "@speechmatics/auth",
                "@speechmatics/flow-client",
                "@speechmatics/batch-client",
                "@speechmatics/web-pcm-player",
                "@speechmatics/real-time-client",
                "@speechmatics/flow-client-react",
                "@speechmatics/browser-audio-input",
                "@speechmatics/use-flow-transcript"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 244119
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "244,119 downloads/month across npm",
                "points": 71.8,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 244119,
                      "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": 65,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 35,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 13,
              "top_contributor_share": 0.729
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 73% of commits",
                "points": 6.1,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 73
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "13 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 13
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 2 contributing companies or organizations -- score normalized to 6",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "merged_prs": 132,
              "open_issues": 7,
              "closed_issues": 38,
              "issue_closed_ratio": 0.844,
              "closed_unmerged_prs": 40
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "84% of issues closed",
                "points": 39.5,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 84
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "132/172 decided PRs merged",
                "points": 29.4,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 132,
                      "decided": 172
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "all changesets reviewed",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "followers": 120,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "speechmatics",
              "public_repos": 53,
              "account_age_days": 3936
            },
            "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": "120 followers of speechmatics",
                "points": 15,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 120,
                      "login": "speechmatics"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "53 public repos, account ~10 yr old",
                "points": 24.6,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 53
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 10
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "good",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "packages": [
                "@speechmatics/auth",
                "@speechmatics/flow-client",
                "@speechmatics/batch-client",
                "@speechmatics/web-pcm-player",
                "@speechmatics/real-time-client",
                "@speechmatics/flow-client-react",
                "@speechmatics/browser-audio-input",
                "@speechmatics/use-flow-transcript"
              ],
              "ecosystems": "npm",
              "any_deprecated": true,
              "min_days_since_publish": 5
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "8 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 8,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 5 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "39 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 39
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "@speechmatics/flow-client: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 65,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 82,
            "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": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": "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": "29 out of 30 merged PRs checked by a CI test -- score normalized to 9",
                "points": 18,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "at_risk",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 68,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 60,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 15,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 3,
              "scorecard_aggregate": 6
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "29 out of 30 merged PRs checked by a CI test -- score normalized to 9",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "all changesets reviewed",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 2 contributing companies or organizations -- score normalized to 6",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "13 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 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 9",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "21 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 615 resolved dependencies against OSV; 17 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 615
                }
              },
              {
                "code": "advisories_unassessed",
                "params": {
                  "count": 17
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 24,
              "affected_packages": 11,
              "assessed_packages": 615,
              "unassessed_packages": 17,
              "affected_by_severity": "critical 1, high 6, moderate 4",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 615,
              "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": 8
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 60,
        "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": 1,
              "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": "98 of 98 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 98,
                      "sampled": 98
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "pnpm-lock.yaml"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "examples/nextjs-real-time-transcription/tsconfig.json",
                "packages/auth/tsconfig.json",
                "packages/batch-client/tsconfig.json",
                "packages/browser-audio-input-react/tsconfig.json",
                "packages/browser-audio-input/tsconfig.json",
                "packages/flow-client-react/tsconfig.json",
                "packages/flow-client/tsconfig.json",
                "packages/real-time-client-react/tsconfig.json",
                "packages/real-time-client/tsconfig.json",
                "packages/web-pcm-player-react/tsconfig.json",
                "tsconfig.json"
              ],
              "agent_commit_share": 0.03,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0.02
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": "biome.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "biome.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "examples/nextjs-real-time-transcription/tsconfig.json, packages/auth/tsconfig.json, packages/batch-client/tsconfig.json, packages/browser-audio-input-react/tsconfig.json, packages/browser-audio-input/tsconfig.json, packages/flow-client-react/tsconfig.json, packages/flow-client/tsconfig.json, packages/real-time-client-react/tsconfig.json, packages/real-time-client/tsconfig.json, packages/web-pcm-player-react/tsconfig.json, tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples/nextjs-real-time-transcription/tsconfig.json, packages/auth/tsconfig.json, packages/batch-client/tsconfig.json, packages/browser-audio-input-react/tsconfig.json, packages/browser-audio-input/tsconfig.json, packages/flow-client-react/tsconfig.json, packages/flow-client/tsconfig.json, packages/real-time-client-react/tsconfig.json, packages/real-time-client/tsconfig.json, packages/web-pcm-player-react/tsconfig.json, tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "3 of the last 100 commits agent-authored or agent-credited",
                "points": 6,
                "status": "partial",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 3,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "2 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 2,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 10138,
              "source_files_sampled": 225,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "TypeScript (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/225 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 225,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "example",
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "example, examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "example, examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-26T21:45:58.864632Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/speechmatics/speechmatics-js-sdk.svg",
  "full_name": "speechmatics/speechmatics-js-sdk",
  "license_state": "standard",
  "license_spdx": "MIT"
}

评分是信号,而非担保。 评分反映的是 GitHub 上公开可见的实践——不是代码审计,也不是安全保证。

缺失数据将被剔除并重新归一化权重,绝不按零分计。方法论已版本化并公开:指标 v1.13.0、模式 v0.27.0—— 完整方法论 · 指标知识库.

单项结果在整体记录中的位置: 汇总统计npm.