JSON-Rohbericht maschinenlesbar
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 3130,
"has_wiki": true,
"homepage": null,
"languages": {
"CSS": 1945,
"HTML": 641,
"SCSS": 6471,
"Shell": 912,
"PLpgSQL": 6157,
"Makefile": 1389,
"JavaScript": 67850,
"TypeScript": 114024
},
"pushed_at": "2026-07-21T07:34:07Z",
"created_at": "2019-05-23T18:45:39Z",
"owner_type": "Organization",
"updated_at": "2026-07-20T19:11:22Z",
"description": "An example end-to-end Plaid integration to create items and fetch transaction data",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "master",
"license_spdx_raw": "MIT",
"primary_language": "TypeScript",
"significant_languages": [
"TypeScript",
"JavaScript"
]
},
"owner": {
"blog": "https://plaid.com/docs",
"name": "Plaid",
"type": "Organization",
"login": "plaid",
"company": null,
"location": "San Francisco, CA",
"followers": 980,
"avatar_url": "https://avatars.githubusercontent.com/u/3579888?v=4",
"created_at": "2013-02-13T00:25:05Z",
"is_verified": null,
"public_repos": 67,
"account_age_days": 4906
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v1.0.5",
"kind": "patch",
"published_at": "2019-09-03T18:17:42Z"
},
{
"tag": "v1.0.4",
"kind": "patch",
"published_at": "2019-08-28T15:08:04Z"
},
{
"tag": "v1.0.3",
"kind": "patch",
"published_at": "2019-07-23T16:46:44Z"
},
{
"tag": "v1.0.2",
"kind": "patch",
"published_at": "2019-06-12T18:00:04Z"
},
{
"tag": "v1.0.1",
"kind": "patch",
"published_at": "2019-05-29T17:47:07Z"
},
{
"tag": "v1.0.0",
"kind": "major",
"published_at": "2019-05-28T20:17:22Z"
}
],
"recent_commits": [
{
"oid": "ed00aa75a4fbf510bcce946a78f574bd4a6986c4",
"body": "Fix broken error responses, transactions-sync atomicity, and item webhook crashes",
"is_bot": false,
"headline": "Merge pull request #375 from plaid/ah-server-error-and-webhook-fixes",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-07-14T06:29:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e1bab9c5d8b90e1844b3d0fbe77775d1d6c9d9e7",
"body": "…d 500\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "DELETE /items: pass through Plaid's HTTP status instead of a hardcode…",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-07-14T06:24:18Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "dd56298d7da25410a57dded5bab4e3ff27a0392b",
"body": "…hook crashes\n\n@hapi/boom v10 made `new Boom(...)` invalid (the class is now `Boom.Boom`), so\nevery 4xx the API tried to raise threw \"Boom is not a constructor\" and surfaced\nas a generic 500 instead — duplicate-item/username conflicts, invalid item\nstatus, and the catch-all 404 were all affected. Sw\n[…]\not JavaScript; fix the broken OAuth README anchor in\n.env.template; drop the unused react-router-dom v5 types and a dead link ref.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix broken error responses, transactions-sync atomicity, and item web…",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-07-14T06:20:37Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "aa48f415f4a2871301ba0fc7140a4c60096f8755",
"body": "Replace deprecated transaction_type with payment_channel (requires db reset)",
"is_bot": false,
"headline": "Merge pull request #374 from plaid/ah-pattern-payment-channel",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-07-13T22:29:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "81b83f93d41d1fb5851bb3acdac5041ccd7ae0fb",
"body": "The Transactions API deprecated `transaction_type` in favor of `payment_channel`. Pattern\ningested `transaction_type` into its `type` column (and never displayed it), so this swaps\nthe ingested field, the `transactions_table` column, its view, and the `TransactionType`\nclient interface to `payment_c\n[…]\ntched via `/transactions/get` on `DEFAULT_UPDATE`/`INITIAL_UPDATE`; the app uses\n`/transactions/sync` on `SYNC_UPDATES_AVAILABLE`.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Replace deprecated transaction_type with payment_channel",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-07-13T22:21:04Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "95890beffe917d49e24ea677683ccf2cd1aadf1c",
"body": "Bump morgan to 1.11.0 in server",
"is_bot": false,
"headline": "Merge pull request #373 from plaid/ah-bump-morgan",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-07-13T20:46:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8962c9ba8cb10d951e53f44983edd1d563f2f037",
"body": "The ~1.10.1 pin excluded the patched 1.11.0, leaving the moderate on-finished\nadvisory open. Widen the constraint to ~1.11.0 (semver-minor, non-breaking).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Bump morgan to 1.11.0 in server",
"author_name": "phoenixy1",
"author_login": "phoenixy1",
"committed_at": "2026-07-13T20:45:11Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "fed73657271d9b0dd0ee20f2bc0d815041e12116",
"body": "Fix npm audit vulnerabilities in client and server",
"is_bot": false,
"headline": "Merge pull request #370 from plaid/ah-security-patches-jul2026",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-07-13T20:21:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "425e079474f760451e5ec8aeeb8b0036e090cfe8",
"body": "Resolve all open high/moderate advisories reported by npm audit via\nnon-breaking transitive dependency bumps (lockfiles only):\n- form-data 4.0.x -> 4.0.6 (CRLF injection, high)\n- ws 8.20.1 -> 8.21.0 (DoS, high)\n- vite 8.0.x -> 8.1.4 (fs.deny bypass / launch-editor NTLM, high; client)\n- js-yaml 4.1.1 -> 4.3.0 (DoS, moderate)\n- react-router 6.30.3 -> 6.30.4 (open redirect, moderate; client)\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix npm audit vulnerabilities in client and server lockfiles",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-07-09T20:59:01Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "5ebbfc956e1650c0c3e6542f9e28ec5298be556c",
"body": "Fix typo and grammar in README",
"is_bot": false,
"headline": "Merge pull request #364 from plaid/ah-readme-fixes",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-06-05T21:44:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "102688aeb1aa16b205d6d5d77513aad3007c8c94",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix typo and grammar in README",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-06-05T21:40:18Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "b006dcb36ede8330d56e2d274e23bd0d652d0847",
"body": "…ti-d261dbdda9\n\nBump ws and engine.io-client in /client",
"is_bot": false,
"headline": "Merge pull request #361 from plaid/dependabot/npm_and_yarn/client/mul…",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-06-01T17:07:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6e6dc69b9111e976d12a34f914e058e5c8894d12",
"body": "…ti-8c9a216550\n\nBump ws, engine.io and socket.io-adapter in /server",
"is_bot": false,
"headline": "Merge pull request #362 from plaid/dependabot/npm_and_yarn/server/mul…",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-06-01T17:06:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ed73ed9737827d625bb2d130e2069cde2c65caa9",
"body": "Bumps [ws](https://github.com/websockets/ws), [engine.io](https://github.com/socketio/socket.io) and [socket.io-adapter](https://github.com/socketio/socket.io). These dependencies needed to be updated together.\n\nUpdates `ws` from 8.18.3 to 8.20.1\n- [Release notes](https://github.com/websockets/ws/re\n[…]\nendency-version: 6.6.8\n dependency-type: indirect\n- dependency-name: socket.io-adapter\n dependency-version: 2.5.7\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump ws, engine.io and socket.io-adapter in /server",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-05-30T06:07:56Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fb02503913f39cc26d72734e46c83bc820bd604d",
"body": "Bumps [ws](https://github.com/websockets/ws) and [engine.io-client](https://github.com/socketio/socket.io). These dependencies needed to be updated together.\n\nUpdates `ws` from 8.18.3 to 8.20.1\n- [Release notes](https://github.com/websockets/ws/releases)\n- [Commits](https://github.com/websockets/ws/\n[…]\nendency-version: 8.20.1\n dependency-type: indirect\n- dependency-name: engine.io-client\n dependency-version: 6.6.5\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump ws and engine.io-client in /client",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-05-28T04:05:25Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "03846ddabf4155f09e61c740f9515b35ec79318b",
"body": "Bump transitive deps to resolve open security alerts",
"is_bot": false,
"headline": "Merge pull request #360 from plaid/ah-fix-vuln-alerts-may2026",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-05-19T20:29:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "70de544af9a464dac5e1ee4aa65b623e5a2dca60",
"body": "Closes #357, #358\n\nLock files regenerated to pick up axios >=1.15.2 (was 1.15.1) in both server\nand client, resolving GHSA-q8qp-cvcw-x6jj (high) and GHSA-3w6x-2g7m-8v23\n(medium). No direct dependency changes.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Bump transitive deps to resolve open security alerts",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-05-19T20:07:52Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e7aa905906b92bfa95d9ad00b67524b966605580",
"body": "Remove dead pattern.plaid.com demo link",
"is_bot": false,
"headline": "Merge pull request #359 from plaid/ah-remove-dead-demo-link",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-05-19T07:02:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b7012290e6d64b17cc6a54245ec5a0868752593c",
"body": "pattern.plaid.com no longer resolves consistently and the underlying\nHeroku review-app it pointed at is gone, so the live-demo callout in\nthe README is misleading. Drop the sentence; everything else still\ndescribes how to run the demo locally.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Remove dead pattern.plaid.com demo link",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-05-19T06:57:00Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "dae630e9ce0f3493141b190596f3a256d192a4f2",
"body": "Batch Dependabot dependency updates",
"is_bot": false,
"headline": "Merge pull request #355 from plaid/ah-batch-dependabot",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-04-23T00:21:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0a800fc4bc01f24df19919991ab44439ddcc246a",
"body": "Closes #323, #330, #332, #333, #334, #335, #337, #338, #339, #340, #341, #342, #343, #344, #345, #346, #347\n\nDirect dependency bumps:\n- express ^4.21.1 → ^4.22.1 (server)\n- react-router-dom ^6.28.1 → ^6.30.3 (client)\n\nLock files regenerated to pick up all transitive updates (path-to-regexp,\nnode-forge, picomatch, flatted, socket.io-parser, immutable, minimatch,\nrollup, ajv, qs, js-yaml, axios).\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Batch Dependabot dependency updates",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-04-23T00:19:27Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "8cb6dc3da77233930d7eb3ec4c13d11f8d4be534",
"body": "Fix Makefile db targets to use plaid_pattern database",
"is_bot": false,
"headline": "Merge pull request #354 from plaid/ah-makefile-db-fix",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-04-23T00:04:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2a65f9cd8cbdec9a05017cce62617c0038e723a0",
"body": "db-create, db-reset, and sql were still targeting the default postgres\ndatabase, same issue fixed in package.json in #353.\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix Makefile db targets to use plaid_pattern database",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-04-23T00:03:54Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "418f8a06218910667717e1247650821c39b26a7d",
"body": "Use a dedicated database instead of the default postgres database",
"is_bot": false,
"headline": "Merge pull request #353 from plaid/ah-db-isolation",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-04-22T23:54:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1d245f62e10bb1c90412d23b44d13f1965bde4cb",
"body": "DB_NAME doesn't need to be configurable — there's no reason to rename\nthe database. Using an env var just created a sync risk between the npm\nscripts (which already hardcoded plaid_pattern) and the server pool\nconfig. Hardcode the name in both places and drop DB_NAME from\n.env.template.\n\nAlso update README to reference plaid_pattern in the setup step and\nthe psql connect command.\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Hardcode plaid_pattern database name instead of using an env var",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-04-22T23:53:43Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "82f8709872f10a8ff5df3c7a94ee5ad2640b73e1",
"body": "The server pool config had no database name, so it silently connected\nto PostgreSQL's built-in postgres database. Running db:create or\ndb:reset against that database risks overwriting any other app or tool\nthat also defaults to postgres — including other Plaid sample apps like\npattern-account-fundin\n[…]\nCREATE / DROP that named database explicitly rather than mutating the\npublic schema of whatever the current default database is.\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Use a dedicated database instead of the default postgres database",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-04-22T23:49:46Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8ee945b1f68ab8dead4969e7ac31d90bb2473193",
"body": "Update client and server dependencies",
"is_bot": false,
"headline": "Merge pull request #352 from plaid/ah-update-dependencies",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-04-20T20:28:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "87b6ba011c86f3eef100d60a20404f8addd80880",
"body": "Bump plaid SDK to v42, recharts to v3, react-toastify to v11,\nimmer to v11, @types/node to v25, and add lodash dependency.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Update client and server dependencies",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-04-20T20:27:16Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "b1a6bcd4a26fa19d9e72aa0b71866ddcddcc2215",
"body": "Reduce toast font size and add ngrok inspector link",
"is_bot": false,
"headline": "Merge pull request #351 from plaid/ah-test-clean-install",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-04-20T20:12:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "54816561189f8b83ec33d00ebb96f7b32a9ec9c3",
"body": "Toast messages were using 1.6rem (2 * $unit) which made them\ndisproportionately large. Reduce to 1rem to match body text.\n\nAdd a link to the ngrok inspector (localhost:4040) in the testing\ncallout on the user page so developers can easily find webhook\nrequest/response details.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Reduce toast font size and add ngrok inspector link",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-04-20T20:11:28Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "1352f455461a3f902176a000b0042b9176daef6e",
"body": "The original README directed Windows users to WSL, not native Windows\ntooling. Restore that guidance instead of the Chocolatey instructions\nthat were never part of the original docs.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Replace Chocolatey instructions with WSL guidance for Windows",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-04-20T19:59:25Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "13353c966bfaa530a1bda3a9b9f60d2dfeeea067",
"body": "Remove Docker, run services natively",
"is_bot": false,
"headline": "Merge pull request #350 from plaid/ah-remove-docker",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-04-20T19:56:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d439063fd02ccb1d6a36278c46ca0e6b35ffc2e7",
"body": "version.sh used grep to find the first semver in package.json, which\ncould match a dependency version if one appeared before the version field.\nUse node to read the version directly instead.\n\nNGROK_AUTHTOKEN was an env var that nothing actually read — ngrok stores\nits authtoken in its own config file. Replace with a comment pointing to\nthe setup command.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix version.sh fragile regex and clarify ngrok setup in .env.template",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-04-20T19:33:54Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ccf389ae7ac188df272f36d950ca9bf343be622c",
"body": "- Restore link_events_table and plaid_api_events_table descriptions\n- Restore webhook URL expiration guidance and item re-linking steps\n- Restore Windows HTTPS localhost instructions (minus Docker steps)\n- Restore PostgreSQL documentation link\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Restore useful documentation removed during Docker cleanup",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-04-20T19:31:41Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "401a5ae36c0a5a9f75b593fba0226acbaaca365b",
"body": "- Replace Docker service hostnames (ngrok:4040, server:5001) with localhost\n in linkTokens.js and services.js\n- Support both http and https ngrok tunnels for compatibility across versions\n- Remove host: true from Vite config (was only needed for Docker port mapping)\n- Remove dangerous make start/st\n[…]\n.yml\n- Update troubleshooting.md to remove Docker log instructions\n- Mark ngrok as a required dependency in docs and .env.template\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix remaining Docker references and review feedback",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-04-20T19:19:57Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0e22bb7747db751952b2d8031b05c0f707d8f892",
"body": "Docker was the only way to run the app, requiring all contributors to have\nDocker Desktop installed. This replaces the Docker orchestration with direct\nNode.js + PostgreSQL, making the app simpler to set up and run on any OS.\n\n- Remove Dockerfiles, docker-compose files, ngrok container, and wait scr\n[…]\npdate .env.template with all required env vars and defaults\n- Rewrite README with setup instructions for macOS, Windows, and Linux\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Remove Docker dependency, run services natively",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-04-18T06:13:25Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d260c3e16b9873f94bfbb7f2d30b5383f081269a",
"body": "Replace plaid-threads with Tailwind CSS",
"is_bot": false,
"headline": "Merge pull request #349 from plaid/remove-threads",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-04-18T05:53:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a0a70141e8ffc2ec3f87e3750be4770123a39e53",
"body": "plaid-threads pulls in ~100MB of transitive dependencies (highcharts,\nlibphonenumber-js, moment-timezone, etc.) that this app never uses,\nand it will never be updated. Replace it with Tailwind CSS v4, which\nthe newer Plaid sample apps (layer-quickstart, credit-quickstart)\nhave already adopted.\n\n- Ad\n[…]\n Tailwind preflight\n- Remove plaid-threads dependency and delete index.scss\n\nNet dependency reduction: ~100MB removed, ~4MB added.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Replace plaid-threads with Tailwind CSS",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-04-18T05:49:46Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d9b5a76a57d85e36895782b008bac9252cf8ef84",
"body": "Migrate client from Create React App to Vite 8",
"is_bot": false,
"headline": "Merge pull request #348 from plaid/ah-migrate-cra-to-vite",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-04-18T04:53:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a73a817eb6766e87c084c6c9afeff66667a83105",
"body": "CRA is unmaintained and slow. This replaces it with Vite 8 +\n@vitejs/plugin-react 6 for faster dev startup (~200ms) and builds\n(~430ms).\n\nKey changes:\n- Entry point moved to src/main.tsx, index.html moved to project root\n- Proxy config uses bypass function matching CRA's heuristic\n- plaid-threads im\n[…]\n, TypeScript bumped to 5.7\n- Dockerfile and docker-compose updated for Vite\n- README HTTPS instructions updated for vite.config.ts\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Migrate client from Create React App to Vite 8",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-04-18T04:50:37Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "04f6ee588d4ae9ff37510675263a7e4663ba52e5",
"body": "Update dependencies - pattern",
"is_bot": false,
"headline": "Merge pull request #328 from plaid/ah-update-dependencies",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2026-02-12T19:07:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b5504e32fd742d26fc3a144610bf15ec37b286b",
"body": "Run npm update to update all dependencies within their semver ranges.\nThis updates axios from 1.13.2 to 1.13.5, which includes security fixes\nfor a Denial of Service vulnerability via __proto__ key in mergeConfig.\n\nCo-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Update transitive dependencies to latest patch versions",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-02-11T22:38:33Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "0831bc03d66c65496730dbd6326b3068c77295fc",
"body": "Client: axios@1.13.5, sass@1.97.3, socket.io-client@4.8.3\nServer: cookie-parser@1.4.7, eslint-plugin-import@2.32.0, eslint-plugin-prettier@5.5.5, lodash@4.17.23, morgan@1.10.1, nodemon@3.1.11, pg@8.18.0, prettier@3.8.1, socket.io@4.8.3\n\nCo-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Update minor/patch dependencies",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-02-10T23:20:59Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "81176acce678300c13ad1da58aff92724fb3358c",
"body": "Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Update plaid to 41.1.0 after merge",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-02-10T23:12:30Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "109d57b73c821a2f36573c84782798c84e9e0b97",
"body": "# Conflicts:\n#\tclient/package-lock.json\n#\tclient/package.json\n#\tserver/package-lock.json\n#\tserver/package.json",
"is_bot": false,
"headline": "Merge remote-tracking branch 'origin/master' into ah-update-dependencies",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-02-10T23:11:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1122c81ef2e836cc5d550d36d325d700b3717646",
"body": "Handle case where retrieveItemByPlaidAccessToken returns undefined\n(when item has been deleted but webhooks are still being received).\nUse optional chaining to safely extract itemId and userId.\n\nCo-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix server crash when webhooks arrive for deleted items",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-02-10T23:06:55Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "49eb39115c6c6619684f01a2a9d9acefd89cf376",
"body": "Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Update react-plaid-link to 4.1.1",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-02-10T23:01:10Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "aa8ea09d5a4ab10120e5a77ee59861499a4061f3",
"body": "- Fix quote style consistency (double to single quotes)\n- Add missing semicolons in import statements\n- Remove extra whitespace\n- Remove extra blank lines\n\nBuild now passes successfully",
"is_bot": false,
"headline": "Fix prettier linting errors",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-02-10T21:49:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "19bee9e2dacb10ff903307c652f451ee6c97354c",
"body": "client:\n- Update plaid to ^41.1.0 (from ^39.1.0)\n- Update react-plaid-link to ^3.6.1\n- Update axios, react-router-dom, recharts, socket.io-client\n- Update TypeScript type definitions\n- Apply safe minor/patch updates\n\nserver:\n- Update plaid to ^41.1.0 (from ^39.1.0)\n- Update express to ^4.22.1\n- Upda\n[…]\n: 4.x → 5.x\n- prettier: 1.x → 3.x\n- eslint: 6.x → 10.x\n- typescript: 4.x → 5.x\n\nTesting: Installation passed, build has linting issues to fix\n\nCo-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Update dependencies to latest versions",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2026-02-10T20:37:08Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6315b9fa8a49a06bf5ce1bd20632eb2f2abafe70",
"body": "updated all dependencies\nVarious improvements to make the app more useful:\n\nHighlighted the new user_transactions_dynamic test user and other test users that are beneficial for testing transactions in both the readme and the app UI\nImproved webhook toasts by adding a link to ngrok so you can see the\n[…]\n is supposed to demonstrate (transaction updates and webhooks)\nupdated README to clarify that because of how ngrok tunneling works, webhooks for existing items will stop working if docker is restarted",
"is_bot": false,
"headline": "Merge pull request #322 from plaid/adh-pattern-updates-11-5-25",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2025-11-07T17:08:45Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b394122f6ec9752347664e31871c09b3909926f5",
"body": null,
"is_bot": false,
"headline": "PR feedback",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2025-11-07T17:05:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "40f25605ad261cb591ca143c5375d3e6ab0b3fe8",
"body": null,
"is_bot": false,
"headline": "improve ngrok error messaging",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2025-11-06T23:08:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "61866db82beadc8e9f8f03a0021107a86b744396",
"body": "…start",
"is_bot": false,
"headline": "more dependency updates and improve error handling when ngrok doesnt …",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2025-11-06T22:51:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e62cb44f2ffafad1ddad693d6904fb2d4f748bc3",
"body": null,
"is_bot": false,
"headline": "more cr feedback",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2025-11-06T19:35:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "356a94c841d9fdcb288e12848ed1ad2101a3a4fd",
"body": null,
"is_bot": false,
"headline": "CR feedback",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2025-11-06T19:33:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "83addbf1bdd8ba50a63be2ba718fa8c0b5ade143",
"body": null,
"is_bot": false,
"headline": "update readme",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2025-11-06T02:25:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6e5cb10ea934483a64b2de840e50b1bb5313b231",
"body": null,
"is_bot": false,
"headline": "fix ngrok",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2025-11-06T02:13:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "68b427f643f6f18e6d123efec263a04ba839405f",
"body": null,
"is_bot": false,
"headline": "update readme",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2025-11-06T02:11:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "48ac3493825c28d1914af8890dd629fdc27698f9",
"body": null,
"is_bot": false,
"headline": "updates",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2025-11-06T02:07:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e7a4cd4eba9e65edc482d5c5355f07e0fb3ca694",
"body": "update server packages",
"is_bot": false,
"headline": "Merge pull request #319 from plaid/adh-fix-server-deps",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-12-02T17:52:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0d5630b6ac693335932e2b2dd951b166f091876d",
"body": null,
"is_bot": false,
"headline": "update server packages",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2024-11-27T14:58:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3e06dee3c9e394d16ab1e75f1c322403a8218c19",
"body": "Adh deps",
"is_bot": false,
"headline": "Merge pull request #317 from plaid/adh-deps",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-11-25T17:40:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cd75da40a136a3b50488d673be429f9e65c2771c",
"body": null,
"is_bot": false,
"headline": "fix sockets",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2024-11-23T02:15:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e072522d85db97217741e101354b50001dc91693",
"body": null,
"is_bot": false,
"headline": "remove log statements",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2024-11-23T00:53:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c9a083e0a5087226949a3255ea403905eb9f4cf0",
"body": null,
"is_bot": false,
"headline": "fix bug with chart not rendering",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2024-11-23T00:50:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "370aee71218481356649904f66d4fa6ee6979aec",
"body": null,
"is_bot": false,
"headline": "sigh",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2024-11-21T20:20:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ae08fe4a60f746fa7e0857b4937f8975fdb988e3",
"body": null,
"is_bot": false,
"headline": "ngrok",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2024-11-21T20:19:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1de5b063cace04312737a08d8a4fc07da0352292",
"body": null,
"is_bot": false,
"headline": "update plaid",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2024-11-21T19:57:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "69edb317c2f5d19167bd85cc51bcace631c7613d",
"body": null,
"is_bot": false,
"headline": "npm is working",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2024-11-21T19:06:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "420687a4a381027f2e370d12abacc18e145ae7b4",
"body": null,
"is_bot": false,
"headline": "update deps",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2024-11-21T04:40:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "51bfc34ec2fb9a68ce05adb436e2dc909eae965b",
"body": "Update .env.template",
"is_bot": false,
"headline": "Merge pull request #316 from plaid/phoenixy1-patch-12",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-11-13T23:42:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a725935fdd0c162fb6964a4590dbff0170819df4",
"body": null,
"is_bot": false,
"headline": "Update .env.template",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-11-13T22:27:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c1fef11ff909634c402e452cee25a68c63456360",
"body": "Update README.md",
"is_bot": false,
"headline": "Merge pull request #313 from plaid/phoenixy1-patch-11",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-10-15T04:02:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "69027b92ea3eaec0c81be5c83158c00fdda44d2e",
"body": "handle pending disconnect",
"is_bot": false,
"headline": "Merge pull request #312 from plaid/adh-fix-308",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-10-15T04:01:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "18822dd0f024296671ce431f6f43da9a06a12cf8",
"body": null,
"is_bot": false,
"headline": "Update README.md",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-10-14T23:07:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "76b636da17f2bf5a370f2f6b5476ddaa0f00c92a",
"body": null,
"is_bot": false,
"headline": "handle pending disconnect",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2024-10-14T21:26:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "952a36611ef48678c618e0a4763f3fcd6ae4ab66",
"body": null,
"is_bot": false,
"headline": "Merge pull request #309 from plaid/adh-fix-308",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-07-23T06:11:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3fad6a25f16b12f82e9bab7d85706a48103922dc",
"body": null,
"is_bot": false,
"headline": "fix formatting",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2024-07-22T18:22:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "149e3a923d1b624614e8446a914de2cf63c08d3d",
"body": null,
"is_bot": false,
"headline": "fix-308",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2024-07-22T18:21:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ec6216ca7ee84f87fd1484612dc5df82c0d1b68c",
"body": "Update docker-compose.yml",
"is_bot": false,
"headline": "Merge pull request #306 from plaid/phoenixy1-patch-10",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-06-07T23:39:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f47f2f7d74d6d40a45fe05497b1da8d313824d89",
"body": null,
"is_bot": false,
"headline": "Update docker-compose.yml",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-06-07T21:46:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2da569180605d49000b5284911b80bf5981743bf",
"body": "Update docker-compose.yml",
"is_bot": false,
"headline": "Merge pull request #305 from plaid/phoenixy1-patch-9",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-06-07T21:19:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b6ac043cd4cf3222f4461cee92b0e654adb98e5d",
"body": null,
"is_bot": false,
"headline": "Update docker-compose.yml",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-06-07T21:10:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e3e9acd2610c701323537f5bfa8d8d036b19ccc9",
"body": "remove references to development",
"is_bot": false,
"headline": "Merge pull request #304 from plaid/adh-remove-development",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-06-07T21:01:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ffedcf65c43288fece9ced34df03120d0a6ab7dc",
"body": null,
"is_bot": false,
"headline": "remove references to development",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2024-06-07T19:43:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "65d23cfb0256726e7a3b2a5bfab823b10f1a1ebf",
"body": "upgrade ngrok agent",
"is_bot": false,
"headline": "Merge pull request #300 from plaid/adh-upgrade-ngrok",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-02-23T00:40:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d1df36225650c5a00b404d6732ab7e11aa7d4014",
"body": null,
"is_bot": false,
"headline": "upgrade ngrok agent",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2024-02-22T00:38:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f45259b4f51bd9035dc9855da80a64f587631d56",
"body": "Update URL for api keys",
"is_bot": false,
"headline": "Merge pull request #299 from plaid/phoenixy1-patch-7",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-02-22T00:02:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0b9b94ae447fa2222fee5a96517172c640a053b4",
"body": null,
"is_bot": false,
"headline": "Update URL for api keys",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-02-21T22:53:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9a45ea6207e8ddd32f48b9074f81b2dfc9bd77ff",
"body": "Small Fix: transaction cursor was pointing to wrong reference",
"is_bot": false,
"headline": "Merge pull request #295 from jkoestner/small-fix",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-01-22T05:24:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "22ed9dd099e58973d0e1949c44fdf2841498005d",
"body": null,
"is_bot": false,
"headline": "transaction cursor was pointing to wrong reference",
"author_name": "John Koestner",
"author_login": "jkoestner",
"committed_at": "2024-01-21T21:46:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "76da7cb0dd302347aa10b4083d4def66b8662cf4",
"body": "fix item updates",
"is_bot": false,
"headline": "Merge pull request #292 from plaid/adh-fix-item-updates",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2024-01-11T22:40:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2d60b3a659187cba2d9708ac4b0cbdbe72fcdc49",
"body": null,
"is_bot": false,
"headline": "fix item updates",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2024-01-05T18:32:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "82166f088dfb692c0a8471d921a6f1ac07db44b6",
"body": "Update README.md",
"is_bot": false,
"headline": "Merge pull request #291 from plaid/phoenixy1-patch-6",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2023-12-18T20:00:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a61c5b6cec4240bcd7f57c560d0c3d61583eb909",
"body": null,
"is_bot": false,
"headline": "Update README.md",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2023-12-18T19:57:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "03f9e234823620bd723cd0402c11cd812aff2c33",
"body": "Update README.md",
"is_bot": false,
"headline": "Merge pull request #289 from plaid/phoenixy1-patch-5",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2023-10-26T19:38:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c8377ceae6c167bc98bc51f6b70831fd2d81f2c2",
"body": "update link to keys",
"is_bot": false,
"headline": "Update README.md",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2023-10-26T18:07:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f3e6c6bcc4824d40ab24dc25436ffac3ea7653c3",
"body": "docker updates",
"is_bot": false,
"headline": "Merge pull request #285 from plaid/adh-docker-updates",
"author_name": "Alex",
"author_login": "phoenixy1",
"committed_at": "2023-07-12T22:46:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "96b1b985f4f0207a2225af63074fff06d4f5655a",
"body": null,
"is_bot": false,
"headline": "fix format",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2023-07-12T21:37:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "613626e8b8fb48739d1b74ae890b36b3fa07ac77",
"body": null,
"is_bot": false,
"headline": "docker updates",
"author_name": "Alex Hoffer",
"author_login": "phoenixy1",
"committed_at": "2023-07-12T21:20:30Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 6,
"commits_last_year": 59,
"latest_release_at": "2019-09-03T18:17:42Z",
"latest_release_tag": "v1.0.5",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 9,
"days_since_latest_release": 2513,
"mean_days_between_releases": 19.6
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 37,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": []
},
"popularity": {
"forks": 248,
"stars": 535,
"watchers": 56,
"fork_history": {
"days": [
{
"date": "2019-05-30",
"count": 1
},
{
"date": "2019-06-02",
"count": 1
},
{
"date": "2019-07-09",
"count": 1
},
{
"date": "2019-07-25",
"count": 2
},
{
"date": "2019-08-19",
"count": 1
},
{
"date": "2019-08-27",
"count": 1
},
{
"date": "2019-10-15",
"count": 1
},
{
"date": "2019-10-24",
"count": 1
},
{
"date": "2019-11-09",
"count": 1
},
{
"date": "2019-12-02",
"count": 1
},
{
"date": "2019-12-13",
"count": 1
},
{
"date": "2019-12-18",
"count": 1
},
{
"date": "2020-01-03",
"count": 1
},
{
"date": "2020-01-06",
"count": 1
},
{
"date": "2020-01-12",
"count": 1
},
{
"date": "2020-01-14",
"count": 1
},
{
"date": "2020-01-17",
"count": 1
},
{
"date": "2020-02-01",
"count": 1
},
{
"date": "2020-02-03",
"count": 2
},
{
"date": "2020-02-06",
"count": 1
},
{
"date": "2020-02-17",
"count": 1
},
{
"date": "2020-02-19",
"count": 1
},
{
"date": "2020-02-28",
"count": 1
},
{
"date": "2020-03-02",
"count": 2
},
{
"date": "2020-03-07",
"count": 1
},
{
"date": "2020-04-15",
"count": 1
},
{
"date": "2020-05-17",
"count": 2
},
{
"date": "2020-05-30",
"count": 1
},
{
"date": "2020-06-04",
"count": 1
},
{
"date": "2020-06-15",
"count": 2
},
{
"date": "2020-07-01",
"count": 1
},
{
"date": "2020-07-10",
"count": 1
},
{
"date": "2020-07-11",
"count": 1
},
{
"date": "2020-07-21",
"count": 1
},
{
"date": "2020-07-25",
"count": 1
},
{
"date": "2020-07-27",
"count": 1
},
{
"date": "2020-07-30",
"count": 1
},
{
"date": "2020-08-04",
"count": 1
},
{
"date": "2020-08-17",
"count": 1
},
{
"date": "2020-08-21",
"count": 1
},
{
"date": "2020-09-02",
"count": 1
},
{
"date": "2020-09-28",
"count": 1
},
{
"date": "2020-10-03",
"count": 1
},
{
"date": "2020-10-18",
"count": 1
},
{
"date": "2020-11-02",
"count": 1
},
{
"date": "2020-11-04",
"count": 1
},
{
"date": "2020-11-26",
"count": 1
},
{
"date": "2020-12-08",
"count": 1
},
{
"date": "2020-12-15",
"count": 1
},
{
"date": "2020-12-21",
"count": 1
},
{
"date": "2020-12-23",
"count": 1
},
{
"date": "2021-01-02",
"count": 1
},
{
"date": "2021-01-11",
"count": 1
},
{
"date": "2021-01-20",
"count": 1
},
{
"date": "2021-02-16",
"count": 1
},
{
"date": "2021-03-01",
"count": 1
},
{
"date": "2021-03-02",
"count": 1
},
{
"date": "2021-03-08",
"count": 1
},
{
"date": "2021-03-15",
"count": 1
},
{
"date": "2021-03-19",
"count": 1
},
{
"date": "2021-03-31",
"count": 1
},
{
"date": "2021-04-14",
"count": 1
},
{
"date": "2021-04-20",
"count": 1
},
{
"date": "2021-04-21",
"count": 1
},
{
"date": "2021-04-22",
"count": 1
},
{
"date": "2021-05-14",
"count": 1
},
{
"date": "2021-05-27",
"count": 1
},
{
"date": "2021-06-20",
"count": 1
},
{
"date": "2021-07-25",
"count": 1
},
{
"date": "2021-07-28",
"count": 1
},
{
"date": "2021-08-11",
"count": 1
},
{
"date": "2021-08-14",
"count": 1
},
{
"date": "2021-08-30",
"count": 1
},
{
"date": "2021-09-06",
"count": 1
},
{
"date": "2021-09-08",
"count": 1
},
{
"date": "2021-09-11",
"count": 1
},
{
"date": "2021-09-13",
"count": 1
},
{
"date": "2021-09-16",
"count": 1
},
{
"date": "2021-10-04",
"count": 1
},
{
"date": "2021-10-11",
"count": 1
},
{
"date": "2021-10-27",
"count": 1
},
{
"date": "2021-11-12",
"count": 1
},
{
"date": "2021-11-16",
"count": 1
},
{
"date": "2021-11-28",
"count": 1
},
{
"date": "2021-12-14",
"count": 1
},
{
"date": "2021-12-16",
"count": 1
},
{
"date": "2021-12-25",
"count": 1
},
{
"date": "2022-01-04",
"count": 1
},
{
"date": "2022-01-06",
"count": 1
},
{
"date": "2022-01-09",
"count": 1
},
{
"date": "2022-01-13",
"count": 1
},
{
"date": "2022-01-15",
"count": 1
},
{
"date": "2022-01-16",
"count": 2
},
{
"date": "2022-01-19",
"count": 1
},
{
"date": "2022-01-24",
"count": 1
},
{
"date": "2022-02-10",
"count": 1
},
{
"date": "2022-02-21",
"count": 1
},
{
"date": "2022-03-04",
"count": 1
},
{
"date": "2022-03-14",
"count": 1
},
{
"date": "2022-03-22",
"count": 1
},
{
"date": "2022-04-06",
"count": 2
},
{
"date": "2022-04-07",
"count": 1
},
{
"date": "2022-04-15",
"count": 1
},
{
"date": "2022-04-20",
"count": 1
},
{
"date": "2022-05-02",
"count": 2
},
{
"date": "2022-05-25",
"count": 1
},
{
"date": "2022-06-27",
"count": 1
},
{
"date": "2022-09-01",
"count": 1
},
{
"date": "2022-09-14",
"count": 1
},
{
"date": "2022-09-16",
"count": 1
},
{
"date": "2022-09-25",
"count": 1
},
{
"date": "2022-10-02",
"count": 1
},
{
"date": "2022-10-08",
"count": 1
},
{
"date": "2022-10-10",
"count": 1
},
{
"date": "2022-10-12",
"count": 1
},
{
"date": "2022-10-13",
"count": 1
},
{
"date": "2022-10-15",
"count": 1
},
{
"date": "2022-10-18",
"count": 1
},
{
"date": "2022-10-30",
"count": 1
},
{
"date": "2022-11-10",
"count": 1
},
{
"date": "2022-11-12",
"count": 1
},
{
"date": "2022-11-18",
"count": 1
},
{
"date": "2022-11-25",
"count": 1
},
{
"date": "2022-12-10",
"count": 1
},
{
"date": "2022-12-19",
"count": 1
},
{
"date": "2022-12-30",
"count": 1
},
{
"date": "2023-01-01",
"count": 1
},
{
"date": "2023-01-09",
"count": 1
},
{
"date": "2023-02-04",
"count": 1
},
{
"date": "2023-02-12",
"count": 2
},
{
"date": "2023-02-19",
"count": 2
},
{
"date": "2023-03-08",
"count": 1
},
{
"date": "2023-03-23",
"count": 1
},
{
"date": "2023-03-24",
"count": 1
},
{
"date": "2023-03-25",
"count": 1
},
{
"date": "2023-03-30",
"count": 1
},
{
"date": "2023-04-01",
"count": 1
},
{
"date": "2023-04-07",
"count": 1
},
{
"date": "2023-04-14",
"count": 1
},
{
"date": "2023-05-08",
"count": 1
},
{
"date": "2023-05-20",
"count": 1
},
{
"date": "2023-06-01",
"count": 1
},
{
"date": "2023-06-03",
"count": 1
},
{
"date": "2023-06-15",
"count": 1
},
{
"date": "2023-06-28",
"count": 1
},
{
"date": "2023-07-11",
"count": 1
},
{
"date": "2023-07-25",
"count": 1
},
{
"date": "2023-07-26",
"count": 2
},
{
"date": "2023-07-30",
"count": 1
},
{
"date": "2023-09-02",
"count": 1
},
{
"date": "2023-09-09",
"count": 1
},
{
"date": "2023-09-19",
"count": 1
},
{
"date": "2023-09-30",
"count": 1
},
{
"date": "2023-10-09",
"count": 1
},
{
"date": "2023-10-20",
"count": 1
},
{
"date": "2023-11-08",
"count": 1
},
{
"date": "2023-11-19",
"count": 1
},
{
"date": "2023-12-03",
"count": 1
},
{
"date": "2023-12-06",
"count": 1
},
{
"date": "2023-12-10",
"count": 3
},
{
"date": "2023-12-14",
"count": 1
},
{
"date": "2023-12-19",
"count": 1
},
{
"date": "2023-12-23",
"count": 1
},
{
"date": "2024-01-06",
"count": 2
},
{
"date": "2024-01-20",
"count": 1
},
{
"date": "2024-01-21",
"count": 1
},
{
"date": "2024-02-29",
"count": 1
},
{
"date": "2024-03-19",
"count": 1
},
{
"date": "2024-04-07",
"count": 1
},
{
"date": "2024-04-11",
"count": 1
},
{
"date": "2024-05-18",
"count": 1
},
{
"date": "2024-05-21",
"count": 1
},
{
"date": "2024-06-09",
"count": 1
},
{
"date": "2024-06-20",
"count": 1
},
{
"date": "2024-07-06",
"count": 1
},
{
"date": "2024-07-23",
"count": 1
},
{
"date": "2024-08-02",
"count": 1
},
{
"date": "2024-08-04",
"count": 1
},
{
"date": "2024-08-14",
"count": 1
},
{
"date": "2024-08-19",
"count": 1
},
{
"date": "2024-08-22",
"count": 1
},
{
"date": "2024-10-19",
"count": 1
},
{
"date": "2024-10-27",
"count": 1
},
{
"date": "2024-11-07",
"count": 1
},
{
"date": "2024-12-12",
"count": 1
},
{
"date": "2024-12-15",
"count": 1
},
{
"date": "2025-01-05",
"count": 1
},
{
"date": "2025-01-06",
"count": 1
},
{
"date": "2025-01-19",
"count": 1
},
{
"date": "2025-01-29",
"count": 1
},
{
"date": "2025-02-19",
"count": 1
},
{
"date": "2025-02-26",
"count": 1
},
{
"date": "2025-03-22",
"count": 1
},
{
"date": "2025-04-13",
"count": 1
},
{
"date": "2025-04-15",
"count": 1
},
{
"date": "2025-04-30",
"count": 1
},
{
"date": "2025-05-31",
"count": 1
},
{
"date": "2025-07-08",
"count": 1
},
{
"date": "2025-07-09",
"count": 1
},
{
"date": "2025-07-21",
"count": 1
},
{
"date": "2025-07-23",
"count": 1
},
{
"date": "2025-07-24",
"count": 1
},
{
"date": "2025-08-02",
"count": 1
},
{
"date": "2025-10-08",
"count": 1
},
{
"date": "2025-10-31",
"count": 2
},
{
"date": "2025-11-22",
"count": 1
},
{
"date": "2025-11-23",
"count": 1
},
{
"date": "2025-12-03",
"count": 1
},
{
"date": "2025-12-05",
"count": 1
},
{
"date": "2025-12-09",
"count": 1
},
{
"date": "2025-12-12",
"count": 1
},
{
"date": "2025-12-28",
"count": 1
},
{
"date": "2026-01-30",
"count": 1
},
{
"date": "2026-02-13",
"count": 1
},
{
"date": "2026-03-03",
"count": 1
},
{
"date": "2026-03-15",
"count": 1
},
{
"date": "2026-03-30",
"count": 1
},
{
"date": "2026-04-18",
"count": 1
},
{
"date": "2026-04-29",
"count": 1
},
{
"date": "2026-05-20",
"count": 1
},
{
"date": "2026-06-01",
"count": 1
},
{
"date": "2026-07-18",
"count": 1
}
],
"complete": true,
"collected": 237,
"total_forks": 248
},
"star_history": {
"days": [
{
"date": "2019-05-28",
"count": 2
},
{
"date": "2019-06-06",
"count": 1
},
{
"date": "2019-06-08",
"count": 1
},
{
"date": "2019-06-10",
"count": 1
},
{
"date": "2019-06-12",
"count": 2
},
{
"date": "2019-06-20",
"count": 1
},
{
"date": "2019-06-21",
"count": 1
},
{
"date": "2019-07-23",
"count": 3
},
{
"date": "2019-07-25",
"count": 1
},
{
"date": "2019-07-29",
"count": 1
},
{
"date": "2019-08-09",
"count": 1
},
{
"date": "2019-08-11",
"count": 1
},
{
"date": "2019-08-12",
"count": 1
},
{
"date": "2019-08-19",
"count": 1
},
{
"date": "2019-08-23",
"count": 1
},
{
"date": "2019-09-05",
"count": 1
},
{
"date": "2019-09-09",
"count": 1
},
{
"date": "2019-09-12",
"count": 1
},
{
"date": "2019-09-17",
"count": 2
},
{
"date": "2019-09-21",
"count": 1
},
{
"date": "2019-10-07",
"count": 1
},
{
"date": "2019-10-15",
"count": 2
},
{
"date": "2019-10-28",
"count": 2
},
{
"date": "2019-11-03",
"count": 1
},
{
"date": "2019-11-14",
"count": 1
},
{
"date": "2019-11-15",
"count": 1
},
{
"date": "2019-11-16",
"count": 1
},
{
"date": "2019-12-02",
"count": 1
},
{
"date": "2019-12-13",
"count": 2
},
{
"date": "2019-12-20",
"count": 1
},
{
"date": "2020-01-10",
"count": 1
},
{
"date": "2020-01-14",
"count": 1
},
{
"date": "2020-01-31",
"count": 1
},
{
"date": "2020-02-01",
"count": 1
},
{
"date": "2020-02-02",
"count": 1
},
{
"date": "2020-02-05",
"count": 1
},
{
"date": "2020-02-06",
"count": 1
},
{
"date": "2020-02-08",
"count": 1
},
{
"date": "2020-02-12",
"count": 1
},
{
"date": "2020-02-17",
"count": 1
},
{
"date": "2020-02-19",
"count": 1
},
{
"date": "2020-02-20",
"count": 1
},
{
"date": "2020-02-27",
"count": 1
},
{
"date": "2020-03-01",
"count": 2
},
{
"date": "2020-03-02",
"count": 1
},
{
"date": "2020-03-05",
"count": 1
},
{
"date": "2020-03-13",
"count": 1
},
{
"date": "2020-03-17",
"count": 1
},
{
"date": "2020-03-18",
"count": 1
},
{
"date": "2020-03-25",
"count": 1
},
{
"date": "2020-03-27",
"count": 1
},
{
"date": "2020-04-02",
"count": 1
},
{
"date": "2020-04-05",
"count": 1
},
{
"date": "2020-04-06",
"count": 2
},
{
"date": "2020-04-17",
"count": 1
},
{
"date": "2020-04-20",
"count": 1
},
{
"date": "2020-04-23",
"count": 1
},
{
"date": "2020-04-28",
"count": 1
},
{
"date": "2020-05-08",
"count": 1
},
{
"date": "2020-05-09",
"count": 1
},
{
"date": "2020-05-11",
"count": 1
},
{
"date": "2020-05-27",
"count": 1
},
{
"date": "2020-05-29",
"count": 1
},
{
"date": "2020-06-02",
"count": 1
},
{
"date": "2020-06-04",
"count": 1
},
{
"date": "2020-06-15",
"count": 1
},
{
"date": "2020-06-22",
"count": 1
},
{
"date": "2020-06-29",
"count": 1
},
{
"date": "2020-07-01",
"count": 2
},
{
"date": "2020-07-07",
"count": 1
},
{
"date": "2020-07-16",
"count": 1
},
{
"date": "2020-07-28",
"count": 1
},
{
"date": "2020-07-29",
"count": 1
},
{
"date": "2020-08-11",
"count": 1
},
{
"date": "2020-08-17",
"count": 1
},
{
"date": "2020-08-22",
"count": 1
},
{
"date": "2020-08-25",
"count": 2
},
{
"date": "2020-09-08",
"count": 1
},
{
"date": "2020-09-10",
"count": 1
},
{
"date": "2020-09-11",
"count": 2
},
{
"date": "2020-09-12",
"count": 1
},
{
"date": "2020-09-14",
"count": 1
},
{
"date": "2020-09-28",
"count": 1
},
{
"date": "2020-10-01",
"count": 1
},
{
"date": "2020-10-05",
"count": 1
},
{
"date": "2020-10-16",
"count": 1
},
{
"date": "2020-10-22",
"count": 2
},
{
"date": "2020-10-31",
"count": 1
},
{
"date": "2020-11-04",
"count": 1
},
{
"date": "2020-11-07",
"count": 1
},
{
"date": "2020-11-12",
"count": 1
},
{
"date": "2020-11-13",
"count": 1
},
{
"date": "2020-11-30",
"count": 1
},
{
"date": "2020-12-04",
"count": 1
},
{
"date": "2020-12-09",
"count": 2
},
{
"date": "2020-12-21",
"count": 1
},
{
"date": "2020-12-22",
"count": 1
},
{
"date": "2020-12-23",
"count": 2
},
{
"date": "2020-12-24",
"count": 3
},
{
"date": "2020-12-27",
"count": 1
},
{
"date": "2020-12-30",
"count": 1
},
{
"date": "2021-01-03",
"count": 3
},
{
"date": "2021-01-04",
"count": 2
},
{
"date": "2021-01-05",
"count": 1
},
{
"date": "2021-01-06",
"count": 1
},
{
"date": "2021-01-13",
"count": 2
},
{
"date": "2021-01-14",
"count": 1
},
{
"date": "2021-01-21",
"count": 2
},
{
"date": "2021-01-30",
"count": 1
},
{
"date": "2021-01-31",
"count": 1
},
{
"date": "2021-02-01",
"count": 1
},
{
"date": "2021-02-07",
"count": 1
},
{
"date": "2021-02-16",
"count": 3
},
{
"date": "2021-02-19",
"count": 1
},
{
"date": "2021-03-04",
"count": 1
},
{
"date": "2021-03-08",
"count": 1
},
{
"date": "2021-03-10",
"count": 1
},
{
"date": "2021-03-15",
"count": 1
},
{
"date": "2021-03-23",
"count": 1
},
{
"date": "2021-03-24",
"count": 1
},
{
"date": "2021-04-06",
"count": 1
},
{
"date": "2021-04-08",
"count": 1
},
{
"date": "2021-04-17",
"count": 1
},
{
"date": "2021-04-22",
"count": 1
},
{
"date": "2021-04-24",
"count": 1
},
{
"date": "2021-04-27",
"count": 1
},
{
"date": "2021-05-01",
"count": 1
},
{
"date": "2021-05-05",
"count": 1
},
{
"date": "2021-05-12",
"count": 1
},
{
"date": "2021-05-20",
"count": 1
},
{
"date": "2021-05-21",
"count": 1
},
{
"date": "2021-05-25",
"count": 1
},
{
"date": "2021-05-27",
"count": 1
},
{
"date": "2021-06-04",
"count": 2
},
{
"date": "2021-06-05",
"count": 1
},
{
"date": "2021-06-19",
"count": 1
},
{
"date": "2021-06-22",
"count": 1
},
{
"date": "2021-06-26",
"count": 1
},
{
"date": "2021-06-28",
"count": 1
},
{
"date": "2021-06-30",
"count": 1
},
{
"date": "2021-07-01",
"count": 1
},
{
"date": "2021-07-10",
"count": 1
},
{
"date": "2021-07-17",
"count": 1
},
{
"date": "2021-07-28",
"count": 2
},
{
"date": "2021-07-29",
"count": 1
},
{
"date": "2021-08-04",
"count": 1
},
{
"date": "2021-08-08",
"count": 1
},
{
"date": "2021-08-18",
"count": 1
},
{
"date": "2021-08-22",
"count": 1
},
{
"date": "2021-08-27",
"count": 1
},
{
"date": "2021-08-28",
"count": 1
},
{
"date": "2021-08-31",
"count": 1
},
{
"date": "2021-09-03",
"count": 1
},
{
"date": "2021-09-06",
"count": 2
},
{
"date": "2021-09-09",
"count": 1
},
{
"date": "2021-09-13",
"count": 1
},
{
"date": "2021-09-14",
"count": 2
},
{
"date": "2021-09-16",
"count": 3
},
{
"date": "2021-10-02",
"count": 2
},
{
"date": "2021-10-07",
"count": 1
},
{
"date": "2021-10-08",
"count": 1
},
{
"date": "2021-10-12",
"count": 2
},
{
"date": "2021-10-14",
"count": 1
},
{
"date": "2021-10-15",
"count": 1
},
{
"date": "2021-10-18",
"count": 1
},
{
"date": "2021-10-19",
"count": 1
},
{
"date": "2021-10-20",
"count": 1
},
{
"date": "2021-10-23",
"count": 2
},
{
"date": "2021-10-28",
"count": 2
},
{
"date": "2021-10-29",
"count": 1
},
{
"date": "2021-11-01",
"count": 1
},
{
"date": "2021-11-02",
"count": 1
},
{
"date": "2021-11-06",
"count": 1
},
{
"date": "2021-11-08",
"count": 1
},
{
"date": "2021-11-11",
"count": 2
},
{
"date": "2021-11-15",
"count": 2
},
{
"date": "2021-11-16",
"count": 2
},
{
"date": "2021-11-17",
"count": 1
},
{
"date": "2021-11-19",
"count": 1
},
{
"date": "2021-11-22",
"count": 1
},
{
"date": "2021-11-27",
"count": 1
},
{
"date": "2021-11-30",
"count": 1
},
{
"date": "2021-12-07",
"count": 1
},
{
"date": "2021-12-09",
"count": 1
},
{
"date": "2021-12-10",
"count": 1
},
{
"date": "2021-12-15",
"count": 1
},
{
"date": "2021-12-16",
"count": 1
},
{
"date": "2021-12-18",
"count": 1
},
{
"date": "2021-12-19",
"count": 2
},
{
"date": "2021-12-25",
"count": 1
},
{
"date": "2021-12-27",
"count": 1
},
{
"date": "2021-12-28",
"count": 1
},
{
"date": "2021-12-30",
"count": 3
},
{
"date": "2022-01-01",
"count": 1
},
{
"date": "2022-01-03",
"count": 1
},
{
"date": "2022-01-04",
"count": 1
},
{
"date": "2022-01-08",
"count": 2
},
{
"date": "2022-01-09",
"count": 1
},
{
"date": "2022-01-11",
"count": 2
},
{
"date": "2022-01-12",
"count": 1
},
{
"date": "2022-01-24",
"count": 1
},
{
"date": "2022-01-25",
"count": 2
},
{
"date": "2022-01-27",
"count": 1
},
{
"date": "2022-01-28",
"count": 1
},
{
"date": "2022-01-30",
"count": 1
},
{
"date": "2022-02-02",
"count": 1
},
{
"date": "2022-02-05",
"count": 1
},
{
"date": "2022-02-12",
"count": 1
},
{
"date": "2022-02-14",
"count": 1
},
{
"date": "2022-02-15",
"count": 1
},
{
"date": "2022-02-17",
"count": 1
},
{
"date": "2022-02-19",
"count": 1
},
{
"date": "2022-02-20",
"count": 1
},
{
"date": "2022-02-21",
"count": 1
},
{
"date": "2022-02-22",
"count": 1
},
{
"date": "2022-02-23",
"count": 1
},
{
"date": "2022-03-03",
"count": 1
},
{
"date": "2022-03-04",
"count": 1
},
{
"date": "2022-03-07",
"count": 1
},
{
"date": "2022-03-13",
"count": 1
},
{
"date": "2022-03-14",
"count": 1
},
{
"date": "2022-03-22",
"count": 1
},
{
"date": "2022-04-04",
"count": 2
},
{
"date": "2022-04-11",
"count": 1
},
{
"date": "2022-04-12",
"count": 1
},
{
"date": "2022-04-14",
"count": 1
},
{
"date": "2022-04-15",
"count": 1
},
{
"date": "2022-04-18",
"count": 1
},
{
"date": "2022-04-19",
"count": 1
},
{
"date": "2022-04-22",
"count": 1
},
{
"date": "2022-04-28",
"count": 5
},
{
"date": "2022-04-29",
"count": 2
},
{
"date": "2022-05-04",
"count": 2
},
{
"date": "2022-05-06",
"count": 1
},
{
"date": "2022-05-09",
"count": 1
},
{
"date": "2022-05-21",
"count": 1
},
{
"date": "2022-05-30",
"count": 1
},
{
"date": "2022-06-02",
"count": 1
},
{
"date": "2022-06-03",
"count": 1
},
{
"date": "2022-06-09",
"count": 1
},
{
"date": "2022-06-12",
"count": 1
},
{
"date": "2022-06-13",
"count": 1
},
{
"date": "2022-06-18",
"count": 1
},
{
"date": "2022-06-25",
"count": 2
},
{
"date": "2022-06-29",
"count": 1
},
{
"date": "2022-07-27",
"count": 2
},
{
"date": "2022-07-31",
"count": 1
},
{
"date": "2022-08-09",
"count": 1
},
{
"date": "2022-08-14",
"count": 1
},
{
"date": "2022-08-18",
"count": 1
},
{
"date": "2022-09-09",
"count": 1
},
{
"date": "2022-09-13",
"count": 1
},
{
"date": "2022-09-16",
"count": 1
},
{
"date": "2022-09-25",
"count": 1
},
{
"date": "2022-10-11",
"count": 1
},
{
"date": "2022-10-12",
"count": 1
},
{
"date": "2022-10-13",
"count": 2
},
{
"date": "2022-10-21",
"count": 1
},
{
"date": "2022-10-30",
"count": 1
},
{
"date": "2022-11-04",
"count": 1
},
{
"date": "2022-11-08",
"count": 1
},
{
"date": "2022-11-10",
"count": 1
},
{
"date": "2022-11-15",
"count": 1
},
{
"date": "2022-11-19",
"count": 1
},
{
"date": "2022-12-02",
"count": 1
},
{
"date": "2022-12-05",
"count": 1
},
{
"date": "2022-12-19",
"count": 2
},
{
"date": "2022-12-26",
"count": 1
},
{
"date": "2023-01-05",
"count": 1
},
{
"date": "2023-01-08",
"count": 1
},
{
"date": "2023-01-09",
"count": 1
},
{
"date": "2023-01-14",
"count": 1
},
{
"date": "2023-01-31",
"count": 1
},
{
"date": "2023-02-04",
"count": 2
},
{
"date": "2023-02-05",
"count": 1
},
{
"date": "2023-02-10",
"count": 1
},
{
"date": "2023-02-15",
"count": 1
},
{
"date": "2023-02-17",
"count": 1
},
{
"date": "2023-02-18",
"count": 1
},
{
"date": "2023-02-20",
"count": 1
},
{
"date": "2023-02-24",
"count": 1
},
{
"date": "2023-02-25",
"count": 1
},
{
"date": "2023-02-28",
"count": 1
},
{
"date": "2023-03-03",
"count": 1
},
{
"date": "2023-03-24",
"count": 2
},
{
"date": "2023-04-02",
"count": 1
},
{
"date": "2023-04-19",
"count": 1
},
{
"date": "2023-05-23",
"count": 1
},
{
"date": "2023-06-16",
"count": 1
},
{
"date": "2023-06-19",
"count": 1
},
{
"date": "2023-06-20",
"count": 1
},
{
"date": "2023-06-21",
"count": 1
},
{
"date": "2023-06-23",
"count": 1
},
{
"date": "2023-07-02",
"count": 1
},
{
"date": "2023-07-05",
"count": 1
},
{
"date": "2023-07-06",
"count": 1
},
{
"date": "2023-07-14",
"count": 1
},
{
"date": "2023-07-15",
"count": 1
},
{
"date": "2023-07-25",
"count": 1
},
{
"date": "2023-07-29",
"count": 1
},
{
"date": "2023-07-31",
"count": 1
},
{
"date": "2023-08-28",
"count": 1
},
{
"date": "2023-08-30",
"count": 1
},
{
"date": "2023-09-01",
"count": 1
},
{
"date": "2023-09-07",
"count": 1
},
{
"date": "2023-09-09",
"count": 1
},
{
"date": "2023-09-17",
"count": 1
},
{
"date": "2023-09-30",
"count": 1
},
{
"date": "2023-10-03",
"count": 1
},
{
"date": "2023-10-13",
"count": 1
},
{
"date": "2023-10-25",
"count": 1
},
{
"date": "2023-11-02",
"count": 1
},
{
"date": "2023-11-06",
"count": 1
},
{
"date": "2023-11-07",
"count": 1
},
{
"date": "2023-11-09",
"count": 1
},
{
"date": "2023-11-15",
"count": 1
},
{
"date": "2023-11-17",
"count": 1
},
{
"date": "2023-11-19",
"count": 1
},
{
"date": "2023-11-22",
"count": 1
},
{
"date": "2023-11-27",
"count": 1
},
{
"date": "2023-11-28",
"count": 1
},
{
"date": "2023-11-29",
"count": 1
},
{
"date": "2023-12-02",
"count": 1
},
{
"date": "2023-12-05",
"count": 1
},
{
"date": "2023-12-09",
"count": 1
},
{
"date": "2023-12-11",
"count": 1
},
{
"date": "2023-12-24",
"count": 1
},
{
"date": "2023-12-26",
"count": 1
},
{
"date": "2023-12-27",
"count": 1
},
{
"date": "2023-12-28",
"count": 1
},
{
"date": "2024-01-02",
"count": 1
},
{
"date": "2024-01-03",
"count": 1
},
{
"date": "2024-01-06",
"count": 1
},
{
"date": "2024-01-21",
"count": 1
},
{
"date": "2024-01-25",
"count": 1
},
{
"date": "2024-01-26",
"count": 1
},
{
"date": "2024-01-28",
"count": 2
},
{
"date": "2024-01-30",
"count": 1
},
{
"date": "2024-01-31",
"count": 1
},
{
"date": "2024-02-01",
"count": 1
},
{
"date": "2024-02-02",
"count": 1
},
{
"date": "2024-02-12",
"count": 1
},
{
"date": "2024-02-18",
"count": 1
},
{
"date": "2024-02-26",
"count": 1
},
{
"date": "2024-03-06",
"count": 1
},
{
"date": "2024-03-11",
"count": 1
},
{
"date": "2024-03-13",
"count": 1
},
{
"date": "2024-03-17",
"count": 1
},
{
"date": "2024-03-23",
"count": 3
},
{
"date": "2024-03-31",
"count": 1
},
{
"date": "2024-04-01",
"count": 1
},
{
"date": "2024-04-02",
"count": 1
},
{
"date": "2024-04-07",
"count": 1
},
{
"date": "2024-04-09",
"count": 1
},
{
"date": "2024-04-14",
"count": 1
},
{
"date": "2024-04-27",
"count": 1
},
{
"date": "2024-05-12",
"count": 1
},
{
"date": "2024-05-17",
"count": 1
},
{
"date": "2024-05-19",
"count": 1
},
{
"date": "2024-05-21",
"count": 1
},
{
"date": "2024-06-11",
"count": 1
},
{
"date": "2024-06-20",
"count": 1
},
{
"date": "2024-06-28",
"count": 1
},
{
"date": "2024-07-05",
"count": 1
},
{
"date": "2024-07-11",
"count": 1
},
{
"date": "2024-07-23",
"count": 1
},
{
"date": "2024-07-30",
"count": 1
},
{
"date": "2024-08-19",
"count": 1
},
{
"date": "2024-08-22",
"count": 1
},
{
"date": "2024-08-28",
"count": 2
},
{
"date": "2024-09-19",
"count": 1
},
{
"date": "2024-09-22",
"count": 1
},
{
"date": "2024-09-24",
"count": 2
},
{
"date": "2024-10-02",
"count": 1
},
{
"date": "2024-10-04",
"count": 1
},
{
"date": "2024-10-07",
"count": 1
},
{
"date": "2024-10-14",
"count": 1
},
{
"date": "2024-10-15",
"count": 1
},
{
"date": "2024-10-22",
"count": 1
},
{
"date": "2024-10-27",
"count": 1
},
{
"date": "2024-10-29",
"count": 1
},
{
"date": "2024-11-07",
"count": 1
},
{
"date": "2024-11-14",
"count": 1
},
{
"date": "2024-11-20",
"count": 1
},
{
"date": "2024-12-11",
"count": 1
},
{
"date": "2024-12-21",
"count": 1
},
{
"date": "2025-01-04",
"count": 1
},
{
"date": "2025-01-12",
"count": 1
},
{
"date": "2025-01-29",
"count": 1
},
{
"date": "2025-03-12",
"count": 1
},
{
"date": "2025-03-23",
"count": 1
},
{
"date": "2025-03-26",
"count": 1
},
{
"date": "2025-03-31",
"count": 1
},
{
"date": "2025-04-09",
"count": 2
},
{
"date": "2025-04-12",
"count": 1
},
{
"date": "2025-04-14",
"count": 1
},
{
"date": "2025-04-18",
"count": 1
},
{
"date": "2025-04-19",
"count": 1
},
{
"date": "2025-04-25",
"count": 2
},
{
"date": "2025-04-26",
"count": 1
},
{
"date": "2025-05-03",
"count": 1
},
{
"date": "2025-05-04",
"count": 1
},
{
"date": "2025-05-10",
"count": 1
},
{
"date": "2025-05-14",
"count": 1
},
{
"date": "2025-05-18",
"count": 1
},
{
"date": "2025-05-31",
"count": 2
},
{
"date": "2025-06-01",
"count": 1
},
{
"date": "2025-06-04",
"count": 1
},
{
"date": "2025-06-06",
"count": 1
},
{
"date": "2025-06-22",
"count": 1
},
{
"date": "2025-07-04",
"count": 1
},
{
"date": "2025-07-19",
"count": 1
},
{
"date": "2025-07-28",
"count": 1
},
{
"date": "2025-08-02",
"count": 1
},
{
"date": "2025-08-06",
"count": 1
},
{
"date": "2025-08-11",
"count": 2
},
{
"date": "2025-08-15",
"count": 1
},
{
"date": "2025-08-27",
"count": 1
},
{
"date": "2025-09-05",
"count": 1
},
{
"date": "2025-09-16",
"count": 1
},
{
"date": "2025-09-19",
"count": 1
},
{
"date": "2025-09-21",
"count": 1
},
{
"date": "2025-10-03",
"count": 2
},
{
"date": "2025-10-08",
"count": 1
},
{
"date": "2025-10-18",
"count": 1
},
{
"date": "2025-10-27",
"count": 1
},
{
"date": "2025-10-28",
"count": 1
},
{
"date": "2025-11-02",
"count": 1
},
{
"date": "2025-11-07",
"count": 1
},
{
"date": "2025-11-10",
"count": 1
},
{
"date": "2025-11-13",
"count": 1
},
{
"date": "2025-11-22",
"count": 1
},
{
"date": "2025-12-06",
"count": 1
},
{
"date": "2025-12-08",
"count": 1
},
{
"date": "2025-12-09",
"count": 1
},
{
"date": "2025-12-20",
"count": 1
},
{
"date": "2025-12-23",
"count": 1
},
{
"date": "2025-12-25",
"count": 1
},
{
"date": "2025-12-28",
"count": 1
},
{
"date": "2026-01-11",
"count": 1
},
{
"date": "2026-01-18",
"count": 1
},
{
"date": "2026-01-31",
"count": 1
},
{
"date": "2026-02-04",
"count": 1
},
{
"date": "2026-02-17",
"count": 1
},
{
"date": "2026-02-19",
"count": 1
},
{
"date": "2026-02-21",
"count": 1
},
{
"date": "2026-03-14",
"count": 1
},
{
"date": "2026-03-15",
"count": 1
},
{
"date": "2026-03-16",
"count": 2
},
{
"date": "2026-03-28",
"count": 1
},
{
"date": "2026-03-31",
"count": 1
},
{
"date": "2026-04-02",
"count": 1
},
{
"date": "2026-04-13",
"count": 1
},
{
"date": "2026-04-14",
"count": 1
},
{
"date": "2026-04-15",
"count": 1
},
{
"date": "2026-04-18",
"count": 1
},
{
"date": "2026-04-29",
"count": 1
},
{
"date": "2026-05-06",
"count": 1
},
{
"date": "2026-05-08",
"count": 1
},
{
"date": "2026-05-18",
"count": 1
},
{
"date": "2026-05-20",
"count": 1
},
{
"date": "2026-05-25",
"count": 2
},
{
"date": "2026-05-29",
"count": 1
},
{
"date": "2026-06-22",
"count": 1
},
{
"date": "2026-06-23",
"count": 1
},
{
"date": "2026-07-20",
"count": 1
}
],
"complete": true,
"collected": 535,
"total_stars": 535
},
"open_issues_and_prs": 5
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [
"Makefile"
],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"client/tsconfig.json"
],
"toolchain_manifests": [],
"largest_source_bytes": 8860,
"source_files_sampled": 81,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"client/package.json",
"package.json",
"server/package.json"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "axios",
"direct": true,
"version": "1.16.1",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 8.2,
"advisory_ids": [
"GHSA-42h9-826w-cgv3",
"GHSA-7q8q-rj6j-mhjq",
"GHSA-f4gw-2p7v-4548",
"GHSA-gcfj-64vw-6mp9",
"GHSA-hcpx-6fm6-wx23",
"GHSA-jqh4-m9w3-8hp9",
"GHSA-mmx7-hfxf-jppx",
"GHSA-mwf2-3pr3-8698",
"GHSA-pmv8-rq9r-6j72",
"GHSA-xj6q-8x83-jv6g"
],
"fixed_version": "1.18.0",
"advisory_count": 10,
"oldest_advisory_days": 1
},
{
"name": "brace-expansion",
"direct": false,
"version": "1.1.14",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-3jxr-9vmj-r5cp"
],
"fixed_version": "5.0.7",
"advisory_count": 1,
"oldest_advisory_days": 0
},
{
"name": "brace-expansion",
"direct": false,
"version": "5.0.6",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-3jxr-9vmj-r5cp"
],
"fixed_version": "5.0.7",
"advisory_count": 1,
"oldest_advisory_days": 0
},
{
"name": "immutable",
"direct": false,
"version": "5.1.5",
"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": 0
},
{
"name": "body-parser",
"direct": false,
"version": "1.20.5",
"severity": "low",
"ecosystem": "npm",
"cvss_score": 3.7,
"advisory_ids": [
"GHSA-v422-hmwv-36x6"
],
"fixed_version": "2.3.0",
"advisory_count": 1,
"oldest_advisory_days": 0
}
],
"collected": true,
"truncated": false,
"by_severity": {
"low": 1,
"high": 4
},
"advisory_count": 15,
"affected_count": 5,
"assessed_count": 525,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 1
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "@tailwindcss/vite",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^4.2.2"
},
{
"name": "@types/react",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^18.3.1"
},
{
"name": "@types/react-dom",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^18.3.1"
},
{
"name": "axios",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^1.13.5"
},
{
"name": "date-fns",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^4.1.0"
},
{
"name": "immer",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^11.1.4"
},
{
"name": "lodash",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^4.18.1"
},
{
"name": "plaid",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^42.1.0"
},
{
"name": "prop-types",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^15.8.1"
},
{
"name": "react",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^18.3.1"
},
{
"name": "react-dom",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^18.3.1"
},
{
"name": "react-plaid-link",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^4.1.1"
},
{
"name": "react-router-dom",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^6.30.3"
},
{
"name": "react-router-hash-link",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^2.4.3"
},
{
"name": "react-toastify",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^11.1.0"
},
{
"name": "recharts",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^3.8.1"
},
{
"name": "sass",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^1.97.3"
},
{
"name": "socket.io-client",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^4.8.3"
},
{
"name": "tailwindcss",
"manifest": "client/package.json",
"ecosystem": "npm",
"version_constraint": "^4.2.2"
},
{
"name": "@hapi/boom",
"manifest": "server/package.json",
"ecosystem": "npm",
"version_constraint": "^10.0.1"
},
{
"name": "cookie-parser",
"manifest": "server/package.json",
"ecosystem": "npm",
"version_constraint": "~1.4.7"
},
{
"name": "debug",
"manifest": "server/package.json",
"ecosystem": "npm",
"version_constraint": "~4.4.3"
},
{
"name": "dotenv",
"manifest": "server/package.json",
"ecosystem": "npm",
"version_constraint": "^17.4.2"
},
{
"name": "express",
"manifest": "server/package.json",
"ecosystem": "npm",
"version_constraint": "^4.22.1"
},
{
"name": "express-promise-router",
"manifest": "server/package.json",
"ecosystem": "npm",
"version_constraint": "^4.1.1"
},
{
"name": "lodash",
"manifest": "server/package.json",
"ecosystem": "npm",
"version_constraint": "^4.17.23"
},
{
"name": "morgan",
"manifest": "server/package.json",
"ecosystem": "npm",
"version_constraint": "~1.11.0"
},
{
"name": "pg",
"manifest": "server/package.json",
"ecosystem": "npm",
"version_constraint": "^8.18.0"
},
{
"name": "plaid",
"manifest": "server/package.json",
"ecosystem": "npm",
"version_constraint": "^42.1.0"
},
{
"name": "socket.io",
"manifest": "server/package.json",
"ecosystem": "npm",
"version_constraint": "^4.8.3"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "@hapi/boom",
"direct": true,
"version": "10.0.1",
"ecosystem": "npm"
},
{
"name": "@tailwindcss/vite",
"direct": true,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "@types/react",
"direct": true,
"version": "18.3.29",
"ecosystem": "npm"
},
{
"name": "@types/react-dom",
"direct": true,
"version": "18.3.7",
"ecosystem": "npm"
},
{
"name": "axios",
"direct": true,
"version": "1.16.1",
"ecosystem": "npm"
},
{
"name": "cookie-parser",
"direct": true,
"version": "1.4.7",
"ecosystem": "npm"
},
{
"name": "date-fns",
"direct": true,
"version": "4.2.1",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": true,
"version": "2.6.9",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": true,
"version": "3.2.7",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": true,
"version": "4.4.3",
"ecosystem": "npm"
},
{
"name": "dotenv",
"direct": true,
"version": "17.4.2",
"ecosystem": "npm"
},
{
"name": "express",
"direct": true,
"version": "4.22.2",
"ecosystem": "npm"
},
{
"name": "express-promise-router",
"direct": true,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "immer",
"direct": true,
"version": "10.2.0",
"ecosystem": "npm"
},
{
"name": "immer",
"direct": true,
"version": "11.1.8",
"ecosystem": "npm"
},
{
"name": "lodash",
"direct": true,
"version": "4.18.1",
"ecosystem": "npm"
},
{
"name": "morgan",
"direct": true,
"version": "1.11.0",
"ecosystem": "npm"
},
{
"name": "pg",
"direct": true,
"version": "8.21.0",
"ecosystem": "npm"
},
{
"name": "plaid",
"direct": true,
"version": "42.2.0",
"ecosystem": "npm"
},
{
"name": "prop-types",
"direct": true,
"version": "15.8.1",
"ecosystem": "npm"
},
{
"name": "react",
"direct": true,
"version": "18.3.1",
"ecosystem": "npm"
},
{
"name": "react-dom",
"direct": true,
"version": "18.3.1",
"ecosystem": "npm"
},
{
"name": "react-plaid-link",
"direct": true,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "react-router-dom",
"direct": true,
"version": "6.30.4",
"ecosystem": "npm"
},
{
"name": "react-router-hash-link",
"direct": true,
"version": "2.4.3",
"ecosystem": "npm"
},
{
"name": "react-toastify",
"direct": true,
"version": "11.1.0",
"ecosystem": "npm"
},
{
"name": "recharts",
"direct": true,
"version": "3.8.1",
"ecosystem": "npm"
},
{
"name": "sass",
"direct": true,
"version": "1.99.0",
"ecosystem": "npm"
},
{
"name": "socket.io",
"direct": true,
"version": "4.8.3",
"ecosystem": "npm"
},
{
"name": "socket.io-client",
"direct": true,
"version": "4.8.3",
"ecosystem": "npm"
},
{
"name": "tailwindcss",
"direct": true,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "@emnapi/core",
"direct": false,
"version": "1.11.1",
"ecosystem": "npm"
},
{
"name": "@emnapi/runtime",
"direct": false,
"version": "1.11.1",
"ecosystem": "npm"
},
{
"name": "@emnapi/wasi-threads",
"direct": false,
"version": "1.2.2",
"ecosystem": "npm"
},
{
"name": "@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/config-array",
"direct": false,
"version": "0.21.2",
"ecosystem": "npm"
},
{
"name": "@eslint/config-helpers",
"direct": false,
"version": "0.4.2",
"ecosystem": "npm"
},
{
"name": "@eslint/core",
"direct": false,
"version": "0.17.0",
"ecosystem": "npm"
},
{
"name": "@eslint/eslintrc",
"direct": false,
"version": "2.1.4",
"ecosystem": "npm"
},
{
"name": "@eslint/eslintrc",
"direct": false,
"version": "3.3.5",
"ecosystem": "npm"
},
{
"name": "@eslint/js",
"direct": false,
"version": "8.57.1",
"ecosystem": "npm"
},
{
"name": "@eslint/js",
"direct": false,
"version": "9.39.4",
"ecosystem": "npm"
},
{
"name": "@eslint/object-schema",
"direct": false,
"version": "2.1.7",
"ecosystem": "npm"
},
{
"name": "@eslint/plugin-kit",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "@hapi/hoek",
"direct": false,
"version": "11.0.7",
"ecosystem": "npm"
},
{
"name": "@humanfs/core",
"direct": false,
"version": "0.19.2",
"ecosystem": "npm"
},
{
"name": "@humanfs/node",
"direct": false,
"version": "0.16.8",
"ecosystem": "npm"
},
{
"name": "@humanfs/types",
"direct": false,
"version": "0.15.0",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/config-array",
"direct": false,
"version": "0.13.0",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/module-importer",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/object-schema",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/retry",
"direct": false,
"version": "0.4.3",
"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/sourcemap-codec",
"direct": false,
"version": "1.5.5",
"ecosystem": "npm"
},
{
"name": "@jridgewell/trace-mapping",
"direct": false,
"version": "0.3.31",
"ecosystem": "npm"
},
{
"name": "@napi-rs/wasm-runtime",
"direct": false,
"version": "1.1.6",
"ecosystem": "npm"
},
{
"name": "@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": "@oxc-project/types",
"direct": false,
"version": "0.139.0",
"ecosystem": "npm"
},
{
"name": "@parcel/watcher",
"direct": false,
"version": "2.5.6",
"ecosystem": "npm"
},
{
"name": "@parcel/watcher-android-arm64",
"direct": false,
"version": "2.5.6",
"ecosystem": "npm"
},
{
"name": "@parcel/watcher-darwin-arm64",
"direct": false,
"version": "2.5.6",
"ecosystem": "npm"
},
{
"name": "@parcel/watcher-darwin-x64",
"direct": false,
"version": "2.5.6",
"ecosystem": "npm"
},
{
"name": "@parcel/watcher-freebsd-x64",
"direct": false,
"version": "2.5.6",
"ecosystem": "npm"
},
{
"name": "@parcel/watcher-linux-arm-glibc",
"direct": false,
"version": "2.5.6",
"ecosystem": "npm"
},
{
"name": "@parcel/watcher-linux-arm-musl",
"direct": false,
"version": "2.5.6",
"ecosystem": "npm"
},
{
"name": "@parcel/watcher-linux-arm64-glibc",
"direct": false,
"version": "2.5.6",
"ecosystem": "npm"
},
{
"name": "@parcel/watcher-linux-arm64-musl",
"direct": false,
"version": "2.5.6",
"ecosystem": "npm"
},
{
"name": "@parcel/watcher-linux-x64-glibc",
"direct": false,
"version": "2.5.6",
"ecosystem": "npm"
},
{
"name": "@parcel/watcher-linux-x64-musl",
"direct": false,
"version": "2.5.6",
"ecosystem": "npm"
},
{
"name": "@parcel/watcher-win32-arm64",
"direct": false,
"version": "2.5.6",
"ecosystem": "npm"
},
{
"name": "@parcel/watcher-win32-ia32",
"direct": false,
"version": "2.5.6",
"ecosystem": "npm"
},
{
"name": "@parcel/watcher-win32-x64",
"direct": false,
"version": "2.5.6",
"ecosystem": "npm"
},
{
"name": "@pkgr/core",
"direct": false,
"version": "0.2.9",
"ecosystem": "npm"
},
{
"name": "@reduxjs/toolkit",
"direct": false,
"version": "2.12.0",
"ecosystem": "npm"
},
{
"name": "@remix-run/router",
"direct": false,
"version": "1.23.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-android-arm64",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-darwin-arm64",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-darwin-x64",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-freebsd-x64",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-arm-gnueabihf",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-arm64-gnu",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-arm64-musl",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-ppc64-gnu",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-s390x-gnu",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-x64-gnu",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-x64-musl",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-openharmony-arm64",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-wasm32-wasi",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-win32-arm64-msvc",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-win32-x64-msvc",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "@rolldown/pluginutils",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "@rtsao/scc",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "@socket.io/component-emitter",
"direct": false,
"version": "3.1.2",
"ecosystem": "npm"
},
{
"name": "@standard-schema/spec",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "@standard-schema/utils",
"direct": false,
"version": "0.3.0",
"ecosystem": "npm"
},
{
"name": "@tailwindcss/node",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "@tailwindcss/oxide",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "@tailwindcss/oxide-android-arm64",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "@tailwindcss/oxide-darwin-arm64",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "@tailwindcss/oxide-darwin-x64",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "@tailwindcss/oxide-freebsd-x64",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "@tailwindcss/oxide-linux-arm-gnueabihf",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "@tailwindcss/oxide-linux-arm64-gnu",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "@tailwindcss/oxide-linux-arm64-musl",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "@tailwindcss/oxide-linux-x64-gnu",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "@tailwindcss/oxide-linux-x64-musl",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "@tailwindcss/oxide-wasm32-wasi",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "@tailwindcss/oxide-win32-arm64-msvc",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "@tailwindcss/oxide-win32-x64-msvc",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "@tybys/wasm-util",
"direct": false,
"version": "0.10.3",
"ecosystem": "npm"
},
{
"name": "@types/cors",
"direct": false,
"version": "2.8.19",
"ecosystem": "npm"
},
{
"name": "@types/d3-array",
"direct": false,
"version": "3.2.2",
"ecosystem": "npm"
},
{
"name": "@types/d3-color",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "@types/d3-ease",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "@types/d3-interpolate",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "@types/d3-path",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "@types/d3-scale",
"direct": false,
"version": "4.0.9",
"ecosystem": "npm"
},
{
"name": "@types/d3-shape",
"direct": false,
"version": "3.1.8",
"ecosystem": "npm"
},
{
"name": "@types/d3-time",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "@types/d3-timer",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "@types/estree",
"direct": false,
"version": "1.0.9",
"ecosystem": "npm"
},
{
"name": "@types/history",
"direct": false,
"version": "4.7.11",
"ecosystem": "npm"
},
{
"name": "@types/json-schema",
"direct": false,
"version": "7.0.15",
"ecosystem": "npm"
},
{
"name": "@types/json5",
"direct": false,
"version": "0.0.29",
"ecosystem": "npm"
},
{
"name": "@types/lodash",
"direct": false,
"version": "4.17.24",
"ecosystem": "npm"
},
{
"name": "@types/node",
"direct": false,
"version": "25.9.1",
"ecosystem": "npm"
},
{
"name": "@types/prop-types",
"direct": false,
"version": "15.7.15",
"ecosystem": "npm"
},
{
"name": "@types/react-router",
"direct": false,
"version": "5.1.20",
"ecosystem": "npm"
},
{
"name": "@types/react-router-dom",
"direct": false,
"version": "5.3.3",
"ecosystem": "npm"
},
{
"name": "@types/react-router-hash-link",
"direct": false,
"version": "2.4.9",
"ecosystem": "npm"
},
{
"name": "@types/socket.io-client",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "@types/use-sync-external-store",
"direct": false,
"version": "0.0.6",
"ecosystem": "npm"
},
{
"name": "@types/ws",
"direct": false,
"version": "8.18.1",
"ecosystem": "npm"
},
{
"name": "@ungap/structured-clone",
"direct": false,
"version": "1.3.1",
"ecosystem": "npm"
},
{
"name": "@vitejs/plugin-react",
"direct": false,
"version": "6.0.2",
"ecosystem": "npm"
},
{
"name": "accepts",
"direct": false,
"version": "1.3.8",
"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": "6.0.2",
"ecosystem": "npm"
},
{
"name": "ajv",
"direct": false,
"version": "6.15.0",
"ecosystem": "npm"
},
{
"name": "ansi-regex",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "ansi-styles",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "anymatch",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "argparse",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "array-buffer-byte-length",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "array-flatten",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "array-includes",
"direct": false,
"version": "3.1.9",
"ecosystem": "npm"
},
{
"name": "array.prototype.findlastindex",
"direct": false,
"version": "1.2.6",
"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": "arraybuffer.prototype.slice",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "async-function",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "asynckit",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "available-typed-arrays",
"direct": false,
"version": "1.0.7",
"ecosystem": "npm"
},
{
"name": "balanced-match",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "balanced-match",
"direct": false,
"version": "4.0.4",
"ecosystem": "npm"
},
{
"name": "base64id",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "basic-auth",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "binary-extensions",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "body-parser",
"direct": false,
"version": "1.20.5",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "1.1.14",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "5.0.6",
"ecosystem": "npm"
},
{
"name": "braces",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "bytes",
"direct": false,
"version": "3.1.2",
"ecosystem": "npm"
},
{
"name": "call-bind",
"direct": false,
"version": "1.0.9",
"ecosystem": "npm"
},
{
"name": "call-bind-apply-helpers",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "call-bound",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "callsites",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "chokidar",
"direct": false,
"version": "3.6.0",
"ecosystem": "npm"
},
{
"name": "chokidar",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "clsx",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "color-convert",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "color-name",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "combined-stream",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "concat-map",
"direct": false,
"version": "0.0.1",
"ecosystem": "npm"
},
{
"name": "confusing-browser-globals",
"direct": false,
"version": "1.0.11",
"ecosystem": "npm"
},
{
"name": "content-disposition",
"direct": false,
"version": "0.5.4",
"ecosystem": "npm"
},
{
"name": "content-type",
"direct": false,
"version": "1.0.5",
"ecosystem": "npm"
},
{
"name": "cookie",
"direct": false,
"version": "0.7.2",
"ecosystem": "npm"
},
{
"name": "cookie-signature",
"direct": false,
"version": "1.0.6",
"ecosystem": "npm"
},
{
"name": "cors",
"direct": false,
"version": "2.8.6",
"ecosystem": "npm"
},
{
"name": "cross-spawn",
"direct": false,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "csstype",
"direct": false,
"version": "3.2.3",
"ecosystem": "npm"
},
{
"name": "d3-array",
"direct": false,
"version": "3.2.4",
"ecosystem": "npm"
},
{
"name": "d3-color",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "d3-ease",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "d3-format",
"direct": false,
"version": "3.1.2",
"ecosystem": "npm"
},
{
"name": "d3-interpolate",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "d3-path",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "d3-scale",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "d3-shape",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "d3-time",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "d3-time-format",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "d3-timer",
"direct": false,
"version": "3.0.1",
"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": "decimal.js-light",
"direct": false,
"version": "2.5.1",
"ecosystem": "npm"
},
{
"name": "deep-is",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "define-data-property",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "define-properties",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "delayed-stream",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "depd",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "destroy",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "detect-libc",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "doctrine",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "doctrine",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "dunder-proto",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "ee-first",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "encodeurl",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "engine.io",
"direct": false,
"version": "6.6.9",
"ecosystem": "npm"
},
{
"name": "engine.io-client",
"direct": false,
"version": "6.6.6",
"ecosystem": "npm"
},
{
"name": "engine.io-parser",
"direct": false,
"version": "5.2.3",
"ecosystem": "npm"
},
{
"name": "enhanced-resolve",
"direct": false,
"version": "5.21.5",
"ecosystem": "npm"
},
{
"name": "es-abstract",
"direct": false,
"version": "1.24.2",
"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-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": "es-toolkit",
"direct": false,
"version": "1.46.1",
"ecosystem": "npm"
},
{
"name": "escape-html",
"direct": false,
"version": "1.0.3",
"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",
"direct": false,
"version": "9.39.4",
"ecosystem": "npm"
},
{
"name": "eslint-config-airbnb-base",
"direct": false,
"version": "15.0.0",
"ecosystem": "npm"
},
{
"name": "eslint-config-prettier",
"direct": false,
"version": "10.1.8",
"ecosystem": "npm"
},
{
"name": "eslint-import-resolver-node",
"direct": false,
"version": "0.3.10",
"ecosystem": "npm"
},
{
"name": "eslint-module-utils",
"direct": false,
"version": "2.12.1",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-import",
"direct": false,
"version": "2.32.0",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-prettier",
"direct": false,
"version": "5.5.5",
"ecosystem": "npm"
},
{
"name": "eslint-scope",
"direct": false,
"version": "7.2.2",
"ecosystem": "npm"
},
{
"name": "eslint-scope",
"direct": false,
"version": "8.4.0",
"ecosystem": "npm"
},
{
"name": "eslint-visitor-keys",
"direct": false,
"version": "3.4.3",
"ecosystem": "npm"
},
{
"name": "eslint-visitor-keys",
"direct": false,
"version": "4.2.1",
"ecosystem": "npm"
},
{
"name": "espree",
"direct": false,
"version": "10.4.0",
"ecosystem": "npm"
},
{
"name": "espree",
"direct": false,
"version": "9.6.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": "esutils",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "etag",
"direct": false,
"version": "1.8.1",
"ecosystem": "npm"
},
{
"name": "eventemitter3",
"direct": false,
"version": "5.0.4",
"ecosystem": "npm"
},
{
"name": "fast-deep-equal",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "fast-diff",
"direct": false,
"version": "1.3.0",
"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": "fastq",
"direct": false,
"version": "1.20.1",
"ecosystem": "npm"
},
{
"name": "fdir",
"direct": false,
"version": "6.5.0",
"ecosystem": "npm"
},
{
"name": "file-entry-cache",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "file-entry-cache",
"direct": false,
"version": "8.0.0",
"ecosystem": "npm"
},
{
"name": "fill-range",
"direct": false,
"version": "7.1.1",
"ecosystem": "npm"
},
{
"name": "finalhandler",
"direct": false,
"version": "1.3.2",
"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": "flat-cache",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "flatted",
"direct": false,
"version": "3.4.2",
"ecosystem": "npm"
},
{
"name": "follow-redirects",
"direct": false,
"version": "1.16.0",
"ecosystem": "npm"
},
{
"name": "for-each",
"direct": false,
"version": "0.3.5",
"ecosystem": "npm"
},
{
"name": "form-data",
"direct": false,
"version": "4.0.6",
"ecosystem": "npm"
},
{
"name": "forwarded",
"direct": false,
"version": "0.2.0",
"ecosystem": "npm"
},
{
"name": "fresh",
"direct": false,
"version": "0.5.2",
"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": "get-intrinsic",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "get-proto",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "get-symbol-description",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "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": "globals",
"direct": false,
"version": "13.24.0",
"ecosystem": "npm"
},
{
"name": "globals",
"direct": false,
"version": "14.0.0",
"ecosystem": "npm"
},
{
"name": "globalthis",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "gopd",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "graceful-fs",
"direct": false,
"version": "4.2.11",
"ecosystem": "npm"
},
{
"name": "graphemer",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "has-bigints",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "has-flag",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "has-flag",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "has-property-descriptors",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "has-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.4",
"ecosystem": "npm"
},
{
"name": "http-errors",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "https-proxy-agent",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "iconv-lite",
"direct": false,
"version": "0.4.24",
"ecosystem": "npm"
},
{
"name": "ignore",
"direct": false,
"version": "5.3.2",
"ecosystem": "npm"
},
{
"name": "ignore-by-default",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "immutable",
"direct": false,
"version": "5.1.5",
"ecosystem": "npm"
},
{
"name": "import-fresh",
"direct": false,
"version": "3.3.1",
"ecosystem": "npm"
},
{
"name": "imurmurhash",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "inflight",
"direct": false,
"version": "1.0.6",
"ecosystem": "npm"
},
{
"name": "inherits",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "internal-slot",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "internmap",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "ipaddr.js",
"direct": false,
"version": "1.9.1",
"ecosystem": "npm"
},
{
"name": "is-array-buffer",
"direct": false,
"version": "3.0.5",
"ecosystem": "npm"
},
{
"name": "is-async-function",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "is-bigint",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "is-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.2",
"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-generator-function",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "is-glob",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "is-map",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "is-negative-zero",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "is-number",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "is-number-object",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "is-path-inside",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "is-promise",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "is-regex",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "is-set",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "is-shared-array-buffer",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "is-string",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "is-symbol",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "is-typed-array",
"direct": false,
"version": "1.1.15",
"ecosystem": "npm"
},
{
"name": "is-weakmap",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "is-weakref",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "is-weakset",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "isarray",
"direct": false,
"version": "2.0.5",
"ecosystem": "npm"
},
{
"name": "isexe",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "jiti",
"direct": false,
"version": "2.7.0",
"ecosystem": "npm"
},
{
"name": "js-tokens",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "js-yaml",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "json-buffer",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "json-schema-traverse",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "json-stable-stringify-without-jsonify",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "json5",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "keyv",
"direct": false,
"version": "4.5.4",
"ecosystem": "npm"
},
{
"name": "levn",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "lightningcss",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-android-arm64",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-darwin-arm64",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-darwin-x64",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-freebsd-x64",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-linux-arm-gnueabihf",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-linux-arm64-gnu",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-linux-arm64-musl",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-linux-x64-gnu",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-linux-x64-musl",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-win32-arm64-msvc",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-win32-x64-msvc",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "locate-path",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "lodash.flattendeep",
"direct": false,
"version": "4.4.0",
"ecosystem": "npm"
},
{
"name": "lodash.merge",
"direct": false,
"version": "4.6.2",
"ecosystem": "npm"
},
{
"name": "loose-envify",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "magic-string",
"direct": false,
"version": "0.30.21",
"ecosystem": "npm"
},
{
"name": "math-intrinsics",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "media-typer",
"direct": false,
"version": "0.3.0",
"ecosystem": "npm"
},
{
"name": "merge-descriptors",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "methods",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "mime",
"direct": false,
"version": "1.6.0",
"ecosystem": "npm"
},
{
"name": "mime-db",
"direct": false,
"version": "1.52.0",
"ecosystem": "npm"
},
{
"name": "mime-types",
"direct": false,
"version": "2.1.35",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "10.2.5",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "3.1.5",
"ecosystem": "npm"
},
{
"name": "minimist",
"direct": false,
"version": "1.2.8",
"ecosystem": "npm"
},
{
"name": "ms",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "ms",
"direct": false,
"version": "2.1.3",
"ecosystem": "npm"
},
{
"name": "nanoid",
"direct": false,
"version": "3.3.15",
"ecosystem": "npm"
},
{
"name": "natural-compare",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "negotiator",
"direct": false,
"version": "0.6.3",
"ecosystem": "npm"
},
{
"name": "node-addon-api",
"direct": false,
"version": "7.1.1",
"ecosystem": "npm"
},
{
"name": "node-exports-info",
"direct": false,
"version": "1.6.0",
"ecosystem": "npm"
},
{
"name": "nodemon",
"direct": false,
"version": "3.1.14",
"ecosystem": "npm"
},
{
"name": "normalize-path",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "object-assign",
"direct": false,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "object-inspect",
"direct": false,
"version": "1.13.4",
"ecosystem": "npm"
},
{
"name": "object-keys",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "object.assign",
"direct": false,
"version": "4.1.7",
"ecosystem": "npm"
},
{
"name": "object.entries",
"direct": false,
"version": "1.1.9",
"ecosystem": "npm"
},
{
"name": "object.fromentries",
"direct": false,
"version": "2.0.8",
"ecosystem": "npm"
},
{
"name": "object.groupby",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "object.values",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "on-finished",
"direct": false,
"version": "2.4.1",
"ecosystem": "npm"
},
{
"name": "on-headers",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "once",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "optionator",
"direct": false,
"version": "0.9.4",
"ecosystem": "npm"
},
{
"name": "own-keys",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "p-limit",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "p-locate",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "parent-module",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "parseurl",
"direct": false,
"version": "1.3.3",
"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-to-regexp",
"direct": false,
"version": "0.1.13",
"ecosystem": "npm"
},
{
"name": "pg-cloudflare",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "pg-connection-string",
"direct": false,
"version": "2.13.0",
"ecosystem": "npm"
},
{
"name": "pg-int8",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "pg-pool",
"direct": false,
"version": "3.14.0",
"ecosystem": "npm"
},
{
"name": "pg-protocol",
"direct": false,
"version": "1.14.0",
"ecosystem": "npm"
},
{
"name": "pg-types",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "pgpass",
"direct": false,
"version": "1.0.5",
"ecosystem": "npm"
},
{
"name": "picocolors",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "picomatch",
"direct": false,
"version": "2.3.2",
"ecosystem": "npm"
},
{
"name": "picomatch",
"direct": false,
"version": "4.0.5",
"ecosystem": "npm"
},
{
"name": "possible-typed-array-names",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "postcss",
"direct": false,
"version": "8.5.16",
"ecosystem": "npm"
},
{
"name": "postgres-array",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "postgres-bytea",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "postgres-date",
"direct": false,
"version": "1.0.7",
"ecosystem": "npm"
},
{
"name": "postgres-interval",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "prelude-ls",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "prettier",
"direct": false,
"version": "3.8.3",
"ecosystem": "npm"
},
{
"name": "prettier-linter-helpers",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "proxy-addr",
"direct": false,
"version": "2.0.7",
"ecosystem": "npm"
},
{
"name": "proxy-from-env",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "pstree.remy",
"direct": false,
"version": "1.1.8",
"ecosystem": "npm"
},
{
"name": "punycode",
"direct": false,
"version": "2.3.1",
"ecosystem": "npm"
},
{
"name": "qs",
"direct": false,
"version": "6.15.2",
"ecosystem": "npm"
},
{
"name": "queue-microtask",
"direct": false,
"version": "1.2.3",
"ecosystem": "npm"
},
{
"name": "range-parser",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "raw-body",
"direct": false,
"version": "2.5.3",
"ecosystem": "npm"
},
{
"name": "react-is",
"direct": false,
"version": "16.13.1",
"ecosystem": "npm"
},
{
"name": "react-is",
"direct": false,
"version": "19.2.6",
"ecosystem": "npm"
},
{
"name": "react-redux",
"direct": false,
"version": "9.3.0",
"ecosystem": "npm"
},
{
"name": "react-router",
"direct": false,
"version": "6.30.4",
"ecosystem": "npm"
},
{
"name": "readdirp",
"direct": false,
"version": "3.6.0",
"ecosystem": "npm"
},
{
"name": "readdirp",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "redux",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "redux-thunk",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "reflect.getprototypeof",
"direct": false,
"version": "1.0.10",
"ecosystem": "npm"
},
{
"name": "regexp.prototype.flags",
"direct": false,
"version": "1.5.4",
"ecosystem": "npm"
},
{
"name": "reselect",
"direct": false,
"version": "5.1.1",
"ecosystem": "npm"
},
{
"name": "resolve",
"direct": false,
"version": "2.0.0-next.7",
"ecosystem": "npm"
},
{
"name": "resolve-from",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "reusify",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "rimraf",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "rolldown",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "run-parallel",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "safe-array-concat",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "safe-buffer",
"direct": false,
"version": "5.1.2",
"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": "scheduler",
"direct": false,
"version": "0.23.2",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "6.3.1",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "7.8.0",
"ecosystem": "npm"
},
{
"name": "send",
"direct": false,
"version": "0.19.2",
"ecosystem": "npm"
},
{
"name": "serve-static",
"direct": false,
"version": "1.16.3",
"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": "setprototypeof",
"direct": false,
"version": "1.2.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.1",
"ecosystem": "npm"
},
{
"name": "side-channel-map",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "side-channel-weakmap",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "simple-update-notifier",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "socket.io-adapter",
"direct": false,
"version": "2.5.8",
"ecosystem": "npm"
},
{
"name": "socket.io-parser",
"direct": false,
"version": "4.2.6",
"ecosystem": "npm"
},
{
"name": "source-map-js",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "split2",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "statuses",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "stop-iteration-iterator",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "string.prototype.trim",
"direct": false,
"version": "1.2.10",
"ecosystem": "npm"
},
{
"name": "string.prototype.trimend",
"direct": false,
"version": "1.0.9",
"ecosystem": "npm"
},
{
"name": "string.prototype.trimstart",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "strip-ansi",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "strip-bom",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "strip-json-comments",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "supports-color",
"direct": false,
"version": "5.5.0",
"ecosystem": "npm"
},
{
"name": "supports-color",
"direct": false,
"version": "7.2.0",
"ecosystem": "npm"
},
{
"name": "supports-preserve-symlinks-flag",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "synckit",
"direct": false,
"version": "0.11.12",
"ecosystem": "npm"
},
{
"name": "tapable",
"direct": false,
"version": "2.3.3",
"ecosystem": "npm"
},
{
"name": "text-table",
"direct": false,
"version": "0.2.0",
"ecosystem": "npm"
},
{
"name": "tiny-invariant",
"direct": false,
"version": "1.3.3",
"ecosystem": "npm"
},
{
"name": "tinyglobby",
"direct": false,
"version": "0.2.17",
"ecosystem": "npm"
},
{
"name": "to-regex-range",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "toidentifier",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "touch",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "tsconfig-paths",
"direct": false,
"version": "3.15.0",
"ecosystem": "npm"
},
{
"name": "tslib",
"direct": false,
"version": "2.8.1",
"ecosystem": "npm"
},
{
"name": "type-check",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "0.20.2",
"ecosystem": "npm"
},
{
"name": "type-is",
"direct": false,
"version": "1.6.18",
"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.7.3",
"ecosystem": "npm"
},
{
"name": "unbox-primitive",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "undefsafe",
"direct": false,
"version": "2.0.5",
"ecosystem": "npm"
},
{
"name": "undici-types",
"direct": false,
"version": "7.24.6",
"ecosystem": "npm"
},
{
"name": "unpipe",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "uri-js",
"direct": false,
"version": "4.4.1",
"ecosystem": "npm"
},
{
"name": "use-sync-external-store",
"direct": false,
"version": "1.6.0",
"ecosystem": "npm"
},
{
"name": "utils-merge",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "vary",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "victory-vendor",
"direct": false,
"version": "37.3.6",
"ecosystem": "npm"
},
{
"name": "vite",
"direct": false,
"version": "8.1.4",
"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": "word-wrap",
"direct": false,
"version": "1.2.5",
"ecosystem": "npm"
},
{
"name": "wrappy",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "ws",
"direct": false,
"version": "8.21.0",
"ecosystem": "npm"
},
{
"name": "xmlhttprequest-ssl",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "xtend",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "yocto-queue",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
}
],
"collected": true,
"truncated": false,
"total_count": 525,
"direct_count": 31,
"indirect_count": 494
}
},
"maintainership": {
"issues": {
"open_prs": 4,
"merged_prs": 144,
"open_issues": 1,
"closed_ratio": 0.984,
"closed_issues": 62,
"closed_unmerged_prs": 156
},
"bus_factor": 1,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "phoenixy1",
"commits": 114,
"avatar_url": "https://avatars.githubusercontent.com/u/7179845?v=4"
},
{
"type": "User",
"login": "lindawoo-plaid",
"commits": 28,
"avatar_url": "https://avatars.githubusercontent.com/u/77688518?v=4"
},
{
"type": "User",
"login": "davidzhanghp",
"commits": 11,
"avatar_url": "https://avatars.githubusercontent.com/u/38868412?v=4"
},
{
"type": "User",
"login": "evndean",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/9344511?v=4"
},
{
"type": "User",
"login": "luke-guild",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/137529728?v=4"
},
{
"type": "User",
"login": "lguild-plaid",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/101723071?v=4"
},
{
"type": "User",
"login": "panktip15",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/30152454?v=4"
},
{
"type": "User",
"login": "nsundin",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/716748?v=4"
},
{
"type": "User",
"login": "jamesrperkins",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/61202642?v=4"
},
{
"type": "User",
"login": "EllisMin",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/11434170?v=4"
}
],
"contributors_sampled": 17,
"top_contributor_share": 0.648
},
"quality_signals": {
"has_ci": false,
"has_tests": false,
"ci_workflows": [],
"has_docs_dir": true,
"linter_configs": [
".eslintrc",
".eslintrc.json"
],
"has_editorconfig": true,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"package-lock.json"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": null,
"reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 0,
"reason": "0 out of 14 merged PRs checked by a CI test -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 0/12 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 3,
"reason": "project has 1 contributing companies or organizations -- score normalized to 3",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": null,
"reason": "no workflows found",
"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": "26 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": null,
"reason": "no dependencies found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": null,
"reason": "No tokens found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "14 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "ed00aa75a4fbf510bcce946a78f574bd4a6986c4",
"ran_at": "2026-07-21T20:45:27Z",
"aggregate_score": 4.1,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/plaid/pattern",
"host": "github.com",
"name": "pattern",
"owner": "plaid"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 55,
"inputs": {
"security": 47,
"vitality": 65,
"community": 63,
"governance": 56,
"engineering": 43
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "moderate",
"name": "Vitality",
"value": 65,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 68,
"inputs": {
"commits_last_year": 59,
"human_commit_share": 0.98,
"days_since_last_push": 0,
"active_weeks_last_year": 9
},
"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": "9/52 weeks with commits",
"points": 6.2,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 9
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "59 commits in the last year",
"points": 16,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 59
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "26 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "moderate",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 60,
"inputs": {
"releases_count": 6,
"latest_release_tag": "v1.0.5",
"releases_from_tags": false,
"days_since_latest_release": 2513,
"mean_days_between_releases": 19.6
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "6 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 6
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 2513 days ago",
"points": 0,
"status": "missed",
"details": [
{
"code": "release_recency",
"params": {
"days": 2513
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~19.6 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 19.6
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 7,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 7 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 7
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "moderate",
"name": "Community & Adoption",
"value": 63,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "good",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 74,
"inputs": {
"forks": 248,
"stars": 535,
"watchers": 56,
"growth_state": "organic",
"growth_factor_pct": 100
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "535 stars",
"points": 44.2,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 535
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "248 forks",
"points": 19.9,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 248
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "56 watchers",
"points": 9.7,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 56
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "moderate",
"name": "Community health",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 56,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "at_risk",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 33,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 17,
"top_contributor_share": 0.648
},
"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 65% of commits",
"points": 7.9,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 65
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "17 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 17
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 1 contributing companies or organizations -- score normalized to 3",
"points": 3,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "moderate",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 64,
"inputs": {
"merged_prs": 144,
"open_issues": 1,
"closed_issues": 62,
"issue_closed_ratio": 0.984,
"closed_unmerged_prs": 156
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "98% of issues closed",
"points": 46,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 98
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "144/300 decided PRs merged",
"points": 18.4,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 144,
"decided": 300
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/12 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "good",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 76,
"inputs": {
"followers": 980,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "plaid",
"public_repos": 67,
"account_age_days": 4906
},
"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": "980 followers of plaid",
"points": 21.5,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 980,
"login": "plaid"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "67 public repos, account ~13 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 67
}
},
{
"code": "account_age_years",
"params": {
"years": 13
}
}
],
"max_points": 25
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "at_risk",
"name": "Engineering Quality",
"value": 43,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "critical",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 22,
"inputs": {
"has_ci": false,
"has_tests": false,
"has_editorconfig": true,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": ".eslintrc, .eslintrc.json",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".eslintrc, .eslintrc.json"
}
}
],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 6.4,
"status": "met",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "0 out of 14 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "good",
"name": "Documentation",
"note": null,
"notes": [],
"value": 75,
"inputs": {
"topics": [],
"has_wiki": true,
"homepage": null,
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 47,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Branch-Protection, Dangerous-Workflow, Packaging, Pinned-Dependencies, Signed-Releases, Token-Permissions. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"branch_protection",
"dangerous_workflow",
"packaging",
"pinned_dependencies",
"signed_releases",
"token_permissions"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 41,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 12,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 6,
"scorecard_aggregate": 4.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": "0 out of 14 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/12 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 1 contributing companies or organizations -- score normalized to 3",
"points": 0.8,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no workflows found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"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": "26 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "no dependencies found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "No tokens found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "14 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "moderate",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 525 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"indirect_dependencies_free_of_known_advisories"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_repository",
"params": {
"assessed": 525
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 69,
"inputs": {
"source": "osv",
"advisories": 15,
"affected_packages": 5,
"assessed_packages": 525,
"unassessed_packages": 0,
"affected_by_severity": "high 4, low 1",
"direct_affected_packages": 1
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "1 affected: axios 1.16.1 (high 8.2)",
"points": 12,
"status": "partial",
"details": [
{
"code": "advisories_affected",
"params": {
"count": 1,
"packages": "axios 1.16.1 (high 8.2)"
}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "transitive set not separable from development and test dependencies in this scope",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_scope_not_separable",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "no advisory has been public longer than 90 days",
"points": 40,
"status": "met",
"details": [
{
"code": "advisories_none_stale",
"params": {
"days": 90
}
}
],
"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": 525,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 8
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "moderate",
"name": "AI Readiness",
"value": 65,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "at_risk",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 33,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.612,
"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": "60 of 98 human commits state their intent (structured subject or explanatory body)",
"points": 32.7,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 60,
"sampled": 98
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "good",
"name": "Verify loop (build / test / typecheck)",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Pinned-Dependencies. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_pinned_dependencies"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 76,
"inputs": {
"has_nix": false,
"has_tests": false,
"lockfiles": [
"package-lock.json"
],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [
"Makefile"
],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [
"client/tsconfig.json"
],
"agent_commit_share": 0.27,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0.02
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Makefile"
}
}
],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": ".eslintrc, .eslintrc.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".eslintrc, .eslintrc.json"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "client/tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "client/tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "27 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 27,
"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": "no dependencies found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "TypeScript",
"largest_source_bytes": 8860,
"source_files_sampled": 81,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "TypeScript (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "TypeScript"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "0/81 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 81,
"oversized": 0
}
}
],
"max_points": 55
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [],
"report_type": "repository",
"generated_at": "2026-07-21T20:45:47.666040Z",
"schema_version": "0.23.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/p/plaid/pattern.svg",
"full_name": "plaid/pattern",
"license_state": "standard",
"license_spdx": "MIT"
}