Raw JSON report machine-readable
{
"data": {
"repo": {
"topics": [
"music",
"subsonic-server",
"subsonic",
"music-server",
"airsonic",
"streaming-audio",
"streaming-api",
"madsonic",
"streamer",
"self-hosted",
"media-server",
"navidrome",
"raspberry-pi",
"opensubsonic"
],
"is_fork": false,
"size_kb": 57338,
"has_wiki": false,
"homepage": "https://www.navidrome.org",
"languages": {
"Go": 5567412,
"CSS": 397,
"HTML": 3032,
"Rust": 171566,
"Shell": 15523,
"Python": 9133,
"Makefile": 18978,
"Dockerfile": 7636,
"JavaScript": 1116405,
"Go Template": 42151
},
"pushed_at": "2026-07-28T02:05:22Z",
"created_at": "2016-02-24T23:25:12Z",
"owner_type": "Organization",
"updated_at": "2026-07-28T08:27:32Z",
"description": "🎧 Your Personal Streaming Service ",
"is_archived": false,
"is_disabled": false,
"license_spdx": "GPL-3.0",
"default_branch": "master",
"license_spdx_raw": "GPL-3.0",
"primary_language": "Go",
"significant_languages": [
"Go",
"JavaScript"
]
},
"owner": {
"blog": "https://www.navidrome.org",
"name": "Navidrome",
"type": "Organization",
"login": "navidrome",
"company": null,
"location": null,
"followers": 347,
"avatar_url": "https://avatars.githubusercontent.com/u/26692192?v=4",
"created_at": "2017-03-26T16:09:12Z",
"is_verified": null,
"public_repos": 10,
"account_age_days": 3410
},
"license": {
"state": "standard",
"spdx_id": "GPL-3.0",
"raw_spdx": "GPL-3.0",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v0.63.2",
"kind": "patch",
"published_at": "2026-07-11T13:42:52Z"
},
{
"tag": "v0.63.1",
"kind": "patch",
"published_at": "2026-07-09T11:09:16Z"
},
{
"tag": "v0.63.0",
"kind": "minor",
"published_at": "2026-07-08T13:13:20Z"
},
{
"tag": "v0.62.0",
"kind": "minor",
"published_at": "2026-06-08T12:47:32Z"
},
{
"tag": "v0.61.2",
"kind": "patch",
"published_at": "2026-04-12T17:59:52Z"
},
{
"tag": "v0.61.1",
"kind": "patch",
"published_at": "2026-04-05T02:15:07Z"
},
{
"tag": "v0.61.0",
"kind": "minor",
"published_at": "2026-03-31T23:16:52Z"
},
{
"tag": "v0.60.3",
"kind": "patch",
"published_at": "2026-02-10T23:55:04Z"
},
{
"tag": "v0.60.2",
"kind": "patch",
"published_at": "2026-02-07T19:42:33Z"
},
{
"tag": "v0.60.0",
"kind": "minor",
"published_at": "2026-02-03T18:57:04Z"
},
{
"tag": "v0.59.0",
"kind": "minor",
"published_at": "2025-12-06T18:08:42Z"
},
{
"tag": "v0.58.5",
"kind": "patch",
"published_at": "2025-11-09T19:12:41Z"
},
{
"tag": "v0.58.0",
"kind": "minor",
"published_at": "2025-07-28T18:59:50Z"
},
{
"tag": "v0.57.0",
"kind": "minor",
"published_at": "2025-07-01T16:47:46Z"
},
{
"tag": "v0.56.1",
"kind": "patch",
"published_at": "2025-05-29T19:09:16Z"
},
{
"tag": "v0.56.0",
"kind": "minor",
"published_at": "2025-05-28T23:36:58Z"
},
{
"tag": "v0.55.2",
"kind": "patch",
"published_at": "2025-04-05T12:07:32Z"
},
{
"tag": "v0.55.1",
"kind": "patch",
"published_at": "2025-03-15T05:36:06Z"
},
{
"tag": "v0.55.0",
"kind": "minor",
"published_at": "2025-03-09T23:32:16Z"
},
{
"tag": "v0.54.5",
"kind": "patch",
"published_at": "2025-02-21T01:10:04Z"
},
{
"tag": "v0.54.4",
"kind": "patch",
"published_at": "2025-01-15T03:26:52Z"
},
{
"tag": "v0.54.3",
"kind": "patch",
"published_at": "2024-12-29T02:10:30Z"
},
{
"tag": "v0.54.2",
"kind": "patch",
"published_at": "2024-12-21T23:52:58Z"
},
{
"tag": "v0.54.1",
"kind": "patch",
"published_at": "2024-12-21T05:49:37Z"
},
{
"tag": "v0.53.3",
"kind": "patch",
"published_at": "2024-09-27T21:34:05Z"
},
{
"tag": "v0.53.2",
"kind": "patch",
"published_at": "2024-09-21T21:32:51Z"
},
{
"tag": "v0.53.1",
"kind": "patch",
"published_at": "2024-09-17T21:56:18Z"
},
{
"tag": "v0.53.0",
"kind": "minor",
"published_at": "2024-09-17T00:21:37Z"
},
{
"tag": "v0.52.5",
"kind": "patch",
"published_at": "2024-05-12T23:20:21Z"
},
{
"tag": "v0.52.0",
"kind": "minor",
"published_at": "2024-04-27T21:14:47Z"
},
{
"tag": "v0.51.1",
"kind": "patch",
"published_at": "2024-02-16T03:16:55Z"
},
{
"tag": "v0.51.0",
"kind": "minor",
"published_at": "2024-01-21T22:45:55Z"
},
{
"tag": "v0.50.2",
"kind": "patch",
"published_at": "2023-12-14T00:37:26Z"
},
{
"tag": "v0.50.1",
"kind": "patch",
"published_at": "2023-11-22T03:05:26Z"
},
{
"tag": "v0.50.0",
"kind": "minor",
"published_at": "2023-11-17T03:11:40Z"
},
{
"tag": "v0.49.3",
"kind": "patch",
"published_at": "2023-02-14T01:31:28Z"
},
{
"tag": "v0.49.2",
"kind": "patch",
"published_at": "2023-02-12T01:53:00Z"
},
{
"tag": "v0.49.1",
"kind": "patch",
"published_at": "2023-02-04T18:56:54Z"
},
{
"tag": "v0.49.0",
"kind": "minor",
"published_at": "2023-01-30T14:16:48Z"
},
{
"tag": "v0.48.0",
"kind": "minor",
"published_at": "2022-10-16T17:03:31Z"
},
{
"tag": "v0.47.5",
"kind": "patch",
"published_at": "2022-01-22T01:20:21Z"
},
{
"tag": "v0.47.0",
"kind": "minor",
"published_at": "2021-11-18T23:22:33Z"
},
{
"tag": "v0.46.0",
"kind": "minor",
"published_at": "2021-10-06T22:29:39Z"
},
{
"tag": "v0.45.1",
"kind": "patch",
"published_at": "2021-08-26T02:21:56Z"
},
{
"tag": "v0.45.0",
"kind": "minor",
"published_at": "2021-08-19T13:06:06Z"
},
{
"tag": "v0.44.1",
"kind": "patch",
"published_at": "2021-07-01T23:25:58Z"
},
{
"tag": "v0.44.0",
"kind": "minor",
"published_at": "2021-06-28T23:17:39Z"
},
{
"tag": "v0.43.0",
"kind": "minor",
"published_at": "2021-05-24T18:38:55Z"
},
{
"tag": "v0.42.1",
"kind": "patch",
"published_at": "2021-05-05T14:33:51Z"
},
{
"tag": "v0.42.0",
"kind": "minor",
"published_at": "2021-04-26T13:55:31Z"
},
{
"tag": "v0.41.1",
"kind": "patch",
"published_at": "2021-04-13T18:24:09Z"
},
{
"tag": "v0.41.0",
"kind": "minor",
"published_at": "2021-03-24T03:13:06Z"
},
{
"tag": "v0.40.0",
"kind": "minor",
"published_at": "2021-02-07T19:42:36Z"
},
{
"tag": "v0.39.0",
"kind": "minor",
"published_at": "2020-12-01T22:12:43Z"
},
{
"tag": "v0.38.0",
"kind": "minor",
"published_at": "2020-11-16T22:53:11Z"
},
{
"tag": "v0.37.0",
"kind": "minor",
"published_at": "2020-11-03T13:51:06Z"
},
{
"tag": "v0.36.1",
"kind": "patch",
"published_at": "2020-10-22T19:21:26Z"
},
{
"tag": "v0.36.0",
"kind": "minor",
"published_at": "2020-10-21T23:10:04Z"
},
{
"tag": "v0.35.1",
"kind": "patch",
"published_at": "2020-10-06T15:59:29Z"
},
{
"tag": "v0.35.0",
"kind": "minor",
"published_at": "2020-10-06T14:51:42Z"
},
{
"tag": "v0.34.1",
"kind": "patch",
"published_at": "2020-09-28T00:25:30Z"
},
{
"tag": "v0.34.0",
"kind": "minor",
"published_at": "2020-09-24T21:39:31Z"
},
{
"tag": "v0.33.0",
"kind": "minor",
"published_at": "2020-09-09T23:46:29Z"
},
{
"tag": "v0.32.0",
"kind": "minor",
"published_at": "2020-09-01T21:44:05Z"
},
{
"tag": "v0.31.0",
"kind": "minor",
"published_at": "2020-08-23T04:02:21Z"
},
{
"tag": "v0.30.1",
"kind": "patch",
"published_at": "2020-08-15T19:17:20Z"
},
{
"tag": "v0.30.0",
"kind": "minor",
"published_at": "2020-08-15T15:10:15Z"
},
{
"tag": "v0.29.0",
"kind": "minor",
"published_at": "2020-08-07T15:25:02Z"
},
{
"tag": "v0.28.0",
"kind": "minor",
"published_at": "2020-08-02T02:41:45Z"
},
{
"tag": "v0.27.0",
"kind": "minor",
"published_at": "2020-07-26T15:09:52Z"
},
{
"tag": "v0.26.1",
"kind": "patch",
"published_at": "2020-07-20T19:11:03Z"
},
{
"tag": "v0.26.0",
"kind": "minor",
"published_at": "2020-07-20T01:58:42Z"
},
{
"tag": "v0.25.0",
"kind": "minor",
"published_at": "2020-07-13T14:19:05Z"
},
{
"tag": "v0.24.0",
"kind": "minor",
"published_at": "2020-06-29T20:01:10Z"
},
{
"tag": "v0.23.1",
"kind": "patch",
"published_at": "2020-06-18T20:37:24Z"
},
{
"tag": "v0.23.0",
"kind": "minor",
"published_at": "2020-06-14T15:42:38Z"
},
{
"tag": "v0.22.0",
"kind": "minor",
"published_at": "2020-06-07T18:53:13Z"
},
{
"tag": "v0.21.0",
"kind": "minor",
"published_at": "2020-05-31T00:53:30Z"
},
{
"tag": "v0.20.0",
"kind": "minor",
"published_at": "2020-05-24T17:13:51Z"
},
{
"tag": "v0.19.0",
"kind": "minor",
"published_at": "2020-05-17T16:35:49Z"
},
{
"tag": "v0.18.0",
"kind": "minor",
"published_at": "2020-05-09T17:52:27Z"
},
{
"tag": "v0.17.0",
"kind": "minor",
"published_at": "2020-05-02T22:24:30Z"
},
{
"tag": "v0.16.1",
"kind": "patch",
"published_at": "2020-04-25T17:52:12Z"
},
{
"tag": "v0.16.0",
"kind": "minor",
"published_at": "2020-04-25T17:02:01Z"
},
{
"tag": "v0.15.0",
"kind": "minor",
"published_at": "2020-04-19T19:23:20Z"
},
{
"tag": "v0.14.5",
"kind": "patch",
"published_at": "2020-04-16T22:59:01Z"
},
{
"tag": "v0.14.4",
"kind": "patch",
"published_at": "2020-04-14T23:44:19Z"
},
{
"tag": "v0.14.3",
"kind": "patch",
"published_at": "2020-04-12T14:44:21Z"
},
{
"tag": "v0.14.2",
"kind": "patch",
"published_at": "2020-04-10T14:13:45Z"
},
{
"tag": "v0.14.1",
"kind": "patch",
"published_at": "2020-04-08T22:40:26Z"
},
{
"tag": "v0.14.0",
"kind": "minor",
"published_at": "2020-04-07T00:31:28Z"
},
{
"tag": "v0.13.0",
"kind": "minor",
"published_at": "2020-04-04T03:32:01Z"
},
{
"tag": "v0.12.0",
"kind": "minor",
"published_at": "2020-03-28T01:46:50Z"
},
{
"tag": "v0.11.1",
"kind": "patch",
"published_at": "2020-03-22T19:32:13Z"
},
{
"tag": "v0.11.0",
"kind": "minor",
"published_at": "2020-03-21T16:35:37Z"
},
{
"tag": "v0.10.0",
"kind": "minor",
"published_at": "2020-03-19T01:56:24Z"
},
{
"tag": "v0.9.3",
"kind": "patch",
"published_at": "2020-03-15T01:25:42Z"
},
{
"tag": "v0.9.2",
"kind": "patch",
"published_at": "2020-03-10T21:38:35Z"
},
{
"tag": "v0.9.1",
"kind": "patch",
"published_at": "2020-03-04T15:43:02Z"
},
{
"tag": "v0.9.0",
"kind": "minor",
"published_at": "2020-03-03T03:39:49Z"
}
],
"recent_commits": [
{
"oid": "ecf606e52320b87d099991f4f3da87913523c303",
"body": null,
"is_bot": false,
"headline": "fix(ui): update Italian translation (#5848)",
"author_name": "Marco Ciotola",
"author_login": "McCio",
"committed_at": "2026-07-25T17:23:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "93f6afb684b44b29ebdbd35eb18d3f063d14caa6",
"body": "Signed-off-by: Deluan <deluan@navidrome.org>",
"is_bot": false,
"headline": "chore: add OpenCollective funding option",
"author_name": "Deluan",
"author_login": "deluan",
"committed_at": "2026-07-22T16:19:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "62257527d7f24fdf90b717f12827e708f6223033",
"body": "…on (#5832)\n\nWhen AppendSubtitle or AppendAlbumVersion is enabled, the subtitle/version\ntag was always wrapped in parentheses and appended to the title/album name.\nIf the tag value already came wrapped in brackets (e.g. \"(non-explicit\nversion)\"), the result was doubled: \"Title ((non-explicit version\n[…]\n), [], {} or <> - and trim surrounding whitespace first. The shared\nappendSuffix helper is used by MediaFile.FullTitle, MediaFile.FullAlbumName\nand Album.FullName so all consumers behave consistently.",
"is_bot": false,
"headline": "fix(subsonic): avoid double brackets when appending subtitle or versi…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-21T01:49:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c35b14dd74d35660a4781d3bd72f7f9c8efa8bd9",
"body": "Signed-off-by: Deluan <deluan@navidrome.org>",
"is_bot": false,
"headline": "chore(deps): update go-taglib to v2.3.1",
"author_name": "Deluan",
"author_login": "deluan",
"committed_at": "2026-07-20T13:49:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6c2644d20860fa052fed1e150b2390727e37fa34",
"body": "* feat(ui): add perPageStore helper for items-per-page persistence\n\n* feat(ui): persist items-per-page selection in localStorage\n\n* feat(ui): enable per-page persistence on album grid, missing files and playlist tracks\n\n* feat(ui): restore saved album grid page size on fresh load\n\n* feat(ui): restor\n[…]\ng the user's real preference. Inject a wrapped setPerPage\ninstead, so only the rows-per-page selector writes. This also drops the\noption-validation heuristics, which the new trigger makes unnecessary.",
"is_bot": false,
"headline": "feat(ui): remember 'items per page' selection across sessions (#5819)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-19T22:59:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bf79d2f3a2a8c569d4d533a596f4575d39d5e1dd",
"body": "… (#5821)\n\nThe `experimental.threads` manifest option never actually worked, so drop\nit from the schema, the generated types, the loader and the docs.",
"is_bot": false,
"headline": "refactor(plugins): remove non-functional experimental manifest option…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-19T22:52:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fed966506012113ba7e4272ba422116c43d28b06",
"body": "* fix(subsonic): surface the reason a transcode decision failed\n\ngetTranscodeDecision returned a bare \"failed to make transcode decision\"\nwith no clue why, and the probe command ran ffprobe with -v quiet, so even\nthe server log bottomed out at \"exit status 1\". A user whose files had been\nmoved by an\n[…]\nit 0 while yielding no audio stream (an audio-suffixed\ncontainer holding only video). That parse failure was returned unwrapped, so\nclients got \"internal error\"; it is now wrapped in a ProbeError too.",
"is_bot": false,
"headline": "fix(streaming): surface why a transcode decision failed (#5820)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-19T22:51:32Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e6597398c2f9834f3376ee041b135d26bfab27e8",
"body": "…ges (#5818)\n\n* feat(scrobbler): add exponential backoff delay helper\n\n* feat(scrobbler): back off retries up to 4m during outages\n\n* test(scrobbler): verify backoff schedule with synctest; clarify backoffDelay doc\n\nAdds a testing/synctest-based test that drives the real run loop against a\nfailing s\n[…]\ny schedule and the\ndrain-on-recovery reset, addressing the review note that the run loop's\nbehavior was untested. Also clarifies the backoffDelay doc comment: the\nargument is a zero-based retry index.",
"is_bot": false,
"headline": "feat(scrobbler): exponential backoff for scrobble retries during outa…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-19T17:36:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5927e693d128cb3c830f6d87b59bfd5128d35dfe",
"body": "* feat(persistence): add AlbumRepository.GetYears for distinct album years\n\n* test(persistence): verify GetYears de-duplicates repeated years\n\nRegression test that adds two albums with the same non-zero max_year\n(2005) and verifies that GetYears() returns that year exactly once,\nensuring the SQL DIS\n[…]\nds reuse the record-label tag identity, so they round-trip\nwith the /Studios list and the StudioIds= filter. Real Jellyfin leaves Studios\nempty for music; Feishin reads it as the album's record label.",
"is_bot": false,
"headline": "feat(jellyfin): filter items by year and record label (#5817)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-19T16:39:31Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b27d6f61ae7813d47eb4479637187bf26ab35adb",
"body": "The windowed-CTE backfill was compiled as a correlated scalar subquery\nre-evaluated once per album (a full media_file group-by + window sort each\ntime), which never finished on a large library. Stage the ReplayGain-bearing\nrows into an indexed temp table once and update only the affected albums:\n~14s on a 727MB / 6945-album library, vs. effectively never.",
"is_bot": false,
"headline": "fix(db): make album ReplayGain backfill scale to large libraries",
"author_name": "Deluan",
"author_login": "deluan",
"committed_at": "2026-07-19T02:59:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4efd92cf835bd7a8e3c971b5b87e834b0f32ee6b",
"body": "* feat(model): aggregate album ReplayGain in ToAlbum\n\n* feat(db): add nullable album ReplayGain columns with backfill\n\n* feat(persistence): persist album ReplayGain fields\n\n* feat(jellyfin): expose album NormalizationGain from ReplayGain\n\n* refactor(model): lazy-init mostFrequentPtr map; clean up RG\n[…]\nce instead of a\nper-album correlated scan.\n\n* refactor(model): return an owned pointer from mostFrequentPtr\n\nAvoid aliasing a MediaFile field so the resulting Album is independent of the\nsource slice.",
"is_bot": false,
"headline": "feat(server): expose album-level ReplayGain in albums (#5816)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-19T02:19:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7234ea23b76c228385922cc674f7c56a1d55b3f1",
"body": "* feat(jellyfin): expose NormalizationGain from ReplayGain tags\n\nAdds NormalizationGain and AlbumNormalizationGain to Audio BaseItemDtos,\nsourced from the scanner's ReplayGain values (REPLAYGAIN_* tags, with R128_*\nalready converted to the same -18 LUFS reference). Same wire contract as real\nJellyfi\n[…]\nmapped values (the substring\n\"NormalizationGain\":-3.5 can only appear if the passthrough worked), so the\ndirect-struct spec added no coverage.\n\n* style(jellyfin): use ASCII punctuation in gain comment",
"is_bot": false,
"headline": "feat(jellyfin): expose NormalizationGain from ReplayGain tags (#5815)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-19T00:26:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "59f1b4206c9fd40b10b1bb32938b546c646c8034",
"body": "The image endpoint only served a private playlist's cover when the request\ncarried a token identifying its owner or an admin. But clients fetch cover\nURLs without credentials — real Jellyfin's image routes are anonymous — so\nevery private playlist rendered the generic placeholder in Jellyfin clients\n[…]\n\n\nDrop the gate and serve playlist covers like album/artist/track artwork:\nplaylist ids are unguessable without credentials, so anonymous access does\nnot meaningfully expose private playlist contents.",
"is_bot": false,
"headline": "fix(jellyfin): serve playlist covers regardless of visibility (#5813)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-18T23:36:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3158451b8d56cabf63e6b43b818bab99534d0396",
"body": "…g (#5812)\n\n* refactor(req): drop redundant error return from Strings\n\nThe error from Strings carried no information beyond emptiness — it fired\nexactly when the param was absent — and nearly every caller discarded it with\na blank identifier. Strings now just returns the values (empty when absent),\n\n[…]\nFolderIds is untouched. The jellyfin parseFields\nhelper is inlined away, since ParseFields(p.Strings(\"fields\")...) now\ncompiles directly.\n\n* docs(req): clarify Strings returns nil when param is absent",
"is_bot": false,
"headline": "refactor(server): drop redundant error return from req.Strings parsin…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-18T23:30:04Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1e82f515c462bc08c1f0ffe058e286a20560626c",
"body": "The Fields param was read with StringOr, which keeps only one value, so a\nrequest sending it as repeated params (Fields=Genres&Fields=MediaSources) — as\nFinamp and Feishin do — lost all but the first. Field-gated data like\nMediaSources was then omitted for Audio items even though the client asked fo\n[…]\neal Jellyfin accepts both forms.\n\nParseFields is now variadic and a parseFields helper reads every repeated value\nvia req.Values.Strings, applied to the item list, single-item, and playlist\nendpoints.",
"is_bot": false,
"headline": "fix(jellyfin): honor repeated Fields query params (#5811)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-18T22:59:08Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "09ac342f5ae58ca69d60ca2d0cdf2302cf5bf76e",
"body": "* fix(jellyfin): split Artists/ArtistItems per track artist\n\nThe Jellyfin API returned a single ArtistItems entry built from the flattened\ndisplay artist, so a multi-artist track (e.g. \"De La Soul feat. Redman\") lost\nits individual artists and dropped every artist id but the first — while the\nsame t\n[…]\nay artist, the fallback set\nArtists to a single-element slice holding an empty string. Only populate it\nwhen the display artist is non-empty, so untagged tracks omit the field\ninstead of sending [\"\"].",
"is_bot": false,
"headline": "fix(jellyfin): split Artists/ArtistItems per track artist (#5810)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-18T22:16:52Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "9c7cf7d734e0a34fd47bdbd66c3e87983f5b383e",
"body": "* feat(jellyfin): expose genreitems for song/album\n\n* use encode id instead",
"is_bot": false,
"headline": "feat(jellyfin): expose genreitems for song/album (#5809)",
"author_name": "Kendall Garner",
"author_login": "kgarner7",
"committed_at": "2026-07-18T21:46:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e4a423db11bae287a2d41980e36536d8f1c00a9f",
"body": "Like Subsonic's setStar/setRating, the Jellyfin favorite and rating\nendpoints now broadcast a refreshResource event, so the web UI updates\nimmediately when a Jellyfin client changes an annotation.\n\nAlso fixes model.GetEntityByID to propagate unexpected repository errors\ninstead of reporting them as not-found, preserving the 500-vs-404\ndistinction for all its callers.",
"is_bot": false,
"headline": "feat(jellyfin): emit refreshResource events on favorite/rating changes",
"author_name": "Deluan",
"author_login": "deluan",
"committed_at": "2026-07-18T20:50:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f61b4eee210d692f50d37d3bad5b3714e28a094d",
"body": "* fix(deezer): pick most-popular artist among same-name matches\n\nThe Deezer agent searched with order=RANKING and always took the\ntop-ranked result (artists[0]) as long as its name matched. Deezer's\nRANKING order isn't reliable for homonyms, so for names shared by\nseveral artists (e.g. \"Queen\") it l\n[…]\ne exactly.\n\nFixes #5802\n\n* fix(deezer): improve artist disambiguation by ranking exact-case names\n\nSigned-off-by: Deluan <deluan@navidrome.org>\n\n---------\n\nSigned-off-by: Deluan <deluan@navidrome.org>",
"is_bot": false,
"headline": "fix(deezer): pick most-popular artist among same-name matches (#5808)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-18T20:40:10Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "deaa5e6c028abd70acb2427c50c478e79eab61dd",
"body": "…-only toggle) (#5805)\n\n* feat(playlists): register starred REST filter on playlist repository\n\n* feat(ui): add persisted sidebarPlaylistsOnlyFavourites setting\n\n* feat(ui): playlist favourites heart column and list filter\n\n* feat(ui): favourite heart on playlist details header\n\n* feat(ui): sidebar \n[…]\ne via\n defaultProps, className forwarded) instead of relying on prop pass-through.\n- Add aria-label to the SubMenu secondary action button.\n- Cover the PlaylistLove list column with tests (Codex P1).",
"is_bot": false,
"headline": "feat(ui): playlist favourites (heart, list filter, sidebar favourites…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-18T18:45:47Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "64430af9ce442c7266101204bcf53060f7e1443a",
"body": null,
"is_bot": false,
"headline": "feat(ui): add Radio to Default View options (#5801)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-18T01:53:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "85132240e0909dc460f604144cfd8578fa409e57",
"body": "…y playlists (#5790)\n\n* feat(utils): add ParseDuration/FormatDuration with day and week units\n\n* feat(criteria): add per-playlist refreshDelay to smart playlist rules\n\n* feat(smartplaylist): honor per-playlist refreshDelay in refresh gate\n\n* feat(subsonic): compute smart playlist validUntil from eff\n[…]\nt\n \"negative duration\" error instead of \"unknown unit\"\n- Quote input in the negative-duration error, matching the parse error\n- Gate per-playlist RefreshDelay behind IsSmartPlaylist, matching its doc",
"is_bot": false,
"headline": "feat(smartplaylist): per-playlist refreshDelay for stable daily/weekl…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-17T02:20:35Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ae7e81e33fcffee25c089cc93630dcccb2d74e64",
"body": "Update the Jellyfin API README to cover changes that landed after it was\nwritten: add the Lyrics and AudioMuse-AI endpoints to the implemented-endpoints\ntable, document the AlbumIds filter (Feishin), Recursive=false handling, and\nthe Jellyfin.MaxConcurrentStreams config option. Mention Symfonium as \n[…]\nies: sonic similarity (plugin metadata agents already feed\nInstantMix/Similar) and MD5-hash ids (the codec round-trip is symmetric, and\nwith the API unreleased no client can hold a raw un-encoded id).",
"is_bot": false,
"headline": "docs(jellyfin): sync README with current implementation",
"author_name": "Deluan",
"author_login": "deluan",
"committed_at": "2026-07-17T00:48:56Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "27f02103923f0927a3cc20ba98ecbca4d73700bd",
"body": "* fix(scrobbler): tolerate out-of-order playback reports\n\nClients may fire reportPlayback requests concurrently (Feishin sends\n'starting' and 'playing' in parallel, and the previous track's 'stopped'\nraces the next track's start), so reports can be processed out of order.\nTwo cases corrupted the now\n[…]\n position - potentially\noverwriting a pending correct-position entry, since the queue is keyed by\nclient. Return nil instead, so ignored reports have no side effects.\n\nFound by Gemini review on #5793.",
"is_bot": false,
"headline": "fix(scrobbler): tolerate out-of-order playback reports (#5793)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-17T00:47:47Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "756df9decf0cfe55a1eb528f892f31367e466c0c",
"body": "* fix: dedupe and cap concurrent lyrics plugin fetches\n\nClients like Finamp prefetch lyrics for several queue tracks at once. The\nresulting burst of concurrent plugin calls can rate-limit the primary\nlyrics provider into a timeout, making the plugin fall back to a lower\nquality source and cache the \n[…]\nore slot via defer so\na panicking plugin call cannot leak it, and bound the detached lyrics\nload with a one-minute timeout so a hung plugin cannot pin its\nsingleflight and semaphore slot indefinitely.",
"is_bot": false,
"headline": "fix: dedupe and cap concurrent lyrics plugin fetches (#5792)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-17T00:10:35Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "29f481cd7b24336615ffe80410ce90e47a9348b9",
"body": "* feat(jellyfin): add LyricDto and lyrics mapper\n\n* feat(jellyfin): advertise Lyric media stream for embedded lyrics\n\n* feat(jellyfin): implement GET /Audio/{itemId}/Lyrics\n\n* feat(jellyfin): advertise pipeline-resolved lyrics in PlaybackInfo\n\n* feat(jellyfin): advertise server version 10.9.11 for c\n[…]\n\n404s when the main lyric has no lines; both now share servableLyric.\nHandler tests also send hex-encoded ids to match real traffic.\n\n* chore(jellyfin): drop unneeded lyrics package alias in e2e suite",
"is_bot": false,
"headline": "feat(jellyfin): lyrics endpoint and Lyric stream advertising (#5791)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-16T18:39:11Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c582ed31fa45beecf7064bab30c1c9fc7480a0d1",
"body": "Wire up GET /System/Info returning the previously unused dto.SystemInfo,\navailable to any authenticated user, matching real Jellyfin's authorization\n(FirstTimeSetupOrIgnoreParentalControl, not admin-only). Feishin calls this\nendpoint on connect and reads Version to feature-gate; it previously got th\n[…]\nrics and\npublic-playlist share permissions at >=10.9.0, and this API serves neither\n(no lyrics endpoint; playlist user permissions are stubs), so a higher\nversion would falsely advertise capabilities.",
"is_bot": false,
"headline": "feat(jellyfin): add authenticated System/Info endpoint",
"author_name": "Deluan",
"author_login": "deluan",
"committed_at": "2026-07-16T12:53:44Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "caa0043030a02079e463b0827e3510c87a5771f5",
"body": "Feishin fetches an album's tracks with AlbumIds=<id>&IncludeItemTypes=Audio&Recursive=true, but the /Items handler never read the AlbumIds parameter, so the request degenerated into the entire library sorted by album: every track (with MediaSources, when requested) was counted and streamed for what \n[…]\n Parse AlbumIds like GenreIds (comma-separated and repeated spellings, hex-decoded) and filter songs through a new filter.ByAlbumID helper, keeping the album_id column knowledge in the filter package.",
"is_bot": false,
"headline": "fix(jellyfin): honor AlbumIds filter on /Items",
"author_name": "Deluan",
"author_login": "deluan",
"committed_at": "2026-07-16T03:29:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1d5efdd5a0408cae8a31f80c11d78afd5d18a388",
"body": "Finamp's Radio Mix requests /Items/{id}/InstantMix?limit=250, but getInstantMix\nclamped the limit to maxSimilarLimit (100), so the queue was cut to 100 tracks.\n\nA mix is a playback queue, not a \"related items\" list, so it gets its own\nceiling instead of sharing the Similar one. The Similar handlers keep 100.\n\nVerified against a live library: the sonic provider supplies all 250 tracks for\na seed that previously returned 100.",
"is_bot": false,
"headline": "fix(jellyfin): don't truncate InstantMix to the Similar ceiling",
"author_name": "Deluan",
"author_login": "deluan",
"committed_at": "2026-07-16T01:21:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "09022b4bd29a722ca624e45214a78a0b97f87143",
"body": "* refactor(jellyfin): inject core/sonic into the Jellyfin Router\n\n* feat(jellyfin): add AudioMuse /info endpoint\n\n* feat(jellyfin): add AudioMuse /similar_tracks endpoint\n\n* feat(jellyfin): gate AudioMuse endpoints on sonic provider\n\n* feat(jellyfin): add AudioMuse /find_path endpoint\n\n* fix(jellyfi\n[…]\ns are lowercase\nhex' invariant true — no routing special-casing needed. Also caps user-controlled n /\nmax_steps, fixes the songAgent test comment, and adds leading slashes to the README\nendpoint list.",
"is_bot": false,
"headline": "feat(jellyfin): AudioMuse-AI compatible sonic endpoints (#5782)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-16T00:44:56Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "adeaa93e7e03b6b98dc4098812a0c8a9c58adaf1",
"body": "* fix(jellyfin): honor Recursive=false for library parents\n\n/Items ignored the Recursive parameter entirely — it appeared only in tests,\nnever in production code. Finamp's download sync sends exactly one\nRecursive=false request per library (ParentId=<library>&IncludeItemTypes=Audio)\nto pick up track\n[…]\nng the omitted-Recursive default: ItemsController binds\n`bool? recursive` and reads it as `recursive ?? false`, so omitting the param is\na non-recursive request and filters Audio for a library parent.",
"is_bot": false,
"headline": "fix(jellyfin): honor Recursive=false for library parents (#5788)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-15T23:02:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3d438b08efc705928a187b51042ca0778feeb900",
"body": "…#5783 (#5784)\n\n* fix(jellyfin): stream playlist tracks instead of loading every one\n\nPR #5783 left the playlist paths materializing: all three loaded every track\nof a playlist, whatever the client asked for. A playlist can be the whole\nlibrary — a smart playlist matching everything — so this is the\n[…]\nment on playlists.Tracks blamed the log warning for its extra Get; the\n reason is that PlaylistRepository.Tracks discards the error behind a nil. Also\n drops a stale reference to a renamed variable.",
"is_bot": false,
"headline": "fix(jellyfin): close the unbounded playlist and search paths left by …",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-15T22:09:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "53d54baef04254c6243b5dd842db239fd0378cc1",
"body": "…braries (#5783)\n\n* fix(jellyfin): stream /Items responses to prevent OOM on large libraries\n\nFinamp's library sync issues an unbounded GET /Items?IncludeItemTypes=Audio\nwith Fields=MediaSources and no Limit. On a large library this built the whole\nresult set — every MediaFile and every BaseItemDto,\n[…]\n resource) for the length of a full scan nobody is reading. Check\nthe per-item writes so the first failure ends the scan; the fixed envelope\nwrites stay unchecked, since bufio latches for them anyway.",
"is_bot": false,
"headline": "fix(jellyfin): stream collection responses to prevent OOM on large li…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-15T18:07:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fe6ac2e577f14090a2fb33a9e4c91c1bee6196a7",
"body": "* feat(sharing): enable sharing by default\n\nFlip the EnableSharing default from false to true so new installations have the sharing feature available out of the box. Users can still disable it via the EnableSharing config option.\n\nThe native API only registers the /share route when sharing is enable\n[…]\nate\nlives in one place. With server/filter no longer using it, persistence's\nTagIDFilter is only referenced within the package, so unexport it.\n\n---------\n\nSigned-off-by: Deluan <deluan@navidrome.org>",
"is_bot": false,
"headline": "feat(jellyfin): experimental Jellyfin Music API support (#5730)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-14T15:46:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3cd4f1eb24a0fb743bad0f1ad011168d6d50ffe3",
"body": "* Update Chinese (Simplified) translation\n\n* Update Chinese (Simplified) translation\n\n---------\n\nCo-authored-by: Deluan Quintão <deluan@navidrome.org>",
"is_bot": false,
"headline": "fix(ui): update Chinese Simplified translation (#5779)",
"author_name": "fxj368",
"author_login": "fxj368",
"committed_at": "2026-07-14T11:40:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ca27335d0671a08210fb7e4663ab21d7291ff651",
"body": "* feat(playlists): add average_rating column to playlist table\n\n* feat(playlists): store and read per-user starred/rating annotations\n\n* feat(playlists): clean up annotations when a playlist is deleted\n\n* feat(subsonic): route star/unstar of a playlist to the playlist repository\n\n* feat(subsonic): r\n[…]\ndated the newest migration merged to\nmaster (20260712211040_add_primary_key...), which Goose would silently\nskip on already-upgraded databases. Rename it to a current timestamp so\nit applies in order.",
"is_bot": false,
"headline": "feat(playlists): per-user starred/rating annotations (backend) (#5749)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-14T11:38:25Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "9ae252c418fe3884524a33eea3d262e569c3ac6c",
"body": "…#5754)\n\n* Add resource lists to default view options\n\n* refactor(ui): reuse getStoredDefaultView in AlbumList default-view redirect\n\nAvoid duplicating the localStorage fallback logic and skip the unused\nalbumLists lookup in the resource-redirect branch, per PR review feedback.",
"is_bot": false,
"headline": "feat(ui): add Artists, Songs, and Playlists to Default View options (…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-14T11:20:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "feda8de7e9e172aeeba9ebbf3ccb5ba454bb85af",
"body": "… (#5778)\n\nUpdate the GitHub Actions that had newer major versions available; all\nother actions in the workflows were already pinned to their latest major\ntag.\n\n- actions/github-script: v7 -> v9\n- actions/cache: v5 -> v6\n- docker/setup-qemu-action: v3 -> v4",
"is_bot": false,
"headline": "ci: bump github-script, cache and setup-qemu actions to latest majors…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-13T20:08:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "edddc1acb5a566919cf3cfb026cf4c2a702c00fd",
"body": "… to latest versions\n\nSigned-off-by: Deluan <deluan@navidrome.org>",
"is_bot": false,
"headline": "chore(deps): update go-sqlite3, reflex, and golang.org/x dependencies…",
"author_name": "Deluan",
"author_login": "deluan",
"committed_at": "2026-07-13T18:07:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cc315dcc8c38fc40e721e90d9d22c6f0aeec97d7",
"body": "… (#5740)\n\n* perf(db): keep query planner statistics trustworthy with full ANALYZE\n\nPRAGMA optimize's internal ANALYZE runs with a limited analysis budget\n(~2000 rows) that writes wrong sqlite_stat1 entries for low-cardinality\nindexes: on a 96K-track library it claimed (missing, library_id) narrows\n\n[…]\np the LastDBAnalyzeAttemptAt write on success: it is only read\n while failures >= 1, and every failure rewrites it first\n- extract runPostScanAnalysis (cmd) and anyIncludedLibrary (scanner)\n helpers",
"is_bot": false,
"headline": "perf(db): keep query planner statistics trustworthy with full ANALYZE…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-13T16:04:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4998ac2c591d7c1b17bf36f5109f64f521d1169c",
"body": "* initial scrobble api\n\n* feat: add scrobble retrieval api\n\n* address feedback (1)\n\n* fix spelling\n\n* be explicit about get\n\n* add primary key field, update index, remove rowid references\n\n* use unix timestamp for input and output\n\n---------\n\nCo-authored-by: Deluan Quintão <deluan@navidrome.org>",
"is_bot": false,
"headline": "feat(server): add scrobble history Native API (#5761)",
"author_name": "Kendall Garner",
"author_login": "kgarner7",
"committed_at": "2026-07-13T15:32:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "969e7e108ca4874d28bcf1e83401b454db65b81c",
"body": "* fix(share): enforce track membership on public share streams\n\nThe public share stream endpoint (GET /share/s/{jwt}) validated that the\nshare existed, was unexpired, and that the share owner had library access\nto the requested track, but it never verified that the track was actually\na member of the\n[…]\n\nAlso document why a JWT is used to represent a shared track: it is a\nsigned, scoped capability for a single public share, not part of\nauthentication.\n\n* docs(share): clarify JWT usage comment wording",
"is_bot": false,
"headline": "fix(share): enforce track membership on public share streams (#5769)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-13T13:04:24Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6b9f85efcc42aab1156ada175a18390f5cb0fbb2",
"body": "… (#5768)\n\ngetTranscodeDecision was copying the source file's bit depth into the\ntranscodeStream details, so a 24-bit FLAC negotiated to Opus reported\naudioBitdepth=24. Lossy codecs (Opus, MP3, AAC) have no PCM bit depth,\nand ffmpeg only honors a bit depth constraint (-sample_fmt) for lossless\noutpu\n[…]\ns also\nmakes audioBitdepth codec limitations a no-op for lossy targets instead\nof rejecting the profile. Lossless targets (e.g. FLAC->FLAC downconvert)\nkeep reporting and clamping bit depth as before.",
"is_bot": false,
"headline": "fix(subsonic): omit bit depth for lossy targets in transcode decision…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-12T17:27:01Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a5efba9a08e349b12cdc25f5c511080cd5f417ad",
"body": "* fix(serve_index): Set Cache-Control: no-cache on index.html - #5766\n\nSigned-off-by: apkatsikas <apkatsikas@gmail.com>\n\n* fix(serve_index): Set Cache-Control: no-cache, no-store and must-revalidate on index.html - #5766\n\nSigned-off-by: apkatsikas <apkatsikas@gmail.com>\n\n---------\n\nSigned-off-by: apkatsikas <apkatsikas@gmail.com>",
"is_bot": false,
"headline": "fix(ui): Set Cache-Control: no-cache on index.html - #5766 (#5767)",
"author_name": "Andrew Katsikas",
"author_login": "apkatsikas",
"committed_at": "2026-07-12T16:25:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "be10f89c117925fabf10394b8d2962a370108b97",
"body": "…s (#5760)\n\n* ci: don't skip release jobs after the DB migration check on tag pushes\n\nThe validate-migrations job added in #5750 was gated at job level with\nif: github.event_name == 'pull_request', so it concluded \"skipped\" on tag\npushes. GitHub Actions propagates a skipped job transitively through \n[…]\nhe fail-fast behavior on PRs with a bad migration.\n\n* ci: trim workflow comment\n\nCondense the explanation of the step-level pull_request gate on the\nvalidate-migrations job to the essential rationale.",
"is_bot": false,
"headline": "ci: don't skip release jobs after the DB migration check on tag pushe…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-11T13:18:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e91687e760a8b4e19dc74b6a9b1ff7f3674565ce",
"body": "* test(scanner): fix flaky Windows search_normalized rescan test\n\nThe 'repopulates a stale search_normalized on a full rescan' spec runs\ntwo full scans back-to-back. Whether the second scan refreshes the\nunchanged artist depends on folderEntry.isOutdated(), which compares\nfolder.updated_at (written \n[…]\ntill counts, so mixing\nboth top-level keys is rejected) while decoding in a single pass — no\nraw-message capture, no re-decode, no shadow variables.\n\nNo behavior change; existing tests pass unchanged.",
"is_bot": false,
"headline": "fix(smartplaylist): reject NSP mixing top-level 'any' and 'all' (#5759)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-11T00:27:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "205c85da5523338807808202d8877ccaa6e82776",
"body": "* fix(plugins): surface host service failures when loading plugins\n\nWhen a host service failed to initialize during plugin load (e.g. the\ntaskqueue database could not be created because the data folder is not\nwritable), the error was logged and swallowed, and its host functions were\nsilently omitted\n[…]\ned on Windows, breaking test compilation there. Move the specs to\ntheir own file with the same build constraint, keeping the pure-function\nspecs in manager_loader_test.go running on Windows as before.",
"is_bot": false,
"headline": "fix(plugins): surface host service failures when loading plugins (#5756)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-10T23:15:49Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "116a4407184b6f21221a6aa7702fb738a3915773",
"body": "The 'repopulates a stale search_normalized on a full rescan' spec runs\ntwo full scans back-to-back. Whether the second scan refreshes the\nunchanged artist depends on folderEntry.isOutdated(), which compares\nfolder.updated_at (written during the first scan) against the second\nscan's library.last_scan\n[…]\nn so the\ncomparison is unambiguous on every platform. This is a test-only\ntiming artifact (real rescans never run milliseconds apart on an\nunchanged library), so no production code changes are needed.",
"is_bot": false,
"headline": "test(scanner): fix flaky Windows search_normalized rescan test (#5758)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-10T22:43:31Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7fa13761d734159e2f0a502a31affacc88e66d37",
"body": "… FS (#5755)\n\n* fix(scanner): resolve file symlinks with the production local storage FS\n\nThe symlink classification added for GHSA-r5qr-m328-qcf4 relied on\nfs.ReadLink, but the local storage FS wraps os.DirFS behind the fs.FS\ninterface, hiding its ReadLinkFS implementation. Every resolution failed\n\n[…]\n otherwise escape the\nlibrary root via filepath.Join cleaning. No current caller can produce\nsuch a name (they come from ReadDir walks), but the guard enforces the\ndocumented contract at the boundary.",
"is_bot": false,
"headline": "fix(scanner): resolve file symlinks with the production local storage…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-10T14:52:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4381366e663b4647cfec1eb5597c39c3c42e9d7a",
"body": "* ci: add DB migration ordering/naming validation script\n\n* ci: run DB migration validation on pull requests\n\n* ci: don't reject non-migration .go files\n\n* ci: fetch latest master before validating migration order\n\n* ci: annotate the offending migration file on validation failure\n\n* ci: gate Build on the migration check so a bad migration fails fast\n\n* ci: reject migrations placed in a subdirectory of db/migrations\n\n* ci: reword fetch-step comment to not hard-code the base branch name",
"is_bot": false,
"headline": "ci: validate DB migration order on pull requests (#5750)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-09T23:43:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "052f10fd68984a01cc2c87eee9edcc16dbfa6ad5",
"body": "…ds binaries (#5739)\n\n* fix(build): force nodynamic webp tag on 32-bit standalone binaries\n\ngen2brain/webp's native libwebp backend links ebitengine/purego, whose\nreverse callbacks are unsupported on 32-bit ARM and x86. purego registers\nits callback in package init(), so the binary crashes at startu\n[…]\ntest that runs each cross-compiled linux binary under\nbinfmt/qemu right after building it, so any future\ncrashes-at-startup-on-some-arch regression fails the pipeline instead of\nshipping in a release.",
"is_bot": false,
"headline": "fix(build): prevent 32-bit startup crash (segfault/SIGILL) in downloa…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-09T10:30:44Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "42d4363f6135167b7fce5c8fd9070a25fab10172",
"body": "…v1.3.0 (#5743)\n\nkardianos/service v1.3.0 (shipped in Navidrome 0.63.0) replaced Go's\ntext/template with a small custom engine that uses bare keys ({{Description}})\ninstead of dotted fields ({{.Description}}). Our custom SystemdScript was\nstill written in text/template syntax, so 'navidrome service \n[…]\n so future engine/key drift is caught\nat test time. Verified end-to-end on Linux: the previous binary reproduces\nthe reported fatal error and the fixed one generates a complete unit file.\n\nFixes #5742",
"is_bot": false,
"headline": "fix(service): rewrite systemd service template for kardianos/service …",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-08T20:40:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4652b4660205abf38a484a2dc7856b4f6d5c24aa",
"body": "Plugin scrobblers read the username from the request context via\ngetUsernameFromContext, but buffered scrobbles are persisted to the DB\nscrobble buffer (which stores only the userId) and later drained by a\nbackground worker running on context.Background(). That context carries\nno authenticated user,\n[…]\nrequest.WithUser before dispatching, mirroring the pattern already used\nin play_tracker. Builtin scrobblers are unaffected as they resolve the\naccount from the userId argument rather than the context.",
"is_bot": false,
"headline": "fix(plugins): populate username for buffered plugin scrobbles (#5736)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-08T16:37:42Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f48943c05873dad7cab4e159747453a5d7677f74",
"body": "…737)\n\n* fix(plugins): discard buffered scrobbles when a plugin is removed\n\nScrobbles are buffered in the DB per service, keyed by the plugin name.\nWhen a plugin was removed (deleted from the plugins folder and detected by\nthe sync), its pending buffer entries were left behind forever: the drain\ngor\n[…]\n usage from the new removePluginFromDB spec: it is\ndefined in manager_test.go which is excluded on Windows, breaking the\nWindows test build. sendPluginRefreshEvent is nil-safe, so no broker is\nneeded.",
"is_bot": false,
"headline": "fix(plugins): discard buffered scrobbles when a plugin is removed (#5…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-08T16:37:17Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6c95a66ad6e49632f2e9656d9bc2ca8008ed85e0",
"body": "Signed-off-by: Deluan <deluan@navidrome.org>",
"is_bot": false,
"headline": "chore(deps): update Go dependencies to latest versions",
"author_name": "Deluan",
"author_login": "deluan",
"committed_at": "2026-07-07T11:54:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b2b4fc19433c522f0806c6801482ecae71fbb4f2",
"body": "Co-authored-by: navidrome-bot <navidrome-bot@navidrome.org>",
"is_bot": false,
"headline": "fix(ui): update Turkish translations from POEditor (#5685)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-07T02:32:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e3297831125d49593123d0c93cb5cb928e3635ae",
"body": "* fix(build): derive version from reachable git tag\n\n* fix(build): fall back gracefully when no tag is reachable\n\ngit describe --tags --abbrev=0 exits with an error when the checkout has\nno reachable tag (e.g. tagless forks or pre-first-tag commits). In the\nMakefile this printed a fatal message and \n[…]\ne before the empty-tag guard could run. Silence\nstderr and fall back to v0.0.0 in the Makefile, and to an empty string\nin the workflow so the existing guard keeps skipping the output as it\ndid before.",
"is_bot": false,
"headline": "fix(build): derive version from reachable git tag (#5711)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-05T04:15:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4f6afbbe671611f4d77db2eac79fd4036d7536e1",
"body": "Signed-off-by: Deluan <deluan@navidrome.org>",
"is_bot": false,
"headline": "fix(ci): pin GoReleaser version to 2.16.0",
"author_name": "Deluan",
"author_login": "deluan",
"committed_at": "2026-07-05T01:38:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "37e75c435402f413ff72e3a61cbf222ff6c86b93",
"body": "Flip the EnableSharing default from false to true so new installations have the sharing feature available out of the box. Users can still disable it via the EnableSharing config option.\n\nThe native API only registers the /share route when sharing is enabled, so the nativeapi tests that build the router without wiring a share service now explicitly disable sharing in their setup to avoid registering a route backed by a nil service.",
"is_bot": false,
"headline": "feat(sharing): enable sharing by default (#5714)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-04T23:55:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "89aa58a7137f6dbe6e750ae439902c0beb5d0a39",
"body": "* feat(theme): add rose pine themes\n\nfix checkboxes\n\n* feat(theme): apply review suggestions\n\n* feat(theme): fix toolbar background in mobile view\n\n* feat(theme): small css improvements",
"is_bot": false,
"headline": "feat(ui): add rose pine themes (#5664)",
"author_name": "Patrick",
"author_login": "draconivis",
"committed_at": "2026-07-03T21:53:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d4387c550279cf9fcb8f3f5614f694aaa9b3b165",
"body": "* perf(db): add composite indexes for song list album/artist sorts\n\nThe media_file sort mappings for album, artist and albumArtist expand to\nmulti-column ORDER BY clauses that no existing index could satisfy, so SQLite\nfell back to a full table scan plus a temp B-tree sort of every row (including\nth\n[…]\nand\norder_artist_name collation checks remain valid, now satisfied by the composite\nsort indexes.\n\nSigned-off-by: Deluan <deluan@navidrome.org>\n\n---------\n\nSigned-off-by: Deluan <deluan@navidrome.org>",
"is_bot": false,
"headline": "perf(db): index media_file album/artist sort orders (#5706)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-03T12:58:55Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ae9b8a5fe6e43bfe3d4dd07c24efe6c0ddca729c",
"body": "* feat(search): boost exact token matches over prefix matches\n\nbuildFTS5Query now emits (word OR word*) instead of word* for plain tokens. The match set is unchanged (exact is a subset of prefix), but bm25 gives the rare exact token a high-IDF contribution, so rows containing the literal query word \n[…]\n predates this branch (the old code passed the same AND-joined string), but the probe now exists separately, so join it with spaces — it only feeds ftsQueryDegraded, which needs no explicit operators.",
"is_bot": false,
"headline": "feat(search): rank exact matches above prefix matches (#5704)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-02T19:51:03Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "427d4b9bce198df09aff18be1beddb85aaa3f725",
"body": "…5 migration (#5703)\n\n* fix(scanner): update artist search_normalized when rescanning\n\nThe FTS5 migration back-fills artist.search_normalized with a SQL\npunctuation-strip approximation, relying on the next scan to compute the\nprecise value in Go (normalizeForFTS transliterates atomic letters like\nØ/\n[…]\nice() pattern so startup isn't silent\nwhile the backfill runs on large libraries.\n\n* docs: tighten comments added in this branch\n\n* docs: describe FTSPunctStrip by what it matches, not one replacement",
"is_bot": false,
"headline": "fix(search): artists with atomic non-ASCII names unfindable after FTS…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-02T16:53:10Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "01b7c86f90cd22ba518abbc9b4bba081ffd1156f",
"body": "…#5702)\n\n* fix(scanner): stop logging expected lyrics sniff misses as warnings\n\nDuring a scan, embedded lyrics are parsed with an empty suffix, which puts\nParseLyrics into content-sniffing mode: it tries the TTML, SRT and Lyricsfile\nYAML parsers in turn before falling back to plain text. Every plain\n[…]\na its error case) instead of a keyed \"error\" pair,\nwhich stores the raw error value and bypasses that handling. Flagged by review\non #5702; the keyed form was inherited from the original warning line.",
"is_bot": false,
"headline": "fix(scanner): stop logging expected lyrics sniff misses as warnings (…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-02T13:46:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4cbba2ae49401d7ccda606a2dbfcbee41d787857",
"body": "… splitting (#5701)\n\n* refactor(scanner): make tag value splitting position-based\n\nReplaces the ZWSP substitution trick with index-based cutting, in\npreparation for artist split exceptions, which need match positions.\n\n* feat(scanner): protect whitelisted names in tag value splitting\n\nSeparator matc\n[…]\npantValues helper.\n\n* refactor(scanner): unexport artistSplitExceptionsRx\n\nAll external callers go through WithParticipantExceptions, so the accessor\ndoes not need to be part of the model package API.",
"is_bot": false,
"headline": "feat(scanner): add ArtistSplitExceptions to protect artist names from…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-02T12:29:44Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a77834ce73e90348003ac58a3dbd5359712ba453",
"body": "* fix(logger): handle file log exception for log.Log\n\n* simplify logger, enhance test\n\n---------\n\nCo-authored-by: Deluan Quintão <deluan@navidrome.org>",
"is_bot": false,
"headline": "fix(logger): handle file log exception for log.Log (#5700)",
"author_name": "Kendall Garner",
"author_login": "kgarner7",
"committed_at": "2026-07-02T04:27:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e80a7937e86e715e4022ef8dac18301a25f9bf4e",
"body": "* fix(ui): make self-service profile edits report their outcome\n\nWhen a non-admin user saved their own profile (e.g. changing their\npassword via EnableUserEditing), the data provider followed the user\nupdate with a call to the admin-only PUT /api/user/{id}/library\nendpoint, which always failed with \n[…]\ner\n\nAddress review feedback: use optional chaining on the error itself in\nthe UserEdit save handler, so a nullish rejection value also results in\nthe generic error notification instead of a TypeError.",
"is_bot": false,
"headline": "fix(ui): make self-service profile edits report their outcome (#5699)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-02T01:31:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b405252f51c6ddf90863f993cf2b6aea8d45765f",
"body": "Bumps [golang.org/x/net](https://github.com/golang/net) from 0.49.0 to 0.55.0.\n- [Commits](https://github.com/golang/net/compare/v0.49.0...v0.55.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/net\n dependency-version: 0.55.0\n dependency-type: indirect\n...\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": "chore(deps): bump golang.org/x/net in /plugins/cmd/ndpgen (#5698)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-01T23:24:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "08cfc55d528cc3a898b075947127f115469a13e1",
"body": "The 'sees all libraries' specs hard-coded the user's libraries as {1, 2}\nand assumed the shared test DB held exactly two libraries. applyLibraryFilter\nonly skips the filter when granted count == total library count, so when\nanother spec left an extra library behind (Ginkgo randomizes spec order),\nth\n[…]\n SQL assertion failed. This\nsurfaced on the Windows CI run but reproduces on any platform.\n\nGrant the user exactly the library IDs that actually exist in the DB at\nruntime instead of hard-coding them.",
"is_bot": false,
"headline": "test(db): fix flaky applyLibraryFilter specs on shared DB (#5697)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-01T17:58:33Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2d53360f89ac7c8f99fbcec5fb81610dce27f30a",
"body": "Signed-off-by: Deluan <deluan@navidrome.org>",
"is_bot": false,
"headline": "docs(plugins): document plugin library scope authorization logic",
"author_name": "Deluan",
"author_login": "deluan",
"committed_at": "2026-07-01T17:20:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "318bb4944fce293043bb8ab16df87e9cfb0ef747",
"body": "…696)\n\n* perf(db): skip library filter when a non-admin sees all libraries\n\napplyLibraryFilter already short-circuits for admins and headless\ncontexts, but a non-admin who has been granted every library still paid\nfor the correlated user_library subquery, which filters out nothing yet\nis the slow no\n[…]\nql() returns no error; restore r.db in AfterEach to\n avoid leaking mutated state to other specs.\n\nSigned-off-by: Deluan <deluan@navidrome.org>\n\n---------\n\nSigned-off-by: Deluan <deluan@navidrome.org>",
"is_bot": false,
"headline": "perf(db): skip library filter when a non-admin sees all libraries (#5…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-01T17:12:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f580d3ea76ca05ceef497e783de8ff6e65968ff6",
"body": "* feat(plugins): add public Track and Artist DTOs for host services\n\n* feat(plugins): add Matcher host-service interface and MatchSong DTO\n\n* feat(plugins): generate Matcher host wrappers, PDK clients, and matcher permission\n\n* feat(plugins): implement Matcher host service and MediaFile-to-Track con\n[…]\nt; the\nconverter tags each entry with its role and emits them in a stable role order.\nPropagated to the PDK and capability schemas by make gen.\n\n---------\n\nSigned-off-by: Deluan <deluan@navidrome.org>",
"is_bot": false,
"headline": "feat(plugins): expose the song Matcher as a host service (#5643)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-01T15:19:15Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "385e75e9a978622ad647c38114e44d0b9095ca6b",
"body": "* perf(persistence): skip annotation join in CountAll when unused\n\nThe Native API list endpoints (/api/song, /api/album, /api/artist) issue a\npagination count on every request via rest.GetAll. CountAll unconditionally\nadded a LEFT JOIN on the annotation table to a count(distinct id) query. The\njoin'\n[…]\nverage_rating\nstays excluded — the underscore still prevents a word boundary before rating)\nand cover it with mixed-case tests. Also make the starred-count assertion an\nexact value instead of a range.",
"is_bot": false,
"headline": "perf(db): skip annotation join in CountAll when unused (#5694)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-07-01T02:50:43Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5f2b7ee1050a177785864ab50db4c1c8c118ea20",
"body": "…versions\n\nSigned-off-by: Deluan <deluan@navidrome.org>",
"is_bot": false,
"headline": "chore(deps): update webp, gomega, and go-toml dependencies to latest …",
"author_name": "Deluan",
"author_login": "deluan",
"committed_at": "2026-06-30T01:24:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0e5b9e3263d87395c78f16948e1234e292fb02bc",
"body": "* refactor(plugins): remove Python PDK generation from ndpgen\n\n* feat(plugins): parse Go type aliases distinctly in ndpgen\n\n* feat(plugins): resolve shared-type aliases against a registry in ndpgen\n\n* fix(plugins): resolve host-service shared aliases package-wide\n\nMirror the capability approach in P\n[…]\nreturn resolves to its canonical\nnd_pdk_types::X path, matching field handling. Verified by generating a host\nservice returning a shared alias and confirming cargo check fails before and\npasses after.",
"is_bot": false,
"headline": "feat(plugins): share plugin DTOs via a types package (#5655)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-30T01:20:33Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0fab1861a0d99b2b9aa5d05b7a335ffde160860f",
"body": "…t with RecentlyAddedByModTime (#5678)\n\n* fix(subsonic): align album `created` with RecentlyAddedByModTime sort\n\nThe album `created` attribute returned by search3, getAlbumList2 and the\nother album endpoints was always sourced from the album's CreatedAt (oldest\nsong birth time), while the \"recently \n[…]\ntedAt under RecentlyAddedByModTime, with BirthTime as\na legacy fallback. This aligns song created with the sort column, matching how\nalbum created already works and what the native API/web UI present.",
"is_bot": false,
"headline": "fix(subsonic): make \"recently added\" order reproducible and consisten…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-29T20:18:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7303c9ca474df801d1824a6ca5e799895e38c7db",
"body": "Pulls in the lyric timing fixes: lyrics no longer stack from the previous\nsong on rapid track changes (#5661), stay in sync after seeking/scrubbing\n(including while paused), and show a music-note placeholder during intros\nand gaps instead of the 'no lyrics' message.",
"is_bot": false,
"headline": "fix(lyrics): bump navidrome-music-player to 4.25.4 (#5661)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-29T12:19:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9b862e88337e5f3fe7f8d8d6ed1fdac2c6c5151b",
"body": "* fix(subsonic): emit agent-specific cue line values\n\n* fix(subsonic): preserve cue line edge text",
"is_bot": false,
"headline": "fix(subsonic): emit agent-specific cueLine values (#5679)",
"author_name": "Yuuta",
"author_login": "ranokay",
"committed_at": "2026-06-28T22:14:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5a3ac80a8a9dc5229a1dc0fd3105b88265517f3b",
"body": "…lugins (#5682)\n\n* feat(plugins): export ReadPackageManifest and ValidatePackage for off-disk inspection\n\n* test(plugins): cover ValidatePackage cross-field validation branch\n\n* feat(cmd): add 'plugin list' command\n\n* refactor(cmd): drop premature pluginManager interface until first use\n\n* feat(cmd)\n[…]\nusers <list>'\npreserved the all-* flag so the allow-list was silently ignored, and the\nmutually-exclusive flags meant it couldn't be corrected in one command. An\nexplicit list now implies all-*=false.",
"is_bot": false,
"headline": "feat(cli): add a 'navidrome plugin' CLI for managing and inspecting p…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-28T17:26:32Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a1412ef1c27277a18d8e8aa0767a1d98086883d8",
"body": "…ong jump (#5676)\n\nFixes a transient jump to the wrong song when switching the play queue.\nWhen a new queue was loaded at a non-zero index (e.g. playing a different\nalbum/playlist from a track other than the first, or playing a new album\nafter closing the player), the web player briefly loaded and p\n[…]\ng the stale internal play index instead\nof the requested playIndex. Fixed in navidrome-music-player 4.25.3\n(navidrome/react-music-player), which derives the initial track from the\nrequested playIndex.",
"is_bot": false,
"headline": "fix(ui): bump navidrome-music-player to 4.25.3, fix transient wrong-s…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-28T14:39:38Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "11f5441eb5e5ab0ca1f43b82d60489bc19b4844b",
"body": "* fix: take into account trailing timestamp in elrc\n\n* refactor: slightly simplify the loop",
"is_bot": false,
"headline": "fix(lyrics): consider trailing timestamp in ELRC lyrics (#5677)",
"author_name": "Jorge Pardo",
"author_login": "J0R6IT0",
"committed_at": "2026-06-27T20:11:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "13e96a0e815546d1de986a95783325e0cac3678c",
"body": "…(#5672)\n\n* fix(lyrics): correct TTML background-vocal cue timing and whitespace\n\nTwo parsing defects surfaced by Apple Music TTML files that mix a main\nvocal with an x-bg (background) span group within the same line:\n\n- Cue end-time normalization ran over the whole line's cue list in\n document ord\n[…]\ne characters so other Unicode spaces pass through\nunchanged, and add a regression test. Also clarify the doc comment that\ncollapsing is applied unconditionally (xml:space=\"preserve\" is not supported).",
"is_bot": false,
"headline": "fix(lyrics): correct TTML background-vocal cue timing and whitespace …",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-27T14:37:25Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bd9fa1c602ee2c20fce23abadd6236cdc35e71b5",
"body": "…tist MBIDs (#5670)\n\n* refactor(agents): drop single Artist fields from Song, keep only Artists\n\nSong now represents credited artists solely via the Artists slice; the\nsingle Artist/ArtistMBID fields and the ArtistList passthrough are removed.\nEquals continues to hash the whole value.\n\n* refactor(la\n[…]\ns filled (it is, by construction, the queried artist); an already-named\ncredit is left untouched.\n\nSigned-off-by: Deluan <deluan@navidrome.org>\n\n---------\n\nSigned-off-by: Deluan <deluan@navidrome.org>",
"is_bot": false,
"headline": "feat(listenbrainz): match collaboration top-songs via all credited ar…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-26T21:06:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7b7721f00283604e73eb42071272014c86a3123d",
"body": "* feat(matcher): add Song.Artists (agents.Artist) and field-wise song dedup\n\n* refactor(matcher): make song equality an agents.Song.Equals method via hashstructure\n\nMove the sameSong free function from core/matcher into an Equals method on\nagents.Song, following the model.MediaFile/Album.Equals conv\n[…]\n:is_empty for slice fields in generated Rust PDK\n\n* fix(matcher): treat a resolved artist ID as an identity match for specificity\n\n* docs(matcher): reflect artist-ID identity in the specificity ladder",
"is_bot": false,
"headline": "feat(matcher): match similar/top songs by multiple artists (#5668)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-26T18:46:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "63a5954e4f7900862e47a8e614003ea3a233608f",
"body": "…filters (#5662)\n\n* fix(smartplaylist): use annotation index for playcount/rating/loved filters\n\nAnnotation-field criteria wrapped the column in COALESCE(col, default) so\nmissing annotation rows behave as 0/false. COALESCE prevents SQLite from\nusing the column index, forcing a full media_file scan d\n[…]\ne block duplicated the COALESCE-vs-index rationale that already\nlives on annotationCond. Reduce it to a one-line description plus a pointer there.\n\n---------\n\nSigned-off-by: Deluan <deluan@deluan.com>",
"is_bot": false,
"headline": "perf(smartplaylist): use annotation index for playcount/rating/loved …",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-25T02:26:41Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "56f0518830bac54c7d29cd895de915268f7adf29",
"body": "* feat(subsonic): add Work/Movement response types and tag constants\n\n* feat(subsonic): surface works and movements in Child response\n\n* test(subsonic): verify works/movements JSON serialization\n\nFix G109 lint: use strconv.ParseInt with bitSize=32 to avoid potential\ninteger overflow; add JSON serial\n[…]\neplacing the deleted buildWorks/buildMovements helpers.\n\n* test(subsonic): cover populated works/movements in response snapshots\n\n* test(subsonic): clarify empty-case name and assert JSON structurally",
"is_bot": false,
"headline": "feat(subsonic): add OpenSubsonic work and movement attributes (#5659)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-24T13:10:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e6560ccb4061bdbbddf65885165d930ec34b9ef2",
"body": "…5657)\n\n* feat(cache): add completion marker helpers to spreadFS\n\n* feat(cache): write completion marker after successful cache write\n\n* fix(cache): adopt only complete files on reload, grandfather existing caches\n\n* test(cache): regression tests for partial-transcode crash leftover (#5636)\n\n* test(\n[…]\nr a clean walk, so a partial\n walk can't strand valid-but-unmarked files for later deletion.\n- Return early from walkDataFiles on a WalkDir error.\n- Assert fs.Create error in the marker-removal test.",
"is_bot": false,
"headline": "fix(cache): don't serve partially-written transcodes after a crash (#…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-24T02:23:54Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fa138afea576e14c13e7c8150d195fddce15a954",
"body": "…paths (#5640)\n\n* fix(playlist): respect the user's library access when resolving M3U paths\n\nFindByPaths looked up paths across all libraries, so importing an M3U\ncould add tracks from libraries the importing user has no access to.\nApply the user's library filter to the lookup, matching every other\n\n[…]\nontext (e.g. a public playlist shared by a non-owner that was later made\nprivate). Capture the result and return early instead of chaining GetAll\non a nil repository, leaving the share with no tracks.",
"is_bot": false,
"headline": "fix(playlist/share): apply user library access to import and sharing …",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-23T22:53:51Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "06993a8e049056bc57f53e8cb81df14cbc7964c6",
"body": "* refactor(storage): extract LocalPathToURL from storage.For\n\n* test(storage): re-enable local storage tests on Windows (#5381)\n\n* test(storage): fix Windows drive-letter path expectation\n\nThe 'should handle Windows drive letters correctly' test was gated behind\nthe now-removed SkipOnWindows BeforeE\n[…]\nects. There are no Windows bug\nreports, so add a Windows-gated test that exercises the real conversion\non a drive-letter path and let CI decide whether the bug is real before\nchanging production code.",
"is_bot": false,
"headline": "test(storage): re-enable local storage tests on Windows (#5654)",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-23T01:33:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "9bd3400d0ecd6d68501eb60d027f575e1ab347cf",
"body": null,
"is_bot": false,
"headline": "chore(deps): update ttlcache and sqlite3 dependencies to latest versions",
"author_name": "Deluan",
"author_login": "deluan",
"committed_at": "2026-06-22T20:35:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b38054b29cede010080db904683554515b221720",
"body": "…(#5652)\n\n* fix(artwork): convert decoded images to a fast-path type before resizing\n\nx/image/draw's CatmullRom scaler only has optimized paths for *image.RGBA,\n*image.NRGBA, *image.Gray and *image.YCbCr. Other concrete types — notably\n*image.NYCbCrA (from WebP) and *image.Paletted (indexed PNGs) — \n[…]\nnchanged; the no-op path drops ~30-40% time and up to ~79% memory for large\nindexed/WebP artwork.\n\nSigned-off-by: Deluan <deluan@navidrome.org>\n\n---------\n\nSigned-off-by: Deluan <deluan@navidrome.org>",
"is_bot": false,
"headline": "perf(artwork): faster image resize + update gen2brain/webp to v0.6.0 …",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-22T20:33:01Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "21a016742eea9f31842107da893e901015e5ca1c",
"body": "…(#5648)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v6...v7)\n\n---\nupdated\n[…]\nirect:production\n update-type: version-update:semver-major\n...\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": "chore(deps): bump actions/checkout from 6 to 7 in /.github/workflows …",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-22T20:19:13Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "803b385920ce50b9d5ec42c152551dfc7de5c48c",
"body": "… and collaborators match (#5637)\n\n* refactor(matcher): carry resolved artist MBID on sanitizedTrack\n\n* feat(matcher): two-phase artist resolution for title matching\n\n* fix(matcher): wire phase-1 artist mock in consumer tests; guard back-map dupes\n\n- External tests for title-fallback paths now regis\n[…]\n longer restate what the signature and body already show.\nCondense fetchTracksCreditedTo's rationale from two paragraphs to one,\nkeeping the role='artist', non-correlated-IN, and layer-boundary notes.",
"is_bot": false,
"headline": "fix(matcher): match by artist credit so artist-MBID specificity works…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-21T15:05:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6486a27634b112c1d386a5e768a12eefc9253ddf",
"body": "…635)\n\n* refactor(matcher): resolve matches in song-index space\n\n* test(matcher): pin per-index duration matching for duplicate title+artist songs\n\n* refactor(matcher): drop unreachable specificity sentinel\n\n* refactor(matcher): hoist PreferStarred read out of scoring loop\n\n* docs(matcher): correct \n[…]\nd the column is the only populated source.\n\nAlso adds a TODO in computeSpecificityLevel: its artist-MBID levels read the\ndeprecated, unpopulated MediaFile.MbzArtistID column, so they never fire today.",
"is_bot": false,
"headline": "refactor(matcher): index-space resolution + batched title lookups (#5…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-21T07:45:56Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "05105e91d90d0937813dd183e96c09befe9bb383",
"body": "…fixed folders (#5568)\n\n* feat(scanner): add Scanner.IgnoreDotFolders to allow scanning dot folders\n\nAdds a new Scanner.IgnoreDotFolders option (default true, preserving current\nbehavior) that, when disabled, lets the scanner traverse folders whose names\nstart with a dot, such as albums like \".Hack \n[…]\nwhich\nsurprised a reviewer testing dot-folder scanning. Add a \"..foo\" test case\nto make the two-leading-dots behavior explicit.\n\nClaude-Session: https://claude.ai/code/session_012STiDTyhZAdH8JNtdNe8L1",
"is_bot": false,
"headline": "feat(scanner): add Scanner.IgnoreDotFolders to allow indexing dot-pre…",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-19T23:13:16Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6f7af6650c259f3a209629eaa7a2a2fce16f5798",
"body": "Signed-off-by: Deluan <deluan@navidrome.org>",
"is_bot": false,
"headline": "chore(deps): update Go dependencies",
"author_name": "Deluan",
"author_login": "deluan",
"committed_at": "2026-06-19T22:30:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aa5aa731dc6709bfc002ed0711c31b793c48595a",
"body": "…lyrics (#5632)\n\n* refactor(lyrics): read sidecar files via library storage FS\n\nRoutes fromExternalFile reads through storage.For(mf.LibraryPath) instead\nof os.Open on AbsolutePath, fixing sidecar reads for non-local backends.\nUTF-16 LE/BE and BOM handling preserved via ioutils.UTF8Reader.\n\n* refact\n[…]\nr benchmark runs on a workload comparable to the others.\nThe first line's word timings are unchanged, so the e2e cueLine assertions still\nhold.\n\n---------\n\nSigned-off-by: Deluan <deluan@navidrome.org>",
"is_bot": false,
"headline": "refactor(lyrics): single ParseLyrics entry point + all-format plugin …",
"author_name": "Deluan Quintão",
"author_login": "deluan",
"committed_at": "2026-06-19T22:25:35Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3a14faa033a8e9d925f353dab476472c54bf04f5",
"body": "…ic v2 karaoke cues and agent layers (#5076)\n\nExpand backend lyrics support with richer sidecar formats and upgrade the\nOpenSubsonic songLyrics implementation to the version 2 structured karaoke\ncontract, while preserving version 1 behavior by default.\n\nSidecar formats and parsing:\n- Add a TTML pars\n[…]\nnsubsonic/open-subsonic-api/discussions/213\n https://github.com/opensubsonic/open-subsonic-api/pull/218 (songLyrics v2)\n https://github.com/opensubsonic/open-subsonic-api/pull/228 (cue byte offsets)",
"is_bot": false,
"headline": "feat(subsonic): add structured sidecar lyrics support with OpenSubson…",
"author_name": "Yuuta",
"author_login": "ranokay",
"committed_at": "2026-06-19T16:00:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ecba19a08ef5727f2b2a4033b5138ff15d6b867d",
"body": "The scanner classified a file by the name of the directory entry, so a\nsymlink was treated as audio/image/playlist based on the link name rather\nthan what it actually points to. Now symlinks are fully resolved (following\nthe whole chain) and classified by the resolved target's extension, so a\nsymlin\n[…]\nsymlinks\nto real audio files (second drives, shared folders, etc.) keeps working.\n\nAdds trace logging for symlink resolution decisions and real-fs regression\ntests covering multi-level symlink chains.",
"is_bot": false,
"headline": "fix(scanner): resolve symlinks to their target when classifying files",
"author_name": "Deluan",
"author_login": "deluan",
"committed_at": "2026-06-18T19:48:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "32ac53dc9f7270828535c719b716b08cc481a3eb",
"body": "Thread the context.Context that goose.UpContext already passes into every\nmigration through to all DB calls: tx.Exec/Query/QueryRow become\ntx.ExecContext/QueryContext/QueryRowContext with ctx. The shared helpers in\nmigration.go (notice, forceFullRescan, isDBInitialized) gain a ctx parameter\nand all \n[…]\nropagation is added.\n\nAdd a forbidigo lint rule scoped to db/migrations/ that forbids the\nnon-context tx.Exec/Query/QueryRow forms, preventing regression.\n\nSigned-off-by: Deluan <deluan@navidrome.org>",
"is_bot": false,
"headline": "refactor(migrations): propagate context.Context through all DB calls",
"author_name": "Deluan",
"author_login": "deluan",
"committed_at": "2026-06-18T13:58:43Z",
"body_truncated": true,
"is_coding_agent": false
}
],
"releases_count": 100,
"commits_last_year": 627,
"latest_release_at": "2026-07-11T13:42:52Z",
"latest_release_tag": "v0.63.2",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 40,
"days_since_latest_release": 16,
"mean_days_between_releases": 17.5
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 87,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": true
},
"ecosystem": {
"packages": [
{
"name": "github.com/navidrome/navidrome",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/navidrome/navidrome",
"is_deprecated": false,
"latest_version": "v0.63.1",
"repository_url": "https://github.com/navidrome/navidrome",
"versions_count": 120,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-07-09T10:30:44Z",
"latest_version_yanked": null,
"days_since_latest_publish": 18
}
]
},
"popularity": {
"forks": 1605,
"stars": 22549,
"watchers": 91,
"fork_history": {
"days": [
{
"date": "2023-11-13",
"count": 2
},
{
"date": "2023-11-14",
"count": 2
},
{
"date": "2023-11-16",
"count": 1
},
{
"date": "2023-11-18",
"count": 2
},
{
"date": "2023-11-20",
"count": 2
},
{
"date": "2023-11-21",
"count": 1
},
{
"date": "2023-11-25",
"count": 1
},
{
"date": "2023-11-26",
"count": 2
},
{
"date": "2023-12-02",
"count": 1
},
{
"date": "2023-12-03",
"count": 1
},
{
"date": "2023-12-06",
"count": 1
},
{
"date": "2023-12-07",
"count": 2
},
{
"date": "2023-12-10",
"count": 2
},
{
"date": "2023-12-12",
"count": 1
},
{
"date": "2023-12-13",
"count": 1
},
{
"date": "2023-12-14",
"count": 1
},
{
"date": "2023-12-15",
"count": 1
},
{
"date": "2023-12-21",
"count": 1
},
{
"date": "2023-12-22",
"count": 2
},
{
"date": "2023-12-25",
"count": 1
},
{
"date": "2024-01-02",
"count": 2
},
{
"date": "2024-01-03",
"count": 1
},
{
"date": "2024-01-05",
"count": 1
},
{
"date": "2024-01-10",
"count": 1
},
{
"date": "2024-01-12",
"count": 2
},
{
"date": "2024-01-13",
"count": 1
},
{
"date": "2024-01-17",
"count": 1
},
{
"date": "2024-01-18",
"count": 1
},
{
"date": "2024-01-19",
"count": 1
},
{
"date": "2024-01-21",
"count": 1
},
{
"date": "2024-01-22",
"count": 3
},
{
"date": "2024-01-23",
"count": 1
},
{
"date": "2024-01-31",
"count": 1
},
{
"date": "2024-02-01",
"count": 2
},
{
"date": "2024-02-02",
"count": 1
},
{
"date": "2024-02-11",
"count": 3
},
{
"date": "2024-02-14",
"count": 2
},
{
"date": "2024-02-18",
"count": 1
},
{
"date": "2024-02-19",
"count": 1
},
{
"date": "2024-02-20",
"count": 1
},
{
"date": "2024-02-21",
"count": 1
},
{
"date": "2024-02-22",
"count": 1
},
{
"date": "2024-02-23",
"count": 2
},
{
"date": "2024-02-24",
"count": 1
},
{
"date": "2024-02-27",
"count": 1
},
{
"date": "2024-03-02",
"count": 1
},
{
"date": "2024-03-04",
"count": 1
},
{
"date": "2024-03-08",
"count": 1
},
{
"date": "2024-03-11",
"count": 1
},
{
"date": "2024-03-12",
"count": 2
},
{
"date": "2024-03-13",
"count": 2
},
{
"date": "2024-03-14",
"count": 2
},
{
"date": "2024-03-15",
"count": 1
},
{
"date": "2024-03-18",
"count": 2
},
{
"date": "2024-03-23",
"count": 1
},
{
"date": "2024-03-24",
"count": 1
},
{
"date": "2024-03-27",
"count": 1
},
{
"date": "2024-03-28",
"count": 1
},
{
"date": "2024-03-29",
"count": 2
},
{
"date": "2024-04-02",
"count": 2
},
{
"date": "2024-04-04",
"count": 1
},
{
"date": "2024-04-06",
"count": 1
},
{
"date": "2024-04-08",
"count": 2
},
{
"date": "2024-04-10",
"count": 3
},
{
"date": "2024-04-11",
"count": 1
},
{
"date": "2024-04-12",
"count": 1
},
{
"date": "2024-04-15",
"count": 1
},
{
"date": "2024-04-19",
"count": 1
},
{
"date": "2024-04-20",
"count": 2
},
{
"date": "2024-04-26",
"count": 2
},
{
"date": "2024-04-28",
"count": 1
},
{
"date": "2024-04-29",
"count": 2
},
{
"date": "2024-05-01",
"count": 2
},
{
"date": "2024-05-03",
"count": 1
},
{
"date": "2024-05-04",
"count": 1
},
{
"date": "2024-05-06",
"count": 1
},
{
"date": "2024-05-07",
"count": 1
},
{
"date": "2024-05-10",
"count": 1
},
{
"date": "2024-05-11",
"count": 1
},
{
"date": "2024-05-12",
"count": 1
},
{
"date": "2024-05-13",
"count": 1
},
{
"date": "2024-05-16",
"count": 2
},
{
"date": "2024-05-17",
"count": 1
},
{
"date": "2024-05-18",
"count": 1
},
{
"date": "2024-05-19",
"count": 1
},
{
"date": "2024-05-21",
"count": 2
},
{
"date": "2024-05-23",
"count": 1
},
{
"date": "2024-05-24",
"count": 1
},
{
"date": "2024-05-25",
"count": 1
},
{
"date": "2024-05-26",
"count": 1
},
{
"date": "2024-05-27",
"count": 1
},
{
"date": "2024-05-29",
"count": 1
},
{
"date": "2024-06-01",
"count": 1
},
{
"date": "2024-06-08",
"count": 1
},
{
"date": "2024-06-10",
"count": 1
},
{
"date": "2024-06-11",
"count": 1
},
{
"date": "2024-06-16",
"count": 1
},
{
"date": "2024-06-17",
"count": 3
},
{
"date": "2024-06-24",
"count": 1
},
{
"date": "2024-06-25",
"count": 2
},
{
"date": "2024-06-28",
"count": 1
},
{
"date": "2024-07-01",
"count": 1
},
{
"date": "2024-07-02",
"count": 2
},
{
"date": "2024-07-07",
"count": 3
},
{
"date": "2024-07-09",
"count": 2
},
{
"date": "2024-07-13",
"count": 1
},
{
"date": "2024-07-17",
"count": 2
},
{
"date": "2024-07-18",
"count": 2
},
{
"date": "2024-07-19",
"count": 2
},
{
"date": "2024-07-20",
"count": 1
},
{
"date": "2024-07-24",
"count": 1
},
{
"date": "2024-07-28",
"count": 1
},
{
"date": "2024-07-31",
"count": 3
},
{
"date": "2024-08-02",
"count": 2
},
{
"date": "2024-08-03",
"count": 1
},
{
"date": "2024-08-07",
"count": 1
},
{
"date": "2024-08-12",
"count": 1
},
{
"date": "2024-08-22",
"count": 1
},
{
"date": "2024-08-23",
"count": 1
},
{
"date": "2024-08-24",
"count": 1
},
{
"date": "2024-08-27",
"count": 1
},
{
"date": "2024-08-28",
"count": 2
},
{
"date": "2024-08-29",
"count": 1
},
{
"date": "2024-08-31",
"count": 2
},
{
"date": "2024-09-01",
"count": 2
},
{
"date": "2024-09-03",
"count": 3
},
{
"date": "2024-09-05",
"count": 1
},
{
"date": "2024-09-06",
"count": 1
},
{
"date": "2024-09-07",
"count": 1
},
{
"date": "2024-09-11",
"count": 1
},
{
"date": "2024-09-13",
"count": 1
},
{
"date": "2024-09-14",
"count": 1
},
{
"date": "2024-09-18",
"count": 1
},
{
"date": "2024-09-19",
"count": 3
},
{
"date": "2024-09-20",
"count": 1
},
{
"date": "2024-09-21",
"count": 1
},
{
"date": "2024-09-22",
"count": 2
},
{
"date": "2024-09-23",
"count": 1
},
{
"date": "2024-09-24",
"count": 2
},
{
"date": "2024-09-25",
"count": 3
},
{
"date": "2024-09-26",
"count": 1
},
{
"date": "2024-09-28",
"count": 1
},
{
"date": "2024-09-29",
"count": 1
},
{
"date": "2024-09-30",
"count": 1
},
{
"date": "2024-10-01",
"count": 1
},
{
"date": "2024-10-03",
"count": 1
},
{
"date": "2024-10-05",
"count": 1
},
{
"date": "2024-10-06",
"count": 2
},
{
"date": "2024-10-08",
"count": 1
},
{
"date": "2024-10-09",
"count": 1
},
{
"date": "2024-10-11",
"count": 1
},
{
"date": "2024-10-17",
"count": 2
},
{
"date": "2024-10-18",
"count": 1
},
{
"date": "2024-10-19",
"count": 1
},
{
"date": "2024-10-23",
"count": 1
},
{
"date": "2024-10-24",
"count": 1
},
{
"date": "2024-10-26",
"count": 3
},
{
"date": "2024-10-28",
"count": 1
},
{
"date": "2024-10-30",
"count": 2
},
{
"date": "2024-11-03",
"count": 3
},
{
"date": "2024-11-04",
"count": 1
},
{
"date": "2024-11-07",
"count": 1
},
{
"date": "2024-11-10",
"count": 1
},
{
"date": "2024-11-11",
"count": 1
},
{
"date": "2024-11-12",
"count": 1
},
{
"date": "2024-11-14",
"count": 2
},
{
"date": "2024-11-15",
"count": 1
},
{
"date": "2024-11-16",
"count": 1
},
{
"date": "2024-11-20",
"count": 1
},
{
"date": "2024-11-21",
"count": 3
},
{
"date": "2024-11-23",
"count": 1
},
{
"date": "2024-11-24",
"count": 1
},
{
"date": "2024-11-25",
"count": 2
},
{
"date": "2024-11-28",
"count": 2
},
{
"date": "2024-11-29",
"count": 1
},
{
"date": "2024-11-30",
"count": 2
},
{
"date": "2024-12-01",
"count": 1
},
{
"date": "2024-12-02",
"count": 1
},
{
"date": "2024-12-04",
"count": 1
},
{
"date": "2024-12-06",
"count": 1
},
{
"date": "2024-12-07",
"count": 3
},
{
"date": "2024-12-09",
"count": 1
},
{
"date": "2024-12-10",
"count": 1
},
{
"date": "2024-12-11",
"count": 2
},
{
"date": "2024-12-12",
"count": 3
},
{
"date": "2024-12-13",
"count": 3
},
{
"date": "2024-12-17",
"count": 1
},
{
"date": "2024-12-20",
"count": 2
},
{
"date": "2024-12-21",
"count": 2
},
{
"date": "2024-12-23",
"count": 1
},
{
"date": "2024-12-24",
"count": 1
},
{
"date": "2024-12-25",
"count": 3
},
{
"date": "2024-12-26",
"count": 1
},
{
"date": "2024-12-27",
"count": 1
},
{
"date": "2024-12-30",
"count": 3
},
{
"date": "2025-01-01",
"count": 1
},
{
"date": "2025-01-03",
"count": 1
},
{
"date": "2025-01-04",
"count": 2
},
{
"date": "2025-01-05",
"count": 1
},
{
"date": "2025-01-06",
"count": 1
},
{
"date": "2025-01-07",
"count": 1
},
{
"date": "2025-01-08",
"count": 2
},
{
"date": "2025-01-10",
"count": 2
},
{
"date": "2025-01-13",
"count": 2
},
{
"date": "2025-01-14",
"count": 1
},
{
"date": "2025-01-15",
"count": 1
},
{
"date": "2025-01-16",
"count": 1
},
{
"date": "2025-01-18",
"count": 1
},
{
"date": "2025-01-29",
"count": 1
},
{
"date": "2025-01-30",
"count": 1
},
{
"date": "2025-02-01",
"count": 1
},
{
"date": "2025-02-03",
"count": 2
},
{
"date": "2025-02-07",
"count": 2
},
{
"date": "2025-02-08",
"count": 2
},
{
"date": "2025-02-10",
"count": 1
},
{
"date": "2025-02-12",
"count": 1
},
{
"date": "2025-02-13",
"count": 1
},
{
"date": "2025-02-15",
"count": 1
},
{
"date": "2025-02-17",
"count": 2
},
{
"date": "2025-02-19",
"count": 3
},
{
"date": "2025-02-20",
"count": 2
},
{
"date": "2025-02-22",
"count": 3
},
{
"date": "2025-02-26",
"count": 2
},
{
"date": "2025-03-01",
"count": 1
},
{
"date": "2025-03-04",
"count": 1
},
{
"date": "2025-03-05",
"count": 2
},
{
"date": "2025-03-06",
"count": 1
},
{
"date": "2025-03-07",
"count": 1
},
{
"date": "2025-03-08",
"count": 4
},
{
"date": "2025-03-10",
"count": 2
},
{
"date": "2025-03-11",
"count": 2
},
{
"date": "2025-03-12",
"count": 2
},
{
"date": "2025-03-13",
"count": 1
},
{
"date": "2025-03-15",
"count": 1
},
{
"date": "2025-03-16",
"count": 1
},
{
"date": "2025-03-17",
"count": 1
},
{
"date": "2025-03-18",
"count": 1
},
{
"date": "2025-03-19",
"count": 1
},
{
"date": "2025-03-21",
"count": 3
},
{
"date": "2025-03-22",
"count": 2
},
{
"date": "2025-03-24",
"count": 2
},
{
"date": "2025-03-25",
"count": 1
},
{
"date": "2025-03-31",
"count": 1
},
{
"date": "2025-04-02",
"count": 1
},
{
"date": "2025-04-05",
"count": 1
},
{
"date": "2025-04-06",
"count": 1
},
{
"date": "2025-04-08",
"count": 2
},
{
"date": "2025-04-09",
"count": 1
},
{
"date": "2025-04-11",
"count": 1
},
{
"date": "2025-04-12",
"count": 1
},
{
"date": "2025-04-13",
"count": 2
},
{
"date": "2025-04-15",
"count": 2
},
{
"date": "2025-04-16",
"count": 4
},
{
"date": "2025-04-17",
"count": 5
},
{
"date": "2025-04-18",
"count": 3
},
{
"date": "2025-04-21",
"count": 1
},
{
"date": "2025-04-22",
"count": 3
},
{
"date": "2025-04-23",
"count": 1
},
{
"date": "2025-04-24",
"count": 1
},
{
"date": "2025-04-26",
"count": 2
},
{
"date": "2025-04-28",
"count": 2
},
{
"date": "2025-04-29",
"count": 1
},
{
"date": "2025-05-01",
"count": 1
},
{
"date": "2025-05-03",
"count": 2
},
{
"date": "2025-05-08",
"count": 2
},
{
"date": "2025-05-09",
"count": 1
},
{
"date": "2025-05-10",
"count": 1
},
{
"date": "2025-05-11",
"count": 1
},
{
"date": "2025-05-12",
"count": 1
},
{
"date": "2025-05-13",
"count": 1
},
{
"date": "2025-05-14",
"count": 1
},
{
"date": "2025-05-15",
"count": 1
},
{
"date": "2025-05-16",
"count": 1
},
{
"date": "2025-05-17",
"count": 2
},
{
"date": "2025-05-18",
"count": 2
},
{
"date": "2025-05-19",
"count": 3
},
{
"date": "2025-05-20",
"count": 1
},
{
"date": "2025-05-21",
"count": 1
},
{
"date": "2025-05-24",
"count": 1
},
{
"date": "2025-05-26",
"count": 1
},
{
"date": "2025-05-27",
"count": 1
},
{
"date": "2025-05-28",
"count": 1
},
{
"date": "2025-05-29",
"count": 2
},
{
"date": "2025-05-30",
"count": 2
},
{
"date": "2025-06-01",
"count": 2
},
{
"date": "2025-06-03",
"count": 3
},
{
"date": "2025-06-05",
"count": 1
},
{
"date": "2025-06-06",
"count": 1
},
{
"date": "2025-06-08",
"count": 1
},
{
"date": "2025-06-10",
"count": 1
},
{
"date": "2025-06-11",
"count": 2
},
{
"date": "2025-06-12",
"count": 1
},
{
"date": "2025-06-15",
"count": 2
},
{
"date": "2025-06-17",
"count": 1
},
{
"date": "2025-06-19",
"count": 1
},
{
"date": "2025-06-21",
"count": 1
},
{
"date": "2025-06-23",
"count": 1
},
{
"date": "2025-06-26",
"count": 2
},
{
"date": "2025-06-27",
"count": 1
},
{
"date": "2025-06-28",
"count": 1
},
{
"date": "2025-06-29",
"count": 1
},
{
"date": "2025-06-30",
"count": 1
},
{
"date": "2025-07-01",
"count": 1
},
{
"date": "2025-07-02",
"count": 3
},
{
"date": "2025-07-04",
"count": 1
},
{
"date": "2025-07-06",
"count": 1
},
{
"date": "2025-07-07",
"count": 1
},
{
"date": "2025-07-08",
"count": 2
},
{
"date": "2025-07-09",
"count": 1
},
{
"date": "2025-07-11",
"count": 1
},
{
"date": "2025-07-12",
"count": 3
},
{
"date": "2025-07-13",
"count": 1
},
{
"date": "2025-07-15",
"count": 1
},
{
"date": "2025-07-18",
"count": 2
},
{
"date": "2025-07-19",
"count": 1
},
{
"date": "2025-07-20",
"count": 2
},
{
"date": "2025-07-21",
"count": 1
},
{
"date": "2025-07-23",
"count": 1
},
{
"date": "2025-07-24",
"count": 3
},
{
"date": "2025-07-25",
"count": 1
},
{
"date": "2025-07-26",
"count": 2
},
{
"date": "2025-07-27",
"count": 1
},
{
"date": "2025-07-28",
"count": 3
},
{
"date": "2025-07-29",
"count": 3
},
{
"date": "2025-07-31",
"count": 2
},
{
"date": "2025-08-01",
"count": 1
},
{
"date": "2025-08-04",
"count": 1
},
{
"date": "2025-08-06",
"count": 1
},
{
"date": "2025-08-07",
"count": 2
},
{
"date": "2025-08-08",
"count": 1
},
{
"date": "2025-08-09",
"count": 2
},
{
"date": "2025-08-13",
"count": 1
},
{
"date": "2025-08-19",
"count": 3
},
{
"date": "2025-08-24",
"count": 1
},
{
"date": "2025-08-25",
"count": 2
},
{
"date": "2025-08-26",
"count": 1
},
{
"date": "2025-08-28",
"count": 1
},
{
"date": "2025-08-29",
"count": 1
},
{
"date": "2025-08-31",
"count": 4
},
{
"date": "2025-09-03",
"count": 1
},
{
"date": "2025-09-04",
"count": 1
},
{
"date": "2025-09-09",
"count": 1
},
{
"date": "2025-09-10",
"count": 1
},
{
"date": "2025-09-11",
"count": 2
},
{
"date": "2025-09-12",
"count": 2
},
{
"date": "2025-09-14",
"count": 2
},
{
"date": "2025-09-15",
"count": 2
},
{
"date": "2025-09-17",
"count": 4
},
{
"date": "2025-09-18",
"count": 1
},
{
"date": "2025-09-19",
"count": 2
},
{
"date": "2025-09-20",
"count": 2
},
{
"date": "2025-09-21",
"count": 1
},
{
"date": "2025-09-22",
"count": 1
},
{
"date": "2025-09-23",
"count": 2
},
{
"date": "2025-09-24",
"count": 1
},
{
"date": "2025-09-26",
"count": 1
},
{
"date": "2025-09-29",
"count": 2
},
{
"date": "2025-10-01",
"count": 1
},
{
"date": "2025-10-03",
"count": 1
},
{
"date": "2025-10-07",
"count": 1
},
{
"date": "2025-10-09",
"count": 1
},
{
"date": "2025-10-10",
"count": 1
},
{
"date": "2025-10-11",
"count": 2
},
{
"date": "2025-10-13",
"count": 2
},
{
"date": "2025-10-14",
"count": 3
},
{
"date": "2025-10-17",
"count": 3
},
{
"date": "2025-10-19",
"count": 2
},
{
"date": "2025-10-21",
"count": 1
},
{
"date": "2025-10-22",
"count": 2
},
{
"date": "2025-10-24",
"count": 1
},
{
"date": "2025-10-25",
"count": 2
},
{
"date": "2025-10-26",
"count": 3
},
{
"date": "2025-10-27",
"count": 2
},
{
"date": "2025-10-28",
"count": 1
},
{
"date": "2025-10-29",
"count": 2
},
{
"date": "2025-10-30",
"count": 1
},
{
"date": "2025-10-31",
"count": 1
},
{
"date": "2025-11-01",
"count": 2
},
{
"date": "2025-11-02",
"count": 1
},
{
"date": "2025-11-04",
"count": 2
},
{
"date": "2025-11-05",
"count": 4
},
{
"date": "2025-11-06",
"count": 1
},
{
"date": "2025-11-07",
"count": 2
},
{
"date": "2025-11-08",
"count": 1
},
{
"date": "2025-11-09",
"count": 3
},
{
"date": "2025-11-11",
"count": 6
},
{
"date": "2025-11-15",
"count": 2
},
{
"date": "2025-11-16",
"count": 1
},
{
"date": "2025-11-17",
"count": 2
},
{
"date": "2025-11-18",
"count": 3
},
{
"date": "2025-11-21",
"count": 3
},
{
"date": "2025-11-22",
"count": 1
},
{
"date": "2025-11-23",
"count": 2
},
{
"date": "2025-11-24",
"count": 2
},
{
"date": "2025-11-25",
"count": 2
},
{
"date": "2025-11-26",
"count": 1
},
{
"date": "2025-11-27",
"count": 1
},
{
"date": "2025-11-28",
"count": 2
},
{
"date": "2025-11-29",
"count": 3
},
{
"date": "2025-12-02",
"count": 2
},
{
"date": "2025-12-03",
"count": 2
},
{
"date": "2025-12-06",
"count": 2
},
{
"date": "2025-12-08",
"count": 1
},
{
"date": "2025-12-09",
"count": 2
},
{
"date": "2025-12-10",
"count": 3
},
{
"date": "2025-12-11",
"count": 1
},
{
"date": "2025-12-12",
"count": 1
},
{
"date": "2025-12-13",
"count": 5
},
{
"date": "2025-12-14",
"count": 1
},
{
"date": "2025-12-15",
"count": 2
},
{
"date": "2025-12-16",
"count": 1
},
{
"date": "2025-12-18",
"count": 1
},
{
"date": "2025-12-19",
"count": 1
},
{
"date": "2025-12-20",
"count": 1
},
{
"date": "2025-12-21",
"count": 1
},
{
"date": "2025-12-23",
"count": 5
},
{
"date": "2025-12-24",
"count": 1
},
{
"date": "2025-12-25",
"count": 1
},
{
"date": "2025-12-26",
"count": 1
},
{
"date": "2025-12-27",
"count": 2
},
{
"date": "2025-12-28",
"count": 2
},
{
"date": "2025-12-29",
"count": 2
},
{
"date": "2025-12-30",
"count": 2
},
{
"date": "2025-12-31",
"count": 2
},
{
"date": "2026-01-02",
"count": 2
},
{
"date": "2026-01-05",
"count": 1
},
{
"date": "2026-01-06",
"count": 1
},
{
"date": "2026-01-07",
"count": 2
},
{
"date": "2026-01-09",
"count": 1
},
{
"date": "2026-01-10",
"count": 1
},
{
"date": "2026-01-11",
"count": 1
},
{
"date": "2026-01-12",
"count": 2
},
{
"date": "2026-01-13",
"count": 2
},
{
"date": "2026-01-15",
"count": 1
},
{
"date": "2026-01-16",
"count": 2
},
{
"date": "2026-01-17",
"count": 2
},
{
"date": "2026-01-18",
"count": 1
},
{
"date": "2026-01-19",
"count": 2
},
{
"date": "2026-01-20",
"count": 2
},
{
"date": "2026-01-21",
"count": 1
},
{
"date": "2026-01-23",
"count": 1
},
{
"date": "2026-01-25",
"count": 3
},
{
"date": "2026-01-26",
"count": 2
},
{
"date": "2026-01-27",
"count": 4
},
{
"date": "2026-01-28",
"count": 3
},
{
"date": "2026-01-29",
"count": 3
},
{
"date": "2026-01-30",
"count": 1
},
{
"date": "2026-01-31",
"count": 3
},
{
"date": "2026-02-01",
"count": 1
},
{
"date": "2026-02-02",
"count": 1
},
{
"date": "2026-02-03",
"count": 2
},
{
"date": "2026-02-05",
"count": 3
},
{
"date": "2026-02-06",
"count": 1
},
{
"date": "2026-02-07",
"count": 1
},
{
"date": "2026-02-08",
"count": 4
},
{
"date": "2026-02-09",
"count": 3
},
{
"date": "2026-02-12",
"count": 2
},
{
"date": "2026-02-13",
"count": 2
},
{
"date": "2026-02-15",
"count": 2
},
{
"date": "2026-02-16",
"count": 2
},
{
"date": "2026-02-18",
"count": 1
},
{
"date": "2026-02-19",
"count": 3
},
{
"date": "2026-02-20",
"count": 5
},
{
"date": "2026-02-21",
"count": 2
},
{
"date": "2026-02-23",
"count": 1
},
{
"date": "2026-02-25",
"count": 1
},
{
"date": "2026-02-26",
"count": 1
},
{
"date": "2026-02-27",
"count": 3
},
{
"date": "2026-02-28",
"count": 5
},
{
"date": "2026-03-01",
"count": 1
},
{
"date": "2026-03-03",
"count": 1
},
{
"date": "2026-03-04",
"count": 4
},
{
"date": "2026-03-05",
"count": 1
},
{
"date": "2026-03-06",
"count": 2
},
{
"date": "2026-03-07",
"count": 2
},
{
"date": "2026-03-10",
"count": 4
},
{
"date": "2026-03-11",
"count": 1
},
{
"date": "2026-03-13",
"count": 3
},
{
"date": "2026-03-14",
"count": 2
},
{
"date": "2026-03-15",
"count": 2
},
{
"date": "2026-03-16",
"count": 5
},
{
"date": "2026-03-17",
"count": 4
},
{
"date": "2026-03-18",
"count": 2
},
{
"date": "2026-03-19",
"count": 3
},
{
"date": "2026-03-21",
"count": 2
},
{
"date": "2026-03-22",
"count": 2
},
{
"date": "2026-03-24",
"count": 1
},
{
"date": "2026-03-25",
"count": 3
},
{
"date": "2026-03-26",
"count": 1
},
{
"date": "2026-03-27",
"count": 2
},
{
"date": "2026-03-28",
"count": 1
},
{
"date": "2026-03-29",
"count": 1
},
{
"date": "2026-03-30",
"count": 2
},
{
"date": "2026-03-31",
"count": 2
},
{
"date": "2026-04-01",
"count": 3
},
{
"date": "2026-04-02",
"count": 1
},
{
"date": "2026-04-03",
"count": 3
},
{
"date": "2026-04-04",
"count": 1
},
{
"date": "2026-04-05",
"count": 2
},
{
"date": "2026-04-07",
"count": 1
},
{
"date": "2026-04-08",
"count": 1
},
{
"date": "2026-04-09",
"count": 1
},
{
"date": "2026-04-10",
"count": 4
},
{
"date": "2026-04-11",
"count": 1
},
{
"date": "2026-04-12",
"count": 4
},
{
"date": "2026-04-13",
"count": 3
},
{
"date": "2026-04-14",
"count": 1
},
{
"date": "2026-04-15",
"count": 4
},
{
"date": "2026-04-16",
"count": 1
},
{
"date": "2026-04-17",
"count": 2
},
{
"date": "2026-04-18",
"count": 1
},
{
"date": "2026-04-20",
"count": 1
},
{
"date": "2026-04-21",
"count": 1
},
{
"date": "2026-04-22",
"count": 1
},
{
"date": "2026-04-23",
"count": 3
},
{
"date": "2026-04-24",
"count": 1
},
{
"date": "2026-04-25",
"count": 4
},
{
"date": "2026-04-26",
"count": 1
},
{
"date": "2026-04-27",
"count": 3
},
{
"date": "2026-04-28",
"count": 2
},
{
"date": "2026-04-29",
"count": 1
},
{
"date": "2026-04-30",
"count": 2
},
{
"date": "2026-05-01",
"count": 1
},
{
"date": "2026-05-05",
"count": 2
},
{
"date": "2026-05-08",
"count": 2
},
{
"date": "2026-05-09",
"count": 2
},
{
"date": "2026-05-10",
"count": 1
},
{
"date": "2026-05-11",
"count": 1
},
{
"date": "2026-05-13",
"count": 3
},
{
"date": "2026-05-14",
"count": 1
},
{
"date": "2026-05-15",
"count": 2
},
{
"date": "2026-05-17",
"count": 2
},
{
"date": "2026-05-18",
"count": 2
},
{
"date": "2026-05-19",
"count": 2
},
{
"date": "2026-05-20",
"count": 1
},
{
"date": "2026-05-21",
"count": 2
},
{
"date": "2026-05-22",
"count": 1
},
{
"date": "2026-05-23",
"count": 1
},
{
"date": "2026-05-24",
"count": 2
},
{
"date": "2026-05-25",
"count": 1
},
{
"date": "2026-05-26",
"count": 2
},
{
"date": "2026-05-27",
"count": 3
},
{
"date": "2026-05-28",
"count": 2
},
{
"date": "2026-05-30",
"count": 1
},
{
"date": "2026-05-31",
"count": 3
},
{
"date": "2026-06-01",
"count": 3
},
{
"date": "2026-06-02",
"count": 1
},
{
"date": "2026-06-03",
"count": 5
},
{
"date": "2026-06-04",
"count": 2
},
{
"date": "2026-06-06",
"count": 2
},
{
"date": "2026-06-08",
"count": 2
},
{
"date": "2026-06-09",
"count": 3
},
{
"date": "2026-06-10",
"count": 1
},
{
"date": "2026-06-11",
"count": 2
},
{
"date": "2026-06-12",
"count": 3
},
{
"date": "2026-06-13",
"count": 3
},
{
"date": "2026-06-15",
"count": 1
},
{
"date": "2026-06-16",
"count": 2
},
{
"date": "2026-06-18",
"count": 1
},
{
"date": "2026-06-19",
"count": 1
},
{
"date": "2026-06-20",
"count": 1
},
{
"date": "2026-06-21",
"count": 4
},
{
"date": "2026-06-22",
"count": 3
},
{
"date": "2026-06-24",
"count": 2
},
{
"date": "2026-06-25",
"count": 3
},
{
"date": "2026-06-26",
"count": 1
},
{
"date": "2026-06-29",
"count": 5
},
{
"date": "2026-06-30",
"count": 6
},
{
"date": "2026-07-01",
"count": 4
},
{
"date": "2026-07-02",
"count": 2
},
{
"date": "2026-07-03",
"count": 2
},
{
"date": "2026-07-05",
"count": 6
},
{
"date": "2026-07-06",
"count": 1
},
{
"date": "2026-07-07",
"count": 1
},
{
"date": "2026-07-08",
"count": 1
},
{
"date": "2026-07-09",
"count": 1
},
{
"date": "2026-07-10",
"count": 6
},
{
"date": "2026-07-11",
"count": 3
},
{
"date": "2026-07-13",
"count": 2
},
{
"date": "2026-07-14",
"count": 1
},
{
"date": "2026-07-16",
"count": 2
},
{
"date": "2026-07-17",
"count": 1
},
{
"date": "2026-07-18",
"count": 1
},
{
"date": "2026-07-19",
"count": 2
},
{
"date": "2026-07-20",
"count": 2
},
{
"date": "2026-07-21",
"count": 1
},
{
"date": "2026-07-22",
"count": 4
},
{
"date": "2026-07-23",
"count": 2
},
{
"date": "2026-07-25",
"count": 2
},
{
"date": "2026-07-26",
"count": 2
},
{
"date": "2026-07-27",
"count": 2
},
{
"date": "2026-07-28",
"count": 1
}
],
"complete": false,
"collected": 1000,
"total_forks": 1605
},
"star_history": null,
"open_issues_and_prs": 238
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"examples"
],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [
"Makefile",
"plugins/examples/Makefile",
"plugins/examples/coverartarchive-py/Makefile",
"plugins/examples/nowplaying-py/Makefile",
"plugins/testdata/Makefile"
],
"api_schema_files": [],
"has_devcontainer": true,
"typecheck_configs": [
"ui/tsconfig.json"
],
"toolchain_manifests": [
"go.mod",
"plugins/cmd/ndpgen/go.mod",
"plugins/examples/crypto-ticker/go.mod",
"plugins/examples/discord-rich-presence-rs/Cargo.toml",
"plugins/examples/library-inspector-rs/Cargo.toml",
"plugins/examples/minimal/go.mod",
"plugins/examples/webhook-rs/Cargo.toml",
"plugins/examples/wikimedia/go.mod",
"plugins/pdk/go/go.mod",
"plugins/pdk/rust/nd-pdk-capabilities/Cargo.toml",
"plugins/pdk/rust/nd-pdk-host/Cargo.toml",
"plugins/pdk/rust/nd-pdk-types/Cargo.toml",
"plugins/pdk/rust/nd-pdk/Cargo.toml",
"plugins/testdata/partial-metadata-agent/go.mod",
"plugins/testdata/test-artwork/go.mod",
"plugins/testdata/test-cache-plugin/go.mod",
"plugins/testdata/test-config/go.mod",
"plugins/testdata/test-kvstore/go.mod",
"plugins/testdata/test-library/go.mod",
"plugins/testdata/test-lyrics/go.mod",
"plugins/testdata/test-matcher/go.mod",
"plugins/testdata/test-metadata-agent/go.mod",
"plugins/testdata/test-scheduler/go.mod",
"plugins/testdata/test-scrobbler/go.mod",
"plugins/testdata/test-sonic-similarity/go.mod",
"plugins/testdata/test-subsonicapi-plugin/go.mod",
"plugins/testdata/test-taskqueue/go.mod",
"plugins/testdata/test-users/go.mod",
"plugins/testdata/test-websocket/go.mod"
],
"largest_source_bytes": 56177,
"source_files_sampled": 1400,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"go.mod",
"ui/package.json"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "uuid",
"direct": true,
"version": "13.0.0",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-w5hq-g745-h8pq"
],
"fixed_version": "13.0.1",
"advisory_count": 1,
"oldest_advisory_days": 96
},
{
"name": "uuid",
"direct": true,
"version": "3.4.0",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-w5hq-g745-h8pq"
],
"fixed_version": "13.0.1",
"advisory_count": 1,
"oldest_advisory_days": 96
},
{
"name": "@babel/plugin-transform-modules-systemjs",
"direct": false,
"version": "7.29.0",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 8.2,
"advisory_ids": [
"GHSA-fv7c-fp4j-7gwp"
],
"fixed_version": "8.0.0-alpha.13",
"advisory_count": 1,
"oldest_advisory_days": 80
},
{
"name": "brace-expansion",
"direct": false,
"version": "1.1.13",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-3jxr-9vmj-r5cp",
"GHSA-mh99-v99m-4gvg"
],
"fixed_version": "5.0.8",
"advisory_count": 2,
"oldest_advisory_days": 7
},
{
"name": "brace-expansion",
"direct": false,
"version": "2.0.3",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-3jxr-9vmj-r5cp",
"GHSA-mh99-v99m-4gvg"
],
"fixed_version": "5.0.8",
"advisory_count": 2,
"oldest_advisory_days": 7
},
{
"name": "brace-expansion",
"direct": false,
"version": "5.0.5",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-3jxr-9vmj-r5cp",
"GHSA-jxxr-4gwj-5jf2",
"GHSA-mh99-v99m-4gvg"
],
"fixed_version": "5.0.8",
"advisory_count": 3,
"oldest_advisory_days": 70
},
{
"name": "fast-uri",
"direct": false,
"version": "3.1.0",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-4c8g-83qw-93j6",
"GHSA-q3j6-qgpj-74h6",
"GHSA-v2hh-gcrm-f6hx",
"GHSA-v39h-62p7-jpjc"
],
"fixed_version": "4.1.1",
"advisory_count": 4,
"oldest_advisory_days": 80
},
{
"name": "immutable",
"direct": false,
"version": "4.3.8",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-v56q-mh7h-f735",
"GHSA-xvcm-6775-5m9r"
],
"fixed_version": "5.1.8",
"advisory_count": 2,
"oldest_advisory_days": 6
},
{
"name": "js-yaml",
"direct": false,
"version": "3.14.2",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-52cp-r559-cp3m",
"GHSA-h67p-54hq-rp68"
],
"fixed_version": "4.3.0",
"advisory_count": 2,
"oldest_advisory_days": 42
},
{
"name": "js-yaml",
"direct": false,
"version": "4.1.1",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-52cp-r559-cp3m",
"GHSA-h67p-54hq-rp68"
],
"fixed_version": "4.3.0",
"advisory_count": 2,
"oldest_advisory_days": 42
},
{
"name": "lodash",
"direct": false,
"version": "4.17.23",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 8.1,
"advisory_ids": [
"GHSA-f23m-r3pf-42rh",
"GHSA-r5fr-rjxr-66jc"
],
"fixed_version": "4.18.0",
"advisory_count": 2,
"oldest_advisory_days": 117
},
{
"name": "minimatch",
"direct": false,
"version": "9.0.3",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-23c5-xmqv-rm74",
"GHSA-3ppc-4f35-3m26",
"GHSA-7r86-cg39-jmmj"
],
"fixed_version": "10.2.3",
"advisory_count": 3,
"oldest_advisory_days": 159
},
{
"name": "postcss",
"direct": false,
"version": "8.5.8",
"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": 94
},
{
"name": "serialize-javascript",
"direct": false,
"version": "6.0.2",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 8.1,
"advisory_ids": [
"GHSA-5c6j-r48x-rmvq",
"GHSA-qj8w-gfj5-8c6v"
],
"fixed_version": "7.0.5",
"advisory_count": 2,
"oldest_advisory_days": 150
},
{
"name": "tmp",
"direct": false,
"version": "0.0.33",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-52f5-9888-hmc6",
"GHSA-ph9p-34f9-6g65"
],
"fixed_version": "0.2.6",
"advisory_count": 2,
"oldest_advisory_days": 355
},
{
"name": "vite",
"direct": false,
"version": "7.3.2",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-fx2h-pf6j-xcff",
"GHSA-v6wh-96g9-6wx3"
],
"fixed_version": "8.0.16",
"advisory_count": 2,
"oldest_advisory_days": 42
},
{
"name": "ws",
"direct": false,
"version": "8.20.0",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-58qx-3vcg-4xpx",
"GHSA-96hv-2xvq-fx4p"
],
"fixed_version": "8.21.0",
"advisory_count": 2,
"oldest_advisory_days": 70
},
{
"name": "dompurify",
"direct": true,
"version": "2.5.9",
"severity": "moderate",
"ecosystem": "npm",
"cvss_score": 6.8,
"advisory_ids": [
"GHSA-39q2-94rc-95cp",
"GHSA-76mc-f452-cxcm",
"GHSA-c2j3-45gr-mqc4",
"GHSA-cj63-jhhr-wcxv",
"GHSA-cjmm-f4jc-qw8r",
"GHSA-cmwh-pvxp-8882",
"GHSA-crv5-9vww-q3g8",
"GHSA-h7mw-gpvr-xq4m",
"GHSA-h8r8-wccr-v5f2",
"GHSA-hpcv-96wg-7vj8"
],
"fixed_version": "3.4.12",
"advisory_count": 15,
"oldest_advisory_days": 528
},
{
"name": "dompurify",
"direct": true,
"version": "3.3.3",
"severity": "moderate",
"ecosystem": "npm",
"cvss_score": 6.9,
"advisory_ids": [
"GHSA-39q2-94rc-95cp",
"GHSA-76mc-f452-cxcm",
"GHSA-c2j3-45gr-mqc4",
"GHSA-cmwh-pvxp-8882",
"GHSA-crv5-9vww-q3g8",
"GHSA-gvmj-g25r-r7wr",
"GHSA-h7mw-gpvr-xq4m",
"GHSA-hpcv-96wg-7vj8",
"GHSA-r47g-fvhr-h676",
"GHSA-rp9w-3fw7-7cwq"
],
"fixed_version": "3.4.12",
"advisory_count": 13,
"oldest_advisory_days": 103
},
{
"name": "@babel/core",
"direct": false,
"version": "7.29.0",
"severity": "low",
"ecosystem": "npm",
"cvss_score": 3.2,
"advisory_ids": [
"GHSA-4x5r-pxfx-6jf8"
],
"fixed_version": "8.0.0-rc.6",
"advisory_count": 1,
"oldest_advisory_days": 42
},
{
"name": "esbuild",
"direct": false,
"version": "0.27.7",
"severity": "low",
"ecosystem": "npm",
"cvss_score": 2.5,
"advisory_ids": [
"GHSA-g7r4-m6w7-qqqr"
],
"fixed_version": "0.28.1",
"advisory_count": 1,
"oldest_advisory_days": 45
},
{
"name": "golang.org/x/net",
"direct": true,
"version": "v0.55.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5942"
],
"fixed_version": "0.56.0",
"advisory_count": 1,
"oldest_advisory_days": 13
},
{
"name": "golang.org/x/text",
"direct": true,
"version": "v0.37.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5970"
],
"fixed_version": "0.39.0",
"advisory_count": 1,
"oldest_advisory_days": 13
},
{
"name": "anyhow",
"direct": false,
"version": "1.0.100",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2026-0190"
],
"fixed_version": "1.0.103",
"advisory_count": 1,
"oldest_advisory_days": 32
},
{
"name": "golang.org/x/crypto",
"direct": false,
"version": "v0.54.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5932"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 20
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"low": 2,
"high": 17,
"unknown": 4,
"moderate": 2
},
"advisory_count": 70,
"affected_count": 25,
"assessed_count": 1116,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 4,
"direct_affected_count": 6
},
"ecosystems": [
"go",
"npm"
],
"dependencies": [
{
"name": "github.com/Masterminds/squirrel",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.5.4"
},
{
"name": "github.com/andybalholm/cascadia",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.3.4"
},
{
"name": "github.com/bmatcuk/doublestar/v4",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v4.10.0"
},
{
"name": "github.com/deluan/rest",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20211102003136-6260bc399cbf"
},
{
"name": "github.com/deluan/sanitize",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20241120162836-fdfd8fdfaa55"
},
{
"name": "github.com/dexterlb/mpvipc",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20241005113212-7cdefca0e933"
},
{
"name": "github.com/djherbis/atime",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.0"
},
{
"name": "github.com/djherbis/fscache",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.10.2-0.20231127215153-442a07e326c4"
},
{
"name": "github.com/djherbis/stream",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.4.0"
},
{
"name": "github.com/djherbis/times",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.0"
},
{
"name": "github.com/dustin/go-humanize",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.1"
},
{
"name": "github.com/extism/go-sdk",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.7.1"
},
{
"name": "github.com/fatih/structs",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.0"
},
{
"name": "github.com/gen2brain/webp",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.6.4"
},
{
"name": "github.com/go-chi/chi/v5",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v5.3.1"
},
{
"name": "github.com/go-chi/cors",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.2.2"
},
{
"name": "github.com/go-chi/httprate",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.16.0"
},
{
"name": "github.com/go-chi/jwtauth/v5",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v5.4.0"
},
{
"name": "github.com/go-viper/encoding/ini",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.1.1"
},
{
"name": "github.com/go-viper/mapstructure/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.5.0"
},
{
"name": "github.com/gohugoio/hashstructure",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.6.0"
},
{
"name": "github.com/google/go-pipeline",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20230411140531-6cbedfc1d3fc"
},
{
"name": "github.com/google/uuid",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.0"
},
{
"name": "github.com/google/wire",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.7.0"
},
{
"name": "github.com/gorilla/websocket",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.5.3"
},
{
"name": "github.com/hashicorp/go-multierror",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.1"
},
{
"name": "github.com/jellydator/ttlcache/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.4.1"
},
{
"name": "github.com/kardianos/service",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.3.0"
},
{
"name": "github.com/kr/pretty",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.3.1"
},
{
"name": "github.com/lestrrat-go/jwx/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.1.1"
},
{
"name": "github.com/mattn/go-sqlite3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.14.48"
},
{
"name": "github.com/microcosm-cc/bluemonday",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.27"
},
{
"name": "github.com/mileusna/useragent",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.3.5"
},
{
"name": "github.com/onsi/ginkgo/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.32.0"
},
{
"name": "github.com/onsi/gomega",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.42.1"
},
{
"name": "github.com/pelletier/go-toml/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.4.3"
},
{
"name": "github.com/pmezard/go-difflib",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.0"
},
{
"name": "github.com/pocketbase/dbx",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.12.0"
},
{
"name": "github.com/pressly/goose/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.27.2"
},
{
"name": "github.com/prometheus/client_golang",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.23.2"
},
{
"name": "github.com/rjeczalik/notify",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.9.3"
},
{
"name": "github.com/robfig/cron/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.0.1"
},
{
"name": "github.com/sabhiram/go-gitignore",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20210923224102-525f6e181f06"
},
{
"name": "github.com/santhosh-tekuri/jsonschema/v6",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v6.0.2"
},
{
"name": "github.com/sirupsen/logrus",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.9.4"
},
{
"name": "github.com/spf13/cobra",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.10.2"
},
{
"name": "github.com/spf13/viper",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.21.0"
},
{
"name": "github.com/stretchr/testify",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.11.1"
},
{
"name": "github.com/tetratelabs/wazero",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.12.0"
},
{
"name": "github.com/unrolled/secure",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.17.0"
},
{
"name": "github.com/xrash/smetrics",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20250705151800-55b8f293f342"
},
{
"name": "go.senan.xyz/taglib",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.11.1"
},
{
"name": "go.uber.org/goleak",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.3.0"
},
{
"name": "golang.org/x/image",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.44.0"
},
{
"name": "golang.org/x/net",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.57.0"
},
{
"name": "golang.org/x/sync",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.22.0"
},
{
"name": "golang.org/x/sys",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.47.0"
},
{
"name": "golang.org/x/term",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.45.0"
},
{
"name": "golang.org/x/text",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.40.0"
},
{
"name": "golang.org/x/time",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.15.0"
},
{
"name": "gopkg.in/yaml.v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.0.1"
},
{
"name": "@jsonforms/core",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^2.5.2"
},
{
"name": "@jsonforms/material-renderers",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^2.5.2"
},
{
"name": "@jsonforms/react",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^2.5.2"
},
{
"name": "@material-ui/core",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^4.12.4"
},
{
"name": "@material-ui/icons",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^4.11.3"
},
{
"name": "@material-ui/lab",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^4.0.0-alpha.61"
},
{
"name": "@material-ui/styles",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^4.11.5"
},
{
"name": "blueimp-md5",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^2.19.0"
},
{
"name": "clsx",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^2.1.1"
},
{
"name": "connected-react-router",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^6.9.3"
},
{
"name": "deepmerge",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^4.3.1"
},
{
"name": "dompurify",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^3.3.2"
},
{
"name": "history",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^4.10.1"
},
{
"name": "inflection",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^3.0.2"
},
{
"name": "jwt-decode",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^4.0.0"
},
{
"name": "lodash.throttle",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^4.1.1"
},
{
"name": "navidrome-music-player",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "4.25.4"
},
{
"name": "prop-types",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^15.8.1"
},
{
"name": "ra-data-json-server",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^3.19.12"
},
{
"name": "ra-i18n-polyglot",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^3.19.12"
},
{
"name": "react",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^17.0.2"
},
{
"name": "react-admin",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^3.19.12"
},
{
"name": "react-dnd",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^14.0.5"
},
{
"name": "react-dnd-html5-backend",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^14.1.0"
},
{
"name": "react-dom",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^17.0.2"
},
{
"name": "react-drag-listview",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^0.1.9"
},
{
"name": "react-ga",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^3.3.1"
},
{
"name": "react-hotkeys",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^2.0.0"
},
{
"name": "react-icons",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^5.5.0"
},
{
"name": "react-image-lightbox",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^5.1.4"
},
{
"name": "react-measure",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^2.5.2"
},
{
"name": "react-redux",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^7.2.9"
},
{
"name": "react-router-dom",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^5.3.4"
},
{
"name": "redux",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^4.2.1"
},
{
"name": "redux-saga",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^1.4.2"
},
{
"name": "uuid",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^13.0.0"
},
{
"name": "workbox-cli",
"manifest": "ui/package.json",
"ecosystem": "npm",
"version_constraint": "^7.3.0"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "github.com/andybalholm/cascadia",
"direct": true,
"version": "v1.3.4",
"ecosystem": "go"
},
{
"name": "github.com/bmatcuk/doublestar/v4",
"direct": true,
"version": "v4.10.0",
"ecosystem": "go"
},
{
"name": "github.com/deluan/rest",
"direct": true,
"version": "v0.0.0-20211102003136-6260bc399cbf",
"ecosystem": "go"
},
{
"name": "github.com/deluan/sanitize",
"direct": true,
"version": "v0.0.0-20241120162836-fdfd8fdfaa55",
"ecosystem": "go"
},
{
"name": "github.com/dexterlb/mpvipc",
"direct": true,
"version": "v0.0.0-20241005113212-7cdefca0e933",
"ecosystem": "go"
},
{
"name": "github.com/djherbis/atime",
"direct": true,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/djherbis/fscache",
"direct": true,
"version": "v0.10.2-0.20231127215153-442a07e326c4",
"ecosystem": "go"
},
{
"name": "github.com/djherbis/stream",
"direct": true,
"version": "v1.4.0",
"ecosystem": "go"
},
{
"name": "github.com/djherbis/times",
"direct": true,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "github.com/dustin/go-humanize",
"direct": true,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/extism/go-sdk",
"direct": true,
"version": "v1.7.1",
"ecosystem": "go"
},
{
"name": "github.com/fatih/structs",
"direct": true,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/gen2brain/webp",
"direct": true,
"version": "v0.6.4",
"ecosystem": "go"
},
{
"name": "github.com/go-chi/chi/v5",
"direct": true,
"version": "v5.3.1",
"ecosystem": "go"
},
{
"name": "github.com/go-chi/cors",
"direct": true,
"version": "v1.2.2",
"ecosystem": "go"
},
{
"name": "github.com/go-chi/httprate",
"direct": true,
"version": "v0.16.0",
"ecosystem": "go"
},
{
"name": "github.com/go-chi/jwtauth/v5",
"direct": true,
"version": "v5.4.0",
"ecosystem": "go"
},
{
"name": "github.com/go-viper/encoding/ini",
"direct": true,
"version": "v0.1.1",
"ecosystem": "go"
},
{
"name": "github.com/go-viper/mapstructure/v2",
"direct": true,
"version": "v2.5.0",
"ecosystem": "go"
},
{
"name": "github.com/gohugoio/hashstructure",
"direct": true,
"version": "v0.6.0",
"ecosystem": "go"
},
{
"name": "github.com/google/go-pipeline",
"direct": true,
"version": "v0.0.0-20230411140531-6cbedfc1d3fc",
"ecosystem": "go"
},
{
"name": "github.com/google/uuid",
"direct": true,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "github.com/google/wire",
"direct": true,
"version": "v0.7.0",
"ecosystem": "go"
},
{
"name": "github.com/gorilla/websocket",
"direct": true,
"version": "v1.5.3",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/go-multierror",
"direct": true,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/jellydator/ttlcache/v3",
"direct": true,
"version": "v3.4.1",
"ecosystem": "go"
},
{
"name": "github.com/kardianos/service",
"direct": true,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "github.com/kr/pretty",
"direct": true,
"version": "v0.3.1",
"ecosystem": "go"
},
{
"name": "github.com/lestrrat-go/jwx/v3",
"direct": true,
"version": "v3.1.1",
"ecosystem": "go"
},
{
"name": "github.com/masterminds/squirrel",
"direct": true,
"version": "v1.5.4",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-sqlite3",
"direct": true,
"version": "v1.14.48",
"ecosystem": "go"
},
{
"name": "github.com/microcosm-cc/bluemonday",
"direct": true,
"version": "v1.0.27",
"ecosystem": "go"
},
{
"name": "github.com/mileusna/useragent",
"direct": true,
"version": "v1.3.5",
"ecosystem": "go"
},
{
"name": "github.com/onsi/ginkgo/v2",
"direct": true,
"version": "v2.27.5",
"ecosystem": "go"
},
{
"name": "github.com/onsi/ginkgo/v2",
"direct": true,
"version": "v2.32.0",
"ecosystem": "go"
},
{
"name": "github.com/onsi/gomega",
"direct": true,
"version": "v1.39.0",
"ecosystem": "go"
},
{
"name": "github.com/onsi/gomega",
"direct": true,
"version": "v1.42.1",
"ecosystem": "go"
},
{
"name": "github.com/pelletier/go-toml/v2",
"direct": true,
"version": "v2.4.3",
"ecosystem": "go"
},
{
"name": "github.com/pmezard/go-difflib",
"direct": true,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/pocketbase/dbx",
"direct": true,
"version": "v1.12.0",
"ecosystem": "go"
},
{
"name": "github.com/pressly/goose/v3",
"direct": true,
"version": "v3.27.2",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/client_golang",
"direct": true,
"version": "v1.23.2",
"ecosystem": "go"
},
{
"name": "github.com/rjeczalik/notify",
"direct": true,
"version": "v0.9.3",
"ecosystem": "go"
},
{
"name": "github.com/robfig/cron/v3",
"direct": true,
"version": "v3.0.1",
"ecosystem": "go"
},
{
"name": "github.com/sabhiram/go-gitignore",
"direct": true,
"version": "v0.0.0-20210923224102-525f6e181f06",
"ecosystem": "go"
},
{
"name": "github.com/santhosh-tekuri/jsonschema/v6",
"direct": true,
"version": "v6.0.2",
"ecosystem": "go"
},
{
"name": "github.com/sirupsen/logrus",
"direct": true,
"version": "v1.9.4",
"ecosystem": "go"
},
{
"name": "github.com/spf13/cobra",
"direct": true,
"version": "v1.10.2",
"ecosystem": "go"
},
{
"name": "github.com/spf13/viper",
"direct": true,
"version": "v1.21.0",
"ecosystem": "go"
},
{
"name": "github.com/stretchr/testify",
"direct": true,
"version": "v1.11.1",
"ecosystem": "go"
},
{
"name": "github.com/tetratelabs/wazero",
"direct": true,
"version": "v1.12.0",
"ecosystem": "go"
},
{
"name": "github.com/unrolled/secure",
"direct": true,
"version": "v1.17.0",
"ecosystem": "go"
},
{
"name": "github.com/xrash/smetrics",
"direct": true,
"version": "v0.0.0-20250705151800-55b8f293f342",
"ecosystem": "go"
},
{
"name": "go.uber.org/goleak",
"direct": true,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/image",
"direct": true,
"version": "v0.44.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/net",
"direct": true,
"version": "v0.55.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/net",
"direct": true,
"version": "v0.57.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sync",
"direct": true,
"version": "v0.20.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sync",
"direct": true,
"version": "v0.22.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sys",
"direct": true,
"version": "v0.45.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sys",
"direct": true,
"version": "v0.47.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/term",
"direct": true,
"version": "v0.45.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/text",
"direct": true,
"version": "v0.37.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/text",
"direct": true,
"version": "v0.40.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/time",
"direct": true,
"version": "v0.15.0",
"ecosystem": "go"
},
{
"name": "gopkg.in/yaml.v3",
"direct": true,
"version": "v3.0.1",
"ecosystem": "go"
},
{
"name": "@jsonforms/core",
"direct": true,
"version": "2.5.2",
"ecosystem": "npm"
},
{
"name": "@jsonforms/material-renderers",
"direct": true,
"version": "2.5.2",
"ecosystem": "npm"
},
{
"name": "@jsonforms/react",
"direct": true,
"version": "2.5.2",
"ecosystem": "npm"
},
{
"name": "@material-ui/core",
"direct": true,
"version": "4.12.4",
"ecosystem": "npm"
},
{
"name": "@material-ui/icons",
"direct": true,
"version": "4.11.3",
"ecosystem": "npm"
},
{
"name": "@material-ui/lab",
"direct": true,
"version": "4.0.0-alpha.61",
"ecosystem": "npm"
},
{
"name": "@material-ui/styles",
"direct": true,
"version": "4.11.5",
"ecosystem": "npm"
},
{
"name": "blueimp-md5",
"direct": true,
"version": "2.19.0",
"ecosystem": "npm"
},
{
"name": "clsx",
"direct": true,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "clsx",
"direct": true,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "connected-react-router",
"direct": true,
"version": "6.9.3",
"ecosystem": "npm"
},
{
"name": "deepmerge",
"direct": true,
"version": "4.3.1",
"ecosystem": "npm"
},
{
"name": "dompurify",
"direct": true,
"version": "2.5.9",
"ecosystem": "npm"
},
{
"name": "dompurify",
"direct": true,
"version": "3.3.3",
"ecosystem": "npm"
},
{
"name": "history",
"direct": true,
"version": "4.10.1",
"ecosystem": "npm"
},
{
"name": "inflection",
"direct": true,
"version": "1.13.4",
"ecosystem": "npm"
},
{
"name": "inflection",
"direct": true,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "jwt-decode",
"direct": true,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "lodash.throttle",
"direct": true,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "navidrome-music-player",
"direct": true,
"version": "4.25.4",
"ecosystem": "npm"
},
{
"name": "prop-types",
"direct": true,
"version": "15.8.1",
"ecosystem": "npm"
},
{
"name": "ra-data-json-server",
"direct": true,
"version": "3.19.12",
"ecosystem": "npm"
},
{
"name": "ra-i18n-polyglot",
"direct": true,
"version": "3.19.12",
"ecosystem": "npm"
},
{
"name": "react",
"direct": true,
"version": "17.0.2",
"ecosystem": "npm"
},
{
"name": "react-admin",
"direct": true,
"version": "3.19.12",
"ecosystem": "npm"
},
{
"name": "react-dnd",
"direct": true,
"version": "14.0.5",
"ecosystem": "npm"
},
{
"name": "react-dnd-html5-backend",
"direct": true,
"version": "14.1.0",
"ecosystem": "npm"
},
{
"name": "react-dom",
"direct": true,
"version": "17.0.2",
"ecosystem": "npm"
},
{
"name": "react-drag-listview",
"direct": true,
"version": "0.1.9",
"ecosystem": "npm"
},
{
"name": "react-ga",
"direct": true,
"version": "3.3.1",
"ecosystem": "npm"
},
{
"name": "react-hotkeys",
"direct": true,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "react-icons",
"direct": true,
"version": "5.6.0",
"ecosystem": "npm"
},
{
"name": "react-image-lightbox",
"direct": true,
"version": "5.1.4",
"ecosystem": "npm"
},
{
"name": "react-measure",
"direct": true,
"version": "2.5.2",
"ecosystem": "npm"
},
{
"name": "react-redux",
"direct": true,
"version": "7.2.9",
"ecosystem": "npm"
},
{
"name": "react-router-dom",
"direct": true,
"version": "5.3.4",
"ecosystem": "npm"
},
{
"name": "redux",
"direct": true,
"version": "4.2.1",
"ecosystem": "npm"
},
{
"name": "redux-saga",
"direct": true,
"version": "1.4.2",
"ecosystem": "npm"
},
{
"name": "uuid",
"direct": true,
"version": "13.0.0",
"ecosystem": "npm"
},
{
"name": "uuid",
"direct": true,
"version": "3.4.0",
"ecosystem": "npm"
},
{
"name": "workbox-cli",
"direct": true,
"version": "7.4.0",
"ecosystem": "npm"
},
{
"name": "anyhow",
"direct": false,
"version": "1.0.100",
"ecosystem": "crates"
},
{
"name": "autocfg",
"direct": false,
"version": "1.5.0",
"ecosystem": "crates"
},
{
"name": "base64",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "base64",
"direct": false,
"version": "0.22.1",
"ecosystem": "crates"
},
{
"name": "bytemuck",
"direct": false,
"version": "1.24.0",
"ecosystem": "crates"
},
{
"name": "bytes",
"direct": false,
"version": "1.11.1",
"ecosystem": "crates"
},
{
"name": "either",
"direct": false,
"version": "1.15.0",
"ecosystem": "crates"
},
{
"name": "equivalent",
"direct": false,
"version": "1.0.2",
"ecosystem": "crates"
},
{
"name": "extism-convert",
"direct": false,
"version": "1.13.0",
"ecosystem": "crates"
},
{
"name": "extism-convert-macros",
"direct": false,
"version": "1.13.0",
"ecosystem": "crates"
},
{
"name": "extism-manifest",
"direct": false,
"version": "1.13.0",
"ecosystem": "crates"
},
{
"name": "extism-pdk",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "extism-pdk",
"direct": false,
"version": "1.4.1",
"ecosystem": "crates"
},
{
"name": "extism-pdk-derive",
"direct": false,
"version": "1.4.1",
"ecosystem": "crates"
},
{
"name": "hashbrown",
"direct": false,
"version": "0.16.1",
"ecosystem": "crates"
},
{
"name": "indexmap",
"direct": false,
"version": "2.12.1",
"ecosystem": "crates"
},
{
"name": "itertools",
"direct": false,
"version": "0.14.0",
"ecosystem": "crates"
},
{
"name": "itoa",
"direct": false,
"version": "1.0.17",
"ecosystem": "crates"
},
{
"name": "manyhow",
"direct": false,
"version": "0.11.4",
"ecosystem": "crates"
},
{
"name": "manyhow-macros",
"direct": false,
"version": "0.11.4",
"ecosystem": "crates"
},
{
"name": "memchr",
"direct": false,
"version": "2.7.6",
"ecosystem": "crates"
},
{
"name": "num-traits",
"direct": false,
"version": "0.2.19",
"ecosystem": "crates"
},
{
"name": "proc-macro-crate",
"direct": false,
"version": "3.4.0",
"ecosystem": "crates"
},
{
"name": "proc-macro-utils",
"direct": false,
"version": "0.10.0",
"ecosystem": "crates"
},
{
"name": "proc-macro2",
"direct": false,
"version": "1.0.104",
"ecosystem": "crates"
},
{
"name": "prost",
"direct": false,
"version": "0.14.1",
"ecosystem": "crates"
},
{
"name": "prost-derive",
"direct": false,
"version": "0.14.1",
"ecosystem": "crates"
},
{
"name": "quote",
"direct": false,
"version": "1.0.42",
"ecosystem": "crates"
},
{
"name": "rmp",
"direct": false,
"version": "0.8.15",
"ecosystem": "crates"
},
{
"name": "rmp-serde",
"direct": false,
"version": "1.3.1",
"ecosystem": "crates"
},
{
"name": "serde",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "serde",
"direct": false,
"version": "1.0.228",
"ecosystem": "crates"
},
{
"name": "serde_core",
"direct": false,
"version": "1.0.228",
"ecosystem": "crates"
},
{
"name": "serde_derive",
"direct": false,
"version": "1.0.228",
"ecosystem": "crates"
},
{
"name": "serde_json",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "serde_json",
"direct": false,
"version": "1.0.148",
"ecosystem": "crates"
},
{
"name": "smallvec",
"direct": false,
"version": "1.15.1",
"ecosystem": "crates"
},
{
"name": "syn",
"direct": false,
"version": "2.0.111",
"ecosystem": "crates"
},
{
"name": "toml_datetime",
"direct": false,
"version": "0.7.5+spec-1.1.0",
"ecosystem": "crates"
},
{
"name": "toml_edit",
"direct": false,
"version": "0.23.10+spec-1.0.0",
"ecosystem": "crates"
},
{
"name": "toml_parser",
"direct": false,
"version": "1.0.6+spec-1.1.0",
"ecosystem": "crates"
},
{
"name": "unicode-ident",
"direct": false,
"version": "1.0.22",
"ecosystem": "crates"
},
{
"name": "winnow",
"direct": false,
"version": "0.7.14",
"ecosystem": "crates"
},
{
"name": "zmij",
"direct": false,
"version": "1.0.2",
"ecosystem": "crates"
},
{
"name": "dario.cat/mergo",
"direct": false,
"version": "v1.0.2",
"ecosystem": "go"
},
{
"name": "github.com/atombender/go-jsonschema",
"direct": false,
"version": "v0.20.0",
"ecosystem": "go"
},
{
"name": "github.com/aymerick/douceur",
"direct": false,
"version": "v0.2.0",
"ecosystem": "go"
},
{
"name": "github.com/beorn7/perks",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/cespare/reflex",
"direct": false,
"version": "v0.3.2",
"ecosystem": "go"
},
{
"name": "github.com/cespare/xxhash/v2",
"direct": false,
"version": "v2.3.0",
"ecosystem": "go"
},
{
"name": "github.com/creack/pty",
"direct": false,
"version": "v1.1.24",
"ecosystem": "go"
},
{
"name": "github.com/davecgh/go-spew",
"direct": false,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/davecgh/go-spew",
"direct": false,
"version": "v1.1.2-0.20180830191138-d8f796af33cc",
"ecosystem": "go"
},
{
"name": "github.com/decred/dcrd/dcrec/secp256k1/v4",
"direct": false,
"version": "v4.4.1",
"ecosystem": "go"
},
{
"name": "github.com/dylibso/observe-sdk/go",
"direct": false,
"version": "v0.0.0-20240828172851-9145d8ad07e1",
"ecosystem": "go"
},
{
"name": "github.com/ebitengine/purego",
"direct": false,
"version": "v0.10.1",
"ecosystem": "go"
},
{
"name": "github.com/extism/go-pdk",
"direct": false,
"version": "v1.1.3",
"ecosystem": "go"
},
{
"name": "github.com/fsnotify/fsnotify",
"direct": false,
"version": "v1.10.1",
"ecosystem": "go"
},
{
"name": "github.com/go-logr/logr",
"direct": false,
"version": "v1.4.3",
"ecosystem": "go"
},
{
"name": "github.com/go-task/slim-sprig/v3",
"direct": false,
"version": "v3.0.0",
"ecosystem": "go"
},
{
"name": "github.com/gobwas/glob",
"direct": false,
"version": "v0.2.3",
"ecosystem": "go"
},
{
"name": "github.com/goccy/go-json",
"direct": false,
"version": "v0.10.6",
"ecosystem": "go"
},
{
"name": "github.com/goccy/go-yaml",
"direct": false,
"version": "v1.19.2",
"ecosystem": "go"
},
{
"name": "github.com/google/go-cmp",
"direct": false,
"version": "v0.7.0",
"ecosystem": "go"
},
{
"name": "github.com/google/pprof",
"direct": false,
"version": "v0.0.0-20260115054156-294ebfa9ad83",
"ecosystem": "go"
},
{
"name": "github.com/google/pprof",
"direct": false,
"version": "v0.0.0-20260709232956-b9395ee17fa0",
"ecosystem": "go"
},
{
"name": "github.com/google/subcommands",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/gorilla/css",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/errwrap",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/ianlancetaylor/demangle",
"direct": false,
"version": "v0.0.0-20260505044615-1ff4bf46051f",
"ecosystem": "go"
},
{
"name": "github.com/inconshreveable/mousetrap",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/kballard/go-shellquote",
"direct": false,
"version": "v0.0.0-20180428030007-95032a82bc51",
"ecosystem": "go"
},
{
"name": "github.com/klauspost/cpuid/v2",
"direct": false,
"version": "v2.4.0",
"ecosystem": "go"
},
{
"name": "github.com/kr/text",
"direct": false,
"version": "v0.2.0",
"ecosystem": "go"
},
{
"name": "github.com/lann/builder",
"direct": false,
"version": "v0.0.0-20180802200727-47ae307949d0",
"ecosystem": "go"
},
{
"name": "github.com/lann/ps",
"direct": false,
"version": "v0.0.0-20150810152359-62de8c46ede0",
"ecosystem": "go"
},
{
"name": "github.com/lestrrat-go/blackmagic",
"direct": false,
"version": "v1.0.4",
"ecosystem": "go"
},
{
"name": "github.com/lestrrat-go/dsig",
"direct": false,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "github.com/lestrrat-go/dsig-secp256k1",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/lestrrat-go/httpcc",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/lestrrat-go/httprc/v3",
"direct": false,
"version": "v3.0.6",
"ecosystem": "go"
},
{
"name": "github.com/lestrrat-go/option/v2",
"direct": false,
"version": "v2.0.0",
"ecosystem": "go"
},
{
"name": "github.com/maruel/natural",
"direct": false,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "github.com/masterminds/semver/v3",
"direct": false,
"version": "v3.4.0",
"ecosystem": "go"
},
{
"name": "github.com/masterminds/semver/v3",
"direct": false,
"version": "v3.5.0",
"ecosystem": "go"
},
{
"name": "github.com/mfridman/interpolate",
"direct": false,
"version": "v0.0.2",
"ecosystem": "go"
},
{
"name": "github.com/mitchellh/go-wordwrap",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/munnerz/goautoneg",
"direct": false,
"version": "v0.0.0-20191010083416-a7dc8b61c822",
"ecosystem": "go"
},
{
"name": "github.com/ogier/pflag",
"direct": false,
"version": "v0.0.1",
"ecosystem": "go"
},
{
"name": "github.com/pkg/errors",
"direct": false,
"version": "v0.9.1",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/client_model",
"direct": false,
"version": "v0.6.2",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/common",
"direct": false,
"version": "v0.67.5",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/procfs",
"direct": false,
"version": "v0.20.1",
"ecosystem": "go"
},
{
"name": "github.com/rogpeppe/go-internal",
"direct": false,
"version": "v1.15.0",
"ecosystem": "go"
},
{
"name": "github.com/sagikazarmark/locafero",
"direct": false,
"version": "v0.12.0",
"ecosystem": "go"
},
{
"name": "github.com/sanity-io/litter",
"direct": false,
"version": "v1.5.8",
"ecosystem": "go"
},
{
"name": "github.com/segmentio/asm",
"direct": false,
"version": "v1.2.1",
"ecosystem": "go"
},
{
"name": "github.com/sethvargo/go-retry",
"direct": false,
"version": "v0.3.0",
"ecosystem": "go"
},
{
"name": "github.com/sosodev/duration",
"direct": false,
"version": "v1.3.1",
"ecosystem": "go"
},
{
"name": "github.com/spf13/afero",
"direct": false,
"version": "v1.15.0",
"ecosystem": "go"
},
{
"name": "github.com/spf13/cast",
"direct": false,
"version": "v1.10.0",
"ecosystem": "go"
},
{
"name": "github.com/spf13/pflag",
"direct": false,
"version": "v1.0.10",
"ecosystem": "go"
},
{
"name": "github.com/stretchr/objx",
"direct": false,
"version": "v0.5.2",
"ecosystem": "go"
},
{
"name": "github.com/stretchr/objx",
"direct": false,
"version": "v0.5.3",
"ecosystem": "go"
},
{
"name": "github.com/subosito/gotenv",
"direct": false,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "github.com/tetratelabs/wabin",
"direct": false,
"version": "v0.0.0-20230304001439-f6f874872834",
"ecosystem": "go"
},
{
"name": "github.com/valyala/fastjson",
"direct": false,
"version": "v1.6.10",
"ecosystem": "go"
},
{
"name": "github.com/zeebo/xxh3",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/proto/otlp",
"direct": false,
"version": "v1.10.0",
"ecosystem": "go"
},
{
"name": "go.uber.org/multierr",
"direct": false,
"version": "v1.11.0",
"ecosystem": "go"
},
{
"name": "go.yaml.in/yaml/v2",
"direct": false,
"version": "v2.4.3",
"ecosystem": "go"
},
{
"name": "go.yaml.in/yaml/v3",
"direct": false,
"version": "v3.0.4",
"ecosystem": "go"
},
{
"name": "golang.org/x/crypto",
"direct": false,
"version": "v0.54.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/mod",
"direct": false,
"version": "v0.35.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/mod",
"direct": false,
"version": "v0.38.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/telemetry",
"direct": false,
"version": "v0.0.0-20260708182218-49f421fb7959",
"ecosystem": "go"
},
{
"name": "golang.org/x/tools",
"direct": false,
"version": "v0.44.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/tools",
"direct": false,
"version": "v0.48.0",
"ecosystem": "go"
},
{
"name": "google.golang.org/protobuf",
"direct": false,
"version": "v1.36.11",
"ecosystem": "go"
},
{
"name": "gopkg.in/ini.v1",
"direct": false,
"version": "v1.67.3",
"ecosystem": "go"
},
{
"name": "gopkg.in/natefinch/npipe.v2",
"direct": false,
"version": "v2.0.0-20160621034901-c1b8fa8bdcce",
"ecosystem": "go"
},
{
"name": "@adobe/css-tools",
"direct": false,
"version": "4.4.4",
"ecosystem": "npm"
},
{
"name": "@apideck/better-ajv-errors",
"direct": false,
"version": "0.3.7",
"ecosystem": "npm"
},
{
"name": "@asamuzakjp/css-color",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "@babel/code-frame",
"direct": false,
"version": "7.29.0",
"ecosystem": "npm"
},
{
"name": "@babel/compat-data",
"direct": false,
"version": "7.29.0",
"ecosystem": "npm"
},
{
"name": "@babel/core",
"direct": false,
"version": "7.29.0",
"ecosystem": "npm"
},
{
"name": "@babel/generator",
"direct": false,
"version": "7.29.1",
"ecosystem": "npm"
},
{
"name": "@babel/helper-annotate-as-pure",
"direct": false,
"version": "7.27.3",
"ecosystem": "npm"
},
{
"name": "@babel/helper-compilation-targets",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/helper-create-class-features-plugin",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/helper-create-regexp-features-plugin",
"direct": false,
"version": "7.28.5",
"ecosystem": "npm"
},
{
"name": "@babel/helper-define-polyfill-provider",
"direct": false,
"version": "0.6.8",
"ecosystem": "npm"
},
{
"name": "@babel/helper-globals",
"direct": false,
"version": "7.28.0",
"ecosystem": "npm"
},
{
"name": "@babel/helper-member-expression-to-functions",
"direct": false,
"version": "7.28.5",
"ecosystem": "npm"
},
{
"name": "@babel/helper-module-imports",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/helper-module-transforms",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/helper-optimise-call-expression",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/helper-plugin-utils",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/helper-remap-async-to-generator",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/helper-replace-supers",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/helper-skip-transparent-expression-wrappers",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/helper-string-parser",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/helper-validator-identifier",
"direct": false,
"version": "7.28.5",
"ecosystem": "npm"
},
{
"name": "@babel/helper-validator-option",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/helper-wrap-function",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/helpers",
"direct": false,
"version": "7.29.2",
"ecosystem": "npm"
},
{
"name": "@babel/parser",
"direct": false,
"version": "7.29.2",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-bugfix-firefox-class-in-computed-class-key",
"direct": false,
"version": "7.28.5",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-bugfix-safari-class-field-initializer-scope",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-proposal-private-property-in-object",
"direct": false,
"version": "7.21.0-placeholder-for-preset-env.2",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-import-assertions",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-import-attributes",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-syntax-unicode-sets-regex",
"direct": false,
"version": "7.18.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-arrow-functions",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-async-generator-functions",
"direct": false,
"version": "7.29.0",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-async-to-generator",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-block-scoped-functions",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-block-scoping",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-class-properties",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-class-static-block",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-classes",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-computed-properties",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-destructuring",
"direct": false,
"version": "7.28.5",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-dotall-regex",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-duplicate-keys",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-duplicate-named-capturing-groups-regex",
"direct": false,
"version": "7.29.0",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-dynamic-import",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-explicit-resource-management",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-exponentiation-operator",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-export-namespace-from",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-for-of",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-function-name",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-json-strings",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-literals",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-logical-assignment-operators",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-member-expression-literals",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-modules-amd",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-modules-commonjs",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-modules-systemjs",
"direct": false,
"version": "7.29.0",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-modules-umd",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-named-capturing-groups-regex",
"direct": false,
"version": "7.29.0",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-new-target",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-nullish-coalescing-operator",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-numeric-separator",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-object-rest-spread",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-object-super",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-optional-catch-binding",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-optional-chaining",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-parameters",
"direct": false,
"version": "7.27.7",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-private-methods",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-private-property-in-object",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-property-literals",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-react-jsx-self",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-react-jsx-source",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-regenerator",
"direct": false,
"version": "7.29.0",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-regexp-modifiers",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-reserved-words",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-shorthand-properties",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-spread",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-sticky-regex",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-template-literals",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-typeof-symbol",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-unicode-escapes",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-unicode-property-regex",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-unicode-regex",
"direct": false,
"version": "7.27.1",
"ecosystem": "npm"
},
{
"name": "@babel/plugin-transform-unicode-sets-regex",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/preset-env",
"direct": false,
"version": "7.29.2",
"ecosystem": "npm"
},
{
"name": "@babel/preset-modules",
"direct": false,
"version": "0.1.6-no-external-plugins",
"ecosystem": "npm"
},
{
"name": "@babel/runtime",
"direct": false,
"version": "7.29.2",
"ecosystem": "npm"
},
{
"name": "@babel/runtime-corejs3",
"direct": false,
"version": "7.29.2",
"ecosystem": "npm"
},
{
"name": "@babel/template",
"direct": false,
"version": "7.28.6",
"ecosystem": "npm"
},
{
"name": "@babel/traverse",
"direct": false,
"version": "7.29.0",
"ecosystem": "npm"
},
{
"name": "@babel/types",
"direct": false,
"version": "7.29.0",
"ecosystem": "npm"
},
{
"name": "@bcoe/v8-coverage",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "@csstools/color-helpers",
"direct": false,
"version": "5.1.0",
"ecosystem": "npm"
},
{
"name": "@csstools/css-calc",
"direct": false,
"version": "2.1.4",
"ecosystem": "npm"
},
{
"name": "@csstools/css-color-parser",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "@csstools/css-parser-algorithms",
"direct": false,
"version": "3.0.5",
"ecosystem": "npm"
},
{
"name": "@csstools/css-tokenizer",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "@date-io/core",
"direct": false,
"version": "1.3.13",
"ecosystem": "npm"
},
{
"name": "@date-io/moment",
"direct": false,
"version": "1.3.11",
"ecosystem": "npm"
},
{
"name": "@emotion/hash",
"direct": false,
"version": "0.8.0",
"ecosystem": "npm"
},
{
"name": "@esbuild/aix-ppc64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/android-arm",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/android-arm64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/android-x64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/darwin-arm64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/darwin-x64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/freebsd-arm64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/freebsd-x64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-arm",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-arm64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-ia32",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-loong64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-mips64el",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-ppc64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-riscv64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-s390x",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-x64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/netbsd-arm64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/netbsd-x64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/openbsd-arm64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/openbsd-x64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/openharmony-arm64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/sunos-x64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/win32-arm64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/win32-ia32",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@esbuild/win32-x64",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "@eslint-community/eslint-utils",
"direct": false,
"version": "4.9.1",
"ecosystem": "npm"
},
{
"name": "@eslint-community/regexpp",
"direct": false,
"version": "4.12.2",
"ecosystem": "npm"
},
{
"name": "@eslint/eslintrc",
"direct": false,
"version": "2.1.4",
"ecosystem": "npm"
},
{
"name": "@eslint/js",
"direct": false,
"version": "8.57.1",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/config-array",
"direct": false,
"version": "0.13.0",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/module-importer",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/object-schema",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "@isaacs/cliui",
"direct": false,
"version": "9.0.0",
"ecosystem": "npm"
},
{
"name": "@jest/types",
"direct": false,
"version": "26.6.2",
"ecosystem": "npm"
},
{
"name": "@jridgewell/gen-mapping",
"direct": false,
"version": "0.3.13",
"ecosystem": "npm"
},
{
"name": "@jridgewell/remapping",
"direct": false,
"version": "2.3.5",
"ecosystem": "npm"
},
{
"name": "@jridgewell/resolve-uri",
"direct": false,
"version": "3.1.2",
"ecosystem": "npm"
},
{
"name": "@jridgewell/source-map",
"direct": false,
"version": "0.3.11",
"ecosystem": "npm"
},
{
"name": "@jridgewell/sourcemap-codec",
"direct": false,
"version": "1.5.5",
"ecosystem": "npm"
},
{
"name": "@jridgewell/trace-mapping",
"direct": false,
"version": "0.3.31",
"ecosystem": "npm"
},
{
"name": "@material-ui/pickers",
"direct": false,
"version": "3.3.11",
"ecosystem": "npm"
},
{
"name": "@material-ui/system",
"direct": false,
"version": "4.12.2",
"ecosystem": "npm"
},
{
"name": "@material-ui/types",
"direct": false,
"version": "5.1.0",
"ecosystem": "npm"
},
{
"name": "@material-ui/utils",
"direct": false,
"version": "4.11.3",
"ecosystem": "npm"
},
{
"name": "@nodelib/fs.scandir",
"direct": false,
"version": "2.1.5",
"ecosystem": "npm"
},
{
"name": "@nodelib/fs.stat",
"direct": false,
"version": "2.0.5",
"ecosystem": "npm"
},
{
"name": "@nodelib/fs.walk",
"direct": false,
"version": "1.2.8",
"ecosystem": "npm"
},
{
"name": "@pnpm/config.env-replace",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "@pnpm/network.ca-file",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "@pnpm/npm-conf",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "@react-dnd/asap",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "@react-dnd/invariant",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "@react-dnd/shallowequal",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "@react-icons/all-files",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "@redux-saga/core",
"direct": false,
"version": "1.4.2",
"ecosystem": "npm"
},
{
"name": "@redux-saga/deferred",
"direct": false,
"version": "1.3.1",
"ecosystem": "npm"
},
{
"name": "@redux-saga/delay-p",
"direct": false,
"version": "1.3.1",
"ecosystem": "npm"
},
{
"name": "@redux-saga/is",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "@redux-saga/symbols",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "@redux-saga/types",
"direct": false,
"version": "1.3.1",
"ecosystem": "npm"
},
{
"name": "@rolldown/pluginutils",
"direct": false,
"version": "1.0.0-rc.3",
"ecosystem": "npm"
},
{
"name": "@rollup/plugin-babel",
"direct": false,
"version": "5.3.1",
"ecosystem": "npm"
},
{
"name": "@rollup/plugin-node-resolve",
"direct": false,
"version": "15.3.1",
"ecosystem": "npm"
},
{
"name": "@rollup/plugin-replace",
"direct": false,
"version": "2.4.2",
"ecosystem": "npm"
},
{
"name": "@rollup/plugin-terser",
"direct": false,
"version": "0.4.4",
"ecosystem": "npm"
},
{
"name": "@rollup/pluginutils",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "@rollup/pluginutils",
"direct": false,
"version": "5.3.0",
"ecosystem": "npm"
},
{
"name": "@rollup/wasm-node",
"direct": false,
"version": "4.60.1",
"ecosystem": "npm"
},
{
"name": "@standard-schema/spec",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "@surma/rollup-plugin-off-main-thread",
"direct": false,
"version": "2.2.3",
"ecosystem": "npm"
},
{
"name": "@testing-library/dom",
"direct": false,
"version": "10.4.1",
"ecosystem": "npm"
},
{
"name": "@testing-library/dom",
"direct": false,
"version": "7.31.2",
"ecosystem": "npm"
},
{
"name": "@testing-library/dom",
"direct": false,
"version": "8.20.1",
"ecosystem": "npm"
},
{
"name": "@testing-library/jest-dom",
"direct": false,
"version": "6.9.1",
"ecosystem": "npm"
},
{
"name": "@testing-library/react",
"direct": false,
"version": "11.2.7",
"ecosystem": "npm"
},
{
"name": "@testing-library/react",
"direct": false,
"version": "12.1.5",
"ecosystem": "npm"
},
{
"name": "@testing-library/react-hooks",
"direct": false,
"version": "7.0.2",
"ecosystem": "npm"
},
{
"name": "@testing-library/user-event",
"direct": false,
"version": "14.6.1",
"ecosystem": "npm"
},
{
"name": "@types/aria-query",
"direct": false,
"version": "4.2.2",
"ecosystem": "npm"
},
{
"name": "@types/aria-query",
"direct": false,
"version": "5.0.4",
"ecosystem": "npm"
},
{
"name": "@types/babel__core",
"direct": false,
"version": "7.20.5",
"ecosystem": "npm"
},
{
"name": "@types/babel__generator",
"direct": false,
"version": "7.27.0",
"ecosystem": "npm"
},
{
"name": "@types/babel__template",
"direct": false,
"version": "7.4.4",
"ecosystem": "npm"
},
{
"name": "@types/babel__traverse",
"direct": false,
"version": "7.28.0",
"ecosystem": "npm"
},
{
"name": "@types/chai",
"direct": false,
"version": "5.2.3",
"ecosystem": "npm"
},
{
"name": "@types/deep-eql",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "@types/estree",
"direct": false,
"version": "0.0.39",
"ecosystem": "npm"
},
{
"name": "@types/estree",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "@types/hoist-non-react-statics",
"direct": false,
"version": "3.3.7",
"ecosystem": "npm"
},
{
"name": "@types/istanbul-lib-coverage",
"direct": false,
"version": "2.0.6",
"ecosystem": "npm"
},
{
"name": "@types/istanbul-lib-report",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "@types/istanbul-reports",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "@types/json-schema",
"direct": false,
"version": "7.0.15",
"ecosystem": "npm"
},
{
"name": "@types/minimist",
"direct": false,
"version": "1.2.5",
"ecosystem": "npm"
},
{
"name": "@types/node",
"direct": false,
"version": "24.12.2",
"ecosystem": "npm"
},
{
"name": "@types/normalize-package-data",
"direct": false,
"version": "2.4.4",
"ecosystem": "npm"
},
{
"name": "@types/prop-types",
"direct": false,
"version": "15.7.15",
"ecosystem": "npm"
},
{
"name": "@types/react",
"direct": false,
"version": "17.0.91",
"ecosystem": "npm"
},
{
"name": "@types/react-dom",
"direct": false,
"version": "17.0.26",
"ecosystem": "npm"
},
{
"name": "@types/react-redux",
"direct": false,
"version": "7.1.34",
"ecosystem": "npm"
},
{
"name": "@types/react-test-renderer",
"direct": false,
"version": "19.1.0",
"ecosystem": "npm"
},
{
"name": "@types/react-transition-group",
"direct": false,
"version": "4.4.12",
"ecosystem": "npm"
},
{
"name": "@types/resolve",
"direct": false,
"version": "1.20.2",
"ecosystem": "npm"
},
{
"name": "@types/scheduler",
"direct": false,
"version": "0.16.8",
"ecosystem": "npm"
},
{
"name": "@types/semver",
"direct": false,
"version": "7.7.1",
"ecosystem": "npm"
},
{
"name": "@types/styled-jsx",
"direct": false,
"version": "2.2.9",
"ecosystem": "npm"
},
{
"name": "@types/trusted-types",
"direct": false,
"version": "2.0.7",
"ecosystem": "npm"
},
{
"name": "@types/uuid",
"direct": false,
"version": "3.4.13",
"ecosystem": "npm"
},
{
"name": "@types/whatwg-mimetype",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "@types/ws",
"direct": false,
"version": "8.18.1",
"ecosystem": "npm"
},
{
"name": "@types/yargs",
"direct": false,
"version": "15.0.20",
"ecosystem": "npm"
},
{
"name": "@types/yargs-parser",
"direct": false,
"version": "21.0.3",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/eslint-plugin",
"direct": false,
"version": "6.21.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/parser",
"direct": false,
"version": "6.21.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/scope-manager",
"direct": false,
"version": "6.21.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/type-utils",
"direct": false,
"version": "6.21.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/types",
"direct": false,
"version": "6.21.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/typescript-estree",
"direct": false,
"version": "6.21.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/utils",
"direct": false,
"version": "6.21.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/visitor-keys",
"direct": false,
"version": "6.21.0",
"ecosystem": "npm"
},
{
"name": "@ungap/structured-clone",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "@vitejs/plugin-react",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "@vitest/coverage-v8",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "@vitest/expect",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "@vitest/mocker",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "@vitest/pretty-format",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "@vitest/runner",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "@vitest/snapshot",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "@vitest/spy",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "@vitest/utils",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "acorn",
"direct": false,
"version": "8.16.0",
"ecosystem": "npm"
},
{
"name": "acorn-jsx",
"direct": false,
"version": "5.3.2",
"ecosystem": "npm"
},
{
"name": "agent-base",
"direct": false,
"version": "7.1.4",
"ecosystem": "npm"
},
{
"name": "ajv",
"direct": false,
"version": "6.14.0",
"ecosystem": "npm"
},
{
"name": "ajv",
"direct": false,
"version": "8.18.0",
"ecosystem": "npm"
},
{
"name": "ansi-align",
"direct": false,
"version": "3.0.1",
"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": "5.2.0",
"ecosystem": "npm"
},
{
"name": "ansi-styles",
"direct": false,
"version": "6.2.3",
"ecosystem": "npm"
},
{
"name": "anymatch",
"direct": false,
"version": "3.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": "aria-query",
"direct": false,
"version": "4.2.2",
"ecosystem": "npm"
},
{
"name": "aria-query",
"direct": false,
"version": "5.1.3",
"ecosystem": "npm"
},
{
"name": "aria-query",
"direct": false,
"version": "5.3.0",
"ecosystem": "npm"
},
{
"name": "aria-query",
"direct": false,
"version": "5.3.2",
"ecosystem": "npm"
},
{
"name": "array-buffer-byte-length",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "array-includes",
"direct": false,
"version": "3.1.9",
"ecosystem": "npm"
},
{
"name": "array-union",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "array.prototype.findlast",
"direct": false,
"version": "1.2.5",
"ecosystem": "npm"
},
{
"name": "array.prototype.flat",
"direct": false,
"version": "1.3.3",
"ecosystem": "npm"
},
{
"name": "array.prototype.flatmap",
"direct": false,
"version": "1.3.3",
"ecosystem": "npm"
},
{
"name": "array.prototype.tosorted",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "arraybuffer.prototype.slice",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "arrify",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "assertion-error",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "ast-types-flow",
"direct": false,
"version": "0.0.8",
"ecosystem": "npm"
},
{
"name": "ast-v8-to-istanbul",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "async",
"direct": false,
"version": "3.2.6",
"ecosystem": "npm"
},
{
"name": "async-function",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "at-least-node",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "atomically",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "attr-accept",
"direct": false,
"version": "2.2.5",
"ecosystem": "npm"
},
{
"name": "autosuggest-highlight",
"direct": false,
"version": "3.3.4",
"ecosystem": "npm"
},
{
"name": "available-typed-arrays",
"direct": false,
"version": "1.0.7",
"ecosystem": "npm"
},
{
"name": "axe-core",
"direct": false,
"version": "4.11.2",
"ecosystem": "npm"
},
{
"name": "axobject-query",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "babel-plugin-polyfill-corejs2",
"direct": false,
"version": "0.4.17",
"ecosystem": "npm"
},
{
"name": "babel-plugin-polyfill-corejs3",
"direct": false,
"version": "0.14.2",
"ecosystem": "npm"
},
{
"name": "babel-plugin-polyfill-regenerator",
"direct": false,
"version": "0.6.8",
"ecosystem": "npm"
},
{
"name": "babel-runtime",
"direct": false,
"version": "6.26.0",
"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": "base64-js",
"direct": false,
"version": "1.5.1",
"ecosystem": "npm"
},
{
"name": "baseline-browser-mapping",
"direct": false,
"version": "2.10.15",
"ecosystem": "npm"
},
{
"name": "binary-extensions",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "bl",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "boxen",
"direct": false,
"version": "8.0.1",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "1.1.13",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "5.0.5",
"ecosystem": "npm"
},
{
"name": "braces",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "browserslist",
"direct": false,
"version": "4.28.2",
"ecosystem": "npm"
},
{
"name": "buffer",
"direct": false,
"version": "5.7.1",
"ecosystem": "npm"
},
{
"name": "buffer-from",
"direct": false,
"version": "1.1.2",
"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": "callsites",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "camelcase",
"direct": false,
"version": "5.3.1",
"ecosystem": "npm"
},
{
"name": "camelcase",
"direct": false,
"version": "8.0.0",
"ecosystem": "npm"
},
{
"name": "camelcase-keys",
"direct": false,
"version": "6.2.2",
"ecosystem": "npm"
},
{
"name": "caniuse-lite",
"direct": false,
"version": "1.0.30001785",
"ecosystem": "npm"
},
{
"name": "chai",
"direct": false,
"version": "6.2.2",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": false,
"version": "5.6.2",
"ecosystem": "npm"
},
{
"name": "chardet",
"direct": false,
"version": "0.7.0",
"ecosystem": "npm"
},
{
"name": "chokidar",
"direct": false,
"version": "3.6.0",
"ecosystem": "npm"
},
{
"name": "classnames",
"direct": false,
"version": "2.2.6",
"ecosystem": "npm"
},
{
"name": "classnames",
"direct": false,
"version": "2.3.3",
"ecosystem": "npm"
},
{
"name": "classnames",
"direct": false,
"version": "2.5.1",
"ecosystem": "npm"
},
{
"name": "cli-boxes",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "cli-cursor",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "cli-spinners",
"direct": false,
"version": "2.9.2",
"ecosystem": "npm"
},
{
"name": "cli-width",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "clone",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "color-convert",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "color-name",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "commander",
"direct": false,
"version": "2.20.3",
"ecosystem": "npm"
},
{
"name": "common-tags",
"direct": false,
"version": "1.8.2",
"ecosystem": "npm"
},
{
"name": "compute-scroll-into-view",
"direct": false,
"version": "1.0.20",
"ecosystem": "npm"
},
{
"name": "concat-map",
"direct": false,
"version": "0.0.1",
"ecosystem": "npm"
},
{
"name": "config-chain",
"direct": false,
"version": "1.1.13",
"ecosystem": "npm"
},
{
"name": "configstore",
"direct": false,
"version": "7.1.0",
"ecosystem": "npm"
},
{
"name": "convert-source-map",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "core-js",
"direct": false,
"version": "2.6.12",
"ecosystem": "npm"
},
{
"name": "core-js-compat",
"direct": false,
"version": "3.49.0",
"ecosystem": "npm"
},
{
"name": "core-js-pure",
"direct": false,
"version": "3.49.0",
"ecosystem": "npm"
},
{
"name": "cross-spawn",
"direct": false,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "crypto-random-string",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "css-mediaquery",
"direct": false,
"version": "0.1.2",
"ecosystem": "npm"
},
{
"name": "css-vendor",
"direct": false,
"version": "2.0.8",
"ecosystem": "npm"
},
{
"name": "css.escape",
"direct": false,
"version": "1.5.1",
"ecosystem": "npm"
},
{
"name": "cssstyle",
"direct": false,
"version": "4.6.0",
"ecosystem": "npm"
},
{
"name": "csstype",
"direct": false,
"version": "2.6.21",
"ecosystem": "npm"
},
{
"name": "csstype",
"direct": false,
"version": "3.2.3",
"ecosystem": "npm"
},
{
"name": "damerau-levenshtein",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "data-urls",
"direct": false,
"version": "5.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": "date-fns",
"direct": false,
"version": "1.30.1",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": false,
"version": "4.4.3",
"ecosystem": "npm"
},
{
"name": "decamelize",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "decamelize-keys",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "decimal.js",
"direct": false,
"version": "10.6.0",
"ecosystem": "npm"
},
{
"name": "decode-uri-component",
"direct": false,
"version": "0.2.2",
"ecosystem": "npm"
},
{
"name": "deep-equal",
"direct": false,
"version": "2.2.3",
"ecosystem": "npm"
},
{
"name": "deep-extend",
"direct": false,
"version": "0.6.0",
"ecosystem": "npm"
},
{
"name": "deep-is",
"direct": false,
"version": "0.1.4",
"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": "dequal",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "dir-glob",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "dnd-core",
"direct": false,
"version": "14.0.1",
"ecosystem": "npm"
},
{
"name": "doctrine",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "doctrine",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "dom-accessibility-api",
"direct": false,
"version": "0.5.16",
"ecosystem": "npm"
},
{
"name": "dom-accessibility-api",
"direct": false,
"version": "0.6.3",
"ecosystem": "npm"
},
{
"name": "dom-align",
"direct": false,
"version": "1.12.4",
"ecosystem": "npm"
},
{
"name": "dom-helpers",
"direct": false,
"version": "5.2.1",
"ecosystem": "npm"
},
{
"name": "dot-prop",
"direct": false,
"version": "9.0.0",
"ecosystem": "npm"
},
{
"name": "downloadjs",
"direct": false,
"version": "1.4.7",
"ecosystem": "npm"
},
{
"name": "downshift",
"direct": false,
"version": "3.2.7",
"ecosystem": "npm"
},
{
"name": "dunder-proto",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "ejs",
"direct": false,
"version": "3.1.10",
"ecosystem": "npm"
},
{
"name": "electron-to-chromium",
"direct": false,
"version": "1.5.331",
"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": "emoji-regex",
"direct": false,
"version": "9.2.2",
"ecosystem": "npm"
},
{
"name": "entities",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "entities",
"direct": false,
"version": "7.0.1",
"ecosystem": "npm"
},
{
"name": "error-ex",
"direct": false,
"version": "1.3.4",
"ecosystem": "npm"
},
{
"name": "es-abstract",
"direct": false,
"version": "1.24.1",
"ecosystem": "npm"
},
{
"name": "es-define-property",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "es-errors",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "es-get-iterator",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "es-iterator-helpers",
"direct": false,
"version": "1.3.1",
"ecosystem": "npm"
},
{
"name": "es-module-lexer",
"direct": false,
"version": "2.0.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-shim-unscopables",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "es-to-primitive",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "esbuild",
"direct": false,
"version": "0.27.7",
"ecosystem": "npm"
},
{
"name": "escalade",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "escape-goat",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "escape-string-regexp",
"direct": false,
"version": "1.0.5",
"ecosystem": "npm"
},
{
"name": "escape-string-regexp",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "eslint",
"direct": false,
"version": "8.57.1",
"ecosystem": "npm"
},
{
"name": "eslint-config-prettier",
"direct": false,
"version": "10.1.8",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-jsx-a11y",
"direct": false,
"version": "6.10.2",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-react",
"direct": false,
"version": "7.37.5",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-react-hooks",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-react-refresh",
"direct": false,
"version": "0.4.26",
"ecosystem": "npm"
},
{
"name": "eslint-scope",
"direct": false,
"version": "7.2.2",
"ecosystem": "npm"
},
{
"name": "eslint-visitor-keys",
"direct": false,
"version": "3.4.3",
"ecosystem": "npm"
},
{
"name": "espree",
"direct": false,
"version": "9.6.1",
"ecosystem": "npm"
},
{
"name": "esprima",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "esquery",
"direct": false,
"version": "1.7.0",
"ecosystem": "npm"
},
{
"name": "esrecurse",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "estraverse",
"direct": false,
"version": "5.3.0",
"ecosystem": "npm"
},
{
"name": "estree-walker",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "estree-walker",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "estree-walker",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "esutils",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "eventemitter3",
"direct": false,
"version": "3.1.2",
"ecosystem": "npm"
},
{
"name": "exenv",
"direct": false,
"version": "1.2.2",
"ecosystem": "npm"
},
{
"name": "expect-type",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "external-editor",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "fast-deep-equal",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "fast-glob",
"direct": false,
"version": "3.3.3",
"ecosystem": "npm"
},
{
"name": "fast-json-stable-stringify",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "fast-levenshtein",
"direct": false,
"version": "2.0.6",
"ecosystem": "npm"
},
{
"name": "fast-uri",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "fastq",
"direct": false,
"version": "1.20.1",
"ecosystem": "npm"
},
{
"name": "fdir",
"direct": false,
"version": "6.5.0",
"ecosystem": "npm"
},
{
"name": "figures",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "file-entry-cache",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "file-selector",
"direct": false,
"version": "0.1.19",
"ecosystem": "npm"
},
{
"name": "filelist",
"direct": false,
"version": "1.0.6",
"ecosystem": "npm"
},
{
"name": "fill-range",
"direct": false,
"version": "7.1.1",
"ecosystem": "npm"
},
{
"name": "final-form",
"direct": false,
"version": "4.20.10",
"ecosystem": "npm"
},
{
"name": "final-form-arrays",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "find-up",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "find-up",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "flat-cache",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "flatted",
"direct": false,
"version": "3.4.2",
"ecosystem": "npm"
},
{
"name": "for-each",
"direct": false,
"version": "0.3.5",
"ecosystem": "npm"
},
{
"name": "foreground-child",
"direct": false,
"version": "3.3.1",
"ecosystem": "npm"
},
{
"name": "fs-extra",
"direct": false,
"version": "9.1.0",
"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": "generator-function",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "gensync",
"direct": false,
"version": "1.0.0-beta.2",
"ecosystem": "npm"
},
{
"name": "get-east-asian-width",
"direct": false,
"version": "1.5.0",
"ecosystem": "npm"
},
{
"name": "get-intrinsic",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "get-node-dimensions",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "get-own-enumerable-property-symbols",
"direct": false,
"version": "3.0.2",
"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": "glob",
"direct": false,
"version": "11.1.0",
"ecosystem": "npm"
},
{
"name": "glob",
"direct": false,
"version": "7.2.3",
"ecosystem": "npm"
},
{
"name": "glob-parent",
"direct": false,
"version": "5.1.2",
"ecosystem": "npm"
},
{
"name": "glob-parent",
"direct": false,
"version": "6.0.2",
"ecosystem": "npm"
},
{
"name": "global-directory",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "globals",
"direct": false,
"version": "13.24.0",
"ecosystem": "npm"
},
{
"name": "globalthis",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "globby",
"direct": false,
"version": "11.1.0",
"ecosystem": "npm"
},
{
"name": "gopd",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "graceful-fs",
"direct": false,
"version": "4.2.10",
"ecosystem": "npm"
},
{
"name": "graceful-fs",
"direct": false,
"version": "4.2.11",
"ecosystem": "npm"
},
{
"name": "graphemer",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "happy-dom",
"direct": false,
"version": "20.8.9",
"ecosystem": "npm"
},
{
"name": "hard-rejection",
"direct": false,
"version": "2.1.0",
"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": "hoist-non-react-statics",
"direct": false,
"version": "3.3.2",
"ecosystem": "npm"
},
{
"name": "hosted-git-info",
"direct": false,
"version": "2.8.9",
"ecosystem": "npm"
},
{
"name": "html-encoding-sniffer",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "html-escaper",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "http-proxy-agent",
"direct": false,
"version": "7.0.2",
"ecosystem": "npm"
},
{
"name": "https-proxy-agent",
"direct": false,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "hyphenate-style-name",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "iconv-lite",
"direct": false,
"version": "0.4.24",
"ecosystem": "npm"
},
{
"name": "iconv-lite",
"direct": false,
"version": "0.6.3",
"ecosystem": "npm"
},
{
"name": "idb",
"direct": false,
"version": "7.1.1",
"ecosystem": "npm"
},
{
"name": "ieee754",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "ignore",
"direct": false,
"version": "5.3.2",
"ecosystem": "npm"
},
{
"name": "immutable",
"direct": false,
"version": "4.3.8",
"ecosystem": "npm"
},
{
"name": "import-fresh",
"direct": false,
"version": "3.3.1",
"ecosystem": "npm"
},
{
"name": "imurmurhash",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "indent-string",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "inflight",
"direct": false,
"version": "1.0.6",
"ecosystem": "npm"
},
{
"name": "inherits",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "ini",
"direct": false,
"version": "1.3.8",
"ecosystem": "npm"
},
{
"name": "ini",
"direct": false,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "inquirer",
"direct": false,
"version": "7.3.3",
"ecosystem": "npm"
},
{
"name": "internal-slot",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "is-arguments",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "is-array-buffer",
"direct": false,
"version": "3.0.5",
"ecosystem": "npm"
},
{
"name": "is-arrayish",
"direct": false,
"version": "0.2.1",
"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-binary-path",
"direct": false,
"version": "2.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-core-module",
"direct": false,
"version": "2.16.1",
"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-extglob",
"direct": false,
"version": "2.1.1",
"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.2",
"ecosystem": "npm"
},
{
"name": "is-glob",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "is-in-browser",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "is-in-ci",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "is-installed-globally",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "is-interactive",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "is-map",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "is-mobile",
"direct": false,
"version": "2.2.2",
"ecosystem": "npm"
},
{
"name": "is-module",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "is-negative-zero",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "is-npm",
"direct": false,
"version": "6.1.0",
"ecosystem": "npm"
},
{
"name": "is-number",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "is-number-object",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "is-obj",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "is-path-inside",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "is-path-inside",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "is-plain-obj",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "is-potential-custom-element-name",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "is-regex",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "is-regexp",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "is-set",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "is-shared-array-buffer",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "is-stream",
"direct": false,
"version": "2.0.1",
"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-unicode-supported",
"direct": false,
"version": "0.1.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": "0.0.1",
"ecosystem": "npm"
},
{
"name": "isarray",
"direct": false,
"version": "2.0.5",
"ecosystem": "npm"
},
{
"name": "isexe",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-coverage",
"direct": false,
"version": "3.2.2",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-report",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "istanbul-reports",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "iterator.prototype",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "jackspeak",
"direct": false,
"version": "4.2.3",
"ecosystem": "npm"
},
{
"name": "jake",
"direct": false,
"version": "10.9.4",
"ecosystem": "npm"
},
{
"name": "js-tokens",
"direct": false,
"version": "10.0.0",
"ecosystem": "npm"
},
{
"name": "js-tokens",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "js-yaml",
"direct": false,
"version": "3.14.2",
"ecosystem": "npm"
},
{
"name": "js-yaml",
"direct": false,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "jsdom",
"direct": false,
"version": "26.1.0",
"ecosystem": "npm"
},
{
"name": "jsesc",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "json-buffer",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "json-parse-even-better-errors",
"direct": false,
"version": "2.3.1",
"ecosystem": "npm"
},
{
"name": "json-schema-ref-parser",
"direct": false,
"version": "7.1.3",
"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": "json5",
"direct": false,
"version": "2.2.3",
"ecosystem": "npm"
},
{
"name": "jsonexport",
"direct": false,
"version": "2.5.2",
"ecosystem": "npm"
},
{
"name": "jsonfile",
"direct": false,
"version": "6.2.0",
"ecosystem": "npm"
},
{
"name": "jsonpointer",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "jss",
"direct": false,
"version": "10.10.0",
"ecosystem": "npm"
},
{
"name": "jss-plugin-camel-case",
"direct": false,
"version": "10.10.0",
"ecosystem": "npm"
},
{
"name": "jss-plugin-default-unit",
"direct": false,
"version": "10.10.0",
"ecosystem": "npm"
},
{
"name": "jss-plugin-global",
"direct": false,
"version": "10.10.0",
"ecosystem": "npm"
},
{
"name": "jss-plugin-nested",
"direct": false,
"version": "10.10.0",
"ecosystem": "npm"
},
{
"name": "jss-plugin-props-sort",
"direct": false,
"version": "10.10.0",
"ecosystem": "npm"
},
{
"name": "jss-plugin-rule-value-function",
"direct": false,
"version": "10.10.0",
"ecosystem": "npm"
},
{
"name": "jss-plugin-vendor-prefixer",
"direct": false,
"version": "10.10.0",
"ecosystem": "npm"
},
{
"name": "jsx-ast-utils",
"direct": false,
"version": "3.3.5",
"ecosystem": "npm"
},
{
"name": "keyv",
"direct": false,
"version": "4.5.4",
"ecosystem": "npm"
},
{
"name": "kind-of",
"direct": false,
"version": "6.0.3",
"ecosystem": "npm"
},
{
"name": "ky",
"direct": false,
"version": "1.14.3",
"ecosystem": "npm"
},
{
"name": "language-subtag-registry",
"direct": false,
"version": "0.3.23",
"ecosystem": "npm"
},
{
"name": "language-tags",
"direct": false,
"version": "1.0.9",
"ecosystem": "npm"
},
{
"name": "latest-version",
"direct": false,
"version": "9.0.0",
"ecosystem": "npm"
},
{
"name": "leven",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "levn",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "lines-and-columns",
"direct": false,
"version": "1.2.4",
"ecosystem": "npm"
},
{
"name": "locate-path",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "locate-path",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "lodash",
"direct": false,
"version": "4.17.23",
"ecosystem": "npm"
},
{
"name": "lodash",
"direct": false,
"version": "4.18.1",
"ecosystem": "npm"
},
{
"name": "lodash.debounce",
"direct": false,
"version": "4.0.8",
"ecosystem": "npm"
},
{
"name": "lodash.isequalwith",
"direct": false,
"version": "4.4.0",
"ecosystem": "npm"
},
{
"name": "lodash.merge",
"direct": false,
"version": "4.6.2",
"ecosystem": "npm"
},
{
"name": "lodash.sortby",
"direct": false,
"version": "4.7.0",
"ecosystem": "npm"
},
{
"name": "log-symbols",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "loose-envify",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "lru-cache",
"direct": false,
"version": "10.4.3",
"ecosystem": "npm"
},
{
"name": "lru-cache",
"direct": false,
"version": "11.2.7",
"ecosystem": "npm"
},
{
"name": "lru-cache",
"direct": false,
"version": "5.1.1",
"ecosystem": "npm"
},
{
"name": "lz-string",
"direct": false,
"version": "1.5.0",
"ecosystem": "npm"
},
{
"name": "magic-string",
"direct": false,
"version": "0.25.9",
"ecosystem": "npm"
},
{
"name": "magic-string",
"direct": false,
"version": "0.30.21",
"ecosystem": "npm"
},
{
"name": "magicast",
"direct": false,
"version": "0.5.2",
"ecosystem": "npm"
},
{
"name": "make-dir",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "map-obj",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "map-obj",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "math-intrinsics",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "meow",
"direct": false,
"version": "7.1.1",
"ecosystem": "npm"
},
{
"name": "merge2",
"direct": false,
"version": "1.4.1",
"ecosystem": "npm"
},
{
"name": "micromatch",
"direct": false,
"version": "4.0.8",
"ecosystem": "npm"
},
{
"name": "mimic-fn",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "min-indent",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "10.2.5",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "3.1.5",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "5.1.9",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "9.0.3",
"ecosystem": "npm"
},
{
"name": "minimist",
"direct": false,
"version": "1.2.8",
"ecosystem": "npm"
},
{
"name": "minimist-options",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "minipass",
"direct": false,
"version": "7.1.3",
"ecosystem": "npm"
},
{
"name": "moment",
"direct": false,
"version": "2.30.1",
"ecosystem": "npm"
},
{
"name": "ms",
"direct": false,
"version": "2.1.3",
"ecosystem": "npm"
},
{
"name": "mute-stream",
"direct": false,
"version": "0.0.8",
"ecosystem": "npm"
},
{
"name": "nanoid",
"direct": false,
"version": "3.3.11",
"ecosystem": "npm"
},
{
"name": "natural-compare",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "node-exports-info",
"direct": false,
"version": "1.6.0",
"ecosystem": "npm"
},
{
"name": "node-polyglot",
"direct": false,
"version": "2.6.0",
"ecosystem": "npm"
},
{
"name": "node-releases",
"direct": false,
"version": "2.0.37",
"ecosystem": "npm"
},
{
"name": "normalize-package-data",
"direct": false,
"version": "2.5.0",
"ecosystem": "npm"
},
{
"name": "normalize-path",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "nwsapi",
"direct": false,
"version": "2.2.23",
"ecosystem": "npm"
},
{
"name": "object-assign",
"direct": false,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "object-hash",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "object-inspect",
"direct": false,
"version": "1.13.4",
"ecosystem": "npm"
},
{
"name": "object-is",
"direct": false,
"version": "1.1.6",
"ecosystem": "npm"
},
{
"name": "object-keys",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "object.assign",
"direct": false,
"version": "4.1.7",
"ecosystem": "npm"
},
{
"name": "object.entries",
"direct": false,
"version": "1.1.9",
"ecosystem": "npm"
},
{
"name": "object.fromentries",
"direct": false,
"version": "2.0.8",
"ecosystem": "npm"
},
{
"name": "object.values",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "obug",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "once",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "onetime",
"direct": false,
"version": "5.1.2",
"ecosystem": "npm"
},
{
"name": "ono",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "optionator",
"direct": false,
"version": "0.9.4",
"ecosystem": "npm"
},
{
"name": "ora",
"direct": false,
"version": "5.4.1",
"ecosystem": "npm"
},
{
"name": "os-tmpdir",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "own-keys",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "p-limit",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "p-limit",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "p-locate",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "p-locate",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "p-try",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "package-json",
"direct": false,
"version": "10.0.1",
"ecosystem": "npm"
},
{
"name": "package-json-from-dist",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "parent-module",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "parse-json",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "parse5",
"direct": false,
"version": "7.3.0",
"ecosystem": "npm"
},
{
"name": "path-exists",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "path-is-absolute",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "path-key",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "path-parse",
"direct": false,
"version": "1.0.7",
"ecosystem": "npm"
},
{
"name": "path-scurry",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "path-to-regexp",
"direct": false,
"version": "1.9.0",
"ecosystem": "npm"
},
{
"name": "path-type",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "pathe",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "picocolors",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "picomatch",
"direct": false,
"version": "2.3.2",
"ecosystem": "npm"
},
{
"name": "picomatch",
"direct": false,
"version": "4.0.4",
"ecosystem": "npm"
},
{
"name": "popper.js",
"direct": false,
"version": "1.16.1-lts",
"ecosystem": "npm"
},
{
"name": "possible-typed-array-names",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "postcss",
"direct": false,
"version": "8.5.8",
"ecosystem": "npm"
},
{
"name": "prelude-ls",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "prettier",
"direct": false,
"version": "3.8.1",
"ecosystem": "npm"
},
{
"name": "pretty-bytes",
"direct": false,
"version": "5.6.0",
"ecosystem": "npm"
},
{
"name": "pretty-bytes",
"direct": false,
"version": "6.1.1",
"ecosystem": "npm"
},
{
"name": "pretty-format",
"direct": false,
"version": "26.6.2",
"ecosystem": "npm"
},
{
"name": "pretty-format",
"direct": false,
"version": "27.5.1",
"ecosystem": "npm"
},
{
"name": "proto-list",
"direct": false,
"version": "1.2.4",
"ecosystem": "npm"
},
{
"name": "punycode",
"direct": false,
"version": "2.3.1",
"ecosystem": "npm"
},
{
"name": "pupa",
"direct": false,
"version": "3.3.0",
"ecosystem": "npm"
},
{
"name": "query-string",
"direct": false,
"version": "5.1.1",
"ecosystem": "npm"
},
{
"name": "queue-microtask",
"direct": false,
"version": "1.2.3",
"ecosystem": "npm"
},
{
"name": "quick-lru",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "ra-core",
"direct": false,
"version": "3.19.12",
"ecosystem": "npm"
},
{
"name": "ra-language-english",
"direct": false,
"version": "3.19.12",
"ecosystem": "npm"
},
{
"name": "ra-test",
"direct": false,
"version": "3.19.12",
"ecosystem": "npm"
},
{
"name": "ra-ui-materialui",
"direct": false,
"version": "3.19.12",
"ecosystem": "npm"
},
{
"name": "randombytes",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "rc",
"direct": false,
"version": "1.2.8",
"ecosystem": "npm"
},
{
"name": "rc-align",
"direct": false,
"version": "4.0.15",
"ecosystem": "npm"
},
{
"name": "rc-motion",
"direct": false,
"version": "2.9.5",
"ecosystem": "npm"
},
{
"name": "rc-slider",
"direct": false,
"version": "9.7.5",
"ecosystem": "npm"
},
{
"name": "rc-switch",
"direct": false,
"version": "3.2.2",
"ecosystem": "npm"
},
{
"name": "rc-tooltip",
"direct": false,
"version": "5.3.1",
"ecosystem": "npm"
},
{
"name": "rc-trigger",
"direct": false,
"version": "5.3.4",
"ecosystem": "npm"
},
{
"name": "rc-util",
"direct": false,
"version": "5.44.4",
"ecosystem": "npm"
},
{
"name": "react-draggable",
"direct": false,
"version": "4.5.0",
"ecosystem": "npm"
},
{
"name": "react-dropzone",
"direct": false,
"version": "10.2.2",
"ecosystem": "npm"
},
{
"name": "react-error-boundary",
"direct": false,
"version": "3.1.4",
"ecosystem": "npm"
},
{
"name": "react-final-form",
"direct": false,
"version": "6.5.9",
"ecosystem": "npm"
},
{
"name": "react-final-form-arrays",
"direct": false,
"version": "3.1.4",
"ecosystem": "npm"
},
{
"name": "react-is",
"direct": false,
"version": "16.13.1",
"ecosystem": "npm"
},
{
"name": "react-is",
"direct": false,
"version": "17.0.2",
"ecosystem": "npm"
},
{
"name": "react-is",
"direct": false,
"version": "18.3.1",
"ecosystem": "npm"
},
{
"name": "react-lifecycles-compat",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "react-modal",
"direct": false,
"version": "3.16.3",
"ecosystem": "npm"
},
{
"name": "react-refresh",
"direct": false,
"version": "0.18.0",
"ecosystem": "npm"
},
{
"name": "react-router",
"direct": false,
"version": "5.3.4",
"ecosystem": "npm"
},
{
"name": "react-transition-group",
"direct": false,
"version": "4.4.5",
"ecosystem": "npm"
},
{
"name": "read-pkg",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "read-pkg-up",
"direct": false,
"version": "7.0.1",
"ecosystem": "npm"
},
{
"name": "readable-stream",
"direct": false,
"version": "3.6.2",
"ecosystem": "npm"
},
{
"name": "readdirp",
"direct": false,
"version": "3.6.0",
"ecosystem": "npm"
},
{
"name": "redent",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "reflect.getprototypeof",
"direct": false,
"version": "1.0.10",
"ecosystem": "npm"
},
{
"name": "regenerate",
"direct": false,
"version": "1.4.2",
"ecosystem": "npm"
},
{
"name": "regenerate-unicode-properties",
"direct": false,
"version": "10.2.2",
"ecosystem": "npm"
},
{
"name": "regenerator-runtime",
"direct": false,
"version": "0.11.1",
"ecosystem": "npm"
},
{
"name": "regexp.prototype.flags",
"direct": false,
"version": "1.5.4",
"ecosystem": "npm"
},
{
"name": "regexpu-core",
"direct": false,
"version": "6.4.0",
"ecosystem": "npm"
},
{
"name": "registry-auth-token",
"direct": false,
"version": "5.1.1",
"ecosystem": "npm"
},
{
"name": "registry-url",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "regjsgen",
"direct": false,
"version": "0.8.0",
"ecosystem": "npm"
},
{
"name": "regjsparser",
"direct": false,
"version": "0.13.1",
"ecosystem": "npm"
},
{
"name": "remove-accents",
"direct": false,
"version": "0.4.4",
"ecosystem": "npm"
},
{
"name": "require-from-string",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "reselect",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "resize-observer-polyfill",
"direct": false,
"version": "1.5.1",
"ecosystem": "npm"
},
{
"name": "resolve",
"direct": false,
"version": "1.22.11",
"ecosystem": "npm"
},
{
"name": "resolve",
"direct": false,
"version": "2.0.0-next.6",
"ecosystem": "npm"
},
{
"name": "resolve-from",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "resolve-pathname",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "restore-cursor",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "reusify",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "rifm",
"direct": false,
"version": "0.7.0",
"ecosystem": "npm"
},
{
"name": "rimraf",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "rollup",
"direct": false,
"version": "2.80.0",
"ecosystem": "npm"
},
{
"name": "rrweb-cssom",
"direct": false,
"version": "0.8.0",
"ecosystem": "npm"
},
{
"name": "run-async",
"direct": false,
"version": "2.4.1",
"ecosystem": "npm"
},
{
"name": "run-parallel",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "rxjs",
"direct": false,
"version": "6.6.7",
"ecosystem": "npm"
},
{
"name": "safe-array-concat",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "safe-buffer",
"direct": false,
"version": "5.2.1",
"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": "safer-buffer",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "saxes",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "scheduler",
"direct": false,
"version": "0.20.2",
"ecosystem": "npm"
},
{
"name": "seamless-immutable",
"direct": false,
"version": "7.1.4",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "5.7.2",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "6.3.1",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "7.7.4",
"ecosystem": "npm"
},
{
"name": "serialize-javascript",
"direct": false,
"version": "6.0.2",
"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": "shallowequal",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "shebang-command",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "shebang-regex",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "side-channel",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "side-channel-list",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "side-channel-map",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "side-channel-weakmap",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "siginfo",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "signal-exit",
"direct": false,
"version": "3.0.7",
"ecosystem": "npm"
},
{
"name": "signal-exit",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "slash",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "smob",
"direct": false,
"version": "1.6.1",
"ecosystem": "npm"
},
{
"name": "sortablejs",
"direct": false,
"version": "1.15.7",
"ecosystem": "npm"
},
{
"name": "source-map",
"direct": false,
"version": "0.6.1",
"ecosystem": "npm"
},
{
"name": "source-map",
"direct": false,
"version": "0.8.0-beta.0",
"ecosystem": "npm"
},
{
"name": "source-map-js",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "source-map-support",
"direct": false,
"version": "0.5.21",
"ecosystem": "npm"
},
{
"name": "sourcemap-codec",
"direct": false,
"version": "1.4.8",
"ecosystem": "npm"
},
{
"name": "spdx-correct",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "spdx-exceptions",
"direct": false,
"version": "2.5.0",
"ecosystem": "npm"
},
{
"name": "spdx-expression-parse",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "spdx-license-ids",
"direct": false,
"version": "3.0.23",
"ecosystem": "npm"
},
{
"name": "sprintf-js",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "stackback",
"direct": false,
"version": "0.0.2",
"ecosystem": "npm"
},
{
"name": "std-env",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "stop-iteration-iterator",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "strict-uri-encode",
"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.includes",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "string.prototype.matchall",
"direct": false,
"version": "4.0.12",
"ecosystem": "npm"
},
{
"name": "string.prototype.repeat",
"direct": false,
"version": "1.0.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": "string_decoder",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "stringify-object",
"direct": false,
"version": "3.3.0",
"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-comments",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "strip-indent",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "strip-json-comments",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "strip-json-comments",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "stubborn-fs",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "stubborn-utils",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "supports-color",
"direct": false,
"version": "7.2.0",
"ecosystem": "npm"
},
{
"name": "supports-preserve-symlinks-flag",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "symbol-tree",
"direct": false,
"version": "3.2.4",
"ecosystem": "npm"
},
{
"name": "temp-dir",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "tempy",
"direct": false,
"version": "0.6.0",
"ecosystem": "npm"
},
{
"name": "terser",
"direct": false,
"version": "5.46.1",
"ecosystem": "npm"
},
{
"name": "text-table",
"direct": false,
"version": "0.2.0",
"ecosystem": "npm"
},
{
"name": "through",
"direct": false,
"version": "2.3.8",
"ecosystem": "npm"
},
{
"name": "tiny-invariant",
"direct": false,
"version": "1.3.3",
"ecosystem": "npm"
},
{
"name": "tiny-warning",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "tinybench",
"direct": false,
"version": "2.9.0",
"ecosystem": "npm"
},
{
"name": "tinyexec",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "tinyglobby",
"direct": false,
"version": "0.2.15",
"ecosystem": "npm"
},
{
"name": "tinyrainbow",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "tldts",
"direct": false,
"version": "6.1.86",
"ecosystem": "npm"
},
{
"name": "tldts-core",
"direct": false,
"version": "6.1.86",
"ecosystem": "npm"
},
{
"name": "tmp",
"direct": false,
"version": "0.0.33",
"ecosystem": "npm"
},
{
"name": "to-regex-range",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "tough-cookie",
"direct": false,
"version": "5.1.2",
"ecosystem": "npm"
},
{
"name": "tr46",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "tr46",
"direct": false,
"version": "5.1.1",
"ecosystem": "npm"
},
{
"name": "trim-newlines",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "ts-api-utils",
"direct": false,
"version": "1.4.3",
"ecosystem": "npm"
},
{
"name": "tslib",
"direct": false,
"version": "1.14.1",
"ecosystem": "npm"
},
{
"name": "tslib",
"direct": false,
"version": "2.8.1",
"ecosystem": "npm"
},
{
"name": "type-check",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "0.13.1",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "0.16.0",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "0.20.2",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "0.21.3",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "0.6.0",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "0.8.1",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "4.41.0",
"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": "5.9.3",
"ecosystem": "npm"
},
{
"name": "typescript-compare",
"direct": false,
"version": "0.0.2",
"ecosystem": "npm"
},
{
"name": "typescript-logic",
"direct": false,
"version": "0.0.0",
"ecosystem": "npm"
},
{
"name": "typescript-tuple",
"direct": false,
"version": "2.2.1",
"ecosystem": "npm"
},
{
"name": "unbox-primitive",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "undici-types",
"direct": false,
"version": "7.16.0",
"ecosystem": "npm"
},
{
"name": "unicode-canonical-property-names-ecmascript",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "unicode-match-property-ecmascript",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "unicode-match-property-value-ecmascript",
"direct": false,
"version": "2.2.1",
"ecosystem": "npm"
},
{
"name": "unicode-property-aliases-ecmascript",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "unique-string",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "universalify",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "upath",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "update-browserslist-db",
"direct": false,
"version": "1.2.3",
"ecosystem": "npm"
},
{
"name": "update-notifier",
"direct": false,
"version": "7.3.1",
"ecosystem": "npm"
},
{
"name": "uri-js",
"direct": false,
"version": "4.4.1",
"ecosystem": "npm"
},
{
"name": "util-deprecate",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "validate-npm-package-license",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "value-equal",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "vite",
"direct": false,
"version": "7.3.2",
"ecosystem": "npm"
},
{
"name": "vite-plugin-pwa",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "vitest",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "w3c-xmlserializer",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "warning",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "wcwidth",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "webidl-conversions",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "webidl-conversions",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "whatwg-encoding",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "whatwg-mimetype",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "whatwg-mimetype",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "whatwg-url",
"direct": false,
"version": "14.2.0",
"ecosystem": "npm"
},
{
"name": "whatwg-url",
"direct": false,
"version": "7.1.0",
"ecosystem": "npm"
},
{
"name": "when-exit",
"direct": false,
"version": "2.1.5",
"ecosystem": "npm"
},
{
"name": "which",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "which-boxed-primitive",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "which-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.20",
"ecosystem": "npm"
},
{
"name": "why-is-node-running",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "widest-line",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "word-wrap",
"direct": false,
"version": "1.2.5",
"ecosystem": "npm"
},
{
"name": "workbox-background-sync",
"direct": false,
"version": "7.4.0",
"ecosystem": "npm"
},
{
"name": "workbox-broadcast-update",
"direct": false,
"version": "7.4.0",
"ecosystem": "npm"
},
{
"name": "workbox-build",
"direct": false,
"version": "7.4.0",
"ecosystem": "npm"
},
{
"name": "workbox-cacheable-response",
"direct": false,
"version": "7.4.0",
"ecosystem": "npm"
},
{
"name": "workbox-core",
"direct": false,
"version": "7.4.0",
"ecosystem": "npm"
},
{
"name": "workbox-expiration",
"direct": false,
"version": "7.4.0",
"ecosystem": "npm"
},
{
"name": "workbox-google-analytics",
"direct": false,
"version": "7.4.0",
"ecosystem": "npm"
},
{
"name": "workbox-navigation-preload",
"direct": false,
"version": "7.4.0",
"ecosystem": "npm"
},
{
"name": "workbox-precaching",
"direct": false,
"version": "7.4.0",
"ecosystem": "npm"
},
{
"name": "workbox-range-requests",
"direct": false,
"version": "7.4.0",
"ecosystem": "npm"
},
{
"name": "workbox-recipes",
"direct": false,
"version": "7.4.0",
"ecosystem": "npm"
},
{
"name": "workbox-routing",
"direct": false,
"version": "7.4.0",
"ecosystem": "npm"
},
{
"name": "workbox-strategies",
"direct": false,
"version": "7.4.0",
"ecosystem": "npm"
},
{
"name": "workbox-streams",
"direct": false,
"version": "7.4.0",
"ecosystem": "npm"
},
{
"name": "workbox-sw",
"direct": false,
"version": "7.4.0",
"ecosystem": "npm"
},
{
"name": "workbox-window",
"direct": false,
"version": "7.4.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": "ws",
"direct": false,
"version": "8.20.0",
"ecosystem": "npm"
},
{
"name": "xdg-basedir",
"direct": false,
"version": "5.1.0",
"ecosystem": "npm"
},
{
"name": "xml-name-validator",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "xmlchars",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "yallist",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "yargs-parser",
"direct": false,
"version": "18.1.3",
"ecosystem": "npm"
},
{
"name": "yocto-queue",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
}
],
"collected": true,
"truncated": false,
"total_count": 1120,
"direct_count": 107,
"indirect_count": 1013
}
},
"maintainership": {
"issues": {
"open_prs": 122,
"merged_prs": 1419,
"open_issues": 116,
"closed_ratio": 0.935,
"closed_issues": 1663,
"closed_unmerged_prs": 1487
},
"bus_factor": 1,
"bot_contributors": 2,
"top_contributors": [
{
"type": "User",
"login": "deluan",
"commits": 3983,
"avatar_url": "https://avatars.githubusercontent.com/u/331353?v=4"
},
{
"type": "User",
"login": "kgarner7",
"commits": 92,
"avatar_url": "https://avatars.githubusercontent.com/u/17521368?v=4"
},
{
"type": "User",
"login": "caiocotts",
"commits": 27,
"avatar_url": "https://avatars.githubusercontent.com/u/31974888?v=4"
},
{
"type": "User",
"login": "jvoisin",
"commits": 17,
"avatar_url": "https://avatars.githubusercontent.com/u/325724?v=4"
},
{
"type": "User",
"login": "srichter",
"commits": 16,
"avatar_url": "https://avatars.githubusercontent.com/u/933620?v=4"
},
{
"type": "User",
"login": "certuna",
"commits": 12,
"avatar_url": "https://avatars.githubusercontent.com/u/62144283?v=4"
},
{
"type": "User",
"login": "xabirequejo",
"commits": 12,
"avatar_url": "https://avatars.githubusercontent.com/u/888924?v=4"
},
{
"type": "User",
"login": "ChekeredList71",
"commits": 12,
"avatar_url": "https://avatars.githubusercontent.com/u/66330496?v=4"
},
{
"type": "User",
"login": "samarsault",
"commits": 11,
"avatar_url": "https://avatars.githubusercontent.com/u/2987087?v=4"
},
{
"type": "User",
"login": "Dnouv",
"commits": 11,
"avatar_url": "https://avatars.githubusercontent.com/u/61188295?v=4"
}
],
"contributors_sampled": 98,
"top_contributor_share": 0.907
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"download-link-on-pr.yml",
"pipeline.yml",
"push-translations.yml",
"stale.yml",
"update-translations.yml"
],
"has_docs_dir": false,
"linter_configs": [
".eslintrc",
".golangci.yml"
],
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"Cargo.lock",
"go.sum",
"package-lock.json"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": null,
"reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 10,
"reason": "22 out of 22 merged PRs checked by a CI test -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 2/30 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 11 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 10,
"reason": "update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 1,
"reason": "dependency not pinned by hash detected -- score normalized to 1",
"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": 0,
"reason": "Project has not signed or included provenance with any releases.",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "51 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "ecf606e52320b87d099991f4f3da87913523c303",
"ran_at": "2026-07-28T09:09:34Z",
"aggregate_score": 5.1,
"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-28T02:29:14Z",
"oldest_open_prs": [
{
"number": 1661,
"created_at": "2022-03-20T18:30:42Z",
"last_comment_at": "2024-01-05T01:45:30Z",
"last_comment_author": "github-actions"
},
{
"number": 1999,
"created_at": "2022-11-17T22:14:39Z",
"last_comment_at": "2026-05-30T06:32:50Z",
"last_comment_author": "zorrobert"
},
{
"number": 2058,
"created_at": "2022-12-28T09:24:21Z",
"last_comment_at": "2026-04-02T15:14:30Z",
"last_comment_author": "as7erism"
},
{
"number": 2108,
"created_at": "2023-01-23T16:21:54Z",
"last_comment_at": "2023-10-04T01:44:26Z",
"last_comment_author": "github-actions"
},
{
"number": 2187,
"created_at": "2023-02-14T06:13:42Z",
"last_comment_at": "2025-03-04T10:44:11Z",
"last_comment_author": "treynorman"
},
{
"number": 2201,
"created_at": "2023-02-17T15:23:44Z",
"last_comment_at": "2026-04-11T23:41:32Z",
"last_comment_author": "realglebivanov"
},
{
"number": 2208,
"created_at": "2023-02-21T23:13:42Z",
"last_comment_at": "2023-02-26T22:22:36Z",
"last_comment_author": "jixunmoe"
},
{
"number": 2229,
"created_at": "2023-03-06T06:59:32Z",
"last_comment_at": "2023-10-22T01:45:04Z",
"last_comment_author": "github-actions"
},
{
"number": 2365,
"created_at": "2023-05-22T20:33:44Z",
"last_comment_at": "2024-01-10T01:46:02Z",
"last_comment_author": "github-actions"
},
{
"number": 2429,
"created_at": "2023-07-03T22:58:50Z",
"last_comment_at": "2023-11-01T20:00:25Z",
"last_comment_author": "deluan"
},
{
"number": 2510,
"created_at": "2023-09-06T23:13:43Z",
"last_comment_at": "2024-04-13T16:11:45Z",
"last_comment_author": "deluan"
},
{
"number": 2586,
"created_at": "2023-11-05T19:39:38Z",
"last_comment_at": "2023-11-05T19:54:02Z",
"last_comment_author": "github-actions"
},
{
"number": 2587,
"created_at": "2023-11-06T16:27:21Z",
"last_comment_at": "2023-11-11T22:15:43Z",
"last_comment_author": "deluan"
},
{
"number": 2601,
"created_at": "2023-11-09T14:19:01Z",
"last_comment_at": "2024-07-04T17:04:20Z",
"last_comment_author": "mayanez"
},
{
"number": 2681,
"created_at": "2023-12-03T16:53:55Z",
"last_comment_at": "2023-12-03T17:04:04Z",
"last_comment_author": "github-actions"
},
{
"number": 2821,
"created_at": "2024-01-27T16:04:15Z",
"last_comment_at": "2026-04-24T21:10:00Z",
"last_comment_author": "jgkawell"
},
{
"number": 2835,
"created_at": "2024-01-31T17:24:35Z",
"last_comment_at": "2024-10-04T06:39:52Z",
"last_comment_author": "kosukesando"
},
{
"number": 2909,
"created_at": "2024-03-14T11:59:43Z",
"last_comment_at": "2024-09-28T20:28:02Z",
"last_comment_author": "deluan"
},
{
"number": 2994,
"created_at": "2024-05-03T00:59:48Z",
"last_comment_at": "2024-06-11T02:48:46Z",
"last_comment_author": "Zibbp"
},
{
"number": 3123,
"created_at": "2024-06-29T11:56:42Z",
"last_comment_at": "2024-08-29T07:48:16Z",
"last_comment_author": "mintsoft"
}
],
"last_merged_pr_at": "2026-07-25T17:23:33Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 141,
"created_at": "2020-04-04T07:58:21Z",
"last_comment_at": "2026-05-02T16:37:51Z",
"last_comment_author": "joestump"
},
{
"number": 229,
"created_at": "2020-04-27T13:21:47Z",
"last_comment_at": "2026-02-17T02:18:59Z",
"last_comment_author": "tcurdt"
},
{
"number": 242,
"created_at": "2020-04-28T10:24:04Z",
"last_comment_at": "2026-03-06T16:44:24Z",
"last_comment_author": "zenphonix"
},
{
"number": 245,
"created_at": "2020-04-28T10:59:41Z",
"last_comment_at": "2024-02-24T19:26:35Z",
"last_comment_author": "bornav"
},
{
"number": 390,
"created_at": "2020-07-07T20:40:20Z",
"last_comment_at": "2026-05-23T15:35:40Z",
"last_comment_author": "radiohertz"
},
{
"number": 627,
"created_at": "2020-11-16T09:18:39Z",
"last_comment_at": "2024-11-11T21:18:48Z",
"last_comment_author": "Szeraax"
},
{
"number": 793,
"created_at": "2021-02-24T21:34:01Z",
"last_comment_at": "2026-07-21T20:59:19Z",
"last_comment_author": "xevrion"
},
{
"number": 961,
"created_at": "2021-04-02T10:20:28Z",
"last_comment_at": "2026-06-09T16:30:09Z",
"last_comment_author": "Coke-Unity"
},
{
"number": 1036,
"created_at": "2021-04-17T12:29:39Z",
"last_comment_at": "2026-06-12T09:41:04Z",
"last_comment_author": "JannetGen"
},
{
"number": 1438,
"created_at": "2021-11-01T10:09:55Z",
"last_comment_at": "2024-07-16T08:11:53Z",
"last_comment_author": "metalheim"
},
{
"number": 1465,
"created_at": "2021-11-15T12:32:19Z",
"last_comment_at": "2023-08-07T01:45:35Z",
"last_comment_author": "github-actions"
},
{
"number": 1473,
"created_at": "2021-11-19T14:04:15Z",
"last_comment_at": "2026-07-10T06:19:21Z",
"last_comment_author": "matias-autio"
},
{
"number": 1551,
"created_at": "2021-12-31T21:43:49Z",
"last_comment_at": "2026-06-05T11:13:20Z",
"last_comment_author": "edurenye"
},
{
"number": 1652,
"created_at": "2022-03-13T19:53:17Z",
"last_comment_at": "2023-10-21T01:43:16Z",
"last_comment_author": "github-actions"
},
{
"number": 1713,
"created_at": "2022-04-28T15:08:58Z",
"last_comment_at": "2026-07-20T20:37:12Z",
"last_comment_author": "hiyukoim"
},
{
"number": 2045,
"created_at": "2022-12-17T00:54:38Z",
"last_comment_at": "2026-06-09T14:39:00Z",
"last_comment_author": "KingDuckZ"
},
{
"number": 2138,
"created_at": "2023-02-02T15:30:36Z",
"last_comment_at": "2026-04-18T17:16:59Z",
"last_comment_author": "ResurFace382500000"
},
{
"number": 2394,
"created_at": "2023-06-12T12:41:02Z",
"last_comment_at": "2026-03-06T16:41:47Z",
"last_comment_author": "zenphonix"
},
{
"number": 2445,
"created_at": "2023-07-17T19:41:23Z",
"last_comment_at": "2026-07-14T02:13:55Z",
"last_comment_author": "github-actions"
},
{
"number": 2575,
"created_at": "2023-10-27T09:31:06Z",
"last_comment_at": "2025-05-09T02:08:04Z",
"last_comment_author": "github-actions"
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/navidrome/navidrome",
"host": "github.com",
"name": "navidrome",
"owner": "navidrome"
},
"metrics": {
"overall": {
"key": "overall",
"band": "good",
"name": "Overall health",
"note": null,
"notes": [],
"value": 75,
"inputs": {
"security": 49,
"vitality": 91,
"community": 94,
"governance": 63,
"engineering": 76
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "excellent",
"name": "Vitality",
"value": 91,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "excellent",
"name": "Development activity",
"note": null,
"notes": [],
"value": 92,
"inputs": {
"commits_last_year": 627,
"human_commit_share": 0.98,
"days_since_last_push": 0,
"active_weeks_last_year": 40
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "40/52 weeks with commits",
"points": 27.7,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 40
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "627 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 627
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"releases_count": 100,
"latest_release_tag": "v0.63.2",
"releases_from_tags": false,
"days_since_latest_release": 16,
"mean_days_between_releases": 17.5
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "100 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 100
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 16 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 16
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~17.5 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 17.5
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 2,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 2 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 2
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "excellent",
"name": "Community & Adoption",
"value": 94,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "excellent",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 96,
"inputs": {
"forks": 1605,
"stars": 22549,
"watchers": 91,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "22,549 stars",
"points": 60,
"status": "met",
"details": [
{
"code": "stars",
"params": {
"count": 22549
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "1,605 forks",
"points": 25,
"status": "met",
"details": [
{
"code": "forks",
"params": {
"count": 1605
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "91 watchers",
"points": 10.9,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 91
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "excellent",
"name": "Community health",
"note": null,
"notes": [],
"value": 92,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (GPL-3.0)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "GPL-3.0"
}
}
],
"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": 6.3,
"status": "met",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 63,
"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": 98,
"top_contributor_share": 0.907
},
"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 91% of commits",
"points": 2.1,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 91
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "98 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 98
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 11 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "moderate",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 62,
"inputs": {
"merged_prs": 1419,
"open_issues": 116,
"closed_issues": 1663,
"issue_closed_ratio": 0.935,
"closed_unmerged_prs": 1487
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "94% of issues closed",
"points": 43.7,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 94
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "1419/2906 decided PRs merged",
"points": 18.7,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 1419,
"decided": 2906
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 2/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 68,
"inputs": {
"followers": 347,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "navidrome",
"public_repos": 10,
"account_age_days": 3410
},
"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": "347 followers of navidrome",
"points": 18.3,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 347,
"login": "navidrome"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "10 public repos, account ~9 yr old",
"points": 19.6,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 10
}
},
{
"code": "account_age_years",
"params": {
"years": 9
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"github.com/navidrome/navidrome"
],
"ecosystems": "go",
"any_deprecated": false,
"min_days_since_publish": 18
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on go",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "go"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 18 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 18
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "120 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 120
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 76,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "good",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 84,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "5 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 5
}
}
],
"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": ".eslintrc, .golangci.yml",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".eslintrc, .golangci.yml"
}
}
],
"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": "22 out of 22 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"topics": [
"music",
"subsonic-server",
"subsonic",
"music-server",
"airsonic",
"streaming-audio",
"streaming-api",
"madsonic",
"streamer",
"self-hosted",
"media-server",
"navidrome",
"raspberry-pi",
"opensubsonic"
],
"has_wiki": false,
"homepage": "https://www.navidrome.org",
"has_readme": true,
"has_docs_dir": false,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://www.navidrome.org",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "14 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 14
}
}
],
"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": "at_risk",
"name": "Security",
"value": 49,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "moderate",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Branch-Protection. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"branch_protection"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 51,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 5.1
},
"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": "22 out of 22 merged PRs checked by a CI test -- score normalized to 10",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 2/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 11 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "update tool detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 1",
"points": 0.5,
"status": "partial",
"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": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "51 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "at_risk",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 1116 resolved dependencies against OSV; 4 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"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_repository",
"params": {
"assessed": 1116
}
},
{
"code": "advisories_unassessed",
"params": {
"count": 4
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 42,
"inputs": {
"source": "osv",
"advisories": 70,
"affected_packages": 25,
"assessed_packages": 1116,
"unassessed_packages": 4,
"affected_by_severity": "high 17, moderate 2, low 2, unknown 4",
"direct_affected_packages": 6
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "6 affected: uuid 13.0.0 (high 7.5), uuid 3.4.0 (high 7.5), dompurify 2.5.9 (moderate 6.8), +3 more",
"points": 8.3,
"status": "partial",
"details": [
{
"code": "advisories_affected",
"params": {
"count": 6,
"packages": "uuid 13.0.0 (high 7.5), uuid 3.4.0 (high 7.5), dompurify 2.5.9 (moderate 6.8)"
}
},
{
"code": "advisories_affected_more",
"params": {
"count": 3
}
}
],
"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": "4 advisory-carrying package(s) unaddressed past 90 days; oldest published 528 days ago",
"points": 23.3,
"status": "partial",
"details": [
{
"code": "advisories_stale",
"params": {
"days": 90,
"count": 4,
"oldest": 528
}
}
],
"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": 1116,
"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": 7
},
"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": 65,
"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": "good",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 81,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"Cargo.lock",
"go.sum",
"package-lock.json"
],
"has_dockerfile": true,
"typed_language": true,
"bootstrap_files": [
"Makefile",
"plugins/examples/Makefile",
"plugins/examples/coverartarchive-py/Makefile",
"plugins/examples/nowplaying-py/Makefile",
"plugins/testdata/Makefile"
],
"has_devcontainer": true,
"has_linter_config": true,
"typecheck_configs": [
"ui/tsconfig.json"
],
"agent_commit_share": 0,
"toolchain_manifests": [
"go.mod",
"plugins/cmd/ndpgen/go.mod",
"plugins/examples/crypto-ticker/go.mod",
"plugins/examples/discord-rich-presence-rs/Cargo.toml",
"plugins/examples/library-inspector-rs/Cargo.toml",
"plugins/examples/minimal/go.mod",
"plugins/examples/webhook-rs/Cargo.toml",
"plugins/examples/wikimedia/go.mod",
"plugins/pdk/go/go.mod",
"plugins/pdk/rust/nd-pdk-capabilities/Cargo.toml",
"plugins/pdk/rust/nd-pdk-host/Cargo.toml",
"plugins/pdk/rust/nd-pdk-types/Cargo.toml",
"plugins/pdk/rust/nd-pdk/Cargo.toml",
"plugins/testdata/partial-metadata-agent/go.mod",
"plugins/testdata/test-artwork/go.mod",
"plugins/testdata/test-cache-plugin/go.mod",
"plugins/testdata/test-config/go.mod",
"plugins/testdata/test-kvstore/go.mod",
"plugins/testdata/test-library/go.mod",
"plugins/testdata/test-lyrics/go.mod",
"plugins/testdata/test-matcher/go.mod",
"plugins/testdata/test-metadata-agent/go.mod",
"plugins/testdata/test-scheduler/go.mod",
"plugins/testdata/test-scrobbler/go.mod",
"plugins/testdata/test-sonic-similarity/go.mod",
"plugins/testdata/test-subsonicapi-plugin/go.mod",
"plugins/testdata/test-taskqueue/go.mod",
"plugins/testdata/test-users/go.mod",
"plugins/testdata/test-websocket/go.mod"
],
"dependency_bot_commit_share": 0.02
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "Makefile, plugins/examples/Makefile, plugins/examples/coverartarchive-py/Makefile, plugins/examples/nowplaying-py/Makefile, plugins/testdata/Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Makefile, plugins/examples/Makefile, plugins/examples/coverartarchive-py/Makefile, plugins/examples/nowplaying-py/Makefile, plugins/testdata/Makefile"
}
}
],
"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": ".eslintrc, .golangci.yml",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".eslintrc, .golangci.yml"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "ui/tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "ui/tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "devcontainer, Dockerfile, lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "devcontainer, Dockerfile, lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "no agent-authored commits among the last 100",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "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 1",
"points": 1,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "Go",
"largest_source_bytes": 56177,
"source_files_sampled": 1400,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Go (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "0/1400 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 1400,
"oversized": 0
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"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": "examples",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "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-28T09:10:04.480357Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/n/navidrome/navidrome.svg",
"full_name": "navidrome/navidrome",
"license_state": "standard",
"license_spdx": "GPL-3.0"
}